FTM Price: $0.99 (-2.68%)
Gas: 106 GWei

Contract

0x50ec8aF3c8b5b4A9DCe1AFF538be8E965B8b80DA
 

Overview

FTM Balance

Fantom LogoFantom LogoFantom Logo0 FTM

FTM Value

$0.00

Token Holdings

Sponsored

Transaction Hash
Method
Block
From
To
Value
Drawing357671642022-04-11 3:49:40718 days ago1649648980IN
0x50ec8aF3...65B8b80DA
0 FTM0.06509567160.9948
Distribute Ticke...357671252022-04-11 3:49:04718 days ago1649648944IN
0x50ec8aF3...65B8b80DA
0 FTM0.15373908160.9948
Deposit288976672022-01-24 9:02:34795 days ago1643014954IN
0x50ec8aF3...65B8b80DA
0 FTM0.08963215399.6244
Withdraw263148192021-12-28 18:32:38821 days ago1640716358IN
0x50ec8aF3...65B8b80DA
0 FTM0.02451227243.9154
Deposit242229062021-12-07 5:14:02843 days ago1638854042IN
0x50ec8aF3...65B8b80DA
0 FTM0.03773095205.9786
Drawing222791412021-11-17 2:49:20863 days ago1637117360IN
0x50ec8aF3...65B8b80DA
0 FTM0.04417775126.9691
Deposit210918492021-11-04 23:53:40875 days ago1636070020IN
0x50ec8aF3...65B8b80DA
0 FTM0.06288626262.8376
Deposit210918012021-11-04 23:53:05875 days ago1636069985IN
0x50ec8aF3...65B8b80DA
0 FTM0.06488277262.8376
Deposit210917952021-11-04 23:53:00875 days ago1636069980IN
0x50ec8aF3...65B8b80DA
0 FTM0.08285193262.8376
Drawing191530292021-10-15 10:32:17896 days ago1634293937IN
0x50ec8aF3...65B8b80DA
0 FTM0.07817422233.9404
Distribute Ticke...191529412021-10-15 10:30:28896 days ago1634293828IN
0x50ec8aF3...65B8b80DA
0 FTM0.45560034510
Withdraw186963952021-10-09 19:21:33901 days ago1633807293IN
0x50ec8aF3...65B8b80DA
0 FTM0.02242695252.9061
Drawing186963422021-10-09 19:20:44901 days ago1633807244IN
0x50ec8aF3...65B8b80DA
0 FTM0.10319803257.5039
Drawing183984622021-10-06 0:53:13905 days ago1633481593IN
0x50ec8aF3...65B8b80DA
0 FTM0.12552943385.4131
Withdraw183984202021-10-06 0:52:04905 days ago1633481524IN
0x50ec8aF3...65B8b80DA
0 FTM0.04071472383.1289
Drawing182947272021-10-04 15:46:20906 days ago1633362380IN
0x50ec8aF3...65B8b80DA
0 FTM0.12873252389.9674
Drawing181001162021-10-01 23:50:39909 days ago1633132239IN
0x50ec8aF3...65B8b80DA
0 FTM0.04626203138.1348
Deposit180790132021-10-01 17:44:04909 days ago1633110244IN
0x50ec8aF3...65B8b80DA
0 FTM0.06537674323.0731
Deposit179453302021-09-29 19:30:35911 days ago1632943835IN
0x50ec8aF3...65B8b80DA
0 FTM0.02185168170.1964
Drawing178969542021-09-29 0:39:47912 days ago1632875987IN
0x50ec8aF3...65B8b80DA
0 FTM0.07431427225.9706
Distribute Ticke...178969492021-09-29 0:39:43912 days ago1632875983IN
0x50ec8aF3...65B8b80DA
0 FTM0.21115867225.9706
Withdraw178583032021-09-28 10:47:07913 days ago1632826027IN
0x50ec8aF3...65B8b80DA
0 FTM0.01745505204.3559
Deposit178055522021-09-27 16:57:25913 days ago1632761845IN
0x50ec8aF3...65B8b80DA
0 FTM0.05414916267.5896
Distribute Ticke...177727562021-09-27 4:26:43914 days ago1632716803IN
0x50ec8aF3...65B8b80DA
0 FTM0.16538551176.1553
Drawing177361072021-09-26 16:16:32914 days ago1632672992IN
0x50ec8aF3...65B8b80DA
0 FTM0.09558548230.7301
View all transactions

Latest 1 internal transaction

Parent Txn Hash Block From To Value
138137792021-08-05 3:38:13967 days ago1628134693  Contract Creation0 FTM
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
HodlLotto

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at ftmscan.com on 2021-08-05
*/

pragma solidity ^0.8.6;

interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

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

    /**
     * @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);
}

contract HodlLotto {
    
    address ceo = 0x1BE9013B58677d4b6E4D32949CFD0aF7B60FD9fF;
    address coo = 0x7ff146818923Cc6B6B100eCa54ee0e15143f96aF;
    address cfo = 0x51F363F5A14FbcbEdFDd0B72B5e484968B4B71AC;
    
    IERC20 hodl = IERC20(0xB2Da66c4a89D0f93935D1efDB9C9c8D1d3Ba9343);
    
    uint public distTime = 4 hours;
    uint public drawingTime = 24 hours;
    uint public minDepTime = 48 hours;
    
    uint public lastDrawing = block.timestamp + drawingTime;
    uint public lastTicketDist = block.timestamp + 24 hours;
    
    uint public totalTickets = 0;
    uint feePercent = 6;
    uint keptPercent = 20;
    uint depositedHodl = 0;
    
    mapping(address => uint128) public tickets;
    mapping(address => uint) public balance;
    mapping(address => uint) public depositTime;
    
    address[] public users;
    
    address[10] public winners;
    uint[10] public rewards;
    
    bool dead = false;
    
    function shl() internal {
        for (uint i = 0; i < 9; i++) {
            rewards[i] = rewards[i + 1];
            winners[i] = winners[i + 1];
        }
    }
    
    struct Winner {
        address addr;
        uint amount;
    }
    
    function getWinner() public view returns (Winner[10] memory) {
        Winner[10] memory winner;
        
        for (uint i = 0; i < 10; i++) {
            winner[i] = Winner(winners[i], rewards[i]);
        }
        
        return winner;
    }
    
    function deposit(uint amount) public {
        require(amount > 0 && !dead);
        require(hodl.transferFrom(msg.sender, address(this), amount));
        bool newUser = true;
        
        for (uint i = 0; i < users.length; i++) {
            if (users[i] == msg.sender) {
                newUser = false;
                break;
            }
        }
        
        if (newUser) {
            users.push(msg.sender);
        }
        
        balance[msg.sender] += amount;
        depositTime[msg.sender] = block.timestamp;
        
        depositedHodl += amount;
    }
    
    function withdraw() public {
        require(depositTime[msg.sender] + minDepTime < block.timestamp);
        require(balance[msg.sender] > 0);
        hodl.transfer(address(this), 0); // claim rebase before sending out hodl, idk if necessary but it's ftm lol
        uint amount = balance[msg.sender];
        balance[msg.sender] = 0;
        hodl.transfer(msg.sender, amount);
        depositedHodl -= amount;
    }
    
    function updateMinDepTime(uint newTime) public {
        require(msg.sender == ceo || msg.sender == coo);
        minDepTime = newTime;
    }
    
    function updateDistTime(uint newTime) public {
        require(msg.sender == ceo || msg.sender == coo);
        require(newTime >= 59 minutes);
        distTime = newTime;
    }
    
    function updateDrawingTime(uint newTime) public {
        require(msg.sender == ceo || msg.sender == coo);
        require(newTime >= 59 minutes);
        drawingTime = newTime;
    }
    
    function updateKeptPercent(uint newPercent) public {
        require(msg.sender == ceo || msg.sender == coo);
        keptPercent = newPercent % 101;
    }
    
    function updateFee(uint newFee) public {
        require(msg.sender == ceo);
        feePercent = newFee % 101;
    }
    
    function shitDawg() public {
        // in case of emergency (critical bug found) send all deposits back
        require(msg.sender == ceo || msg.sender == coo);
        for (uint i = 0; i < users.length; i++) {
            hodl.transfer(users[i], balance[users[i]]);
        }
        dead = true;
    }
    
    function distributeTickets() public {
        require(block.timestamp > lastTicketDist + distTime - 10 minutes);
        for (uint i = 0; i < users.length; i++) {
            tickets[users[i]] += uint128(balance[users[i]] / 1000); // 1 ticket per 0.001 HODL deposited
            totalTickets += balance[users[i]] / 1000;
        }
    }
    
    function drawing() public {
        require(lastDrawing + drawingTime - 10 minutes < block.timestamp); // 10 minute leeway
        lastDrawing = block.timestamp;
        
        hodl.transfer(address(this), 0); // claims rebase
        uint reward = hodl.balanceOf(address(this)) - depositedHodl;
        
        hodl.transfer(ceo, reward / 100 * feePercent / 100 * 75); // pay for gas required to run this function and distributeTickets (% of reward) very expensive function bcoz of needing to change every user's ticket amount
        hodl.transfer(cfo, reward / 100 * feePercent / 100 * 25); // pay our lovely frontend dev
        
        uint winner = uint(keccak256(abi.encodePacked(blockhash(block.number - 1)))) % totalTickets;
        uint currTicket = 0;
        
        for (uint i = 0; i < users.length; i++) {
            currTicket += tickets[users[i]];
            if (currTicket > winner) {
                hodl.transfer(users[i], reward / 100 * (100 - feePercent - keptPercent));
                shl();
                rewards[9] = reward / 100 * (100 - feePercent - keptPercent);
                winners[9] = users[i];
                return;
            }
        }
        
        depositedHodl = hodl.balanceOf(address(this));
    }
    
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"depositTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"distTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"distributeTickets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"drawing","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"drawingTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getWinner","outputs":[{"components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct HodlLotto.Winner[10]","name":"","type":"tuple[10]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastDrawing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastTicketDist","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minDepTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"rewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"shitDawg","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tickets","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalTickets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTime","type":"uint256"}],"name":"updateDistTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTime","type":"uint256"}],"name":"updateDrawingTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newFee","type":"uint256"}],"name":"updateFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newPercent","type":"uint256"}],"name":"updateKeptPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTime","type":"uint256"}],"name":"updateMinDepTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"users","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"winners","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6080604052731be9013b58677d4b6e4d32949cfd0af7b60fd9ff6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737ff146818923cc6b6b100eca54ee0e15143f96af600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507351f363f5a14fbcbedfdd0b72b5e484968b4b71ac600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073b2da66c4a89d0f93935d1efdb9c9c8d1d3ba9343600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613840600455620151806005556202a300600655600554426200017b9190620001d5565b60075562015180426200018f9190620001d5565b60085560006009556006600a556014600b556000600c556000602560006101000a81548160ff021916908315150217905550348015620001ce57600080fd5b506200026b565b6000620001e28262000232565b9150620001ef8362000232565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200022757620002266200023c565b5b828201905092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b61231a806200027b6000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c80638e7ea5b2116100c3578063bdcd3d771161007c578063bdcd3d771461033e578063cf7945161461035c578063d89db4e314610378578063dd11247e14610396578063e3d670d7146103b4578063f301af42146103e45761014d565b80638e7ea5b2146102a45780639012c4a8146102c257806390d22ed2146102de578063a2fb1175146102e8578063b6b55f2514610318578063b77200b1146103345761014d565b806338422bb91161011557806338422bb9146101e45780633ccfd60b1461020057806343709d761461020a57806346c6487314610228578063657c0e0a146102585780636dcbf2a3146102745761014d565b8063136435ca146101525780631d9e75f21461016e5780631f9b65c514610178578063365b98b21461019657806336a041df146101c6575b600080fd5b61016c60048036038101906101679190611d07565b610414565b005b6101766104ce565b005b610180610727565b60405161018d9190611f66565b60405180910390f35b6101b060048036038101906101ab9190611d07565b61072d565b6040516101bd9190611e8b565b60405180910390f35b6101ce61076c565b6040516101db9190611f66565b60405180910390f35b6101fe60048036038101906101f99190611d07565b610772565b005b61020861083b565b005b610212610ae5565b60405161021f9190611f66565b60405180910390f35b610242600480360381019061023d9190611cad565b610aeb565b60405161024f9190611f66565b60405180910390f35b610272600480360381019061026d9190611d07565b610b03565b005b61028e60048036038101906102899190611cad565b610bc9565b60405161029b9190611f4b565b60405180910390f35b6102ac610bf8565b6040516102b99190611f2f565b60405180910390f35b6102dc60048036038101906102d79190611d07565b610cbf565b005b6102e6610d2d565b005b61030260048036038101906102fd9190611d07565b610f89565b60405161030f9190611e8b565b60405180910390f35b610332600480360381019061032d9190611d07565b610fbf565b005b61033c611265565b005b6103466119fb565b6040516103539190611f66565b60405180910390f35b61037660048036038101906103719190611d07565b611a01565b005b610380611aca565b60405161038d9190611f66565b60405180910390f35b61039e611ad0565b6040516103ab9190611f66565b60405180910390f35b6103ce60048036038101906103c99190611cad565b611ad6565b6040516103db9190611f66565b60405180910390f35b6103fe60048036038101906103f99190611d07565b611aee565b60405161040b9190611f66565b60405180910390f35b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806104bb5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6104c457600080fd5b8060068190555050565b6102586004546008546104e19190611ff4565b6104eb91906120d5565b42116104f657600080fd5b60005b601080549050811015610724576103e8600e6000601084815481106105215761052061226b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610591919061204a565b600d6000601084815481106105a9576105a861226b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282829054906101000a90046fffffffffffffffffffffffffffffffff166106389190611fae565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506103e8600e6000601084815481106106895761068861226b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106f9919061204a565b6009600082825461070a9190611ff4565b92505081905550808061071c90612189565b9150506104f9565b50565b60055481565b6010818154811061073d57600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806108195750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61082257600080fd5b610dd481101561083157600080fd5b8060058190555050565b42600654600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108899190611ff4565b1061089357600080fd5b6000600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054116108df57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb3060006040518363ffffffff1660e01b815260040161093d929190611edd565b602060405180830381600087803b15801561095757600080fd5b505af115801561096b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098f9190611cda565b506000600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610a76929190611f06565b602060405180830381600087803b158015610a9057600080fd5b505af1158015610aa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac89190611cda565b5080600c6000828254610adb91906120d5565b9250508190555050565b60075481565b600f6020528060005260406000206000915090505481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610baa5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610bb357600080fd5b606581610bc091906121dc565b600b8190555050565b600d6020528060005260406000206000915054906101000a90046fffffffffffffffffffffffffffffffff1681565b610c00611bfb565b610c08611bfb565b60005b600a811015610cb7576040518060400160405280601183600a8110610c3357610c3261226b565b5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001601b83600a8110610c8457610c8361226b565b5b01548152508282600a8110610c9c57610c9b61226b565b5b60200201819052508080610caf90612189565b915050610c0b565b508091505090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d1757600080fd5b606581610d2491906121dc565b600a8190555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610dd45750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610ddd57600080fd5b60005b601080549050811015610f6b57600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60108381548110610e3f57610e3e61226b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600e600060108681548110610e8257610e8161226b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401610f05929190611f06565b602060405180830381600087803b158015610f1f57600080fd5b505af1158015610f33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f579190611cda565b508080610f6390612189565b915050610de0565b506001602560006101000a81548160ff021916908315150217905550565b601181600a8110610f9957600080fd5b016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600081118015610fdc5750602560009054906101000a900460ff16155b610fe557600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b815260040161104493929190611ea6565b602060405180830381600087803b15801561105e57600080fd5b505af1158015611072573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110969190611cda565b61109f57600080fd5b60006001905060005b601080549050811015611143573373ffffffffffffffffffffffffffffffffffffffff16601082815481106110e0576110df61226b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156111305760009150611143565b808061113b90612189565b9150506110a8565b5080156111ae576010339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b81600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111fd9190611ff4565b9250508190555042600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600c600082825461125a9190611ff4565b925050819055505050565b426102586005546007546112799190611ff4565b61128391906120d5565b1061128d57600080fd5b42600781905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb3060006040518363ffffffff1660e01b81526004016112f2929190611edd565b602060405180830381600087803b15801561130c57600080fd5b505af1158015611320573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113449190611cda565b506000600c54600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016113a59190611e8b565b60206040518083038186803b1580156113bd57600080fd5b505afa1580156113d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f59190611d34565b6113ff91906120d5565b9050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604b6064600a54606487611474919061204a565b61147e919061207b565b611488919061204a565b611492919061207b565b6040518363ffffffff1660e01b81526004016114af929190611f06565b602060405180830381600087803b1580156114c957600080fd5b505af11580156114dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115019190611cda565b50600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660196064600a54606487611577919061204a565b611581919061207b565b61158b919061204a565b611595919061207b565b6040518363ffffffff1660e01b81526004016115b2929190611f06565b602060405180830381600087803b1580156115cc57600080fd5b505af11580156115e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116049190611cda565b50600060095460014361161791906120d5565b406040516020016116289190611e70565b6040516020818303038152906040528051906020012060001c61164b91906121dc565b90506000805b60108054905081101561194357600d6000601083815481106116765761167561226b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16826117159190611ff4565b91508282111561193057600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601083815481106117715761177061226b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b54600a5460646117ae91906120d5565b6117b891906120d5565b6064886117c5919061204a565b6117cf919061207b565b6040518363ffffffff1660e01b81526004016117ec929190611f06565b602060405180830381600087803b15801561180657600080fd5b505af115801561181a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183e9190611cda565b50611847611b09565b600b54600a54606461185991906120d5565b61186391906120d5565b606485611870919061204a565b61187a919061207b565b601b6009600a811061188f5761188e61226b565b5b0181905550601081815481106118a8576118a761226b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660116009600a81106118e8576118e761226b565b5b0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050506119f9565b808061193b90612189565b915050611651565b50600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161199f9190611e8b565b60206040518083038186803b1580156119b757600080fd5b505afa1580156119cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ef9190611d34565b600c819055505050505b565b60085481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611aa85750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611ab157600080fd5b610dd4811015611ac057600080fd5b8060048190555050565b60065481565b60095481565b600e6020528060005260406000206000915090505481565b601b81600a8110611afe57600080fd5b016000915090505481565b60005b6009811015611bf857601b600182611b249190611ff4565b600a8110611b3557611b3461226b565b5b0154601b82600a8110611b4b57611b4a61226b565b5b01819055506011600182611b5f9190611ff4565b600a8110611b7057611b6f61226b565b5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601182600a8110611ba657611ba561226b565b5b0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508080611bf090612189565b915050611b0c565b50565b604051806101400160405280600a905b611c13611c29565b815260200190600190039081611c0b5790505090565b6040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525090565b600081359050611c688161229f565b92915050565b600081519050611c7d816122b6565b92915050565b600081359050611c92816122cd565b92915050565b600081519050611ca7816122cd565b92915050565b600060208284031215611cc357611cc261229a565b5b6000611cd184828501611c59565b91505092915050565b600060208284031215611cf057611cef61229a565b5b6000611cfe84828501611c6e565b91505092915050565b600060208284031215611d1d57611d1c61229a565b5b6000611d2b84828501611c83565b91505092915050565b600060208284031215611d4a57611d4961229a565b5b6000611d5884828501611c98565b91505092915050565b6000611d6d8383611e14565b60408301905092915050565b611d8281612109565b82525050565b611d9181612109565b82525050565b611da081611f8b565b611daa8184611fa3565b9250611db582611f81565b8060005b83811015611de6578151611dcd8782611d61565b9650611dd883611f96565b925050600181019050611db9565b505050505050565b611dff611dfa82612127565b6121d2565b82525050565b611e0e81612177565b82525050565b604082016000820151611e2a6000850182611d79565b506020820151611e3d6020850182611e52565b50505050565b611e4c81612131565b82525050565b611e5b8161216d565b82525050565b611e6a8161216d565b82525050565b6000611e7c8284611dee565b60208201915081905092915050565b6000602082019050611ea06000830184611d88565b92915050565b6000606082019050611ebb6000830186611d88565b611ec86020830185611d88565b611ed56040830184611e61565b949350505050565b6000604082019050611ef26000830185611d88565b611eff6020830184611e05565b9392505050565b6000604082019050611f1b6000830185611d88565b611f286020830184611e61565b9392505050565b600061028082019050611f456000830184611d97565b92915050565b6000602082019050611f606000830184611e43565b92915050565b6000602082019050611f7b6000830184611e61565b92915050565b6000819050919050565b6000600a9050919050565b6000602082019050919050565b600081905092915050565b6000611fb982612131565b9150611fc483612131565b9250826fffffffffffffffffffffffffffffffff03821115611fe957611fe861220d565b5b828201905092915050565b6000611fff8261216d565b915061200a8361216d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561203f5761203e61220d565b5b828201905092915050565b60006120558261216d565b91506120608361216d565b9250826120705761206f61223c565b5b828204905092915050565b60006120868261216d565b91506120918361216d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156120ca576120c961220d565b5b828202905092915050565b60006120e08261216d565b91506120eb8361216d565b9250828210156120fe576120fd61220d565b5b828203905092915050565b60006121148261214d565b9050919050565b60008115159050919050565b6000819050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006121828261216d565b9050919050565b60006121948261216d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156121c7576121c661220d565b5b600182019050919050565b6000819050919050565b60006121e78261216d565b91506121f28361216d565b9250826122025761220161223c565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b6122a881612109565b81146122b357600080fd5b50565b6122bf8161211b565b81146122ca57600080fd5b50565b6122d68161216d565b81146122e157600080fd5b5056fea26469706673582212205243dd075dd828aab8f762f24bc8b6a78816a1c31d03146e3646a73f563dee4064736f6c63430008060033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061014d5760003560e01c80638e7ea5b2116100c3578063bdcd3d771161007c578063bdcd3d771461033e578063cf7945161461035c578063d89db4e314610378578063dd11247e14610396578063e3d670d7146103b4578063f301af42146103e45761014d565b80638e7ea5b2146102a45780639012c4a8146102c257806390d22ed2146102de578063a2fb1175146102e8578063b6b55f2514610318578063b77200b1146103345761014d565b806338422bb91161011557806338422bb9146101e45780633ccfd60b1461020057806343709d761461020a57806346c6487314610228578063657c0e0a146102585780636dcbf2a3146102745761014d565b8063136435ca146101525780631d9e75f21461016e5780631f9b65c514610178578063365b98b21461019657806336a041df146101c6575b600080fd5b61016c60048036038101906101679190611d07565b610414565b005b6101766104ce565b005b610180610727565b60405161018d9190611f66565b60405180910390f35b6101b060048036038101906101ab9190611d07565b61072d565b6040516101bd9190611e8b565b60405180910390f35b6101ce61076c565b6040516101db9190611f66565b60405180910390f35b6101fe60048036038101906101f99190611d07565b610772565b005b61020861083b565b005b610212610ae5565b60405161021f9190611f66565b60405180910390f35b610242600480360381019061023d9190611cad565b610aeb565b60405161024f9190611f66565b60405180910390f35b610272600480360381019061026d9190611d07565b610b03565b005b61028e60048036038101906102899190611cad565b610bc9565b60405161029b9190611f4b565b60405180910390f35b6102ac610bf8565b6040516102b99190611f2f565b60405180910390f35b6102dc60048036038101906102d79190611d07565b610cbf565b005b6102e6610d2d565b005b61030260048036038101906102fd9190611d07565b610f89565b60405161030f9190611e8b565b60405180910390f35b610332600480360381019061032d9190611d07565b610fbf565b005b61033c611265565b005b6103466119fb565b6040516103539190611f66565b60405180910390f35b61037660048036038101906103719190611d07565b611a01565b005b610380611aca565b60405161038d9190611f66565b60405180910390f35b61039e611ad0565b6040516103ab9190611f66565b60405180910390f35b6103ce60048036038101906103c99190611cad565b611ad6565b6040516103db9190611f66565b60405180910390f35b6103fe60048036038101906103f99190611d07565b611aee565b60405161040b9190611f66565b60405180910390f35b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806104bb5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6104c457600080fd5b8060068190555050565b6102586004546008546104e19190611ff4565b6104eb91906120d5565b42116104f657600080fd5b60005b601080549050811015610724576103e8600e6000601084815481106105215761052061226b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610591919061204a565b600d6000601084815481106105a9576105a861226b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282829054906101000a90046fffffffffffffffffffffffffffffffff166106389190611fae565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506103e8600e6000601084815481106106895761068861226b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106f9919061204a565b6009600082825461070a9190611ff4565b92505081905550808061071c90612189565b9150506104f9565b50565b60055481565b6010818154811061073d57600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806108195750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61082257600080fd5b610dd481101561083157600080fd5b8060058190555050565b42600654600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108899190611ff4565b1061089357600080fd5b6000600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054116108df57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb3060006040518363ffffffff1660e01b815260040161093d929190611edd565b602060405180830381600087803b15801561095757600080fd5b505af115801561096b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098f9190611cda565b506000600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610a76929190611f06565b602060405180830381600087803b158015610a9057600080fd5b505af1158015610aa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac89190611cda565b5080600c6000828254610adb91906120d5565b9250508190555050565b60075481565b600f6020528060005260406000206000915090505481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610baa5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610bb357600080fd5b606581610bc091906121dc565b600b8190555050565b600d6020528060005260406000206000915054906101000a90046fffffffffffffffffffffffffffffffff1681565b610c00611bfb565b610c08611bfb565b60005b600a811015610cb7576040518060400160405280601183600a8110610c3357610c3261226b565b5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001601b83600a8110610c8457610c8361226b565b5b01548152508282600a8110610c9c57610c9b61226b565b5b60200201819052508080610caf90612189565b915050610c0b565b508091505090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d1757600080fd5b606581610d2491906121dc565b600a8190555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610dd45750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610ddd57600080fd5b60005b601080549050811015610f6b57600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60108381548110610e3f57610e3e61226b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600e600060108681548110610e8257610e8161226b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401610f05929190611f06565b602060405180830381600087803b158015610f1f57600080fd5b505af1158015610f33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f579190611cda565b508080610f6390612189565b915050610de0565b506001602560006101000a81548160ff021916908315150217905550565b601181600a8110610f9957600080fd5b016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600081118015610fdc5750602560009054906101000a900460ff16155b610fe557600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b815260040161104493929190611ea6565b602060405180830381600087803b15801561105e57600080fd5b505af1158015611072573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110969190611cda565b61109f57600080fd5b60006001905060005b601080549050811015611143573373ffffffffffffffffffffffffffffffffffffffff16601082815481106110e0576110df61226b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156111305760009150611143565b808061113b90612189565b9150506110a8565b5080156111ae576010339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b81600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111fd9190611ff4565b9250508190555042600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600c600082825461125a9190611ff4565b925050819055505050565b426102586005546007546112799190611ff4565b61128391906120d5565b1061128d57600080fd5b42600781905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb3060006040518363ffffffff1660e01b81526004016112f2929190611edd565b602060405180830381600087803b15801561130c57600080fd5b505af1158015611320573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113449190611cda565b506000600c54600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016113a59190611e8b565b60206040518083038186803b1580156113bd57600080fd5b505afa1580156113d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f59190611d34565b6113ff91906120d5565b9050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604b6064600a54606487611474919061204a565b61147e919061207b565b611488919061204a565b611492919061207b565b6040518363ffffffff1660e01b81526004016114af929190611f06565b602060405180830381600087803b1580156114c957600080fd5b505af11580156114dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115019190611cda565b50600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660196064600a54606487611577919061204a565b611581919061207b565b61158b919061204a565b611595919061207b565b6040518363ffffffff1660e01b81526004016115b2929190611f06565b602060405180830381600087803b1580156115cc57600080fd5b505af11580156115e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116049190611cda565b50600060095460014361161791906120d5565b406040516020016116289190611e70565b6040516020818303038152906040528051906020012060001c61164b91906121dc565b90506000805b60108054905081101561194357600d6000601083815481106116765761167561226b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16826117159190611ff4565b91508282111561193057600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601083815481106117715761177061226b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b54600a5460646117ae91906120d5565b6117b891906120d5565b6064886117c5919061204a565b6117cf919061207b565b6040518363ffffffff1660e01b81526004016117ec929190611f06565b602060405180830381600087803b15801561180657600080fd5b505af115801561181a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183e9190611cda565b50611847611b09565b600b54600a54606461185991906120d5565b61186391906120d5565b606485611870919061204a565b61187a919061207b565b601b6009600a811061188f5761188e61226b565b5b0181905550601081815481106118a8576118a761226b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660116009600a81106118e8576118e761226b565b5b0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050506119f9565b808061193b90612189565b915050611651565b50600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161199f9190611e8b565b60206040518083038186803b1580156119b757600080fd5b505afa1580156119cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ef9190611d34565b600c819055505050505b565b60085481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611aa85750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611ab157600080fd5b610dd4811015611ac057600080fd5b8060048190555050565b60065481565b60095481565b600e6020528060005260406000206000915090505481565b601b81600a8110611afe57600080fd5b016000915090505481565b60005b6009811015611bf857601b600182611b249190611ff4565b600a8110611b3557611b3461226b565b5b0154601b82600a8110611b4b57611b4a61226b565b5b01819055506011600182611b5f9190611ff4565b600a8110611b7057611b6f61226b565b5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601182600a8110611ba657611ba561226b565b5b0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508080611bf090612189565b915050611b0c565b50565b604051806101400160405280600a905b611c13611c29565b815260200190600190039081611c0b5790505090565b6040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525090565b600081359050611c688161229f565b92915050565b600081519050611c7d816122b6565b92915050565b600081359050611c92816122cd565b92915050565b600081519050611ca7816122cd565b92915050565b600060208284031215611cc357611cc261229a565b5b6000611cd184828501611c59565b91505092915050565b600060208284031215611cf057611cef61229a565b5b6000611cfe84828501611c6e565b91505092915050565b600060208284031215611d1d57611d1c61229a565b5b6000611d2b84828501611c83565b91505092915050565b600060208284031215611d4a57611d4961229a565b5b6000611d5884828501611c98565b91505092915050565b6000611d6d8383611e14565b60408301905092915050565b611d8281612109565b82525050565b611d9181612109565b82525050565b611da081611f8b565b611daa8184611fa3565b9250611db582611f81565b8060005b83811015611de6578151611dcd8782611d61565b9650611dd883611f96565b925050600181019050611db9565b505050505050565b611dff611dfa82612127565b6121d2565b82525050565b611e0e81612177565b82525050565b604082016000820151611e2a6000850182611d79565b506020820151611e3d6020850182611e52565b50505050565b611e4c81612131565b82525050565b611e5b8161216d565b82525050565b611e6a8161216d565b82525050565b6000611e7c8284611dee565b60208201915081905092915050565b6000602082019050611ea06000830184611d88565b92915050565b6000606082019050611ebb6000830186611d88565b611ec86020830185611d88565b611ed56040830184611e61565b949350505050565b6000604082019050611ef26000830185611d88565b611eff6020830184611e05565b9392505050565b6000604082019050611f1b6000830185611d88565b611f286020830184611e61565b9392505050565b600061028082019050611f456000830184611d97565b92915050565b6000602082019050611f606000830184611e43565b92915050565b6000602082019050611f7b6000830184611e61565b92915050565b6000819050919050565b6000600a9050919050565b6000602082019050919050565b600081905092915050565b6000611fb982612131565b9150611fc483612131565b9250826fffffffffffffffffffffffffffffffff03821115611fe957611fe861220d565b5b828201905092915050565b6000611fff8261216d565b915061200a8361216d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561203f5761203e61220d565b5b828201905092915050565b60006120558261216d565b91506120608361216d565b9250826120705761206f61223c565b5b828204905092915050565b60006120868261216d565b91506120918361216d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156120ca576120c961220d565b5b828202905092915050565b60006120e08261216d565b91506120eb8361216d565b9250828210156120fe576120fd61220d565b5b828203905092915050565b60006121148261214d565b9050919050565b60008115159050919050565b6000819050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006121828261216d565b9050919050565b60006121948261216d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156121c7576121c661220d565b5b600182019050919050565b6000819050919050565b60006121e78261216d565b91506121f28361216d565b9250826122025761220161223c565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b6122a881612109565b81146122b357600080fd5b50565b6122bf8161211b565b81146122ca57600080fd5b50565b6122d68161216d565b81146122e157600080fd5b5056fea26469706673582212205243dd075dd828aab8f762f24bc8b6a78816a1c31d03146e3646a73f563dee4064736f6c63430008060033

Deployed Bytecode Sourcemap

2700:5364:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5245:144;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6418:343;;;:::i;:::-;;3041:34;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3533:22;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3004:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5594:187;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4808:425;;;:::i;:::-;;3128:55;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3477:43;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5793:158;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3382:42;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3925:257;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5963:120;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6095:311;;;:::i;:::-;;3568:26;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4194:602;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6773:1282;;;:::i;:::-;;3190:55;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5401:181;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3082:33;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3258:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3431:39;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3601:23;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5245:144;5325:3;;;;;;;;;;5311:17;;:10;:17;;;:38;;;;5346:3;;;;;;;;;;;5332:17;;:10;:17;;;5311:38;5303:47;;;;;;5374:7;5361:10;:20;;;;5245:144;:::o;6418:343::-;6519:10;6508:8;;6491:14;;:25;;;;:::i;:::-;:38;;;;:::i;:::-;6473:15;:56;6465:65;;;;;;6546:6;6541:213;6562:5;:12;;;;6558:1;:16;6541:213;;;6645:4;6625:7;:17;6633:5;6639:1;6633:8;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6625:17;;;;;;;;;;;;;;;;:24;;;;:::i;:::-;6596:7;:17;6604:5;6610:1;6604:8;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6596:17;;;;;;;;;;;;;;;;:54;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6738:4;6718:7;:17;6726:5;6732:1;6726:8;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6718:17;;;;;;;;;;;;;;;;:24;;;;:::i;:::-;6702:12;;:40;;;;;;;:::i;:::-;;;;;;;;6576:3;;;;;:::i;:::-;;;;6541:213;;;;6418:343::o;3041:34::-;;;;:::o;3533:22::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3004:30::-;;;;:::o;5594:187::-;5675:3;;;;;;;;;;5661:17;;:10;:17;;;:38;;;;5696:3;;;;;;;;;;;5682:17;;:10;:17;;;5661:38;5653:47;;;;;;5730:10;5719:7;:21;;5711:30;;;;;;5766:7;5752:11;:21;;;;5594:187;:::o;4808:425::-;4893:15;4880:10;;4854:11;:23;4866:10;4854:23;;;;;;;;;;;;;;;;:36;;;;:::i;:::-;:54;4846:63;;;;;;4950:1;4928:7;:19;4936:10;4928:19;;;;;;;;;;;;;;;;:23;4920:32;;;;;;4963:4;;;;;;;;;;;:13;;;4985:4;4992:1;4963:31;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5080:11;5094:7;:19;5102:10;5094:19;;;;;;;;;;;;;;;;5080:33;;5146:1;5124:7;:19;5132:10;5124:19;;;;;;;;;;;;;;;:23;;;;5158:4;;;;;;;;;;;:13;;;5172:10;5184:6;5158:33;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5219:6;5202:13;;:23;;;;;;;:::i;:::-;;;;;;;;4835:398;4808:425::o;3128:55::-;;;;:::o;3477:43::-;;;;;;;;;;;;;;;;;:::o;5793:158::-;5877:3;;;;;;;;;;5863:17;;:10;:17;;;:38;;;;5898:3;;;;;;;;;;;5884:17;;:10;:17;;;5863:38;5855:47;;;;;;5940:3;5927:10;:16;;;;:::i;:::-;5913:11;:30;;;;5793:158;:::o;3382:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;3925:257::-;3967:17;;:::i;:::-;3997:24;;:::i;:::-;4047:6;4042:99;4063:2;4059:1;:6;4042:99;;;4099:30;;;;;;;;4106:7;4114:1;4106:10;;;;;;;:::i;:::-;;;;;;;;;;;;;4099:30;;;;;;4118:7;4126:1;4118:10;;;;;;;:::i;:::-;;;;4099:30;;;4087:6;4094:1;4087:9;;;;;;;:::i;:::-;;;;;:42;;;;4067:3;;;;;:::i;:::-;;;;4042:99;;;;4168:6;4161:13;;;3925:257;:::o;5963:120::-;6035:3;;;;;;;;;;6021:17;;:10;:17;;;6013:26;;;;;;6072:3;6063:6;:12;;;;:::i;:::-;6050:10;:25;;;;5963:120;:::o;6095:311::-;6232:3;;;;;;;;;;6218:17;;:10;:17;;;:38;;;;6253:3;;;;;;;;;;;6239:17;;:10;:17;;;6218:38;6210:47;;;;;;6273:6;6268:109;6289:5;:12;;;;6285:1;:16;6268:109;;;6323:4;;;;;;;;;;;:13;;;6337:5;6343:1;6337:8;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6347:7;:17;6355:5;6361:1;6355:8;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6347:17;;;;;;;;;;;;;;;;6323:42;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6303:3;;;;;:::i;:::-;;;;6268:109;;;;6394:4;6387;;:11;;;;;;;;;;;;;;;;;;6095:311::o;3568:26::-;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4194:602::-;4259:1;4250:6;:10;:19;;;;;4265:4;;;;;;;;;;;4264:5;4250:19;4242:28;;;;;;4289:4;;;;;;;;;;;:17;;;4307:10;4327:4;4334:6;4289:52;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4281:61;;;;;;4353:12;4368:4;4353:19;;4398:6;4393:168;4414:5;:12;;;;4410:1;:16;4393:168;;;4464:10;4452:22;;:5;4458:1;4452:8;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:22;;;4448:102;;;4505:5;4495:15;;4529:5;;4448:102;4428:3;;;;;:::i;:::-;;;;4393:168;;;;4585:7;4581:62;;;4609:5;4620:10;4609:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4581:62;4686:6;4663:7;:19;4671:10;4663:19;;;;;;;;;;;;;;;;:29;;;;;;;:::i;:::-;;;;;;;;4729:15;4703:11;:23;4715:10;4703:23;;;;;;;;;;;;;;;:41;;;;4782:6;4765:13;;:23;;;;;;;:::i;:::-;;;;;;;;4231:565;4194:602;:::o;6773:1282::-;6859:15;6846:10;6832:11;;6818;;:25;;;;:::i;:::-;:38;;;;:::i;:::-;:56;6810:65;;;;;;6920:15;6906:11;:29;;;;6956:4;;;;;;;;;;;:13;;;6978:4;6985:1;6956:31;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7015:11;7061:13;;7029:4;;;;;;;;;;;:14;;;7052:4;7029:29;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;;;;:::i;:::-;7015:59;;7095:4;;;;;;;;;;;:13;;;7109:3;;;;;;;;;;7148:2;7142:3;7129:10;;7123:3;7114:6;:12;;;;:::i;:::-;:25;;;;:::i;:::-;:31;;;;:::i;:::-;:36;;;;:::i;:::-;7095:56;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7320:4;;;;;;;;;;;:13;;;7334:3;;;;;;;;;;;7373:2;7367:3;7354:10;;7348:3;7339:6;:12;;;;:::i;:::-;:25;;;;:::i;:::-;:31;;;;:::i;:::-;:36;;;;:::i;:::-;7320:56;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7428:11;7507:12;;7499:1;7484:12;:16;;;;:::i;:::-;7474:27;7457:45;;;;;;;;:::i;:::-;;;;;;;;;;;;;7447:56;;;;;;7442:62;;:77;;;;:::i;:::-;7428:91;;7530:15;7575:6;7570:412;7591:5;:12;;;;7587:1;:16;7570:412;;;7639:7;:17;7647:5;7653:1;7647:8;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7639:17;;;;;;;;;;;;;;;;;;;;;;;;;7625:31;;;;;;;:::i;:::-;;;7688:6;7675:10;:19;7671:300;;;7715:4;;;;;;;;;;;:13;;;7729:5;7735:1;7729:8;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7774:11;;7761:10;;7755:3;:16;;;;:::i;:::-;:30;;;;:::i;:::-;7748:3;7739:6;:12;;;;:::i;:::-;:47;;;;:::i;:::-;7715:72;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7806:5;:3;:5::i;:::-;7878:11;;7865:10;;7859:3;:16;;;;:::i;:::-;:30;;;;:::i;:::-;7852:3;7843:6;:12;;;;:::i;:::-;:47;;;;:::i;:::-;7830:7;7838:1;7830:10;;;;;;;:::i;:::-;;;:60;;;;7922:5;7928:1;7922:8;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7909:7;7917:1;7909:10;;;;;;;:::i;:::-;;;;:21;;;;;;;;;;;;;;;;;;7949:7;;;;;;7671:300;7605:3;;;;;:::i;:::-;;;;7570:412;;;;8018:4;;;;;;;;;;;:14;;;8041:4;8018:29;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8002:13;:45;;;;6799:1256;;;6773:1282;:::o;3190:55::-;;;;:::o;5401:181::-;5479:3;;;;;;;;;;5465:17;;:10;:17;;;:38;;;;5500:3;;;;;;;;;;;5486:17;;:10;:17;;;5465:38;5457:47;;;;;;5534:10;5523:7;:21;;5515:30;;;;;;5567:7;5556:8;:18;;;;5401:181;:::o;3082:33::-;;;;:::o;3258:28::-;;;;:::o;3431:39::-;;;;;;;;;;;;;;;;;:::o;3601:23::-;;;;;;;;;;;;;;;;;;;;:::o;3667:167::-;3707:6;3702:125;3723:1;3719;:5;3702:125;;;3759:7;3771:1;3767;:5;;;;:::i;:::-;3759:14;;;;;;;:::i;:::-;;;;3746:7;3754:1;3746:10;;;;;;;:::i;:::-;;;:27;;;;3801:7;3813:1;3809;:5;;;;:::i;:::-;3801:14;;;;;;;:::i;:::-;;;;;;;;;;;;;3788:7;3796:1;3788:10;;;;;;;:::i;:::-;;;;:27;;;;;;;;;;;;;;;;;;3726:3;;;;;:::i;:::-;;;;3702:125;;;;3667:167::o;-1:-1:-1:-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:137::-;206:5;237:6;231:13;222:22;;253:30;277:5;253:30;:::i;:::-;212:77;;;;:::o;295:139::-;341:5;379:6;366:20;357:29;;395:33;422:5;395:33;:::i;:::-;347:87;;;;:::o;440:143::-;497:5;528:6;522:13;513:22;;544:33;571:5;544:33;:::i;:::-;503:80;;;;:::o;589:329::-;648:6;697:2;685:9;676:7;672:23;668:32;665:2;;;703:79;;:::i;:::-;665:2;823:1;848:53;893:7;884:6;873:9;869:22;848:53;:::i;:::-;838:63;;794:117;655:263;;;;:::o;924:345::-;991:6;1040:2;1028:9;1019:7;1015:23;1011:32;1008:2;;;1046:79;;:::i;:::-;1008:2;1166:1;1191:61;1244:7;1235:6;1224:9;1220:22;1191:61;:::i;:::-;1181:71;;1137:125;998:271;;;;:::o;1275:329::-;1334:6;1383:2;1371:9;1362:7;1358:23;1354:32;1351:2;;;1389:79;;:::i;:::-;1351:2;1509:1;1534:53;1579:7;1570:6;1559:9;1555:22;1534:53;:::i;:::-;1524:63;;1480:117;1341:263;;;;:::o;1610:351::-;1680:6;1729:2;1717:9;1708:7;1704:23;1700:32;1697:2;;;1735:79;;:::i;:::-;1697:2;1855:1;1880:64;1936:7;1927:6;1916:9;1912:22;1880:64;:::i;:::-;1870:74;;1826:128;1687:274;;;;:::o;1967:271::-;2082:10;2103:92;2191:3;2183:6;2103:92;:::i;:::-;2227:4;2222:3;2218:14;2204:28;;2093:145;;;;:::o;2244:108::-;2321:24;2339:5;2321:24;:::i;:::-;2316:3;2309:37;2299:53;;:::o;2358:118::-;2445:24;2463:5;2445:24;:::i;:::-;2440:3;2433:37;2423:53;;:::o;2548:884::-;2732:76;2802:5;2732:76;:::i;:::-;2824:108;2925:6;2920:3;2824:108;:::i;:::-;2817:115;;2956:78;3028:5;2956:78;:::i;:::-;3057:7;3088:1;3073:352;3098:6;3095:1;3092:13;3073:352;;;3174:6;3168:13;3201:109;3306:3;3291:13;3201:109;:::i;:::-;3194:116;;3333:82;3408:6;3333:82;:::i;:::-;3323:92;;3133:292;3120:1;3117;3113:9;3108:14;;3073:352;;;3077:14;2708:724;;;;;:::o;3438:157::-;3543:45;3563:24;3581:5;3563:24;:::i;:::-;3543:45;:::i;:::-;3538:3;3531:58;3521:74;;:::o;3601:147::-;3696:45;3735:5;3696:45;:::i;:::-;3691:3;3684:58;3674:74;;:::o;3812:495::-;3945:4;3940:3;3936:14;4032:4;4025:5;4021:16;4015:23;4051:63;4108:4;4103:3;4099:14;4085:12;4051:63;:::i;:::-;3960:164;4208:4;4201:5;4197:16;4191:23;4227:63;4284:4;4279:3;4275:14;4261:12;4227:63;:::i;:::-;4134:166;3914:393;;;:::o;4313:118::-;4400:24;4418:5;4400:24;:::i;:::-;4395:3;4388:37;4378:53;;:::o;4437:108::-;4514:24;4532:5;4514:24;:::i;:::-;4509:3;4502:37;4492:53;;:::o;4551:118::-;4638:24;4656:5;4638:24;:::i;:::-;4633:3;4626:37;4616:53;;:::o;4675:256::-;4787:3;4802:75;4873:3;4864:6;4802:75;:::i;:::-;4902:2;4897:3;4893:12;4886:19;;4922:3;4915:10;;4791:140;;;;:::o;4937:222::-;5030:4;5068:2;5057:9;5053:18;5045:26;;5081:71;5149:1;5138:9;5134:17;5125:6;5081:71;:::i;:::-;5035:124;;;;:::o;5165:442::-;5314:4;5352:2;5341:9;5337:18;5329:26;;5365:71;5433:1;5422:9;5418:17;5409:6;5365:71;:::i;:::-;5446:72;5514:2;5503:9;5499:18;5490:6;5446:72;:::i;:::-;5528;5596:2;5585:9;5581:18;5572:6;5528:72;:::i;:::-;5319:288;;;;;;:::o;5613:348::-;5742:4;5780:2;5769:9;5765:18;5757:26;;5793:71;5861:1;5850:9;5846:17;5837:6;5793:71;:::i;:::-;5874:80;5950:2;5939:9;5935:18;5926:6;5874:80;:::i;:::-;5747:214;;;;;:::o;5967:332::-;6088:4;6126:2;6115:9;6111:18;6103:26;;6139:71;6207:1;6196:9;6192:17;6183:6;6139:71;:::i;:::-;6220:72;6288:2;6277:9;6273:18;6264:6;6220:72;:::i;:::-;6093:206;;;;;:::o;6305:411::-;6492:4;6530:3;6519:9;6515:19;6507:27;;6544:165;6706:1;6695:9;6691:17;6682:6;6544:165;:::i;:::-;6497:219;;;;:::o;6722:222::-;6815:4;6853:2;6842:9;6838:18;6830:26;;6866:71;6934:1;6923:9;6919:17;6910:6;6866:71;:::i;:::-;6820:124;;;;:::o;6950:222::-;7043:4;7081:2;7070:9;7066:18;7058:26;;7094:71;7162:1;7151:9;7147:17;7138:6;7094:71;:::i;:::-;7048:124;;;;:::o;7259:122::-;7348:4;7371:3;7363:11;;7353:28;;;:::o;7387:128::-;7476:6;7504:4;7494:14;;7483:32;;;:::o;7521:135::-;7613:4;7645;7640:3;7636:14;7628:22;;7618:38;;;:::o;7662:167::-;7783:11;7820:3;7805:18;;7795:34;;;;:::o;7835:273::-;7875:3;7894:20;7912:1;7894:20;:::i;:::-;7889:25;;7928:20;7946:1;7928:20;:::i;:::-;7923:25;;8050:1;8014:34;8010:42;8007:1;8004:49;8001:2;;;8056:18;;:::i;:::-;8001:2;8100:1;8097;8093:9;8086:16;;7879:229;;;;:::o;8114:305::-;8154:3;8173:20;8191:1;8173:20;:::i;:::-;8168:25;;8207:20;8225:1;8207:20;:::i;:::-;8202:25;;8361:1;8293:66;8289:74;8286:1;8283:81;8280:2;;;8367:18;;:::i;:::-;8280:2;8411:1;8408;8404:9;8397:16;;8158:261;;;;:::o;8425:185::-;8465:1;8482:20;8500:1;8482:20;:::i;:::-;8477:25;;8516:20;8534:1;8516:20;:::i;:::-;8511:25;;8555:1;8545:2;;8560:18;;:::i;:::-;8545:2;8602:1;8599;8595:9;8590:14;;8467:143;;;;:::o;8616:348::-;8656:7;8679:20;8697:1;8679:20;:::i;:::-;8674:25;;8713:20;8731:1;8713:20;:::i;:::-;8708:25;;8901:1;8833:66;8829:74;8826:1;8823:81;8818:1;8811:9;8804:17;8800:105;8797:2;;;8908:18;;:::i;:::-;8797:2;8956:1;8953;8949:9;8938:20;;8664:300;;;;:::o;8970:191::-;9010:4;9030:20;9048:1;9030:20;:::i;:::-;9025:25;;9064:20;9082:1;9064:20;:::i;:::-;9059:25;;9103:1;9100;9097:8;9094:2;;;9108:18;;:::i;:::-;9094:2;9153:1;9150;9146:9;9138:17;;9015:146;;;;:::o;9167:96::-;9204:7;9233:24;9251:5;9233:24;:::i;:::-;9222:35;;9212:51;;;:::o;9269:90::-;9303:7;9346:5;9339:13;9332:21;9321:32;;9311:48;;;:::o;9365:77::-;9402:7;9431:5;9420:16;;9410:32;;;:::o;9448:118::-;9485:7;9525:34;9518:5;9514:46;9503:57;;9493:73;;;:::o;9572:126::-;9609:7;9649:42;9642:5;9638:54;9627:65;;9617:81;;;:::o;9704:77::-;9741:7;9770:5;9759:16;;9749:32;;;:::o;9787:121::-;9845:9;9878:24;9896:5;9878:24;:::i;:::-;9865:37;;9855:53;;;:::o;9914:233::-;9953:3;9976:24;9994:5;9976:24;:::i;:::-;9967:33;;10022:66;10015:5;10012:77;10009:2;;;10092:18;;:::i;:::-;10009:2;10139:1;10132:5;10128:13;10121:20;;9957:190;;;:::o;10153:79::-;10192:7;10221:5;10210:16;;10200:32;;;:::o;10238:176::-;10270:1;10287:20;10305:1;10287:20;:::i;:::-;10282:25;;10321:20;10339:1;10321:20;:::i;:::-;10316:25;;10360:1;10350:2;;10365:18;;:::i;:::-;10350:2;10406:1;10403;10399:9;10394:14;;10272:142;;;;:::o;10420:180::-;10468:77;10465:1;10458:88;10565:4;10562:1;10555:15;10589:4;10586:1;10579:15;10606:180;10654:77;10651:1;10644:88;10751:4;10748:1;10741:15;10775:4;10772:1;10765:15;10792:180;10840:77;10837:1;10830:88;10937:4;10934:1;10927:15;10961:4;10958:1;10951:15;11101:117;11210:1;11207;11200:12;11224:122;11297:24;11315:5;11297:24;:::i;:::-;11290:5;11287:35;11277:2;;11336:1;11333;11326:12;11277:2;11267:79;:::o;11352:116::-;11422:21;11437:5;11422:21;:::i;:::-;11415:5;11412:32;11402:2;;11458:1;11455;11448:12;11402:2;11392:76;:::o;11474:122::-;11547:24;11565:5;11547:24;:::i;:::-;11540:5;11537:35;11527:2;;11586:1;11583;11576:12;11527:2;11517:79;:::o

Swarm Source

ipfs://5243dd075dd828aab8f762f24bc8b6a78816a1c31d03146e3646a73f563dee40

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

Txn Hash Block Value Eth2 PubKey Valid
View All Deposits
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.