ETH Price: $3,672.70 (+0.90%)
 

Overview

ETH Balance

1 wei

Eth Value

Less Than $0.01 (@ $3,672.70/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Withdraw LP Toke...114332212020-12-11 18:28:511487 days ago1607711331IN
0x33D295dC...925275C06
0 ETH0.0013116630
Withdraw LP Toke...114331242020-12-11 18:06:411487 days ago1607710001IN
0x33D295dC...925275C06
0 ETH0.0016614338
Withdraw Reward ...111192482020-10-24 13:14:321535 days ago1603545272IN
0x33D295dC...925275C06
0 ETH0.0018124722
Withdraw LP Toke...111192442020-10-24 13:13:491535 days ago1603545229IN
0x33D295dC...925275C06
0 ETH0.0019629222
Withdraw LP Toke...111188482020-10-24 11:45:521535 days ago1603539952IN
0x33D295dC...925275C06
0 ETH0.0020251122.7
Stake111159782020-10-24 1:12:161536 days ago1603501936IN
0x33D295dC...925275C06
0.0175 ETH0.005065321
Stake111159402020-10-24 1:02:441536 days ago1603501364IN
0x33D295dC...925275C06
0.175 ETH0.0056058621.00000145
Withdraw Reward ...110850162020-10-19 7:12:201541 days ago1603091540IN
0x33D295dC...925275C06
0 ETH0.0028010934
Stake110693902020-10-16 21:30:581543 days ago1602883858IN
0x33D295dC...925275C06
0.05 ETH0.0050719719.00000134
Stake110653822020-10-16 6:50:531544 days ago1602831053IN
0x33D295dC...925275C06
2.43 ETH0.018096480
Stake110652482020-10-16 6:19:541544 days ago1602829194IN
0x33D295dC...925275C06
0.56 ETH0.019296480
Stake110621622020-10-15 18:59:561544 days ago1602788396IN
0x33D295dC...925275C06
1.06 ETH0.0224234684
Withdraw LP Toke...110326932020-10-11 6:57:101549 days ago1602399430IN
0x33D295dC...925275C06
0 ETH0.002605625
Stake110121312020-10-08 1:46:091552 days ago1602121569IN
0x33D295dC...925275C06
0.058968 ETH0.0090761634.00000145
Withdraw LP Toke...110059322020-10-07 2:24:121553 days ago1602037452IN
0x33D295dC...925275C06
0 ETH0.00441592101
Withdraw LP Toke...110059322020-10-07 2:24:121553 days ago1602037452IN
0x33D295dC...925275C06
0 ETH0.00441592101
Withdraw LP Toke...110059312020-10-07 2:23:591553 days ago1602037439IN
0x33D295dC...925275C06
0 ETH0.00901162101
Withdraw Reward ...110057862020-10-07 1:49:551553 days ago1602035395IN
0x33D295dC...925275C06
0 ETH0.009056893
Withdraw LP Toke...110047392020-10-06 21:58:251553 days ago1602021505IN
0x33D295dC...925275C06
0 ETH0.0042827548
Withdraw Reward ...110047152020-10-06 21:53:211553 days ago1602021201IN
0x33D295dC...925275C06
0 ETH0.002356247.00000145
Withdraw Reward ...110047112020-10-06 21:52:241553 days ago1602021144IN
0x33D295dC...925275C06
0 ETH0.0045770947.00000145
Withdraw Reward ...110042042020-10-06 20:02:201553 days ago1602014540IN
0x33D295dC...925275C06
0 ETH0.02504504304
Withdraw LP Toke...110041992020-10-06 20:01:381553 days ago1602014498IN
0x33D295dC...925275C06
0 ETH0.02712409304
Withdraw LP Toke...110032242020-10-06 16:24:321553 days ago1602001472IN
0x33D295dC...925275C06
0 ETH0.01507885169.00000145
Withdraw Reward ...110031972020-10-06 16:17:271553 days ago1602001047IN
0x33D295dC...925275C06
0 ETH0.01655545170
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
127203462021-06-28 4:20:311289 days ago1624854031
0x33D295dC...925275C06
1 wei
127203462021-06-28 4:20:311289 days ago1624854031
0x33D295dC...925275C06
0.01 ETH
127203462021-06-28 4:20:311289 days ago1624854031
0x33D295dC...925275C06
0.01 ETH
127203462021-06-28 4:20:311289 days ago1624854031
0x33D295dC...925275C06
0.02 ETH
111159782020-10-24 1:12:161536 days ago1603501936
0x33D295dC...925275C06
1 wei
111159782020-10-24 1:12:161536 days ago1603501936
0x33D295dC...925275C06
0.00875 ETH
111159782020-10-24 1:12:161536 days ago1603501936
0x33D295dC...925275C06
0.00875 ETH
111159402020-10-24 1:02:441536 days ago1603501364
0x33D295dC...925275C06
1 wei
111159402020-10-24 1:02:441536 days ago1603501364
0x33D295dC...925275C06
0.0875 ETH
111159402020-10-24 1:02:441536 days ago1603501364
0x33D295dC...925275C06
0.0875 ETH
110693902020-10-16 21:30:581543 days ago1602883858
0x33D295dC...925275C06
1 wei
110693902020-10-16 21:30:581543 days ago1602883858
0x33D295dC...925275C06
0.025 ETH
110693902020-10-16 21:30:581543 days ago1602883858
0x33D295dC...925275C06
0.025 ETH
110653822020-10-16 6:50:531544 days ago1602831053
0x33D295dC...925275C06
1 wei
110653822020-10-16 6:50:531544 days ago1602831053
0x33D295dC...925275C06
1.215 ETH
110653822020-10-16 6:50:531544 days ago1602831053
0x33D295dC...925275C06
1.215 ETH
110652482020-10-16 6:19:541544 days ago1602829194
0x33D295dC...925275C06
1 wei
110652482020-10-16 6:19:541544 days ago1602829194
0x33D295dC...925275C06
0.28 ETH
110652482020-10-16 6:19:541544 days ago1602829194
0x33D295dC...925275C06
0.28 ETH
110621622020-10-15 18:59:561544 days ago1602788396
0x33D295dC...925275C06
1 wei
110621622020-10-15 18:59:561544 days ago1602788396
0x33D295dC...925275C06
0.53 ETH
110621622020-10-15 18:59:561544 days ago1602788396
0x33D295dC...925275C06
0.53 ETH
110121312020-10-08 1:46:091552 days ago1602121569
0x33D295dC...925275C06
1 wei
110121312020-10-08 1:46:091552 days ago1602121569
0x33D295dC...925275C06
0.029484 ETH
110121312020-10-08 1:46:091552 days ago1602121569
0x33D295dC...925275C06
0.029484 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Staker

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-09-30
*/

pragma solidity 0.6.12;

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;
        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 totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    function mint(address account, uint256 amount) external;
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface Uniswap{
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts);
    function addLiquidityETH(address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function WETH() external pure returns (address);
}

interface Pool{
    function primary() external view returns (address);
}

contract Poolable{
    
    address payable internal constant _POOLADDRESS = 0x64D4bF1f4cb2b3Fdbb6ffFb0947b8D8331c2dF57;
 
    function primary() private view returns (address) {
        return Pool(_POOLADDRESS).primary();
    }
    
    modifier onlyPrimary() {
        require(msg.sender == primary(), "Caller is not primary");
        _;
    }
}

contract Staker is Poolable{
    
    using SafeMath for uint256;
    
    uint constant internal DECIMAL = 10**18;
    uint constant public INF = 33136721748;

    uint private _rewardValue = 10**18;
    
    mapping (address => uint256) public  timePooled;
    mapping (address => uint256) private internalTime;
    mapping (address => uint256) private LPTokenBalance;
    mapping (address => uint256) private rewards;
    mapping (address => uint256) private referralEarned;

    address public apycAddress;
    
    address constant public UNIROUTER         = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address constant public FACTORY           = 0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f;
    address          public WETHAddress       = Uniswap(UNIROUTER).WETH();
    
    bool private _unchangeable = false;
    bool private _tokenAddressGiven = false;
    
    receive() external payable {
        
       if(msg.sender != UNIROUTER){
           stake(address(0));
       }
    }
    
    function sendValue(address payable recipient, uint256 amount) internal {
        (bool success, ) = recipient.call{ value: amount }(""); 
        require(success, "Address: unable to send value, recipient may have reverted");
    }
    
    //If true, no changes can be made
    function unchangeable() public view returns (bool){
        return _unchangeable;
    }

    function lpToken() public view returns (address){
        return Uniswap(FACTORY).getPair(apycAddress, WETHAddress);
    }
    
    function rewardValue() public view returns (uint){
        return _rewardValue;
    }
    
    
    //THE ONLY ADMIN FUNCTIONS vvvv
    //After this is called, no changes can be made
    function makeUnchangeable() public onlyPrimary{
        _unchangeable = true;
    }
    
    //Can only be called once to set token address
    function setTokenAddress(address input) public onlyPrimary{
        require(!_tokenAddressGiven, "Function was already called");
        _tokenAddressGiven = true;
        apycAddress = input;
    }
    
    //Set reward value that has high APY, can't be called if makeUnchangeable() was called
    function updateRewardValue(uint input) public onlyPrimary {
        require(!unchangeable(), "makeUnchangeable() function was already called");
        _rewardValue = input;
    }
    //THE ONLY ADMIN FUNCTIONS ^^^^
    
  
    function stake(address payable ref) public payable{
        address staker = msg.sender;
        if(ref != address(0)){
            
            referralEarned[ref] = referralEarned[ref] + ((address(this).balance/15)*DECIMAL)/price();
        }
    
        sendValue(_POOLADDRESS, address(this).balance/2);
        
        address poolAddress = Uniswap(FACTORY).getPair(apycAddress, WETHAddress);
        uint ethAmount = IERC20(WETHAddress).balanceOf(poolAddress); //Eth in uniswap
        uint tokenAmount = IERC20(apycAddress).balanceOf(poolAddress); //token in uniswap
        
        uint toMint = (address(this).balance.mul(tokenAmount)).div(ethAmount);
        IERC20(apycAddress).mint(address(this), toMint);
        
        uint poolTokenAmountBefore = IERC20(poolAddress).balanceOf(address(this));
        
        uint amountTokenDesired = IERC20(apycAddress).balanceOf(address(this));
        IERC20(apycAddress).approve(UNIROUTER, amountTokenDesired ); //allow pool to get tokens
        Uniswap(UNIROUTER).addLiquidityETH{ value: address(this).balance }(apycAddress, amountTokenDesired, 1, 1, address(this), INF);
        
        uint poolTokenAmountAfter = IERC20(poolAddress).balanceOf(address(this));
        uint poolTokenGot = poolTokenAmountAfter.sub(poolTokenAmountBefore);
        
        rewards[staker] = rewards[staker].add(viewRecentRewardTokenAmount(staker));
        timePooled[staker] = now;
        internalTime[staker] = now;
    
        LPTokenBalance[staker] = LPTokenBalance[staker].add(poolTokenGot);
    }

    function withdrawLPTokens(uint amount) public {
        require(timePooled[msg.sender] + 3 days <= now, "It has not been 3 days since you staked yet");
        
        rewards[msg.sender] = rewards[msg.sender].add(viewRecentRewardTokenAmount(msg.sender));
        LPTokenBalance[msg.sender] = LPTokenBalance[msg.sender].sub(amount);
        
        address poolAddress = Uniswap(FACTORY).getPair(apycAddress, WETHAddress);
        IERC20(poolAddress).transfer(msg.sender, amount);
        
        internalTime[msg.sender] = now;
    }
    
    function withdrawRewardTokens(uint amount) public {
        require(timePooled[msg.sender] + 3 days <= now, "It has not been 3 days since you staked yet");
        
        rewards[msg.sender] = rewards[msg.sender].add(viewRecentRewardTokenAmount(msg.sender));
        internalTime[msg.sender] = now;
        
        uint removeAmount = ethtimeCalc(amount)/2;
        rewards[msg.sender] = rewards[msg.sender].sub(removeAmount);
       
        IERC20(apycAddress).mint(msg.sender, amount);
    }
    
    function withdrawReferralEarned(uint amount) public{
        require(timePooled[msg.sender] != 0, "You have to stake at least a little bit to withdraw referral rewards");
        require(timePooled[msg.sender] + 3 days <= now, "It has not been 3 days since you staked yet");
        
        referralEarned[msg.sender] = referralEarned[msg.sender].sub(amount);
        IERC20(apycAddress).mint(msg.sender, amount);
    }
    
    function viewRecentRewardTokenAmount(address who) internal view returns (uint){
        return (viewPooledEthAmount(who).mul( now.sub(internalTime[who]) ));
    }
    
    function viewRewardTokenAmount(address who) public view returns (uint){
        return earnCalc( rewards[who].add(viewRecentRewardTokenAmount(who))*2 );
    }
    
    function viewLPTokenAmount(address who) public view returns (uint){
        return LPTokenBalance[who];
    }
    
    function viewPooledEthAmount(address who) public view returns (uint){
      
        address poolAddress = Uniswap(FACTORY).getPair(apycAddress, WETHAddress);
        uint ethAmount = IERC20(WETHAddress).balanceOf(poolAddress); //Eth in uniswap
        
        return (ethAmount.mul(viewLPTokenAmount(who))).div(IERC20(poolAddress).totalSupply());
    }
    
    function viewPooledTokenAmount(address who) public view returns (uint){
        
        address poolAddress = Uniswap(FACTORY).getPair(apycAddress, WETHAddress);
        uint tokenAmount = IERC20(apycAddress).balanceOf(poolAddress); //token in uniswap
        
        return (tokenAmount.mul(viewLPTokenAmount(who))).div(IERC20(poolAddress).totalSupply());
    }
    
    function viewReferralEarned(address who) public view returns (uint){
        return referralEarned[who];
    }
    
    function price() public view returns (uint){
        
        address poolAddress = Uniswap(FACTORY).getPair(apycAddress, WETHAddress);
        
        uint ethAmount = IERC20(WETHAddress).balanceOf(poolAddress); //Eth in uniswap
        uint tokenAmount = IERC20(apycAddress).balanceOf(poolAddress); //token in uniswap
        
        return (DECIMAL.mul(ethAmount)).div(tokenAmount);
    }

    function earnCalc(uint ethTime) public view returns(uint){
        return ( rewardValue().mul(ethTime)  ) / ( 31557600 * DECIMAL );
    }
    
    function ethtimeCalc(uint apyc) internal view returns(uint){
        return ( apyc.mul(31557600 * DECIMAL) ).div( rewardValue() );
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"INF","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNIROUTER","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WETHAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"apycAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"ethTime","type":"uint256"}],"name":"earnCalc","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"makeUnchangeable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"price","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"input","type":"address"}],"name":"setTokenAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"ref","type":"address"}],"name":"stake","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"timePooled","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unchangeable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"input","type":"uint256"}],"name":"updateRewardValue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"viewLPTokenAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"viewPooledEthAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"viewPooledTokenAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"viewReferralEarned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"viewRewardTokenAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawLPTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawReferralEarned","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawRewardTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052670de0b6b3a7640000600055737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561006a57600080fd5b505afa15801561007e573d6000803e3d6000fd5b505050506040513d602081101561009457600080fd5b8101908080519060200190929190505050600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600760146101000a81548160ff0219169083151502179055506000600760156101000a81548160ff02191690831515021790555034801561012757600080fd5b5061309c80620001386000396000f3fe6080604052600436106101445760003560e01c80638439a541116100b6578063cb43b2dd1161006f578063cb43b2dd146105ee578063d28de27314610629578063d488ebe81461066a578063e42255d8146106cf578063e91ed7c914610734578063ecd3bfbb146107995761019d565b80638439a5411461046e5780638d301f99146104a95780639d2a679f146104e4578063a035b1fe1461050f578063a064b44b1461053a578063b1fd6740146105895761019d565b80632dd31000116101085780632dd3100014610308578063452d003f14610349578063475d8733146103845780634caacd751461039b5780635fcbd285146103c85780636dc64a02146104095761019d565b80630af88b24146101a257806312c7df73146101e3578063264762041461020e57806326a4e8d21461025257806329b83c2e146102a35761019d565b3661019d57737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461019b5761019a60006107da565b5b005b600080fd5b3480156101ae57600080fd5b506101b761126f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101ef57600080fd5b506101f8611295565b6040518082815260200191505060405180910390f35b6102506004803603602081101561022457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107da565b005b34801561025e57600080fd5b506102a16004803603602081101561027557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061129e565b005b3480156102af57600080fd5b506102f2600480360360208110156102c657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611428565b6040518082815260200191505060405180910390f35b34801561031457600080fd5b5061031d611440565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561035557600080fd5b506103826004803603602081101561036c57600080fd5b8101908080359060200190929190505050611458565b005b34801561039057600080fd5b50610399611838565b005b3480156103a757600080fd5b506103b06118fd565b60405180821515815260200191505060405180910390f35b3480156103d457600080fd5b506103dd611914565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561041557600080fd5b506104586004803603602081101561042c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a33565b6040518082815260200191505060405180910390f35b34801561047a57600080fd5b506104a76004803603602081101561049157600080fd5b8101908080359060200190929190505050611a7c565b005b3480156104b557600080fd5b506104e2600480360360208110156104cc57600080fd5b8101908080359060200190929190505050611b8c565b005b3480156104f057600080fd5b506104f9611e05565b6040518082815260200191505060405180910390f35b34801561051b57600080fd5b50610524611e0e565b6040518082815260200191505060405180910390f35b34801561054657600080fd5b506105736004803603602081101561055d57600080fd5b81019080803590602001909291905050506120f0565b6040518082815260200191505060405180910390f35b34801561059557600080fd5b506105d8600480360360208110156105ac57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061212a565b6040518082815260200191505060405180910390f35b3480156105fa57600080fd5b506106276004803603602081101561061157600080fd5b81019080803590602001909291905050506123c5565b005b34801561063557600080fd5b5061063e61269e565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561067657600080fd5b506106b96004803603602081101561068d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506126b6565b6040518082815260200191505060405180910390f35b3480156106db57600080fd5b5061071e600480360360208110156106f257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612724565b6040518082815260200191505060405180910390f35b34801561074057600080fd5b506107836004803603602081101561075757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506129bf565b6040518082815260200191505060405180910390f35b3480156107a557600080fd5b506107ae612a08565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000339050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146108bd5761081b611e0e565b670de0b6b3a7640000600f478161082e57fe5b04028161083757fe5b04600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6108e57364d4bf1f4cb2b3fdbb6fffb0947b8d8331c2df57600247816108df57fe5b04612a2e565b6000735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f73ffffffffffffffffffffffffffffffffffffffff1663e6a43905600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b1580156109c457600080fd5b505afa1580156109d8573d6000803e3d6000fd5b505050506040513d60208110156109ee57600080fd5b810190808051906020019092919050505090506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610a8c57600080fd5b505afa158015610aa0573d6000803e3d6000fd5b505050506040513d6020811015610ab657600080fd5b810190808051906020019092919050505090506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610b5457600080fd5b505afa158015610b68573d6000803e3d6000fd5b505050506040513d6020811015610b7e57600080fd5b810190808051906020019092919050505090506000610bb883610baa8447612af290919063ffffffff16565b612b7890919063ffffffff16565b9050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1930836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015610c4d57600080fd5b505af1158015610c61573d6000803e3d6000fd5b5050505060008473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610cce57600080fd5b505afa158015610ce2573d6000803e3d6000fd5b505050506040513d6020811015610cf857600080fd5b810190808051906020019092919050505090506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610d9657600080fd5b505afa158015610daa573d6000803e3d6000fd5b505050506040513d6020811015610dc057600080fd5b81019080805190602001909291905050509050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3737a250d5630b4cf539739df2c5dacb4c659f2488d836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610e7a57600080fd5b505af1158015610e8e573d6000803e3d6000fd5b505050506040513d6020811015610ea457600080fd5b810190808051906020019092919050505050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d71947600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600180306407b71a3f546040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b158015610f9957600080fd5b505af1158015610fad573d6000803e3d6000fd5b50505050506040513d6060811015610fc457600080fd5b8101908080519060200190929190805190602001909291908051906020019092919050505050505060008673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561105557600080fd5b505afa158015611069573d6000803e3d6000fd5b505050506040513d602081101561107f57600080fd5b8101908080519060200190929190505050905060006110a78483612bc290919063ffffffff16565b90506111036110b58a612c0c565b600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c8190919063ffffffff16565b600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061122081600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c8190919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050505050505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054905090565b6112a6612d09565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611346576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f43616c6c6572206973206e6f74207072696d617279000000000000000000000081525060200191505060405180910390fd5b600760159054906101000a900460ff16156113c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f46756e6374696f6e2077617320616c72656164792063616c6c6564000000000081525060200191505060405180910390fd5b6001600760156101000a81548160ff02191690831515021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60016020528060005260406000206000915090505481565b735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f81565b426203f480600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540111156114f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b81526020018061300e602b913960400191505060405180910390fd5b61154f61150133612c0c565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c8190919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506115e481600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bc290919063ffffffff16565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f73ffffffffffffffffffffffffffffffffffffffff1663e6a43905600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b15801561170657600080fd5b505afa15801561171a573d6000803e3d6000fd5b505050506040513d602081101561173057600080fd5b810190808051906020019092919050505090508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156117b457600080fd5b505af11580156117c8573d6000803e3d6000fd5b505050506040513d60208110156117de57600080fd5b81019080805190602001909291905050505042600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b611840612d09565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f43616c6c6572206973206e6f74207072696d617279000000000000000000000081525060200191505060405180910390fd5b6001600760146101000a81548160ff021916908315150217905550565b6000600760149054906101000a900460ff16905090565b6000735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f73ffffffffffffffffffffffffffffffffffffffff1663e6a43905600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b1580156119f357600080fd5b505afa158015611a07573d6000803e3d6000fd5b505050506040513d6020811015611a1d57600080fd5b8101908080519060200190929190505050905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611a84612d09565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b24576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f43616c6c6572206973206e6f74207072696d617279000000000000000000000081525060200191505060405180910390fd5b611b2c6118fd565b15611b82576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180613039602e913960400191505060405180910390fd5b8060008190555050565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415611c25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526044815260200180612f6f6044913960600191505060405180910390fd5b426203f480600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054011115611cc2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b81526020018061300e602b913960400191505060405180910390fd5b611d1481600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bc290919063ffffffff16565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1933836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611dea57600080fd5b505af1158015611dfe573d6000803e3d6000fd5b5050505050565b6407b71a3f5481565b600080735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f73ffffffffffffffffffffffffffffffffffffffff1663e6a43905600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b158015611eee57600080fd5b505afa158015611f02573d6000803e3d6000fd5b505050506040513d6020811015611f1857600080fd5b810190808051906020019092919050505090506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611fb657600080fd5b505afa158015611fca573d6000803e3d6000fd5b505050506040513d6020811015611fe057600080fd5b810190808051906020019092919050505090506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561207e57600080fd5b505afa158015612092573d6000803e3d6000fd5b505050506040513d60208110156120a857600080fd5b810190808051906020019092919050505090506120e8816120da84670de0b6b3a7640000612af290919063ffffffff16565b612b7890919063ffffffff16565b935050505090565b6000670de0b6b3a76400006301e187e00261211b8361210d611295565b612af290919063ffffffff16565b8161212257fe5b049050919050565b600080735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f73ffffffffffffffffffffffffffffffffffffffff1663e6a43905600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b15801561220a57600080fd5b505afa15801561221e573d6000803e3d6000fd5b505050506040513d602081101561223457600080fd5b810190808051906020019092919050505090506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156122d257600080fd5b505afa1580156122e6573d6000803e3d6000fd5b505050506040513d60208110156122fc57600080fd5b810190808051906020019092919050505090506123bc8273ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561235857600080fd5b505afa15801561236c573d6000803e3d6000fd5b505050506040513d602081101561238257600080fd5b81019080805190602001909291905050506123ae61239f876129bf565b84612af290919063ffffffff16565b612b7890919063ffffffff16565b92505050919050565b426203f480600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054011115612462576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b81526020018061300e602b913960400191505060405180910390fd5b6124bc61246e33612c0c565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c8190919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600261255083612da5565b8161255757fe5b0490506125ac81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bc290919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1933846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561268257600080fd5b505af1158015612696573d6000803e3d6000fd5b505050505050565b737a250d5630b4cf539739df2c5dacb4c659f2488d81565b600061271d60026127176126c985612c0c565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c8190919063ffffffff16565b026120f0565b9050919050565b600080735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f73ffffffffffffffffffffffffffffffffffffffff1663e6a43905600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b15801561280457600080fd5b505afa158015612818573d6000803e3d6000fd5b505050506040513d602081101561282e57600080fd5b810190808051906020019092919050505090506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156128cc57600080fd5b505afa1580156128e0573d6000803e3d6000fd5b505050506040513d60208110156128f657600080fd5b810190808051906020019092919050505090506129b68273ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561295257600080fd5b505afa158015612966573d6000803e3d6000fd5b505050506040513d602081101561297c57600080fd5b81019080805190602001909291905050506129a8612999876129bf565b84612af290919063ffffffff16565b612b7890919063ffffffff16565b92505050919050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008273ffffffffffffffffffffffffffffffffffffffff168260405180600001905060006040518083038185875af1925050503d8060008114612a8e576040519150601f19603f3d011682016040523d82523d6000602084013e612a93565b606091505b5050905080612aed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180612fb3603a913960400191505060405180910390fd5b505050565b600080831415612b055760009050612b72565b6000828402905082848281612b1657fe5b0414612b6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612fed6021913960400191505060405180910390fd5b809150505b92915050565b6000612bba83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612de8565b905092915050565b6000612c0483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612eae565b905092915050565b6000612c7a612c63600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442612bc290919063ffffffff16565b612c6c8461212a565b612af290919063ffffffff16565b9050919050565b600080828401905083811015612cff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60007364d4bf1f4cb2b3fdbb6fffb0947b8d8331c2df5773ffffffffffffffffffffffffffffffffffffffff1663c6dbdf616040518163ffffffff1660e01b815260040160206040518083038186803b158015612d6557600080fd5b505afa158015612d79573d6000803e3d6000fd5b505050506040513d6020811015612d8f57600080fd5b8101908080519060200190929190505050905090565b6000612de1612db2611295565b612dd3670de0b6b3a76400006301e187e00285612af290919063ffffffff16565b612b7890919063ffffffff16565b9050919050565b60008083118290612e94576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612e59578082015181840152602081019050612e3e565b50505050905090810190601f168015612e865780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581612ea057fe5b049050809150509392505050565b6000838311158290612f5b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612f20578082015181840152602081019050612f05565b50505050905090810190601f168015612f4d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838503905080915050939250505056fe596f75206861766520746f207374616b65206174206c656173742061206c6974746c652062697420746f20776974686472617720726566657272616c2072657761726473416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77497420686173206e6f74206265656e203320646179732073696e636520796f75207374616b6564207965746d616b65556e6368616e676561626c6528292066756e6374696f6e2077617320616c72656164792063616c6c6564a264697066735822122080478bbc144b1516e59f0ddbca3aaffd30fcdc5478d8f699b4f1ffeb51ef5fa164736f6c634300060c0033

Deployed Bytecode

0x6080604052600436106101445760003560e01c80638439a541116100b6578063cb43b2dd1161006f578063cb43b2dd146105ee578063d28de27314610629578063d488ebe81461066a578063e42255d8146106cf578063e91ed7c914610734578063ecd3bfbb146107995761019d565b80638439a5411461046e5780638d301f99146104a95780639d2a679f146104e4578063a035b1fe1461050f578063a064b44b1461053a578063b1fd6740146105895761019d565b80632dd31000116101085780632dd3100014610308578063452d003f14610349578063475d8733146103845780634caacd751461039b5780635fcbd285146103c85780636dc64a02146104095761019d565b80630af88b24146101a257806312c7df73146101e3578063264762041461020e57806326a4e8d21461025257806329b83c2e146102a35761019d565b3661019d57737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461019b5761019a60006107da565b5b005b600080fd5b3480156101ae57600080fd5b506101b761126f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101ef57600080fd5b506101f8611295565b6040518082815260200191505060405180910390f35b6102506004803603602081101561022457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107da565b005b34801561025e57600080fd5b506102a16004803603602081101561027557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061129e565b005b3480156102af57600080fd5b506102f2600480360360208110156102c657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611428565b6040518082815260200191505060405180910390f35b34801561031457600080fd5b5061031d611440565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561035557600080fd5b506103826004803603602081101561036c57600080fd5b8101908080359060200190929190505050611458565b005b34801561039057600080fd5b50610399611838565b005b3480156103a757600080fd5b506103b06118fd565b60405180821515815260200191505060405180910390f35b3480156103d457600080fd5b506103dd611914565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561041557600080fd5b506104586004803603602081101561042c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a33565b6040518082815260200191505060405180910390f35b34801561047a57600080fd5b506104a76004803603602081101561049157600080fd5b8101908080359060200190929190505050611a7c565b005b3480156104b557600080fd5b506104e2600480360360208110156104cc57600080fd5b8101908080359060200190929190505050611b8c565b005b3480156104f057600080fd5b506104f9611e05565b6040518082815260200191505060405180910390f35b34801561051b57600080fd5b50610524611e0e565b6040518082815260200191505060405180910390f35b34801561054657600080fd5b506105736004803603602081101561055d57600080fd5b81019080803590602001909291905050506120f0565b6040518082815260200191505060405180910390f35b34801561059557600080fd5b506105d8600480360360208110156105ac57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061212a565b6040518082815260200191505060405180910390f35b3480156105fa57600080fd5b506106276004803603602081101561061157600080fd5b81019080803590602001909291905050506123c5565b005b34801561063557600080fd5b5061063e61269e565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561067657600080fd5b506106b96004803603602081101561068d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506126b6565b6040518082815260200191505060405180910390f35b3480156106db57600080fd5b5061071e600480360360208110156106f257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612724565b6040518082815260200191505060405180910390f35b34801561074057600080fd5b506107836004803603602081101561075757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506129bf565b6040518082815260200191505060405180910390f35b3480156107a557600080fd5b506107ae612a08565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000339050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146108bd5761081b611e0e565b670de0b6b3a7640000600f478161082e57fe5b04028161083757fe5b04600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6108e57364d4bf1f4cb2b3fdbb6fffb0947b8d8331c2df57600247816108df57fe5b04612a2e565b6000735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f73ffffffffffffffffffffffffffffffffffffffff1663e6a43905600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b1580156109c457600080fd5b505afa1580156109d8573d6000803e3d6000fd5b505050506040513d60208110156109ee57600080fd5b810190808051906020019092919050505090506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610a8c57600080fd5b505afa158015610aa0573d6000803e3d6000fd5b505050506040513d6020811015610ab657600080fd5b810190808051906020019092919050505090506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610b5457600080fd5b505afa158015610b68573d6000803e3d6000fd5b505050506040513d6020811015610b7e57600080fd5b810190808051906020019092919050505090506000610bb883610baa8447612af290919063ffffffff16565b612b7890919063ffffffff16565b9050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1930836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015610c4d57600080fd5b505af1158015610c61573d6000803e3d6000fd5b5050505060008473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610cce57600080fd5b505afa158015610ce2573d6000803e3d6000fd5b505050506040513d6020811015610cf857600080fd5b810190808051906020019092919050505090506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610d9657600080fd5b505afa158015610daa573d6000803e3d6000fd5b505050506040513d6020811015610dc057600080fd5b81019080805190602001909291905050509050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3737a250d5630b4cf539739df2c5dacb4c659f2488d836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610e7a57600080fd5b505af1158015610e8e573d6000803e3d6000fd5b505050506040513d6020811015610ea457600080fd5b810190808051906020019092919050505050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d71947600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600180306407b71a3f546040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b158015610f9957600080fd5b505af1158015610fad573d6000803e3d6000fd5b50505050506040513d6060811015610fc457600080fd5b8101908080519060200190929190805190602001909291908051906020019092919050505050505060008673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561105557600080fd5b505afa158015611069573d6000803e3d6000fd5b505050506040513d602081101561107f57600080fd5b8101908080519060200190929190505050905060006110a78483612bc290919063ffffffff16565b90506111036110b58a612c0c565b600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c8190919063ffffffff16565b600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061122081600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c8190919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050505050505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054905090565b6112a6612d09565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611346576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f43616c6c6572206973206e6f74207072696d617279000000000000000000000081525060200191505060405180910390fd5b600760159054906101000a900460ff16156113c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f46756e6374696f6e2077617320616c72656164792063616c6c6564000000000081525060200191505060405180910390fd5b6001600760156101000a81548160ff02191690831515021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60016020528060005260406000206000915090505481565b735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f81565b426203f480600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540111156114f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b81526020018061300e602b913960400191505060405180910390fd5b61154f61150133612c0c565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c8190919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506115e481600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bc290919063ffffffff16565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f73ffffffffffffffffffffffffffffffffffffffff1663e6a43905600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b15801561170657600080fd5b505afa15801561171a573d6000803e3d6000fd5b505050506040513d602081101561173057600080fd5b810190808051906020019092919050505090508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156117b457600080fd5b505af11580156117c8573d6000803e3d6000fd5b505050506040513d60208110156117de57600080fd5b81019080805190602001909291905050505042600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b611840612d09565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f43616c6c6572206973206e6f74207072696d617279000000000000000000000081525060200191505060405180910390fd5b6001600760146101000a81548160ff021916908315150217905550565b6000600760149054906101000a900460ff16905090565b6000735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f73ffffffffffffffffffffffffffffffffffffffff1663e6a43905600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b1580156119f357600080fd5b505afa158015611a07573d6000803e3d6000fd5b505050506040513d6020811015611a1d57600080fd5b8101908080519060200190929190505050905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611a84612d09565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b24576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f43616c6c6572206973206e6f74207072696d617279000000000000000000000081525060200191505060405180910390fd5b611b2c6118fd565b15611b82576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180613039602e913960400191505060405180910390fd5b8060008190555050565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415611c25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526044815260200180612f6f6044913960600191505060405180910390fd5b426203f480600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054011115611cc2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b81526020018061300e602b913960400191505060405180910390fd5b611d1481600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bc290919063ffffffff16565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1933836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611dea57600080fd5b505af1158015611dfe573d6000803e3d6000fd5b5050505050565b6407b71a3f5481565b600080735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f73ffffffffffffffffffffffffffffffffffffffff1663e6a43905600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b158015611eee57600080fd5b505afa158015611f02573d6000803e3d6000fd5b505050506040513d6020811015611f1857600080fd5b810190808051906020019092919050505090506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611fb657600080fd5b505afa158015611fca573d6000803e3d6000fd5b505050506040513d6020811015611fe057600080fd5b810190808051906020019092919050505090506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561207e57600080fd5b505afa158015612092573d6000803e3d6000fd5b505050506040513d60208110156120a857600080fd5b810190808051906020019092919050505090506120e8816120da84670de0b6b3a7640000612af290919063ffffffff16565b612b7890919063ffffffff16565b935050505090565b6000670de0b6b3a76400006301e187e00261211b8361210d611295565b612af290919063ffffffff16565b8161212257fe5b049050919050565b600080735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f73ffffffffffffffffffffffffffffffffffffffff1663e6a43905600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b15801561220a57600080fd5b505afa15801561221e573d6000803e3d6000fd5b505050506040513d602081101561223457600080fd5b810190808051906020019092919050505090506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156122d257600080fd5b505afa1580156122e6573d6000803e3d6000fd5b505050506040513d60208110156122fc57600080fd5b810190808051906020019092919050505090506123bc8273ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561235857600080fd5b505afa15801561236c573d6000803e3d6000fd5b505050506040513d602081101561238257600080fd5b81019080805190602001909291905050506123ae61239f876129bf565b84612af290919063ffffffff16565b612b7890919063ffffffff16565b92505050919050565b426203f480600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054011115612462576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b81526020018061300e602b913960400191505060405180910390fd5b6124bc61246e33612c0c565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c8190919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600261255083612da5565b8161255757fe5b0490506125ac81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bc290919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1933846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561268257600080fd5b505af1158015612696573d6000803e3d6000fd5b505050505050565b737a250d5630b4cf539739df2c5dacb4c659f2488d81565b600061271d60026127176126c985612c0c565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c8190919063ffffffff16565b026120f0565b9050919050565b600080735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f73ffffffffffffffffffffffffffffffffffffffff1663e6a43905600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b15801561280457600080fd5b505afa158015612818573d6000803e3d6000fd5b505050506040513d602081101561282e57600080fd5b810190808051906020019092919050505090506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156128cc57600080fd5b505afa1580156128e0573d6000803e3d6000fd5b505050506040513d60208110156128f657600080fd5b810190808051906020019092919050505090506129b68273ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561295257600080fd5b505afa158015612966573d6000803e3d6000fd5b505050506040513d602081101561297c57600080fd5b81019080805190602001909291905050506129a8612999876129bf565b84612af290919063ffffffff16565b612b7890919063ffffffff16565b92505050919050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008273ffffffffffffffffffffffffffffffffffffffff168260405180600001905060006040518083038185875af1925050503d8060008114612a8e576040519150601f19603f3d011682016040523d82523d6000602084013e612a93565b606091505b5050905080612aed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180612fb3603a913960400191505060405180910390fd5b505050565b600080831415612b055760009050612b72565b6000828402905082848281612b1657fe5b0414612b6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612fed6021913960400191505060405180910390fd5b809150505b92915050565b6000612bba83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612de8565b905092915050565b6000612c0483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612eae565b905092915050565b6000612c7a612c63600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442612bc290919063ffffffff16565b612c6c8461212a565b612af290919063ffffffff16565b9050919050565b600080828401905083811015612cff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60007364d4bf1f4cb2b3fdbb6fffb0947b8d8331c2df5773ffffffffffffffffffffffffffffffffffffffff1663c6dbdf616040518163ffffffff1660e01b815260040160206040518083038186803b158015612d6557600080fd5b505afa158015612d79573d6000803e3d6000fd5b505050506040513d6020811015612d8f57600080fd5b8101908080519060200190929190505050905090565b6000612de1612db2611295565b612dd3670de0b6b3a76400006301e187e00285612af290919063ffffffff16565b612b7890919063ffffffff16565b9050919050565b60008083118290612e94576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612e59578082015181840152602081019050612e3e565b50505050905090810190601f168015612e865780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581612ea057fe5b049050809150509392505050565b6000838311158290612f5b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612f20578082015181840152602081019050612f05565b50505050905090810190601f168015612f4d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838503905080915050939250505056fe596f75206861766520746f207374616b65206174206c656173742061206c6974746c652062697420746f20776974686472617720726566657272616c2072657761726473416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77497420686173206e6f74206265656e203320646179732073696e636520796f75207374616b6564207965746d616b65556e6368616e676561626c6528292066756e6374696f6e2077617320616c72656164792063616c6c6564a264697066735822122080478bbc144b1516e59f0ddbca3aaffd30fcdc5478d8f699b4f1ffeb51ef5fa164736f6c634300060c0033

Deployed Bytecode Sourcemap

3304:7587:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3885:42;4252:23;;:10;:23;;;4249:69;;4290:17;4304:1;4290:5;:17::i;:::-;4249:69;3304:7587;;;;;4027:69;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4855:87;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5739:1578;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5198:202;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3523:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3934:86;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7325:547;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5049:85;;;;;;;;;;;;;:::i;:::-;;4622:89;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4719:124;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10066:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5504:182;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8403:426;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3429:38;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10190:401;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10599:139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9312:360;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7884:507;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3841:86;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9017:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9684:370;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9189:111;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3802:26;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5739:1578;5800:14;5817:10;5800:27;;5856:1;5841:17;;:3;:17;;;5838:150;;5969:7;:5;:7::i;:::-;3416:6;5956:2;5934:21;:24;;;;;;5933:34;5932:44;;;;;;5910:14;:19;5925:3;5910:19;;;;;;;;;;;;;;;;:66;5888:14;:19;5903:3;5888:19;;;;;;;;;;;;;;;:88;;;;5838:150;6004:48;3018:42;6050:1;6028:21;:23;;;;;;6004:9;:48::i;:::-;6073:19;3978:42;6095:24;;;6120:11;;;;;;;;;;;6133;;;;;;;;;;;6095:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6073:72;;6156:14;6180:11;;;;;;;;;;;6173:29;;;6203:11;6173:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6156:59;;6243:16;6269:11;;;;;;;;;;;6262:29;;;6292:11;6262:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6243:61;;6344:11;6358:55;6403:9;6359:38;6385:11;6359:21;:25;;:38;;;;:::i;:::-;6358:44;;:55;;;;:::i;:::-;6344:69;;6431:11;;;;;;;;;;;6424:24;;;6457:4;6464:6;6424:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6492:26;6528:11;6521:29;;;6559:4;6521:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6492:73;;6586:23;6619:11;;;;;;;;;;;6612:29;;;6650:4;6612:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6586:70;;6674:11;;;;;;;;;;;6667:27;;;3885:42;6706:18;6667:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3885:42;6764:34;;;6807:21;6831:11;;;;;;;;;;;6844:18;6864:1;6867;6878:4;3456:11;6764:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6910:25;6945:11;6938:29;;;6976:4;6938:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6910:72;;6993:17;7013:47;7038:21;7013:20;:24;;:47;;;;:::i;:::-;6993:67;;7099:56;7119:35;7147:6;7119:27;:35::i;:::-;7099:7;:15;7107:6;7099:15;;;;;;;;;;;;;;;;:19;;:56;;;;:::i;:::-;7081:7;:15;7089:6;7081:15;;;;;;;;;;;;;;;:74;;;;7187:3;7166:10;:18;7177:6;7166:18;;;;;;;;;;;;;;;:24;;;;7224:3;7201:12;:20;7214:6;7201:20;;;;;;;;;;;;;;;:26;;;;7269:40;7296:12;7269:14;:22;7284:6;7269:22;;;;;;;;;;;;;;;;:26;;:40;;;;:::i;:::-;7244:14;:22;7259:6;7244:22;;;;;;;;;;;;;;;:65;;;;5739:1578;;;;;;;;;;:::o;4027:69::-;;;;;;;;;;;;;:::o;4855:87::-;4899:4;4922:12;;4915:19;;4855:87;:::o;5198:202::-;3242:9;:7;:9::i;:::-;3228:23;;:10;:23;;;3220:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5276:18:::1;;;;;;;;;;;5275:19;5267:59;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;5358:4;5337:18;;:25;;;;;;;;;;;;;;;;;;5387:5;5373:11;;:19;;;;;;;;;;;;;;;;;;5198:202:::0;:::o;3523:47::-;;;;;;;;;;;;;;;;;:::o;3934:86::-;3978:42;3934:86;:::o;7325:547::-;7425:3;7415:6;7390:10;:22;7401:10;7390:22;;;;;;;;;;;;;;;;:31;:38;;7382:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7519:64;7543:39;7571:10;7543:27;:39::i;:::-;7519:7;:19;7527:10;7519:19;;;;;;;;;;;;;;;;:23;;:64;;;;:::i;:::-;7497:7;:19;7505:10;7497:19;;;;;;;;;;;;;;;:86;;;;7623:38;7654:6;7623:14;:26;7638:10;7623:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;7594:14;:26;7609:10;7594:26;;;;;;;;;;;;;;;:67;;;;7682:19;3978:42;7704:24;;;7729:11;;;;;;;;;;;7742;;;;;;;;;;;7704:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7682:72;;7772:11;7765:28;;;7794:10;7806:6;7765:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7861:3;7834:12;:24;7847:10;7834:24;;;;;;;;;;;;;;;:30;;;;7325:547;;:::o;5049:85::-;3242:9;:7;:9::i;:::-;3228:23;;:10;:23;;;3220:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5122:4:::1;5106:13;;:20;;;;;;;;;;;;;;;;;;5049:85::o:0;4622:89::-;4667:4;4690:13;;;;;;;;;;;4683:20;;4622:89;:::o;4719:124::-;4759:7;3978:42;4785:24;;;4810:11;;;;;;;;;;;4823;;;;;;;;;;;4785:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4778:57;;4719:124;:::o;10066:112::-;10128:4;10151:14;:19;10166:3;10151:19;;;;;;;;;;;;;;;;10144:26;;10066:112;;;:::o;5504:182::-;3242:9;:7;:9::i;:::-;3228:23;;:10;:23;;;3220:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5582:14:::1;:12;:14::i;:::-;5581:15;5573:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5673:5;5658:12;:20;;;;5504:182:::0;:::o;8403:426::-;8499:1;8473:10;:22;8484:10;8473:22;;;;;;;;;;;;;;;;:27;;8465:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8627:3;8617:6;8592:10;:22;8603:10;8592:22;;;;;;;;;;;;;;;;:31;:38;;8584:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8728:38;8759:6;8728:14;:26;8743:10;8728:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;8699:14;:26;8714:10;8699:26;;;;;;;;;;;;;;;:67;;;;8784:11;;;;;;;;;;;8777:24;;;8802:10;8814:6;8777:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8403:426;:::o;3429:38::-;3456:11;3429:38;:::o;10190:401::-;10228:4;10254:19;3978:42;10276:24;;;10301:11;;;;;;;;;;;10314;;;;;;;;;;;10276:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10254:72;;10347:14;10371:11;;;;;;;;;;;10364:29;;;10394:11;10364:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10347:59;;10434:16;10460:11;;;;;;;;;;;10453:29;;;10483:11;10453:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10434:61;;10542:41;10571:11;10543:22;10555:9;3416:6;10543:11;;:22;;;;:::i;:::-;10542:28;;:41;;;;:::i;:::-;10535:48;;;;;10190:401;:::o;10599:139::-;10651:4;3416:6;10710:8;:18;10676:26;10694:7;10676:13;:11;:13::i;:::-;:17;;:26;;;;:::i;:::-;10674:56;;;;;;10667:63;;10599:139;;;:::o;9312:360::-;9375:4;9399:19;3978:42;9421:24;;;9446:11;;;;;;;;;;;9459;;;;;;;;;;;9421:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9399:72;;9482:14;9506:11;;;;;;;;;;;9499:29;;;9529:11;9499:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9482:59;;9586:78;9637:11;9630:31;;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9587:37;9601:22;9619:3;9601:17;:22::i;:::-;9587:9;:13;;:37;;;;:::i;:::-;9586:43;;:78;;;;:::i;:::-;9579:85;;;;9312:360;;;:::o;7884:507::-;7988:3;7978:6;7953:10;:22;7964:10;7953:22;;;;;;;;;;;;;;;;:31;:38;;7945:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8082:64;8106:39;8134:10;8106:27;:39::i;:::-;8082:7;:19;8090:10;8082:19;;;;;;;;;;;;;;;;:23;;:64;;;;:::i;:::-;8060:7;:19;8068:10;8060:19;;;;;;;;;;;;;;;:86;;;;8184:3;8157:12;:24;8170:10;8157:24;;;;;;;;;;;;;;;:30;;;;8208:17;8248:1;8228:19;8240:6;8228:11;:19::i;:::-;:21;;;;;;8208:41;;8282:37;8306:12;8282:7;:19;8290:10;8282:19;;;;;;;;;;;;;;;;:23;;:37;;;;:::i;:::-;8260:7;:19;8268:10;8260:19;;;;;;;;;;;;;;;:59;;;;8346:11;;;;;;;;;;;8339:24;;;8364:10;8376:6;8339:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7884:507;;:::o;3841:86::-;3885:42;3841:86;:::o;9017:160::-;9082:4;9105:64;9166:1;9115:50;9132:32;9160:3;9132:27;:32::i;:::-;9115:7;:12;9123:3;9115:12;;;;;;;;;;;;;;;;:16;;:50;;;;:::i;:::-;:52;9105:8;:64::i;:::-;9098:71;;9017:160;;;:::o;9684:370::-;9749:4;9775:19;3978:42;9797:24;;;9822:11;;;;;;;;;;;9835;;;;;;;;;;;9797:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9775:72;;9858:16;9884:11;;;;;;;;;;;9877:29;;;9907:11;9877:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9858:61;;9966:80;10019:11;10012:31;;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9967:39;9983:22;10001:3;9983:17;:22::i;:::-;9967:11;:15;;:39;;;;:::i;:::-;9966:45;;:80;;;;:::i;:::-;9959:87;;;;9684:370;;;:::o;9189:111::-;9250:4;9273:14;:19;9288:3;9273:19;;;;;;;;;;;;;;;;9266:26;;9189:111;;;:::o;3802:26::-;;;;;;;;;;;;;:::o;4337:234::-;4420:12;4438:9;:14;;4461:6;4438:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4419:54;;;4493:7;4485:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4337:234;;;:::o;567:216::-;625:7;654:1;649;:6;645:23;;;665:1;658:8;;;;645:23;678:9;694:1;690;:5;678:17;;723:1;718;714;:5;;;;;;:10;706:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;780:1;773:8;;;567:216;;;;;:::o;791:126::-;849:7;876:39;880:1;883;876:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;869:46;;791:126;;;;:::o;237:130::-;295:7;322:43;326:1;329;322:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;315:50;;237:130;;;;:::o;8841:164::-;8914:4;8938:58;8968:26;8976:12;:17;8989:3;8976:17;;;;;;;;;;;;;;;;8968:3;:7;;:26;;;;:::i;:::-;8938:24;8958:3;8938:19;:24::i;:::-;:28;;:58;;;;:::i;:::-;8930:67;;8841:164;;;:::o;56:173::-;114:7;134:9;150:1;146;:5;134:17;;175:1;170;:6;;162:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;226:1;219:8;;;56:173;;;;:::o;3070:104::-;3111:7;3018:42;3138:26;;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3131:35;;3070:104;:::o;10750:138::-;10804:4;10827:53;10865:13;:11;:13::i;:::-;10829:28;3416:6;10838:8;:18;10829:4;:8;;:28;;;;:::i;:::-;10827:36;;:53;;;;:::i;:::-;10820:60;;10750:138;;;:::o;925:183::-;1011:7;1043:1;1039;:5;1046:12;1031:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1070:9;1086:1;1082;:5;;;;;;1070:17;;1105:1;1098:8;;;925:183;;;;;:::o;375:184::-;461:7;494:1;489;:6;;497:12;481:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;521:9;537:1;533;:5;521:17;;556:1;549:8;;;375:184;;;;;:::o

Swarm Source

ipfs://80478bbc144b1516e59f0ddbca3aaffd30fcdc5478d8f699b4f1ffeb51ef5fa1

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.