ETH Price: $2,700.17 (+0.01%)

Contract

0x900af0129953BCE6BA848f0F74e3086746b741Fe
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Vote160190452022-11-21 14:40:23816 days ago1669041623IN
0x900af012...746b741Fe
0 ETH0.0017920215.71409809
Vote160190422022-11-21 14:39:47816 days ago1669041587IN
0x900af012...746b741Fe
0 ETH0.00111616.59663506
Send Proposal160150582022-11-21 1:18:59817 days ago1668993539IN
0x900af012...746b741Fe
0 ETH0.002549211.73800163
Send Proposal160148522022-11-21 0:37:23817 days ago1668991043IN
0x900af012...746b741Fe
0 ETH0.0004258314.15593549
Send Proposal160031752022-11-19 9:30:23818 days ago1668850223IN
0x900af012...746b741Fe
0 ETH0.0026510412.20764662
Vote159896482022-11-17 12:09:11820 days ago1668686951IN
0x900af012...746b741Fe
0 ETH0.0017786215.59659883
Vote159896432022-11-17 12:08:11820 days ago1668686891IN
0x900af012...746b741Fe
0 ETH0.0016060914.08377474
Vote159896362022-11-17 12:06:47820 days ago1668686807IN
0x900af012...746b741Fe
0 ETH0.0009108713.54609014
Vote159896332022-11-17 12:06:11820 days ago1668686771IN
0x900af012...746b741Fe
0 ETH0.0010245815.23704737
Send Proposal159885822022-11-17 8:34:59820 days ago1668674099IN
0x900af012...746b741Fe
0 ETH0.0028567213.15475883
Send Proposal159885152022-11-17 8:21:35820 days ago1668673295IN
0x900af012...746b741Fe
0 ETH0.0032299214.87327426
Send Proposal159870672022-11-17 3:30:35821 days ago1668655835IN
0x900af012...746b741Fe
0 ETH0.0030259712.91635362
Set Line159867502022-11-17 2:26:59821 days ago1668652019IN
0x900af012...746b741Fe
0 ETH0.0004848316.68849805
Rely159795222022-11-16 2:11:11822 days ago1668564671IN
0x900af012...746b741Fe
0 ETH0.0008297815.98546373
Rely159795202022-11-16 2:10:47822 days ago1668564647IN
0x900af012...746b741Fe
0 ETH0.0008610816.58842244
Rely159795182022-11-16 2:10:23822 days ago1668564623IN
0x900af012...746b741Fe
0 ETH0.0007883715.18768632
Rely159795172022-11-16 2:10:11822 days ago1668564611IN
0x900af012...746b741Fe
0 ETH0.0007656614.75018533
Rely159795162022-11-16 2:09:59822 days ago1668564599IN
0x900af012...746b741Fe
0 ETH0.0007896515.212308

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SpellRegist

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2022-11-08
*/

// File: @openzeppelin/contracts/utils/Context.sol


// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

// File: @openzeppelin/contracts/access/Ownable.sol


// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)

pragma solidity ^0.8.0;


/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

// File: contracts/SpellRegist.sol


pragma solidity ^0.8.0;


interface IRegist{
    function isAuthSpell(address spell) external view returns(bool);
}

contract Vote {
    struct proposalMsg {
        uint256 index;
        address spell;
        address sender;
        uint256 expire;
        string desc;
    }
    
    enum Status {VOTING, PASSED, NOPASS}
    uint256 public lastId;                                              //last of proposals Id
    uint256 public line;                                                //line of proposals passed
    uint256 public indate;                                              //proposal indate
    mapping (uint256=> proposalMsg) public pom;                         //proposal MSG  
    mapping (uint256=> address[]) public poa;                           //proposal approves
    mapping (address=> uint256) public sopi;                            //spell of proposal's id
    mapping (uint256=> bool) public popi;                               //passed of proposal's id
 
    event SendProposal(uint256 indexed id, address indexed usr, address spell, string desc);
    event VoteProposal(uint256 indexed id, address indexed usr);
    
    function getProposalMSG(uint256 id) public view returns(address spell, address sender, string memory desc, uint256 expire, Status status, address[] memory approveds){
        proposalMsg memory pm = pom[id];
        (spell, sender, desc, expire, approveds) = (pm.spell, pm.sender, pm.desc, pm.expire, poa[id]);
        if (popi[id]){
            status = Status.PASSED;
        }else {
            status = pm.expire > block.timestamp ? Status.VOTING : Status.NOPASS;
        }
    }

    function _setLine(uint256 _line) internal {
        require(_line > 1, "Error Line");
        line = _line;
    }

    function _setIndate(uint256 _indate) internal {
        require(_indate >= 1 && _indate <= 31 , "Error indate");
        indate = _indate * 1 days;
    }

    function _sendProposal(address _spell, string memory _desc) internal {
        require(sopi[_spell] == 0, "proposal exists");
        lastId++;
        pom[lastId]=proposalMsg(
            lastId,
            _spell,
            msg.sender,
            block.timestamp + indate,
            _desc
        );

        poa[lastId].push(msg.sender);
        sopi[_spell]=lastId;

        emit SendProposal(lastId, msg.sender, _spell, _desc);
    }

    function isApproved(address usr, uint256 id) public view returns(bool) {
        if (poa[id].length == 0){ return false;}
        for (uint256 i=0; i < poa[id].length; i++){
            if(poa[id][i] == usr) {return true;}
        }
        return false;
    }

    function _vote(uint256 id) internal {
        require(pom[id].expire > block.timestamp, "proposal exprired");
        require(!isApproved(msg.sender, id), "caller was approverd");

        poa[id].push(msg.sender);
        if (poa[id].length == line){
            popi[id]=true;
        }

        emit VoteProposal(id, msg.sender);
    }
}

contract Auth{
    mapping (address => bool) public signers;
    uint256 public signerCount;
    function _rely(address usr) internal  {require(usr != address(0) && !signers[usr], "Auth: error"); signers[usr] = true; signerCount++;}
    function _deny(address usr) internal  {require(usr != address(0) && signers[usr], "Auth: error"); signers[usr] = false; signerCount--;}
    modifier auth {
        require(signers[msg.sender], "not-authorized");
        _;
    }
}

contract SpellRegist is IRegist, Ownable, Vote, Auth{
    bool public pause;
    address public authORG;
    mapping(address=>bool) internal authSpells;
    event Regist(address spell);

    constructor(uint256 _line, uint256 _indate, address[] memory _signers){
        _setLine(_line);
        _setIndate(_indate);
        for(uint256 i=0; i< _signers.length; i++){
            _rely(_signers[i]);
        }
    }

    function setPause(bool flag) public onlyOwner { pause = flag;}
    function rely(address usr) public onlyOwner { _rely(usr);}
    function deny(address usr) public onlyOwner { _deny(usr);}
    function setLine(uint256 vaule) public onlyOwner {_setLine(vaule);}
    function setIndate(uint256 vaule) public onlyOwner {_setIndate(vaule);}
    function setAuthORG(address org) public onlyOwner{
        require(org != address(0), "org can't be 0");
        authORG = org;
    }

    function sendProposal(address spell, string memory desc) public auth {
        require(!pause, "stop");
        _sendProposal(spell, desc);
    }

    function vote(uint id) public auth {
        require(!pause, "stop");
        _vote(id); 
        address spell = pom[id].spell;
        if (popi[id] && !authSpells[spell]){ _regist(spell);}
    }

    function _regist(address spell) internal{
        authSpells[spell]= true;
        emit Regist(spell);
    }

    function isAuthSpell(address spell) public view override returns(bool){
        if (!pause){
             return authSpells[spell];
        }else {
             return IRegist(authORG).isAuthSpell(spell);
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint256","name":"_line","type":"uint256"},{"internalType":"uint256","name":"_indate","type":"uint256"},{"internalType":"address[]","name":"_signers","type":"address[]"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"spell","type":"address"}],"name":"Regist","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":true,"internalType":"address","name":"usr","type":"address"},{"indexed":false,"internalType":"address","name":"spell","type":"address"},{"indexed":false,"internalType":"string","name":"desc","type":"string"}],"name":"SendProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":true,"internalType":"address","name":"usr","type":"address"}],"name":"VoteProposal","type":"event"},{"inputs":[],"name":"authORG","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"}],"name":"deny","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"getProposalMSG","outputs":[{"internalType":"address","name":"spell","type":"address"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"string","name":"desc","type":"string"},{"internalType":"uint256","name":"expire","type":"uint256"},{"internalType":"enum Vote.Status","name":"status","type":"uint8"},{"internalType":"address[]","name":"approveds","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"indate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"isApproved","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spell","type":"address"}],"name":"isAuthSpell","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"line","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"poa","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"pom","outputs":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"address","name":"spell","type":"address"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"expire","type":"uint256"},{"internalType":"string","name":"desc","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"popi","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"}],"name":"rely","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spell","type":"address"},{"internalType":"string","name":"desc","type":"string"}],"name":"sendProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"org","type":"address"}],"name":"setAuthORG","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"vaule","type":"uint256"}],"name":"setIndate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"vaule","type":"uint256"}],"name":"setLine","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"flag","type":"bool"}],"name":"setPause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"signerCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"signers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"sopi","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"vote","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b5060405162003292380380620032928339818101604052810190620000379190620005c7565b620000576200004b620000d460201b60201c565b620000dc60201b60201c565b6200006883620001a060201b60201c565b6200007982620001f060201b60201c565b60005b8151811015620000ca57620000b4828281518110620000a0576200009f62000642565b5b60200260200101516200025f60201b60201c565b8080620000c190620006a0565b9150506200007c565b50505050620008b5565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60018111620001e6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001dd906200074e565b60405180910390fd5b8060028190555050565b60018110158015620002035750601f8111155b62000245576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200023c90620007c0565b60405180910390fd5b6201518081620002569190620007e2565b60038190555050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015620002e75750600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b62000329576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003209062000893565b60405180910390fd5b6001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600960008154809291906200039690620006a0565b919050555050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b620003c781620003b2565b8114620003d357600080fd5b50565b600081519050620003e781620003bc565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200043d82620003f2565b810181811067ffffffffffffffff821117156200045f576200045e62000403565b5b80604052505050565b6000620004746200039e565b905062000482828262000432565b919050565b600067ffffffffffffffff821115620004a557620004a462000403565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620004e882620004bb565b9050919050565b620004fa81620004db565b81146200050657600080fd5b50565b6000815190506200051a81620004ef565b92915050565b600062000537620005318462000487565b62000468565b905080838252602082019050602084028301858111156200055d576200055c620004b6565b5b835b818110156200058a578062000575888262000509565b8452602084019350506020810190506200055f565b5050509392505050565b600082601f830112620005ac57620005ab620003ed565b5b8151620005be84826020860162000520565b91505092915050565b600080600060608486031215620005e357620005e2620003a8565b5b6000620005f386828701620003d6565b93505060206200060686828701620003d6565b925050604084015167ffffffffffffffff8111156200062a5762000629620003ad565b5b620006388682870162000594565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620006ad82620003b2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203620006e257620006e162000671565b5b600182019050919050565b600082825260208201905092915050565b7f4572726f72204c696e6500000000000000000000000000000000000000000000600082015250565b600062000736600a83620006ed565b91506200074382620006fe565b602082019050919050565b60006020820190508181036000830152620007698162000727565b9050919050565b7f4572726f7220696e646174650000000000000000000000000000000000000000600082015250565b6000620007a8600c83620006ed565b9150620007b58262000770565b602082019050919050565b60006020820190508181036000830152620007db8162000799565b9050919050565b6000620007ef82620003b2565b9150620007fc83620003b2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000838576200083762000671565b5b828202905092915050565b7f417574683a206572726f72000000000000000000000000000000000000000000600082015250565b60006200087b600b83620006ed565b9150620008888262000843565b602082019050919050565b60006020820190508181036000830152620008ae816200086c565b9050919050565b6129cd80620008c56000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c80638456cb59116100de578063b56b835311610097578063c1292cc311610071578063c1292cc314610451578063f27ea3e21461046f578063f2fde38b1461049f578063f326ab7a146104bb57610173565b8063b56b8353146103f9578063bedb86fb14610417578063c08d916e1461043357610173565b80638456cb5914610320578063858e7ce61461033e5780638da5cb5b1461035a57806392bb952e1461037857806396ca6062146103ad5780639c52a7f1146103dd57610173565b806365fae35e1161013057806365fae35e1461024857806370cd4beb14610264578063715018a614610298578063736c0d5b146102a25780637667c7f4146102d25780637ca548c61461030257610173565b80630121b93f1461017857806301efa643146101945780632a16cca4146101b057806332d30477146101e05780635f2b70cc1461021057806361f6f1b91461022c575b600080fd5b610192600480360381019061018d91906119bb565b6104d9565b005b6101ae60048036038101906101a991906119bb565b610683565b005b6101ca60048036038101906101c59190611a46565b610697565b6040516101d79190611aa1565b60405180910390f35b6101fa60048036038101906101f59190611abc565b61078b565b6040516102079190611af8565b60405180910390f35b61022a600480360381019061022591906119bb565b6107a3565b005b61024660048036038101906102419190611abc565b6107b7565b005b610262600480360381019061025d9190611abc565b610872565b005b61027e600480360381019061027991906119bb565b610886565b60405161028f959493929190611bbb565b60405180910390f35b6102a0610984565b005b6102bc60048036038101906102b79190611abc565b610998565b6040516102c99190611aa1565b60405180910390f35b6102ec60048036038101906102e79190611c15565b6109b8565b6040516102f99190611c55565b60405180910390f35b61030a610a06565b6040516103179190611af8565b60405180910390f35b610328610a0c565b6040516103359190611aa1565b60405180910390f35b61035860048036038101906103539190611da5565b610a1f565b005b610362610b09565b60405161036f9190611c55565b60405180910390f35b610392600480360381019061038d91906119bb565b610b32565b6040516103a496959493929190611f36565b60405180910390f35b6103c760048036038101906103c291906119bb565b610dc4565b6040516103d49190611aa1565b60405180910390f35b6103f760048036038101906103f29190611abc565b610de4565b005b610401610df8565b60405161040e9190611af8565b60405180910390f35b610431600480360381019061042c9190611fd1565b610dfe565b005b61043b610e23565b6040516104489190611c55565b60405180910390f35b610459610e49565b6040516104669190611af8565b60405180910390f35b61048960048036038101906104849190611abc565b610e4f565b6040516104969190611aa1565b60405180910390f35b6104b960048036038101906104b49190611abc565b610f5d565b005b6104c3610fe0565b6040516104d09190611af8565b60405180910390f35b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610565576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055c9061204a565b60405180910390fd5b600a60009054906101000a900460ff16156105b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ac906120b6565b60405180910390fd5b6105be81610fe6565b60006004600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506007600083815260200190815260200160002060009054906101000a900460ff1680156106705750600b60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561067f5761067e8161118f565b5b5050565b61068b611221565b6106948161129f565b50565b6000806005600084815260200190815260200160002080549050036106bf5760009050610785565b60005b600560008481526020019081526020016000208054905081101561077f578373ffffffffffffffffffffffffffffffffffffffff1660056000858152602001908152602001600020828154811061071c5761071b6120d6565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361076c576001915050610785565b808061077790612134565b9150506106c2565b50600090505b92915050565b60066020528060005260406000206000915090505481565b6107ab611221565b6107b481611308565b50565b6107bf611221565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361082e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610825906121c8565b60405180910390fd5b80600a60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61087a611221565b61088381611355565b50565b60046020528060005260406000206000915090508060000154908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600301549080600401805461090190612217565b80601f016020809104026020016040519081016040528092919081815260200182805461092d90612217565b801561097a5780601f1061094f5761010080835404028352916020019161097a565b820191906000526020600020905b81548152906001019060200180831161095d57829003601f168201915b5050505050905085565b61098c611221565b610996600061148e565b565b60086020528060005260406000206000915054906101000a900460ff1681565b600560205281600052604060002081815481106109d457600080fd5b906000526020600020016000915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b600a60009054906101000a900460ff1681565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610aab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa29061204a565b60405180910390fd5b600a60009054906101000a900460ff1615610afb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af2906120b6565b60405180910390fd5b610b058282611552565b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080606060008060606000600460008981526020019081526020016000206040518060a0016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160038201548152602001600482018054610c2c90612217565b80601f0160208091040260200160405190810160405280929190818152602001828054610c5890612217565b8015610ca55780601f10610c7a57610100808354040283529160200191610ca5565b820191906000526020600020905b815481529060010190602001808311610c8857829003601f168201915b50505050508152505090508060200151816040015182608001518360600151600560008d815260200190815260200160002080805480602002602001604051908101604052809291908181526020018280548015610d5857602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610d0e575b50505050509050809650819850829950839a50849b5050505050506007600089815260200190815260200160002060009054906101000a900460ff1615610da25760019250610dba565b42816060015111610db4576002610db7565b60005b92505b5091939550919395565b60076020528060005260406000206000915054906101000a900460ff1681565b610dec611221565b610df581611831565b50565b60025481565b610e06611221565b80600a60006101000a81548160ff02191690831515021790555050565b600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b6000600a60009054906101000a900460ff16610eb957600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050610f58565b600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f27ea3e2836040518263ffffffff1660e01b8152600401610f149190611c55565b602060405180830381865afa158015610f31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f55919061225d565b90505b919050565b610f65611221565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610fd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcb906122fc565b60405180910390fd5b610fdd8161148e565b50565b60035481565b4260046000838152602001908152602001600020600301541161103e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103590612368565b60405180910390fd5b6110483382610697565b15611088576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107f906123d4565b60405180910390fd5b60056000828152602001908152602001600020339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506002546005600083815260200190815260200160002080549050036111485760016007600083815260200190815260200160002060006101000a81548160ff0219169083151502179055505b3373ffffffffffffffffffffffffffffffffffffffff16817fbb62908d9b5227a7f81807cfb2651e7167dc90cf52f25cdbd8f232ea7cb7f9c360405160405180910390a350565b6001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fc1f99faf1d57ebb817abf7ba039f5a7a783c247ee5d5ec7ed817cd364d7f5c66816040516112169190611c55565b60405180910390a150565b611229611969565b73ffffffffffffffffffffffffffffffffffffffff16611247610b09565b73ffffffffffffffffffffffffffffffffffffffff161461129d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129490612440565b60405180910390fd5b565b600181101580156112b15750601f8111155b6112f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e7906124ac565b60405180910390fd5b62015180816112ff91906124cc565b60038190555050565b6001811161134b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134290612572565b60405180910390fd5b8060028190555050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156113dc5750600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61141b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611412906125de565b60405180910390fd5b6001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506009600081548092919061148690612134565b919050555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146115d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115cb9061264a565b60405180910390fd5b600160008154809291906115e790612134565b91905055506040518060a0016040528060015481526020018373ffffffffffffffffffffffffffffffffffffffff1681526020013373ffffffffffffffffffffffffffffffffffffffff16815260200160035442611645919061266a565b8152602001828152506004600060015481526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160030155608082015181600401908161171a919061286c565b50905050600560006001548152602001908152602001600020339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600154600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff166001547f27acc3b4f2cb7bc5bc2eef46a7eaa868a112ce5f3d938a15047033d8c0770a38848460405161182592919061293e565b60405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156118b75750600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6118f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ed906125de565b60405180910390fd5b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600960008154809291906119619061296e565b919050555050565b600033905090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b61199881611985565b81146119a357600080fd5b50565b6000813590506119b58161198f565b92915050565b6000602082840312156119d1576119d061197b565b5b60006119df848285016119a6565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611a13826119e8565b9050919050565b611a2381611a08565b8114611a2e57600080fd5b50565b600081359050611a4081611a1a565b92915050565b60008060408385031215611a5d57611a5c61197b565b5b6000611a6b85828601611a31565b9250506020611a7c858286016119a6565b9150509250929050565b60008115159050919050565b611a9b81611a86565b82525050565b6000602082019050611ab66000830184611a92565b92915050565b600060208284031215611ad257611ad161197b565b5b6000611ae084828501611a31565b91505092915050565b611af281611985565b82525050565b6000602082019050611b0d6000830184611ae9565b92915050565b611b1c81611a08565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611b5c578082015181840152602081019050611b41565b83811115611b6b576000848401525b50505050565b6000601f19601f8301169050919050565b6000611b8d82611b22565b611b978185611b2d565b9350611ba7818560208601611b3e565b611bb081611b71565b840191505092915050565b600060a082019050611bd06000830188611ae9565b611bdd6020830187611b13565b611bea6040830186611b13565b611bf76060830185611ae9565b8181036080830152611c098184611b82565b90509695505050505050565b60008060408385031215611c2c57611c2b61197b565b5b6000611c3a858286016119a6565b9250506020611c4b858286016119a6565b9150509250929050565b6000602082019050611c6a6000830184611b13565b92915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611cb282611b71565b810181811067ffffffffffffffff82111715611cd157611cd0611c7a565b5b80604052505050565b6000611ce4611971565b9050611cf08282611ca9565b919050565b600067ffffffffffffffff821115611d1057611d0f611c7a565b5b611d1982611b71565b9050602081019050919050565b82818337600083830152505050565b6000611d48611d4384611cf5565b611cda565b905082815260208101848484011115611d6457611d63611c75565b5b611d6f848285611d26565b509392505050565b600082601f830112611d8c57611d8b611c70565b5b8135611d9c848260208601611d35565b91505092915050565b60008060408385031215611dbc57611dbb61197b565b5b6000611dca85828601611a31565b925050602083013567ffffffffffffffff811115611deb57611dea611980565b5b611df785828601611d77565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60038110611e4157611e40611e01565b5b50565b6000819050611e5282611e30565b919050565b6000611e6282611e44565b9050919050565b611e7281611e57565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611ead81611a08565b82525050565b6000611ebf8383611ea4565b60208301905092915050565b6000602082019050919050565b6000611ee382611e78565b611eed8185611e83565b9350611ef883611e94565b8060005b83811015611f29578151611f108882611eb3565b9750611f1b83611ecb565b925050600181019050611efc565b5085935050505092915050565b600060c082019050611f4b6000830189611b13565b611f586020830188611b13565b8181036040830152611f6a8187611b82565b9050611f796060830186611ae9565b611f866080830185611e69565b81810360a0830152611f988184611ed8565b9050979650505050505050565b611fae81611a86565b8114611fb957600080fd5b50565b600081359050611fcb81611fa5565b92915050565b600060208284031215611fe757611fe661197b565b5b6000611ff584828501611fbc565b91505092915050565b7f6e6f742d617574686f72697a6564000000000000000000000000000000000000600082015250565b6000612034600e83611b2d565b915061203f82611ffe565b602082019050919050565b6000602082019050818103600083015261206381612027565b9050919050565b7f73746f7000000000000000000000000000000000000000000000000000000000600082015250565b60006120a0600483611b2d565b91506120ab8261206a565b602082019050919050565b600060208201905081810360008301526120cf81612093565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061213f82611985565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361217157612170612105565b5b600182019050919050565b7f6f72672063616e27742062652030000000000000000000000000000000000000600082015250565b60006121b2600e83611b2d565b91506121bd8261217c565b602082019050919050565b600060208201905081810360008301526121e1816121a5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061222f57607f821691505b602082108103612242576122416121e8565b5b50919050565b60008151905061225781611fa5565b92915050565b6000602082840312156122735761227261197b565b5b600061228184828501612248565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006122e6602683611b2d565b91506122f18261228a565b604082019050919050565b60006020820190508181036000830152612315816122d9565b9050919050565b7f70726f706f73616c206578707269726564000000000000000000000000000000600082015250565b6000612352601183611b2d565b915061235d8261231c565b602082019050919050565b6000602082019050818103600083015261238181612345565b9050919050565b7f63616c6c65722077617320617070726f76657264000000000000000000000000600082015250565b60006123be601483611b2d565b91506123c982612388565b602082019050919050565b600060208201905081810360008301526123ed816123b1565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061242a602083611b2d565b9150612435826123f4565b602082019050919050565b600060208201905081810360008301526124598161241d565b9050919050565b7f4572726f7220696e646174650000000000000000000000000000000000000000600082015250565b6000612496600c83611b2d565b91506124a182612460565b602082019050919050565b600060208201905081810360008301526124c581612489565b9050919050565b60006124d782611985565b91506124e283611985565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561251b5761251a612105565b5b828202905092915050565b7f4572726f72204c696e6500000000000000000000000000000000000000000000600082015250565b600061255c600a83611b2d565b915061256782612526565b602082019050919050565b6000602082019050818103600083015261258b8161254f565b9050919050565b7f417574683a206572726f72000000000000000000000000000000000000000000600082015250565b60006125c8600b83611b2d565b91506125d382612592565b602082019050919050565b600060208201905081810360008301526125f7816125bb565b9050919050565b7f70726f706f73616c206578697374730000000000000000000000000000000000600082015250565b6000612634600f83611b2d565b915061263f826125fe565b602082019050919050565b6000602082019050818103600083015261266381612627565b9050919050565b600061267582611985565b915061268083611985565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156126b5576126b4612105565b5b828201905092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026127227fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826126e5565b61272c86836126e5565b95508019841693508086168417925050509392505050565b6000819050919050565b600061276961276461275f84611985565b612744565b611985565b9050919050565b6000819050919050565b6127838361274e565b61279761278f82612770565b8484546126f2565b825550505050565b600090565b6127ac61279f565b6127b781848461277a565b505050565b5b818110156127db576127d06000826127a4565b6001810190506127bd565b5050565b601f821115612820576127f1816126c0565b6127fa846126d5565b81016020851015612809578190505b61281d612815856126d5565b8301826127bc565b50505b505050565b600082821c905092915050565b600061284360001984600802612825565b1980831691505092915050565b600061285c8383612832565b9150826002028217905092915050565b61287582611b22565b67ffffffffffffffff81111561288e5761288d611c7a565b5b6128988254612217565b6128a38282856127df565b600060209050601f8311600181146128d657600084156128c4578287015190505b6128ce8582612850565b865550612936565b601f1984166128e4866126c0565b60005b8281101561290c578489015182556001820191506020850194506020810190506128e7565b868310156129295784890151612925601f891682612832565b8355505b6001600288020188555050505b505050505050565b60006040820190506129536000830185611b13565b81810360208301526129658184611b82565b90509392505050565b600061297982611985565b91506000820361298c5761298b612105565b5b60018203905091905056fea2646970667358221220a20d83317929b6cc6b8bf66b4bdc43df5957c6c3cd2db387ad28659def77d48764736f6c634300080f0033000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000036287a7d6ee83903b6cfd048608e12d9c5ea0b25

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101735760003560e01c80638456cb59116100de578063b56b835311610097578063c1292cc311610071578063c1292cc314610451578063f27ea3e21461046f578063f2fde38b1461049f578063f326ab7a146104bb57610173565b8063b56b8353146103f9578063bedb86fb14610417578063c08d916e1461043357610173565b80638456cb5914610320578063858e7ce61461033e5780638da5cb5b1461035a57806392bb952e1461037857806396ca6062146103ad5780639c52a7f1146103dd57610173565b806365fae35e1161013057806365fae35e1461024857806370cd4beb14610264578063715018a614610298578063736c0d5b146102a25780637667c7f4146102d25780637ca548c61461030257610173565b80630121b93f1461017857806301efa643146101945780632a16cca4146101b057806332d30477146101e05780635f2b70cc1461021057806361f6f1b91461022c575b600080fd5b610192600480360381019061018d91906119bb565b6104d9565b005b6101ae60048036038101906101a991906119bb565b610683565b005b6101ca60048036038101906101c59190611a46565b610697565b6040516101d79190611aa1565b60405180910390f35b6101fa60048036038101906101f59190611abc565b61078b565b6040516102079190611af8565b60405180910390f35b61022a600480360381019061022591906119bb565b6107a3565b005b61024660048036038101906102419190611abc565b6107b7565b005b610262600480360381019061025d9190611abc565b610872565b005b61027e600480360381019061027991906119bb565b610886565b60405161028f959493929190611bbb565b60405180910390f35b6102a0610984565b005b6102bc60048036038101906102b79190611abc565b610998565b6040516102c99190611aa1565b60405180910390f35b6102ec60048036038101906102e79190611c15565b6109b8565b6040516102f99190611c55565b60405180910390f35b61030a610a06565b6040516103179190611af8565b60405180910390f35b610328610a0c565b6040516103359190611aa1565b60405180910390f35b61035860048036038101906103539190611da5565b610a1f565b005b610362610b09565b60405161036f9190611c55565b60405180910390f35b610392600480360381019061038d91906119bb565b610b32565b6040516103a496959493929190611f36565b60405180910390f35b6103c760048036038101906103c291906119bb565b610dc4565b6040516103d49190611aa1565b60405180910390f35b6103f760048036038101906103f29190611abc565b610de4565b005b610401610df8565b60405161040e9190611af8565b60405180910390f35b610431600480360381019061042c9190611fd1565b610dfe565b005b61043b610e23565b6040516104489190611c55565b60405180910390f35b610459610e49565b6040516104669190611af8565b60405180910390f35b61048960048036038101906104849190611abc565b610e4f565b6040516104969190611aa1565b60405180910390f35b6104b960048036038101906104b49190611abc565b610f5d565b005b6104c3610fe0565b6040516104d09190611af8565b60405180910390f35b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610565576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055c9061204a565b60405180910390fd5b600a60009054906101000a900460ff16156105b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ac906120b6565b60405180910390fd5b6105be81610fe6565b60006004600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506007600083815260200190815260200160002060009054906101000a900460ff1680156106705750600b60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561067f5761067e8161118f565b5b5050565b61068b611221565b6106948161129f565b50565b6000806005600084815260200190815260200160002080549050036106bf5760009050610785565b60005b600560008481526020019081526020016000208054905081101561077f578373ffffffffffffffffffffffffffffffffffffffff1660056000858152602001908152602001600020828154811061071c5761071b6120d6565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361076c576001915050610785565b808061077790612134565b9150506106c2565b50600090505b92915050565b60066020528060005260406000206000915090505481565b6107ab611221565b6107b481611308565b50565b6107bf611221565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361082e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610825906121c8565b60405180910390fd5b80600a60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61087a611221565b61088381611355565b50565b60046020528060005260406000206000915090508060000154908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600301549080600401805461090190612217565b80601f016020809104026020016040519081016040528092919081815260200182805461092d90612217565b801561097a5780601f1061094f5761010080835404028352916020019161097a565b820191906000526020600020905b81548152906001019060200180831161095d57829003601f168201915b5050505050905085565b61098c611221565b610996600061148e565b565b60086020528060005260406000206000915054906101000a900460ff1681565b600560205281600052604060002081815481106109d457600080fd5b906000526020600020016000915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b600a60009054906101000a900460ff1681565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610aab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa29061204a565b60405180910390fd5b600a60009054906101000a900460ff1615610afb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af2906120b6565b60405180910390fd5b610b058282611552565b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080606060008060606000600460008981526020019081526020016000206040518060a0016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160038201548152602001600482018054610c2c90612217565b80601f0160208091040260200160405190810160405280929190818152602001828054610c5890612217565b8015610ca55780601f10610c7a57610100808354040283529160200191610ca5565b820191906000526020600020905b815481529060010190602001808311610c8857829003601f168201915b50505050508152505090508060200151816040015182608001518360600151600560008d815260200190815260200160002080805480602002602001604051908101604052809291908181526020018280548015610d5857602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610d0e575b50505050509050809650819850829950839a50849b5050505050506007600089815260200190815260200160002060009054906101000a900460ff1615610da25760019250610dba565b42816060015111610db4576002610db7565b60005b92505b5091939550919395565b60076020528060005260406000206000915054906101000a900460ff1681565b610dec611221565b610df581611831565b50565b60025481565b610e06611221565b80600a60006101000a81548160ff02191690831515021790555050565b600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b6000600a60009054906101000a900460ff16610eb957600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050610f58565b600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f27ea3e2836040518263ffffffff1660e01b8152600401610f149190611c55565b602060405180830381865afa158015610f31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f55919061225d565b90505b919050565b610f65611221565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610fd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcb906122fc565b60405180910390fd5b610fdd8161148e565b50565b60035481565b4260046000838152602001908152602001600020600301541161103e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103590612368565b60405180910390fd5b6110483382610697565b15611088576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107f906123d4565b60405180910390fd5b60056000828152602001908152602001600020339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506002546005600083815260200190815260200160002080549050036111485760016007600083815260200190815260200160002060006101000a81548160ff0219169083151502179055505b3373ffffffffffffffffffffffffffffffffffffffff16817fbb62908d9b5227a7f81807cfb2651e7167dc90cf52f25cdbd8f232ea7cb7f9c360405160405180910390a350565b6001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fc1f99faf1d57ebb817abf7ba039f5a7a783c247ee5d5ec7ed817cd364d7f5c66816040516112169190611c55565b60405180910390a150565b611229611969565b73ffffffffffffffffffffffffffffffffffffffff16611247610b09565b73ffffffffffffffffffffffffffffffffffffffff161461129d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129490612440565b60405180910390fd5b565b600181101580156112b15750601f8111155b6112f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e7906124ac565b60405180910390fd5b62015180816112ff91906124cc565b60038190555050565b6001811161134b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134290612572565b60405180910390fd5b8060028190555050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156113dc5750600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61141b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611412906125de565b60405180910390fd5b6001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506009600081548092919061148690612134565b919050555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146115d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115cb9061264a565b60405180910390fd5b600160008154809291906115e790612134565b91905055506040518060a0016040528060015481526020018373ffffffffffffffffffffffffffffffffffffffff1681526020013373ffffffffffffffffffffffffffffffffffffffff16815260200160035442611645919061266a565b8152602001828152506004600060015481526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160030155608082015181600401908161171a919061286c565b50905050600560006001548152602001908152602001600020339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600154600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff166001547f27acc3b4f2cb7bc5bc2eef46a7eaa868a112ce5f3d938a15047033d8c0770a38848460405161182592919061293e565b60405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156118b75750600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6118f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ed906125de565b60405180910390fd5b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600960008154809291906119619061296e565b919050555050565b600033905090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b61199881611985565b81146119a357600080fd5b50565b6000813590506119b58161198f565b92915050565b6000602082840312156119d1576119d061197b565b5b60006119df848285016119a6565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611a13826119e8565b9050919050565b611a2381611a08565b8114611a2e57600080fd5b50565b600081359050611a4081611a1a565b92915050565b60008060408385031215611a5d57611a5c61197b565b5b6000611a6b85828601611a31565b9250506020611a7c858286016119a6565b9150509250929050565b60008115159050919050565b611a9b81611a86565b82525050565b6000602082019050611ab66000830184611a92565b92915050565b600060208284031215611ad257611ad161197b565b5b6000611ae084828501611a31565b91505092915050565b611af281611985565b82525050565b6000602082019050611b0d6000830184611ae9565b92915050565b611b1c81611a08565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611b5c578082015181840152602081019050611b41565b83811115611b6b576000848401525b50505050565b6000601f19601f8301169050919050565b6000611b8d82611b22565b611b978185611b2d565b9350611ba7818560208601611b3e565b611bb081611b71565b840191505092915050565b600060a082019050611bd06000830188611ae9565b611bdd6020830187611b13565b611bea6040830186611b13565b611bf76060830185611ae9565b8181036080830152611c098184611b82565b90509695505050505050565b60008060408385031215611c2c57611c2b61197b565b5b6000611c3a858286016119a6565b9250506020611c4b858286016119a6565b9150509250929050565b6000602082019050611c6a6000830184611b13565b92915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611cb282611b71565b810181811067ffffffffffffffff82111715611cd157611cd0611c7a565b5b80604052505050565b6000611ce4611971565b9050611cf08282611ca9565b919050565b600067ffffffffffffffff821115611d1057611d0f611c7a565b5b611d1982611b71565b9050602081019050919050565b82818337600083830152505050565b6000611d48611d4384611cf5565b611cda565b905082815260208101848484011115611d6457611d63611c75565b5b611d6f848285611d26565b509392505050565b600082601f830112611d8c57611d8b611c70565b5b8135611d9c848260208601611d35565b91505092915050565b60008060408385031215611dbc57611dbb61197b565b5b6000611dca85828601611a31565b925050602083013567ffffffffffffffff811115611deb57611dea611980565b5b611df785828601611d77565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60038110611e4157611e40611e01565b5b50565b6000819050611e5282611e30565b919050565b6000611e6282611e44565b9050919050565b611e7281611e57565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611ead81611a08565b82525050565b6000611ebf8383611ea4565b60208301905092915050565b6000602082019050919050565b6000611ee382611e78565b611eed8185611e83565b9350611ef883611e94565b8060005b83811015611f29578151611f108882611eb3565b9750611f1b83611ecb565b925050600181019050611efc565b5085935050505092915050565b600060c082019050611f4b6000830189611b13565b611f586020830188611b13565b8181036040830152611f6a8187611b82565b9050611f796060830186611ae9565b611f866080830185611e69565b81810360a0830152611f988184611ed8565b9050979650505050505050565b611fae81611a86565b8114611fb957600080fd5b50565b600081359050611fcb81611fa5565b92915050565b600060208284031215611fe757611fe661197b565b5b6000611ff584828501611fbc565b91505092915050565b7f6e6f742d617574686f72697a6564000000000000000000000000000000000000600082015250565b6000612034600e83611b2d565b915061203f82611ffe565b602082019050919050565b6000602082019050818103600083015261206381612027565b9050919050565b7f73746f7000000000000000000000000000000000000000000000000000000000600082015250565b60006120a0600483611b2d565b91506120ab8261206a565b602082019050919050565b600060208201905081810360008301526120cf81612093565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061213f82611985565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361217157612170612105565b5b600182019050919050565b7f6f72672063616e27742062652030000000000000000000000000000000000000600082015250565b60006121b2600e83611b2d565b91506121bd8261217c565b602082019050919050565b600060208201905081810360008301526121e1816121a5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061222f57607f821691505b602082108103612242576122416121e8565b5b50919050565b60008151905061225781611fa5565b92915050565b6000602082840312156122735761227261197b565b5b600061228184828501612248565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006122e6602683611b2d565b91506122f18261228a565b604082019050919050565b60006020820190508181036000830152612315816122d9565b9050919050565b7f70726f706f73616c206578707269726564000000000000000000000000000000600082015250565b6000612352601183611b2d565b915061235d8261231c565b602082019050919050565b6000602082019050818103600083015261238181612345565b9050919050565b7f63616c6c65722077617320617070726f76657264000000000000000000000000600082015250565b60006123be601483611b2d565b91506123c982612388565b602082019050919050565b600060208201905081810360008301526123ed816123b1565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061242a602083611b2d565b9150612435826123f4565b602082019050919050565b600060208201905081810360008301526124598161241d565b9050919050565b7f4572726f7220696e646174650000000000000000000000000000000000000000600082015250565b6000612496600c83611b2d565b91506124a182612460565b602082019050919050565b600060208201905081810360008301526124c581612489565b9050919050565b60006124d782611985565b91506124e283611985565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561251b5761251a612105565b5b828202905092915050565b7f4572726f72204c696e6500000000000000000000000000000000000000000000600082015250565b600061255c600a83611b2d565b915061256782612526565b602082019050919050565b6000602082019050818103600083015261258b8161254f565b9050919050565b7f417574683a206572726f72000000000000000000000000000000000000000000600082015250565b60006125c8600b83611b2d565b91506125d382612592565b602082019050919050565b600060208201905081810360008301526125f7816125bb565b9050919050565b7f70726f706f73616c206578697374730000000000000000000000000000000000600082015250565b6000612634600f83611b2d565b915061263f826125fe565b602082019050919050565b6000602082019050818103600083015261266381612627565b9050919050565b600061267582611985565b915061268083611985565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156126b5576126b4612105565b5b828201905092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026127227fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826126e5565b61272c86836126e5565b95508019841693508086168417925050509392505050565b6000819050919050565b600061276961276461275f84611985565b612744565b611985565b9050919050565b6000819050919050565b6127838361274e565b61279761278f82612770565b8484546126f2565b825550505050565b600090565b6127ac61279f565b6127b781848461277a565b505050565b5b818110156127db576127d06000826127a4565b6001810190506127bd565b5050565b601f821115612820576127f1816126c0565b6127fa846126d5565b81016020851015612809578190505b61281d612815856126d5565b8301826127bc565b50505b505050565b600082821c905092915050565b600061284360001984600802612825565b1980831691505092915050565b600061285c8383612832565b9150826002028217905092915050565b61287582611b22565b67ffffffffffffffff81111561288e5761288d611c7a565b5b6128988254612217565b6128a38282856127df565b600060209050601f8311600181146128d657600084156128c4578287015190505b6128ce8582612850565b865550612936565b601f1984166128e4866126c0565b60005b8281101561290c578489015182556001820191506020850194506020810190506128e7565b868310156129295784890151612925601f891682612832565b8355505b6001600288020188555050505b505050505050565b60006040820190506129536000830185611b13565b81810360208301526129658184611b82565b90509392505050565b600061297982611985565b91506000820361298c5761298b612105565b5b60018203905091905056fea2646970667358221220a20d83317929b6cc6b8bf66b4bdc43df5957c6c3cd2db387ad28659def77d48764736f6c634300080f0033

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

000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000036287a7d6ee83903b6cfd048608e12d9c5ea0b25

-----Decoded View---------------
Arg [0] : _line (uint256): 2
Arg [1] : _indate (uint256): 1
Arg [2] : _signers (address[]): 0x36287A7d6Ee83903B6cFD048608e12d9C5EA0b25

-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [4] : 00000000000000000000000036287a7d6ee83903b6cfd048608e12d9c5ea0b25


Deployed Bytecode Sourcemap

7178:1638:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8259:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7882:71;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6069:266;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4449:39;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7809:67;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7959:136;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7681:58;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4266:42;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;2776:103;;;:::i;:::-;;6718:40;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4356;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6765:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7237:17;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8103:148;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2128:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4815:491;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;4547:36;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7745:58;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4075:19;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7613:62;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7261:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3979:21;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8587:226;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3034:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4175:21;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8259:201;7113:7;:19;7121:10;7113:19;;;;;;;;;;;;;;;;;;;;;;;;;7105:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;8314:5:::1;;;;;;;;;;;8313:6;8305:23;;;;;;;;;;;;:::i;:::-;;;;;;;;;8339:9;8345:2;8339:5;:9::i;:::-;8360:13;8376:3;:7;8380:2;8376:7;;;;;;;;;;;:13;;;;;;;;;;;;8360:29;;8404:4;:8;8409:2;8404:8;;;;;;;;;;;;;;;;;;;;;:30;;;;;8417:10;:17;8428:5;8417:17;;;;;;;;;;;;;;;;;;;;;;;;;8416:18;8404:30;8400:53;;;8437:14;8445:5;8437:7;:14::i;:::-;8400:53;8294:166;8259:201:::0;:::o;7882:71::-;2014:13;:11;:13::i;:::-;7934:17:::1;7945:5;7934:10;:17::i;:::-;7882:71:::0;:::o;6069:266::-;6134:4;6173:1;6155:3;:7;6159:2;6155:7;;;;;;;;;;;:14;;;;:19;6151:40;;6184:5;6177:12;;;;6151:40;6206:9;6201:104;6223:3;:7;6227:2;6223:7;;;;;;;;;;;:14;;;;6219:1;:18;6201:104;;;6275:3;6261:17;;:3;:7;6265:2;6261:7;;;;;;;;;;;6269:1;6261:10;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:17;;;6258:36;;6288:4;6281:11;;;;;6258:36;6239:3;;;;;:::i;:::-;;;;6201:104;;;;6322:5;6315:12;;6069:266;;;;;:::o;4449:39::-;;;;;;;;;;;;;;;;;:::o;7809:67::-;2014:13;:11;:13::i;:::-;7859:15:::1;7868:5;7859:8;:15::i;:::-;7809:67:::0;:::o;7959:136::-;2014:13;:11;:13::i;:::-;8042:1:::1;8027:17;;:3;:17;;::::0;8019:44:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;8084:3;8074:7;;:13;;;;;;;;;;;;;;;;;;7959:136:::0;:::o;7681:58::-;2014:13;:11;:13::i;:::-;7727:10:::1;7733:3;7727:5;:10::i;:::-;7681:58:::0;:::o;4266:42::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2776:103::-;2014:13;:11;:13::i;:::-;2841:30:::1;2868:1;2841:18;:30::i;:::-;2776:103::o:0;6718:40::-;;;;;;;;;;;;;;;;;;;;;;:::o;4356:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6765:26::-;;;;:::o;7237:17::-;;;;;;;;;;;;;:::o;8103:148::-;7113:7;:19;7121:10;7113:19;;;;;;;;;;;;;;;;;;;;;;;;;7105:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;8192:5:::1;;;;;;;;;;;8191:6;8183:23;;;;;;;;;;;;:::i;:::-;;;;;;;;;8217:26;8231:5;8238:4;8217:13;:26::i;:::-;8103:148:::0;;:::o;2128:87::-;2174:7;2201:6;;;;;;;;;;;2194:13;;2128:87;:::o;4815:491::-;4871:13;4886:14;4902:18;4922:14;4938:13;4953:26;4991:21;5015:3;:7;5019:2;5015:7;;;;;;;;;;;4991:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5077:2;:8;;;5087:2;:9;;;5098:2;:7;;;5107:2;:9;;;5118:3;:7;5122:2;5118:7;;;;;;;;;;;5033:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5141:4;:8;5146:2;5141:8;;;;;;;;;;;;;;;;;;;;;5137:162;;;5174:13;5165:22;;5137:162;;;5240:15;5228:2;:9;;;:27;:59;;5274:13;5228:59;;;5258:13;5228:59;5219:68;;5137:162;4980:326;4815:491;;;;;;;:::o;4547:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;7745:58::-;2014:13;:11;:13::i;:::-;7791:10:::1;7797:3;7791:5;:10::i;:::-;7745:58:::0;:::o;4075:19::-;;;;:::o;7613:62::-;2014:13;:11;:13::i;:::-;7669:4:::1;7661:5;;:12;;;;;;;;;;;;;;;;;;7613:62:::0;:::o;7261:22::-;;;;;;;;;;;;;:::o;3979:21::-;;;;:::o;8587:226::-;8652:4;8673:5;;;;;;;;;;;8668:138;;8702:10;:17;8713:5;8702:17;;;;;;;;;;;;;;;;;;;;;;;;;8695:24;;;;8668:138;8767:7;;;;;;;;;;;8759:28;;;8788:5;8759:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8752:42;;8587:226;;;;:::o;3034:201::-;2014:13;:11;:13::i;:::-;3143:1:::1;3123:22;;:8;:22;;::::0;3115:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3199:28;3218:8;3199:18;:28::i;:::-;3034:201:::0;:::o;4175:21::-;;;;:::o;6343:348::-;6415:15;6398:3;:7;6402:2;6398:7;;;;;;;;;;;:14;;;:32;6390:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;6472:26;6483:10;6495:2;6472:10;:26::i;:::-;6471:27;6463:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;6536:3;:7;6540:2;6536:7;;;;;;;;;;;6549:10;6536:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6593:4;;6575:3;:7;6579:2;6575:7;;;;;;;;;;;:14;;;;:22;6571:67;;6622:4;6613;:8;6618:2;6613:8;;;;;;;;;;;;:13;;;;;;;;;;;;;;;;;;6571:67;6672:10;6655:28;;6668:2;6655:28;;;;;;;;;;6343:348;:::o;8468:111::-;8538:4;8519:10;:17;8530:5;8519:17;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;8558:13;8565:5;8558:13;;;;;;:::i;:::-;;;;;;;;8468:111;:::o;2293:132::-;2368:12;:10;:12::i;:::-;2357:23;;:7;:5;:7::i;:::-;:23;;;2349:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2293:132::o;5438:156::-;5514:1;5503:7;:12;;:29;;;;;5530:2;5519:7;:13;;5503:29;5495:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;5580:6;5570:7;:16;;;;:::i;:::-;5561:6;:25;;;;5438:156;:::o;5314:116::-;5383:1;5375:5;:9;5367:32;;;;;;;;;;;;:::i;:::-;;;;;;;;;5417:5;5410:4;:12;;;;5314:116;:::o;6798:135::-;6860:1;6845:17;;:3;:17;;;;:34;;;;;6867:7;:12;6875:3;6867:12;;;;;;;;;;;;;;;;;;;;;;;;;6866:13;6845:34;6837:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;6912:4;6897:7;:12;6905:3;6897:12;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;6918:11;;:13;;;;;;;;;:::i;:::-;;;;;;6798:135;:::o;3395:191::-;3469:16;3488:6;;;;;;;;;;;3469:25;;3514:8;3505:6;;:17;;;;;;;;;;;;;;;;;;3569:8;3538:40;;3559:8;3538:40;;;;;;;;;;;;3458:128;3395:191;:::o;5602:459::-;5706:1;5690:4;:12;5695:6;5690:12;;;;;;;;;;;;;;;;:17;5682:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;5738:6;;:8;;;;;;;;;:::i;:::-;;;;;;5769:148;;;;;;;;5795:6;;5769:148;;;;5816:6;5769:148;;;;;;5837:10;5769:148;;;;;;5880:6;;5862:15;:24;;;;:::i;:::-;5769:148;;;;5901:5;5769:148;;;5757:3;:11;5761:6;;5757:11;;;;;;;;;;;:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;5930:3;:11;5934:6;;5930:11;;;;;;;;;;;5947:10;5930:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5982:6;;5969:4;:12;5974:6;5969:12;;;;;;;;;;;;;;;:19;;;;6027:10;6006:47;;6019:6;;6006:47;6039:6;6047:5;6006:47;;;;;;;:::i;:::-;;;;;;;;5602:459;;:::o;6939:135::-;7001:1;6986:17;;:3;:17;;;;:33;;;;;7007:7;:12;7015:3;7007:12;;;;;;;;;;;;;;;;;;;;;;;;;6986:33;6978:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;7052:5;7037:7;:12;7045:3;7037:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;7059:11;;:13;;;;;;;;;:::i;:::-;;;;;;6939:135;:::o;679:98::-;732:7;759:10;752:17;;679:98;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:126::-;1062:7;1102:42;1095:5;1091:54;1080:65;;1025:126;;;:::o;1157:96::-;1194:7;1223:24;1241:5;1223:24;:::i;:::-;1212:35;;1157:96;;;:::o;1259:122::-;1332:24;1350:5;1332:24;:::i;:::-;1325:5;1322:35;1312:63;;1371:1;1368;1361:12;1312:63;1259:122;:::o;1387:139::-;1433:5;1471:6;1458:20;1449:29;;1487:33;1514:5;1487:33;:::i;:::-;1387:139;;;;:::o;1532:474::-;1600:6;1608;1657:2;1645:9;1636:7;1632:23;1628:32;1625:119;;;1663:79;;:::i;:::-;1625:119;1783:1;1808:53;1853:7;1844:6;1833:9;1829:22;1808:53;:::i;:::-;1798:63;;1754:117;1910:2;1936:53;1981:7;1972:6;1961:9;1957:22;1936:53;:::i;:::-;1926:63;;1881:118;1532:474;;;;;:::o;2012:90::-;2046:7;2089:5;2082:13;2075:21;2064:32;;2012:90;;;:::o;2108:109::-;2189:21;2204:5;2189:21;:::i;:::-;2184:3;2177:34;2108:109;;:::o;2223:210::-;2310:4;2348:2;2337:9;2333:18;2325:26;;2361:65;2423:1;2412:9;2408:17;2399:6;2361:65;:::i;:::-;2223:210;;;;:::o;2439:329::-;2498:6;2547:2;2535:9;2526:7;2522:23;2518:32;2515:119;;;2553:79;;:::i;:::-;2515:119;2673:1;2698:53;2743:7;2734:6;2723:9;2719:22;2698:53;:::i;:::-;2688:63;;2644:117;2439:329;;;;:::o;2774:118::-;2861:24;2879:5;2861:24;:::i;:::-;2856:3;2849:37;2774:118;;:::o;2898:222::-;2991:4;3029:2;3018:9;3014:18;3006:26;;3042:71;3110:1;3099:9;3095:17;3086:6;3042:71;:::i;:::-;2898:222;;;;:::o;3126:118::-;3213:24;3231:5;3213:24;:::i;:::-;3208:3;3201:37;3126:118;;:::o;3250:99::-;3302:6;3336:5;3330:12;3320:22;;3250:99;;;:::o;3355:169::-;3439:11;3473:6;3468:3;3461:19;3513:4;3508:3;3504:14;3489:29;;3355:169;;;;:::o;3530:307::-;3598:1;3608:113;3622:6;3619:1;3616:13;3608:113;;;3707:1;3702:3;3698:11;3692:18;3688:1;3683:3;3679:11;3672:39;3644:2;3641:1;3637:10;3632:15;;3608:113;;;3739:6;3736:1;3733:13;3730:101;;;3819:1;3810:6;3805:3;3801:16;3794:27;3730:101;3579:258;3530:307;;;:::o;3843:102::-;3884:6;3935:2;3931:7;3926:2;3919:5;3915:14;3911:28;3901:38;;3843:102;;;:::o;3951:364::-;4039:3;4067:39;4100:5;4067:39;:::i;:::-;4122:71;4186:6;4181:3;4122:71;:::i;:::-;4115:78;;4202:52;4247:6;4242:3;4235:4;4228:5;4224:16;4202:52;:::i;:::-;4279:29;4301:6;4279:29;:::i;:::-;4274:3;4270:39;4263:46;;4043:272;3951:364;;;;:::o;4321:755::-;4546:4;4584:3;4573:9;4569:19;4561:27;;4598:71;4666:1;4655:9;4651:17;4642:6;4598:71;:::i;:::-;4679:72;4747:2;4736:9;4732:18;4723:6;4679:72;:::i;:::-;4761;4829:2;4818:9;4814:18;4805:6;4761:72;:::i;:::-;4843;4911:2;4900:9;4896:18;4887:6;4843:72;:::i;:::-;4963:9;4957:4;4953:20;4947:3;4936:9;4932:19;4925:49;4991:78;5064:4;5055:6;4991:78;:::i;:::-;4983:86;;4321:755;;;;;;;;:::o;5082:474::-;5150:6;5158;5207:2;5195:9;5186:7;5182:23;5178:32;5175:119;;;5213:79;;:::i;:::-;5175:119;5333:1;5358:53;5403:7;5394:6;5383:9;5379:22;5358:53;:::i;:::-;5348:63;;5304:117;5460:2;5486:53;5531:7;5522:6;5511:9;5507:22;5486:53;:::i;:::-;5476:63;;5431:118;5082:474;;;;;:::o;5562:222::-;5655:4;5693:2;5682:9;5678:18;5670:26;;5706:71;5774:1;5763:9;5759:17;5750:6;5706:71;:::i;:::-;5562:222;;;;:::o;5790:117::-;5899:1;5896;5889:12;5913:117;6022:1;6019;6012:12;6036:180;6084:77;6081:1;6074:88;6181:4;6178:1;6171:15;6205:4;6202:1;6195:15;6222:281;6305:27;6327:4;6305:27;:::i;:::-;6297:6;6293:40;6435:6;6423:10;6420:22;6399:18;6387:10;6384:34;6381:62;6378:88;;;6446:18;;:::i;:::-;6378:88;6486:10;6482:2;6475:22;6265:238;6222:281;;:::o;6509:129::-;6543:6;6570:20;;:::i;:::-;6560:30;;6599:33;6627:4;6619:6;6599:33;:::i;:::-;6509:129;;;:::o;6644:308::-;6706:4;6796:18;6788:6;6785:30;6782:56;;;6818:18;;:::i;:::-;6782:56;6856:29;6878:6;6856:29;:::i;:::-;6848:37;;6940:4;6934;6930:15;6922:23;;6644:308;;;:::o;6958:154::-;7042:6;7037:3;7032;7019:30;7104:1;7095:6;7090:3;7086:16;7079:27;6958:154;;;:::o;7118:412::-;7196:5;7221:66;7237:49;7279:6;7237:49;:::i;:::-;7221:66;:::i;:::-;7212:75;;7310:6;7303:5;7296:21;7348:4;7341:5;7337:16;7386:3;7377:6;7372:3;7368:16;7365:25;7362:112;;;7393:79;;:::i;:::-;7362:112;7483:41;7517:6;7512:3;7507;7483:41;:::i;:::-;7202:328;7118:412;;;;;:::o;7550:340::-;7606:5;7655:3;7648:4;7640:6;7636:17;7632:27;7622:122;;7663:79;;:::i;:::-;7622:122;7780:6;7767:20;7805:79;7880:3;7872:6;7865:4;7857:6;7853:17;7805:79;:::i;:::-;7796:88;;7612:278;7550:340;;;;:::o;7896:654::-;7974:6;7982;8031:2;8019:9;8010:7;8006:23;8002:32;7999:119;;;8037:79;;:::i;:::-;7999:119;8157:1;8182:53;8227:7;8218:6;8207:9;8203:22;8182:53;:::i;:::-;8172:63;;8128:117;8312:2;8301:9;8297:18;8284:32;8343:18;8335:6;8332:30;8329:117;;;8365:79;;:::i;:::-;8329:117;8470:63;8525:7;8516:6;8505:9;8501:22;8470:63;:::i;:::-;8460:73;;8255:288;7896:654;;;;;:::o;8556:180::-;8604:77;8601:1;8594:88;8701:4;8698:1;8691:15;8725:4;8722:1;8715:15;8742:115;8825:1;8818:5;8815:12;8805:46;;8831:18;;:::i;:::-;8805:46;8742:115;:::o;8863:131::-;8910:7;8939:5;8928:16;;8945:43;8982:5;8945:43;:::i;:::-;8863:131;;;:::o;9000:::-;9058:9;9091:34;9119:5;9091:34;:::i;:::-;9078:47;;9000:131;;;:::o;9137:147::-;9232:45;9271:5;9232:45;:::i;:::-;9227:3;9220:58;9137:147;;:::o;9290:114::-;9357:6;9391:5;9385:12;9375:22;;9290:114;;;:::o;9410:184::-;9509:11;9543:6;9538:3;9531:19;9583:4;9578:3;9574:14;9559:29;;9410:184;;;;:::o;9600:132::-;9667:4;9690:3;9682:11;;9720:4;9715:3;9711:14;9703:22;;9600:132;;;:::o;9738:108::-;9815:24;9833:5;9815:24;:::i;:::-;9810:3;9803:37;9738:108;;:::o;9852:179::-;9921:10;9942:46;9984:3;9976:6;9942:46;:::i;:::-;10020:4;10015:3;10011:14;9997:28;;9852:179;;;;:::o;10037:113::-;10107:4;10139;10134:3;10130:14;10122:22;;10037:113;;;:::o;10186:732::-;10305:3;10334:54;10382:5;10334:54;:::i;:::-;10404:86;10483:6;10478:3;10404:86;:::i;:::-;10397:93;;10514:56;10564:5;10514:56;:::i;:::-;10593:7;10624:1;10609:284;10634:6;10631:1;10628:13;10609:284;;;10710:6;10704:13;10737:63;10796:3;10781:13;10737:63;:::i;:::-;10730:70;;10823:60;10876:6;10823:60;:::i;:::-;10813:70;;10669:224;10656:1;10653;10649:9;10644:14;;10609:284;;;10613:14;10909:3;10902:10;;10310:608;;;10186:732;;;;:::o;10924:1033::-;11235:4;11273:3;11262:9;11258:19;11250:27;;11287:71;11355:1;11344:9;11340:17;11331:6;11287:71;:::i;:::-;11368:72;11436:2;11425:9;11421:18;11412:6;11368:72;:::i;:::-;11487:9;11481:4;11477:20;11472:2;11461:9;11457:18;11450:48;11515:78;11588:4;11579:6;11515:78;:::i;:::-;11507:86;;11603:72;11671:2;11660:9;11656:18;11647:6;11603:72;:::i;:::-;11685:81;11761:3;11750:9;11746:19;11737:6;11685:81;:::i;:::-;11814:9;11808:4;11804:20;11798:3;11787:9;11783:19;11776:49;11842:108;11945:4;11936:6;11842:108;:::i;:::-;11834:116;;10924:1033;;;;;;;;;:::o;11963:116::-;12033:21;12048:5;12033:21;:::i;:::-;12026:5;12023:32;12013:60;;12069:1;12066;12059:12;12013:60;11963:116;:::o;12085:133::-;12128:5;12166:6;12153:20;12144:29;;12182:30;12206:5;12182:30;:::i;:::-;12085:133;;;;:::o;12224:323::-;12280:6;12329:2;12317:9;12308:7;12304:23;12300:32;12297:119;;;12335:79;;:::i;:::-;12297:119;12455:1;12480:50;12522:7;12513:6;12502:9;12498:22;12480:50;:::i;:::-;12470:60;;12426:114;12224:323;;;;:::o;12553:164::-;12693:16;12689:1;12681:6;12677:14;12670:40;12553:164;:::o;12723:366::-;12865:3;12886:67;12950:2;12945:3;12886:67;:::i;:::-;12879:74;;12962:93;13051:3;12962:93;:::i;:::-;13080:2;13075:3;13071:12;13064:19;;12723:366;;;:::o;13095:419::-;13261:4;13299:2;13288:9;13284:18;13276:26;;13348:9;13342:4;13338:20;13334:1;13323:9;13319:17;13312:47;13376:131;13502:4;13376:131;:::i;:::-;13368:139;;13095:419;;;:::o;13520:154::-;13660:6;13656:1;13648:6;13644:14;13637:30;13520:154;:::o;13680:365::-;13822:3;13843:66;13907:1;13902:3;13843:66;:::i;:::-;13836:73;;13918:93;14007:3;13918:93;:::i;:::-;14036:2;14031:3;14027:12;14020:19;;13680:365;;;:::o;14051:419::-;14217:4;14255:2;14244:9;14240:18;14232:26;;14304:9;14298:4;14294:20;14290:1;14279:9;14275:17;14268:47;14332:131;14458:4;14332:131;:::i;:::-;14324:139;;14051:419;;;:::o;14476:180::-;14524:77;14521:1;14514:88;14621:4;14618:1;14611:15;14645:4;14642:1;14635:15;14662:180;14710:77;14707:1;14700:88;14807:4;14804:1;14797:15;14831:4;14828:1;14821:15;14848:233;14887:3;14910:24;14928:5;14910:24;:::i;:::-;14901:33;;14956:66;14949:5;14946:77;14943:103;;15026:18;;:::i;:::-;14943:103;15073:1;15066:5;15062:13;15055:20;;14848:233;;;:::o;15087:164::-;15227:16;15223:1;15215:6;15211:14;15204:40;15087:164;:::o;15257:366::-;15399:3;15420:67;15484:2;15479:3;15420:67;:::i;:::-;15413:74;;15496:93;15585:3;15496:93;:::i;:::-;15614:2;15609:3;15605:12;15598:19;;15257:366;;;:::o;15629:419::-;15795:4;15833:2;15822:9;15818:18;15810:26;;15882:9;15876:4;15872:20;15868:1;15857:9;15853:17;15846:47;15910:131;16036:4;15910:131;:::i;:::-;15902:139;;15629:419;;;:::o;16054:180::-;16102:77;16099:1;16092:88;16199:4;16196:1;16189:15;16223:4;16220:1;16213:15;16240:320;16284:6;16321:1;16315:4;16311:12;16301:22;;16368:1;16362:4;16358:12;16389:18;16379:81;;16445:4;16437:6;16433:17;16423:27;;16379:81;16507:2;16499:6;16496:14;16476:18;16473:38;16470:84;;16526:18;;:::i;:::-;16470:84;16291:269;16240:320;;;:::o;16566:137::-;16620:5;16651:6;16645:13;16636:22;;16667:30;16691:5;16667:30;:::i;:::-;16566:137;;;;:::o;16709:345::-;16776:6;16825:2;16813:9;16804:7;16800:23;16796:32;16793:119;;;16831:79;;:::i;:::-;16793:119;16951:1;16976:61;17029:7;17020:6;17009:9;17005:22;16976:61;:::i;:::-;16966:71;;16922:125;16709:345;;;;:::o;17060:225::-;17200:34;17196:1;17188:6;17184:14;17177:58;17269:8;17264:2;17256:6;17252:15;17245:33;17060:225;:::o;17291:366::-;17433:3;17454:67;17518:2;17513:3;17454:67;:::i;:::-;17447:74;;17530:93;17619:3;17530:93;:::i;:::-;17648:2;17643:3;17639:12;17632:19;;17291:366;;;:::o;17663:419::-;17829:4;17867:2;17856:9;17852:18;17844:26;;17916:9;17910:4;17906:20;17902:1;17891:9;17887:17;17880:47;17944:131;18070:4;17944:131;:::i;:::-;17936:139;;17663:419;;;:::o;18088:167::-;18228:19;18224:1;18216:6;18212:14;18205:43;18088:167;:::o;18261:366::-;18403:3;18424:67;18488:2;18483:3;18424:67;:::i;:::-;18417:74;;18500:93;18589:3;18500:93;:::i;:::-;18618:2;18613:3;18609:12;18602:19;;18261:366;;;:::o;18633:419::-;18799:4;18837:2;18826:9;18822:18;18814:26;;18886:9;18880:4;18876:20;18872:1;18861:9;18857:17;18850:47;18914:131;19040:4;18914:131;:::i;:::-;18906:139;;18633:419;;;:::o;19058:170::-;19198:22;19194:1;19186:6;19182:14;19175:46;19058:170;:::o;19234:366::-;19376:3;19397:67;19461:2;19456:3;19397:67;:::i;:::-;19390:74;;19473:93;19562:3;19473:93;:::i;:::-;19591:2;19586:3;19582:12;19575:19;;19234:366;;;:::o;19606:419::-;19772:4;19810:2;19799:9;19795:18;19787:26;;19859:9;19853:4;19849:20;19845:1;19834:9;19830:17;19823:47;19887:131;20013:4;19887:131;:::i;:::-;19879:139;;19606:419;;;:::o;20031:182::-;20171:34;20167:1;20159:6;20155:14;20148:58;20031:182;:::o;20219:366::-;20361:3;20382:67;20446:2;20441:3;20382:67;:::i;:::-;20375:74;;20458:93;20547:3;20458:93;:::i;:::-;20576:2;20571:3;20567:12;20560:19;;20219:366;;;:::o;20591:419::-;20757:4;20795:2;20784:9;20780:18;20772:26;;20844:9;20838:4;20834:20;20830:1;20819:9;20815:17;20808:47;20872:131;20998:4;20872:131;:::i;:::-;20864:139;;20591:419;;;:::o;21016:162::-;21156:14;21152:1;21144:6;21140:14;21133:38;21016:162;:::o;21184:366::-;21326:3;21347:67;21411:2;21406:3;21347:67;:::i;:::-;21340:74;;21423:93;21512:3;21423:93;:::i;:::-;21541:2;21536:3;21532:12;21525:19;;21184:366;;;:::o;21556:419::-;21722:4;21760:2;21749:9;21745:18;21737:26;;21809:9;21803:4;21799:20;21795:1;21784:9;21780:17;21773:47;21837:131;21963:4;21837:131;:::i;:::-;21829:139;;21556:419;;;:::o;21981:348::-;22021:7;22044:20;22062:1;22044:20;:::i;:::-;22039:25;;22078:20;22096:1;22078:20;:::i;:::-;22073:25;;22266:1;22198:66;22194:74;22191:1;22188:81;22183:1;22176:9;22169:17;22165:105;22162:131;;;22273:18;;:::i;:::-;22162:131;22321:1;22318;22314:9;22303:20;;21981:348;;;;:::o;22335:160::-;22475:12;22471:1;22463:6;22459:14;22452:36;22335:160;:::o;22501:366::-;22643:3;22664:67;22728:2;22723:3;22664:67;:::i;:::-;22657:74;;22740:93;22829:3;22740:93;:::i;:::-;22858:2;22853:3;22849:12;22842:19;;22501:366;;;:::o;22873:419::-;23039:4;23077:2;23066:9;23062:18;23054:26;;23126:9;23120:4;23116:20;23112:1;23101:9;23097:17;23090:47;23154:131;23280:4;23154:131;:::i;:::-;23146:139;;22873:419;;;:::o;23298:161::-;23438:13;23434:1;23426:6;23422:14;23415:37;23298:161;:::o;23465:366::-;23607:3;23628:67;23692:2;23687:3;23628:67;:::i;:::-;23621:74;;23704:93;23793:3;23704:93;:::i;:::-;23822:2;23817:3;23813:12;23806:19;;23465:366;;;:::o;23837:419::-;24003:4;24041:2;24030:9;24026:18;24018:26;;24090:9;24084:4;24080:20;24076:1;24065:9;24061:17;24054:47;24118:131;24244:4;24118:131;:::i;:::-;24110:139;;23837:419;;;:::o;24262:165::-;24402:17;24398:1;24390:6;24386:14;24379:41;24262:165;:::o;24433:366::-;24575:3;24596:67;24660:2;24655:3;24596:67;:::i;:::-;24589:74;;24672:93;24761:3;24672:93;:::i;:::-;24790:2;24785:3;24781:12;24774:19;;24433:366;;;:::o;24805:419::-;24971:4;25009:2;24998:9;24994:18;24986:26;;25058:9;25052:4;25048:20;25044:1;25033:9;25029:17;25022:47;25086:131;25212:4;25086:131;:::i;:::-;25078:139;;24805:419;;;:::o;25230:305::-;25270:3;25289:20;25307:1;25289:20;:::i;:::-;25284:25;;25323:20;25341:1;25323:20;:::i;:::-;25318:25;;25477:1;25409:66;25405:74;25402:1;25399:81;25396:107;;;25483:18;;:::i;:::-;25396:107;25527:1;25524;25520:9;25513:16;;25230:305;;;;:::o;25541:141::-;25590:4;25613:3;25605:11;;25636:3;25633:1;25626:14;25670:4;25667:1;25657:18;25649:26;;25541:141;;;:::o;25688:93::-;25725:6;25772:2;25767;25760:5;25756:14;25752:23;25742:33;;25688:93;;;:::o;25787:107::-;25831:8;25881:5;25875:4;25871:16;25850:37;;25787:107;;;;:::o;25900:393::-;25969:6;26019:1;26007:10;26003:18;26042:97;26072:66;26061:9;26042:97;:::i;:::-;26160:39;26190:8;26179:9;26160:39;:::i;:::-;26148:51;;26232:4;26228:9;26221:5;26217:21;26208:30;;26281:4;26271:8;26267:19;26260:5;26257:30;26247:40;;25976:317;;25900:393;;;;;:::o;26299:60::-;26327:3;26348:5;26341:12;;26299:60;;;:::o;26365:142::-;26415:9;26448:53;26466:34;26475:24;26493:5;26475:24;:::i;:::-;26466:34;:::i;:::-;26448:53;:::i;:::-;26435:66;;26365:142;;;:::o;26513:75::-;26556:3;26577:5;26570:12;;26513:75;;;:::o;26594:269::-;26704:39;26735:7;26704:39;:::i;:::-;26765:91;26814:41;26838:16;26814:41;:::i;:::-;26806:6;26799:4;26793:11;26765:91;:::i;:::-;26759:4;26752:105;26670:193;26594:269;;;:::o;26869:73::-;26914:3;26869:73;:::o;26948:189::-;27025:32;;:::i;:::-;27066:65;27124:6;27116;27110:4;27066:65;:::i;:::-;27001:136;26948:189;;:::o;27143:186::-;27203:120;27220:3;27213:5;27210:14;27203:120;;;27274:39;27311:1;27304:5;27274:39;:::i;:::-;27247:1;27240:5;27236:13;27227:22;;27203:120;;;27143:186;;:::o;27335:543::-;27436:2;27431:3;27428:11;27425:446;;;27470:38;27502:5;27470:38;:::i;:::-;27554:29;27572:10;27554:29;:::i;:::-;27544:8;27540:44;27737:2;27725:10;27722:18;27719:49;;;27758:8;27743:23;;27719:49;27781:80;27837:22;27855:3;27837:22;:::i;:::-;27827:8;27823:37;27810:11;27781:80;:::i;:::-;27440:431;;27425:446;27335:543;;;:::o;27884:117::-;27938:8;27988:5;27982:4;27978:16;27957:37;;27884:117;;;;:::o;28007:169::-;28051:6;28084:51;28132:1;28128:6;28120:5;28117:1;28113:13;28084:51;:::i;:::-;28080:56;28165:4;28159;28155:15;28145:25;;28058:118;28007:169;;;;:::o;28181:295::-;28257:4;28403:29;28428:3;28422:4;28403:29;:::i;:::-;28395:37;;28465:3;28462:1;28458:11;28452:4;28449:21;28441:29;;28181:295;;;;:::o;28481:1395::-;28598:37;28631:3;28598:37;:::i;:::-;28700:18;28692:6;28689:30;28686:56;;;28722:18;;:::i;:::-;28686:56;28766:38;28798:4;28792:11;28766:38;:::i;:::-;28851:67;28911:6;28903;28897:4;28851:67;:::i;:::-;28945:1;28969:4;28956:17;;29001:2;28993:6;28990:14;29018:1;29013:618;;;;29675:1;29692:6;29689:77;;;29741:9;29736:3;29732:19;29726:26;29717:35;;29689:77;29792:67;29852:6;29845:5;29792:67;:::i;:::-;29786:4;29779:81;29648:222;28983:887;;29013:618;29065:4;29061:9;29053:6;29049:22;29099:37;29131:4;29099:37;:::i;:::-;29158:1;29172:208;29186:7;29183:1;29180:14;29172:208;;;29265:9;29260:3;29256:19;29250:26;29242:6;29235:42;29316:1;29308:6;29304:14;29294:24;;29363:2;29352:9;29348:18;29335:31;;29209:4;29206:1;29202:12;29197:17;;29172:208;;;29408:6;29399:7;29396:19;29393:179;;;29466:9;29461:3;29457:19;29451:26;29509:48;29551:4;29543:6;29539:17;29528:9;29509:48;:::i;:::-;29501:6;29494:64;29416:156;29393:179;29618:1;29614;29606:6;29602:14;29598:22;29592:4;29585:36;29020:611;;;28983:887;;28573:1303;;;28481:1395;;:::o;29882:423::-;30023:4;30061:2;30050:9;30046:18;30038:26;;30074:71;30142:1;30131:9;30127:17;30118:6;30074:71;:::i;:::-;30192:9;30186:4;30182:20;30177:2;30166:9;30162:18;30155:48;30220:78;30293:4;30284:6;30220:78;:::i;:::-;30212:86;;29882:423;;;;;:::o;30311:171::-;30350:3;30373:24;30391:5;30373:24;:::i;:::-;30364:33;;30419:4;30412:5;30409:15;30406:41;;30427:18;;:::i;:::-;30406:41;30474:1;30467:5;30463:13;30456:20;;30311:171;;;:::o

Swarm Source

ipfs://a20d83317929b6cc6b8bf66b4bdc43df5957c6c3cd2db387ad28659def77d487

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  ]

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.