Holesky Testnet

Contract

0xd05D7d104AD82B7C90aa406ed6973795DE36D512

Overview

ETH Balance

0 ETH

Multichain Info

N/A
Transaction Hash
Method
Block
From
To
Register Indexer...26462262024-10-31 18:43:12102 days ago1730400192IN
0xd05D7d10...5DE36D512
0 ETH0.000000210.00097611
Register Indexer...26462212024-10-31 18:42:12102 days ago1730400132IN
0xd05D7d10...5DE36D512
0 ETH0.000000210.00097611
SLA Plan C26461902024-10-31 18:36:00102 days ago1730399760IN
0xd05D7d10...5DE36D512
0 ETH0.000000110.00097611
SLA Plan C26461802024-10-31 18:33:36102 days ago1730399616IN
0xd05D7d10...5DE36D512
0 ETH0.000000110.00097611
SLA Plan C26461692024-10-31 18:31:24102 days ago1730399484IN
0xd05D7d10...5DE36D512
0 ETH0.000113730.97
Register Indexer...26461572024-10-31 18:28:48102 days ago1730399328IN
0xd05D7d10...5DE36D512
0 ETH0.000000120.00097612
Register Indexer...26461552024-10-31 18:28:00102 days ago1730399280IN
0xd05D7d10...5DE36D512
0 ETH0.000000210.00097612
SLA Plan C26460902024-10-31 18:13:24102 days ago1730398404IN
0xd05D7d10...5DE36D512
0 ETH0.000000110.00097228
Register Indexer...26460822024-10-31 18:11:36102 days ago1730398296IN
0xd05D7d10...5DE36D512
0 ETH0.000000120.00097229
SLA Plan C26460762024-10-31 18:10:24102 days ago1730398224IN
0xd05D7d10...5DE36D512
0 ETH0.000000110.00097229
Register Indexer...26460732024-10-31 18:09:48102 days ago1730398188IN
0xd05D7d10...5DE36D512
0 ETH0.000000120.00097229
Uncommit From SL...26459852024-10-31 17:51:48102 days ago1730397108IN
0xd05D7d10...5DE36D512
0 ETH0.000000020.00106952
Register Indexer...26458852024-10-31 17:30:48102 days ago1730395848IN
0xd05D7d10...5DE36D512
0 ETH0.000000210.00097229
Register Indexer...26458702024-10-31 17:27:36102 days ago1730395656IN
0xd05D7d10...5DE36D512
0 ETH0.00000030.00097229
SLA Plan C26458602024-10-31 17:25:36102 days ago1730395536IN
0xd05D7d10...5DE36D512
0 ETH0.000000110.00097229
SLA Plan C26458142024-10-31 17:14:36102 days ago1730394876IN
0xd05D7d10...5DE36D512
0 ETH0.000000110.00097964
Register Indexer...26456152024-10-31 16:32:36102 days ago1730392356IN
0xd05D7d10...5DE36D512
0 ETH0.000000320.00097963
SLA Plan C26453642024-10-31 15:38:00102 days ago1730389080IN
0xd05D7d10...5DE36D512
0 ETH0.000000110.00100597
SLA Plan C26451992024-10-31 15:02:48102 days ago1730386968IN
0xd05D7d10...5DE36D512
0 ETH0.000000110.00097199
SLA Plan C26451572024-10-31 14:53:48102 days ago1730386428IN
0xd05D7d10...5DE36D512
0 ETH0.000000110.00097208
SLA Plan C26450862024-10-31 14:38:12102 days ago1730385492IN
0xd05D7d10...5DE36D512
0 ETH0.000000110.0009754
SLA Plan C26450332024-10-31 14:26:36102 days ago1730384796IN
0xd05D7d10...5DE36D512
0 ETH0.000000110.0009456
SLA Plan C26449712024-10-31 14:13:12102 days ago1730383992IN
0xd05D7d10...5DE36D512
0 ETH0.000000110.00096577
SLA Plan C26447482024-10-31 13:24:36102 days ago1730381076IN
0xd05D7d10...5DE36D512
0 ETH0.000000190.00143199

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SLA_Coverage

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2024-10-31
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.20; 

interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);

    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, uint256 value) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 value) external returns (bool);
    function transferFrom(address from, address to, uint256 value) external returns (bool);
}

interface ISLA_Registry {
    function SLAType(address indexer) external view returns (uint256);
    function SLAIndex(address indexer) external view returns (uint256);
    function operators() external view returns (address[] memory);
}

pragma solidity ^0.8.11;

contract SLA_Coverage {

    address public owner;
    IERC20 public USDC = IERC20(0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48);
    ISLA_Registry public registry = ISLA_Registry(0xD321dc13822f09e6c70f85384ddb781dB729979B);

    struct SubgraphPlan {
        string subgraphID;
        string plan;
    }

    mapping (string => uint256) public startTimeA;
    mapping (string => uint256) public startTimeB;
    mapping (string => uint256) public startTimeC;

    mapping (string => bool) public readIndexerInterests;
    mapping (address => string[]) public deals;

    mapping (string => mapping(uint256 => address)) public SLAIndexer;

    string[] public subgraphsA;
    string[] public subgraphsB;
    string[] public subgraphsC;

    uint256 public durationA = 60 * 60; //1 hour
    uint256 public durationB = 60 * 60 * 24; //1 day
    uint256 public durationC = 60; //60 seconds, 1 minute

    address[] public indexers;

    constructor() {
        owner = msg.sender;
    }

    function SLAPlanA(string memory subgraphID) external {
        //USDC.transferFrom(msg.sender, address(this), 10 ** 6); // removed for testing
        if (startTimeA[subgraphID] == 0) {
            subgraphsA.push(subgraphID);
        }
        startTimeA[subgraphID] = block.timestamp;
    }

    function SLAPlanB(string memory subgraphID) external {
        //USDC.transferFrom(msg.sender, address(this), 2 * 10 ** 6); // removed for testing
        if (startTimeB[subgraphID] == 0) {
            subgraphsB.push(subgraphID);
        }
        startTimeB[subgraphID] = block.timestamp;
    }

    function SLAPlanC(string memory subgraphID) external {
        //USDC.transferFrom(msg.sender, address(this), 3 * 10 ** 6); // removed for testing
        if (startTimeC[subgraphID] == 0) {
            subgraphsC.push(subgraphID);
        }
        startTimeC[subgraphID] = block.timestamp;
    }

    function showRegisteredAndPrepaidAVSs(uint256 SLAPlanType, uint256 start, uint256 end) external view returns (string[] memory){
        string[] memory subgraphs = new string[](end - start);
        uint256 i;
        if (SLAPlanType == 1) {
            for (i = start; i < end; i++) {
                subgraphs[i-start] = subgraphsA[i];
            }
        }
        else if (SLAPlanType == 2) {
            for (i = start; i < end; i++) {
                subgraphs[i-start] = subgraphsB[i];
            }
        }
        else if (SLAPlanType == 3) {
            for (i = start; i < end; i++) {
                subgraphs[i-start] = subgraphsC[i];
            }
        }

        return subgraphs;
    }

    function getTotalSubgraphsInsured(uint256 SLAPlanType) external view returns (uint256) {
        uint256 total;
        if (SLAPlanType == 1) {
            total = subgraphsA.length;
        }
        else if (SLAPlanType == 2) {
            total = subgraphsB.length;
        }
        else if (SLAPlanType == 3) {
            total = subgraphsC.length;
        }
        return total;
    }

    function SLAPlanIsActive(string memory subgraphID, uint256 SLAPlanType) public view returns (bool) {
        bool active = false;
        if (SLAPlanType == 1) {
            if (startTimeA[subgraphID] + durationA <= block.timestamp) {
                active = true;
            }
        }
        else if (SLAPlanType == 2) {
            if (startTimeB[subgraphID] + durationB <= block.timestamp) {
                active = true;
            }
        }
        else if (SLAPlanType == 3) {
            if (startTimeC[subgraphID] + durationC <= block.timestamp) {
                active = true;
            }
        }
        return active;
    }

    function commitToSLA(string memory subgraphID, uint256 SLAPlanType) external {
        require(registry.SLAType(msg.sender) != 0);
        require(SLAIndexer[subgraphID][SLAPlanType] == address(0));
        SLAIndexer[subgraphID][SLAPlanType] = msg.sender;
        deals[msg.sender].push(subgraphID);
        bool found = false;
        for (uint256 i = 0; i < indexers.length; i++) {
            if (indexers[i] == msg.sender) {
                found = true;
                break;
            }
        }
        if (found == false) {
            indexers.push(msg.sender);
        }
    }

    function uncommitFromSLA(string memory subgraphID, uint256 SLAPlanType) external {
        require(SLAPlanIsActive(subgraphID, SLAPlanType) == false);
        uint256 end = deals[SLAIndexer[subgraphID][SLAPlanType]].length - 1;
        for (uint256 i=0; i <= end; i++) {
            if (keccak256(bytes(deals[SLAIndexer[subgraphID][SLAPlanType]][i])) == keccak256(bytes(subgraphID))) {
                deals[SLAIndexer[subgraphID][SLAPlanType]][i] = deals[SLAIndexer[subgraphID][SLAPlanType]][end];
                delete deals[SLAIndexer[subgraphID][SLAPlanType]][end];
                break;
            }
        }
        SLAIndexer[subgraphID][SLAPlanType] = address(0);
    }

    function makeDeal(address indexer, string[] memory subgraphId) external {}

    function removeDeal(address indexer, string memory subgraphID, uint256 SLAPlanType) external {
        require(SLAPlanIsActive(subgraphID, SLAPlanType) == false);
        uint256 end = deals[indexer].length - 1;
        for (uint256 i=0; i <= end; i++) {
            if (keccak256(bytes(deals[indexer][i])) == keccak256(bytes(subgraphID))) {
                deals[indexer][i] = deals[indexer][end];
                delete deals[indexer][end];
                break;
            }
        }
        SLAIndexer[subgraphID][SLAPlanType] = address(0);
    }

    //register an indexer for multiple subgraphs at once
    //for testing only can intake indexer adddress
    function registerIndexerInterest(address indexer, string[] memory subgraphID, uint256[] memory SLAPlanType) external {
        require(registry.SLAType(indexer) != 0);
        for (uint256 i=0; i<subgraphID.length; i++) {
            require(SLAIndexer[subgraphID[i]][SLAPlanType[i]] == address(0));
            SLAIndexer[subgraphID[i]][SLAPlanType[i]] = indexer;
            deals[indexer].push(subgraphID[i]);
        }
    }

    function distributeFunds() external {
        uint256 balance = USDC.balanceOf(address(this));
        USDC.transferFrom(address(this), owner, balance/2);
        USDC.transferFrom(address(this), owner, balance/2);
    }

    function transferOwnership(address newOwner) external {
        require(msg.sender == owner);
        owner = newOwner;
    }

    function getSLAPlansBySubgraphIDs(string[] memory subgraphIDs) external view returns (SubgraphPlan[] memory) {
        SubgraphPlan[] memory plans = new SubgraphPlan[](subgraphIDs.length);

        for (uint256 i = 0; i < subgraphIDs.length; i++) {
            string memory subgraphID = subgraphIDs[i];
            if (startTimeA[subgraphID] != 0) {
                plans[i] = SubgraphPlan(subgraphID, "bronze");
            } else if (startTimeB[subgraphID] != 0) {
                plans[i] = SubgraphPlan(subgraphID, "silver");
            } else if (startTimeC[subgraphID] != 0) {
                plans[i] = SubgraphPlan(subgraphID, "gold");
            } else {
                plans[i] = SubgraphPlan(subgraphID, "none");
            }
        }

        return plans;
    }

    function readDeals() external view returns (address[] memory, string[] memory) {
        address[] memory indexersExpanded;
        string[] memory subgraphPlans;
        for (uint256 i = 0; i < indexers.length; i++) {
            for (uint256 k = 0; k < deals[indexers[i]].length; k++) {
                indexersExpanded[indexersExpanded.length] = indexers[i];
                subgraphPlans[subgraphPlans.length] = deals[indexers[i]][k];
            }
            
        }
        return (indexers, subgraphPlans);
    }

}

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"string","name":"","type":"string"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"SLAIndexer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"subgraphID","type":"string"}],"name":"SLAPlanA","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"subgraphID","type":"string"}],"name":"SLAPlanB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"subgraphID","type":"string"}],"name":"SLAPlanC","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"subgraphID","type":"string"},{"internalType":"uint256","name":"SLAPlanType","type":"uint256"}],"name":"SLAPlanIsActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"USDC","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"subgraphID","type":"string"},{"internalType":"uint256","name":"SLAPlanType","type":"uint256"}],"name":"commitToSLA","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"deals","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"distributeFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"durationA","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"durationB","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"durationC","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string[]","name":"subgraphIDs","type":"string[]"}],"name":"getSLAPlansBySubgraphIDs","outputs":[{"components":[{"internalType":"string","name":"subgraphID","type":"string"},{"internalType":"string","name":"plan","type":"string"}],"internalType":"struct SLA_Coverage.SubgraphPlan[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"SLAPlanType","type":"uint256"}],"name":"getTotalSubgraphsInsured","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"indexers","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"indexer","type":"address"},{"internalType":"string[]","name":"subgraphId","type":"string[]"}],"name":"makeDeal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"readDeals","outputs":[{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"string[]","name":"","type":"string[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"readIndexerInterests","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"indexer","type":"address"},{"internalType":"string[]","name":"subgraphID","type":"string[]"},{"internalType":"uint256[]","name":"SLAPlanType","type":"uint256[]"}],"name":"registerIndexerInterest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract ISLA_Registry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"indexer","type":"address"},{"internalType":"string","name":"subgraphID","type":"string"},{"internalType":"uint256","name":"SLAPlanType","type":"uint256"}],"name":"removeDeal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"SLAPlanType","type":"uint256"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"name":"showRegisteredAndPrepaidAVSs","outputs":[{"internalType":"string[]","name":"","type":"string[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"startTimeA","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"startTimeB","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"startTimeC","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"subgraphsA","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"subgraphsB","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"subgraphsC","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"subgraphID","type":"string"},{"internalType":"uint256","name":"SLAPlanType","type":"uint256"}],"name":"uncommitFromSLA","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6080604052600180546001600160a01b031990811673a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48179091556002805490911673d321dc13822f09e6c70f85384ddb781db729979b179055610e10600c5562015180600d55603c600e553480156068575f80fd5b505f80546001600160a01b03191633179055612334806100875f395ff3fe608060405234801561000f575f80fd5b50600436106101dc575f3560e01c80638326108611610109578063bcf9bb161161009e578063ecd9e7821161006e578063ecd9e78214610495578063f26e466e146104c0578063f2fde38b146104c9578063f4f4821e146104dc575f80fd5b8063bcf9bb1614610413578063ca51901d14610429578063dd76d80614610454578063e3d055a314610467575f80fd5b8063a8e57084116100d9578063a8e57084146103c8578063b6416a3b146103da578063b6a7b0d1146103ed578063b7f093e314610400575f80fd5b8063832610861461037d57806389a30271146103905780638da5cb5b146103a3578063a4b8f7cd146103b5575f80fd5b806337fdb54e1161017f578063561983661161014f57806356198366146103195780637772560d1461032c5780637b103999146103575780637b4d034f1461036a575f80fd5b806337fdb54e146102835780633a6a4d2e146102a357806347197310146102ab57806350c9772614610306575f80fd5b80630f66892b116101ba5780630f66892b1461022457806324e772191461022d5780633449ee281461024d57806337d9a91e14610260575f80fd5b806305b50e04146101e05780630cead297146101fc5780630d20c07014610211575b5f80fd5b6101e9600e5481565b6040519081526020015b60405180910390f35b61020f61020a366004611ab5565b6104fc565b005b61020f61021f366004611aee565b610582565b6101e9600c5481565b61024061023b366004611b2f565b610817565b6040516101f39190611b74565b61020f61025b366004611ab5565b6108bd565b61027361026e366004611aee565b610930565b60405190151581526020016101f3565b610296610291366004611b8d565b6109d9565b6040516101f39190611c10565b61020f610cf1565b6102ee6102b9366004611aee565b81516020818401810180516008825292820194820194909420919093529091525f90815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016101f3565b61020f610314366004611ab5565b610e93565b610240610327366004611b2f565b610f06565b6101e961033a366004611ab5565b805160208183018101805160038252928201919093012091525481565b6002546102ee906001600160a01b031681565b61020f610378366004611c3d565b610f15565b61020f61038b366004611d3f565b6110da565b6001546102ee906001600160a01b031681565b5f546102ee906001600160a01b031681565b6101e96103c3366004611b2f565b6112c8565b61020f6103d6366004611e0a565b5050565b6102406103e8366004611b2f565b6112fe565b6102ee6103fb366004611b2f565b61130d565b61020f61040e366004611aee565b611335565b61041b6114ff565b6040516101f3929190611e54565b6101e9610437366004611ab5565b805160208183018101805160048252928201919093012091525481565b610240610462366004611eb4565b611715565b610273610475366004611ab5565b805160208183018101805160068252928201919093012091525460ff1681565b6101e96104a3366004611ab5565b805160208183018101805160058252928201919093012091525481565b6101e9600d5481565b61020f6104d7366004611edc565b611747565b6104ef6104ea366004611ef5565b61177d565b6040516101f39190611f26565b60058160405161050c9190611fb0565b9081526020016040518091039020545f0361055e57600b80546001810182555f919091527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90161055c8282612049565b505b4260058260405161056f9190611fb0565b9081526040519081900360200190205550565b61058c8282610930565b15610595575f80fd5b5f600160075f6008866040516105ab9190611fb0565b90815260408051602092819003830190205f888152908352818120546001600160a01b031684529183019390935291019020546105e8919061211a565b90505f5b8181116107c057838051906020012060075f60088760405161060e9190611fb0565b90815260408051602092819003830190205f898152908352818120546001600160a01b0316845291830193909352910190208054839081106106525761065261212d565b905f5260205f20016040516106679190612141565b6040518091039020036107ae5760075f6008866040516106879190611fb0565b90815260408051602092819003830190205f888152908352818120546001600160a01b0316845291830193909352910190208054839081106106cb576106cb61212d565b905f5260205f200160075f6008876040516106e69190611fb0565b90815260408051602092819003830190205f898152908352818120546001600160a01b03168452918301939093529101902080548390811061072a5761072a61212d565b905f5260205f2001908161073e91906121b2565b5060075f6008866040516107529190611fb0565b90815260408051602092819003830190205f888152908352818120546001600160a01b0316845291830193909352910190208054839081106107965761079661212d565b905f5260205f20015f6107a991906119b4565b6107c0565b806107b88161227e565b9150506105ec565b505f6008846040516107d29190611fb0565b90815260200160405180910390205f8481526020019081526020015f205f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550505050565b60098181548110610826575f80fd5b905f5260205f20015f91509050805461083e90611fc6565b80601f016020809104026020016040519081016040528092919081815260200182805461086a90611fc6565b80156108b55780601f1061088c576101008083540402835291602001916108b5565b820191905f5260205f20905b81548152906001019060200180831161089857829003601f168201915b505050505081565b6003816040516108cd9190611fb0565b9081526020016040518091039020545f0361091f57600980546001810182555f919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0161091d8282612049565b505b4260038260405161056f9190611fb0565b5f8060018390036109765742600c5460038660405161094f9190611fb0565b9081526020016040518091039020546109689190612296565b11610971575060015b6109d0565b826002036109925742600d5460048660405161094f9190611fb0565b826003036109d05742600e546005866040516109ae9190611fb0565b9081526020016040518091039020546109c79190612296565b116109d0575060015b90505b92915050565b60605f6109e6848461211a565b6001600160401b038111156109fd576109fd611a06565b604051908082528060200260200182016040528015610a3057816020015b6060815260200190600190039081610a1b5790505b5090505f85600103610b1e5750835b83811015610b195760098181548110610a5a57610a5a61212d565b905f5260205f20018054610a6d90611fc6565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9990611fc6565b8015610ae45780601f10610abb57610100808354040283529160200191610ae4565b820191905f5260205f20905b815481529060010190602001808311610ac757829003601f168201915b5050505050828683610af6919061211a565b81518110610b0657610b0661212d565b6020908102919091010152600101610a3f565b610ce8565b85600203610c035750835b83811015610b1957600a8181548110610b4457610b4461212d565b905f5260205f20018054610b5790611fc6565b80601f0160208091040260200160405190810160405280929190818152602001828054610b8390611fc6565b8015610bce5780601f10610ba557610100808354040283529160200191610bce565b820191905f5260205f20905b815481529060010190602001808311610bb157829003601f168201915b5050505050828683610be0919061211a565b81518110610bf057610bf061212d565b6020908102919091010152600101610b29565b85600303610ce85750835b83811015610ce857600b8181548110610c2957610c2961212d565b905f5260205f20018054610c3c90611fc6565b80601f0160208091040260200160405190810160405280929190818152602001828054610c6890611fc6565b8015610cb35780601f10610c8a57610100808354040283529160200191610cb3565b820191905f5260205f20905b815481529060010190602001808311610c9657829003601f168201915b5050505050828683610cc5919061211a565b81518110610cd557610cd561212d565b6020908102919091010152600101610c0e565b50949350505050565b6001546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015610d37573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d5b91906122a9565b6001545f549192506001600160a01b03908116916323b872dd91309116610d836002866122c0565b6040516001600160e01b031960e086901b1681526001600160a01b03938416600482015292909116602483015260448201526064016020604051808303815f875af1158015610dd4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610df891906122df565b506001545f546001600160a01b03918216916323b872dd91309116610e1e6002866122c0565b6040516001600160e01b031960e086901b1681526001600160a01b03938416600482015292909116602483015260448201526064016020604051808303815f875af1158015610e6f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103d691906122df565b600481604051610ea39190611fb0565b9081526020016040518091039020545f03610ef557600a80546001810182555f919091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a801610ef38282612049565b505b4260048260405161056f9190611fb0565b600a8181548110610826575f80fd5b610f1f8282610930565b15610f28575f80fd5b6001600160a01b0383165f90815260076020526040812054610f4c9060019061211a565b90505f5b81811161108257838051906020012060075f876001600160a01b03166001600160a01b031681526020019081526020015f208281548110610f9357610f9361212d565b905f5260205f2001604051610fa89190612141565b604051809103902003611070576001600160a01b0385165f908152600760205260409020805483908110610fde57610fde61212d565b905f5260205f200160075f876001600160a01b03166001600160a01b031681526020019081526020015f20828154811061101a5761101a61212d565b905f5260205f2001908161102e91906121b2565b506001600160a01b0385165f9081526007602052604090208054839081106110585761105861212d565b905f5260205f20015f61106b91906119b4565b611082565b8061107a8161227e565b915050610f50565b505f6008846040516110949190611fb0565b90815260200160405180910390205f8481526020019081526020015f205f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555050505050565b60025460405162a084bd60e01b81526001600160a01b0385811660048301529091169062a084bd90602401602060405180830381865afa158015611120573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061114491906122a9565b5f0361114e575f80fd5b5f5b82518110156112c2575f6001600160a01b031660088483815181106111775761117761212d565b602002602001015160405161118c9190611fb0565b90815260200160405180910390205f8484815181106111ad576111ad61212d565b60209081029190910181015182528101919091526040015f20546001600160a01b0316146111d9575f80fd5b8360088483815181106111ee576111ee61212d565b60200260200101516040516112039190611fb0565b90815260200160405180910390205f8484815181106112245761122461212d565b602002602001015181526020019081526020015f205f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555060075f856001600160a01b03166001600160a01b031681526020019081526020015f208382815181106112915761129161212d565b60209081029190910181015182546001810184555f9384529190922001906112b99082612049565b50600101611150565b50505050565b5f80826001036112db57506009546109d3565b826002036112ec5750600a546109d3565b826003036109d35750600b5492915050565b600b8181548110610826575f80fd5b600f818154811061131c575f80fd5b5f918252602090912001546001600160a01b0316905081565b60025460405162a084bd60e01b81523360048201526001600160a01b039091169062a084bd90602401602060405180830381865afa158015611379573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061139d91906122a9565b5f036113a7575f80fd5b5f6001600160a01b03166008836040516113c19190611fb0565b90815260408051602092819003830190205f85815292529020546001600160a01b0316146113ed575f80fd5b336008836040516113fe9190611fb0565b90815260408051602092819003830190205f85815290835281812080546001600160a01b0319166001600160a01b03959095169490941790935533835260078252822080546001810182559083529120016114598382612049565b505f805b600f548110156114ae57336001600160a01b0316600f82815481106114845761148461212d565b5f918252602090912001546001600160a01b0316036114a657600191506114ae565b60010161145d565b508015155f036114fa57600f80546001810182555f919091527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020180546001600160a01b031916331790555b505050565b6060806060805f5b600f548110156116ad575f5b60075f600f84815481106115295761152961212d565b5f9182526020808320909101546001600160a01b031683528201929092526040019020548110156116a457600f82815481106115675761156761212d565b5f9182526020909120015484516001600160a01b0390911690859061158a61212d565b60200260200101906001600160a01b031690816001600160a01b03168152505060075f600f84815481106115c0576115c061212d565b5f9182526020808320909101546001600160a01b0316835282019290925260400190208054829081106115f5576115f561212d565b905f5260205f2001805461160890611fc6565b80601f016020809104026020016040519081016040528092919081815260200182805461163490611fc6565b801561167f5780601f106116565761010080835404028352916020019161167f565b820191905f5260205f20905b81548152906001019060200180831161166257829003601f168201915b5050865187935091505061169161212d565b6020908102919091010152600101611513565b50600101611507565b50600f818180548060200260200160405190810160405280929190818152602001828054801561170457602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116116e6575b505050505091509350935050509091565b6007602052815f5260405f20818154811061172e575f80fd5b905f5260205f20015f9150915050805461083e90611fc6565b5f546001600160a01b0316331461175c575f80fd5b5f80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f82516001600160401b0381111561179957611799611a06565b6040519080825280602002602001820160405280156117de57816020015b60408051808201909152606080825260208201528152602001906001900390816117b75790505b5090505f5b83518110156119ad575f8482815181106117ff576117ff61212d565b602002602001015190506003816040516118199190611fb0565b9081526020016040518091039020545f146118835760405180604001604052808281526020016040518060400160405280600681526020016562726f6e7a6560d01b8152508152508383815181106118735761187361212d565b60200260200101819052506119a4565b6004816040516118939190611fb0565b9081526020016040518091039020545f146118ed5760405180604001604052808281526020016040518060400160405280600681526020016539b4b63b32b960d11b8152508152508383815181106118735761187361212d565b6005816040516118fd9190611fb0565b9081526020016040518091039020545f146119555760405180604001604052808281526020016040518060400160405280600481526020016319dbdb1960e21b8152508152508383815181106118735761187361212d565b6040518060400160405280828152602001604051806040016040528060048152602001636e6f6e6560e01b8152508152508383815181106119985761199861212d565b60200260200101819052505b506001016117e3565b5092915050565b5080546119c090611fc6565b5f825580601f106119cf575050565b601f0160209004905f5260205f20908101906119eb91906119ee565b50565b5b80821115611a02575f81556001016119ef565b5090565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b0381118282101715611a4257611a42611a06565b604052919050565b5f82601f830112611a59575f80fd5b81356001600160401b03811115611a7257611a72611a06565b611a85601f8201601f1916602001611a1a565b818152846020838601011115611a99575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215611ac5575f80fd5b81356001600160401b03811115611ada575f80fd5b611ae684828501611a4a565b949350505050565b5f8060408385031215611aff575f80fd5b82356001600160401b03811115611b14575f80fd5b611b2085828601611a4a565b95602094909401359450505050565b5f60208284031215611b3f575f80fd5b5035919050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f611b866020830184611b46565b9392505050565b5f805f60608486031215611b9f575f80fd5b505081359360208301359350604090920135919050565b5f82825180855260208501945060208160051b830101602085015f5b83811015611c0457601f19858403018852611bee838351611b46565b6020988901989093509190910190600101611bd2565b50909695505050505050565b602081525f611b866020830184611bb6565b80356001600160a01b0381168114611c38575f80fd5b919050565b5f805f60608486031215611c4f575f80fd5b611c5884611c22565b925060208401356001600160401b03811115611c72575f80fd5b611c7e86828701611a4a565b93969395505050506040919091013590565b5f6001600160401b03821115611ca857611ca8611a06565b5060051b60200190565b5f82601f830112611cc1575f80fd5b8135611cd4611ccf82611c90565b611a1a565b8082825260208201915060208360051b860101925085831115611cf5575f80fd5b602085015b83811015611d355780356001600160401b03811115611d17575f80fd5b611d26886020838a0101611a4a565b84525060209283019201611cfa565b5095945050505050565b5f805f60608486031215611d51575f80fd5b611d5a84611c22565b925060208401356001600160401b03811115611d74575f80fd5b611d8086828701611cb2565b92505060408401356001600160401b03811115611d9b575f80fd5b8401601f81018613611dab575f80fd5b8035611db9611ccf82611c90565b8082825260208201915060208360051b850101925088831115611dda575f80fd5b6020840193505b82841015611dfc578335825260209384019390910190611de1565b809450505050509250925092565b5f8060408385031215611e1b575f80fd5b611e2483611c22565b915060208301356001600160401b03811115611e3e575f80fd5b611e4a85828601611cb2565b9150509250929050565b604080825283519082018190525f9060208501906060840190835b81811015611e965783516001600160a01b0316835260209384019390920191600101611e6f565b50508381036020850152611eaa8186611bb6565b9695505050505050565b5f8060408385031215611ec5575f80fd5b611ece83611c22565b946020939093013593505050565b5f60208284031215611eec575f80fd5b611b8682611c22565b5f60208284031215611f05575f80fd5b81356001600160401b03811115611f1a575f80fd5b611ae684828501611cb2565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015611fa457603f198786030184528151805160408752611f726040880182611b46565b9050602082015191508681036020880152611f8d8183611b46565b965050506020938401939190910190600101611f4c565b50929695505050505050565b5f82518060208501845e5f920191825250919050565b600181811c90821680611fda57607f821691505b602082108103611ff857634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156114fa57805f5260205f20601f840160051c810160208510156120235750805b601f840160051c820191505b81811015612042575f815560010161202f565b5050505050565b81516001600160401b0381111561206257612062611a06565b612076816120708454611fc6565b84611ffe565b6020601f8211600181146120ab575f83156120915750848201515b600184901b5f19600386901b1c198216175b855550612042565b5f84815260208120601f198516915b828110156120da57878501518255602094850194600190920191016120ba565b50848210156120f757868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b818103818111156109d3576109d3612106565b634e487b7160e01b5f52603260045260245ffd5b5f80835461214e81611fc6565b600182168015612165576001811461217a576121a7565b60ff19831686528115158202860193506121a7565b865f5260205f205f5b8381101561219f57815488820152600190910190602001612183565b505081860193505b509195945050505050565b8181036121bd575050565b6121c78254611fc6565b6001600160401b038111156121de576121de611a06565b6121ec816120708454611fc6565b5f601f82116001811461221b575f8315612091575081850154600184901b5f19600386901b1c198216176120a3565b5f8581526020808220868352908220601f198616925b838110156122515782860154825560019586019590910190602001612231565b508583101561226e57818501545f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f6001820161228f5761228f612106565b5060010190565b808201808211156109d3576109d3612106565b5f602082840312156122b9575f80fd5b5051919050565b5f826122da57634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156122ef575f80fd5b815180151581146109d0575f80fdfea264697066735822122063d5019ab5503e77a0d2c75f621894f1cd1311e78850505f9cdc60961f514c5364736f6c634300081a0033

Deployed Bytecode

0x608060405234801561000f575f80fd5b50600436106101dc575f3560e01c80638326108611610109578063bcf9bb161161009e578063ecd9e7821161006e578063ecd9e78214610495578063f26e466e146104c0578063f2fde38b146104c9578063f4f4821e146104dc575f80fd5b8063bcf9bb1614610413578063ca51901d14610429578063dd76d80614610454578063e3d055a314610467575f80fd5b8063a8e57084116100d9578063a8e57084146103c8578063b6416a3b146103da578063b6a7b0d1146103ed578063b7f093e314610400575f80fd5b8063832610861461037d57806389a30271146103905780638da5cb5b146103a3578063a4b8f7cd146103b5575f80fd5b806337fdb54e1161017f578063561983661161014f57806356198366146103195780637772560d1461032c5780637b103999146103575780637b4d034f1461036a575f80fd5b806337fdb54e146102835780633a6a4d2e146102a357806347197310146102ab57806350c9772614610306575f80fd5b80630f66892b116101ba5780630f66892b1461022457806324e772191461022d5780633449ee281461024d57806337d9a91e14610260575f80fd5b806305b50e04146101e05780630cead297146101fc5780630d20c07014610211575b5f80fd5b6101e9600e5481565b6040519081526020015b60405180910390f35b61020f61020a366004611ab5565b6104fc565b005b61020f61021f366004611aee565b610582565b6101e9600c5481565b61024061023b366004611b2f565b610817565b6040516101f39190611b74565b61020f61025b366004611ab5565b6108bd565b61027361026e366004611aee565b610930565b60405190151581526020016101f3565b610296610291366004611b8d565b6109d9565b6040516101f39190611c10565b61020f610cf1565b6102ee6102b9366004611aee565b81516020818401810180516008825292820194820194909420919093529091525f90815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016101f3565b61020f610314366004611ab5565b610e93565b610240610327366004611b2f565b610f06565b6101e961033a366004611ab5565b805160208183018101805160038252928201919093012091525481565b6002546102ee906001600160a01b031681565b61020f610378366004611c3d565b610f15565b61020f61038b366004611d3f565b6110da565b6001546102ee906001600160a01b031681565b5f546102ee906001600160a01b031681565b6101e96103c3366004611b2f565b6112c8565b61020f6103d6366004611e0a565b5050565b6102406103e8366004611b2f565b6112fe565b6102ee6103fb366004611b2f565b61130d565b61020f61040e366004611aee565b611335565b61041b6114ff565b6040516101f3929190611e54565b6101e9610437366004611ab5565b805160208183018101805160048252928201919093012091525481565b610240610462366004611eb4565b611715565b610273610475366004611ab5565b805160208183018101805160068252928201919093012091525460ff1681565b6101e96104a3366004611ab5565b805160208183018101805160058252928201919093012091525481565b6101e9600d5481565b61020f6104d7366004611edc565b611747565b6104ef6104ea366004611ef5565b61177d565b6040516101f39190611f26565b60058160405161050c9190611fb0565b9081526020016040518091039020545f0361055e57600b80546001810182555f919091527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90161055c8282612049565b505b4260058260405161056f9190611fb0565b9081526040519081900360200190205550565b61058c8282610930565b15610595575f80fd5b5f600160075f6008866040516105ab9190611fb0565b90815260408051602092819003830190205f888152908352818120546001600160a01b031684529183019390935291019020546105e8919061211a565b90505f5b8181116107c057838051906020012060075f60088760405161060e9190611fb0565b90815260408051602092819003830190205f898152908352818120546001600160a01b0316845291830193909352910190208054839081106106525761065261212d565b905f5260205f20016040516106679190612141565b6040518091039020036107ae5760075f6008866040516106879190611fb0565b90815260408051602092819003830190205f888152908352818120546001600160a01b0316845291830193909352910190208054839081106106cb576106cb61212d565b905f5260205f200160075f6008876040516106e69190611fb0565b90815260408051602092819003830190205f898152908352818120546001600160a01b03168452918301939093529101902080548390811061072a5761072a61212d565b905f5260205f2001908161073e91906121b2565b5060075f6008866040516107529190611fb0565b90815260408051602092819003830190205f888152908352818120546001600160a01b0316845291830193909352910190208054839081106107965761079661212d565b905f5260205f20015f6107a991906119b4565b6107c0565b806107b88161227e565b9150506105ec565b505f6008846040516107d29190611fb0565b90815260200160405180910390205f8481526020019081526020015f205f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550505050565b60098181548110610826575f80fd5b905f5260205f20015f91509050805461083e90611fc6565b80601f016020809104026020016040519081016040528092919081815260200182805461086a90611fc6565b80156108b55780601f1061088c576101008083540402835291602001916108b5565b820191905f5260205f20905b81548152906001019060200180831161089857829003601f168201915b505050505081565b6003816040516108cd9190611fb0565b9081526020016040518091039020545f0361091f57600980546001810182555f919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0161091d8282612049565b505b4260038260405161056f9190611fb0565b5f8060018390036109765742600c5460038660405161094f9190611fb0565b9081526020016040518091039020546109689190612296565b11610971575060015b6109d0565b826002036109925742600d5460048660405161094f9190611fb0565b826003036109d05742600e546005866040516109ae9190611fb0565b9081526020016040518091039020546109c79190612296565b116109d0575060015b90505b92915050565b60605f6109e6848461211a565b6001600160401b038111156109fd576109fd611a06565b604051908082528060200260200182016040528015610a3057816020015b6060815260200190600190039081610a1b5790505b5090505f85600103610b1e5750835b83811015610b195760098181548110610a5a57610a5a61212d565b905f5260205f20018054610a6d90611fc6565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9990611fc6565b8015610ae45780601f10610abb57610100808354040283529160200191610ae4565b820191905f5260205f20905b815481529060010190602001808311610ac757829003601f168201915b5050505050828683610af6919061211a565b81518110610b0657610b0661212d565b6020908102919091010152600101610a3f565b610ce8565b85600203610c035750835b83811015610b1957600a8181548110610b4457610b4461212d565b905f5260205f20018054610b5790611fc6565b80601f0160208091040260200160405190810160405280929190818152602001828054610b8390611fc6565b8015610bce5780601f10610ba557610100808354040283529160200191610bce565b820191905f5260205f20905b815481529060010190602001808311610bb157829003601f168201915b5050505050828683610be0919061211a565b81518110610bf057610bf061212d565b6020908102919091010152600101610b29565b85600303610ce85750835b83811015610ce857600b8181548110610c2957610c2961212d565b905f5260205f20018054610c3c90611fc6565b80601f0160208091040260200160405190810160405280929190818152602001828054610c6890611fc6565b8015610cb35780601f10610c8a57610100808354040283529160200191610cb3565b820191905f5260205f20905b815481529060010190602001808311610c9657829003601f168201915b5050505050828683610cc5919061211a565b81518110610cd557610cd561212d565b6020908102919091010152600101610c0e565b50949350505050565b6001546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015610d37573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d5b91906122a9565b6001545f549192506001600160a01b03908116916323b872dd91309116610d836002866122c0565b6040516001600160e01b031960e086901b1681526001600160a01b03938416600482015292909116602483015260448201526064016020604051808303815f875af1158015610dd4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610df891906122df565b506001545f546001600160a01b03918216916323b872dd91309116610e1e6002866122c0565b6040516001600160e01b031960e086901b1681526001600160a01b03938416600482015292909116602483015260448201526064016020604051808303815f875af1158015610e6f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103d691906122df565b600481604051610ea39190611fb0565b9081526020016040518091039020545f03610ef557600a80546001810182555f919091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a801610ef38282612049565b505b4260048260405161056f9190611fb0565b600a8181548110610826575f80fd5b610f1f8282610930565b15610f28575f80fd5b6001600160a01b0383165f90815260076020526040812054610f4c9060019061211a565b90505f5b81811161108257838051906020012060075f876001600160a01b03166001600160a01b031681526020019081526020015f208281548110610f9357610f9361212d565b905f5260205f2001604051610fa89190612141565b604051809103902003611070576001600160a01b0385165f908152600760205260409020805483908110610fde57610fde61212d565b905f5260205f200160075f876001600160a01b03166001600160a01b031681526020019081526020015f20828154811061101a5761101a61212d565b905f5260205f2001908161102e91906121b2565b506001600160a01b0385165f9081526007602052604090208054839081106110585761105861212d565b905f5260205f20015f61106b91906119b4565b611082565b8061107a8161227e565b915050610f50565b505f6008846040516110949190611fb0565b90815260200160405180910390205f8481526020019081526020015f205f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555050505050565b60025460405162a084bd60e01b81526001600160a01b0385811660048301529091169062a084bd90602401602060405180830381865afa158015611120573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061114491906122a9565b5f0361114e575f80fd5b5f5b82518110156112c2575f6001600160a01b031660088483815181106111775761117761212d565b602002602001015160405161118c9190611fb0565b90815260200160405180910390205f8484815181106111ad576111ad61212d565b60209081029190910181015182528101919091526040015f20546001600160a01b0316146111d9575f80fd5b8360088483815181106111ee576111ee61212d565b60200260200101516040516112039190611fb0565b90815260200160405180910390205f8484815181106112245761122461212d565b602002602001015181526020019081526020015f205f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555060075f856001600160a01b03166001600160a01b031681526020019081526020015f208382815181106112915761129161212d565b60209081029190910181015182546001810184555f9384529190922001906112b99082612049565b50600101611150565b50505050565b5f80826001036112db57506009546109d3565b826002036112ec5750600a546109d3565b826003036109d35750600b5492915050565b600b8181548110610826575f80fd5b600f818154811061131c575f80fd5b5f918252602090912001546001600160a01b0316905081565b60025460405162a084bd60e01b81523360048201526001600160a01b039091169062a084bd90602401602060405180830381865afa158015611379573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061139d91906122a9565b5f036113a7575f80fd5b5f6001600160a01b03166008836040516113c19190611fb0565b90815260408051602092819003830190205f85815292529020546001600160a01b0316146113ed575f80fd5b336008836040516113fe9190611fb0565b90815260408051602092819003830190205f85815290835281812080546001600160a01b0319166001600160a01b03959095169490941790935533835260078252822080546001810182559083529120016114598382612049565b505f805b600f548110156114ae57336001600160a01b0316600f82815481106114845761148461212d565b5f918252602090912001546001600160a01b0316036114a657600191506114ae565b60010161145d565b508015155f036114fa57600f80546001810182555f919091527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020180546001600160a01b031916331790555b505050565b6060806060805f5b600f548110156116ad575f5b60075f600f84815481106115295761152961212d565b5f9182526020808320909101546001600160a01b031683528201929092526040019020548110156116a457600f82815481106115675761156761212d565b5f9182526020909120015484516001600160a01b0390911690859061158a61212d565b60200260200101906001600160a01b031690816001600160a01b03168152505060075f600f84815481106115c0576115c061212d565b5f9182526020808320909101546001600160a01b0316835282019290925260400190208054829081106115f5576115f561212d565b905f5260205f2001805461160890611fc6565b80601f016020809104026020016040519081016040528092919081815260200182805461163490611fc6565b801561167f5780601f106116565761010080835404028352916020019161167f565b820191905f5260205f20905b81548152906001019060200180831161166257829003601f168201915b5050865187935091505061169161212d565b6020908102919091010152600101611513565b50600101611507565b50600f818180548060200260200160405190810160405280929190818152602001828054801561170457602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116116e6575b505050505091509350935050509091565b6007602052815f5260405f20818154811061172e575f80fd5b905f5260205f20015f9150915050805461083e90611fc6565b5f546001600160a01b0316331461175c575f80fd5b5f80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f82516001600160401b0381111561179957611799611a06565b6040519080825280602002602001820160405280156117de57816020015b60408051808201909152606080825260208201528152602001906001900390816117b75790505b5090505f5b83518110156119ad575f8482815181106117ff576117ff61212d565b602002602001015190506003816040516118199190611fb0565b9081526020016040518091039020545f146118835760405180604001604052808281526020016040518060400160405280600681526020016562726f6e7a6560d01b8152508152508383815181106118735761187361212d565b60200260200101819052506119a4565b6004816040516118939190611fb0565b9081526020016040518091039020545f146118ed5760405180604001604052808281526020016040518060400160405280600681526020016539b4b63b32b960d11b8152508152508383815181106118735761187361212d565b6005816040516118fd9190611fb0565b9081526020016040518091039020545f146119555760405180604001604052808281526020016040518060400160405280600481526020016319dbdb1960e21b8152508152508383815181106118735761187361212d565b6040518060400160405280828152602001604051806040016040528060048152602001636e6f6e6560e01b8152508152508383815181106119985761199861212d565b60200260200101819052505b506001016117e3565b5092915050565b5080546119c090611fc6565b5f825580601f106119cf575050565b601f0160209004905f5260205f20908101906119eb91906119ee565b50565b5b80821115611a02575f81556001016119ef565b5090565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b0381118282101715611a4257611a42611a06565b604052919050565b5f82601f830112611a59575f80fd5b81356001600160401b03811115611a7257611a72611a06565b611a85601f8201601f1916602001611a1a565b818152846020838601011115611a99575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215611ac5575f80fd5b81356001600160401b03811115611ada575f80fd5b611ae684828501611a4a565b949350505050565b5f8060408385031215611aff575f80fd5b82356001600160401b03811115611b14575f80fd5b611b2085828601611a4a565b95602094909401359450505050565b5f60208284031215611b3f575f80fd5b5035919050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f611b866020830184611b46565b9392505050565b5f805f60608486031215611b9f575f80fd5b505081359360208301359350604090920135919050565b5f82825180855260208501945060208160051b830101602085015f5b83811015611c0457601f19858403018852611bee838351611b46565b6020988901989093509190910190600101611bd2565b50909695505050505050565b602081525f611b866020830184611bb6565b80356001600160a01b0381168114611c38575f80fd5b919050565b5f805f60608486031215611c4f575f80fd5b611c5884611c22565b925060208401356001600160401b03811115611c72575f80fd5b611c7e86828701611a4a565b93969395505050506040919091013590565b5f6001600160401b03821115611ca857611ca8611a06565b5060051b60200190565b5f82601f830112611cc1575f80fd5b8135611cd4611ccf82611c90565b611a1a565b8082825260208201915060208360051b860101925085831115611cf5575f80fd5b602085015b83811015611d355780356001600160401b03811115611d17575f80fd5b611d26886020838a0101611a4a565b84525060209283019201611cfa565b5095945050505050565b5f805f60608486031215611d51575f80fd5b611d5a84611c22565b925060208401356001600160401b03811115611d74575f80fd5b611d8086828701611cb2565b92505060408401356001600160401b03811115611d9b575f80fd5b8401601f81018613611dab575f80fd5b8035611db9611ccf82611c90565b8082825260208201915060208360051b850101925088831115611dda575f80fd5b6020840193505b82841015611dfc578335825260209384019390910190611de1565b809450505050509250925092565b5f8060408385031215611e1b575f80fd5b611e2483611c22565b915060208301356001600160401b03811115611e3e575f80fd5b611e4a85828601611cb2565b9150509250929050565b604080825283519082018190525f9060208501906060840190835b81811015611e965783516001600160a01b0316835260209384019390920191600101611e6f565b50508381036020850152611eaa8186611bb6565b9695505050505050565b5f8060408385031215611ec5575f80fd5b611ece83611c22565b946020939093013593505050565b5f60208284031215611eec575f80fd5b611b8682611c22565b5f60208284031215611f05575f80fd5b81356001600160401b03811115611f1a575f80fd5b611ae684828501611cb2565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015611fa457603f198786030184528151805160408752611f726040880182611b46565b9050602082015191508681036020880152611f8d8183611b46565b965050506020938401939190910190600101611f4c565b50929695505050505050565b5f82518060208501845e5f920191825250919050565b600181811c90821680611fda57607f821691505b602082108103611ff857634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156114fa57805f5260205f20601f840160051c810160208510156120235750805b601f840160051c820191505b81811015612042575f815560010161202f565b5050505050565b81516001600160401b0381111561206257612062611a06565b612076816120708454611fc6565b84611ffe565b6020601f8211600181146120ab575f83156120915750848201515b600184901b5f19600386901b1c198216175b855550612042565b5f84815260208120601f198516915b828110156120da57878501518255602094850194600190920191016120ba565b50848210156120f757868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b818103818111156109d3576109d3612106565b634e487b7160e01b5f52603260045260245ffd5b5f80835461214e81611fc6565b600182168015612165576001811461217a576121a7565b60ff19831686528115158202860193506121a7565b865f5260205f205f5b8381101561219f57815488820152600190910190602001612183565b505081860193505b509195945050505050565b8181036121bd575050565b6121c78254611fc6565b6001600160401b038111156121de576121de611a06565b6121ec816120708454611fc6565b5f601f82116001811461221b575f8315612091575081850154600184901b5f19600386901b1c198216176120a3565b5f8581526020808220868352908220601f198616925b838110156122515782860154825560019586019590910190602001612231565b508583101561226e57818501545f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f6001820161228f5761228f612106565b5060010190565b808201808211156109d3576109d3612106565b5f602082840312156122b9575f80fd5b5051919050565b5f826122da57634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156122ef575f80fd5b815180151581146109d0575f80fdfea264697066735822122063d5019ab5503e77a0d2c75f621894f1cd1311e78850505f9cdc60961f514c5364736f6c634300081a0033

Deployed Bytecode Sourcemap

997:8002:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1864:29;;;;;;;;;160:25:1;;;148:2;133:18;1864:29:0;;;;;;;;2634:302;;;;;;:::i;:::-;;:::i;:::-;;5380:692;;;;;;:::i;:::-;;:::i;1760:34::-;;;;;;1659:26;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2018:298::-;;;;;;:::i;:::-;;:::i;4092:666::-;;;;;;:::i;:::-;;:::i;:::-;;;2855:14:1;;2848:22;2830:41;;2818:2;2803:18;4092:666:0;2690:187:1;2944:728:0;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;7287:224::-;;;:::i;1585:65::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1585:65:0;;;;;;;-1:-1:-1;;;;;1585:65:0;;;;;;-1:-1:-1;;;;;4386:32:1;;;4368:51;;4356:2;4341:18;1585:65:0;4222:203:1;2324:302:0;;;;;;:::i;:::-;;:::i;1692:26::-;;;;;;:::i;:::-;;:::i;1317:45::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;1133:89;;;;;-1:-1:-1;;;;;1133:89:0;;;6162:564;;;;;;:::i;:::-;;:::i;6844:435::-;;;;;;:::i;:::-;;:::i;1055:71::-;;;;;-1:-1:-1;;;;;1055:71:0;;;1028:20;;;;;-1:-1:-1;;;;;1028:20:0;;;3680:404;;;;;;:::i;:::-;;:::i;6080:74::-;;;;;;:::i;:::-;7453:50;7323:188;7287:224;1725:26;;;;;;:::i;:::-;;:::i;1925:25::-;;;;;;:::i;:::-;;:::i;4766:606::-;;;;;;:::i;:::-;;:::i;8460:534::-;;;:::i;:::-;;;;;;;;:::i;1369:45::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;1534:42;;;;;;:::i;:::-;;:::i;1475:52::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1421:45;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;1810:39;;;;;;7519:128;;;;;;:::i;:::-;;:::i;7655:797::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2634:302::-;2795:10;2806;2795:22;;;;;;:::i;:::-;;;;;;;;;;;;;;2821:1;2795:27;2791:87;;2839:10;:27;;;;;;;-1:-1:-1;2839:27:0;;;;;;;2855:10;2839:27;;:::i;:::-;;2791:87;2913:15;2888:10;2899;2888:22;;;;;;:::i;:::-;;;;;;;;;;;;;;:40;-1:-1:-1;2634:302:0:o;5380:692::-;5480:40;5496:10;5508:11;5480:15;:40::i;:::-;:49;5472:58;;;;;;5541:11;5607:1;5555:5;:42;5561:10;5572;5561:22;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:35;;;;;;;;;;;-1:-1:-1;;;;;5561:35:0;5555:42;;;;;;;;;;;;;:49;:53;;;;:::i;:::-;5541:67;;5624:9;5619:387;5642:3;5637:1;:8;5619:387;;5754:10;5738:28;;;;;;5687:5;:42;5693:10;5704;5693:22;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:35;;;;;;;;;;;-1:-1:-1;;;;;5693:35:0;5687:42;;;;;;;;;;;;;:45;;5730:1;;5687:45;;;;;;:::i;:::-;;;;;;;;5671:63;;;;;;:::i;:::-;;;;;;;;:95;5667:328;;5835:5;:42;5841:10;5852;5841:22;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:35;;;;;;;;;;;-1:-1:-1;;;;;5841:35:0;5835:42;;;;;;;;;;;;;:47;;5878:3;;5835:47;;;;;;:::i;:::-;;;;;;;;5787:5;:42;5793:10;5804;5793:22;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:35;;;;;;;;;;;-1:-1:-1;;;;;5793:35:0;5787:42;;;;;;;;;;;;;:45;;5830:1;;5787:45;;;;;;:::i;:::-;;;;;;;;:95;;;;;;:::i;:::-;;5908:5;:42;5914:10;5925;5914:22;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:35;;;;;;;;;;;-1:-1:-1;;;;;5914:35:0;5908:42;;;;;;;;;;;;;:47;;5951:3;;5908:47;;;;;;:::i;:::-;;;;;;;;;5901:54;;;;:::i;:::-;5974:5;;5667:328;5647:3;;;;:::i;:::-;;;;5619:387;;;;6062:1;6016:10;6027;6016:22;;;;;;:::i;:::-;;;;;;;;;;;;;:35;6039:11;6016:35;;;;;;;;;;;;:48;;;;;-1:-1:-1;;;;;6016:48:0;;;;;-1:-1:-1;;;;;6016:48:0;;;;;;5461:611;5380:692;;:::o;1659:26::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2018:298::-;2175:10;2186;2175:22;;;;;;:::i;:::-;;;;;;;;;;;;;;2201:1;2175:27;2171:87;;2219:10;:27;;;;;;;-1:-1:-1;2219:27:0;;;;;;;2235:10;2219:27;;:::i;:::-;;2171:87;2293:15;2268:10;2279;2268:22;;;;;;:::i;4092:666::-;4185:4;;4251:1;4236:16;;;4232:495;;4311:15;4298:9;;4273:10;4284;4273:22;;;;;;:::i;:::-;;;;;;;;;;;;;;:34;;;;:::i;:::-;:53;4269:107;;-1:-1:-1;4356:4:0;4269:107;4232:495;;;4406:11;4421:1;4406:16;4402:325;;4481:15;4468:9;;4443:10;4454;4443:22;;;;;;:::i;4402:325::-;4576:11;4591:1;4576:16;4572:155;;4651:15;4638:9;;4613:10;4624;4613:22;;;;;;:::i;:::-;;;;;;;;;;;;;;:34;;;;:::i;:::-;:53;4609:107;;-1:-1:-1;4696:4:0;4609:107;4744:6;-1:-1:-1;4092:666:0;;;;;:::o;2944:728::-;3054:15;3081:25;3122:11;3128:5;3122:3;:11;:::i;:::-;-1:-1:-1;;;;;3109:25:0;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3081:53;;3145:9;3169:11;3184:1;3169:16;3165:471;;-1:-1:-1;3211:5:0;3202:99;3222:3;3218:1;:7;3202:99;;;3272:10;3283:1;3272:13;;;;;;;;:::i;:::-;;;;;;;;3251:34;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:9;3263:5;3261:1;:7;;;;:::i;:::-;3251:18;;;;;;;;:::i;:::-;;;;;;;;;;:34;3227:3;;3202:99;;;3165:471;;;3331:11;3346:1;3331:16;3327:309;;-1:-1:-1;3373:5:0;3364:99;3384:3;3380:1;:7;3364:99;;;3434:10;3445:1;3434:13;;;;;;;;:::i;:::-;;;;;;;;3413:34;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:9;3425:5;3423:1;:7;;;;:::i;:::-;3413:18;;;;;;;;:::i;:::-;;;;;;;;;;:34;3389:3;;3364:99;;3327:309;3493:11;3508:1;3493:16;3489:147;;-1:-1:-1;3535:5:0;3526:99;3546:3;3542:1;:7;3526:99;;;3596:10;3607:1;3596:13;;;;;;;;:::i;:::-;;;;;;;;3575:34;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:9;3587:5;3585:1;:7;;;;:::i;:::-;3575:18;;;;;;;;:::i;:::-;;;;;;;;;;:34;3551:3;;3526:99;;;-1:-1:-1;3655:9:0;2944:728;-1:-1:-1;;;;2944:728:0:o;7287:224::-;7352:4;;:29;;-1:-1:-1;;;7352:29:0;;7375:4;7352:29;;;4368:51:1;7334:15:0;;-1:-1:-1;;;;;7352:4:0;;:14;;4341:18:1;;7352:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7392:4;;;7425:5;7334:47;;-1:-1:-1;;;;;;7392:4:0;;;;:17;;7418:4;;7425:5;7432:9;7440:1;7334:47;7432:9;:::i;:::-;7392:50;;-1:-1:-1;;;;;;7392:50:0;;;;;;;-1:-1:-1;;;;;17435:32:1;;;7392:50:0;;;17417:51:1;17504:32;;;;17484:18;;;17477:60;17553:18;;;17546:34;17390:18;;7392:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;7453:4:0;;;7486:5;-1:-1:-1;;;;;7453:4:0;;;;:17;;7479:4;;7486:5;7493:9;7501:1;7493:7;:9;:::i;:::-;7453:50;;-1:-1:-1;;;;;;7453:50:0;;;;;;;-1:-1:-1;;;;;17435:32:1;;;7453:50:0;;;17417:51:1;17504:32;;;;17484:18;;;17477:60;17553:18;;;17546:34;17390:18;;7453:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2324:302::-;2485:10;2496;2485:22;;;;;;:::i;:::-;;;;;;;;;;;;;;2511:1;2485:27;2481:87;;2529:10;:27;;;;;;;-1:-1:-1;2529:27:0;;;;;;;2545:10;2529:27;;:::i;:::-;;2481:87;2603:15;2578:10;2589;2578:22;;;;;;:::i;1692:26::-;;;;;;;;;;;;6162:564;6274:40;6290:10;6302:11;6274:15;:40::i;:::-;:49;6266:58;;;;;;-1:-1:-1;;;;;6349:14:0;;6335:11;6349:14;;;:5;:14;;;;;:21;:25;;6373:1;;6349:25;:::i;:::-;6335:39;;6390:9;6385:275;6408:3;6403:1;:8;6385:275;;6492:10;6476:28;;;;;;6453:5;:14;6459:7;-1:-1:-1;;;;;6453:14:0;-1:-1:-1;;;;;6453:14:0;;;;;;;;;;;;6468:1;6453:17;;;;;;;;:::i;:::-;;;;;;;;6437:35;;;;;;:::i;:::-;;;;;;;;:67;6433:216;;-1:-1:-1;;;;;6545:14:0;;;;;;:5;:14;;;;;:19;;6560:3;;6545:19;;;;;;:::i;:::-;;;;;;;;6525:5;:14;6531:7;-1:-1:-1;;;;;6525:14:0;-1:-1:-1;;;;;6525:14:0;;;;;;;;;;;;6540:1;6525:17;;;;;;;;:::i;:::-;;;;;;;;:39;;;;;;:::i;:::-;-1:-1:-1;;;;;;6590:14:0;;;;;;:5;:14;;;;;:19;;6605:3;;6590:19;;;;;;:::i;:::-;;;;;;;;;6583:26;;;;:::i;:::-;6628:5;;6433:216;6413:3;;;;:::i;:::-;;;;6385:275;;;;6716:1;6670:10;6681;6670:22;;;;;;:::i;:::-;;;;;;;;;;;;;:35;6693:11;6670:35;;;;;;;;;;;;:48;;;;;-1:-1:-1;;;;;6670:48:0;;;;;-1:-1:-1;;;;;6670:48:0;;;;;;6255:471;6162:564;;;:::o;6844:435::-;6980:8;;:25;;-1:-1:-1;;;6980:25:0;;-1:-1:-1;;;;;4386:32:1;;;6980:25:0;;;4368:51:1;6980:8:0;;;;:16;;4341:18:1;;6980:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7009:1;6980:30;6972:39;;;;;;7027:9;7022:250;7042:10;:17;7040:1;:19;7022:250;;;7142:1;-1:-1:-1;;;;;7089:55:0;:10;7100;7111:1;7100:13;;;;;;;;:::i;:::-;;;;;;;7089:25;;;;;;:::i;:::-;;;;;;;;;;;;;:41;7115:11;7127:1;7115:14;;;;;;;;:::i;:::-;;;;;;;;;;;;7089:41;;;;;;;;;;-1:-1:-1;7089:41:0;;-1:-1:-1;;;;;7089:41:0;:55;7081:64;;;;;;7204:7;7160:10;7171;7182:1;7171:13;;;;;;;;:::i;:::-;;;;;;;7160:25;;;;;;:::i;:::-;;;;;;;;;;;;;:41;7186:11;7198:1;7186:14;;;;;;;;:::i;:::-;;;;;;;7160:41;;;;;;;;;;;;:51;;;;;-1:-1:-1;;;;;7160:51:0;;;;;-1:-1:-1;;;;;7160:51:0;;;;;;7226:5;:14;7232:7;-1:-1:-1;;;;;7226:14:0;-1:-1:-1;;;;;7226:14:0;;;;;;;;;;;;7246:10;7257:1;7246:13;;;;;;;;:::i;:::-;;;;;;;;;;;;7226:34;;;;;;;-1:-1:-1;7226:34:0;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;7061:3:0;;7022:250;;;;6844:435;;;:::o;3680:404::-;3758:7;3778:13;3806:11;3821:1;3806:16;3802:252;;-1:-1:-1;3847:10:0;:17;3802:252;;;3895:11;3910:1;3895:16;3891:163;;-1:-1:-1;3936:10:0;:17;3891:163;;;3984:11;3999:1;3984:16;3980:74;;-1:-1:-1;4025:10:0;:17;4071:5;3680:404;-1:-1:-1;;3680:404:0:o;1725:26::-;;;;;;;;;;;;1925:25;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1925:25:0;;-1:-1:-1;1925:25:0;:::o;4766:606::-;4862:8;;:28;;-1:-1:-1;;;4862:28:0;;4879:10;4862:28;;;4368:51:1;-1:-1:-1;;;;;4862:8:0;;;;:16;;4341:18:1;;4862:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4894:1;4862:33;4854:42;;;;;;4962:1;-1:-1:-1;;;;;4915:49:0;:10;4926;4915:22;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:35;;;;;;;;;-1:-1:-1;;;;;4915:35:0;:49;4907:58;;;;;;5014:10;4976;4987;4976:22;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:35;;;;;;;;;;:48;;-1:-1:-1;;;;;;4976:48:0;-1:-1:-1;;;;;4976:48:0;;;;;;;;;;;5041:10;5035:17;;:5;:17;;;;:34;;-1:-1:-1;5035:34:0;;;;;;;;;;;5058:10;5035:34;;:::i;:::-;;5080:10;5114:9;5109:174;5133:8;:15;5129:19;;5109:174;;;5189:10;-1:-1:-1;;;;;5174:25:0;:8;5183:1;5174:11;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;5174:11:0;:25;5170:102;;5228:4;5220:12;;5251:5;;5170:102;5150:3;;5109:174;;;-1:-1:-1;5297:14:0;;;5306:5;5297:14;5293:72;;5328:8;:25;;;;;;;-1:-1:-1;5328:25:0;;;;;;;;-1:-1:-1;;;;;;5328:25:0;5342:10;5328:25;;;5293:72;4843:529;4766:606;;:::o;8460:534::-;8504:16;8522:15;8550:33;8594:29;8639:9;8634:310;8658:8;:15;8654:19;;8634:310;;;8700:9;8695:224;8719:5;:18;8725:8;8734:1;8725:11;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;8725:11:0;8719:18;;;;;;;;;;;;:25;8715:29;;8695:224;;;8814:8;8823:1;8814:11;;;;;;;;:::i;:::-;;;;;;;;;;;8787:23;;-1:-1:-1;;;;;8814:11:0;;;;8770:16;;:41;;:::i;:::-;;;;;;:55;-1:-1:-1;;;;;8770:55:0;;;-1:-1:-1;;;;;8770:55:0;;;;;8882:5;:18;8888:8;8897:1;8888:11;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;8888:11:0;8882:18;;;;;;;;;;;;:21;;8901:1;;8882:21;;;;;;:::i;:::-;;;;;;;;8844:59;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8858:20:0;;8844:13;;-1:-1:-1;8858:20:0;-1:-1:-1;;8844:35:0;;:::i;:::-;;;;;;;;;;:59;8746:3;;8695:224;;;-1:-1:-1;8675:3:0;;8634:310;;;;8962:8;8972:13;8954:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8954:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8460:534;;:::o;1534:42::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7519:128::-;7606:5;;-1:-1:-1;;;;;7606:5:0;7592:10;:19;7584:28;;;;;;7623:5;:16;;-1:-1:-1;;;;;;7623:16:0;-1:-1:-1;;;;;7623:16:0;;;;;;;;;;7519:128::o;7655:797::-;7741:21;7775:27;7824:11;:18;-1:-1:-1;;;;;7805:38:0;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;7805:38:0;;;;;;;;;;;;;;;;7775:68;;7861:9;7856:564;7880:11;:18;7876:1;:22;7856:564;;;7920:24;7947:11;7959:1;7947:14;;;;;;;;:::i;:::-;;;;;;;7920:41;;7980:10;7991;7980:22;;;;;;:::i;:::-;;;;;;;;;;;;;;8006:1;7980:27;7976:433;;8039:34;;;;;;;;8052:10;8039:34;;;;;;;;;;;;;;;;;-1:-1:-1;;;8039:34:0;;;;;;8028:5;8034:1;8028:8;;;;;;;;:::i;:::-;;;;;;:45;;;;7976:433;;;8099:10;8110;8099:22;;;;;;:::i;:::-;;;;;;;;;;;;;;8125:1;8099:27;8095:314;;8158:34;;;;;;;;8171:10;8158:34;;;;;;;;;;;;;;;;;-1:-1:-1;;;8158:34:0;;;;;;8147:5;8153:1;8147:8;;;;;;;;:::i;8095:314::-;8218:10;8229;8218:22;;;;;;:::i;:::-;;;;;;;;;;;;;;8244:1;8218:27;8214:195;;8277:32;;;;;;;;8290:10;8277:32;;;;;;;;;;;;;;;;;-1:-1:-1;;;8277:32:0;;;;;;8266:5;8272:1;8266:8;;;;;;;;:::i;8214:195::-;8361:32;;;;;;;;8374:10;8361:32;;;;;;;;;;;;;;;;;-1:-1:-1;;;8361:32:0;;;;;;8350:5;8356:1;8350:8;;;;;;;;:::i;:::-;;;;;;:43;;;;8214:195;-1:-1:-1;7900:3:0;;7856:564;;;-1:-1:-1;8439:5:0;7655:797;-1:-1:-1;;7655:797:0:o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;196:127:1:-;257:10;252:3;248:20;245:1;238:31;288:4;285:1;278:15;312:4;309:1;302:15;328:275;399:2;393:9;464:2;445:13;;-1:-1:-1;;441:27:1;429:40;;-1:-1:-1;;;;;484:34:1;;520:22;;;481:62;478:88;;;546:18;;:::i;:::-;582:2;575:22;328:275;;-1:-1:-1;328:275:1:o;608:559::-;651:5;704:3;697:4;689:6;685:17;681:27;671:55;;722:1;719;712:12;671:55;762:6;749:20;-1:-1:-1;;;;;784:6:1;781:30;778:56;;;814:18;;:::i;:::-;858:59;905:2;882:17;;-1:-1:-1;;878:31:1;911:4;874:42;858:59;:::i;:::-;942:6;933:7;926:23;996:3;989:4;980:6;972;968:19;964:30;961:39;958:59;;;1013:1;1010;1003:12;958:59;1078:6;1071:4;1063:6;1059:17;1052:4;1043:7;1039:18;1026:59;1134:1;1105:20;;;1127:4;1101:31;1094:42;;;;1109:7;608:559;-1:-1:-1;;;608:559:1:o;1172:322::-;1241:6;1294:2;1282:9;1273:7;1269:23;1265:32;1262:52;;;1310:1;1307;1300:12;1262:52;1350:9;1337:23;-1:-1:-1;;;;;1375:6:1;1372:30;1369:50;;;1415:1;1412;1405:12;1369:50;1438;1480:7;1471:6;1460:9;1456:22;1438:50;:::i;:::-;1428:60;1172:322;-1:-1:-1;;;;1172:322:1:o;1499:436::-;1577:6;1585;1638:2;1626:9;1617:7;1613:23;1609:32;1606:52;;;1654:1;1651;1644:12;1606:52;1694:9;1681:23;-1:-1:-1;;;;;1719:6:1;1716:30;1713:50;;;1759:1;1756;1749:12;1713:50;1782;1824:7;1815:6;1804:9;1800:22;1782:50;:::i;:::-;1772:60;1901:2;1886:18;;;;1873:32;;-1:-1:-1;;;;1499:436:1:o;1940:226::-;1999:6;2052:2;2040:9;2031:7;2027:23;2023:32;2020:52;;;2068:1;2065;2058:12;2020:52;-1:-1:-1;2113:23:1;;1940:226;-1:-1:-1;1940:226:1:o;2171:289::-;2213:3;2251:5;2245:12;2278:6;2273:3;2266:19;2334:6;2327:4;2320:5;2316:16;2309:4;2304:3;2300:14;2294:47;2386:1;2379:4;2370:6;2365:3;2361:16;2357:27;2350:38;2449:4;2442:2;2438:7;2433:2;2425:6;2421:15;2417:29;2412:3;2408:39;2404:50;2397:57;;;2171:289;;;;:::o;2465:220::-;2614:2;2603:9;2596:21;2577:4;2634:45;2675:2;2664:9;2660:18;2652:6;2634:45;:::i;:::-;2626:53;2465:220;-1:-1:-1;;;2465:220:1:o;2882:466::-;2959:6;2967;2975;3028:2;3016:9;3007:7;3003:23;2999:32;2996:52;;;3044:1;3041;3034:12;2996:52;-1:-1:-1;;3089:23:1;;;3209:2;3194:18;;3181:32;;-1:-1:-1;3312:2:1;3297:18;;;3284:32;;2882:466;-1:-1:-1;2882:466:1:o;3353:579::-;3405:3;3436;3468:5;3462:12;3495:6;3490:3;3483:19;3527:4;3522:3;3518:14;3511:21;;3585:4;3575:6;3572:1;3568:14;3561:5;3557:26;3553:37;3624:4;3617:5;3613:16;3647:1;3657:249;3671:6;3668:1;3665:13;3657:249;;;3758:2;3754:7;3746:5;3740:4;3736:16;3732:30;3727:3;3720:43;3784:38;3817:4;3808:6;3802:13;3784:38;:::i;:::-;3857:4;3882:14;;;;3776:46;;-1:-1:-1;3845:17:1;;;;;3693:1;3686:9;3657:249;;;-1:-1:-1;3922:4:1;;3353:579;-1:-1:-1;;;;;;3353:579:1:o;3937:280::-;4136:2;4125:9;4118:21;4099:4;4156:55;4207:2;4196:9;4192:18;4184:6;4156:55;:::i;4658:173::-;4726:20;;-1:-1:-1;;;;;4775:31:1;;4765:42;;4755:70;;4821:1;4818;4811:12;4755:70;4658:173;;;:::o;4836:510::-;4923:6;4931;4939;4992:2;4980:9;4971:7;4967:23;4963:32;4960:52;;;5008:1;5005;4998:12;4960:52;5031:29;5050:9;5031:29;:::i;:::-;5021:39;;5111:2;5100:9;5096:18;5083:32;-1:-1:-1;;;;;5130:6:1;5127:30;5124:50;;;5170:1;5167;5160:12;5124:50;5193;5235:7;5226:6;5215:9;5211:22;5193:50;:::i;:::-;4836:510;;5183:60;;-1:-1:-1;;;;5312:2:1;5297:18;;;;5284:32;;4836:510::o;5351:182::-;5410:4;-1:-1:-1;;;;;5435:6:1;5432:30;5429:56;;;5465:18;;:::i;:::-;-1:-1:-1;5510:1:1;5506:14;5522:4;5502:25;;5351:182::o;5538:826::-;5591:5;5644:3;5637:4;5629:6;5625:17;5621:27;5611:55;;5662:1;5659;5652:12;5611:55;5702:6;5689:20;5729:63;5745:46;5784:6;5745:46;:::i;:::-;5729:63;:::i;:::-;5816:3;5840:6;5835:3;5828:19;5872:4;5867:3;5863:14;5856:21;;5933:4;5923:6;5920:1;5916:14;5908:6;5904:27;5900:38;5886:52;;5961:3;5953:6;5950:15;5947:35;;;5978:1;5975;5968:12;5947:35;6014:4;6006:6;6002:17;6028:305;6044:6;6039:3;6036:15;6028:305;;;6132:3;6119:17;-1:-1:-1;;;;;6155:11:1;6152:35;6149:55;;;6200:1;6197;6190:12;6149:55;6229:59;6284:3;6277:4;6263:11;6255:6;6251:24;6247:35;6229:59;:::i;:::-;6217:72;;-1:-1:-1;6318:4:1;6309:14;;;;6061;6028:305;;;-1:-1:-1;6351:7:1;5538:826;-1:-1:-1;;;;;5538:826:1:o;6369:1264::-;6506:6;6514;6522;6575:2;6563:9;6554:7;6550:23;6546:32;6543:52;;;6591:1;6588;6581:12;6543:52;6614:29;6633:9;6614:29;:::i;:::-;6604:39;;6694:2;6683:9;6679:18;6666:32;-1:-1:-1;;;;;6713:6:1;6710:30;6707:50;;;6753:1;6750;6743:12;6707:50;6776:60;6828:7;6819:6;6808:9;6804:22;6776:60;:::i;:::-;6766:70;;;6889:2;6878:9;6874:18;6861:32;-1:-1:-1;;;;;6908:8:1;6905:32;6902:52;;;6950:1;6947;6940:12;6902:52;6973:24;;7028:4;7020:13;;7016:27;-1:-1:-1;7006:55:1;;7057:1;7054;7047:12;7006:55;7097:2;7084:16;7120:63;7136:46;7175:6;7136:46;:::i;7120:63::-;7205:3;7229:6;7224:3;7217:19;7261:2;7256:3;7252:12;7245:19;;7316:2;7306:6;7303:1;7299:14;7295:2;7291:23;7287:32;7273:46;;7342:7;7334:6;7331:19;7328:39;;;7363:1;7360;7353:12;7328:39;7395:2;7391;7387:11;7376:22;;7407:196;7423:6;7418:3;7415:15;7407:196;;;7513:17;;7543:18;;7590:2;7440:12;;;;7581;;;;7407:196;;;7622:5;7612:15;;;;;;6369:1264;;;;;:::o;7859:431::-;7962:6;7970;8023:2;8011:9;8002:7;7998:23;7994:32;7991:52;;;8039:1;8036;8029:12;7991:52;8062:29;8081:9;8062:29;:::i;:::-;8052:39;;8142:2;8131:9;8127:18;8114:32;-1:-1:-1;;;;;8161:6:1;8158:30;8155:50;;;8201:1;8198;8191:12;8155:50;8224:60;8276:7;8267:6;8256:9;8252:22;8224:60;:::i;:::-;8214:70;;;7859:431;;;;;:::o;8295:836::-;8583:2;8595:21;;;8665:13;;8568:18;;;8687:22;;;8535:4;;8778;8766:17;;;8740:2;8725:18;;;8535:4;8811:199;8825:6;8822:1;8819:13;8811:199;;;8890:13;;-1:-1:-1;;;;;8886:39:1;8874:52;;8955:4;8983:17;;;;8946:14;;;;8922:1;8840:9;8811:199;;;8815:3;;9057:9;9052:3;9048:19;9041:4;9030:9;9026:20;9019:49;9085:40;9121:3;9113:6;9085:40;:::i;:::-;9077:48;8295:836;-1:-1:-1;;;;;;8295:836:1:o;9136:300::-;9204:6;9212;9265:2;9253:9;9244:7;9240:23;9236:32;9233:52;;;9281:1;9278;9271:12;9233:52;9304:29;9323:9;9304:29;:::i;:::-;9294:39;9402:2;9387:18;;;;9374:32;;-1:-1:-1;;;9136:300:1:o;9441:186::-;9500:6;9553:2;9541:9;9532:7;9528:23;9524:32;9521:52;;;9569:1;9566;9559:12;9521:52;9592:29;9611:9;9592:29;:::i;9632:357::-;9726:6;9779:2;9767:9;9758:7;9754:23;9750:32;9747:52;;;9795:1;9792;9785:12;9747:52;9835:9;9822:23;-1:-1:-1;;;;;9860:6:1;9857:30;9854:50;;;9900:1;9897;9890:12;9854:50;9923:60;9975:7;9966:6;9955:9;9951:22;9923:60;:::i;9994:1115::-;10194:4;10242:2;10231:9;10227:18;10272:2;10261:9;10254:21;10295:6;10330;10324:13;10361:6;10353;10346:22;10399:2;10388:9;10384:18;10377:25;;10461:2;10451:6;10448:1;10444:14;10433:9;10429:30;10425:39;10411:53;;10499:2;10491:6;10487:15;10520:1;10530:550;10544:6;10541:1;10538:13;10530:550;;;10637:2;10633:7;10621:9;10613:6;10609:22;10605:36;10600:3;10593:49;10671:6;10665:13;10717:2;10711:9;10748:2;10740:6;10733:18;10778:48;10822:2;10814:6;10810:15;10796:12;10778:48;:::i;:::-;10764:62;;10875:2;10871;10867:11;10861:18;10839:40;;10928:6;10920;10916:19;10911:2;10903:6;10899:15;10892:44;10959:41;10993:6;10977:14;10959:41;:::i;:::-;10949:51;-1:-1:-1;;;11035:2:1;11058:12;;;;11023:15;;;;;10566:1;10559:9;10530:550;;;-1:-1:-1;11097:6:1;;9994:1115;-1:-1:-1;;;;;;9994:1115:1:o;11114:303::-;11245:3;11283:6;11277:13;11329:6;11322:4;11314:6;11310:17;11305:3;11299:37;11391:1;11355:16;;11380:13;;;-1:-1:-1;11355:16:1;11114:303;-1:-1:-1;11114:303:1:o;11422:380::-;11501:1;11497:12;;;;11544;;;11565:61;;11619:4;11611:6;11607:17;11597:27;;11565:61;11672:2;11664:6;11661:14;11641:18;11638:38;11635:161;;11718:10;11713:3;11709:20;11706:1;11699:31;11753:4;11750:1;11743:15;11781:4;11778:1;11771:15;11635:161;;11422:380;;;:::o;11933:518::-;12035:2;12030:3;12027:11;12024:421;;;12071:5;12068:1;12061:16;12115:4;12112:1;12102:18;12185:2;12173:10;12169:19;12166:1;12162:27;12156:4;12152:38;12221:4;12209:10;12206:20;12203:47;;;-1:-1:-1;12244:4:1;12203:47;12299:2;12294:3;12290:12;12287:1;12283:20;12277:4;12273:31;12263:41;;12354:81;12372:2;12365:5;12362:13;12354:81;;;12431:1;12417:16;;12398:1;12387:13;12354:81;;;12358:3;;11933:518;;;:::o;12627:1299::-;12753:3;12747:10;-1:-1:-1;;;;;12772:6:1;12769:30;12766:56;;;12802:18;;:::i;:::-;12831:97;12921:6;12881:38;12913:4;12907:11;12881:38;:::i;:::-;12875:4;12831:97;:::i;:::-;12977:4;13008:2;12997:14;;13025:1;13020:649;;;;13713:1;13730:6;13727:89;;;-1:-1:-1;13782:19:1;;;13776:26;13727:89;12608:1;12604:11;;;-1:-1:-1;;12584:1:1;12580:11;;;12576:24;12572:29;12562:40;;12559:57;13842:67;13836:4;13829:81;;12990:930;;13020:649;11880:1;11873:14;;;11917:4;11904:18;;-1:-1:-1;;13056:20:1;;;13174:222;13188:7;13185:1;13182:14;13174:222;;;13270:19;;;13264:26;13249:42;;13377:4;13362:20;;;;13330:1;13318:14;;;;13204:12;13174:222;;;13178:3;13424:6;13415:7;13412:19;13409:201;;;13485:19;;;13479:26;-1:-1:-1;;13568:1:1;13564:14;;;13580:3;13560:24;13556:37;13552:42;13537:58;13522:74;;13409:201;-1:-1:-1;;;;13656:1:1;13640:14;;;13636:22;13623:36;;-1:-1:-1;12627:1299:1:o;13931:127::-;13992:10;13987:3;13983:20;13980:1;13973:31;14023:4;14020:1;14013:15;14047:4;14044:1;14037:15;14063:128;14130:9;;;14151:11;;;14148:37;;;14165:18;;:::i;14196:127::-;14257:10;14252:3;14248:20;14245:1;14238:31;14288:4;14285:1;14278:15;14312:4;14309:1;14302:15;14328:799;14458:3;14487:1;14520:6;14514:13;14550:36;14576:9;14550:36;:::i;:::-;14617:1;14602:17;;14628:133;;;;14775:1;14770:332;;;;14595:507;;14628:133;-1:-1:-1;;14661:24:1;;14649:37;;14734:14;;14727:22;14715:35;;14706:45;;;-1:-1:-1;14628:133:1;;14770:332;14801:6;14798:1;14791:17;14849:4;14846:1;14836:18;14876:1;14890:166;14904:6;14901:1;14898:13;14890:166;;;14984:14;;14971:11;;;14964:35;15040:1;15027:15;;;;14926:4;14919:12;14890:166;;;14894:3;;15085:6;15080:3;15076:16;15069:23;;14595:507;-1:-1:-1;15118:3:1;;14328:799;-1:-1:-1;;;;;14328:799:1:o;15132:1397::-;15251:3;15245:4;15242:13;15239:26;;15258:5;;15132:1397::o;15239:26::-;15288:37;15320:3;15314:10;15288:37;:::i;:::-;-1:-1:-1;;;;;15340:6:1;15337:30;15334:56;;;15370:18;;:::i;:::-;15399:97;15489:6;15449:38;15481:4;15475:11;15449:38;:::i;15399:97::-;15522:1;15550:2;15542:6;15539:14;15567:1;15562:710;;;;16316:1;16333:6;16330:89;;;-1:-1:-1;16385:19:1;;;16379:26;12608:1;12604:11;;;-1:-1:-1;;12584:1:1;12580:11;;;12576:24;12572:29;12562:40;;12559:57;16445:67;12456:166;15562:710;11880:1;11873:14;;;11917:4;11904:18;;;11873:14;;;11904:18;;;-1:-1:-1;;15598:20:1;;;15776:221;15790:7;15787:1;15784:14;15776:221;;;15872:21;;;15866:28;15851:44;;15934:1;15966:17;;;;15922:14;;;;15813:4;15806:12;15776:221;;;15780:3;16025:6;16016:7;16013:19;16010:203;;;16086:21;;;16080:28;-1:-1:-1;;16171:1:1;16167:14;;;16183:3;16163:24;16159:37;16155:42;16140:58;16125:74;;16010:203;-1:-1:-1;;;;;16259:1:1;16243:14;;;16239:22;16226:36;;-1:-1:-1;15132:1397:1:o;16534:135::-;16573:3;16594:17;;;16591:43;;16614:18;;:::i;:::-;-1:-1:-1;16661:1:1;16650:13;;16534:135::o;16674:125::-;16739:9;;;16760:10;;;16757:36;;;16773:18;;:::i;16804:184::-;16874:6;16927:2;16915:9;16906:7;16902:23;16898:32;16895:52;;;16943:1;16940;16933:12;16895:52;-1:-1:-1;16966:16:1;;16804:184;-1:-1:-1;16804:184:1:o;16993:217::-;17033:1;17059;17049:132;;17103:10;17098:3;17094:20;17091:1;17084:31;17138:4;17135:1;17128:15;17166:4;17163:1;17156:15;17049:132;-1:-1:-1;17195:9:1;;16993:217::o;17591:277::-;17658:6;17711:2;17699:9;17690:7;17686:23;17682:32;17679:52;;;17727:1;17724;17717:12;17679:52;17759:9;17753:16;17812:5;17805:13;17798:21;17791:5;17788:32;17778:60;;17834:1;17831;17824:12

Swarm Source

ipfs://63d5019ab5503e77a0d2c75f621894f1cd1311e78850505f9cdc60961f514c53

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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