ETH Price: $3,842.00 (+6.20%)

Contract

0x9E69c455298D2C7E846129f8A72A0a99C451F1c8
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Age:180D
Reset Filter

Transaction Hash
Method
Block
From
To

There are no matching entries

Update your filters to view other transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
KEYSDistributor

Compiler Version
v0.8.14+commit.80d49f37

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-08-17
*/

//SPDX-License-Identifier: MIT
pragma solidity 0.8.14;

interface IERC20 {

    function totalSupply() external view returns (uint256);
    
    function symbol() external view returns(string memory);
    
    function name() external view returns(string memory);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);
    
    /**
     * @dev Returns the number of decimal places
     */
    function decimals() external view returns (uint8);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

/**
 * @title Owner
 * @dev Set & change owner
 */
contract Ownable {

    address private owner;
    
    // event for EVM logging
    event OwnerSet(address indexed oldOwner, address indexed newOwner);
    
    // modifier to check if caller is owner
    modifier onlyOwner() {
        // If the first argument of 'require' evaluates to 'false', execution terminates and all
        // changes to the state and to Ether balances are reverted.
        // This used to consume all gas in old EVM versions, but not anymore.
        // It is often a good idea to use 'require' to check if functions are called correctly.
        // As a second argument, you can also provide an explanation about what went wrong.
        require(msg.sender == owner, "Caller is not owner");
        _;
    }
    
    /**
     * @dev Set contract deployer as owner
     */
    constructor() {
        owner = msg.sender; // 'msg.sender' is sender of current call, contract deployer for a constructor
        emit OwnerSet(address(0), owner);
    }

    /**
     * @dev Change owner
     * @param newOwner address of new owner
     */
    function changeOwner(address newOwner) public onlyOwner {
        emit OwnerSet(owner, newOwner);
        owner = newOwner;
    }

    /**
     * @dev Return owner address 
     * @return address of owner
     */
    function getOwner() external view returns (address) {
        return owner;
    }
}

interface IKeysFarming {
    function deposit(uint256 amount) external;
}

interface ILoyalKeyDatabase {
    function getLoyalKeyRank(address user) external view returns (uint256);
}

/**
 *
 * KEYS Funding Receiver
 * Will Allocate Funding To Different Sources
 *
 */
contract KEYSDistributor is Ownable {

    // KEYS
    address public constant KEYS = 0xe0a189C975e4928222978A74517442239a0b86ff;

    // LoyalKey Database
    ILoyalKeyDatabase public immutable loyalKey;

    // Max Int
    uint256 private constant MAX_INT = type(uint256).max;

    // Farming & Stake Manager
    address public farm;
    address public stake;
    
    // allocation to farm + stake
    uint256 public farmFee;
    uint256 public stakeFee;

    // farm fee + stake fee
    uint256 public feeDenom;

    // keys to distribute per second 0.385802469 => 1,000,000 keys per month (30 days)
    uint256 public keysPerSecond = 385802469;

    // last second to distribute keys
    uint256 public lastSecond;

    // minimum to distribute keys
    uint256 public distributionMinimum = 1 * 10**9;

    // tracks total rewards
    uint256 public totalRewards;
    uint256 public totalBounties;

    // Bounty Percent Out Of 1,000
    uint256 public constant Default_Bounty_Percent = 10; // 1%
    uint256 private constant Bounty_Denom = 1000;

    mapping ( uint256 => uint256 ) public loyalKeyRankToBountyPercent;
    
    constructor(uint256 stakePercent, uint256 farmPercent, address loyalKeyDB) {

        loyalKey = ILoyalKeyDatabase(loyalKeyDB);
    
        farm = 0x810487135d29f35f06f1075b48D5978F1791d743;
        stake = 0x73940d8E53b3cF00D92e3EBFfa33b4d54626306D;
    
        stakeFee = stakePercent;
        farmFee = farmPercent;
        feeDenom = stakePercent + farmPercent;

        loyalKeyRankToBountyPercent[0] = 10; // 1.0% for zero rank
        loyalKeyRankToBountyPercent[1] = 16; // 1.6% for first rank
        loyalKeyRankToBountyPercent[2] = 20; // 2.0% for second rank
        loyalKeyRankToBountyPercent[3] = 24; // 2.4% for third rank
        loyalKeyRankToBountyPercent[4] = 28; // 2.8% for forth rank
        loyalKeyRankToBountyPercent[5] = 32; // 3.2% for fifth rank
        loyalKeyRankToBountyPercent[6] = 36; // 3.6% for sixth rank
        loyalKeyRankToBountyPercent[7] = 40; // 4.0% for seventh rank

        lastSecond = block.timestamp;
        IERC20(KEYS).approve(farm, MAX_INT);
    }
    
    // Events
    event ResetRewardTimer();
    event SetFarm(address farm);
    event SetStaker(address staker);
    event TokenWithdrawal(uint256 amount);
    event SetKeysPerSecond(uint256 keysPerSec);
    event SetDistributionMinimum(uint256 minKeys);
    event SetBountyPercent(uint256 loyalKeyRank, uint256 newBounty);
    event SetFundPercents(uint256 farmPercentage, uint256 stakePercent);

    function setKeysPerSecond(uint256 keysPerSec) external onlyOwner {
        keysPerSecond = keysPerSec;
        emit SetKeysPerSecond(keysPerSec);
    }

    function setDistributionMinimum(uint256 minKeys) external onlyOwner {
        distributionMinimum = minKeys;
        emit SetDistributionMinimum(minKeys);
    }
    
    function resetRewardTimer() external onlyOwner {
        lastSecond = block.timestamp;
        emit ResetRewardTimer();
    }

    function setFarm(address _farm) external onlyOwner {
        farm = _farm;
        emit SetFarm(_farm);
    }
    
    function setStake(address _stake) external onlyOwner {
        stake = _stake;
        emit SetStaker(_stake);
    }

    function setBountyPercentForLoyalKeyRank(uint256 loyalKeyRank, uint256 newBountyPercent) external onlyOwner {
        require(
            newBountyPercent < Bounty_Denom,
            'Bounty Too High'
        );
        loyalKeyRankToBountyPercent[loyalKeyRank] = newBountyPercent;
        emit SetBountyPercent(loyalKeyRank, newBountyPercent);
    }
    
    function setFundPercents(uint256 farmPercentage, uint256 stakePercentage) external onlyOwner {
        farmFee = farmPercentage;
        stakeFee = stakePercentage;
        feeDenom = farmPercentage + stakePercentage;
        emit SetFundPercents(farmPercentage, stakePercentage);
    }
    
    function withdrawToken(address token) external onlyOwner {
        uint256 bal = IERC20(token).balanceOf(address(this));
        IERC20(token).transfer(msg.sender, bal);
        emit TokenWithdrawal(bal);
    }
    
    function reApprove() external onlyOwner {
        IERC20(KEYS).approve(farm, MAX_INT);
    }
    
    // ONLY APPROVED
    
    function distribute() external {
        _distribute();
    }

    receive() external payable {
        (bool s,) = payable(KEYS).call{value: address(this).balance}("");
        require(s, 'Failure on Token Purchase');
        _distribute();    
    }

    // INTERNAL
    
    function _distribute() internal {

        // pending keys for distribution
        uint pending = pendingKeys();
        require(
            pending >= distributionMinimum,
            'Min Distribution Not Met'
        );

        // keys bounty
        uint256 bounty = calculateBounty(msg.sender, pending);

        // update timer
        lastSecond = block.timestamp;

        // send bounty to msg.sender
        if (bounty > 0) {
            IERC20(KEYS).transfer(msg.sender, bounty);
            pending = pending - bounty;    
        }

        // Increment Total Rewards And Bounties
        unchecked {
            totalRewards += pending;
            totalBounties += bounty;
        }
        
        // divy up pending keys
        uint256 keysForFarming = (pending * farmFee) / feeDenom;
        uint256 keysForStaking = pending - keysForFarming;

        // deposit keys in farm as rewards - we have already pre-approved for max int
        IKeysFarming(farm).deposit(keysForFarming);

        // transfer rewards to Keys MAXI
        IERC20(KEYS).transfer(stake, keysForStaking);    
    }


    // Read Functions

    function timeSince() public view returns (uint256) {
        return lastSecond >= block.timestamp ? 0 : block.timestamp - lastSecond;
    }

    function pendingKeys() public view returns (uint256) {
        uint pending = timeSince() * keysPerSecond;
        uint bal = balanceOf();
        return pending < bal ? pending : bal;
    }

    function balanceOf() public view returns (uint256) {
        return IERC20(KEYS).balanceOf(address(this));
    }

    function minBounty() public view returns (uint256) {
        return currentBounty(address(0));
    }

    function currentBounty(address user) public view returns (uint256) {
        return ( pendingKeys() * getBountyPercent(user) ) / Bounty_Denom;
    }

    function calculateBounty(address user, uint256 pending) public view returns (uint256) {
        return ( pending * getBountyPercent(user) ) / Bounty_Denom;
    }

    function getBountyPercent(address user) public view returns (uint256) {
        uint percent = loyalKeyRankToBountyPercent[getLoyalKeyRank(user)];
        return percent == 0 ? Default_Bounty_Percent : percent;
    }

    function getLoyalKeyRank(address user) public view returns (uint256) {
        if (user == address(0)) {
            return 0;
        }
        return loyalKey.getLoyalKeyRank(user);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint256","name":"stakePercent","type":"uint256"},{"internalType":"uint256","name":"farmPercent","type":"uint256"},{"internalType":"address","name":"loyalKeyDB","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerSet","type":"event"},{"anonymous":false,"inputs":[],"name":"ResetRewardTimer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"loyalKeyRank","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newBounty","type":"uint256"}],"name":"SetBountyPercent","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"minKeys","type":"uint256"}],"name":"SetDistributionMinimum","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"farm","type":"address"}],"name":"SetFarm","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"farmPercentage","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"stakePercent","type":"uint256"}],"name":"SetFundPercents","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"keysPerSec","type":"uint256"}],"name":"SetKeysPerSecond","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"staker","type":"address"}],"name":"SetStaker","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TokenWithdrawal","type":"event"},{"inputs":[],"name":"Default_Bounty_Percent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"KEYS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"pending","type":"uint256"}],"name":"calculateBounty","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"changeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"currentBounty","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"distribute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"distributionMinimum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"farm","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"farmFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeDenom","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getBountyPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getLoyalKeyRank","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"keysPerSecond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastSecond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"loyalKey","outputs":[{"internalType":"contract ILoyalKeyDatabase","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"loyalKeyRankToBountyPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minBounty","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingKeys","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reApprove","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resetRewardTimer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"loyalKeyRank","type":"uint256"},{"internalType":"uint256","name":"newBountyPercent","type":"uint256"}],"name":"setBountyPercentForLoyalKeyRank","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"minKeys","type":"uint256"}],"name":"setDistributionMinimum","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_farm","type":"address"}],"name":"setFarm","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"farmPercentage","type":"uint256"},{"internalType":"uint256","name":"stakePercentage","type":"uint256"}],"name":"setFundPercents","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"keysPerSec","type":"uint256"}],"name":"setKeysPerSecond","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_stake","type":"address"}],"name":"setStake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stake","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakeFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"timeSince","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBounties","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"withdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526316fee0e5600655633b9aca006008553480156200002157600080fd5b50604051620026d2380380620026d2833981810160405281019062000047919062000460565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f342827c97908e5e2f71151c08502a66d44b6f758e3ac2f1de95f02eb95f0a73560405160405180910390a38073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505073810487135d29f35f06f1075b48d5978f1791d743600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507373940d8e53b3cf00d92e3ebffa33b4d54626306d600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600481905550816003819055508183620001fc9190620004eb565b600581905550600a600b6000808152602001908152602001600020819055506010600b600060018152602001908152602001600020819055506014600b600060028152602001908152602001600020819055506018600b60006003815260200190815260200160002081905550601c600b600060048152602001908152602001600020819055506020600b600060058152602001908152602001600020819055506024600b600060068152602001908152602001600020819055506028600b600060078152602001908152602001600020819055504260078190555073e0a189c975e4928222978a74517442239a0b86ff73ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016200036b9291906200056a565b6020604051808303816000875af11580156200038b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b19190620005d4565b5050505062000606565b600080fd5b6000819050919050565b620003d581620003c0565b8114620003e157600080fd5b50565b600081519050620003f581620003ca565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200042882620003fb565b9050919050565b6200043a816200041b565b81146200044657600080fd5b50565b6000815190506200045a816200042f565b92915050565b6000806000606084860312156200047c576200047b620003bb565b5b60006200048c86828701620003e4565b93505060206200049f86828701620003e4565b9250506040620004b28682870162000449565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620004f882620003c0565b91506200050583620003c0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200053d576200053c620004bc565b5b828201905092915050565b62000553816200041b565b82525050565b6200056481620003c0565b82525050565b600060408201905062000581600083018562000548565b62000590602083018462000559565b9392505050565b60008115159050919050565b620005ae8162000597565b8114620005ba57600080fd5b50565b600081519050620005ce81620005a3565b92915050565b600060208284031215620005ed57620005ec620003bb565b5b6000620005fd84828501620005bd565b91505092915050565b6080516120a96200062960003960008181610e50015261191f01526120a96000f3fe6080604052600436106101fd5760003560e01c8063893d20e81161010d578063bb4fbf4c116100a0578063e2ea13191161006f578063e2ea1319146107d6578063e4fc6b6d146107ff578063f4068ae614610816578063f411d8dd1461082d578063f44c17aa14610858576102cc565b8063bb4fbf4c1461071a578063d439ef5514610745578063d4f26c5114610770578063e230e09614610799576102cc565b8063a35e912f116100dc578063a35e912f14610660578063a6f9dae114610689578063b6788acb146106b2578063ba26ef3c146106dd576102cc565b8063893d20e8146105b657806389476069146105e157806389b8db551461060a578063a24188ad14610635576102cc565b806336e9332d116101905780634e6ef4151161015f5780634e6ef415146104e1578063560a84701461050c578063722713f71461052357806374bd86251461054e57806385feeb231461058b576102cc565b806336e9332d146104375780633a4b66f1146104625780633f8faee01461048d57806348edf28c146104b8576102cc565b8063222c9777116101cc578063222c97771461038d5780632d7fe3bf146103b85780632ebe038f146103e35780633298423b1461040e576102cc565b80630e15561a146102d1578063108748bf146102fc578063182ee07f1461033957806319a8657714610362576102cc565b366102cc57600073e0a189c975e4928222978a74517442239a0b86ff73ffffffffffffffffffffffffffffffffffffffff164760405161023c906119f0565b60006040518083038185875af1925050503d8060008114610279576040519150601f19603f3d011682016040523d82523d6000602084013e61027e565b606091505b50509050806102c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b990611a62565b60405180910390fd5b6102ca610895565b005b600080fd5b3480156102dd57600080fd5b506102e6610b3d565b6040516102f39190611a9b565b60405180910390f35b34801561030857600080fd5b50610323600480360381019061031e9190611ae7565b610b43565b6040516103309190611a9b565b60405180910390f35b34801561034557600080fd5b50610360600480360381019061035b9190611ae7565b610b5b565b005b34801561036e57600080fd5b50610377610c2a565b6040516103849190611a9b565b60405180910390f35b34801561039957600080fd5b506103a2610c30565b6040516103af9190611a9b565b60405180910390f35b3480156103c457600080fd5b506103cd610c36565b6040516103da9190611a9b565b60405180910390f35b3480156103ef57600080fd5b506103f8610c3c565b6040516104059190611a9b565b60405180910390f35b34801561041a57600080fd5b5061043560048036038101906104309190611b14565b610c42565b005b34801561044357600080fd5b5061044c610d2d565b6040516104599190611b95565b60405180910390f35b34801561046e57600080fd5b50610477610d53565b6040516104849190611b95565b60405180910390f35b34801561049957600080fd5b506104a2610d79565b6040516104af9190611a9b565b60405180910390f35b3480156104c457600080fd5b506104df60048036038101906104da9190611ae7565b610d7f565b005b3480156104ed57600080fd5b506104f6610e4e565b6040516105039190611c0f565b60405180910390f35b34801561051857600080fd5b50610521610e72565b005b34801561052f57600080fd5b50610538610fd7565b6040516105459190611a9b565b60405180910390f35b34801561055a57600080fd5b5061057560048036038101906105709190611c56565b61106c565b6040516105829190611a9b565b60405180910390f35b34801561059757600080fd5b506105a0611097565b6040516105ad9190611a9b565b60405180910390f35b3480156105c257600080fd5b506105cb61109d565b6040516105d89190611b95565b60405180910390f35b3480156105ed57600080fd5b5061060860048036038101906106039190611c96565b6110c6565b005b34801561061657600080fd5b5061061f61128c565b60405161062c9190611a9b565b60405180910390f35b34801561064157600080fd5b5061064a61129d565b6040516106579190611a9b565b60405180910390f35b34801561066c57600080fd5b5061068760048036038101906106829190611b14565b6112a2565b005b34801561069557600080fd5b506106b060048036038101906106ab9190611c96565b6113c9565b005b3480156106be57600080fd5b506106c7611514565b6040516106d49190611a9b565b60405180910390f35b3480156106e957600080fd5b5061070460048036038101906106ff9190611c96565b611550565b6040516107119190611a9b565b60405180910390f35b34801561072657600080fd5b5061072f611581565b60405161073c9190611a9b565b60405180910390f35b34801561075157600080fd5b5061075a6115a8565b6040516107679190611a9b565b60405180910390f35b34801561077c57600080fd5b5061079760048036038101906107929190611c96565b6115ae565b005b3480156107a557600080fd5b506107c060048036038101906107bb9190611c96565b6116b7565b6040516107cd9190611a9b565b60405180910390f35b3480156107e257600080fd5b506107fd60048036038101906107f89190611c96565b6116f1565b005b34801561080b57600080fd5b506108146117fa565b005b34801561082257600080fd5b5061082b611804565b005b34801561083957600080fd5b506108426118c7565b60405161084f9190611b95565b60405180910390f35b34801561086457600080fd5b5061087f600480360381019061087a9190611c96565b6118df565b60405161088c9190611a9b565b60405180910390f35b600061089f611514565b90506008548110156108e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108dd90611d0f565b60405180910390fd5b60006108f2338361106c565b90504260078190555060008111156109a65773e0a189c975e4928222978a74517442239a0b86ff73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610953929190611d2f565b6020604051808303816000875af1158015610972573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109969190611d90565b5080826109a39190611dec565b91505b8160096000828254019250508190555080600a600082825401925050819055506000600554600354846109d99190611e20565b6109e39190611ea9565b9050600081846109f39190611dec565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6b55f25836040518263ffffffff1660e01b8152600401610a509190611a9b565b600060405180830381600087803b158015610a6a57600080fd5b505af1158015610a7e573d6000803e3d6000fd5b5050505073e0a189c975e4928222978a74517442239a0b86ff73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610af3929190611d2f565b6020604051808303816000875af1158015610b12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b369190611d90565b5050505050565b60095481565b600b6020528060005260406000206000915090505481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610be9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be090611f26565b60405180910390fd5b806008819055507f5e079ef3d5af015de018fb8c1fad1bcd8cf66aab122dc1269db2fb4785b1811f81604051610c1f9190611a9b565b60405180910390a150565b60055481565b60045481565b60075481565b60065481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc790611f26565b60405180910390fd5b81600381905550806004819055508082610cea9190611f46565b6005819055507f25eb0409f545cbd29198cbeb3fd730a538c8c4b74e0da846d0272b2c0fd7cd338282604051610d21929190611f9c565b60405180910390a15050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0490611f26565b60405180910390fd5b806006819055507fc54533fc3040b288366cad238f37db21b2d486ed132cb1fdfe6555a65801983f81604051610e439190611a9b565b60405180910390a150565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef790611f26565b60405180910390fd5b73e0a189c975e4928222978a74517442239a0b86ff73ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f91929190611d2f565b6020604051808303816000875af1158015610fb0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd49190611d90565b50565b600073e0a189c975e4928222978a74517442239a0b86ff73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110269190611b95565b602060405180830381865afa158015611043573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110679190611fda565b905090565b60006103e861107a846116b7565b836110859190611e20565b61108f9190611ea9565b905092915050565b600a5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611154576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114b90611f26565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161118f9190611b95565b602060405180830381865afa1580156111ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d09190611fda565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b815260040161120d929190611d2f565b6020604051808303816000875af115801561122c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112509190611d90565b507f0e266e8f38544aa1480d73762386eb10df55b1b8453d935762e891c44b69a1e6816040516112809190611a9b565b60405180910390a15050565b60006112986000611550565b905090565b600a81565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611330576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132790611f26565b60405180910390fd5b6103e88110611374576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136b90612053565b60405180910390fd5b80600b6000848152602001908152602001600020819055507f3c3675399ac391cbccfb69b9fc8345ff1d26c9b0954bebc1a7fb01dc832aa66c82826040516113bd929190611f9c565b60405180910390a15050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611457576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144e90611f26565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f342827c97908e5e2f71151c08502a66d44b6f758e3ac2f1de95f02eb95f0a73560405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600654611522611581565b61152c9190611e20565b90506000611538610fd7565b90508082106115475780611549565b815b9250505090565b60006103e861155e836116b7565b611566611514565b6115709190611e20565b61157a9190611ea9565b9050919050565b60004260075410156115a0576007544261159b9190611dec565b6115a3565b60005b905090565b60085481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461163c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163390611f26565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fdc969223627a38b20c9a5c60ab6541958ffbaa8c3dea4bd5e5001a7b2646eb9f816040516116ac9190611b95565b60405180910390a150565b600080600b60006116c7856118df565b8152602001908152602001600020549050600081146116e657806116e9565b600a5b915050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461177f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177690611f26565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f6901da73a3480b0bbd7deb64f259ff29a76ce811c7a3e5cf495f0e1eb4fb4dfb816040516117ef9190611b95565b60405180910390a150565b611802610895565b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611892576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188990611f26565b60405180910390fd5b426007819055507f3d22be56efb328ea7a1c3bc8216304c8b4276a7258674fe4516d98f2ad58dd6060405160405180910390a1565b73e0a189c975e4928222978a74517442239a0b86ff81565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361191d57600090506119ba565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f44c17aa836040518263ffffffff1660e01b81526004016119769190611b95565b602060405180830381865afa158015611993573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119b79190611fda565b90505b919050565b600081905092915050565b50565b60006119da6000836119bf565b91506119e5826119ca565b600082019050919050565b60006119fb826119cd565b9150819050919050565b600082825260208201905092915050565b7f4661696c757265206f6e20546f6b656e20507572636861736500000000000000600082015250565b6000611a4c601983611a05565b9150611a5782611a16565b602082019050919050565b60006020820190508181036000830152611a7b81611a3f565b9050919050565b6000819050919050565b611a9581611a82565b82525050565b6000602082019050611ab06000830184611a8c565b92915050565b600080fd5b611ac481611a82565b8114611acf57600080fd5b50565b600081359050611ae181611abb565b92915050565b600060208284031215611afd57611afc611ab6565b5b6000611b0b84828501611ad2565b91505092915050565b60008060408385031215611b2b57611b2a611ab6565b5b6000611b3985828601611ad2565b9250506020611b4a85828601611ad2565b9150509250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611b7f82611b54565b9050919050565b611b8f81611b74565b82525050565b6000602082019050611baa6000830184611b86565b92915050565b6000819050919050565b6000611bd5611bd0611bcb84611b54565b611bb0565b611b54565b9050919050565b6000611be782611bba565b9050919050565b6000611bf982611bdc565b9050919050565b611c0981611bee565b82525050565b6000602082019050611c246000830184611c00565b92915050565b611c3381611b74565b8114611c3e57600080fd5b50565b600081359050611c5081611c2a565b92915050565b60008060408385031215611c6d57611c6c611ab6565b5b6000611c7b85828601611c41565b9250506020611c8c85828601611ad2565b9150509250929050565b600060208284031215611cac57611cab611ab6565b5b6000611cba84828501611c41565b91505092915050565b7f4d696e20446973747269627574696f6e204e6f74204d65740000000000000000600082015250565b6000611cf9601883611a05565b9150611d0482611cc3565b602082019050919050565b60006020820190508181036000830152611d2881611cec565b9050919050565b6000604082019050611d446000830185611b86565b611d516020830184611a8c565b9392505050565b60008115159050919050565b611d6d81611d58565b8114611d7857600080fd5b50565b600081519050611d8a81611d64565b92915050565b600060208284031215611da657611da5611ab6565b5b6000611db484828501611d7b565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611df782611a82565b9150611e0283611a82565b925082821015611e1557611e14611dbd565b5b828203905092915050565b6000611e2b82611a82565b9150611e3683611a82565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611e6f57611e6e611dbd565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611eb482611a82565b9150611ebf83611a82565b925082611ecf57611ece611e7a565b5b828204905092915050565b7f43616c6c6572206973206e6f74206f776e657200000000000000000000000000600082015250565b6000611f10601383611a05565b9150611f1b82611eda565b602082019050919050565b60006020820190508181036000830152611f3f81611f03565b9050919050565b6000611f5182611a82565b9150611f5c83611a82565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611f9157611f90611dbd565b5b828201905092915050565b6000604082019050611fb16000830185611a8c565b611fbe6020830184611a8c565b9392505050565b600081519050611fd481611abb565b92915050565b600060208284031215611ff057611fef611ab6565b5b6000611ffe84828501611fc5565b91505092915050565b7f426f756e747920546f6f20486967680000000000000000000000000000000000600082015250565b600061203d600f83611a05565b915061204882612007565b602082019050919050565b6000602082019050818103600083015261206c81612030565b905091905056fea26469706673582212206aee1976eddcf2cb2fde4042cc69969d24553b39dcc2d31082cff9fb9a7f02b064736f6c634300080e0033000000000000000000000000000000000000000000000000000000000000019000000000000000000000000000000000000000000000000000000000000002580000000000000000000000004072710ac0d71617f3e843bf90530b986c784672

Deployed Bytecode

0x6080604052600436106101fd5760003560e01c8063893d20e81161010d578063bb4fbf4c116100a0578063e2ea13191161006f578063e2ea1319146107d6578063e4fc6b6d146107ff578063f4068ae614610816578063f411d8dd1461082d578063f44c17aa14610858576102cc565b8063bb4fbf4c1461071a578063d439ef5514610745578063d4f26c5114610770578063e230e09614610799576102cc565b8063a35e912f116100dc578063a35e912f14610660578063a6f9dae114610689578063b6788acb146106b2578063ba26ef3c146106dd576102cc565b8063893d20e8146105b657806389476069146105e157806389b8db551461060a578063a24188ad14610635576102cc565b806336e9332d116101905780634e6ef4151161015f5780634e6ef415146104e1578063560a84701461050c578063722713f71461052357806374bd86251461054e57806385feeb231461058b576102cc565b806336e9332d146104375780633a4b66f1146104625780633f8faee01461048d57806348edf28c146104b8576102cc565b8063222c9777116101cc578063222c97771461038d5780632d7fe3bf146103b85780632ebe038f146103e35780633298423b1461040e576102cc565b80630e15561a146102d1578063108748bf146102fc578063182ee07f1461033957806319a8657714610362576102cc565b366102cc57600073e0a189c975e4928222978a74517442239a0b86ff73ffffffffffffffffffffffffffffffffffffffff164760405161023c906119f0565b60006040518083038185875af1925050503d8060008114610279576040519150601f19603f3d011682016040523d82523d6000602084013e61027e565b606091505b50509050806102c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b990611a62565b60405180910390fd5b6102ca610895565b005b600080fd5b3480156102dd57600080fd5b506102e6610b3d565b6040516102f39190611a9b565b60405180910390f35b34801561030857600080fd5b50610323600480360381019061031e9190611ae7565b610b43565b6040516103309190611a9b565b60405180910390f35b34801561034557600080fd5b50610360600480360381019061035b9190611ae7565b610b5b565b005b34801561036e57600080fd5b50610377610c2a565b6040516103849190611a9b565b60405180910390f35b34801561039957600080fd5b506103a2610c30565b6040516103af9190611a9b565b60405180910390f35b3480156103c457600080fd5b506103cd610c36565b6040516103da9190611a9b565b60405180910390f35b3480156103ef57600080fd5b506103f8610c3c565b6040516104059190611a9b565b60405180910390f35b34801561041a57600080fd5b5061043560048036038101906104309190611b14565b610c42565b005b34801561044357600080fd5b5061044c610d2d565b6040516104599190611b95565b60405180910390f35b34801561046e57600080fd5b50610477610d53565b6040516104849190611b95565b60405180910390f35b34801561049957600080fd5b506104a2610d79565b6040516104af9190611a9b565b60405180910390f35b3480156104c457600080fd5b506104df60048036038101906104da9190611ae7565b610d7f565b005b3480156104ed57600080fd5b506104f6610e4e565b6040516105039190611c0f565b60405180910390f35b34801561051857600080fd5b50610521610e72565b005b34801561052f57600080fd5b50610538610fd7565b6040516105459190611a9b565b60405180910390f35b34801561055a57600080fd5b5061057560048036038101906105709190611c56565b61106c565b6040516105829190611a9b565b60405180910390f35b34801561059757600080fd5b506105a0611097565b6040516105ad9190611a9b565b60405180910390f35b3480156105c257600080fd5b506105cb61109d565b6040516105d89190611b95565b60405180910390f35b3480156105ed57600080fd5b5061060860048036038101906106039190611c96565b6110c6565b005b34801561061657600080fd5b5061061f61128c565b60405161062c9190611a9b565b60405180910390f35b34801561064157600080fd5b5061064a61129d565b6040516106579190611a9b565b60405180910390f35b34801561066c57600080fd5b5061068760048036038101906106829190611b14565b6112a2565b005b34801561069557600080fd5b506106b060048036038101906106ab9190611c96565b6113c9565b005b3480156106be57600080fd5b506106c7611514565b6040516106d49190611a9b565b60405180910390f35b3480156106e957600080fd5b5061070460048036038101906106ff9190611c96565b611550565b6040516107119190611a9b565b60405180910390f35b34801561072657600080fd5b5061072f611581565b60405161073c9190611a9b565b60405180910390f35b34801561075157600080fd5b5061075a6115a8565b6040516107679190611a9b565b60405180910390f35b34801561077c57600080fd5b5061079760048036038101906107929190611c96565b6115ae565b005b3480156107a557600080fd5b506107c060048036038101906107bb9190611c96565b6116b7565b6040516107cd9190611a9b565b60405180910390f35b3480156107e257600080fd5b506107fd60048036038101906107f89190611c96565b6116f1565b005b34801561080b57600080fd5b506108146117fa565b005b34801561082257600080fd5b5061082b611804565b005b34801561083957600080fd5b506108426118c7565b60405161084f9190611b95565b60405180910390f35b34801561086457600080fd5b5061087f600480360381019061087a9190611c96565b6118df565b60405161088c9190611a9b565b60405180910390f35b600061089f611514565b90506008548110156108e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108dd90611d0f565b60405180910390fd5b60006108f2338361106c565b90504260078190555060008111156109a65773e0a189c975e4928222978a74517442239a0b86ff73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610953929190611d2f565b6020604051808303816000875af1158015610972573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109969190611d90565b5080826109a39190611dec565b91505b8160096000828254019250508190555080600a600082825401925050819055506000600554600354846109d99190611e20565b6109e39190611ea9565b9050600081846109f39190611dec565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6b55f25836040518263ffffffff1660e01b8152600401610a509190611a9b565b600060405180830381600087803b158015610a6a57600080fd5b505af1158015610a7e573d6000803e3d6000fd5b5050505073e0a189c975e4928222978a74517442239a0b86ff73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610af3929190611d2f565b6020604051808303816000875af1158015610b12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b369190611d90565b5050505050565b60095481565b600b6020528060005260406000206000915090505481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610be9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be090611f26565b60405180910390fd5b806008819055507f5e079ef3d5af015de018fb8c1fad1bcd8cf66aab122dc1269db2fb4785b1811f81604051610c1f9190611a9b565b60405180910390a150565b60055481565b60045481565b60075481565b60065481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc790611f26565b60405180910390fd5b81600381905550806004819055508082610cea9190611f46565b6005819055507f25eb0409f545cbd29198cbeb3fd730a538c8c4b74e0da846d0272b2c0fd7cd338282604051610d21929190611f9c565b60405180910390a15050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0490611f26565b60405180910390fd5b806006819055507fc54533fc3040b288366cad238f37db21b2d486ed132cb1fdfe6555a65801983f81604051610e439190611a9b565b60405180910390a150565b7f0000000000000000000000004072710ac0d71617f3e843bf90530b986c78467281565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef790611f26565b60405180910390fd5b73e0a189c975e4928222978a74517442239a0b86ff73ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f91929190611d2f565b6020604051808303816000875af1158015610fb0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd49190611d90565b50565b600073e0a189c975e4928222978a74517442239a0b86ff73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110269190611b95565b602060405180830381865afa158015611043573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110679190611fda565b905090565b60006103e861107a846116b7565b836110859190611e20565b61108f9190611ea9565b905092915050565b600a5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611154576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114b90611f26565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161118f9190611b95565b602060405180830381865afa1580156111ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d09190611fda565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b815260040161120d929190611d2f565b6020604051808303816000875af115801561122c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112509190611d90565b507f0e266e8f38544aa1480d73762386eb10df55b1b8453d935762e891c44b69a1e6816040516112809190611a9b565b60405180910390a15050565b60006112986000611550565b905090565b600a81565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611330576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132790611f26565b60405180910390fd5b6103e88110611374576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136b90612053565b60405180910390fd5b80600b6000848152602001908152602001600020819055507f3c3675399ac391cbccfb69b9fc8345ff1d26c9b0954bebc1a7fb01dc832aa66c82826040516113bd929190611f9c565b60405180910390a15050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611457576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144e90611f26565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f342827c97908e5e2f71151c08502a66d44b6f758e3ac2f1de95f02eb95f0a73560405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600654611522611581565b61152c9190611e20565b90506000611538610fd7565b90508082106115475780611549565b815b9250505090565b60006103e861155e836116b7565b611566611514565b6115709190611e20565b61157a9190611ea9565b9050919050565b60004260075410156115a0576007544261159b9190611dec565b6115a3565b60005b905090565b60085481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461163c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163390611f26565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fdc969223627a38b20c9a5c60ab6541958ffbaa8c3dea4bd5e5001a7b2646eb9f816040516116ac9190611b95565b60405180910390a150565b600080600b60006116c7856118df565b8152602001908152602001600020549050600081146116e657806116e9565b600a5b915050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461177f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177690611f26565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f6901da73a3480b0bbd7deb64f259ff29a76ce811c7a3e5cf495f0e1eb4fb4dfb816040516117ef9190611b95565b60405180910390a150565b611802610895565b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611892576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188990611f26565b60405180910390fd5b426007819055507f3d22be56efb328ea7a1c3bc8216304c8b4276a7258674fe4516d98f2ad58dd6060405160405180910390a1565b73e0a189c975e4928222978a74517442239a0b86ff81565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361191d57600090506119ba565b7f0000000000000000000000004072710ac0d71617f3e843bf90530b986c78467273ffffffffffffffffffffffffffffffffffffffff1663f44c17aa836040518263ffffffff1660e01b81526004016119769190611b95565b602060405180830381865afa158015611993573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119b79190611fda565b90505b919050565b600081905092915050565b50565b60006119da6000836119bf565b91506119e5826119ca565b600082019050919050565b60006119fb826119cd565b9150819050919050565b600082825260208201905092915050565b7f4661696c757265206f6e20546f6b656e20507572636861736500000000000000600082015250565b6000611a4c601983611a05565b9150611a5782611a16565b602082019050919050565b60006020820190508181036000830152611a7b81611a3f565b9050919050565b6000819050919050565b611a9581611a82565b82525050565b6000602082019050611ab06000830184611a8c565b92915050565b600080fd5b611ac481611a82565b8114611acf57600080fd5b50565b600081359050611ae181611abb565b92915050565b600060208284031215611afd57611afc611ab6565b5b6000611b0b84828501611ad2565b91505092915050565b60008060408385031215611b2b57611b2a611ab6565b5b6000611b3985828601611ad2565b9250506020611b4a85828601611ad2565b9150509250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611b7f82611b54565b9050919050565b611b8f81611b74565b82525050565b6000602082019050611baa6000830184611b86565b92915050565b6000819050919050565b6000611bd5611bd0611bcb84611b54565b611bb0565b611b54565b9050919050565b6000611be782611bba565b9050919050565b6000611bf982611bdc565b9050919050565b611c0981611bee565b82525050565b6000602082019050611c246000830184611c00565b92915050565b611c3381611b74565b8114611c3e57600080fd5b50565b600081359050611c5081611c2a565b92915050565b60008060408385031215611c6d57611c6c611ab6565b5b6000611c7b85828601611c41565b9250506020611c8c85828601611ad2565b9150509250929050565b600060208284031215611cac57611cab611ab6565b5b6000611cba84828501611c41565b91505092915050565b7f4d696e20446973747269627574696f6e204e6f74204d65740000000000000000600082015250565b6000611cf9601883611a05565b9150611d0482611cc3565b602082019050919050565b60006020820190508181036000830152611d2881611cec565b9050919050565b6000604082019050611d446000830185611b86565b611d516020830184611a8c565b9392505050565b60008115159050919050565b611d6d81611d58565b8114611d7857600080fd5b50565b600081519050611d8a81611d64565b92915050565b600060208284031215611da657611da5611ab6565b5b6000611db484828501611d7b565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611df782611a82565b9150611e0283611a82565b925082821015611e1557611e14611dbd565b5b828203905092915050565b6000611e2b82611a82565b9150611e3683611a82565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611e6f57611e6e611dbd565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611eb482611a82565b9150611ebf83611a82565b925082611ecf57611ece611e7a565b5b828204905092915050565b7f43616c6c6572206973206e6f74206f776e657200000000000000000000000000600082015250565b6000611f10601383611a05565b9150611f1b82611eda565b602082019050919050565b60006020820190508181036000830152611f3f81611f03565b9050919050565b6000611f5182611a82565b9150611f5c83611a82565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611f9157611f90611dbd565b5b828201905092915050565b6000604082019050611fb16000830185611a8c565b611fbe6020830184611a8c565b9392505050565b600081519050611fd481611abb565b92915050565b600060208284031215611ff057611fef611ab6565b5b6000611ffe84828501611fc5565b91505092915050565b7f426f756e747920546f6f20486967680000000000000000000000000000000000600082015250565b600061203d600f83611a05565b915061204882612007565b602082019050919050565b6000602082019050818103600083015261206c81612030565b905091905056fea26469706673582212206aee1976eddcf2cb2fde4042cc69969d24553b39dcc2d31082cff9fb9a7f02b064736f6c634300080e0033

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

000000000000000000000000000000000000000000000000000000000000019000000000000000000000000000000000000000000000000000000000000002580000000000000000000000004072710ac0d71617f3e843bf90530b986c784672

-----Decoded View---------------
Arg [0] : stakePercent (uint256): 400
Arg [1] : farmPercent (uint256): 600
Arg [2] : loyalKeyDB (address): 0x4072710Ac0d71617F3e843bf90530B986c784672

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000190
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000258
Arg [2] : 0000000000000000000000004072710ac0d71617f3e843bf90530b986c784672


Deployed Bytecode Sourcemap

4639:7185:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9127:6;4728:42;9138:18;;9164:21;9138:52;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9126:64;;;9209:1;9201:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;9251:13;:11;:13::i;:::-;9115:161;4639:7185;;;;5511:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5735:65;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7422:163;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5150:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5089;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5358:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5270:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8354:291;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4966:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4992:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5060:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7260:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4805:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8883:94;;;;;;;;;;;;;:::i;:::-;;10839:114;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11229:163;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5545:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4266:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8657:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10961:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5618:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7984:358;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4040:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10637:194;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11071:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10488:141;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5427:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7733:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11400:219;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7857:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9017:63;;;;;;;;;;;;;:::i;:::-;;7597:128;;;;;;;;;;;;;:::i;:::-;;4697:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11627:194;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9307:1146;9394:12;9409:13;:11;:13::i;:::-;9394:28;;9466:19;;9455:7;:30;;9433:104;;;;;;;;;;;;:::i;:::-;;;;;;;;;9574:14;9591:36;9607:10;9619:7;9591:15;:36::i;:::-;9574:53;;9678:15;9665:10;:28;;;;9757:1;9748:6;:10;9744:129;;;4728:42;9775:21;;;9797:10;9809:6;9775:41;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9851:6;9841:7;:16;;;;:::i;:::-;9831:26;;9744:129;9975:7;9959:12;;:23;;;;;;;;;;;10014:6;9997:13;;:23;;;;;;;;;;;10085:22;10132:8;;10121:7;;10111;:17;;;;:::i;:::-;10110:30;;;;:::i;:::-;10085:55;;10151:22;10186:14;10176:7;:24;;;;:::i;:::-;10151:49;;10313:4;;;;;;;;;;;10300:26;;;10327:14;10300:42;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4728;10397:21;;;10419:5;;;;;;;;;;;10426:14;10397:44;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9339:1114;;;;9307:1146::o;5511:27::-;;;;:::o;5735:65::-;;;;;;;;;;;;;;;;;:::o;7422:163::-;3647:5;;;;;;;;;;3633:19;;:10;:19;;;3625:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;7523:7:::1;7501:19;:29;;;;7546:31;7569:7;7546:31;;;;;;:::i;:::-;;;;;;;;7422:163:::0;:::o;5150:23::-;;;;:::o;5089:::-;;;;:::o;5358:25::-;;;;:::o;5270:40::-;;;;:::o;8354:291::-;3647:5;;;;;;;;;;3633:19;;:10;:19;;;3625:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;8468:14:::1;8458:7;:24;;;;8504:15;8493:8;:26;;;;8558:15;8541:14;:32;;;;:::i;:::-;8530:8;:43;;;;8589:48;8605:14;8621:15;8589:48;;;;;;;:::i;:::-;;;;;;;;8354:291:::0;;:::o;4966:19::-;;;;;;;;;;;;;:::o;4992:20::-;;;;;;;;;;;;;:::o;5060:22::-;;;;:::o;7260:154::-;3647:5;;;;;;;;;;3633:19;;:10;:19;;;3625:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;7352:10:::1;7336:13;:26;;;;7378:28;7395:10;7378:28;;;;;;:::i;:::-;;;;;;;;7260:154:::0;:::o;4805:43::-;;;:::o;8883:94::-;3647:5;;;;;;;;;;3633:19;;:10;:19;;;3625:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;4728:42:::1;8934:20;;;8955:4;;;;;;;;;;;4908:17;8934:35;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8883:94::o:0;10839:114::-;10881:7;4728:42;10908:22;;;10939:4;10908:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10901:44;;10839:114;:::o;11229:163::-;11306:7;5722:4;11345:22;11362:4;11345:16;:22::i;:::-;11335:7;:32;;;;:::i;:::-;11333:51;;;;:::i;:::-;11326:58;;11229:163;;;;:::o;5545:28::-;;;;:::o;4266:83::-;4309:7;4336:5;;;;;;;;;;;4329:12;;4266:83;:::o;8657:214::-;3647:5;;;;;;;;;;3633:19;;:10;:19;;;3625:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;8725:11:::1;8746:5;8739:23;;;8771:4;8739:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8725:52;;8795:5;8788:22;;;8811:10;8823:3;8788:39;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8843:20;8859:3;8843:20;;;;;;:::i;:::-;;;;;;;;8714:157;8657:214:::0;:::o;10961:102::-;11003:7;11030:25;11052:1;11030:13;:25::i;:::-;11023:32;;10961:102;:::o;5618:51::-;5667:2;5618:51;:::o;7984:358::-;3647:5;;;;;;;;;;3633:19;;:10;:19;;;3625:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;5722:4:::1;8125:16;:31;8103:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;8254:16;8210:27;:41;8238:12;8210:41;;;;;;;;;;;:60;;;;8286:48;8303:12;8317:16;8286:48;;;;;;;:::i;:::-;;;;;;;;7984:358:::0;;:::o;4040:132::-;3647:5;;;;;;;;;;3633:19;;:10;:19;;;3625:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;4128:8:::1;4112:25;;4121:5;::::0;::::1;;;;;;;;4112:25;;;;;;;;;;;;4156:8;4148:5;::::0;:16:::1;;;;;;;;;;;;;;;;;;4040:132:::0;:::o;10637:194::-;10681:7;10701:12;10730:13;;10716:11;:9;:11::i;:::-;:27;;;;:::i;:::-;10701:42;;10754:8;10765:11;:9;:11::i;:::-;10754:22;;10804:3;10794:7;:13;:29;;10820:3;10794:29;;;10810:7;10794:29;10787:36;;;;10637:194;:::o;11071:150::-;11129:7;5722:4;11174:22;11191:4;11174:16;:22::i;:::-;11158:13;:11;:13::i;:::-;:38;;;;:::i;:::-;11156:57;;;;:::i;:::-;11149:64;;11071:150;;;:::o;10488:141::-;10530:7;10571:15;10557:10;;:29;;:64;;10611:10;;10593:15;:28;;;;:::i;:::-;10557:64;;;10589:1;10557:64;10550:71;;10488:141;:::o;5427:46::-;;;;:::o;7733:112::-;3647:5;;;;;;;;;;3633:19;;:10;:19;;;3625:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;7802:5:::1;7795:4;;:12;;;;;;;;;;;;;;;;;;7823:14;7831:5;7823:14;;;;;;:::i;:::-;;;;;;;;7733:112:::0;:::o;11400:219::-;11461:7;11481:12;11496:27;:50;11524:21;11540:4;11524:15;:21::i;:::-;11496:50;;;;;;;;;;;;11481:65;;11575:1;11564:7;:12;:47;;11604:7;11564:47;;;5667:2;11564:47;11557:54;;;11400:219;;;:::o;7857:119::-;3647:5;;;;;;;;;;3633:19;;:10;:19;;;3625:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;7929:6:::1;7921:5;;:14;;;;;;;;;;;;;;;;;;7951:17;7961:6;7951:17;;;;;;:::i;:::-;;;;;;;;7857:119:::0;:::o;9017:63::-;9059:13;:11;:13::i;:::-;9017:63::o;7597:128::-;3647:5;;;;;;;;;;3633:19;;:10;:19;;;3625:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;7668:15:::1;7655:10;:28;;;;7699:18;;;;;;;;;;7597:128::o:0;4697:73::-;4728:42;4697:73;:::o;11627:194::-;11687:7;11727:1;11711:18;;:4;:18;;;11707:59;;11753:1;11746:8;;;;11707:59;11783:8;:24;;;11808:4;11783:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11776:37;;11627:194;;;;:::o;7:147:1:-;108:11;145:3;130:18;;7:147;;;;:::o;160:114::-;;:::o;280:398::-;439:3;460:83;541:1;536:3;460:83;:::i;:::-;453:90;;552:93;641:3;552:93;:::i;:::-;670:1;665:3;661:11;654:18;;280:398;;;:::o;684:379::-;868:3;890:147;1033:3;890:147;:::i;:::-;883:154;;1054:3;1047:10;;684:379;;;:::o;1069:169::-;1153:11;1187:6;1182:3;1175:19;1227:4;1222:3;1218:14;1203:29;;1069:169;;;;:::o;1244:175::-;1384:27;1380:1;1372:6;1368:14;1361:51;1244:175;:::o;1425:366::-;1567:3;1588:67;1652:2;1647:3;1588:67;:::i;:::-;1581:74;;1664:93;1753:3;1664:93;:::i;:::-;1782:2;1777:3;1773:12;1766:19;;1425:366;;;:::o;1797:419::-;1963:4;2001:2;1990:9;1986:18;1978:26;;2050:9;2044:4;2040:20;2036:1;2025:9;2021:17;2014:47;2078:131;2204:4;2078:131;:::i;:::-;2070:139;;1797:419;;;:::o;2222:77::-;2259:7;2288:5;2277:16;;2222:77;;;:::o;2305:118::-;2392:24;2410:5;2392:24;:::i;:::-;2387:3;2380:37;2305:118;;:::o;2429:222::-;2522:4;2560:2;2549:9;2545:18;2537:26;;2573:71;2641:1;2630:9;2626:17;2617:6;2573:71;:::i;:::-;2429:222;;;;:::o;2738:117::-;2847:1;2844;2837:12;2984:122;3057:24;3075:5;3057:24;:::i;:::-;3050:5;3047:35;3037:63;;3096:1;3093;3086:12;3037:63;2984:122;:::o;3112:139::-;3158:5;3196:6;3183:20;3174:29;;3212:33;3239:5;3212:33;:::i;:::-;3112:139;;;;:::o;3257:329::-;3316:6;3365:2;3353:9;3344:7;3340:23;3336:32;3333:119;;;3371:79;;:::i;:::-;3333:119;3491:1;3516:53;3561:7;3552:6;3541:9;3537:22;3516:53;:::i;:::-;3506:63;;3462:117;3257:329;;;;:::o;3592:474::-;3660:6;3668;3717:2;3705:9;3696:7;3692:23;3688:32;3685:119;;;3723:79;;:::i;:::-;3685:119;3843:1;3868:53;3913:7;3904:6;3893:9;3889:22;3868:53;:::i;:::-;3858:63;;3814:117;3970:2;3996:53;4041:7;4032:6;4021:9;4017:22;3996:53;:::i;:::-;3986:63;;3941:118;3592:474;;;;;:::o;4072:126::-;4109:7;4149:42;4142:5;4138:54;4127:65;;4072:126;;;:::o;4204:96::-;4241:7;4270:24;4288:5;4270:24;:::i;:::-;4259:35;;4204:96;;;:::o;4306:118::-;4393:24;4411:5;4393:24;:::i;:::-;4388:3;4381:37;4306:118;;:::o;4430:222::-;4523:4;4561:2;4550:9;4546:18;4538:26;;4574:71;4642:1;4631:9;4627:17;4618:6;4574:71;:::i;:::-;4430:222;;;;:::o;4658:60::-;4686:3;4707:5;4700:12;;4658:60;;;:::o;4724:142::-;4774:9;4807:53;4825:34;4834:24;4852:5;4834:24;:::i;:::-;4825:34;:::i;:::-;4807:53;:::i;:::-;4794:66;;4724:142;;;:::o;4872:126::-;4922:9;4955:37;4986:5;4955:37;:::i;:::-;4942:50;;4872:126;;;:::o;5004:151::-;5079:9;5112:37;5143:5;5112:37;:::i;:::-;5099:50;;5004:151;;;:::o;5161:181::-;5273:62;5329:5;5273:62;:::i;:::-;5268:3;5261:75;5161:181;;:::o;5348:272::-;5466:4;5504:2;5493:9;5489:18;5481:26;;5517:96;5610:1;5599:9;5595:17;5586:6;5517:96;:::i;:::-;5348:272;;;;:::o;5626:122::-;5699:24;5717:5;5699:24;:::i;:::-;5692:5;5689:35;5679:63;;5738:1;5735;5728:12;5679:63;5626:122;:::o;5754:139::-;5800:5;5838:6;5825:20;5816:29;;5854:33;5881:5;5854:33;:::i;:::-;5754:139;;;;:::o;5899:474::-;5967:6;5975;6024:2;6012:9;6003:7;5999:23;5995:32;5992:119;;;6030:79;;:::i;:::-;5992:119;6150:1;6175:53;6220:7;6211:6;6200:9;6196:22;6175:53;:::i;:::-;6165:63;;6121:117;6277:2;6303:53;6348:7;6339:6;6328:9;6324:22;6303:53;:::i;:::-;6293:63;;6248:118;5899:474;;;;;:::o;6379:329::-;6438:6;6487:2;6475:9;6466:7;6462:23;6458:32;6455:119;;;6493:79;;:::i;:::-;6455:119;6613:1;6638:53;6683:7;6674:6;6663:9;6659:22;6638:53;:::i;:::-;6628:63;;6584:117;6379:329;;;;:::o;6714:174::-;6854:26;6850:1;6842:6;6838:14;6831:50;6714:174;:::o;6894:366::-;7036:3;7057:67;7121:2;7116:3;7057:67;:::i;:::-;7050:74;;7133:93;7222:3;7133:93;:::i;:::-;7251:2;7246:3;7242:12;7235:19;;6894:366;;;:::o;7266:419::-;7432:4;7470:2;7459:9;7455:18;7447:26;;7519:9;7513:4;7509:20;7505:1;7494:9;7490:17;7483:47;7547:131;7673:4;7547:131;:::i;:::-;7539:139;;7266:419;;;:::o;7691:332::-;7812:4;7850:2;7839:9;7835:18;7827:26;;7863:71;7931:1;7920:9;7916:17;7907:6;7863:71;:::i;:::-;7944:72;8012:2;8001:9;7997:18;7988:6;7944:72;:::i;:::-;7691:332;;;;;:::o;8029:90::-;8063:7;8106:5;8099:13;8092:21;8081:32;;8029:90;;;:::o;8125:116::-;8195:21;8210:5;8195:21;:::i;:::-;8188:5;8185:32;8175:60;;8231:1;8228;8221:12;8175:60;8125:116;:::o;8247:137::-;8301:5;8332:6;8326:13;8317:22;;8348:30;8372:5;8348:30;:::i;:::-;8247:137;;;;:::o;8390:345::-;8457:6;8506:2;8494:9;8485:7;8481:23;8477:32;8474:119;;;8512:79;;:::i;:::-;8474:119;8632:1;8657:61;8710:7;8701:6;8690:9;8686:22;8657:61;:::i;:::-;8647:71;;8603:125;8390:345;;;;:::o;8741:180::-;8789:77;8786:1;8779:88;8886:4;8883:1;8876:15;8910:4;8907:1;8900:15;8927:191;8967:4;8987:20;9005:1;8987:20;:::i;:::-;8982:25;;9021:20;9039:1;9021:20;:::i;:::-;9016:25;;9060:1;9057;9054:8;9051:34;;;9065:18;;:::i;:::-;9051:34;9110:1;9107;9103:9;9095:17;;8927:191;;;;:::o;9124:348::-;9164:7;9187:20;9205:1;9187:20;:::i;:::-;9182:25;;9221:20;9239:1;9221:20;:::i;:::-;9216:25;;9409:1;9341:66;9337:74;9334:1;9331:81;9326:1;9319:9;9312:17;9308:105;9305:131;;;9416:18;;:::i;:::-;9305:131;9464:1;9461;9457:9;9446:20;;9124:348;;;;:::o;9478:180::-;9526:77;9523:1;9516:88;9623:4;9620:1;9613:15;9647:4;9644:1;9637:15;9664:185;9704:1;9721:20;9739:1;9721:20;:::i;:::-;9716:25;;9755:20;9773:1;9755:20;:::i;:::-;9750:25;;9794:1;9784:35;;9799:18;;:::i;:::-;9784:35;9841:1;9838;9834:9;9829:14;;9664:185;;;;:::o;9855:169::-;9995:21;9991:1;9983:6;9979:14;9972:45;9855:169;:::o;10030:366::-;10172:3;10193:67;10257:2;10252:3;10193:67;:::i;:::-;10186:74;;10269:93;10358:3;10269:93;:::i;:::-;10387:2;10382:3;10378:12;10371:19;;10030:366;;;:::o;10402:419::-;10568:4;10606:2;10595:9;10591:18;10583:26;;10655:9;10649:4;10645:20;10641:1;10630:9;10626:17;10619:47;10683:131;10809:4;10683:131;:::i;:::-;10675:139;;10402:419;;;:::o;10827:305::-;10867:3;10886:20;10904:1;10886:20;:::i;:::-;10881:25;;10920:20;10938:1;10920:20;:::i;:::-;10915:25;;11074:1;11006:66;11002:74;10999:1;10996:81;10993:107;;;11080:18;;:::i;:::-;10993:107;11124:1;11121;11117:9;11110:16;;10827:305;;;;:::o;11138:332::-;11259:4;11297:2;11286:9;11282:18;11274:26;;11310:71;11378:1;11367:9;11363:17;11354:6;11310:71;:::i;:::-;11391:72;11459:2;11448:9;11444:18;11435:6;11391:72;:::i;:::-;11138:332;;;;;:::o;11476:143::-;11533:5;11564:6;11558:13;11549:22;;11580:33;11607:5;11580:33;:::i;:::-;11476:143;;;;:::o;11625:351::-;11695:6;11744:2;11732:9;11723:7;11719:23;11715:32;11712:119;;;11750:79;;:::i;:::-;11712:119;11870:1;11895:64;11951:7;11942:6;11931:9;11927:22;11895:64;:::i;:::-;11885:74;;11841:128;11625:351;;;;:::o;11982:165::-;12122:17;12118:1;12110:6;12106:14;12099:41;11982:165;:::o;12153:366::-;12295:3;12316:67;12380:2;12375:3;12316:67;:::i;:::-;12309:74;;12392:93;12481:3;12392:93;:::i;:::-;12510:2;12505:3;12501:12;12494:19;;12153:366;;;:::o;12525:419::-;12691:4;12729:2;12718:9;12714:18;12706:26;;12778:9;12772:4;12768:20;12764:1;12753:9;12749:17;12742:47;12806:131;12932:4;12806:131;:::i;:::-;12798:139;;12525:419;;;:::o

Swarm Source

ipfs://6aee1976eddcf2cb2fde4042cc69969d24553b39dcc2d31082cff9fb9a7f02b0

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

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.