ETH Price: $3,219.86 (+3.28%)
 

Overview

ETH Balance

0.04364119279276275 ETH

Eth Value

$140.52 (@ $3,219.86/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Unstake212713292024-11-26 10:28:4765 days ago1732616927IN
0x76704770...772aD56d9
0 ETH0.001296029.23747219
Unstake212432432024-11-22 12:22:3569 days ago1732278155IN
0x76704770...772aD56d9
0 ETH0.0030116110.65827644
Unstake203854522024-07-25 18:47:47188 days ago1721933267IN
0x76704770...772aD56d9
0 ETH0.000491964.92337702
Unstake203851252024-07-25 17:42:11188 days ago1721929331IN
0x76704770...772aD56d9
0 ETH0.001267674.4863899
Claim203851072024-07-25 17:38:35188 days ago1721929115IN
0x76704770...772aD56d9
0 ETH0.000169455.03141723
Unstake201713692024-06-25 21:25:47218 days ago1719350747IN
0x76704770...772aD56d9
0 ETH0.00094456.73196997
Unstake201713452024-06-25 21:20:59218 days ago1719350459IN
0x76704770...772aD56d9
0 ETH0.001748226.18681495
Unstake201713282024-06-25 21:17:35218 days ago1719350255IN
0x76704770...772aD56d9
0 ETH0.000378764.57315635
Unstake201713162024-06-25 21:15:11218 days ago1719350111IN
0x76704770...772aD56d9
0 ETH0.001187734.38278737
Unstake201713132024-06-25 21:14:35218 days ago1719350075IN
0x76704770...772aD56d9
0 ETH0.001340024.20822894
Unstake201713082024-06-25 21:13:35218 days ago1719350015IN
0x76704770...772aD56d9
0 ETH0.000389564.24288699
Unstake201712912024-06-25 21:10:11218 days ago1719349811IN
0x76704770...772aD56d9
0 ETH0.000363484.3880147
Unstake201712852024-06-25 21:08:59218 days ago1719349739IN
0x76704770...772aD56d9
0 ETH0.001226994.34241089
Claim200010272024-06-02 2:02:47242 days ago1717293767IN
0x76704770...772aD56d9
0 ETH0.000180495.35897629
Unstake197914052024-05-03 18:33:59271 days ago1714761239IN
0x76704770...772aD56d9
0 ETH0.00048365.20900659
Unstake197914022024-05-03 18:33:23271 days ago1714761203IN
0x76704770...772aD56d9
0 ETH0.001573575.08151563
Claim197913652024-05-03 18:25:59271 days ago1714760759IN
0x76704770...772aD56d9
0 ETH0.000174575.18333615
Claim197913562024-05-03 18:24:11271 days ago1714760651IN
0x76704770...772aD56d9
0 ETH0.000372064.66525446
Unstake197044112024-04-21 14:35:35283 days ago1713710135IN
0x76704770...772aD56d9
0 ETH0.001370839.119557
Claim196973072024-04-20 14:46:23284 days ago1713624383IN
0x76704770...772aD56d9
0 ETH0.0003473710.3139895
Unstake196855582024-04-18 23:15:47286 days ago1713482147IN
0x76704770...772aD56d9
0 ETH0.001991447.0475565
Stake195980782024-04-06 17:08:23298 days ago1712423303IN
0x76704770...772aD56d9
0 ETH0.0051099415.60761258
Unstake195978682024-04-06 16:25:59298 days ago1712420759IN
0x76704770...772aD56d9
0 ETH0.0017294920.88158153
Stake195978092024-04-06 16:13:59298 days ago1712420039IN
0x76704770...772aD56d9
0 ETH0.0021697516.99595574
Stake195977972024-04-06 16:11:35298 days ago1712419895IN
0x76704770...772aD56d9
0 ETH0.0024801118.72304194
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
197913562024-05-03 18:24:11271 days ago1714760651
0x76704770...772aD56d9
0.0000359 ETH
195250852024-03-27 10:31:11309 days ago1711535471
0x76704770...772aD56d9
0.00124918 ETH
195131012024-03-25 17:55:35310 days ago1711389335
0x76704770...772aD56d9
0.00087545 ETH
194953282024-03-23 5:51:11313 days ago1711173071
0x76704770...772aD56d9
0.0053 ETH
190132022024-01-15 15:33:35380 days ago1705332815
0x76704770...772aD56d9
0.00048293 ETH
189255172024-01-03 8:01:59393 days ago1704268919
0x76704770...772aD56d9
0.00062125 ETH
188324182023-12-21 6:19:59406 days ago1703139599
0x76704770...772aD56d9
0.000456 ETH
187957752023-12-16 2:49:47411 days ago1702694987
0x76704770...772aD56d9
0.00017226 ETH
187957752023-12-16 2:49:47411 days ago1702694987
0x76704770...772aD56d9
0.00011484 ETH
187826712023-12-14 6:42:59413 days ago1702536179
0x76704770...772aD56d9
0.00001065 ETH
187826712023-12-14 6:42:59413 days ago1702536179
0x76704770...772aD56d9
0.0000071 ETH
187720442023-12-12 18:59:35414 days ago1702407575
0x76704770...772aD56d9
0.0000297 ETH
187720442023-12-12 18:59:35414 days ago1702407575
0x76704770...772aD56d9
0.0000198 ETH
187584952023-12-10 21:29:23416 days ago1702243763
0x76704770...772aD56d9
0.0000297 ETH
187584952023-12-10 21:29:23416 days ago1702243763
0x76704770...772aD56d9
0.0000198 ETH
187534062023-12-10 4:23:59417 days ago1702182239
0x76704770...772aD56d9
0.00002376 ETH
187534062023-12-10 4:23:59417 days ago1702182239
0x76704770...772aD56d9
0.00001584 ETH
187500432023-12-09 17:05:23417 days ago1702141523
0x76704770...772aD56d9
0.00001188 ETH
187500432023-12-09 17:05:23417 days ago1702141523
0x76704770...772aD56d9
0.00000792 ETH
187457422023-12-09 2:37:23418 days ago1702089443
0x76704770...772aD56d9
0.00002414 ETH
187456002023-12-09 2:08:47418 days ago1702087727
0x76704770...772aD56d9
0.00001188 ETH
187456002023-12-09 2:08:47418 days ago1702087727
0x76704770...772aD56d9
0.00000792 ETH
187443722023-12-08 21:59:47418 days ago1702072787
0x76704770...772aD56d9
0.0000297 ETH
187443722023-12-08 21:59:47418 days ago1702072787
0x76704770...772aD56d9
0.0000198 ETH
187438612023-12-08 20:16:59418 days ago1702066619
0x76704770...772aD56d9
0.0000891 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Dividend

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2023-06-23
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.16;

abstract contract Context {

    function _msgSender() internal view virtual returns (address payable) {
        return payable(msg.sender);
    }

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        return msg.data;
    }
}

library SafeMath {

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

interface IERC20 {

    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external;
    function transferFrom(address sender, address recipient, uint256 amount) external;
}

contract Ownable is Context {

    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }   
    
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    
    function isOwner() public view returns (bool) {
        return msg.sender == _owner;
    }

    function renouncedOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0x000000000000000000000000000000000000dEaD));
        _owner = address(0x000000000000000000000000000000000000dEaD);
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }

}

interface IDividend {

    function deposit() external payable;
}

// Token dividend

contract Dividend is Ownable {

    using SafeMath for uint256;

    address public _distributor;
    IERC20 public _sToken = IERC20(0x8954D907520532c1f0d89d42569232Fd0f995Fdf);

    struct Share {
        uint256 amount;
        uint256 totalExcluded;
        uint256 totalRealised;
        uint256 reserved;
    }
    mapping (address => Share) public shares;
    
    uint256 public totalShares;
    uint256 public totalDividends;
    uint256 public totalDistributed;
    uint256 public dividendsPerShare;
    uint256 public totalReserved;

    uint256 public dividendsPerShareAccuracyFactor = 10 ** 26;

    modifier onlyDistributor() {
        require(msg.sender == _distributor); 
        _;
    }

    event tokenStaked(address _user,uint _amount,uint _stamp);
    event tokenUnstaked(address _user,uint _amount,uint _stamp);

    constructor() {
        _distributor = msg.sender;
    }

    function stake(uint amount) external {
        
        address shareholder = msg.sender;

        _sToken.transferFrom(shareholder, address(this), amount);

        if(shares[shareholder].amount > 0){
            distributeDividend(shareholder);
        }
        totalShares = totalShares.add(amount);
        shares[shareholder].amount += amount;
        shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);

        emit tokenStaked(shareholder,amount,block.timestamp);
    }

    function unstake(uint amount) external {

        address shareholder = msg.sender;
        uint userStaked = shares[shareholder].amount;
        require(userStaked >= amount,"Error: Invalid Amount!");
    
        if(shares[shareholder].amount > 0){
            distributeDividend(shareholder);
        }

        totalShares = totalShares.sub(amount);
        shares[shareholder].amount -= amount;
        shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);

        _sToken.transfer(shareholder, amount);

        emit tokenUnstaked(shareholder,amount,block.timestamp);
    }

    function claim() external {
        address user = msg.sender;
        distributeDividend(user);
        uint subtotal = shares[user].reserved;
        if(subtotal > 0) {
            shares[user].reserved = 0;
            totalReserved = totalReserved.sub(subtotal);
            payable(user).transfer(subtotal);
        }
    }

    function deposit() external payable onlyDistributor() {
        uint256 amount = msg.value;
        totalDividends = totalDividends.add(amount);
        dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares));
    }

    function distributeDividend(address shareholder) internal {
        if(shares[shareholder].amount == 0){ return; }
        uint256 amount = calEarning(shareholder);
        if(amount > 0){
            totalDistributed = totalDistributed.add(amount);
            shares[shareholder].reserved += amount;
            totalReserved += amount;
            shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount);
            shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
        }
    }

    function getUnpaidEarning(address shareholder) public view returns (uint256) {
        uint calReward = calEarning(shareholder);
        uint reservedReward = shares[shareholder].reserved;
        return calReward.add(reservedReward);
    }

    function calEarning(address shareholder) internal view returns (uint256) {
        if(shares[shareholder].amount == 0){ return 0; }
        uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount);
        uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded;
        if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; }
        return shareholderTotalDividends.sub(shareholderTotalExcluded);
    }

    function getCumulativeDividends(uint256 share) internal view returns (uint256) {
        return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor);
    }

    function setToken(address _token) external onlyOwner {
        _sToken = IERC20(_token);
    }

    function setDistributor(address _newDistributor) external onlyOwner {
        _distributor = address(_newDistributor);
    }

    function withdrawToken(address _token,uint _amount) external onlyOwner {
        IERC20(_token).transfer(msg.sender, _amount);
    }

    function withdrawFunds() external onlyOwner {
        payable(msg.sender).transfer(address(this).balance);
    }

    receive() external payable {}

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_user","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_stamp","type":"uint256"}],"name":"tokenStaked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_user","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_stamp","type":"uint256"}],"name":"tokenUnstaked","type":"event"},{"inputs":[],"name":"_distributor","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deposit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"dividendsPerShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dividendsPerShareAccuracyFactor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getUnpaidEarning","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renouncedOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newDistributor","type":"address"}],"name":"setDistributor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"setToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"shares","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"totalExcluded","type":"uint256"},{"internalType":"uint256","name":"totalRealised","type":"uint256"},{"internalType":"uint256","name":"reserved","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalDistributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDividends","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalReserved","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"unstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052738954d907520532c1f0d89d42569232fd0f995fdf600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506a52b7d2dcc80cd2e400000060095534801561007457600080fd5b50600061008561016960201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610171565b600033905090565b612100806101806000396000f3fe6080604052600436106101395760003560e01c8063997664d7116100ab578063c71b0e1c1161006f578063c71b0e1c146103c1578063ce7c2ac2146103ec578063d0e30db01461042c578063e2d2e21914610436578063efca2eed14610461578063f2fde38b1461048c57610140565b8063997664d7146102ee5780639e281a9814610319578063a694fc3a14610342578063b76cde271461036b578063c391f90d1461039657610140565b80632e17de78116100fd5780632e17de78146102045780633a98ef391461022d5780634e71d92d1461025857806375619ab51461026f5780638da5cb5b146102985780638f32d59b146102c357610140565b80630650c7871461014557806311ce023d14610182578063144fa6d7146101ad57806320365d5f146101d657806324600fc3146101ed57610140565b3661014057005b600080fd5b34801561015157600080fd5b5061016c600480360381019061016791906119af565b6104b5565b60405161017991906119f5565b60405180910390f35b34801561018e57600080fd5b50610197610526565b6040516101a491906119f5565b60405180910390f35b3480156101b957600080fd5b506101d460048036038101906101cf91906119af565b61052c565b005b3480156101e257600080fd5b506101eb610605565b005b3480156101f957600080fd5b5061020261075a565b005b34801561021057600080fd5b5061022b60048036038101906102269190611a3c565b610838565b005b34801561023957600080fd5b50610242610af0565b60405161024f91906119f5565b60405180910390f35b34801561026457600080fd5b5061026d610af6565b005b34801561027b57600080fd5b50610296600480360381019061029191906119af565b610c03565b005b3480156102a457600080fd5b506102ad610cdc565b6040516102ba9190611a78565b60405180910390f35b3480156102cf57600080fd5b506102d8610d05565b6040516102e59190611aae565b60405180910390f35b3480156102fa57600080fd5b50610303610d5c565b60405161031091906119f5565b60405180910390f35b34801561032557600080fd5b50610340600480360381019061033b9190611ac9565b610d62565b005b34801561034e57600080fd5b5061036960048036038101906103649190611a3c565b610e68565b005b34801561037757600080fd5b50610380611097565b60405161038d9190611a78565b60405180910390f35b3480156103a257600080fd5b506103ab6110bd565b6040516103b89190611b68565b60405180910390f35b3480156103cd57600080fd5b506103d66110e3565b6040516103e391906119f5565b60405180910390f35b3480156103f857600080fd5b50610413600480360381019061040e91906119af565b6110e9565b6040516104239493929190611b83565b60405180910390f35b610434611119565b005b34801561044257600080fd5b5061044b6111d9565b60405161045891906119f5565b60405180910390f35b34801561046d57600080fd5b506104766111df565b60405161048391906119f5565b60405180910390f35b34801561049857600080fd5b506104b360048036038101906104ae91906119af565b6111e5565b005b6000806104c1836113a6565b90506000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154905061051d81836114bf90919063ffffffff16565b92505050919050565b60095481565b61053461151d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b890611c25565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61060d61151d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461069a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069190611c25565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61076261151d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e690611c25565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610835573d6000803e3d6000fd5b50565b60003390506000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050828110156108c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108be90611c91565b60405180910390fd5b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154111561091c5761091b82611525565b5b6109318360045461174590919063ffffffff16565b60048190555082600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282546109899190611ce0565b925050819055506109db600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461178f565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83856040518363ffffffff1660e01b8152600401610a7e929190611d14565b600060405180830381600087803b158015610a9857600080fd5b505af1158015610aac573d6000803e3d6000fd5b505050507f0e373ac7857e09ad961f02eeba26d39a5777dbaab3671687b4ec902307a0e576828442604051610ae393929190611d3d565b60405180910390a1505050565b60045481565b6000339050610b0481611525565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015490506000811115610bff576000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030181905550610bb18160085461174590919063ffffffff16565b6008819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610bfd573d6000803e3d6000fd5b505b5050565b610c0b61151d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8f90611c25565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b60055481565b610d6a61151d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610df7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dee90611c25565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610e32929190611d14565b600060405180830381600087803b158015610e4c57600080fd5b505af1158015610e60573d6000803e3d6000fd5b505050505050565b6000339050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd8230856040518463ffffffff1660e01b8152600401610ecc93929190611d74565b600060405180830381600087803b158015610ee657600080fd5b505af1158015610efa573d6000803e3d6000fd5b505050506000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541115610f5357610f5281611525565b5b610f68826004546114bf90919063ffffffff16565b60048190555081600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000828254610fc09190611dab565b92505081905550611012600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461178f565b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055507f7b83f3cd55e1408476372ae257e3c41664571aef60c030bdca3aa5d4c6bba69181834260405161108b93929190611d3d565b60405180910390a15050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b60036020528060005260406000206000915090508060000154908060010154908060020154908060030154905084565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461117357600080fd5b600034905061118d816005546114bf90919063ffffffff16565b6005819055506111d06111bf6004546111b1846009546117c190919063ffffffff16565b61183b90919063ffffffff16565b6007546114bf90919063ffffffff16565b60078190555050565b60075481565b60065481565b6111ed61151d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461127a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127190611c25565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036112e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e090611e51565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154036113fa57600090506114ba565b6000611447600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461178f565b90506000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015490508082116114a2576000925050506114ba565b6114b5818361174590919063ffffffff16565b925050505b919050565b60008082846114ce9190611dab565b905083811015611513576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150a90611ebd565b60405180910390fd5b8091505092915050565b600033905090565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154031561174257600061157b826113a6565b905060008111156117405761159b816006546114bf90919063ffffffff16565b60068190555080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008282546115f39190611dab565b92505081905550806008600082825461160c9190611dab565b9250508190555061166881600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201546114bf90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055506116f9600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461178f565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b505b50565b600061178783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611885565b905092915050565b60006117ba6009546117ac600754856117c190919063ffffffff16565b61183b90919063ffffffff16565b9050919050565b60008083036117d35760009050611835565b600082846117e19190611edd565b90508284826117f09190611f66565b14611830576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182790612009565b60405180910390fd5b809150505b92915050565b600061187d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118e9565b905092915050565b60008383111582906118cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c491906120a8565b60405180910390fd5b50600083856118dc9190611ce0565b9050809150509392505050565b60008083118290611930576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192791906120a8565b60405180910390fd5b506000838561193f9190611f66565b9050809150509392505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061197c82611951565b9050919050565b61198c81611971565b811461199757600080fd5b50565b6000813590506119a981611983565b92915050565b6000602082840312156119c5576119c461194c565b5b60006119d38482850161199a565b91505092915050565b6000819050919050565b6119ef816119dc565b82525050565b6000602082019050611a0a60008301846119e6565b92915050565b611a19816119dc565b8114611a2457600080fd5b50565b600081359050611a3681611a10565b92915050565b600060208284031215611a5257611a5161194c565b5b6000611a6084828501611a27565b91505092915050565b611a7281611971565b82525050565b6000602082019050611a8d6000830184611a69565b92915050565b60008115159050919050565b611aa881611a93565b82525050565b6000602082019050611ac36000830184611a9f565b92915050565b60008060408385031215611ae057611adf61194c565b5b6000611aee8582860161199a565b9250506020611aff85828601611a27565b9150509250929050565b6000819050919050565b6000611b2e611b29611b2484611951565b611b09565b611951565b9050919050565b6000611b4082611b13565b9050919050565b6000611b5282611b35565b9050919050565b611b6281611b47565b82525050565b6000602082019050611b7d6000830184611b59565b92915050565b6000608082019050611b9860008301876119e6565b611ba560208301866119e6565b611bb260408301856119e6565b611bbf60608301846119e6565b95945050505050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611c0f602083611bc8565b9150611c1a82611bd9565b602082019050919050565b60006020820190508181036000830152611c3e81611c02565b9050919050565b7f4572726f723a20496e76616c696420416d6f756e742100000000000000000000600082015250565b6000611c7b601683611bc8565b9150611c8682611c45565b602082019050919050565b60006020820190508181036000830152611caa81611c6e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611ceb826119dc565b9150611cf6836119dc565b9250828203905081811115611d0e57611d0d611cb1565b5b92915050565b6000604082019050611d296000830185611a69565b611d3660208301846119e6565b9392505050565b6000606082019050611d526000830186611a69565b611d5f60208301856119e6565b611d6c60408301846119e6565b949350505050565b6000606082019050611d896000830186611a69565b611d966020830185611a69565b611da360408301846119e6565b949350505050565b6000611db6826119dc565b9150611dc1836119dc565b9250828201905080821115611dd957611dd8611cb1565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611e3b602683611bc8565b9150611e4682611ddf565b604082019050919050565b60006020820190508181036000830152611e6a81611e2e565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000611ea7601b83611bc8565b9150611eb282611e71565b602082019050919050565b60006020820190508181036000830152611ed681611e9a565b9050919050565b6000611ee8826119dc565b9150611ef3836119dc565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611f2c57611f2b611cb1565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611f71826119dc565b9150611f7c836119dc565b925082611f8c57611f8b611f37565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000611ff3602183611bc8565b9150611ffe82611f97565b604082019050919050565b6000602082019050818103600083015261202281611fe6565b9050919050565b600081519050919050565b60005b83811015612052578082015181840152602081019050612037565b60008484015250505050565b6000601f19601f8301169050919050565b600061207a82612029565b6120848185611bc8565b9350612094818560208601612034565b61209d8161205e565b840191505092915050565b600060208201905081810360008301526120c2818461206f565b90509291505056fea2646970667358221220ca4765f3f394befec287191e590e71a477e52748cc2f73a593813445099aae7864736f6c63430008100033

Deployed Bytecode

0x6080604052600436106101395760003560e01c8063997664d7116100ab578063c71b0e1c1161006f578063c71b0e1c146103c1578063ce7c2ac2146103ec578063d0e30db01461042c578063e2d2e21914610436578063efca2eed14610461578063f2fde38b1461048c57610140565b8063997664d7146102ee5780639e281a9814610319578063a694fc3a14610342578063b76cde271461036b578063c391f90d1461039657610140565b80632e17de78116100fd5780632e17de78146102045780633a98ef391461022d5780634e71d92d1461025857806375619ab51461026f5780638da5cb5b146102985780638f32d59b146102c357610140565b80630650c7871461014557806311ce023d14610182578063144fa6d7146101ad57806320365d5f146101d657806324600fc3146101ed57610140565b3661014057005b600080fd5b34801561015157600080fd5b5061016c600480360381019061016791906119af565b6104b5565b60405161017991906119f5565b60405180910390f35b34801561018e57600080fd5b50610197610526565b6040516101a491906119f5565b60405180910390f35b3480156101b957600080fd5b506101d460048036038101906101cf91906119af565b61052c565b005b3480156101e257600080fd5b506101eb610605565b005b3480156101f957600080fd5b5061020261075a565b005b34801561021057600080fd5b5061022b60048036038101906102269190611a3c565b610838565b005b34801561023957600080fd5b50610242610af0565b60405161024f91906119f5565b60405180910390f35b34801561026457600080fd5b5061026d610af6565b005b34801561027b57600080fd5b50610296600480360381019061029191906119af565b610c03565b005b3480156102a457600080fd5b506102ad610cdc565b6040516102ba9190611a78565b60405180910390f35b3480156102cf57600080fd5b506102d8610d05565b6040516102e59190611aae565b60405180910390f35b3480156102fa57600080fd5b50610303610d5c565b60405161031091906119f5565b60405180910390f35b34801561032557600080fd5b50610340600480360381019061033b9190611ac9565b610d62565b005b34801561034e57600080fd5b5061036960048036038101906103649190611a3c565b610e68565b005b34801561037757600080fd5b50610380611097565b60405161038d9190611a78565b60405180910390f35b3480156103a257600080fd5b506103ab6110bd565b6040516103b89190611b68565b60405180910390f35b3480156103cd57600080fd5b506103d66110e3565b6040516103e391906119f5565b60405180910390f35b3480156103f857600080fd5b50610413600480360381019061040e91906119af565b6110e9565b6040516104239493929190611b83565b60405180910390f35b610434611119565b005b34801561044257600080fd5b5061044b6111d9565b60405161045891906119f5565b60405180910390f35b34801561046d57600080fd5b506104766111df565b60405161048391906119f5565b60405180910390f35b34801561049857600080fd5b506104b360048036038101906104ae91906119af565b6111e5565b005b6000806104c1836113a6565b90506000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154905061051d81836114bf90919063ffffffff16565b92505050919050565b60095481565b61053461151d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b890611c25565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61060d61151d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461069a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069190611c25565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61076261151d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e690611c25565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610835573d6000803e3d6000fd5b50565b60003390506000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050828110156108c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108be90611c91565b60405180910390fd5b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154111561091c5761091b82611525565b5b6109318360045461174590919063ffffffff16565b60048190555082600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282546109899190611ce0565b925050819055506109db600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461178f565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83856040518363ffffffff1660e01b8152600401610a7e929190611d14565b600060405180830381600087803b158015610a9857600080fd5b505af1158015610aac573d6000803e3d6000fd5b505050507f0e373ac7857e09ad961f02eeba26d39a5777dbaab3671687b4ec902307a0e576828442604051610ae393929190611d3d565b60405180910390a1505050565b60045481565b6000339050610b0481611525565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015490506000811115610bff576000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030181905550610bb18160085461174590919063ffffffff16565b6008819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610bfd573d6000803e3d6000fd5b505b5050565b610c0b61151d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8f90611c25565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b60055481565b610d6a61151d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610df7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dee90611c25565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610e32929190611d14565b600060405180830381600087803b158015610e4c57600080fd5b505af1158015610e60573d6000803e3d6000fd5b505050505050565b6000339050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd8230856040518463ffffffff1660e01b8152600401610ecc93929190611d74565b600060405180830381600087803b158015610ee657600080fd5b505af1158015610efa573d6000803e3d6000fd5b505050506000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541115610f5357610f5281611525565b5b610f68826004546114bf90919063ffffffff16565b60048190555081600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000828254610fc09190611dab565b92505081905550611012600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461178f565b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055507f7b83f3cd55e1408476372ae257e3c41664571aef60c030bdca3aa5d4c6bba69181834260405161108b93929190611d3d565b60405180910390a15050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b60036020528060005260406000206000915090508060000154908060010154908060020154908060030154905084565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461117357600080fd5b600034905061118d816005546114bf90919063ffffffff16565b6005819055506111d06111bf6004546111b1846009546117c190919063ffffffff16565b61183b90919063ffffffff16565b6007546114bf90919063ffffffff16565b60078190555050565b60075481565b60065481565b6111ed61151d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461127a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127190611c25565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036112e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e090611e51565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154036113fa57600090506114ba565b6000611447600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461178f565b90506000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015490508082116114a2576000925050506114ba565b6114b5818361174590919063ffffffff16565b925050505b919050565b60008082846114ce9190611dab565b905083811015611513576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150a90611ebd565b60405180910390fd5b8091505092915050565b600033905090565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154031561174257600061157b826113a6565b905060008111156117405761159b816006546114bf90919063ffffffff16565b60068190555080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008282546115f39190611dab565b92505081905550806008600082825461160c9190611dab565b9250508190555061166881600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201546114bf90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055506116f9600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461178f565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b505b50565b600061178783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611885565b905092915050565b60006117ba6009546117ac600754856117c190919063ffffffff16565b61183b90919063ffffffff16565b9050919050565b60008083036117d35760009050611835565b600082846117e19190611edd565b90508284826117f09190611f66565b14611830576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182790612009565b60405180910390fd5b809150505b92915050565b600061187d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118e9565b905092915050565b60008383111582906118cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c491906120a8565b60405180910390fd5b50600083856118dc9190611ce0565b9050809150509392505050565b60008083118290611930576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192791906120a8565b60405180910390fd5b506000838561193f9190611f66565b9050809150509392505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061197c82611951565b9050919050565b61198c81611971565b811461199757600080fd5b50565b6000813590506119a981611983565b92915050565b6000602082840312156119c5576119c461194c565b5b60006119d38482850161199a565b91505092915050565b6000819050919050565b6119ef816119dc565b82525050565b6000602082019050611a0a60008301846119e6565b92915050565b611a19816119dc565b8114611a2457600080fd5b50565b600081359050611a3681611a10565b92915050565b600060208284031215611a5257611a5161194c565b5b6000611a6084828501611a27565b91505092915050565b611a7281611971565b82525050565b6000602082019050611a8d6000830184611a69565b92915050565b60008115159050919050565b611aa881611a93565b82525050565b6000602082019050611ac36000830184611a9f565b92915050565b60008060408385031215611ae057611adf61194c565b5b6000611aee8582860161199a565b9250506020611aff85828601611a27565b9150509250929050565b6000819050919050565b6000611b2e611b29611b2484611951565b611b09565b611951565b9050919050565b6000611b4082611b13565b9050919050565b6000611b5282611b35565b9050919050565b611b6281611b47565b82525050565b6000602082019050611b7d6000830184611b59565b92915050565b6000608082019050611b9860008301876119e6565b611ba560208301866119e6565b611bb260408301856119e6565b611bbf60608301846119e6565b95945050505050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611c0f602083611bc8565b9150611c1a82611bd9565b602082019050919050565b60006020820190508181036000830152611c3e81611c02565b9050919050565b7f4572726f723a20496e76616c696420416d6f756e742100000000000000000000600082015250565b6000611c7b601683611bc8565b9150611c8682611c45565b602082019050919050565b60006020820190508181036000830152611caa81611c6e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611ceb826119dc565b9150611cf6836119dc565b9250828203905081811115611d0e57611d0d611cb1565b5b92915050565b6000604082019050611d296000830185611a69565b611d3660208301846119e6565b9392505050565b6000606082019050611d526000830186611a69565b611d5f60208301856119e6565b611d6c60408301846119e6565b949350505050565b6000606082019050611d896000830186611a69565b611d966020830185611a69565b611da360408301846119e6565b949350505050565b6000611db6826119dc565b9150611dc1836119dc565b9250828201905080821115611dd957611dd8611cb1565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611e3b602683611bc8565b9150611e4682611ddf565b604082019050919050565b60006020820190508181036000830152611e6a81611e2e565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000611ea7601b83611bc8565b9150611eb282611e71565b602082019050919050565b60006020820190508181036000830152611ed681611e9a565b9050919050565b6000611ee8826119dc565b9150611ef3836119dc565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611f2c57611f2b611cb1565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611f71826119dc565b9150611f7c836119dc565b925082611f8c57611f8b611f37565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000611ff3602183611bc8565b9150611ffe82611f97565b604082019050919050565b6000602082019050818103600083015261202281611fe6565b9050919050565b600081519050919050565b60005b83811015612052578082015181840152602081019050612037565b60008484015250505050565b6000601f19601f8301169050919050565b600061207a82612029565b6120848185611bc8565b9350612094818560208601612034565b61209d8161205e565b840191505092915050565b600060208201905081810360008301526120c2818461206f565b90509291505056fea2646970667358221220ca4765f3f394befec287191e590e71a477e52748cc2f73a593813445099aae7864736f6c63430008100033

Deployed Bytecode Sourcemap

3385:4739:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6682:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3954:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7588:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2800:231;;;;;;;;;;;;;:::i;:::-;;7968:114;;;;;;;;;;;;;:::i;:::-;;4856:631;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3771:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5495:337;;;;;;;;;;;;;:::i;:::-;;7692:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2475:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2700:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3804:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7826:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4320:528;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3458:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3492:74;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3917:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3718:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;5840:267;;;:::i;:::-;;3878:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3840:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3039:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6682;6750:7;6770:14;6787:23;6798:11;6787:10;:23::i;:::-;6770:40;;6821:19;6843:6;:19;6850:11;6843:19;;;;;;;;;;;;;;;:28;;;6821:50;;6889:29;6903:14;6889:9;:13;;:29;;;;:::i;:::-;6882:36;;;;6682:244;;;:::o;3954:57::-;;;;:::o;7588:96::-;2619:12;:10;:12::i;:::-;2609:22;;:6;;;;;;;;;;:22;;;2601:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7669:6:::1;7652:7;;:24;;;;;;;;;;;;;;;;;;7588:96:::0;:::o;2800:231::-;2619:12;:10;:12::i;:::-;2609:22;;:6;;;;;;;;;;:22;;;2601:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2908:42:::1;2871:81;;2892:6;::::0;::::1;;;;;;;;2871:81;;;;;;;;;;;;2980:42;2963:6;::::0;:60:::1;;;;;;;;;;;;;;;;;;2800:231::o:0;7968:114::-;2619:12;:10;:12::i;:::-;2609:22;;:6;;;;;;;;;;:22;;;2601:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8031:10:::1;8023:28;;:51;8052:21;8023:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;7968:114::o:0;4856:631::-;4908:19;4930:10;4908:32;;4951:15;4969:6;:19;4976:11;4969:19;;;;;;;;;;;;;;;:26;;;4951:44;;5028:6;5014:10;:20;;5006:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;5109:1;5080:6;:19;5087:11;5080:19;;;;;;;;;;;;;;;:26;;;:30;5077:92;;;5126:31;5145:11;5126:18;:31::i;:::-;5077:92;5195:23;5211:6;5195:11;;:15;;:23;;;;:::i;:::-;5181:11;:37;;;;5259:6;5229;:19;5236:11;5229:19;;;;;;;;;;;;;;;:26;;;:36;;;;;;;:::i;:::-;;;;;;;;5312:50;5335:6;:19;5342:11;5335:19;;;;;;;;;;;;;;;:26;;;5312:22;:50::i;:::-;5276:6;:19;5283:11;5276:19;;;;;;;;;;;;;;;:33;;:86;;;;5375:7;;;;;;;;;;;:16;;;5392:11;5405:6;5375:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5430:49;5444:11;5456:6;5463:15;5430:49;;;;;;;;:::i;:::-;;;;;;;;4895:592;;4856:631;:::o;3771:26::-;;;;:::o;5495:337::-;5532:12;5547:10;5532:25;;5568:24;5587:4;5568:18;:24::i;:::-;5603:13;5619:6;:12;5626:4;5619:12;;;;;;;;;;;;;;;:21;;;5603:37;;5665:1;5654:8;:12;5651:174;;;5707:1;5683:6;:12;5690:4;5683:12;;;;;;;;;;;;;;;:21;;:25;;;;5739:27;5757:8;5739:13;;:17;;:27;;;;:::i;:::-;5723:13;:43;;;;5789:4;5781:22;;:32;5804:8;5781:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5651:174;5521:311;;5495:337::o;7692:126::-;2619:12;:10;:12::i;:::-;2609:22;;:6;;;;;;;;;;:22;;;2601:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7794:15:::1;7771:12;;:39;;;;;;;;;;;;;;;;;;7692:126:::0;:::o;2475:79::-;2513:7;2540:6;;;;;;;;;;;2533:13;;2475:79;:::o;2700:92::-;2740:4;2778:6;;;;;;;;;;;2764:20;;:10;:20;;;2757:27;;2700:92;:::o;3804:29::-;;;;:::o;7826:134::-;2619:12;:10;:12::i;:::-;2609:22;;:6;;;;;;;;;;:22;;;2601:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7915:6:::1;7908:23;;;7932:10;7944:7;7908:44;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;7826:134:::0;;:::o;4320:528::-;4378:19;4400:10;4378:32;;4423:7;;;;;;;;;;;:20;;;4444:11;4465:4;4472:6;4423:56;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4524:1;4495:6;:19;4502:11;4495:19;;;;;;;;;;;;;;;:26;;;:30;4492:92;;;4541:31;4560:11;4541:18;:31::i;:::-;4492:92;4608:23;4624:6;4608:11;;:15;;:23;;;;:::i;:::-;4594:11;:37;;;;4672:6;4642;:19;4649:11;4642:19;;;;;;;;;;;;;;;:26;;;:36;;;;;;;:::i;:::-;;;;;;;;4725:50;4748:6;:19;4755:11;4748:19;;;;;;;;;;;;;;;:26;;;4725:22;:50::i;:::-;4689:6;:19;4696:11;4689:19;;;;;;;;;;;;;;;:33;;:86;;;;4793:47;4805:11;4817:6;4824:15;4793:47;;;;;;;;:::i;:::-;;;;;;;;4357:491;4320:528;:::o;3458:27::-;;;;;;;;;;;;;:::o;3492:74::-;;;;;;;;;;;;;:::o;3917:28::-;;;;:::o;3718:40::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5840:267::-;4080:12;;;;;;;;;;;4066:26;;:10;:26;;;4058:35;;;;;;5905:14:::1;5922:9;5905:26;;5959;5978:6;5959:14;;:18;;:26;;;;:::i;:::-;5942:14;:43;;;;6016:83;6038:60;6086:11;;6038:43;6074:6;6038:31;;:35;;:43;;;;:::i;:::-;:47;;:60;;;;:::i;:::-;6016:17;;:21;;:83;;;;:::i;:::-;5996:17;:103;;;;5894:213;5840:267::o:0;3878:32::-;;;;:::o;3840:31::-;;;;:::o;3039:244::-;2619:12;:10;:12::i;:::-;2609:22;;:6;;;;;;;;;;:22;;;2601:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3148:1:::1;3128:22;;:8;:22;;::::0;3120:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3238:8;3209:38;;3230:6;::::0;::::1;;;;;;;;3209:38;;;;;;;;;;;;3267:8;3258:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3039:244:::0;:::o;6934:468::-;6998:7;7051:1;7021:6;:19;7028:11;7021:19;;;;;;;;;;;;;;;:26;;;:31;7018:48;;7062:1;7055:8;;;;7018:48;7076:33;7112:50;7135:6;:19;7142:11;7135:19;;;;;;;;;;;;;;;:26;;;7112:22;:50::i;:::-;7076:86;;7173:32;7208:6;:19;7215:11;7208:19;;;;;;;;;;;;;;;:33;;;7173:68;;7284:24;7255:25;:53;7252:70;;7318:1;7311:8;;;;;;7252:70;7339:55;7369:24;7339:25;:29;;:55;;;;:::i;:::-;7332:62;;;;6934:468;;;;:::o;368:181::-;426:7;446:9;462:1;458;:5;;;;:::i;:::-;446:17;;487:1;482;:6;;474:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;540:1;533:8;;;368:181;;;;:::o;98:115::-;151:15;194:10;179:26;;98:115;:::o;6115:559::-;6217:1;6187:6;:19;6194:11;6187:19;;;;;;;;;;;;;;;:26;;;:31;6184:46;6221:7;6184:46;6240:14;6257:23;6268:11;6257:10;:23::i;:::-;6240:40;;6303:1;6294:6;:10;6291:376;;;6339:28;6360:6;6339:16;;:20;;:28;;;;:::i;:::-;6320:16;:47;;;;6414:6;6382;:19;6389:11;6382:19;;;;;;;;;;;;;;;:28;;;:38;;;;;;;:::i;:::-;;;;;;;;6452:6;6435:13;;:23;;;;;;;:::i;:::-;;;;;;;;6509:45;6547:6;6509;:19;6516:11;6509:19;;;;;;;;;;;;;;;:33;;;:37;;:45;;;;:::i;:::-;6473:6;:19;6480:11;6473:19;;;;;;;;;;;;;;;:33;;:81;;;;6605:50;6628:6;:19;6635:11;6628:19;;;;;;;;;;;;;;;:26;;;6605:22;:50::i;:::-;6569:6;:19;6576:11;6569:19;;;;;;;;;;;;;;;:33;;:86;;;;6291:376;6173:501;6115:559;;:::o;557:136::-;615:7;642:43;646:1;649;642:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;635:50;;557:136;;;;:::o;7410:170::-;7480:7;7507:65;7540:31;;7507:28;7517:17;;7507:5;:9;;:28;;;;:::i;:::-;:32;;:65;;;;:::i;:::-;7500:72;;7410:170;;;:::o;901:250::-;959:7;988:1;983;:6;979:47;;1013:1;1006:8;;;;979:47;1038:9;1054:1;1050;:5;;;;:::i;:::-;1038:17;;1083:1;1078;1074;:5;;;;:::i;:::-;:10;1066:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1142:1;1135:8;;;901:250;;;;;:::o;1159:132::-;1217:7;1244:39;1248:1;1251;1244:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1237:46;;1159:132;;;;:::o;701:192::-;787:7;820:1;815;:6;;823:12;807:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;847:9;863:1;859;:5;;;;:::i;:::-;847:17;;884:1;877:8;;;701:192;;;;;:::o;1299:278::-;1385:7;1417:1;1413;:5;1420:12;1405:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1444:9;1460:1;1456;:5;;;;:::i;:::-;1444:17;;1568:1;1561:8;;;1299:278;;;;;:::o;88:117:1:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:77::-;1213:7;1242:5;1231:16;;1176:77;;;:::o;1259:118::-;1346:24;1364:5;1346:24;:::i;:::-;1341:3;1334:37;1259:118;;:::o;1383:222::-;1476:4;1514:2;1503:9;1499:18;1491:26;;1527:71;1595:1;1584:9;1580:17;1571:6;1527:71;:::i;:::-;1383:222;;;;:::o;1611:122::-;1684:24;1702:5;1684:24;:::i;:::-;1677:5;1674:35;1664:63;;1723:1;1720;1713:12;1664:63;1611:122;:::o;1739:139::-;1785:5;1823:6;1810:20;1801:29;;1839:33;1866:5;1839:33;:::i;:::-;1739:139;;;;:::o;1884:329::-;1943:6;1992:2;1980:9;1971:7;1967:23;1963:32;1960:119;;;1998:79;;:::i;:::-;1960:119;2118:1;2143:53;2188:7;2179:6;2168:9;2164:22;2143:53;:::i;:::-;2133:63;;2089:117;1884:329;;;;:::o;2219:118::-;2306:24;2324:5;2306:24;:::i;:::-;2301:3;2294:37;2219:118;;:::o;2343:222::-;2436:4;2474:2;2463:9;2459:18;2451:26;;2487:71;2555:1;2544:9;2540:17;2531:6;2487:71;:::i;:::-;2343:222;;;;:::o;2571:90::-;2605:7;2648:5;2641:13;2634:21;2623:32;;2571:90;;;:::o;2667:109::-;2748:21;2763:5;2748:21;:::i;:::-;2743:3;2736:34;2667:109;;:::o;2782:210::-;2869:4;2907:2;2896:9;2892:18;2884:26;;2920:65;2982:1;2971:9;2967:17;2958:6;2920:65;:::i;:::-;2782:210;;;;:::o;2998:474::-;3066:6;3074;3123:2;3111:9;3102:7;3098:23;3094:32;3091:119;;;3129:79;;:::i;:::-;3091:119;3249:1;3274:53;3319:7;3310:6;3299:9;3295:22;3274:53;:::i;:::-;3264:63;;3220:117;3376:2;3402:53;3447:7;3438:6;3427:9;3423:22;3402:53;:::i;:::-;3392:63;;3347:118;2998:474;;;;;:::o;3478:60::-;3506:3;3527:5;3520:12;;3478:60;;;:::o;3544:142::-;3594:9;3627:53;3645:34;3654:24;3672:5;3654:24;:::i;:::-;3645:34;:::i;:::-;3627:53;:::i;:::-;3614:66;;3544:142;;;:::o;3692:126::-;3742:9;3775:37;3806:5;3775:37;:::i;:::-;3762:50;;3692:126;;;:::o;3824:140::-;3888:9;3921:37;3952:5;3921:37;:::i;:::-;3908:50;;3824:140;;;:::o;3970:159::-;4071:51;4116:5;4071:51;:::i;:::-;4066:3;4059:64;3970:159;;:::o;4135:250::-;4242:4;4280:2;4269:9;4265:18;4257:26;;4293:85;4375:1;4364:9;4360:17;4351:6;4293:85;:::i;:::-;4135:250;;;;:::o;4391:553::-;4568:4;4606:3;4595:9;4591:19;4583:27;;4620:71;4688:1;4677:9;4673:17;4664:6;4620:71;:::i;:::-;4701:72;4769:2;4758:9;4754:18;4745:6;4701:72;:::i;:::-;4783;4851:2;4840:9;4836:18;4827:6;4783:72;:::i;:::-;4865;4933:2;4922:9;4918:18;4909:6;4865:72;:::i;:::-;4391:553;;;;;;;:::o;4950:169::-;5034:11;5068:6;5063:3;5056:19;5108:4;5103:3;5099:14;5084:29;;4950:169;;;;:::o;5125:182::-;5265:34;5261:1;5253:6;5249:14;5242:58;5125:182;:::o;5313:366::-;5455:3;5476:67;5540:2;5535:3;5476:67;:::i;:::-;5469:74;;5552:93;5641:3;5552:93;:::i;:::-;5670:2;5665:3;5661:12;5654:19;;5313:366;;;:::o;5685:419::-;5851:4;5889:2;5878:9;5874:18;5866:26;;5938:9;5932:4;5928:20;5924:1;5913:9;5909:17;5902:47;5966:131;6092:4;5966:131;:::i;:::-;5958:139;;5685:419;;;:::o;6110:172::-;6250:24;6246:1;6238:6;6234:14;6227:48;6110:172;:::o;6288:366::-;6430:3;6451:67;6515:2;6510:3;6451:67;:::i;:::-;6444:74;;6527:93;6616:3;6527:93;:::i;:::-;6645:2;6640:3;6636:12;6629:19;;6288:366;;;:::o;6660:419::-;6826:4;6864:2;6853:9;6849:18;6841:26;;6913:9;6907:4;6903:20;6899:1;6888:9;6884:17;6877:47;6941:131;7067:4;6941:131;:::i;:::-;6933:139;;6660:419;;;:::o;7085:180::-;7133:77;7130:1;7123:88;7230:4;7227:1;7220:15;7254:4;7251:1;7244:15;7271:194;7311:4;7331:20;7349:1;7331:20;:::i;:::-;7326:25;;7365:20;7383:1;7365:20;:::i;:::-;7360:25;;7409:1;7406;7402:9;7394:17;;7433:1;7427:4;7424:11;7421:37;;;7438:18;;:::i;:::-;7421:37;7271:194;;;;:::o;7471:332::-;7592:4;7630:2;7619:9;7615:18;7607:26;;7643:71;7711:1;7700:9;7696:17;7687:6;7643:71;:::i;:::-;7724:72;7792:2;7781:9;7777:18;7768:6;7724:72;:::i;:::-;7471:332;;;;;:::o;7809:442::-;7958:4;7996:2;7985:9;7981:18;7973:26;;8009:71;8077:1;8066:9;8062:17;8053:6;8009:71;:::i;:::-;8090:72;8158:2;8147:9;8143:18;8134:6;8090:72;:::i;:::-;8172;8240:2;8229:9;8225:18;8216:6;8172:72;:::i;:::-;7809:442;;;;;;:::o;8257:::-;8406:4;8444:2;8433:9;8429:18;8421:26;;8457:71;8525:1;8514:9;8510:17;8501:6;8457:71;:::i;:::-;8538:72;8606:2;8595:9;8591:18;8582:6;8538:72;:::i;:::-;8620;8688:2;8677:9;8673:18;8664:6;8620:72;:::i;:::-;8257:442;;;;;;:::o;8705:191::-;8745:3;8764:20;8782:1;8764:20;:::i;:::-;8759:25;;8798:20;8816:1;8798:20;:::i;:::-;8793:25;;8841:1;8838;8834:9;8827:16;;8862:3;8859:1;8856:10;8853:36;;;8869:18;;:::i;:::-;8853:36;8705:191;;;;:::o;8902:225::-;9042:34;9038:1;9030:6;9026:14;9019:58;9111:8;9106:2;9098:6;9094:15;9087:33;8902:225;:::o;9133:366::-;9275:3;9296:67;9360:2;9355:3;9296:67;:::i;:::-;9289:74;;9372:93;9461:3;9372:93;:::i;:::-;9490:2;9485:3;9481:12;9474:19;;9133:366;;;:::o;9505:419::-;9671:4;9709:2;9698:9;9694:18;9686:26;;9758:9;9752:4;9748:20;9744:1;9733:9;9729:17;9722:47;9786:131;9912:4;9786:131;:::i;:::-;9778:139;;9505:419;;;:::o;9930:177::-;10070:29;10066:1;10058:6;10054:14;10047:53;9930:177;:::o;10113:366::-;10255:3;10276:67;10340:2;10335:3;10276:67;:::i;:::-;10269:74;;10352:93;10441:3;10352:93;:::i;:::-;10470:2;10465:3;10461:12;10454:19;;10113:366;;;:::o;10485:419::-;10651:4;10689:2;10678:9;10674:18;10666:26;;10738:9;10732:4;10728:20;10724:1;10713:9;10709:17;10702:47;10766:131;10892:4;10766:131;:::i;:::-;10758:139;;10485:419;;;:::o;10910:348::-;10950:7;10973:20;10991:1;10973:20;:::i;:::-;10968:25;;11007:20;11025:1;11007:20;:::i;:::-;11002:25;;11195:1;11127:66;11123:74;11120:1;11117:81;11112:1;11105:9;11098:17;11094:105;11091:131;;;11202:18;;:::i;:::-;11091:131;11250:1;11247;11243:9;11232:20;;10910:348;;;;:::o;11264:180::-;11312:77;11309:1;11302:88;11409:4;11406:1;11399:15;11433:4;11430:1;11423:15;11450:185;11490:1;11507:20;11525:1;11507:20;:::i;:::-;11502:25;;11541:20;11559:1;11541:20;:::i;:::-;11536:25;;11580:1;11570:35;;11585:18;;:::i;:::-;11570:35;11627:1;11624;11620:9;11615:14;;11450:185;;;;:::o;11641:220::-;11781:34;11777:1;11769:6;11765:14;11758:58;11850:3;11845:2;11837:6;11833:15;11826:28;11641:220;:::o;11867:366::-;12009:3;12030:67;12094:2;12089:3;12030:67;:::i;:::-;12023:74;;12106:93;12195:3;12106:93;:::i;:::-;12224:2;12219:3;12215:12;12208:19;;11867:366;;;:::o;12239:419::-;12405:4;12443:2;12432:9;12428:18;12420:26;;12492:9;12486:4;12482:20;12478:1;12467:9;12463:17;12456:47;12520:131;12646:4;12520:131;:::i;:::-;12512:139;;12239:419;;;:::o;12664:99::-;12716:6;12750:5;12744:12;12734:22;;12664:99;;;:::o;12769:246::-;12850:1;12860:113;12874:6;12871:1;12868:13;12860:113;;;12959:1;12954:3;12950:11;12944:18;12940:1;12935:3;12931:11;12924:39;12896:2;12893:1;12889:10;12884:15;;12860:113;;;13007:1;12998:6;12993:3;12989:16;12982:27;12831:184;12769:246;;;:::o;13021:102::-;13062:6;13113:2;13109:7;13104:2;13097:5;13093:14;13089:28;13079:38;;13021:102;;;:::o;13129:377::-;13217:3;13245:39;13278:5;13245:39;:::i;:::-;13300:71;13364:6;13359:3;13300:71;:::i;:::-;13293:78;;13380:65;13438:6;13433:3;13426:4;13419:5;13415:16;13380:65;:::i;:::-;13470:29;13492:6;13470:29;:::i;:::-;13465:3;13461:39;13454:46;;13221:285;13129:377;;;;:::o;13512:313::-;13625:4;13663:2;13652:9;13648:18;13640:26;;13712:9;13706:4;13702:20;13698:1;13687:9;13683:17;13676:47;13740:78;13813:4;13804:6;13740:78;:::i;:::-;13732:86;;13512:313;;;;:::o

Swarm Source

ipfs://ca4765f3f394befec287191e590e71a477e52748cc2f73a593813445099aae78

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
[ 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.