S Price: $0.577564 (-0.55%)

Contract

0x96d3122f0E2549056121F8EBE22e4524B8Cc6d3E

Overview

S Balance

Sonic LogoSonic LogoSonic Logo0 S

S Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Allocate Tokens23124612025-01-03 1:33:0221 days ago1735867982IN
0x96d3122f...4B8Cc6d3E
0 S0.000374692
Create Claim23121772025-01-03 1:29:1321 days ago1735867753IN
0x96d3122f...4B8Cc6d3E
0 S0.000115321.16
Create Claim23121052025-01-03 1:28:2121 days ago1735867701IN
0x96d3122f...4B8Cc6d3E
0 S0.000030071.13
Create Claim23120802025-01-03 1:27:5621 days ago1735867676IN
0x96d3122f...4B8Cc6d3E
0 S0.000030341.14
Create Claim23119732025-01-03 1:26:3621 days ago1735867596IN
0x96d3122f...4B8Cc6d3E
0 S0.000030621.15

Parent Transaction Hash Block From To
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TokenClaim

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at SonicScan.org on 2025-01-03
*/

// SPDX-License-Identifier: UNLICENSED
// File: @openzeppelin/contracts/security/ReentrancyGuard.sol


// OpenZeppelin Contracts (last updated v4.9.0) (security/ReentrancyGuard.sol)

pragma solidity ^0.8.0;

/**
 * @dev Contract module that helps prevent reentrant calls to a function.
 *
 * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier
 * available, which can be applied to functions to make sure there are no nested
 * (reentrant) calls to them.
 *
 * Note that because there is a single `nonReentrant` guard, functions marked as
 * `nonReentrant` may not call one another. This can be worked around by making
 * those functions `private`, and then adding `external` `nonReentrant` entry
 * points to them.
 *
 * TIP: If you would like to learn more about reentrancy and alternative ways
 * to protect against it, check out our blog post
 * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].
 */
abstract contract ReentrancyGuard {
    // Booleans are more expensive than uint256 or any type that takes up a full
    // word because each write operation emits an extra SLOAD to first read the
    // slot's contents, replace the bits taken up by the boolean, and then write
    // back. This is the compiler's defense against contract upgrades and
    // pointer aliasing, and it cannot be disabled.

    // The values being non-zero value makes deployment a bit more expensive,
    // but in exchange the refund on every call to nonReentrant will be lower in
    // amount. Since refunds are capped to a percentage of the total
    // transaction's gas, it is best to keep them low in cases like this one, to
    // increase the likelihood of the full refund coming into effect.
    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;

    uint256 private _status;

    constructor() {
        _status = _NOT_ENTERED;
    }

    /**
     * @dev Prevents a contract from calling itself, directly or indirectly.
     * Calling a `nonReentrant` function from another `nonReentrant`
     * function is not supported. It is possible to prevent this from happening
     * by making the `nonReentrant` function external, and making it call a
     * `private` function that does the actual work.
     */
    modifier nonReentrant() {
        _nonReentrantBefore();
        _;
        _nonReentrantAfter();
    }

    function _nonReentrantBefore() private {
        // On the first call to nonReentrant, _status will be _NOT_ENTERED
        require(_status != _ENTERED, "ReentrancyGuard: reentrant call");

        // Any calls to nonReentrant after this point will fail
        _status = _ENTERED;
    }

    function _nonReentrantAfter() private {
        // By storing the original value once again, a refund is triggered (see
        // https://eips.ethereum.org/EIPS/eip-2200)
        _status = _NOT_ENTERED;
    }

    /**
     * @dev Returns true if the reentrancy guard is currently set to "entered", which indicates there is a
     * `nonReentrant` function in the call stack.
     */
    function _reentrancyGuardEntered() internal view returns (bool) {
        return _status == _ENTERED;
    }
}

// File: gravity/claims.sol


pragma solidity ^0.8.0;


interface IMintableToken {
    function mint(address to, uint256 amount) external;
}

contract TokenClaim is ReentrancyGuard {
    IMintableToken public token;

    struct Claim {
        uint256 expiry;
        mapping(address => uint256) allocations;
        mapping(address => bool) claimed;
        uint256 totalAllocated;
        address[] allocatedAddresses;
    }

    mapping(bytes32 => Claim) public claims;  // Mapping still uses bytes32 for efficiency
    mapping(address => mapping(bytes32 => uint256)) public userClaims;
    string[] public claimIds;

    address public admin;

    event ClaimCreated(string indexed claimId, uint256 expiry);
    event TokensAllocated(string indexed claimId, address indexed account, uint256 amount);
    event TokensClaimed(string indexed claimId, address indexed account, uint256 amount);
    event ClaimExpiryExtended(string indexed claimId, uint256 newExpiry);

    modifier onlyAdmin() {
        require(msg.sender == admin, "Caller is not admin");
        _;
    }

    modifier claimExists(string memory claimId) {
        require(claims[_getClaimHash(claimId)].expiry != 0, "Claim does not exist");
        _;
    }

    modifier onlyBeforeStart(string memory claimId) {
        require(block.timestamp < claims[_getClaimHash(claimId)].expiry, "Claim already started");
        _;
    }

    constructor(address tokenAddress, address owner) {
        token = IMintableToken(tokenAddress);
        admin = owner;
    }

    function createClaim(string memory claimId, uint256 expiry) external onlyAdmin {
        require(expiry > block.timestamp, "Expiry must be in the future");
        bytes32 claimHash = _getClaimHash(claimId);
        if (claims[claimHash].expiry == 0) {
            claims[claimHash].expiry = expiry;
            claimIds.push(claimId);
            emit ClaimCreated(claimId, expiry);
        } else {
            require(block.timestamp < claims[claimHash].expiry, "Claim has already started");
            claims[claimHash].expiry = expiry;
        }
    }

    function allocateTokens(
        string memory claimId,
        address[] calldata addresses,
        uint256[] calldata amounts
    ) external onlyAdmin claimExists(claimId) onlyBeforeStart(claimId) {
        require(addresses.length == amounts.length, "Addresses and amounts length mismatch");

        bytes32 claimHash = _getClaimHash(claimId);
        Claim storage claim = claims[claimHash];
        for (uint256 i = 0; i < addresses.length; i++) {
            require(!claim.claimed[addresses[i]], "Tokens already claimed by address");
            if (claim.allocations[addresses[i]] == 0) {
                claim.allocatedAddresses.push(addresses[i]);
            }
            claim.allocations[addresses[i]] += amounts[i];
            claim.totalAllocated += amounts[i];
            emit TokensAllocated(claimId, addresses[i], amounts[i]);
        }
    }

    function claimTokens(string memory claimId) external claimExists(claimId) nonReentrant {
        bytes32 claimHash = _getClaimHash(claimId);
        Claim storage claim = claims[claimHash];

        require(block.timestamp < claim.expiry, "Claim period has expired");
        require(!claim.claimed[msg.sender], "Tokens already claimed");
        uint256 amount = claim.allocations[msg.sender];
        require(amount > 0, "No tokens allocated");

        claim.claimed[msg.sender] = true;
        claim.allocations[msg.sender] = 0;
        claim.totalAllocated -= amount;

        token.mint(msg.sender, amount);

        emit TokensClaimed(claimId, msg.sender, amount);
    }

    function getAllocation(string memory claimId, address account) external view claimExists(claimId) returns (uint256) {
        return claims[_getClaimHash(claimId)].allocations[account];
    }

    function hasClaimed(string memory claimId, address account) external view claimExists(claimId) returns (bool) {
        return claims[_getClaimHash(claimId)].claimed[account];
    }

    function extendClaimExpiry(string memory claimId, uint256 additionalTime) external onlyAdmin claimExists(claimId) {
        bytes32 claimHash = _getClaimHash(claimId);
        Claim storage claim = claims[claimHash];
        require(claim.expiry > block.timestamp, "Claim has already expired");
        claim.expiry += additionalTime;
        emit ClaimExpiryExtended(claimId, claim.expiry);
    }

    // Internal function to hash the string claimId to use as a mapping key
    function _getClaimHash(string memory claimId) internal pure returns (bytes32) {
        return keccak256(abi.encodePacked(claimId));
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"string","name":"claimId","type":"string"},{"indexed":false,"internalType":"uint256","name":"expiry","type":"uint256"}],"name":"ClaimCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"string","name":"claimId","type":"string"},{"indexed":false,"internalType":"uint256","name":"newExpiry","type":"uint256"}],"name":"ClaimExpiryExtended","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"string","name":"claimId","type":"string"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TokensAllocated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"string","name":"claimId","type":"string"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TokensClaimed","type":"event"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"claimId","type":"string"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"allocateTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"claimIds","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"claimId","type":"string"}],"name":"claimTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"claims","outputs":[{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint256","name":"totalAllocated","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"claimId","type":"string"},{"internalType":"uint256","name":"expiry","type":"uint256"}],"name":"createClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"claimId","type":"string"},{"internalType":"uint256","name":"additionalTime","type":"uint256"}],"name":"extendClaimExpiry","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"claimId","type":"string"},{"internalType":"address","name":"account","type":"address"}],"name":"getAllocation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"claimId","type":"string"},{"internalType":"address","name":"account","type":"address"}],"name":"hasClaimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IMintableToken","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"userClaims","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]

608060405234801561000f575f80fd5b506040516123523803806123528339818101604052810190610031919061011d565b60015f819055508160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505061015b565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100ec826100c3565b9050919050565b6100fc816100e2565b8114610106575f80fd5b50565b5f81519050610117816100f3565b92915050565b5f8060408385031215610133576101326100bf565b5b5f61014085828601610109565b925050602061015185828601610109565b9150509250929050565b6121ea806101685f395ff3fe608060405234801561000f575f80fd5b50600436106100a7575f3560e01c8063d7d5c0651161006f578063d7d5c06514610173578063ec08fc4c1461018f578063eff0f592146101ab578063f851a440146101dc578063f89d528a146101fa578063fc0c546a1461022a576100a7565b8063060b0c75146100ab57806325401d8e146100c75780633cff3549146100f7578063559c354114610127578063a598638614610143575b5f80fd5b6100c560048036038101906100c091906113cc565b610248565b005b6100e160048036038101906100dc91906114ac565b610737565b6040516100ee9190611537565b60405180910390f35b610111600480360381019061010c91906115b1565b6107dd565b60405161011e9190611625565b60405180910390f35b610141600480360381019061013c919061163e565b6108a9565b005b61015d600480360381019061015891906116b8565b610c36565b60405161016a9190611705565b60405180910390f35b61018d6004803603810190610188919061171e565b610c56565b005b6101a960048036038101906101a4919061171e565b610e5c565b005b6101c560048036038101906101c09190611778565b61101e565b6040516101d39291906117a3565b60405180910390f35b6101e461103e565b6040516101f191906117d9565b60405180910390f35b610214600480360381019061020f91906115b1565b611063565b6040516102219190611705565b60405180910390f35b610232611123565b60405161023f919061184d565b60405180910390f35b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146102d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102ce906118b0565b60405180910390fd5b845f60025f6102e584611148565b81526020019081526020015f205f015403610335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032c90611918565b60405180910390fd5b8560025f61034283611148565b81526020019081526020015f205f01544210610393576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038a90611980565b60405180910390fd5b8383905086869050146103db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d290611a0e565b60405180910390fd5b5f6103e588611148565b90505f60025f8381526020019081526020015f2090505f5b8888905081101561072b57816002015f8a8a848181106104205761041f611a2c565b5b90506020020160208101906104359190611a59565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156104bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104b290611af4565b60405180910390fd5b5f826001015f8b8b858181106104d4576104d3611a2c565b5b90506020020160208101906104e99190611a59565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054036105b2578160040189898381811061053f5761053e611a2c565b5b90506020020160208101906105549190611a59565b908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b8686828181106105c5576105c4611a2c565b5b90506020020135826001015f8b8b858181106105e4576105e3611a2c565b5b90506020020160208101906105f99190611a59565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546106409190611b3f565b9250508190555086868281811061065a57610659611a2c565b5b90506020020135826003015f8282546106739190611b3f565b9250508190555088888281811061068d5761068c611a2c565b5b90506020020160208101906106a29190611a59565b73ffffffffffffffffffffffffffffffffffffffff168a6040516106c69190611bac565b60405180910390207f67a90ba89fd057563a71faca71b9f50193409d439108e1e12a9eecf5d1fa24fa89898581811061070257610701611a2c565b5b905060200201356040516107169190611705565b60405180910390a380806001019150506103fd565b50505050505050505050565b60048181548110610746575f80fd5b905f5260205f20015f91509050805461075e90611bef565b80601f016020809104026020016040519081016040528092919081815260200182805461078a90611bef565b80156107d55780601f106107ac576101008083540402835291602001916107d5565b820191905f5260205f20905b8154815290600101906020018083116107b857829003601f168201915b505050505081565b5f825f60025f6107ec84611148565b81526020019081526020015f205f01540361083c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083390611918565b60405180910390fd5b60025f61084886611148565b81526020019081526020015f206002015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1691505092915050565b805f60025f6108b784611148565b81526020019081526020015f205f015403610907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fe90611918565b60405180910390fd5b61090f611177565b5f61091983611148565b90505f60025f8381526020019081526020015f209050805f01544210610974576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096b90611c69565b60405180910390fd5b806002015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615610a00576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f790611cd1565b60405180910390fd5b5f816001015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f8111610a85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7c90611d39565b60405180910390fd5b6001826002015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f826001015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080826003015f828254610b339190611d57565b9250508190555060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1933836040518363ffffffff1660e01b8152600401610b96929190611d8a565b5f604051808303815f87803b158015610bad575f80fd5b505af1158015610bbf573d5f803e3d5ffd5b505050503373ffffffffffffffffffffffffffffffffffffffff1685604051610be89190611bac565b60405180910390207fbc3fa44f5bc4e5f6340fc228b4609c4fc3760144310f27788d15433ae421465683604051610c1f9190611705565b60405180910390a3505050610c326111c4565b5050565b6003602052815f5260405f20602052805f5260405f205f91509150505481565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ce5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdc906118b0565b60405180910390fd5b428111610d27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1e90611dfb565b60405180910390fd5b5f610d3183611148565b90505f60025f8381526020019081526020015f205f015403610de9578160025f8381526020019081526020015f205f0181905550600483908060018154018082558091505060019003905f5260205f20015f909190919091509081610d969190611fad565b5082604051610da59190611bac565b60405180910390207fbbbd85ffe467bbfb1f86bf0f31c7235fe815ca3802a57f983bd9ce89926f128183604051610ddc9190611705565b60405180910390a2610e57565b60025f8281526020019081526020015f205f01544210610e3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e35906120c6565b60405180910390fd5b8160025f8381526020019081526020015f205f01819055505b505050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610eeb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee2906118b0565b60405180910390fd5b815f60025f610ef984611148565b81526020019081526020015f205f015403610f49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4090611918565b60405180910390fd5b5f610f5384611148565b90505f60025f8381526020019081526020015f20905042815f015411610fae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa59061212e565b60405180910390fd5b83815f015f828254610fc09190611b3f565b9250508190555084604051610fd59190611bac565b60405180910390207f84984ce307d48970e19e4769b3a23da87f0b3eaa6b0f9f9bfe077496a282234d825f015460405161100f9190611705565b60405180910390a25050505050565b6002602052805f5260405f205f91509050805f0154908060030154905082565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f825f60025f61107284611148565b81526020019081526020015f205f0154036110c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b990611918565b60405180910390fd5b60025f6110ce86611148565b81526020019081526020015f206001015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205491505092915050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f8160405160200161115a9190611bac565b604051602081830303815290604052805190602001209050919050565b60025f54036111bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b290612196565b60405180910390fd5b60025f81905550565b60015f81905550565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61122c826111e6565b810181811067ffffffffffffffff8211171561124b5761124a6111f6565b5b80604052505050565b5f61125d6111cd565b90506112698282611223565b919050565b5f67ffffffffffffffff821115611288576112876111f6565b5b611291826111e6565b9050602081019050919050565b828183375f83830152505050565b5f6112be6112b98461126e565b611254565b9050828152602081018484840111156112da576112d96111e2565b5b6112e584828561129e565b509392505050565b5f82601f830112611301576113006111de565b5b81356113118482602086016112ac565b91505092915050565b5f80fd5b5f80fd5b5f8083601f840112611337576113366111de565b5b8235905067ffffffffffffffff8111156113545761135361131a565b5b6020830191508360208202830111156113705761136f61131e565b5b9250929050565b5f8083601f84011261138c5761138b6111de565b5b8235905067ffffffffffffffff8111156113a9576113a861131a565b5b6020830191508360208202830111156113c5576113c461131e565b5b9250929050565b5f805f805f606086880312156113e5576113e46111d6565b5b5f86013567ffffffffffffffff811115611402576114016111da565b5b61140e888289016112ed565b955050602086013567ffffffffffffffff81111561142f5761142e6111da565b5b61143b88828901611322565b9450945050604086013567ffffffffffffffff81111561145e5761145d6111da565b5b61146a88828901611377565b92509250509295509295909350565b5f819050919050565b61148b81611479565b8114611495575f80fd5b50565b5f813590506114a681611482565b92915050565b5f602082840312156114c1576114c06111d6565b5b5f6114ce84828501611498565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f611509826114d7565b61151381856114e1565b93506115238185602086016114f1565b61152c816111e6565b840191505092915050565b5f6020820190508181035f83015261154f81846114ff565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61158082611557565b9050919050565b61159081611576565b811461159a575f80fd5b50565b5f813590506115ab81611587565b92915050565b5f80604083850312156115c7576115c66111d6565b5b5f83013567ffffffffffffffff8111156115e4576115e36111da565b5b6115f0858286016112ed565b92505060206116018582860161159d565b9150509250929050565b5f8115159050919050565b61161f8161160b565b82525050565b5f6020820190506116385f830184611616565b92915050565b5f60208284031215611653576116526111d6565b5b5f82013567ffffffffffffffff8111156116705761166f6111da565b5b61167c848285016112ed565b91505092915050565b5f819050919050565b61169781611685565b81146116a1575f80fd5b50565b5f813590506116b28161168e565b92915050565b5f80604083850312156116ce576116cd6111d6565b5b5f6116db8582860161159d565b92505060206116ec858286016116a4565b9150509250929050565b6116ff81611479565b82525050565b5f6020820190506117185f8301846116f6565b92915050565b5f8060408385031215611734576117336111d6565b5b5f83013567ffffffffffffffff811115611751576117506111da565b5b61175d858286016112ed565b925050602061176e85828601611498565b9150509250929050565b5f6020828403121561178d5761178c6111d6565b5b5f61179a848285016116a4565b91505092915050565b5f6040820190506117b65f8301856116f6565b6117c360208301846116f6565b9392505050565b6117d381611576565b82525050565b5f6020820190506117ec5f8301846117ca565b92915050565b5f819050919050565b5f61181561181061180b84611557565b6117f2565b611557565b9050919050565b5f611826826117fb565b9050919050565b5f6118378261181c565b9050919050565b6118478161182d565b82525050565b5f6020820190506118605f83018461183e565b92915050565b7f43616c6c6572206973206e6f742061646d696e000000000000000000000000005f82015250565b5f61189a6013836114e1565b91506118a582611866565b602082019050919050565b5f6020820190508181035f8301526118c78161188e565b9050919050565b7f436c61696d20646f6573206e6f742065786973740000000000000000000000005f82015250565b5f6119026014836114e1565b915061190d826118ce565b602082019050919050565b5f6020820190508181035f83015261192f816118f6565b9050919050565b7f436c61696d20616c7265616479207374617274656400000000000000000000005f82015250565b5f61196a6015836114e1565b915061197582611936565b602082019050919050565b5f6020820190508181035f8301526119978161195e565b9050919050565b7f41646472657373657320616e6420616d6f756e7473206c656e677468206d69735f8201527f6d61746368000000000000000000000000000000000000000000000000000000602082015250565b5f6119f86025836114e1565b9150611a038261199e565b604082019050919050565b5f6020820190508181035f830152611a25816119ec565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215611a6e57611a6d6111d6565b5b5f611a7b8482850161159d565b91505092915050565b7f546f6b656e7320616c726561647920636c61696d6564206279206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f611ade6021836114e1565b9150611ae982611a84565b604082019050919050565b5f6020820190508181035f830152611b0b81611ad2565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611b4982611479565b9150611b5483611479565b9250828201905080821115611b6c57611b6b611b12565b5b92915050565b5f81905092915050565b5f611b86826114d7565b611b908185611b72565b9350611ba08185602086016114f1565b80840191505092915050565b5f611bb78284611b7c565b915081905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611c0657607f821691505b602082108103611c1957611c18611bc2565b5b50919050565b7f436c61696d20706572696f6420686173206578706972656400000000000000005f82015250565b5f611c536018836114e1565b9150611c5e82611c1f565b602082019050919050565b5f6020820190508181035f830152611c8081611c47565b9050919050565b7f546f6b656e7320616c726561647920636c61696d6564000000000000000000005f82015250565b5f611cbb6016836114e1565b9150611cc682611c87565b602082019050919050565b5f6020820190508181035f830152611ce881611caf565b9050919050565b7f4e6f20746f6b656e7320616c6c6f6361746564000000000000000000000000005f82015250565b5f611d236013836114e1565b9150611d2e82611cef565b602082019050919050565b5f6020820190508181035f830152611d5081611d17565b9050919050565b5f611d6182611479565b9150611d6c83611479565b9250828203905081811115611d8457611d83611b12565b5b92915050565b5f604082019050611d9d5f8301856117ca565b611daa60208301846116f6565b9392505050565b7f457870697279206d75737420626520696e2074686520667574757265000000005f82015250565b5f611de5601c836114e1565b9150611df082611db1565b602082019050919050565b5f6020820190508181035f830152611e1281611dd9565b9050919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302611e757fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611e3a565b611e7f8683611e3a565b95508019841693508086168417925050509392505050565b5f611eb1611eac611ea784611479565b6117f2565b611479565b9050919050565b5f819050919050565b611eca83611e97565b611ede611ed682611eb8565b848454611e46565b825550505050565b5f90565b611ef2611ee6565b611efd818484611ec1565b505050565b5b81811015611f2057611f155f82611eea565b600181019050611f03565b5050565b601f821115611f6557611f3681611e19565b611f3f84611e2b565b81016020851015611f4e578190505b611f62611f5a85611e2b565b830182611f02565b50505b505050565b5f82821c905092915050565b5f611f855f1984600802611f6a565b1980831691505092915050565b5f611f9d8383611f76565b9150826002028217905092915050565b611fb6826114d7565b67ffffffffffffffff811115611fcf57611fce6111f6565b5b611fd98254611bef565b611fe4828285611f24565b5f60209050601f831160018114612015575f8415612003578287015190505b61200d8582611f92565b865550612074565b601f19841661202386611e19565b5f5b8281101561204a57848901518255600182019150602085019450602081019050612025565b868310156120675784890151612063601f891682611f76565b8355505b6001600288020188555050505b505050505050565b7f436c61696d2068617320616c72656164792073746172746564000000000000005f82015250565b5f6120b06019836114e1565b91506120bb8261207c565b602082019050919050565b5f6020820190508181035f8301526120dd816120a4565b9050919050565b7f436c61696d2068617320616c72656164792065787069726564000000000000005f82015250565b5f6121186019836114e1565b9150612123826120e4565b602082019050919050565b5f6020820190508181035f8301526121458161210c565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f612180601f836114e1565b915061218b8261214c565b602082019050919050565b5f6020820190508181035f8301526121ad81612174565b905091905056fea2646970667358221220b58edfe45dd3cde60f41d0d0d4bdc2aebbba4ccb21817cec02f3295a04210e9664736f6c634300081a0033000000000000000000000000a554d87b6d0b77f46171190e2b17b05e5b04c20a0000000000000000000000000b852631f7899bc4f9794131b3c919a36bfa7bfb

Deployed Bytecode

0x608060405234801561000f575f80fd5b50600436106100a7575f3560e01c8063d7d5c0651161006f578063d7d5c06514610173578063ec08fc4c1461018f578063eff0f592146101ab578063f851a440146101dc578063f89d528a146101fa578063fc0c546a1461022a576100a7565b8063060b0c75146100ab57806325401d8e146100c75780633cff3549146100f7578063559c354114610127578063a598638614610143575b5f80fd5b6100c560048036038101906100c091906113cc565b610248565b005b6100e160048036038101906100dc91906114ac565b610737565b6040516100ee9190611537565b60405180910390f35b610111600480360381019061010c91906115b1565b6107dd565b60405161011e9190611625565b60405180910390f35b610141600480360381019061013c919061163e565b6108a9565b005b61015d600480360381019061015891906116b8565b610c36565b60405161016a9190611705565b60405180910390f35b61018d6004803603810190610188919061171e565b610c56565b005b6101a960048036038101906101a4919061171e565b610e5c565b005b6101c560048036038101906101c09190611778565b61101e565b6040516101d39291906117a3565b60405180910390f35b6101e461103e565b6040516101f191906117d9565b60405180910390f35b610214600480360381019061020f91906115b1565b611063565b6040516102219190611705565b60405180910390f35b610232611123565b60405161023f919061184d565b60405180910390f35b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146102d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102ce906118b0565b60405180910390fd5b845f60025f6102e584611148565b81526020019081526020015f205f015403610335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032c90611918565b60405180910390fd5b8560025f61034283611148565b81526020019081526020015f205f01544210610393576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038a90611980565b60405180910390fd5b8383905086869050146103db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d290611a0e565b60405180910390fd5b5f6103e588611148565b90505f60025f8381526020019081526020015f2090505f5b8888905081101561072b57816002015f8a8a848181106104205761041f611a2c565b5b90506020020160208101906104359190611a59565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156104bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104b290611af4565b60405180910390fd5b5f826001015f8b8b858181106104d4576104d3611a2c565b5b90506020020160208101906104e99190611a59565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054036105b2578160040189898381811061053f5761053e611a2c565b5b90506020020160208101906105549190611a59565b908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b8686828181106105c5576105c4611a2c565b5b90506020020135826001015f8b8b858181106105e4576105e3611a2c565b5b90506020020160208101906105f99190611a59565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546106409190611b3f565b9250508190555086868281811061065a57610659611a2c565b5b90506020020135826003015f8282546106739190611b3f565b9250508190555088888281811061068d5761068c611a2c565b5b90506020020160208101906106a29190611a59565b73ffffffffffffffffffffffffffffffffffffffff168a6040516106c69190611bac565b60405180910390207f67a90ba89fd057563a71faca71b9f50193409d439108e1e12a9eecf5d1fa24fa89898581811061070257610701611a2c565b5b905060200201356040516107169190611705565b60405180910390a380806001019150506103fd565b50505050505050505050565b60048181548110610746575f80fd5b905f5260205f20015f91509050805461075e90611bef565b80601f016020809104026020016040519081016040528092919081815260200182805461078a90611bef565b80156107d55780601f106107ac576101008083540402835291602001916107d5565b820191905f5260205f20905b8154815290600101906020018083116107b857829003601f168201915b505050505081565b5f825f60025f6107ec84611148565b81526020019081526020015f205f01540361083c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083390611918565b60405180910390fd5b60025f61084886611148565b81526020019081526020015f206002015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1691505092915050565b805f60025f6108b784611148565b81526020019081526020015f205f015403610907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fe90611918565b60405180910390fd5b61090f611177565b5f61091983611148565b90505f60025f8381526020019081526020015f209050805f01544210610974576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096b90611c69565b60405180910390fd5b806002015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615610a00576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f790611cd1565b60405180910390fd5b5f816001015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f8111610a85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7c90611d39565b60405180910390fd5b6001826002015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f826001015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080826003015f828254610b339190611d57565b9250508190555060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1933836040518363ffffffff1660e01b8152600401610b96929190611d8a565b5f604051808303815f87803b158015610bad575f80fd5b505af1158015610bbf573d5f803e3d5ffd5b505050503373ffffffffffffffffffffffffffffffffffffffff1685604051610be89190611bac565b60405180910390207fbc3fa44f5bc4e5f6340fc228b4609c4fc3760144310f27788d15433ae421465683604051610c1f9190611705565b60405180910390a3505050610c326111c4565b5050565b6003602052815f5260405f20602052805f5260405f205f91509150505481565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ce5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdc906118b0565b60405180910390fd5b428111610d27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1e90611dfb565b60405180910390fd5b5f610d3183611148565b90505f60025f8381526020019081526020015f205f015403610de9578160025f8381526020019081526020015f205f0181905550600483908060018154018082558091505060019003905f5260205f20015f909190919091509081610d969190611fad565b5082604051610da59190611bac565b60405180910390207fbbbd85ffe467bbfb1f86bf0f31c7235fe815ca3802a57f983bd9ce89926f128183604051610ddc9190611705565b60405180910390a2610e57565b60025f8281526020019081526020015f205f01544210610e3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e35906120c6565b60405180910390fd5b8160025f8381526020019081526020015f205f01819055505b505050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610eeb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee2906118b0565b60405180910390fd5b815f60025f610ef984611148565b81526020019081526020015f205f015403610f49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4090611918565b60405180910390fd5b5f610f5384611148565b90505f60025f8381526020019081526020015f20905042815f015411610fae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa59061212e565b60405180910390fd5b83815f015f828254610fc09190611b3f565b9250508190555084604051610fd59190611bac565b60405180910390207f84984ce307d48970e19e4769b3a23da87f0b3eaa6b0f9f9bfe077496a282234d825f015460405161100f9190611705565b60405180910390a25050505050565b6002602052805f5260405f205f91509050805f0154908060030154905082565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f825f60025f61107284611148565b81526020019081526020015f205f0154036110c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b990611918565b60405180910390fd5b60025f6110ce86611148565b81526020019081526020015f206001015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205491505092915050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f8160405160200161115a9190611bac565b604051602081830303815290604052805190602001209050919050565b60025f54036111bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b290612196565b60405180910390fd5b60025f81905550565b60015f81905550565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61122c826111e6565b810181811067ffffffffffffffff8211171561124b5761124a6111f6565b5b80604052505050565b5f61125d6111cd565b90506112698282611223565b919050565b5f67ffffffffffffffff821115611288576112876111f6565b5b611291826111e6565b9050602081019050919050565b828183375f83830152505050565b5f6112be6112b98461126e565b611254565b9050828152602081018484840111156112da576112d96111e2565b5b6112e584828561129e565b509392505050565b5f82601f830112611301576113006111de565b5b81356113118482602086016112ac565b91505092915050565b5f80fd5b5f80fd5b5f8083601f840112611337576113366111de565b5b8235905067ffffffffffffffff8111156113545761135361131a565b5b6020830191508360208202830111156113705761136f61131e565b5b9250929050565b5f8083601f84011261138c5761138b6111de565b5b8235905067ffffffffffffffff8111156113a9576113a861131a565b5b6020830191508360208202830111156113c5576113c461131e565b5b9250929050565b5f805f805f606086880312156113e5576113e46111d6565b5b5f86013567ffffffffffffffff811115611402576114016111da565b5b61140e888289016112ed565b955050602086013567ffffffffffffffff81111561142f5761142e6111da565b5b61143b88828901611322565b9450945050604086013567ffffffffffffffff81111561145e5761145d6111da565b5b61146a88828901611377565b92509250509295509295909350565b5f819050919050565b61148b81611479565b8114611495575f80fd5b50565b5f813590506114a681611482565b92915050565b5f602082840312156114c1576114c06111d6565b5b5f6114ce84828501611498565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f611509826114d7565b61151381856114e1565b93506115238185602086016114f1565b61152c816111e6565b840191505092915050565b5f6020820190508181035f83015261154f81846114ff565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61158082611557565b9050919050565b61159081611576565b811461159a575f80fd5b50565b5f813590506115ab81611587565b92915050565b5f80604083850312156115c7576115c66111d6565b5b5f83013567ffffffffffffffff8111156115e4576115e36111da565b5b6115f0858286016112ed565b92505060206116018582860161159d565b9150509250929050565b5f8115159050919050565b61161f8161160b565b82525050565b5f6020820190506116385f830184611616565b92915050565b5f60208284031215611653576116526111d6565b5b5f82013567ffffffffffffffff8111156116705761166f6111da565b5b61167c848285016112ed565b91505092915050565b5f819050919050565b61169781611685565b81146116a1575f80fd5b50565b5f813590506116b28161168e565b92915050565b5f80604083850312156116ce576116cd6111d6565b5b5f6116db8582860161159d565b92505060206116ec858286016116a4565b9150509250929050565b6116ff81611479565b82525050565b5f6020820190506117185f8301846116f6565b92915050565b5f8060408385031215611734576117336111d6565b5b5f83013567ffffffffffffffff811115611751576117506111da565b5b61175d858286016112ed565b925050602061176e85828601611498565b9150509250929050565b5f6020828403121561178d5761178c6111d6565b5b5f61179a848285016116a4565b91505092915050565b5f6040820190506117b65f8301856116f6565b6117c360208301846116f6565b9392505050565b6117d381611576565b82525050565b5f6020820190506117ec5f8301846117ca565b92915050565b5f819050919050565b5f61181561181061180b84611557565b6117f2565b611557565b9050919050565b5f611826826117fb565b9050919050565b5f6118378261181c565b9050919050565b6118478161182d565b82525050565b5f6020820190506118605f83018461183e565b92915050565b7f43616c6c6572206973206e6f742061646d696e000000000000000000000000005f82015250565b5f61189a6013836114e1565b91506118a582611866565b602082019050919050565b5f6020820190508181035f8301526118c78161188e565b9050919050565b7f436c61696d20646f6573206e6f742065786973740000000000000000000000005f82015250565b5f6119026014836114e1565b915061190d826118ce565b602082019050919050565b5f6020820190508181035f83015261192f816118f6565b9050919050565b7f436c61696d20616c7265616479207374617274656400000000000000000000005f82015250565b5f61196a6015836114e1565b915061197582611936565b602082019050919050565b5f6020820190508181035f8301526119978161195e565b9050919050565b7f41646472657373657320616e6420616d6f756e7473206c656e677468206d69735f8201527f6d61746368000000000000000000000000000000000000000000000000000000602082015250565b5f6119f86025836114e1565b9150611a038261199e565b604082019050919050565b5f6020820190508181035f830152611a25816119ec565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215611a6e57611a6d6111d6565b5b5f611a7b8482850161159d565b91505092915050565b7f546f6b656e7320616c726561647920636c61696d6564206279206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f611ade6021836114e1565b9150611ae982611a84565b604082019050919050565b5f6020820190508181035f830152611b0b81611ad2565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611b4982611479565b9150611b5483611479565b9250828201905080821115611b6c57611b6b611b12565b5b92915050565b5f81905092915050565b5f611b86826114d7565b611b908185611b72565b9350611ba08185602086016114f1565b80840191505092915050565b5f611bb78284611b7c565b915081905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611c0657607f821691505b602082108103611c1957611c18611bc2565b5b50919050565b7f436c61696d20706572696f6420686173206578706972656400000000000000005f82015250565b5f611c536018836114e1565b9150611c5e82611c1f565b602082019050919050565b5f6020820190508181035f830152611c8081611c47565b9050919050565b7f546f6b656e7320616c726561647920636c61696d6564000000000000000000005f82015250565b5f611cbb6016836114e1565b9150611cc682611c87565b602082019050919050565b5f6020820190508181035f830152611ce881611caf565b9050919050565b7f4e6f20746f6b656e7320616c6c6f6361746564000000000000000000000000005f82015250565b5f611d236013836114e1565b9150611d2e82611cef565b602082019050919050565b5f6020820190508181035f830152611d5081611d17565b9050919050565b5f611d6182611479565b9150611d6c83611479565b9250828203905081811115611d8457611d83611b12565b5b92915050565b5f604082019050611d9d5f8301856117ca565b611daa60208301846116f6565b9392505050565b7f457870697279206d75737420626520696e2074686520667574757265000000005f82015250565b5f611de5601c836114e1565b9150611df082611db1565b602082019050919050565b5f6020820190508181035f830152611e1281611dd9565b9050919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302611e757fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611e3a565b611e7f8683611e3a565b95508019841693508086168417925050509392505050565b5f611eb1611eac611ea784611479565b6117f2565b611479565b9050919050565b5f819050919050565b611eca83611e97565b611ede611ed682611eb8565b848454611e46565b825550505050565b5f90565b611ef2611ee6565b611efd818484611ec1565b505050565b5b81811015611f2057611f155f82611eea565b600181019050611f03565b5050565b601f821115611f6557611f3681611e19565b611f3f84611e2b565b81016020851015611f4e578190505b611f62611f5a85611e2b565b830182611f02565b50505b505050565b5f82821c905092915050565b5f611f855f1984600802611f6a565b1980831691505092915050565b5f611f9d8383611f76565b9150826002028217905092915050565b611fb6826114d7565b67ffffffffffffffff811115611fcf57611fce6111f6565b5b611fd98254611bef565b611fe4828285611f24565b5f60209050601f831160018114612015575f8415612003578287015190505b61200d8582611f92565b865550612074565b601f19841661202386611e19565b5f5b8281101561204a57848901518255600182019150602085019450602081019050612025565b868310156120675784890151612063601f891682611f76565b8355505b6001600288020188555050505b505050505050565b7f436c61696d2068617320616c72656164792073746172746564000000000000005f82015250565b5f6120b06019836114e1565b91506120bb8261207c565b602082019050919050565b5f6020820190508181035f8301526120dd816120a4565b9050919050565b7f436c61696d2068617320616c72656164792065787069726564000000000000005f82015250565b5f6121186019836114e1565b9150612123826120e4565b602082019050919050565b5f6020820190508181035f8301526121458161210c565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f612180601f836114e1565b915061218b8261214c565b602082019050919050565b5f6020820190508181035f8301526121ad81612174565b905091905056fea2646970667358221220b58edfe45dd3cde60f41d0d0d4bdc2aebbba4ccb21817cec02f3295a04210e9664736f6c634300081a0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000a554d87b6d0b77f46171190e2b17b05e5b04c20a0000000000000000000000000b852631f7899bc4f9794131b3c919a36bfa7bfb

-----Decoded View---------------
Arg [0] : tokenAddress (address): 0xa554d87b6D0b77f46171190e2b17B05e5B04C20a
Arg [1] : owner (address): 0x0B852631F7899bc4F9794131B3C919a36BFa7BFb

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000a554d87b6d0b77f46171190e2b17b05e5b04c20a
Arg [1] : 0000000000000000000000000b852631f7899bc4f9794131b3c919a36bfa7bfb


Deployed Bytecode Sourcemap

3432:4625:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5442:883;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3897:24;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7235:183;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6333:693;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3825:65;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4866:568;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7426:403;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3733:39;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;3930:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7034:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3478:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5442:883;4339:5;;;;;;;;;;;4325:19;;:10;:19;;;4317:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;5612:7:::1;4500:1;4459:6;:30;4466:22;4480:7;4466:13;:22::i;:::-;4459:30;;;;;;;;;;;:37;;;:42:::0;4451:75:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;5637:7:::2;4639:6;:30;4646:22;4660:7;4646:13;:22::i;:::-;4639:30;;;;;;;;;;;:37;;;4621:15;:55;4613:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;5685:7:::3;;:14;;5665:9;;:16;;:34;5657:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;5754:17;5774:22;5788:7;5774:13;:22::i;:::-;5754:42;;5807:19;5829:6;:17;5836:9;5829:17;;;;;;;;;;;5807:39;;5862:9;5857:461;5881:9;;:16;;5877:1;:20;5857:461;;;5928:5;:13;;:27;5942:9;;5952:1;5942:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;5928:27;;;;;;;;;;;;;;;;;;;;;;;;;5927:28;5919:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;6047:1;6012:5;:17;;:31;6030:9;;6040:1;6030:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;6012:31;;;;;;;;;;;;;;;;:36:::0;6008:120:::3;;6069:5;:24;;6099:9;;6109:1;6099:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;6069:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6008:120;6177:7;;6185:1;6177:10;;;;;;;:::i;:::-;;;;;;;;6142:5;:17;;:31;6160:9;;6170:1;6160:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;6142:31;;;;;;;;;;;;;;;;:45;;;;;;;:::i;:::-;;;;;;;;6226:7;;6234:1;6226:10;;;;;;;:::i;:::-;;;;;;;;6202:5;:20;;;:34;;;;;;;:::i;:::-;;;;;;;;6281:9;;6291:1;6281:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;6256:50;;6272:7;6256:50;;;;;;:::i;:::-;;;;;;;;;6295:7;;6303:1;6295:10;;;;;;;:::i;:::-;;;;;;;;6256:50;;;;;;:::i;:::-;;;;;;;;5899:3;;;;;;;5857:461;;;;5646:679;;4537:1:::2;4379::::1;5442:883:::0;;;;;:::o;3897:24::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7235:183::-;7339:4;7321:7;4500:1;4459:6;:30;4466:22;4480:7;4466:13;:22::i;:::-;4459:30;;;;;;;;;;;:37;;;:42;4451:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;7363:6:::1;:30;7370:22;7384:7;7370:13;:22::i;:::-;7363:30;;;;;;;;;;;:38;;:47;7402:7;7363:47;;;;;;;;;;;;;;;;;;;;;;;;;7356:54;;7235:183:::0;;;;;:::o;6333:693::-;6398:7;4500:1;4459:6;:30;4466:22;4480:7;4466:13;:22::i;:::-;4459:30;;;;;;;;;;;:37;;;:42;4451:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;2385:21:::1;:19;:21::i;:::-;6431:17:::2;6451:22;6465:7;6451:13;:22::i;:::-;6431:42;;6484:19;6506:6;:17;6513:9;6506:17;;;;;;;;;;;6484:39;;6562:5;:12;;;6544:15;:30;6536:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6623:5;:13;;:25;6637:10;6623:25;;;;;;;;;;;;;;;;;;;;;;;;;6622:26;6614:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;6686:14;6703:5;:17;;:29;6721:10;6703:29;;;;;;;;;;;;;;;;6686:46;;6760:1;6751:6;:10;6743:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;6826:4;6798:5;:13;;:25;6812:10;6798:25;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;6873:1;6841:5;:17;;:29;6859:10;6841:29;;;;;;;;;;;;;;;:33;;;;6909:6;6885:5;:20;;;:30;;;;;;;:::i;:::-;;;;;;;;6928:5;;;;;;;;;;;:10;;;6939;6951:6;6928:30;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;6999:10;6976:42;;6990:7;6976:42;;;;;;:::i;:::-;;;;;;;;;7011:6;6976:42;;;;;;:::i;:::-;;;;;;;;6420:606;;;2429:20:::1;:18;:20::i;:::-;6333:693:::0;;:::o;3825:65::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4866:568::-;4339:5;;;;;;;;;;;4325:19;;:10;:19;;;4317:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;4973:15:::1;4964:6;:24;4956:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;5032:17;5052:22;5066:7;5052:13;:22::i;:::-;5032:42;;5117:1;5089:6;:17;5096:9;5089:17;;;;;;;;;;;:24;;;:29:::0;5085:342:::1;;5162:6;5135;:17;5142:9;5135:17;;;;;;;;;;;:24;;:33;;;;5183:8;5197:7;5183:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5238:7;5225:29;;;;;;:::i;:::-;;;;;;;;;5247:6;5225:29;;;;;;:::i;:::-;;;;;;;;5085:342;;;5313:6;:17;5320:9;5313:17;;;;;;;;;;;:24;;;5295:15;:42;5287:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;5409:6;5382;:17;5389:9;5382:17;;;;;;;;;;;:24;;:33;;;;5085:342;4945:489;4866:568:::0;;:::o;7426:403::-;4339:5;;;;;;;;;;;4325:19;;:10;:19;;;4317:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;7531:7:::1;4500:1;4459:6;:30;4466:22;4480:7;4466:13;:22::i;:::-;4459:30;;;;;;;;;;;:37;;;:42:::0;4451:75:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;7551:17:::2;7571:22;7585:7;7571:13;:22::i;:::-;7551:42;;7604:19;7626:6;:17;7633:9;7626:17;;;;;;;;;;;7604:39;;7677:15;7662:5;:12;;;:30;7654:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7749:14;7733:5;:12;;;:30;;;;;;;:::i;:::-;;;;;;;;7799:7;7779:42;;;;;;:::i;:::-;;;;;;;;;7808:5;:12;;;7779:42;;;;;;:::i;:::-;;;;;;;;7540:289;;4379:1:::1;7426:403:::0;;:::o;3733:39::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3930:20::-;;;;;;;;;;;;;:::o;7034:193::-;7141:7;7123;4500:1;4459:6;:30;4466:22;4480:7;4466:13;:22::i;:::-;4459:30;;;;;;;;;;;:37;;;:42;4451:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;7168:6:::1;:30;7175:22;7189:7;7175:13;:22::i;:::-;7168:30;;;;;;;;;;;:42;;:51;7211:7;7168:51;;;;;;;;;;;;;;;;7161:58;;7034:193:::0;;;;;:::o;3478:27::-;;;;;;;;;;;;;:::o;7914:140::-;7983:7;8037;8020:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;8010:36;;;;;;8003:43;;7914:140;;;:::o;2465:293::-;1867:1;2599:7;;:19;2591:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;1867:1;2732:7;:18;;;;2465:293::o;2766:213::-;1823:1;2949:7;:22;;;;2766:213::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:148::-;1708:6;1703:3;1698;1685:30;1749:1;1740:6;1735:3;1731:16;1724:27;1610:148;;;:::o;1764:425::-;1842:5;1867:66;1883:49;1925:6;1883:49;:::i;:::-;1867:66;:::i;:::-;1858:75;;1956:6;1949:5;1942:21;1994:4;1987:5;1983:16;2032:3;2023:6;2018:3;2014:16;2011:25;2008:112;;;2039:79;;:::i;:::-;2008:112;2129:54;2176:6;2171:3;2166;2129:54;:::i;:::-;1848:341;1764:425;;;;;:::o;2209:340::-;2265:5;2314:3;2307:4;2299:6;2295:17;2291:27;2281:122;;2322:79;;:::i;:::-;2281:122;2439:6;2426:20;2464:79;2539:3;2531:6;2524:4;2516:6;2512:17;2464:79;:::i;:::-;2455:88;;2271:278;2209:340;;;;:::o;2555:117::-;2664:1;2661;2654:12;2678:117;2787:1;2784;2777:12;2818:568;2891:8;2901:6;2951:3;2944:4;2936:6;2932:17;2928:27;2918:122;;2959:79;;:::i;:::-;2918:122;3072:6;3059:20;3049:30;;3102:18;3094:6;3091:30;3088:117;;;3124:79;;:::i;:::-;3088:117;3238:4;3230:6;3226:17;3214:29;;3292:3;3284:4;3276:6;3272:17;3262:8;3258:32;3255:41;3252:128;;;3299:79;;:::i;:::-;3252:128;2818:568;;;;;:::o;3409:::-;3482:8;3492:6;3542:3;3535:4;3527:6;3523:17;3519:27;3509:122;;3550:79;;:::i;:::-;3509:122;3663:6;3650:20;3640:30;;3693:18;3685:6;3682:30;3679:117;;;3715:79;;:::i;:::-;3679:117;3829:4;3821:6;3817:17;3805:29;;3883:3;3875:4;3867:6;3863:17;3853:8;3849:32;3846:41;3843:128;;;3890:79;;:::i;:::-;3843:128;3409:568;;;;;:::o;3983:1259::-;4124:6;4132;4140;4148;4156;4205:2;4193:9;4184:7;4180:23;4176:32;4173:119;;;4211:79;;:::i;:::-;4173:119;4359:1;4348:9;4344:17;4331:31;4389:18;4381:6;4378:30;4375:117;;;4411:79;;:::i;:::-;4375:117;4516:63;4571:7;4562:6;4551:9;4547:22;4516:63;:::i;:::-;4506:73;;4302:287;4656:2;4645:9;4641:18;4628:32;4687:18;4679:6;4676:30;4673:117;;;4709:79;;:::i;:::-;4673:117;4822:80;4894:7;4885:6;4874:9;4870:22;4822:80;:::i;:::-;4804:98;;;;4599:313;4979:2;4968:9;4964:18;4951:32;5010:18;5002:6;4999:30;4996:117;;;5032:79;;:::i;:::-;4996:117;5145:80;5217:7;5208:6;5197:9;5193:22;5145:80;:::i;:::-;5127:98;;;;4922:313;3983:1259;;;;;;;;:::o;5248:77::-;5285:7;5314:5;5303:16;;5248:77;;;:::o;5331:122::-;5404:24;5422:5;5404:24;:::i;:::-;5397:5;5394:35;5384:63;;5443:1;5440;5433:12;5384:63;5331:122;:::o;5459:139::-;5505:5;5543:6;5530:20;5521:29;;5559:33;5586:5;5559:33;:::i;:::-;5459:139;;;;:::o;5604:329::-;5663:6;5712:2;5700:9;5691:7;5687:23;5683:32;5680:119;;;5718:79;;:::i;:::-;5680:119;5838:1;5863:53;5908:7;5899:6;5888:9;5884:22;5863:53;:::i;:::-;5853:63;;5809:117;5604:329;;;;:::o;5939:99::-;5991:6;6025:5;6019:12;6009:22;;5939:99;;;:::o;6044:169::-;6128:11;6162:6;6157:3;6150:19;6202:4;6197:3;6193:14;6178:29;;6044:169;;;;:::o;6219:139::-;6308:6;6303:3;6298;6292:23;6349:1;6340:6;6335:3;6331:16;6324:27;6219:139;;;:::o;6364:377::-;6452:3;6480:39;6513:5;6480:39;:::i;:::-;6535:71;6599:6;6594:3;6535:71;:::i;:::-;6528:78;;6615:65;6673:6;6668:3;6661:4;6654:5;6650:16;6615:65;:::i;:::-;6705:29;6727:6;6705:29;:::i;:::-;6700:3;6696:39;6689:46;;6456:285;6364:377;;;;:::o;6747:313::-;6860:4;6898:2;6887:9;6883:18;6875:26;;6947:9;6941:4;6937:20;6933:1;6922:9;6918:17;6911:47;6975:78;7048:4;7039:6;6975:78;:::i;:::-;6967:86;;6747:313;;;;:::o;7066:126::-;7103:7;7143:42;7136:5;7132:54;7121:65;;7066:126;;;:::o;7198:96::-;7235:7;7264:24;7282:5;7264:24;:::i;:::-;7253:35;;7198:96;;;:::o;7300:122::-;7373:24;7391:5;7373:24;:::i;:::-;7366:5;7363:35;7353:63;;7412:1;7409;7402:12;7353:63;7300:122;:::o;7428:139::-;7474:5;7512:6;7499:20;7490:29;;7528:33;7555:5;7528:33;:::i;:::-;7428:139;;;;:::o;7573:654::-;7651:6;7659;7708:2;7696:9;7687:7;7683:23;7679:32;7676:119;;;7714:79;;:::i;:::-;7676:119;7862:1;7851:9;7847:17;7834:31;7892:18;7884:6;7881:30;7878:117;;;7914:79;;:::i;:::-;7878:117;8019:63;8074:7;8065:6;8054:9;8050:22;8019:63;:::i;:::-;8009:73;;7805:287;8131:2;8157:53;8202:7;8193:6;8182:9;8178:22;8157:53;:::i;:::-;8147:63;;8102:118;7573:654;;;;;:::o;8233:90::-;8267:7;8310:5;8303:13;8296:21;8285:32;;8233:90;;;:::o;8329:109::-;8410:21;8425:5;8410:21;:::i;:::-;8405:3;8398:34;8329:109;;:::o;8444:210::-;8531:4;8569:2;8558:9;8554:18;8546:26;;8582:65;8644:1;8633:9;8629:17;8620:6;8582:65;:::i;:::-;8444:210;;;;:::o;8660:509::-;8729:6;8778:2;8766:9;8757:7;8753:23;8749:32;8746:119;;;8784:79;;:::i;:::-;8746:119;8932:1;8921:9;8917:17;8904:31;8962:18;8954:6;8951:30;8948:117;;;8984:79;;:::i;:::-;8948:117;9089:63;9144:7;9135:6;9124:9;9120:22;9089:63;:::i;:::-;9079:73;;8875:287;8660:509;;;;:::o;9175:77::-;9212:7;9241:5;9230:16;;9175:77;;;:::o;9258:122::-;9331:24;9349:5;9331:24;:::i;:::-;9324:5;9321:35;9311:63;;9370:1;9367;9360:12;9311:63;9258:122;:::o;9386:139::-;9432:5;9470:6;9457:20;9448:29;;9486:33;9513:5;9486:33;:::i;:::-;9386:139;;;;:::o;9531:474::-;9599:6;9607;9656:2;9644:9;9635:7;9631:23;9627:32;9624:119;;;9662:79;;:::i;:::-;9624:119;9782:1;9807:53;9852:7;9843:6;9832:9;9828:22;9807:53;:::i;:::-;9797:63;;9753:117;9909:2;9935:53;9980:7;9971:6;9960:9;9956:22;9935:53;:::i;:::-;9925:63;;9880:118;9531:474;;;;;:::o;10011:118::-;10098:24;10116:5;10098:24;:::i;:::-;10093:3;10086:37;10011:118;;:::o;10135:222::-;10228:4;10266:2;10255:9;10251:18;10243:26;;10279:71;10347:1;10336:9;10332:17;10323:6;10279:71;:::i;:::-;10135:222;;;;:::o;10363:654::-;10441:6;10449;10498:2;10486:9;10477:7;10473:23;10469:32;10466:119;;;10504:79;;:::i;:::-;10466:119;10652:1;10641:9;10637:17;10624:31;10682:18;10674:6;10671:30;10668:117;;;10704:79;;:::i;:::-;10668:117;10809:63;10864:7;10855:6;10844:9;10840:22;10809:63;:::i;:::-;10799:73;;10595:287;10921:2;10947:53;10992:7;10983:6;10972:9;10968:22;10947:53;:::i;:::-;10937:63;;10892:118;10363:654;;;;;:::o;11023:329::-;11082:6;11131:2;11119:9;11110:7;11106:23;11102:32;11099:119;;;11137:79;;:::i;:::-;11099:119;11257:1;11282:53;11327:7;11318:6;11307:9;11303:22;11282:53;:::i;:::-;11272:63;;11228:117;11023:329;;;;:::o;11358:332::-;11479:4;11517:2;11506:9;11502:18;11494:26;;11530:71;11598:1;11587:9;11583:17;11574:6;11530:71;:::i;:::-;11611:72;11679:2;11668:9;11664:18;11655:6;11611:72;:::i;:::-;11358:332;;;;;:::o;11696:118::-;11783:24;11801:5;11783:24;:::i;:::-;11778:3;11771:37;11696:118;;:::o;11820:222::-;11913:4;11951:2;11940:9;11936:18;11928:26;;11964:71;12032:1;12021:9;12017:17;12008:6;11964:71;:::i;:::-;11820:222;;;;:::o;12048:60::-;12076:3;12097:5;12090:12;;12048:60;;;:::o;12114:142::-;12164:9;12197:53;12215:34;12224:24;12242:5;12224:24;:::i;:::-;12215:34;:::i;:::-;12197:53;:::i;:::-;12184:66;;12114:142;;;:::o;12262:126::-;12312:9;12345:37;12376:5;12345:37;:::i;:::-;12332:50;;12262:126;;;:::o;12394:147::-;12465:9;12498:37;12529:5;12498:37;:::i;:::-;12485:50;;12394:147;;;:::o;12547:173::-;12655:58;12707:5;12655:58;:::i;:::-;12650:3;12643:71;12547:173;;:::o;12726:264::-;12840:4;12878:2;12867:9;12863:18;12855:26;;12891:92;12980:1;12969:9;12965:17;12956:6;12891:92;:::i;:::-;12726:264;;;;:::o;12996:169::-;13136:21;13132:1;13124:6;13120:14;13113:45;12996:169;:::o;13171:366::-;13313:3;13334:67;13398:2;13393:3;13334:67;:::i;:::-;13327:74;;13410:93;13499:3;13410:93;:::i;:::-;13528:2;13523:3;13519:12;13512:19;;13171:366;;;:::o;13543:419::-;13709:4;13747:2;13736:9;13732:18;13724:26;;13796:9;13790:4;13786:20;13782:1;13771:9;13767:17;13760:47;13824:131;13950:4;13824:131;:::i;:::-;13816:139;;13543:419;;;:::o;13968:170::-;14108:22;14104:1;14096:6;14092:14;14085:46;13968:170;:::o;14144:366::-;14286:3;14307:67;14371:2;14366:3;14307:67;:::i;:::-;14300:74;;14383:93;14472:3;14383:93;:::i;:::-;14501:2;14496:3;14492:12;14485:19;;14144:366;;;:::o;14516:419::-;14682:4;14720:2;14709:9;14705:18;14697:26;;14769:9;14763:4;14759:20;14755:1;14744:9;14740:17;14733:47;14797:131;14923:4;14797:131;:::i;:::-;14789:139;;14516:419;;;:::o;14941:171::-;15081:23;15077:1;15069:6;15065:14;15058:47;14941:171;:::o;15118:366::-;15260:3;15281:67;15345:2;15340:3;15281:67;:::i;:::-;15274:74;;15357:93;15446:3;15357:93;:::i;:::-;15475:2;15470:3;15466:12;15459:19;;15118:366;;;:::o;15490:419::-;15656:4;15694:2;15683:9;15679:18;15671:26;;15743:9;15737:4;15733:20;15729:1;15718:9;15714:17;15707:47;15771:131;15897:4;15771:131;:::i;:::-;15763:139;;15490:419;;;:::o;15915:224::-;16055:34;16051:1;16043:6;16039:14;16032:58;16124:7;16119:2;16111:6;16107:15;16100:32;15915:224;:::o;16145:366::-;16287:3;16308:67;16372:2;16367:3;16308:67;:::i;:::-;16301:74;;16384:93;16473:3;16384:93;:::i;:::-;16502:2;16497:3;16493:12;16486:19;;16145:366;;;:::o;16517:419::-;16683:4;16721:2;16710:9;16706:18;16698:26;;16770:9;16764:4;16760:20;16756:1;16745:9;16741:17;16734:47;16798:131;16924:4;16798:131;:::i;:::-;16790:139;;16517:419;;;:::o;16942:180::-;16990:77;16987:1;16980:88;17087:4;17084:1;17077:15;17111:4;17108:1;17101:15;17128:329;17187:6;17236:2;17224:9;17215:7;17211:23;17207:32;17204:119;;;17242:79;;:::i;:::-;17204:119;17362:1;17387:53;17432:7;17423:6;17412:9;17408:22;17387:53;:::i;:::-;17377:63;;17333:117;17128:329;;;;:::o;17463:220::-;17603:34;17599:1;17591:6;17587:14;17580:58;17672:3;17667:2;17659:6;17655:15;17648:28;17463:220;:::o;17689:366::-;17831:3;17852:67;17916:2;17911:3;17852:67;:::i;:::-;17845:74;;17928:93;18017:3;17928:93;:::i;:::-;18046:2;18041:3;18037:12;18030:19;;17689:366;;;:::o;18061:419::-;18227:4;18265:2;18254:9;18250:18;18242:26;;18314:9;18308:4;18304:20;18300:1;18289:9;18285:17;18278:47;18342:131;18468:4;18342:131;:::i;:::-;18334:139;;18061:419;;;:::o;18486:180::-;18534:77;18531:1;18524:88;18631:4;18628:1;18621:15;18655:4;18652:1;18645:15;18672:191;18712:3;18731:20;18749:1;18731:20;:::i;:::-;18726:25;;18765:20;18783:1;18765:20;:::i;:::-;18760:25;;18808:1;18805;18801:9;18794:16;;18829:3;18826:1;18823:10;18820:36;;;18836:18;;:::i;:::-;18820:36;18672:191;;;;:::o;18869:148::-;18971:11;19008:3;18993:18;;18869:148;;;;:::o;19023:390::-;19129:3;19157:39;19190:5;19157:39;:::i;:::-;19212:89;19294:6;19289:3;19212:89;:::i;:::-;19205:96;;19310:65;19368:6;19363:3;19356:4;19349:5;19345:16;19310:65;:::i;:::-;19400:6;19395:3;19391:16;19384:23;;19133:280;19023:390;;;;:::o;19419:275::-;19551:3;19573:95;19664:3;19655:6;19573:95;:::i;:::-;19566:102;;19685:3;19678:10;;19419:275;;;;:::o;19700:180::-;19748:77;19745:1;19738:88;19845:4;19842:1;19835:15;19869:4;19866:1;19859:15;19886:320;19930:6;19967:1;19961:4;19957:12;19947:22;;20014:1;20008:4;20004:12;20035:18;20025:81;;20091:4;20083:6;20079:17;20069:27;;20025:81;20153:2;20145:6;20142:14;20122:18;20119:38;20116:84;;20172:18;;:::i;:::-;20116:84;19937:269;19886:320;;;:::o;20212:174::-;20352:26;20348:1;20340:6;20336:14;20329:50;20212:174;:::o;20392:366::-;20534:3;20555:67;20619:2;20614:3;20555:67;:::i;:::-;20548:74;;20631:93;20720:3;20631:93;:::i;:::-;20749:2;20744:3;20740:12;20733:19;;20392:366;;;:::o;20764:419::-;20930:4;20968:2;20957:9;20953:18;20945:26;;21017:9;21011:4;21007:20;21003:1;20992:9;20988:17;20981:47;21045:131;21171:4;21045:131;:::i;:::-;21037:139;;20764:419;;;:::o;21189:172::-;21329:24;21325:1;21317:6;21313:14;21306:48;21189:172;:::o;21367:366::-;21509:3;21530:67;21594:2;21589:3;21530:67;:::i;:::-;21523:74;;21606:93;21695:3;21606:93;:::i;:::-;21724:2;21719:3;21715:12;21708:19;;21367:366;;;:::o;21739:419::-;21905:4;21943:2;21932:9;21928:18;21920:26;;21992:9;21986:4;21982:20;21978:1;21967:9;21963:17;21956:47;22020:131;22146:4;22020:131;:::i;:::-;22012:139;;21739:419;;;:::o;22164:169::-;22304:21;22300:1;22292:6;22288:14;22281:45;22164:169;:::o;22339:366::-;22481:3;22502:67;22566:2;22561:3;22502:67;:::i;:::-;22495:74;;22578:93;22667:3;22578:93;:::i;:::-;22696:2;22691:3;22687:12;22680:19;;22339:366;;;:::o;22711:419::-;22877:4;22915:2;22904:9;22900:18;22892:26;;22964:9;22958:4;22954:20;22950:1;22939:9;22935:17;22928:47;22992:131;23118:4;22992:131;:::i;:::-;22984:139;;22711:419;;;:::o;23136:194::-;23176:4;23196:20;23214:1;23196:20;:::i;:::-;23191:25;;23230:20;23248:1;23230:20;:::i;:::-;23225:25;;23274:1;23271;23267:9;23259:17;;23298:1;23292:4;23289:11;23286:37;;;23303:18;;:::i;:::-;23286:37;23136:194;;;;:::o;23336:332::-;23457:4;23495:2;23484:9;23480:18;23472:26;;23508:71;23576:1;23565:9;23561:17;23552:6;23508:71;:::i;:::-;23589:72;23657:2;23646:9;23642:18;23633:6;23589:72;:::i;:::-;23336:332;;;;;:::o;23674:178::-;23814:30;23810:1;23802:6;23798:14;23791:54;23674:178;:::o;23858:366::-;24000:3;24021:67;24085:2;24080:3;24021:67;:::i;:::-;24014:74;;24097:93;24186:3;24097:93;:::i;:::-;24215:2;24210:3;24206:12;24199:19;;23858:366;;;:::o;24230:419::-;24396:4;24434:2;24423:9;24419:18;24411:26;;24483:9;24477:4;24473:20;24469:1;24458:9;24454:17;24447:47;24511:131;24637:4;24511:131;:::i;:::-;24503:139;;24230:419;;;:::o;24655:141::-;24704:4;24727:3;24719:11;;24750:3;24747:1;24740:14;24784:4;24781:1;24771:18;24763:26;;24655:141;;;:::o;24802:93::-;24839:6;24886:2;24881;24874:5;24870:14;24866:23;24856:33;;24802:93;;;:::o;24901:107::-;24945:8;24995:5;24989:4;24985:16;24964:37;;24901:107;;;;:::o;25014:393::-;25083:6;25133:1;25121:10;25117:18;25156:97;25186:66;25175:9;25156:97;:::i;:::-;25274:39;25304:8;25293:9;25274:39;:::i;:::-;25262:51;;25346:4;25342:9;25335:5;25331:21;25322:30;;25395:4;25385:8;25381:19;25374:5;25371:30;25361:40;;25090:317;;25014:393;;;;;:::o;25413:142::-;25463:9;25496:53;25514:34;25523:24;25541:5;25523:24;:::i;:::-;25514:34;:::i;:::-;25496:53;:::i;:::-;25483:66;;25413:142;;;:::o;25561:75::-;25604:3;25625:5;25618:12;;25561:75;;;:::o;25642:269::-;25752:39;25783:7;25752:39;:::i;:::-;25813:91;25862:41;25886:16;25862:41;:::i;:::-;25854:6;25847:4;25841:11;25813:91;:::i;:::-;25807:4;25800:105;25718:193;25642:269;;;:::o;25917:73::-;25962:3;25917:73;:::o;25996:189::-;26073:32;;:::i;:::-;26114:65;26172:6;26164;26158:4;26114:65;:::i;:::-;26049:136;25996:189;;:::o;26191:186::-;26251:120;26268:3;26261:5;26258:14;26251:120;;;26322:39;26359:1;26352:5;26322:39;:::i;:::-;26295:1;26288:5;26284:13;26275:22;;26251:120;;;26191:186;;:::o;26383:543::-;26484:2;26479:3;26476:11;26473:446;;;26518:38;26550:5;26518:38;:::i;:::-;26602:29;26620:10;26602:29;:::i;:::-;26592:8;26588:44;26785:2;26773:10;26770:18;26767:49;;;26806:8;26791:23;;26767:49;26829:80;26885:22;26903:3;26885:22;:::i;:::-;26875:8;26871:37;26858:11;26829:80;:::i;:::-;26488:431;;26473:446;26383:543;;;:::o;26932:117::-;26986:8;27036:5;27030:4;27026:16;27005:37;;26932:117;;;;:::o;27055:169::-;27099:6;27132:51;27180:1;27176:6;27168:5;27165:1;27161:13;27132:51;:::i;:::-;27128:56;27213:4;27207;27203:15;27193:25;;27106:118;27055:169;;;;:::o;27229:295::-;27305:4;27451:29;27476:3;27470:4;27451:29;:::i;:::-;27443:37;;27513:3;27510:1;27506:11;27500:4;27497:21;27489:29;;27229:295;;;;:::o;27529:1395::-;27646:37;27679:3;27646:37;:::i;:::-;27748:18;27740:6;27737:30;27734:56;;;27770:18;;:::i;:::-;27734:56;27814:38;27846:4;27840:11;27814:38;:::i;:::-;27899:67;27959:6;27951;27945:4;27899:67;:::i;:::-;27993:1;28017:4;28004:17;;28049:2;28041:6;28038:14;28066:1;28061:618;;;;28723:1;28740:6;28737:77;;;28789:9;28784:3;28780:19;28774:26;28765:35;;28737:77;28840:67;28900:6;28893:5;28840:67;:::i;:::-;28834:4;28827:81;28696:222;28031:887;;28061:618;28113:4;28109:9;28101:6;28097:22;28147:37;28179:4;28147:37;:::i;:::-;28206:1;28220:208;28234:7;28231:1;28228:14;28220:208;;;28313:9;28308:3;28304:19;28298:26;28290:6;28283:42;28364:1;28356:6;28352:14;28342:24;;28411:2;28400:9;28396:18;28383:31;;28257:4;28254:1;28250:12;28245:17;;28220:208;;;28456:6;28447:7;28444:19;28441:179;;;28514:9;28509:3;28505:19;28499:26;28557:48;28599:4;28591:6;28587:17;28576:9;28557:48;:::i;:::-;28549:6;28542:64;28464:156;28441:179;28666:1;28662;28654:6;28650:14;28646:22;28640:4;28633:36;28068:611;;;28031:887;;27621:1303;;;27529:1395;;:::o;28930:175::-;29070:27;29066:1;29058:6;29054:14;29047:51;28930:175;:::o;29111:366::-;29253:3;29274:67;29338:2;29333:3;29274:67;:::i;:::-;29267:74;;29350:93;29439:3;29350:93;:::i;:::-;29468:2;29463:3;29459:12;29452:19;;29111:366;;;:::o;29483:419::-;29649:4;29687:2;29676:9;29672:18;29664:26;;29736:9;29730:4;29726:20;29722:1;29711:9;29707:17;29700:47;29764:131;29890:4;29764:131;:::i;:::-;29756:139;;29483:419;;;:::o;29908:175::-;30048:27;30044:1;30036:6;30032:14;30025:51;29908:175;:::o;30089:366::-;30231:3;30252:67;30316:2;30311:3;30252:67;:::i;:::-;30245:74;;30328:93;30417:3;30328:93;:::i;:::-;30446:2;30441:3;30437:12;30430:19;;30089:366;;;:::o;30461:419::-;30627:4;30665:2;30654:9;30650:18;30642:26;;30714:9;30708:4;30704:20;30700:1;30689:9;30685:17;30678:47;30742:131;30868:4;30742:131;:::i;:::-;30734:139;;30461:419;;;:::o;30886:181::-;31026:33;31022:1;31014:6;31010:14;31003:57;30886:181;:::o;31073:366::-;31215:3;31236:67;31300:2;31295:3;31236:67;:::i;:::-;31229:74;;31312:93;31401:3;31312:93;:::i;:::-;31430:2;31425:3;31421:12;31414:19;;31073:366;;;:::o;31445:419::-;31611:4;31649:2;31638:9;31634:18;31626:26;;31698:9;31692:4;31688:20;31684:1;31673:9;31669:17;31662:47;31726:131;31852:4;31726:131;:::i;:::-;31718:139;;31445:419;;;:::o

Swarm Source

ipfs://b58edfe45dd3cde60f41d0d0d4bdc2aebbba4ccb21817cec02f3295a04210e96

Block Transaction Gas Used Reward
view all blocks produced

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

Validator Index Block Amount
View All Withdrawals

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