ETH Price: $2,686.05 (+1.76%)

Contract

0x1723488F2495d6D95fB04346c6670A817d9D4296
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Terminate113785182020-12-03 8:18:281531 days ago1606983508IN
0x1723488F...17d9D4296
0 ETH0.0138073230
Terminate113764482020-12-03 0:49:081531 days ago1606956548IN
0x1723488F...17d9D4296
0 ETH0.0152171533
Terminate113739912020-12-02 15:50:161531 days ago1606924216IN
0x1723488F...17d9D4296
0 ETH0.0137679135
Terminate113739812020-12-02 15:47:391531 days ago1606924059IN
0x1723488F...17d9D4296
0 ETH0.0087810844
Terminate113739632020-12-02 15:44:171531 days ago1606923857IN
0x1723488F...17d9D4296
0 ETH0.0068871437.00000218
Terminate113739592020-12-02 15:43:041531 days ago1606923784IN
0x1723488F...17d9D4296
0 ETH0.0068871437.00000218
Terminate113739452020-12-02 15:39:301531 days ago1606923570IN
0x1723488F...17d9D4296
0 ETH0.0131145427.00000218
Accept113673252020-12-01 14:54:341532 days ago1606834474IN
0x1723488F...17d9D4296
0 ETH0.01254693110

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block
From
To
113673172020-12-01 14:53:041532 days ago1606834384  Contract Creation0 ETH
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x59876C7a...de0FA6952
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
MVDFunctionalityProposal

Compiler Version
v0.6.8+commit.0bbfe453

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 1 of 5: MVDFunctionalityProposal.sol
pragma solidity ^0.6.0;

import "./IMVDFunctionalityProposal.sol";
import "./IMVDProxy.sol";
import "./IERC20.sol";

contract MVDFunctionalityProposal is IMVDFunctionalityProposal{

    bool private _collateralDataSet;

    address private _proxy;
    address private _token;
    string private _codeName;
    bool private _emergency;
    address private _sourceLocation;
    uint256 private _sourceLocationId;
    address private _location;
    bool private _submitable;
    string private _methodSignature;
    string private _returnAbiParametersArray;
    bool private _isInternal;
    bool private _needsSender;
    string private _replaces;
    uint256 private _surveyEndBlock;
    uint256 private _surveyDuration;
    bool private _terminated;
    address private _proposer;
    bool private _disabled;

    mapping(address => uint256) private _accept;
    mapping(address => uint256) private _refuse;
    uint256 private _totalAccept;
    uint256 private _totalRefuse;
    mapping(address => bool) private _withdrawed;

    uint256 private _votesHardCap;
    bool private _votesHardCapReached;

    constructor(string memory codeName, address location, string memory methodSignature, string memory returnAbiParametersArray,
        string memory replaces, address proxy) public {
        init(codeName, location, methodSignature, returnAbiParametersArray, replaces, proxy);
    }

    function init(string memory codeName, address location, string memory methodSignature, string memory returnAbiParametersArray,
        string memory replaces, address proxy) public override {
        require(_proxy == address(0), "Already initialized!");
        _token = IMVDProxy(_proxy = proxy).getToken();
        _codeName = codeName;
        _location = location;
        _methodSignature = methodSignature;
        _returnAbiParametersArray = returnAbiParametersArray;
        _replaces = replaces;
    }

    function setCollateralData(bool emergency, address sourceLocation, uint256 sourceLocationId, bool submitable, bool isInternal, bool needsSender, address proposer, uint256 votesHardCap) public override {
        require(!_collateralDataSet, "setCollateralData already called!");
        require(_proxy == msg.sender, "Only Original Proxy can call this method!");
        _sourceLocation = sourceLocation;
        _sourceLocationId = sourceLocationId;
        _submitable = submitable;
        _isInternal = isInternal;
        _needsSender = needsSender;
        _proposer = proposer;
        _surveyDuration = toUint256(IMVDProxy(_proxy).read((_emergency = emergency) ? "getMinimumBlockNumberForEmergencySurvey" : "getMinimumBlockNumberForSurvey", bytes("")));
        _votesHardCap = votesHardCap;
        _collateralDataSet = true;
    }

    function getProxy() public override view returns(address) {
        return _proxy;
    }

    function getCodeName() public override view returns(string memory) {
        return _codeName;
    }

    function isEmergency() public override view returns(bool) {
        return _emergency;
    }

    function getSourceLocation() public override view returns(address) {
        return _sourceLocation;
    }

    function getSourceLocationId() public override view returns(uint256) {
        return _sourceLocationId;
    }

    function getLocation() public override view returns(address) {
        return _location;
    }

    function isSubmitable() public override view returns(bool) {
        return _submitable;
    }

    function getMethodSignature() public override view returns(string memory) {
        return _methodSignature;
    }

    function getReturnAbiParametersArray() public override view returns(string memory) {
        return _returnAbiParametersArray;
    }

    function isInternal() public override view returns(bool) {
        return _isInternal;
    }

    function needsSender() public override view returns(bool) {
        return _needsSender;
    }

    function getReplaces() public override view returns(string memory) {
        return _replaces;
    }

    function getProposer() public override view returns(address) {
        return _proposer;
    }

    function getSurveyEndBlock() public override view returns(uint256) {
        return _surveyEndBlock;
    }

    function getSurveyDuration() public override view returns(uint256) {
        return _surveyDuration;
    }

    function getVote(address addr) public override view returns(uint256 accept, uint256 refuse) {
        accept = _accept[addr];
        refuse = _refuse[addr];
    }

    function getVotes() public override view returns(uint256, uint256) {
        return (_totalAccept, _totalRefuse);
    }

    function isTerminated() public override view returns(bool) {
        return _terminated;
    }

    function isDisabled() public override view returns(bool) {
        return _disabled;
    }

    function isVotesHardCapReached() public override view returns(bool) {
        return _votesHardCapReached;
    }

    function getVotesHardCapToReach() public override view returns(uint256) {
        return _votesHardCap;
    }

    function start() public override {
        require(_collateralDataSet, "Still waiting for setCollateralData to be called!");
        require(msg.sender == _proxy, "Only Proxy can call this function!");
        require(_surveyEndBlock == 0, "Already started!");
        require(!_disabled, "Already disabled!");
        _surveyEndBlock = block.number + _surveyDuration;
    }

    function disable() public override {
        require(_collateralDataSet, "Still waiting for setCollateralData to be called!");
        require(msg.sender == _proxy, "Only Proxy can call this function!");
        require(_surveyEndBlock == 0, "Already started!");
        _disabled = true;
        _terminated = true;
    }

    function toJSON() public override view returns(string memory) {
        return string(abi.encodePacked(
            '{',
            getFirstJSONPart(_sourceLocation, _sourceLocationId, _location),
            '","submitable":',
            _submitable ? "true" : "false",
            ',"emergency":',
            _emergency ? "true" : "false",
            ',"isInternal":',
            _isInternal ? "true" : "false",
            ',"needsSender":',
            _needsSender ? "true" : "false",
            ',',
            getSecondJSONPart(),
            ',"proposer":"',
            toString(_proposer),
            '","endBlock":',
            toString(_surveyEndBlock),
            ',"terminated":',
            _terminated ? "true" : "false",
            ',"accepted":',
            toString(_totalAccept),
            ',"refused":',
            toString(_totalRefuse),
            ',"disabled":',
            _disabled ? 'true' : 'false',
            '}')
        );
    }

    function getSecondJSONPart() private view returns (string memory){
        return string(abi.encodePacked(
            '"codeName":"',
            _codeName,
            '","methodSignature":"',
            _methodSignature,
            '","returnAbiParametersArray":',
            formatReturnAbiParametersArray(_returnAbiParametersArray),
            ',"replaces":"',
            _replaces,
            '"'));
    }

    modifier duringSurvey() {
        require(_collateralDataSet, "Still waiting for setCollateralData to be called!");
        require(!_disabled, "Survey disabled!");
        require(!_terminated, "Survey Terminated!");
        require(!_votesHardCapReached, "Votes Hard Cap reached!");
        require(_surveyEndBlock > 0, "Survey Not Started!");
        require(block.number < _surveyEndBlock, "Survey ended!");
        _;
    }

    modifier onSurveyEnd() {
        require(_collateralDataSet, "Still waiting for setCollateralData to be called!");
        require(!_disabled, "Survey disabled!");
        require(_surveyEndBlock > 0, "Survey Not Started!");
        if(!_votesHardCapReached) {
            require(block.number >= _surveyEndBlock, "Survey is still running!");
        }
        _;
    }

    function _checkVotesHardCap() private {
        if(_votesHardCap == 0 || (_totalAccept < _votesHardCap && _totalRefuse < _votesHardCap)) {
            return;
        }
        _votesHardCapReached = true;
        terminate();
    }

    function accept(uint256 amount) external override duringSurvey {
        IERC20(_token).transferFrom(msg.sender, address(this), amount);
        uint256 vote = _accept[msg.sender];
        vote += amount;
        _accept[msg.sender] = vote;
        _totalAccept += amount;
        emit Accept(msg.sender, amount);
        _checkVotesHardCap();
    }

    function retireAccept(uint256 amount) external override duringSurvey {
        require(_accept[msg.sender] >= amount, "Insufficient funds!");
        IERC20(_token).transfer(msg.sender, amount);
        uint256 vote = _accept[msg.sender];
        vote -= amount;
        _accept[msg.sender] = vote;
        _totalAccept -= amount;
        emit RetireAccept(msg.sender, amount);
    }

    function moveToAccept(uint256 amount) external override duringSurvey {
        require(_refuse[msg.sender] >= amount, "Insufficient funds!");
        uint256 vote = _refuse[msg.sender];
        vote -= amount;
        _refuse[msg.sender] = vote;
        _totalRefuse -= amount;

        vote = _accept[msg.sender];
        vote += amount;
        _accept[msg.sender] = vote;
        _totalAccept += amount;
        emit MoveToAccept(msg.sender, amount);
        _checkVotesHardCap();
    }

    function refuse(uint256 amount) external override duringSurvey {
        IERC20(_token).transferFrom(msg.sender, address(this), amount);
        uint256 vote = _refuse[msg.sender];
        vote += amount;
        _refuse[msg.sender] = vote;
        _totalRefuse += amount;
        emit Refuse(msg.sender, amount);
        _checkVotesHardCap();
    }

    function retireRefuse(uint256 amount) external override duringSurvey {
        require(_refuse[msg.sender] >= amount, "Insufficient funds!");
        IERC20(_token).transfer(msg.sender, amount);
        uint256 vote = _refuse[msg.sender];
        vote -= amount;
        _refuse[msg.sender] = vote;
        _totalRefuse -= amount;
        emit RetireRefuse(msg.sender, amount);
    }

    function moveToRefuse(uint256 amount) external override duringSurvey {
        require(_accept[msg.sender] >= amount, "Insufficient funds!");
        uint256 vote = _accept[msg.sender];
        vote -= amount;
        _accept[msg.sender] = vote;
        _totalAccept -= amount;

        vote = _refuse[msg.sender];
        vote += amount;
        _refuse[msg.sender] = vote;
        _totalRefuse += amount;
        emit MoveToRefuse(msg.sender, amount);
        _checkVotesHardCap();
    }

    function retireAll() external override duringSurvey {
        require(_accept[msg.sender] + _refuse[msg.sender] > 0, "No votes!");
        uint256 acpt = _accept[msg.sender];
        uint256 rfs = _refuse[msg.sender];
        IERC20(_token).transfer(msg.sender, acpt + rfs);
        _accept[msg.sender] = 0;
        _refuse[msg.sender] = 0;
        _totalAccept -= acpt;
        _totalRefuse -= rfs;
        emit RetireAll(msg.sender, acpt + rfs);
    }

    function withdraw() external override onSurveyEnd {
        if(!_terminated && !_disabled) {
            terminate();
            return;
        }
        _withdraw(true);
    }

    function terminate() public override onSurveyEnd {
        require(!_terminated, "Already terminated!");
        IMVDProxy(_proxy).setProposal();
        _withdraw(false);
    }

    function _withdraw(bool launchError) private {
        require(!launchError || _accept[msg.sender] + _refuse[msg.sender] > 0, "Nothing to Withdraw!");
        require(!launchError || !_withdrawed[msg.sender], "Already Withdrawed!");
        if(_accept[msg.sender] + _refuse[msg.sender] > 0 && !_withdrawed[msg.sender]) {
            IERC20(_token).transfer(msg.sender, _accept[msg.sender] + _refuse[msg.sender]);
            _withdrawed[msg.sender] = true;
        }
    }

    function set() public override onSurveyEnd {
        require(msg.sender == _proxy, "Unauthorized Access!");
        require(!_terminated, "Already terminated!");
        _terminated = true;
    }

    function toUint256(bytes memory bs) public pure returns(uint256 x) {
        if(bs.length >= 32) {
            assembly {
                x := mload(add(bs, add(0x20, 0)))
            }
        }
    }

    function toString(address _addr) public pure returns(string memory) {
        bytes32 value = bytes32(uint256(_addr));
        bytes memory alphabet = "0123456789abcdef";

        bytes memory str = new bytes(42);
        str[0] = '0';
        str[1] = 'x';
        for (uint i = 0; i < 20; i++) {
            str[2+i*2] = alphabet[uint(uint8(value[i + 12] >> 4))];
            str[3+i*2] = alphabet[uint(uint8(value[i + 12] & 0x0f))];
        }
        return string(str);
    }

    function toString(uint _i) public pure returns(string memory) {
        if (_i == 0) {
            return "0";
        }
        uint j = _i;
        uint len;
        while (j != 0) {
            len++;
            j /= 10;
        }
        bytes memory bstr = new bytes(len);
        uint k = len - 1;
        while (_i != 0) {
            bstr[k--] = byte(uint8(48 + _i % 10));
            _i /= 10;
        }
        return string(bstr);
    }

    function getFirstJSONPart(address sourceLocation, uint256 sourceLocationId, address location) public pure returns(bytes memory) {
        return abi.encodePacked(
            '"sourceLocation":"',
            toString(sourceLocation),
            '","sourceLocationId":',
            toString(sourceLocationId),
            ',"location":"',
            toString(location)
        );
    }

    function formatReturnAbiParametersArray(string memory m) public pure returns(string memory) {
        bytes memory b = bytes(m);
        if(b.length < 2) {
            return "[]";
        }
        if(b[0] != bytes1("[")) {
            return "[]";
        }
        if(b[b.length - 1] != bytes1("]")) {
            return "[]";
        }
        return m;
    }
}

File 2 of 5: IERC20.sol
pragma solidity ^0.6.0;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

File 3 of 5: IMVDFunctionalitiesManager.sol
pragma solidity ^0.6.0;

interface IMVDFunctionalitiesManager {

    function getProxy() external view returns (address);
    function setProxy() external;

    function init(address sourceLocation,
        uint256 getMinimumBlockNumberSourceLocationId, address getMinimumBlockNumberFunctionalityAddress,
        uint256 getEmergencyMinimumBlockNumberSourceLocationId, address getEmergencyMinimumBlockNumberFunctionalityAddress,
        uint256 getEmergencySurveyStakingSourceLocationId, address getEmergencySurveyStakingFunctionalityAddress,
        uint256 checkVoteResultSourceLocationId, address checkVoteResultFunctionalityAddress) external;

    function addFunctionality(string calldata codeName, address sourceLocation, uint256 sourceLocationId, address location, bool submitable, string calldata methodSignature, string calldata returnAbiParametersArray, bool isInternal, bool needsSender) external;
    function addFunctionality(string calldata codeName, address sourceLocation, uint256 sourceLocationId, address location, bool submitable, string calldata methodSignature, string calldata returnAbiParametersArray, bool isInternal, bool needsSender, uint256 position) external;
    function removeFunctionality(string calldata codeName) external returns(bool removed, uint256 position);
    function isValidFunctionality(address functionality) external view returns(bool);
    function isAuthorizedFunctionality(address functionality) external view returns(bool);
    function setCallingContext(address location) external returns(bool);
    function clearCallingContext() external;
    function getFunctionalityData(string calldata codeName) external view returns(address, uint256, string memory, address, uint256);
    function hasFunctionality(string calldata codeName) external view returns(bool);
    function getFunctionalitiesAmount() external view returns(uint256);
    function functionalitiesToJSON() external view returns(string memory);
    function functionalitiesToJSON(uint256 start, uint256 l) external view returns(string memory functionsJSONArray);
    function functionalityNames() external view returns(string memory);
    function functionalityNames(uint256 start, uint256 l) external view returns(string memory functionsJSONArray);
    function functionalityToJSON(string calldata codeName) external view returns(string memory);

    function preConditionCheck(string calldata codeName, bytes calldata data, uint8 submitable, address sender, uint256 value) external view returns(address location, bytes memory payload);

    function setupFunctionality(address proposalAddress) external returns (bool);
}

File 4 of 5: IMVDFunctionalityProposal.sol
pragma solidity ^0.6.0;

interface IMVDFunctionalityProposal {

    function init(string calldata codeName, address location, string calldata methodSignature, string calldata returnAbiParametersArray, string calldata replaces, address proxy) external;
    function setCollateralData(bool emergency, address sourceLocation, uint256 sourceLocationId, bool submitable, bool isInternal, bool needsSender, address proposer, uint256 votesHardCap) external;

    function getProxy() external view returns(address);
    function getCodeName() external view returns(string memory);
    function isEmergency() external view returns(bool);
    function getSourceLocation() external view returns(address);
    function getSourceLocationId() external view returns(uint256);
    function getLocation() external view returns(address);
    function isSubmitable() external view returns(bool);
    function getMethodSignature() external view returns(string memory);
    function getReturnAbiParametersArray() external view returns(string memory);
    function isInternal() external view returns(bool);
    function needsSender() external view returns(bool);
    function getReplaces() external view returns(string memory);
    function getProposer() external view returns(address);
    function getSurveyEndBlock() external view returns(uint256);
    function getSurveyDuration() external view returns(uint256);
    function isVotesHardCapReached() external view returns(bool);
    function getVotesHardCapToReach() external view returns(uint256);
    function toJSON() external view returns(string memory);
    function getVote(address addr) external view returns(uint256 accept, uint256 refuse);
    function getVotes() external view returns(uint256, uint256);
    function start() external;
    function disable() external;
    function isDisabled() external view returns(bool);
    function isTerminated() external view returns(bool);
    function accept(uint256 amount) external;
    function retireAccept(uint256 amount) external;
    function moveToAccept(uint256 amount) external;
    function refuse(uint256 amount) external;
    function retireRefuse(uint256 amount) external;
    function moveToRefuse(uint256 amount) external;
    function retireAll() external;
    function withdraw() external;
    function terminate() external;
    function set() external;

    event Accept(address indexed voter, uint256 amount);
    event RetireAccept(address indexed voter, uint256 amount);
    event MoveToAccept(address indexed voter, uint256 amount);
    event Refuse(address indexed voter, uint256 amount);
    event RetireRefuse(address indexed voter, uint256 amount);
    event MoveToRefuse(address indexed voter, uint256 amount);
    event RetireAll(address indexed voter, uint256 amount);
}

File 5 of 5: IMVDProxy.sol
pragma solidity ^0.6.0;

interface IMVDProxy {

    function init(address votingTokenAddress, address functionalityProposalManagerAddress, address stateHolderAddress, address functionalityModelsManagerAddress, address functionalitiesManagerAddress, address walletAddress) external;

    function getDelegates() external view returns(address,address,address,address,address,address);
    function getToken() external view returns(address);
    function getMVDFunctionalityProposalManagerAddress() external view returns(address);
    function getStateHolderAddress() external view returns(address);
    function getMVDFunctionalityModelsManagerAddress() external view returns(address);
    function getMVDFunctionalitiesManagerAddress() external view returns(address);
    function getMVDWalletAddress() external view returns(address);
    function setDelegate(uint256 position, address newAddress) external returns(address oldAddress);
    function changeProxy(address newAddress, bytes calldata initPayload) external;
    function isValidProposal(address proposal) external view returns (bool);
    function isAuthorizedFunctionality(address functionality) external view returns(bool);
    function newProposal(string calldata codeName, bool emergency, address sourceLocation, uint256 sourceLocationId, address location, bool submitable, string calldata methodSignature, string calldata returnParametersJSONArray, bool isInternal, bool needsSender, string calldata replaces) external returns(address proposalAddress);
    function startProposal(address proposalAddress) external;
    function disableProposal(address proposalAddress) external;
    function transfer(address receiver, uint256 value, address token) external;
    function transfer721(address receiver, uint256 tokenId, bytes calldata data, bool safe, address token) external;
    function setProposal() external;
    function read(string calldata codeName, bytes calldata data) external view returns(bytes memory returnData);
    function submit(string calldata codeName, bytes calldata data) external payable returns(bytes memory returnData);
    function callFromManager(address location, bytes calldata payload) external returns(bool, bytes memory);
    function emitFromManager(string calldata codeName, address proposal, string calldata replaced, address replacedSourceLocation, uint256 replacedSourceLocationId, address location, bool submitable, string calldata methodSignature, bool isInternal, bool needsSender, address proposalAddress) external;

    function emitEvent(string calldata eventSignature, bytes calldata firstIndex, bytes calldata secondIndex, bytes calldata data) external;

    event ProxyChanged(address indexed newAddress);
    event DelegateChanged(uint256 position, address indexed oldAddress, address indexed newAddress);

    event Proposal(address proposal);
    event ProposalCheck(address indexed proposal);
    event ProposalSet(address indexed proposal, bool success);
    event FunctionalitySet(string codeName, address indexed proposal, string replaced, address replacedSourceLocation, uint256 replacedSourceLocationId, address indexed replacedLocation, bool replacedWasSubmitable, string replacedMethodSignature, bool replacedWasInternal, bool replacedNeededSender, address indexed replacedProposal);

    event Event(string indexed key, bytes32 indexed firstIndex, bytes32 indexed secondIndex, bytes data);
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"codeName","type":"string"},{"internalType":"address","name":"location","type":"address"},{"internalType":"string","name":"methodSignature","type":"string"},{"internalType":"string","name":"returnAbiParametersArray","type":"string"},{"internalType":"string","name":"replaces","type":"string"},{"internalType":"address","name":"proxy","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Accept","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"MoveToAccept","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"MoveToRefuse","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Refuse","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RetireAccept","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RetireAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RetireRefuse","type":"event"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"accept","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"m","type":"string"}],"name":"formatReturnAbiParametersArray","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCodeName","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sourceLocation","type":"address"},{"internalType":"uint256","name":"sourceLocationId","type":"uint256"},{"internalType":"address","name":"location","type":"address"}],"name":"getFirstJSONPart","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getLocation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMethodSignature","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getProposer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getProxy","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getReplaces","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getReturnAbiParametersArray","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSourceLocation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSourceLocationId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSurveyDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSurveyEndBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"getVote","outputs":[{"internalType":"uint256","name":"accept","type":"uint256"},{"internalType":"uint256","name":"refuse","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getVotesHardCapToReach","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"codeName","type":"string"},{"internalType":"address","name":"location","type":"address"},{"internalType":"string","name":"methodSignature","type":"string"},{"internalType":"string","name":"returnAbiParametersArray","type":"string"},{"internalType":"string","name":"replaces","type":"string"},{"internalType":"address","name":"proxy","type":"address"}],"name":"init","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isDisabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isEmergency","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isInternal","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isSubmitable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isTerminated","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isVotesHardCapReached","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"moveToAccept","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"moveToRefuse","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"needsSender","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"refuse","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"retireAccept","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"retireAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"retireRefuse","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"set","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"emergency","type":"bool"},{"internalType":"address","name":"sourceLocation","type":"address"},{"internalType":"uint256","name":"sourceLocationId","type":"uint256"},{"internalType":"bool","name":"submitable","type":"bool"},{"internalType":"bool","name":"isInternal","type":"bool"},{"internalType":"bool","name":"needsSender","type":"bool"},{"internalType":"address","name":"proposer","type":"address"},{"internalType":"uint256","name":"votesHardCap","type":"uint256"}],"name":"setCollateralData","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"start","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"terminate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"toJSON","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"toString","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_i","type":"uint256"}],"name":"toString","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"bs","type":"bytes"}],"name":"toUint256","outputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106102535760003560e01c806366844c7e11610146578063b8e010de116100c3578063d1cc997611610087578063d1cc9976146108e9578063e9790d02146108f1578063eb3464a1146108f9578063eba3aa4214610916578063ef0e99a71461091e578063f48f489e1461093b57610253565b8063b8e010de14610825578063b9c33b261461082d578063bd37c8aa14610835578063be9a6555146108d9578063ce2ce3fc146108e157610253565b80638fc38e0b1161010a5780638fc38e0b146107cc578063933a9ce8146107d4578063a60a07b2146107f8578063aa1cc2e914610815578063b23d26521461081d57610253565b806366844c7e146107075780636900a3ae146107245780636c57f5a9146107415780638d06bc5b146107495780638d337b81146107a657610253565b80633ccfd60b116101d457806355d92ae31161019857806355d92ae31461061057806356ca623e146106185780635ad3c9311461063e5780635f9e8f82146106e257806366698389146106ea57610253565b80633ccfd60b146105d65780633e1b421d146105de5780633fa4d9ca146105e65780634398037c14610600578063485e2d9e1461060857610253565b806316375cb31161021b57806316375cb31461056b57806316e29d711461057357806319b05f491461057b5780632c394d99146105985780632f2770db146105ce57610253565b806304f181b7146102585780630c08bf88146102d55780630dc96015146102df57806314ebd7831461030057806315db404e1461054f575b600080fd5b610260610943565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029a578181015183820152602001610282565b50505050905090810190601f1680156102c75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102dd6109da565b005b6102e7610bd0565b6040805192835260208301919091528051918290030190f35b6102dd600480360360c081101561031657600080fd5b810190602081018135600160201b81111561033057600080fd5b82018360208201111561034257600080fd5b803590602001918460018302840111600160201b8311171561036357600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092956001600160a01b03853516959094909350604081019250602001359050600160201b8111156103c657600080fd5b8201836020820111156103d857600080fd5b803590602001918460018302840111600160201b831117156103f957600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561044b57600080fd5b82018360208201111561045d57600080fd5b803590602001918460018302840111600160201b8311171561047e57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b8111156104d057600080fd5b8201836020820111156104e257600080fd5b803590602001918460018302840111600160201b8311171561050357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550505090356001600160a01b03169150610bda9050565b610557610d50565b604080519115158252519081900360200190f35b610260610d59565b61055761144c565b6102dd6004803603602081101561059157600080fd5b5035611455565b610260600480360360608110156105ae57600080fd5b506001600160a01b038135811691602081013591604090910135166116ee565b6102dd611863565b6102dd611958565b610260611ac5565b6105ee611b26565b60408051918252519081900360200190f35b610260611b2c565b6105ee611b8a565b610557611b90565b6102606004803603602081101561062e57600080fd5b50356001600160a01b0316611ba0565b6102606004803603602081101561065457600080fd5b810190602081018135600160201b81111561066e57600080fd5b82018360208201111561068057600080fd5b803590602001918460018302840111600160201b831117156106a157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611d1e945050505050565b610557611df1565b6102dd6004803603602081101561070057600080fd5b5035611dfa565b6102dd6004803603602081101561071d57600080fd5b503561207a565b6102606004803603602081101561073a57600080fd5b50356122fa565b6105576123c9565b6102dd600480360361010081101561076057600080fd5b5080351515906001600160a01b0360208201358116916040810135916060820135151591608081013515159160a082013515159160c08101359091169060e001356123d9565b6102e7600480360360208110156107bc57600080fd5b50356001600160a01b0316612763565b6105ee61278b565b6107dc612791565b604080516001600160a01b039092168252519081900360200190f35b6102dd6004803603602081101561080e57600080fd5b50356127a5565b6105ee612a3a565b610557612a40565b6102dd612a4e565b6107dc612c3a565b6105ee6004803603602081101561084b57600080fd5b810190602081018135600160201b81111561086557600080fd5b82018360208201111561087757600080fd5b803590602001918460018302840111600160201b8311171561089857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550612c4e945050505050565b6102dd612c61565b6107dc612d95565b610557612da4565b6107dc612dad565b6102dd6004803603602081101561090f57600080fd5b5035612dc1565b6102dd6130a8565b6102dd6004803603602081101561093457600080fd5b50356133b8565b61026061369f565b60078054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156109cf5780601f106109a4576101008083540402835291602001916109cf565b820191906000526020600020905b8154815290600101906020018083116109b257829003601f168201915b505050505090505b90565b60005460ff16610a1b5760405162461bcd60e51b8152600401808060200182810382526031815260200180613cc56031913960400191505060405180910390fd5b600c54600160a81b900460ff1615610a6d576040805162461bcd60e51b815260206004820152601060248201526f5375727665792064697361626c65642160801b604482015290519081900360640190fd5b6000600a5411610ab2576040805162461bcd60e51b81526020600482015260136024820152600080516020613cf6833981519152604482015290519081900360640190fd5b60135460ff16610b0e57600a54431015610b0e576040805162461bcd60e51b8152602060048201526018602482015277537572766579206973207374696c6c2072756e6e696e672160401b604482015290519081900360640190fd5b600c5460ff1615610b5c576040805162461bcd60e51b8152602060048201526013602482015272416c7265616479207465726d696e617465642160681b604482015290519081900360640190fd5b600060019054906101000a90046001600160a01b03166001600160a01b0316632a7434a86040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610bac57600080fd5b505af1158015610bc0573d6000803e3d6000fd5b50505050610bce6000613700565b565b600f546010549091565b60005461010090046001600160a01b031615610c34576040805162461bcd60e51b8152602060048201526014602482015273416c726561647920696e697469616c697a65642160601b604482015290519081900360640190fd5b80600060016101000a8154816001600160a01b0302191690836001600160a01b0316021790556001600160a01b03166321df0da76040518163ffffffff1660e01b815260040160206040518083038186803b158015610c9257600080fd5b505afa158015610ca6573d6000803e3d6000fd5b505050506040513d6020811015610cbc57600080fd5b5051600180546001600160a01b0319166001600160a01b039092169190911790558551610cf0906002906020890190613b9a565b50600580546001600160a01b0319166001600160a01b0387161790558351610d1f906006906020870190613b9a565b508251610d33906007906020860190613b9a565b508151610d47906009906020850190613b9a565b50505050505050565b60135460ff1690565b600354600454600554606092610d81926101009091046001600160a01b0390811692166116ee565b600554600160a01b900460ff16610db5576040518060400160405280600581526020016466616c736560d81b815250610dd3565b604051806040016040528060048152602001637472756560e01b8152505b60035460ff16610e00576040518060400160405280600581526020016466616c736560d81b815250610e1e565b604051806040016040528060048152602001637472756560e01b8152505b60085460ff16610e4b576040518060400160405280600581526020016466616c736560d81b815250610e69565b604051806040016040528060048152602001637472756560e01b8152505b600854610100900460ff16610e9b576040518060400160405280600581526020016466616c736560d81b815250610eb9565b604051806040016040528060048152602001637472756560e01b8152505b610ec16138c6565b600c54610edb9061010090046001600160a01b0316611ba0565b610ee6600a546122fa565b600c5460ff16610f13576040518060400160405280600581526020016466616c736560d81b815250610f31565b604051806040016040528060048152602001637472756560e01b8152505b610f3c600f546122fa565b610f476010546122fa565b600c54600160a81b900460ff16610f7b576040518060400160405280600581526020016466616c736560d81b815250610f99565b604051806040016040528060048152602001637472756560e01b8152505b6040516020018080607b60f81b8152506001018d805190602001908083835b60208310610fd75780518252601f199092019160209182019101610fb8565b51815160209384036101000a60001901801990921691161790526e11161139bab136b4ba30b13632911d60891b919093019081528e51600f909101928f0191508083835b6020831061103a5780518252601f19909201916020918201910161101b565b51815160209384036101000a60001901801990921691161790526c161132b6b2b933b2b731bc911d60991b919093019081528d51600d909101928e0191508083835b6020831061109b5780518252601f19909201916020918201910161107c565b51815160209384036101000a60001901801990921691161790526d161134b9a4b73a32b93730b6111d60911b919093019081528c51600e909101928d0191508083835b602083106110fd5780518252601f1990920191602091820191016110de565b51815160209384036101000a60001901801990921691161790526e16113732b2b239a9b2b73232b9111d60891b919093019081528b51600f909101928c0191508083835b602083106111605780518252601f199092019160209182019101611141565b6001836020036101000a03801982511681845116808217855250505050505090500180600b60fa1b81525060010188805190602001908083835b602083106111b95780518252601f19909201916020918201910161119a565b51815160209384036101000a60001901801990921691161790526c1611383937b837b9b2b9111d1160991b919093019081528951600d909101928a0191508083835b6020831061121a5780518252601f1990920191602091820191016111fb565b51815160209384036101000a60001901801990921691161790526c11161132b732213637b1b5911d60991b919093019081528851600d90910192890191508083835b6020831061127b5780518252601f19909201916020918201910161125c565b51815160209384036101000a60001901801990921691161790526d16113a32b936b4b730ba32b2111d60911b919093019081528751600e90910192880191508083835b602083106112dd5780518252601f1990920191602091820191016112be565b51815160209384036101000a60001901801990921691161790526b161130b1b1b2b83a32b2111d60a11b919093019081528651600c90910192870191508083835b6020831061133d5780518252601f19909201916020918201910161131e565b51815160209384036101000a60001901801990921691161790526a16113932b33ab9b2b2111d60a91b919093019081528551600b90910192860191508083835b6020831061139c5780518252601f19909201916020918201910161137d565b51815160209384036101000a60001901801990921691161790526b16113234b9b0b13632b2111d60a11b919093019081528451600c90910192850191508083835b602083106113fc5780518252601f1990920191602091820191016113dd565b6001836020036101000a03801982511681845116808217855250505050505090500180607d60f81b8152506001019c50505050505050505050505050604051602081830303815290604052905090565b60085460ff1690565b60005460ff166114965760405162461bcd60e51b8152600401808060200182810382526031815260200180613cc56031913960400191505060405180910390fd5b600c54600160a81b900460ff16156114e8576040805162461bcd60e51b815260206004820152601060248201526f5375727665792064697361626c65642160801b604482015290519081900360640190fd5b600c5460ff1615611535576040805162461bcd60e51b8152602060048201526012602482015271537572766579205465726d696e617465642160701b604482015290519081900360640190fd5b60135460ff161561157b576040805162461bcd60e51b81526020600482015260176024820152600080516020613c33833981519152604482015290519081900360640190fd5b6000600a54116115c0576040805162461bcd60e51b81526020600482015260136024820152600080516020613cf6833981519152604482015290519081900360640190fd5b600a544310611606576040805162461bcd60e51b815260206004820152600d60248201526c53757276657920656e6465642160981b604482015290519081900360640190fd5b600154604080516323b872dd60e01b81523360048201523060248201526044810184905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b15801561166057600080fd5b505af1158015611674573d6000803e3d6000fd5b505050506040513d602081101561168a57600080fd5b5050336000818152600d60209081526040918290208054850190819055600f805486019055825185815292519093927f68e07974e86f9190b39c5e1783e6ba66b3d0d7ccf507de51450f14e594d1686892908290030190a26116ea613b5b565b5050565b60606116f984611ba0565b611702846122fa565b61170b84611ba0565b6040516020018080711139b7bab931b2a637b1b0ba34b7b7111d1160711b81525060120184805190602001908083835b6020831061175a5780518252601f19909201916020918201910161173b565b51815160209384036101000a60001901801990921691161790527411161139b7bab931b2a637b1b0ba34b7b724b2111d60591b919093019081528551601590910192860191508083835b602083106117c35780518252601f1990920191602091820191016117a4565b51815160209384036101000a60001901801990921691161790526c16113637b1b0ba34b7b7111d1160991b919093019081528451600d90910192850191508083835b602083106118245780518252601f199092019160209182019101611805565b6001836020036101000a038019825116818451168082178552505050505050905001935050505060405160208183030381529060405290509392505050565b60005460ff166118a45760405162461bcd60e51b8152600401808060200182810382526031815260200180613cc56031913960400191505060405180910390fd5b60005461010090046001600160a01b031633146118f25760405162461bcd60e51b8152600401808060200182810382526022815260200180613c7a6022913960400191505060405180910390fd5b600a541561193a576040805162461bcd60e51b815260206004820152601060248201526f416c726561647920737461727465642160801b604482015290519081900360640190fd5b600c805460ff1960ff60a81b19909116600160a81b17166001179055565b60005460ff166119995760405162461bcd60e51b8152600401808060200182810382526031815260200180613cc56031913960400191505060405180910390fd5b600c54600160a81b900460ff16156119eb576040805162461bcd60e51b815260206004820152601060248201526f5375727665792064697361626c65642160801b604482015290519081900360640190fd5b6000600a5411611a30576040805162461bcd60e51b81526020600482015260136024820152600080516020613cf6833981519152604482015290519081900360640190fd5b60135460ff16611a8c57600a54431015611a8c576040805162461bcd60e51b8152602060048201526018602482015277537572766579206973207374696c6c2072756e6e696e672160401b604482015290519081900360640190fd5b600c5460ff16158015611aa95750600c54600160a81b900460ff16155b15611abb57611ab66109da565b610bce565b610bce6001613700565b60068054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156109cf5780601f106109a4576101008083540402835291602001916109cf565b600a5490565b60028054604080516020601f60001961010060018716150201909416859004938401819004810282018101909252828152606093909290918301828280156109cf5780601f106109a4576101008083540402835291602001916109cf565b60045490565b600554600160a01b900460ff1690565b604080518082018252601081526f181899199a1a9b1b9c1cb0b131b232b360811b60208201528151602a80825260608281019094526001600160a01b03851692918491602082018180368337019050509050600360fc1b81600081518110611c0457fe5b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611c2d57fe5b60200101906001600160f81b031916908160001a90535060005b6014811015611d13578260048583600c0160208110611c6257fe5b1a60f81b6001600160f81b031916901c60f81c60ff1681518110611c8257fe5b602001015160f81c60f81b828260020260020181518110611c9f57fe5b60200101906001600160f81b031916908160001a905350828482600c0160208110611cc657fe5b825191901a600f16908110611cd757fe5b602001015160f81c60f81b828260020260030181518110611cf457fe5b60200101906001600160f81b031916908160001a905350600101611c47565b50925050505b919050565b606080829050600281511015611d4e5750506040805180820190915260028152615b5d60f01b6020820152611d19565b605b60f81b6001600160f81b03191681600081518110611d6a57fe5b01602001516001600160f81b03191614611d9e5750506040805180820190915260028152615b5d60f01b6020820152611d19565b8051605d60f81b9082906000198101908110611db657fe5b01602001516001600160f81b03191614611dea5750506040805180820190915260028152615b5d60f01b6020820152611d19565b5090919050565b60035460ff1690565b60005460ff16611e3b5760405162461bcd60e51b8152600401808060200182810382526031815260200180613cc56031913960400191505060405180910390fd5b600c54600160a81b900460ff1615611e8d576040805162461bcd60e51b815260206004820152601060248201526f5375727665792064697361626c65642160801b604482015290519081900360640190fd5b600c5460ff1615611eda576040805162461bcd60e51b8152602060048201526012602482015271537572766579205465726d696e617465642160701b604482015290519081900360640190fd5b60135460ff1615611f20576040805162461bcd60e51b81526020600482015260176024820152600080516020613c33833981519152604482015290519081900360640190fd5b6000600a5411611f65576040805162461bcd60e51b81526020600482015260136024820152600080516020613cf6833981519152604482015290519081900360640190fd5b600a544310611fab576040805162461bcd60e51b815260206004820152600d60248201526c53757276657920656e6465642160981b604482015290519081900360640190fd5b336000908152600d6020526040902054811115612005576040805162461bcd60e51b8152602060048201526013602482015272496e73756666696369656e742066756e64732160681b604482015290519081900360640190fd5b336000818152600d6020908152604080832080548690039055600f80548690039055600e82529182902080548501908190556010805486019055825185815292519093927f66ac89bb1a67976b7989a763cdec43b50a592dc86bb59f48d08e26572cb1522192908290030190a26116ea613b5b565b60005460ff166120bb5760405162461bcd60e51b8152600401808060200182810382526031815260200180613cc56031913960400191505060405180910390fd5b600c54600160a81b900460ff161561210d576040805162461bcd60e51b815260206004820152601060248201526f5375727665792064697361626c65642160801b604482015290519081900360640190fd5b600c5460ff161561215a576040805162461bcd60e51b8152602060048201526012602482015271537572766579205465726d696e617465642160701b604482015290519081900360640190fd5b60135460ff16156121a0576040805162461bcd60e51b81526020600482015260176024820152600080516020613c33833981519152604482015290519081900360640190fd5b6000600a54116121e5576040805162461bcd60e51b81526020600482015260136024820152600080516020613cf6833981519152604482015290519081900360640190fd5b600a54431061222b576040805162461bcd60e51b815260206004820152600d60248201526c53757276657920656e6465642160981b604482015290519081900360640190fd5b336000908152600e6020526040902054811115612285576040805162461bcd60e51b8152602060048201526013602482015272496e73756666696369656e742066756e64732160681b604482015290519081900360640190fd5b336000818152600e6020908152604080832080548690039055601080548690039055600d8252918290208054850190819055600f805486019055825185815292519093927f483d089c46398a02a8985779ec41436d62364736e8a9b40a10183fa12867839292908290030190a26116ea613b5b565b60608161231f57506040805180820190915260018152600360fc1b6020820152611d19565b8160005b811561233757600101600a82049150612323565b60608167ffffffffffffffff8111801561235057600080fd5b506040519080825280601f01601f19166020018201604052801561237b576020820181803683370190505b50905060001982015b8515611d1357600a860660300160f81b828280600190039350815181106123a757fe5b60200101906001600160f81b031916908160001a905350600a86049550612384565b600c54600160a81b900460ff1690565b60005460ff161561241b5760405162461bcd60e51b8152600401808060200182810382526021815260200180613d166021913960400191505060405180910390fd5b60005461010090046001600160a01b031633146124695760405162461bcd60e51b8152600401808060200182810382526029815260200180613c9c6029913960400191505060405180910390fd5b6003805460048890556005805460ff60a01b1916600160a01b891515021790556008805460ff199081168815151761ff001916610100881515810291909117909255600c8054610100600160a81b03199081166001600160a01b0389811686029190911790925560005494168c82168402179091168c1515179093556127479291041663841d0ed78a612531576040518060400160405280601e81526020017f6765744d696e696d756d426c6f636b4e756d626572466f72537572766579000081525061254b565b604051806060016040528060278152602001613c53602791395b604051806020016040528060008152506040518363ffffffff1660e01b8152600401808060200180602001838103835285818151815260200191508051906020019080838360005b838110156125ab578181015183820152602001612593565b50505050905090810190601f1680156125d85780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561260b5781810151838201526020016125f3565b50505050905090810190601f1680156126385780820380516001836020036101000a031916815260200191505b5094505050505060006040518083038186803b15801561265757600080fd5b505afa15801561266b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561269457600080fd5b8101908080516040519392919084600160201b8211156126b357600080fd5b9083019060208201858111156126c857600080fd5b8251600160201b8111828201881017156126e157600080fd5b82525081516020918201929091019080838360005b8381101561270e5781810151838201526020016126f6565b50505050905090810190601f16801561273b5780820380516001836020036101000a031916815260200191505b50604052505050612c4e565b600b5560125550506000805460ff191660011790555050505050565b6001600160a01b03166000908152600d6020908152604080832054600e909252909120549091565b600b5490565b60005461010090046001600160a01b031690565b60005460ff166127e65760405162461bcd60e51b8152600401808060200182810382526031815260200180613cc56031913960400191505060405180910390fd5b600c54600160a81b900460ff1615612838576040805162461bcd60e51b815260206004820152601060248201526f5375727665792064697361626c65642160801b604482015290519081900360640190fd5b600c5460ff1615612885576040805162461bcd60e51b8152602060048201526012602482015271537572766579205465726d696e617465642160701b604482015290519081900360640190fd5b60135460ff16156128cb576040805162461bcd60e51b81526020600482015260176024820152600080516020613c33833981519152604482015290519081900360640190fd5b6000600a5411612910576040805162461bcd60e51b81526020600482015260136024820152600080516020613cf6833981519152604482015290519081900360640190fd5b600a544310612956576040805162461bcd60e51b815260206004820152600d60248201526c53757276657920656e6465642160981b604482015290519081900360640190fd5b600154604080516323b872dd60e01b81523360048201523060248201526044810184905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b1580156129b057600080fd5b505af11580156129c4573d6000803e3d6000fd5b505050506040513d60208110156129da57600080fd5b5050336000818152600e602090815260409182902080548501908190556010805486019055825185815292519093927f4e855894dd91aeb0192726b247db8c42f6d1275c4094286dfeadd2005971a1b492908290030190a26116ea613b5b565b60125490565b600854610100900460ff1690565b60005460ff16612a8f5760405162461bcd60e51b8152600401808060200182810382526031815260200180613cc56031913960400191505060405180910390fd5b600c54600160a81b900460ff1615612ae1576040805162461bcd60e51b815260206004820152601060248201526f5375727665792064697361626c65642160801b604482015290519081900360640190fd5b6000600a5411612b26576040805162461bcd60e51b81526020600482015260136024820152600080516020613cf6833981519152604482015290519081900360640190fd5b60135460ff16612b8257600a54431015612b82576040805162461bcd60e51b8152602060048201526018602482015277537572766579206973207374696c6c2072756e6e696e672160401b604482015290519081900360640190fd5b60005461010090046001600160a01b03163314612bdd576040805162461bcd60e51b8152602060048201526014602482015273556e617574686f72697a6564204163636573732160601b604482015290519081900360640190fd5b600c5460ff1615612c2b576040805162461bcd60e51b8152602060048201526013602482015272416c7265616479207465726d696e617465642160681b604482015290519081900360640190fd5b600c805460ff19166001179055565b60035461010090046001600160a01b031690565b60006020825110611d1957506020015190565b60005460ff16612ca25760405162461bcd60e51b8152600401808060200182810382526031815260200180613cc56031913960400191505060405180910390fd5b60005461010090046001600160a01b03163314612cf05760405162461bcd60e51b8152600401808060200182810382526022815260200180613c7a6022913960400191505060405180910390fd5b600a5415612d38576040805162461bcd60e51b815260206004820152601060248201526f416c726561647920737461727465642160801b604482015290519081900360640190fd5b600c54600160a81b900460ff1615612d8b576040805162461bcd60e51b8152602060048201526011602482015270416c72656164792064697361626c65642160781b604482015290519081900360640190fd5b600b544301600a55565b6005546001600160a01b031690565b600c5460ff1690565b600c5461010090046001600160a01b031690565b60005460ff16612e025760405162461bcd60e51b8152600401808060200182810382526031815260200180613cc56031913960400191505060405180910390fd5b600c54600160a81b900460ff1615612e54576040805162461bcd60e51b815260206004820152601060248201526f5375727665792064697361626c65642160801b604482015290519081900360640190fd5b600c5460ff1615612ea1576040805162461bcd60e51b8152602060048201526012602482015271537572766579205465726d696e617465642160701b604482015290519081900360640190fd5b60135460ff1615612ee7576040805162461bcd60e51b81526020600482015260176024820152600080516020613c33833981519152604482015290519081900360640190fd5b6000600a5411612f2c576040805162461bcd60e51b81526020600482015260136024820152600080516020613cf6833981519152604482015290519081900360640190fd5b600a544310612f72576040805162461bcd60e51b815260206004820152600d60248201526c53757276657920656e6465642160981b604482015290519081900360640190fd5b336000908152600e6020526040902054811115612fcc576040805162461bcd60e51b8152602060048201526013602482015272496e73756666696369656e742066756e64732160681b604482015290519081900360640190fd5b6001546040805163a9059cbb60e01b81523360048201526024810184905290516001600160a01b039092169163a9059cbb916044808201926020929091908290030181600087803b15801561302057600080fd5b505af1158015613034573d6000803e3d6000fd5b505050506040513d602081101561304a57600080fd5b5050336000818152600e6020908152604091829020805485900390819055601080548690039055825185815292519093927fa369065c2bc9cea922be2bf705101c039bc3af5575b8548b4d16d6a0b1893e2592908290030190a25050565b60005460ff166130e95760405162461bcd60e51b8152600401808060200182810382526031815260200180613cc56031913960400191505060405180910390fd5b600c54600160a81b900460ff161561313b576040805162461bcd60e51b815260206004820152601060248201526f5375727665792064697361626c65642160801b604482015290519081900360640190fd5b600c5460ff1615613188576040805162461bcd60e51b8152602060048201526012602482015271537572766579205465726d696e617465642160701b604482015290519081900360640190fd5b60135460ff16156131ce576040805162461bcd60e51b81526020600482015260176024820152600080516020613c33833981519152604482015290519081900360640190fd5b6000600a5411613213576040805162461bcd60e51b81526020600482015260136024820152600080516020613cf6833981519152604482015290519081900360640190fd5b600a544310613259576040805162461bcd60e51b815260206004820152600d60248201526c53757276657920656e6465642160981b604482015290519081900360640190fd5b336000908152600e6020908152604080832054600d90925290912054016132b3576040805162461bcd60e51b81526020600482015260096024820152684e6f20766f7465732160b81b604482015290519081900360640190fd5b336000818152600d6020908152604080832054600e835281842054600154835163a9059cbb60e01b8152600481019790975281830160248801529251919590946001600160a01b039093169363a9059cbb9360448084019492938390030190829087803b15801561332357600080fd5b505af1158015613337573d6000803e3d6000fd5b505050506040513d602081101561334d57600080fd5b5050336000818152600d60209081526040808320839055600e825280832092909255600f805486900390556010805485900390558151848601815291517f1dd395e89b5da0e80f0242ec498fdfcaa6bc77d32b4417d89ec195e160fd7ad89281900390910190a25050565b60005460ff166133f95760405162461bcd60e51b8152600401808060200182810382526031815260200180613cc56031913960400191505060405180910390fd5b600c54600160a81b900460ff161561344b576040805162461bcd60e51b815260206004820152601060248201526f5375727665792064697361626c65642160801b604482015290519081900360640190fd5b600c5460ff1615613498576040805162461bcd60e51b8152602060048201526012602482015271537572766579205465726d696e617465642160701b604482015290519081900360640190fd5b60135460ff16156134de576040805162461bcd60e51b81526020600482015260176024820152600080516020613c33833981519152604482015290519081900360640190fd5b6000600a5411613523576040805162461bcd60e51b81526020600482015260136024820152600080516020613cf6833981519152604482015290519081900360640190fd5b600a544310613569576040805162461bcd60e51b815260206004820152600d60248201526c53757276657920656e6465642160981b604482015290519081900360640190fd5b336000908152600d60205260409020548111156135c3576040805162461bcd60e51b8152602060048201526013602482015272496e73756666696369656e742066756e64732160681b604482015290519081900360640190fd5b6001546040805163a9059cbb60e01b81523360048201526024810184905290516001600160a01b039092169163a9059cbb916044808201926020929091908290030181600087803b15801561361757600080fd5b505af115801561362b573d6000803e3d6000fd5b505050506040513d602081101561364157600080fd5b5050336000818152600d6020908152604091829020805485900390819055600f80548690039055825185815292519093927fc4e9f6c43fa16caaa3278b92f5fadf533efad8e8124fa4253fd9490cdc0742b492908290030190a25050565b60098054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156109cf5780601f106109a4576101008083540402835291602001916109cf565b8015806137285750336000908152600e6020908152604080832054600d909252909120540115155b613770576040805162461bcd60e51b81526020600482015260146024820152734e6f7468696e6720746f2057697468647261772160601b604482015290519081900360640190fd5b80158061378d57503360009081526011602052604090205460ff16155b6137d4576040805162461bcd60e51b8152602060048201526013602482015272416c726561647920576974686472617765642160681b604482015290519081900360640190fd5b336000908152600e6020908152604080832054600d90925290912054011580159061380f57503360009081526011602052604090205460ff16155b156138c357600154336000818152600e6020908152604080832054600d835281842054825163a9059cbb60e01b81526004810196909652016024850152516001600160a01b039094169363a9059cbb93604480820194918390030190829087803b15801561387c57600080fd5b505af1158015613890573d6000803e3d6000fd5b505050506040513d60208110156138a657600080fd5b5050336000908152601160205260409020805460ff191660011790555b50565b60078054604080516020600260018516156101000260001901909416849004601f810182900482028301820190935282825260609460069361395e93928301828280156139545780601f1061392957610100808354040283529160200191613954565b820191906000526020600020905b81548152906001019060200180831161393757829003601f168201915b5050505050611d1e565b600960405160200180806b1131b7b232a730b6b2911d1160a11b815250600c01858054600181600116156101000203166002900480156139d55780601f106139b35761010080835404028352918201916139d5565b820191906000526020600020905b8154815290600101906020018083116139c1575b5050807411161136b2ba3437b229b4b3b730ba3ab932911d1160591b81525060150184805460018160011615610100020316600290048015613a4e5780601f10613a2c576101008083540402835291820191613a4e565b820191906000526020600020905b815481529060010190602001808311613a3a575b5050807f222c2272657475726e416269506172616d65746572734172726179223a000000815250601d0183805190602001908083835b60208310613aa35780518252601f199092019160209182019101613a84565b6001836020036101000a038019825116818451168082178552505050505050905001806c16113932b83630b1b2b9911d1160991b815250600d0182805460018160011615610100020316600290048015613b345780601f10613b12576101008083540402835291820191613b34565b820191906000526020600020905b815481529060010190602001808311613b20575b5050601160f91b815260408051601e19818403018152600190920190529550505050505090565b6012541580613b7b5750601254600f54108015613b7b5750601254601054105b15613b8557610bce565b6013805460ff19166001179055610bce6109da565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613bdb57805160ff1916838001178555613c08565b82800160010185558215613c08579182015b82811115613c08578251825591602001919060010190613bed565b50613c14929150613c18565b5090565b6109d791905b80821115613c145760008155600101613c1e56fe566f7465732048617264204361702072656163686564210000000000000000006765744d696e696d756d426c6f636b4e756d626572466f72456d657267656e63795375727665794f6e6c792050726f78792063616e2063616c6c20746869732066756e6374696f6e214f6e6c79204f726967696e616c2050726f78792063616e2063616c6c2074686973206d6574686f64215374696c6c2077616974696e6720666f7220736574436f6c6c61746572616c4461746120746f2062652063616c6c656421537572766579204e6f7420537461727465642100000000000000000000000000736574436f6c6c61746572616c4461746120616c72656164792063616c6c656421a2646970667358221220cc7f3bf856466276233180424b6f508fe3d144c7a0a548366500787677c07fa564736f6c63430006080033

Deployed Bytecode Sourcemap

117:14023:4:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;117:14023:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;3600:132:4;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3600:132:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11373:177;;;:::i;:::-;;4535:119;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1392:511;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;1392:511:4;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;1392:511:4;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;1392:511:4;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1392:511:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1392:511:4;;-1:-1:-1;;;;;1392:511:4;;;;;;;;-1:-1:-1;1392:511:4;;;;-1:-1:-1;1392:511:4;;;;-1:-1:-1;;;;11:28;;8:2;;;52:1;49;42:12;8:2;1392:511:4;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;1392:511:4;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1392:511:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1392:511:4;;;;;;;;-1:-1:-1;1392:511:4;;-1:-1:-1;;;;;11:28;;8:2;;;52:1;49;42:12;8:2;1392:511:4;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;1392:511:4;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1392:511:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1392:511:4;;;;;;;;-1:-1:-1;1392:511:4;;-1:-1:-1;;;;;11:28;;8:2;;;52:1;49;42:12;8:2;1392:511:4;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;1392:511:4;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1392:511:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1392:511:4;;-1:-1:-1;;;1392:511:4;;-1:-1:-1;;;;;1392:511:4;;-1:-1:-1;1392:511:4;;-1:-1:-1;1392:511:4:i;4856:112::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;5797:979;;;:::i;3738:92::-;;;:::i;8252:349::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;8252:349:4;;:::i;13381:388::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;13381:388:4;;;;;;;;;;;;;;;;;:::i;5469:322::-;;;:::i;11189:178::-;;;:::i;3480:114::-;;;:::i;4142:106::-;;;:::i;:::-;;;;;;;;;;;;;;;;2848:100;;;:::i;3164:110::-;;;:::i;3380:94::-;;;:::i;12442:479::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;12442:479:4;-1:-1:-1;;;;;12442:479:4;;:::i;13775:363::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;13775:363:4;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;13775:363:4;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;13775:363:4;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;13775:363:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;13775:363:4;;-1:-1:-1;13775:363:4;;-1:-1:-1;;;;;13775:363:4:i;2954:92::-;;;:::i;10235:489::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;10235:489:4;;:::i;8996:::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;8996:489:4;;:::i;12927:448::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;12927:448:4;;:::i;4760:90::-;;;:::i;1909:839::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;1909:839:4;;;;;-1:-1:-1;;;;;1909:839:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;4366:163::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;4366:163:4;-1:-1:-1;;;;;4366:163:4;;:::i;4254:106::-;;;:::i;2754:88::-;;;:::i;:::-;;;;-1:-1:-1;;;;;2754:88:4;;;;;;;;;;;;;;9491:349;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;9491:349:4;;:::i;4974:109::-;;;:::i;3836:94::-;;;:::i;12034:195::-;;;:::i;3052:106::-;;;:::i;12235:201::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;12235:201:4;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;12235:201:4;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;12235:201:4;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;12235:201:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;12235:201:4;;-1:-1:-1;12235:201:4;;-1:-1:-1;;;;;12235:201:4:i;5089:374::-;;;:::i;3280:94::-;;;:::i;4660:::-;;;:::i;4042:::-;;;:::i;9846:383::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;9846:383:4;;:::i;10730:453::-;;;:::i;8607:383::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;8607:383:4;;:::i;3936:100::-;;;:::i;3600:132::-;3700:25;3693:32;;;;;;;;-1:-1:-1;;3693:32:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3668:13;;3693:32;;3700:25;;3693:32;;3700:25;3693:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3600:132;;:::o;11373:177::-;7680:18;;;;7672:80;;;;-1:-1:-1;;;7672:80:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7771:9;;-1:-1:-1;;;7771:9:4;;;;7770:10;7762:39;;;;;-1:-1:-1;;;7762:39:4;;;;;;;;;;;;-1:-1:-1;;;7762:39:4;;;;;;;;;;;;;;;7837:1;7819:15;;:19;7811:51;;;;;-1:-1:-1;;;7811:51:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7811:51:4;;;;;;;;;;;;;;;7876:20;;;;7872:119;;7936:15;;7920:12;:31;;7912:68;;;;;-1:-1:-1;;;7912:68:4;;;;;;;;;;;;-1:-1:-1;;;7912:68:4;;;;;;;;;;;;;;;11441:11:::1;::::0;::::1;;11440:12;11432:44;;;::::0;;-1:-1:-1;;;11432:44:4;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;11432:44:4;;;;;;;;;;;;;::::1;;11496:6;;;;;;;;;-1:-1:-1::0;;;;;11496:6:4::1;-1:-1:-1::0;;;;;11486:29:4::1;;:31;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;11486:31:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;11486:31:4;;;;11527:16;11537:5;11527:9;:16::i;:::-;11373:177::o:0;4535:119::-;4620:12;;4634;;4535:119;;:::o;1392:511::-;1618:1;1600:6;;;;-1:-1:-1;;;;;1600:6:4;:20;1592:53;;;;;-1:-1:-1;;;1592:53:4;;;;;;;;;;;;-1:-1:-1;;;1592:53:4;;;;;;;;;;;;;;;1683:5;1674:6;;:14;;;;;-1:-1:-1;;;;;1674:14:4;;;;;-1:-1:-1;;;;;1674:14:4;;;;;-1:-1:-1;;;;;1664:34:4;;:36;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1664:36:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1664:36:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1664:36:4;1655:6;:45;;-1:-1:-1;;;;;;1655:45:4;-1:-1:-1;;;;;1655:45:4;;;;;;;;;1710:20;;;;:9;;1664:36;1710:20;;;;:::i;:::-;-1:-1:-1;1740:9:4;:20;;-1:-1:-1;;;;;;1740:20:4;-1:-1:-1;;;;;1740:20:4;;;;;1770:34;;;;:16;;:34;;;;;:::i;:::-;-1:-1:-1;1814:52:4;;;;:25;;:52;;;;;:::i;:::-;-1:-1:-1;1876:20:4;;;;:9;;:20;;;;;:::i;:::-;;1392:511;;;;;;:::o;4856:112::-;4941:20;;;;4856:112;:::o;5797:979::-;5947:15;;5964:17;;5983:9;;5844:13;;5930:63;;5947:15;;;;-1:-1:-1;;;;;5947:15:4;;;;5983:9;5930:16;:63::i;:::-;6038:11;;-1:-1:-1;;;6038:11:4;;;;:30;;;;;;;;;;;;;;;-1:-1:-1;;;6038:30:4;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6038:30:4;;;;6111:10;;;;:29;;;;;;;;;;;;;;;-1:-1:-1;;;6111:29:4;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6111:29:4;;;;6184:11;;;;:30;;;;;;;;;;;;;;;-1:-1:-1;;;6184:30:4;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6184:30:4;;;;6259:12;;;;;;;:31;;;;;;;;;;;;;;;-1:-1:-1;;;6259:31:4;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6259:31:4;;;;6321:19;:17;:19::i;:::-;6392:9;;6383:19;;6392:9;;;-1:-1:-1;;;;;6392:9:4;6383:8;:19::i;:::-;6445:25;6454:15;;6445:8;:25::i;:::-;6514:11;;;;:30;;;;;;;;;;;;;;;-1:-1:-1;;;6514:30:4;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6514:30:4;;;;6586:22;6595:12;;6586:8;:22::i;:::-;6649;6658:12;;6649:8;:22::i;:::-;6713:9;;-1:-1:-1;;;6713:9:4;;;;:28;;;;;;;;;;;;;;;-1:-1:-1;;;6713:28:4;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6713:28:4;;;;5883:876;;;;;;-1:-1:-1;;;5883:876:4;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;-1:-1;;;5883:876:4;;;;;;;;;;;;;;;;;-1:-1:-1;5883:876:4;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;-1:-1;;;5883:876:4;;;;;;;;;;;;;;;;;-1:-1:-1;5883:876:4;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;-1:-1;;;5883:876:4;;;;;;;;;;;;;;;;;-1:-1:-1;5883:876:4;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;-1:-1;;;5883:876:4;;;;;;;;;;;;;;;;;-1:-1:-1;5883:876:4;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;5883:876:4;;;;;;;-1:-1:-1;;;5883:876:4;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;-1:-1;;;5883:876:4;;;;;;;;;;;;;;;;;-1:-1:-1;5883:876:4;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;-1:-1;;;5883:876:4;;;;;;;;;;;;;;;;;-1:-1:-1;5883:876:4;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;-1:-1;;;5883:876:4;;;;;;;;;;;;;;;;;-1:-1:-1;5883:876:4;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;-1:-1;;;5883:876:4;;;;;;;;;;;;;;;;;-1:-1:-1;5883:876:4;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;-1:-1;;;5883:876:4;;;;;;;;;;;;;;;;;-1:-1:-1;5883:876:4;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;-1:-1;;;5883:876:4;;;;;;;;;;;;;;;;;-1:-1:-1;5883:876:4;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;5883:876:4;;;;;;;-1:-1:-1;;;5883:876:4;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;5883:876:4;;;5869:900;;5797:979;:::o;3738:92::-;3812:11;;;;3738:92;:::o;8252:349::-;7247:18;;;;7239:80;;;;-1:-1:-1;;;7239:80:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7338:9;;-1:-1:-1;;;7338:9:4;;;;7337:10;7329:39;;;;;-1:-1:-1;;;7329:39:4;;;;;;;;;;;;-1:-1:-1;;;7329:39:4;;;;;;;;;;;;;;;7387:11;;;;7386:12;7378:43;;;;;-1:-1:-1;;;7378:43:4;;;;;;;;;;;;-1:-1:-1;;;7378:43:4;;;;;;;;;;;;;;;7440:20;;;;7439:21;7431:57;;;;;-1:-1:-1;;;7431:57:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7431:57:4;;;;;;;;;;;;;;;7524:1;7506:15;;:19;7498:51;;;;;-1:-1:-1;;;7498:51:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7498:51:4;;;;;;;;;;;;;;;7582:15;;7567:12;:30;7559:56;;;;;-1:-1:-1;;;7559:56:4;;;;;;;;;;;;-1:-1:-1;;;7559:56:4;;;;;;;;;;;;;;;8332:6:::1;::::0;8325:62:::1;::::0;;-1:-1:-1;;;8325:62:4;;8353:10:::1;8325:62;::::0;::::1;::::0;8373:4:::1;8325:62:::0;;;;;;;;;;;;-1:-1:-1;;;;;8332:6:4;;::::1;::::0;8325:27:::1;::::0;:62;;;;;::::1;::::0;;;;;;;;;8332:6:::1;::::0;8325:62;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;8325:62:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;8325:62:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;;8420:10:4::1;8397:12;8412:19:::0;;;:7:::1;8325:62;8412:19:::0;;;;;;;;;;8441:14;::::1;8465:26:::0;;;;8501:12:::1;:22:::0;;;::::1;::::0;;8538:26;;;;;;;8441:14;;8420:10;8538:26:::1;::::0;;;;;;;::::1;8574:20;:18;:20::i;:::-;7625:1;8252:349:::0;:::o;13381:388::-;13495:12;13590:24;13599:14;13590:8;:24::i;:::-;13665:26;13674:16;13665:8;:26::i;:::-;13734:18;13743:8;13734;:18::i;:::-;13526:236;;;;;;-1:-1:-1;;;13526:236:4;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;-1:-1;;;13526:236:4;;;;;;;;;;;;;;;;;-1:-1:-1;13526:236:4;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;-1:-1;;;13526:236:4;;;;;;;;;;;;;;;;;-1:-1:-1;13526:236:4;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;13526:236:4;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;13526:236:4;;;13519:243;;13381:388;;;;;:::o;5469:322::-;5522:18;;;;5514:80;;;;-1:-1:-1;;;5514:80:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5626:6;;;;;-1:-1:-1;;;;;5626:6:4;5612:10;:20;5604:67;;;;-1:-1:-1;;;5604:67:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5689:15;;:20;5681:49;;;;;-1:-1:-1;;;5681:49:4;;;;;;;;;;;;-1:-1:-1;;;5681:49:4;;;;;;;;;;;;;;;5740:9;:16;;-1:-1:-1;;;;;;5740:16:4;;;-1:-1:-1;;;5740:16:4;5766:18;5752:4;5766:18;;;5469:322::o;11189:178::-;7680:18;;;;7672:80;;;;-1:-1:-1;;;7672:80:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7771:9;;-1:-1:-1;;;7771:9:4;;;;7770:10;7762:39;;;;;-1:-1:-1;;;7762:39:4;;;;;;;;;;;;-1:-1:-1;;;7762:39:4;;;;;;;;;;;;;;;7837:1;7819:15;;:19;7811:51;;;;;-1:-1:-1;;;7811:51:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7811:51:4;;;;;;;;;;;;;;;7876:20;;;;7872:119;;7936:15;;7920:12;:31;;7912:68;;;;;-1:-1:-1;;;7912:68:4;;;;;;;;;;;;-1:-1:-1;;;7912:68:4;;;;;;;;;;;;;;;11253:11:::1;::::0;::::1;;11252:12;:26:::0;::::1;;;-1:-1:-1::0;11269:9:4::1;::::0;-1:-1:-1;;;11269:9:4;::::1;;;11268:10;11252:26;11249:87;;;11294:11;:9;:11::i;:::-;11319:7;;11249:87;11345:15;11355:4;11345:9;:15::i;3480:114::-:0;3571:16;3564:23;;;;;;;;-1:-1:-1;;3564:23:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3539:13;;3564:23;;3571:16;;3564:23;;3571:16;3564:23;;;;;;;;;;;;;;;;;;;;;;;;4142:106;4226:15;;4142:106;:::o;2848:100::-;2932:9;2925:16;;;;;;;-1:-1:-1;;2925:16:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2900:13;;2925:16;;2932:9;;2925:16;;2932:9;2925:16;;;;;;;;;;;;;;;;;;;;;;;;3164:110;3250:17;;3164:110;:::o;3380:94::-;3456:11;;-1:-1:-1;;;3456:11:4;;;;;3380:94::o;12442:479::-;12569:42;;;;;;;;;;;-1:-1:-1;;;12569:42:4;;;;12641:13;;12651:2;12641:13;;;12495;12641;;;;;;-1:-1:-1;;;;;12544:14:4;;;12569:42;12495:13;;12641;;;21:6:-1;;108:14;12641:13:4;87:42:-1;143:17;;-1:-1;12641:13:4;12622:32;;-1:-1:-1;;;12664:3:4;12668:1;12664:6;;;;;;;;;;;:12;-1:-1:-1;;;;;12664:12:4;;;;;;;;;-1:-1:-1;;;12686:3:4;12690:1;12686:6;;;;;;;;;;;:12;-1:-1:-1;;;;;12686:12:4;;;;;;;;-1:-1:-1;12713:6:4;12708:179;12729:2;12725:1;:6;12708:179;;;12765:8;12802:1;12785:5;12791:1;12795:2;12791:6;12785:13;;;;;;;;;;-1:-1:-1;;;;;12785:18:4;;;;12779:25;;12774:31;;12765:41;;;;;;;;;;;;;;;;12752:3;12758:1;12760;12758:3;12756:1;:5;12752:10;;;;;;;;;;;:54;-1:-1:-1;;;;;12752:54:4;;;;;;;;;12833:8;12853:5;12859:1;12863:2;12859:6;12853:13;;;;;;;12833:43;;12853:13;;;12869:4;12847:27;;12833:43;;;;;;;;;;;;;;12820:3;12826:1;12828;12826:3;12824:1;:5;12820:10;;;;;;;;;;;:56;-1:-1:-1;;;;;12820:56:4;;;;;;;;-1:-1:-1;12733:3:4;;12708:179;;;-1:-1:-1;12910:3:4;-1:-1:-1;;;12442:479:4;;;;:::o;13775:363::-;13852:13;13877:14;13900:1;13877:25;;13926:1;13915;:8;:12;13912:53;;;-1:-1:-1;;13943:11:4;;;;;;;;;;;;-1:-1:-1;;;13943:11:4;;;;;;13912:53;-1:-1:-1;;;;;;;;13977:19:4;;:1;13979;13977:4;;;;;;;;;;;;-1:-1:-1;;;;;;13977:4:4;:19;13974:60;;-1:-1:-1;;14012:11:4;;;;;;;;;;;;-1:-1:-1;;;14012:11:4;;;;;;13974:60;14048:8;;-1:-1:-1;;;14065:11:4;14046:1;;-1:-1:-1;;14048:12:4;;;14046:15;;;;;;;;;;-1:-1:-1;;;;;;14046:15:4;:30;14043:71;;-1:-1:-1;;14092:11:4;;;;;;;;;;;;-1:-1:-1;;;14092:11:4;;;;;;14043:71;-1:-1:-1;14130:1:4;;13775:363;-1:-1:-1;13775:363:4:o;2954:92::-;3029:10;;;;2954:92;:::o;10235:489::-;7247:18;;;;7239:80;;;;-1:-1:-1;;;7239:80:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7338:9;;-1:-1:-1;;;7338:9:4;;;;7337:10;7329:39;;;;;-1:-1:-1;;;7329:39:4;;;;;;;;;;;;-1:-1:-1;;;7329:39:4;;;;;;;;;;;;;;;7387:11;;;;7386:12;7378:43;;;;;-1:-1:-1;;;7378:43:4;;;;;;;;;;;;-1:-1:-1;;;7378:43:4;;;;;;;;;;;;;;;7440:20;;;;7439:21;7431:57;;;;;-1:-1:-1;;;7431:57:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7431:57:4;;;;;;;;;;;;;;;7524:1;7506:15;;:19;7498:51;;;;;-1:-1:-1;;;7498:51:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7498:51:4;;;;;;;;;;;;;;;7582:15;;7567:12;:30;7559:56;;;;;-1:-1:-1;;;7559:56:4;;;;;;;;;;;;-1:-1:-1;;;7559:56:4;;;;;;;;;;;;;;;10330:10:::1;10322:19;::::0;;;:7:::1;:19;::::0;;;;;:29;-1:-1:-1;10322:29:4::1;10314:61;;;::::0;;-1:-1:-1;;;10314:61:4;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;10314:61:4;;;;;;;;;;;;;::::1;;10408:10;10385:12;10400:19:::0;;;:7:::1;:19;::::0;;;;;;;;;10429:14;;::::1;10453:26:::0;;10489:12:::1;:22:::0;;;;::::1;::::0;;10529:7:::1;:19:::0;;;;;;;;10558:14;::::1;10582:26:::0;;;;10618:12:::1;:22:::0;;;::::1;::::0;;10655:32;;;;;;;10558:14;;10408:10;10655:32:::1;::::0;;;;;;;::::1;10697:20;:18;:20::i;8996:489::-:0;7247:18;;;;7239:80;;;;-1:-1:-1;;;7239:80:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7338:9;;-1:-1:-1;;;7338:9:4;;;;7337:10;7329:39;;;;;-1:-1:-1;;;7329:39:4;;;;;;;;;;;;-1:-1:-1;;;7329:39:4;;;;;;;;;;;;;;;7387:11;;;;7386:12;7378:43;;;;;-1:-1:-1;;;7378:43:4;;;;;;;;;;;;-1:-1:-1;;;7378:43:4;;;;;;;;;;;;;;;7440:20;;;;7439:21;7431:57;;;;;-1:-1:-1;;;7431:57:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7431:57:4;;;;;;;;;;;;;;;7524:1;7506:15;;:19;7498:51;;;;;-1:-1:-1;;;7498:51:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7498:51:4;;;;;;;;;;;;;;;7582:15;;7567:12;:30;7559:56;;;;;-1:-1:-1;;;7559:56:4;;;;;;;;;;;;-1:-1:-1;;;7559:56:4;;;;;;;;;;;;;;;9091:10:::1;9083:19;::::0;;;:7:::1;:19;::::0;;;;;:29;-1:-1:-1;9083:29:4::1;9075:61;;;::::0;;-1:-1:-1;;;9075:61:4;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;9075:61:4;;;;;;;;;;;;;::::1;;9169:10;9146:12;9161:19:::0;;;:7:::1;:19;::::0;;;;;;;;;9190:14;;::::1;9214:26:::0;;9250:12:::1;:22:::0;;;;::::1;::::0;;9290:7:::1;:19:::0;;;;;;;;9319:14;::::1;9343:26:::0;;;;9379:12:::1;:22:::0;;;::::1;::::0;;9416:32;;;;;;;9319:14;;9169:10;9416:32:::1;::::0;;;;;;;::::1;9458:20;:18;:20::i;12927:448::-:0;12974:13;13003:7;12999:48;;-1:-1:-1;13026:10:4;;;;;;;;;;;;-1:-1:-1;;;13026:10:4;;;;;;12999:48;13065:2;13056:6;13095:66;13102:6;;13095:66;;13124:5;;13148:2;13143:7;;;;13095:66;;;13170:17;13200:3;13190:14;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;13190:14:4;;;;;;;;;;;;;;;;;;;;;;;;;;21:6:-1;;108:14;13190::4;87:42:-1;143:17;;-1:-1;13190:14:4;-1:-1:-1;13170:34:4;-1:-1:-1;;;13223:7:4;;13240:100;13247:7;;13240:100;;13303:2;13298;:7;13293:2;:12;13282:25;;13270:4;13275:3;;;;;;;13270:9;;;;;;;;;;;:37;-1:-1:-1;;;;;13270:37:4;;;;;;;;-1:-1:-1;13327:2:4;13321:8;;;;13240:100;;4760:90;4834:9;;-1:-1:-1;;;4834:9:4;;;;;4760:90::o;1909:839::-;2129:18;;;;2128:19;2120:65;;;;-1:-1:-1;;;2120:65:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2203:6;;;;;-1:-1:-1;;;;;2203:6:4;2213:10;2203:20;2195:74;;;;-1:-1:-1;;;2195:74:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2279:15;:32;;2321:17;:36;;;2367:11;:24;;-1:-1:-1;;;;2367:24:4;-1:-1:-1;;;2367:24:4;;;;;;;2401:11;:24;;-1:-1:-1;;2401:24:4;;;;;;;-1:-1:-1;;2435:26:4;2279:32;2435:26;;;;;;;;;;;;2471:9;:20;;-1:-1:-1;;;;;;2471:20:4;;;-1:-1:-1;;;;;2471:20:4;;;;;;;;;;;;-1:-1:-1;2539:6:4;2279:32;;;;;;;;2553:22;;;;;;;;;;2519:149;;2539:6;;;2529:22;2553;2552:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2657:9;;;;;;;;;;;;2529:138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2529:138:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2529:138:4;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2529:138:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2529:138:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2529:138:4;;;;;;39:16:-1;36:1;17:17;2:54;101:4;2529:138:4;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;15:2;7:11;;4:2;;;31:1;28;21:12;4:2;2529:138:4;;;;;;;;;;;;;-1:-1:-1;;;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;2529:138:4;;420:4:-1;411:14;;;;2529:138:4;;;;;411:14:-1;2529:138:4;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2529:138:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2519:9;:149::i;:::-;2501:15;:167;2678:13;:28;-1:-1:-1;;;2716:25:4;;-1:-1:-1;;2716:25:4;2737:4;2716:25;;;-1:-1:-1;;;;;1909:839:4:o;4366:163::-;-1:-1:-1;;;;;4477:13:4;4426:14;4477:13;;;:7;:13;;;;;;;;;4509:7;:13;;;;;;;4477;;4366:163::o;4254:106::-;4338:15;;4254:106;:::o;2754:88::-;2803:7;2829:6;;;;-1:-1:-1;;;;;2829:6:4;;2754:88::o;9491:349::-;7247:18;;;;7239:80;;;;-1:-1:-1;;;7239:80:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7338:9;;-1:-1:-1;;;7338:9:4;;;;7337:10;7329:39;;;;;-1:-1:-1;;;7329:39:4;;;;;;;;;;;;-1:-1:-1;;;7329:39:4;;;;;;;;;;;;;;;7387:11;;;;7386:12;7378:43;;;;;-1:-1:-1;;;7378:43:4;;;;;;;;;;;;-1:-1:-1;;;7378:43:4;;;;;;;;;;;;;;;7440:20;;;;7439:21;7431:57;;;;;-1:-1:-1;;;7431:57:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7431:57:4;;;;;;;;;;;;;;;7524:1;7506:15;;:19;7498:51;;;;;-1:-1:-1;;;7498:51:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7498:51:4;;;;;;;;;;;;;;;7582:15;;7567:12;:30;7559:56;;;;;-1:-1:-1;;;7559:56:4;;;;;;;;;;;;-1:-1:-1;;;7559:56:4;;;;;;;;;;;;;;;9571:6:::1;::::0;9564:62:::1;::::0;;-1:-1:-1;;;9564:62:4;;9592:10:::1;9564:62;::::0;::::1;::::0;9612:4:::1;9564:62:::0;;;;;;;;;;;;-1:-1:-1;;;;;9571:6:4;;::::1;::::0;9564:27:::1;::::0;:62;;;;;::::1;::::0;;;;;;;;;9571:6:::1;::::0;9564:62;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;9564:62:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;9564:62:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;;9659:10:4::1;9636:12;9651:19:::0;;;:7:::1;9564:62;9651:19:::0;;;;;;;;;;9680:14;::::1;9704:26:::0;;;;9740:12:::1;:22:::0;;;::::1;::::0;;9777:26;;;;;;;9680:14;;9659:10;9777:26:::1;::::0;;;;;;;::::1;9813:20;:18;:20::i;4974:109::-:0;5063:13;;4974:109;:::o;3836:94::-;3911:12;;;;;;;;3836:94::o;12034:195::-;7680:18;;;;7672:80;;;;-1:-1:-1;;;7672:80:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7771:9;;-1:-1:-1;;;7771:9:4;;;;7770:10;7762:39;;;;;-1:-1:-1;;;7762:39:4;;;;;;;;;;;;-1:-1:-1;;;7762:39:4;;;;;;;;;;;;;;;7837:1;7819:15;;:19;7811:51;;;;;-1:-1:-1;;;7811:51:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7811:51:4;;;;;;;;;;;;;;;7876:20;;;;7872:119;;7936:15;;7920:12;:31;;7912:68;;;;;-1:-1:-1;;;7912:68:4;;;;;;;;;;;;-1:-1:-1;;;7912:68:4;;;;;;;;;;;;;;;12109:6:::1;::::0;::::1;::::0;::::1;-1:-1:-1::0;;;;;12109:6:4::1;12095:10;:20;12087:53;;;::::0;;-1:-1:-1;;;12087:53:4;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;12087:53:4;;;;;;;;;;;;;::::1;;12159:11;::::0;::::1;;12158:12;12150:44;;;::::0;;-1:-1:-1;;;12150:44:4;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;12150:44:4;;;;;;;;;;;;;::::1;;12204:11;:18:::0;;-1:-1:-1;;12204:18:4::1;12218:4;12204:18;::::0;;12034:195::o;3052:106::-;3136:15;;;;;-1:-1:-1;;;;;3136:15:4;;3052:106::o;12235:201::-;12291:9;12328:2;12315;:9;:15;12312:118;;-1:-1:-1;12396:4:4;12384:21;12378:28;;12235:201::o;5089:374::-;5140:18;;;;5132:80;;;;-1:-1:-1;;;5132:80:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5244:6;;;;;-1:-1:-1;;;;;5244:6:4;5230:10;:20;5222:67;;;;-1:-1:-1;;;5222:67:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5307:15;;:20;5299:49;;;;;-1:-1:-1;;;5299:49:4;;;;;;;;;;;;-1:-1:-1;;;5299:49:4;;;;;;;;;;;;;;;5367:9;;-1:-1:-1;;;5367:9:4;;;;5366:10;5358:40;;;;;-1:-1:-1;;;5358:40:4;;;;;;;;;;;;-1:-1:-1;;;5358:40:4;;;;;;;;;;;;;;;5441:15;;5426:12;:30;5408:15;:48;5089:374::o;3280:94::-;3358:9;;-1:-1:-1;;;;;3358:9:4;3280:94;:::o;4660:::-;4736:11;;;;4660:94;:::o;4042:::-;4120:9;;;;;-1:-1:-1;;;;;4120:9:4;;4042:94::o;9846:383::-;7247:18;;;;7239:80;;;;-1:-1:-1;;;7239:80:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7338:9;;-1:-1:-1;;;7338:9:4;;;;7337:10;7329:39;;;;;-1:-1:-1;;;7329:39:4;;;;;;;;;;;;-1:-1:-1;;;7329:39:4;;;;;;;;;;;;;;;7387:11;;;;7386:12;7378:43;;;;;-1:-1:-1;;;7378:43:4;;;;;;;;;;;;-1:-1:-1;;;7378:43:4;;;;;;;;;;;;;;;7440:20;;;;7439:21;7431:57;;;;;-1:-1:-1;;;7431:57:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7431:57:4;;;;;;;;;;;;;;;7524:1;7506:15;;:19;7498:51;;;;;-1:-1:-1;;;7498:51:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7498:51:4;;;;;;;;;;;;;;;7582:15;;7567:12;:30;7559:56;;;;;-1:-1:-1;;;7559:56:4;;;;;;;;;;;;-1:-1:-1;;;7559:56:4;;;;;;;;;;;;;;;9941:10:::1;9933:19;::::0;;;:7:::1;:19;::::0;;;;;:29;-1:-1:-1;9933:29:4::1;9925:61;;;::::0;;-1:-1:-1;;;9925:61:4;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;9925:61:4;;;;;;;;;;;;;::::1;;10003:6;::::0;9996:43:::1;::::0;;-1:-1:-1;;;9996:43:4;;10020:10:::1;9996:43;::::0;::::1;::::0;;;;;;;;;-1:-1:-1;;;;;10003:6:4;;::::1;::::0;9996:23:::1;::::0;:43;;;;;::::1;::::0;;;;;;;;;10003:6:::1;::::0;9996:43;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;9996:43:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;9996:43:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;;10072:10:4::1;10049:12;10064:19:::0;;;:7:::1;9996:43;10064:19:::0;;;;;;;;;;10093:14;;::::1;10117:26:::0;;;;10153:12:::1;:22:::0;;;;::::1;::::0;;10190:32;;;;;;;10093:14;;10072:10;10190:32:::1;::::0;;;;;;;::::1;7625:1;9846:383:::0;:::o;10730:453::-;7247:18;;;;7239:80;;;;-1:-1:-1;;;7239:80:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7338:9;;-1:-1:-1;;;7338:9:4;;;;7337:10;7329:39;;;;;-1:-1:-1;;;7329:39:4;;;;;;;;;;;;-1:-1:-1;;;7329:39:4;;;;;;;;;;;;;;;7387:11;;;;7386:12;7378:43;;;;;-1:-1:-1;;;7378:43:4;;;;;;;;;;;;-1:-1:-1;;;7378:43:4;;;;;;;;;;;;;;;7440:20;;;;7439:21;7431:57;;;;;-1:-1:-1;;;7431:57:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7431:57:4;;;;;;;;;;;;;;;7524:1;7506:15;;:19;7498:51;;;;;-1:-1:-1;;;7498:51:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7498:51:4;;;;;;;;;;;;;;;7582:15;;7567:12;:30;7559:56;;;;;-1:-1:-1;;;7559:56:4;;;;;;;;;;;;-1:-1:-1;;;7559:56:4;;;;;;;;;;;;;;;10830:10:::1;10844:1;10822:19:::0;;;:7:::1;:19;::::0;;;;;;;;10800:7:::1;:19:::0;;;;;;;:41:::1;10792:67;;;::::0;;-1:-1:-1;;;10792:67:4;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;10792:67:4;;;;;;;;;;;;;::::1;;10892:10;10869:12;10884:19:::0;;;:7:::1;:19;::::0;;;;;;;;10927:7:::1;:19:::0;;;;;;10963:6:::1;::::0;10956:47;;-1:-1:-1;;;10956:47:4;;::::1;::::0;::::1;::::0;;;;10992:10;;::::1;10956:47:::0;;;;;;10884:19;;10927;;-1:-1:-1;;;;;10963:6:4;;::::1;::::0;10956:23:::1;::::0;:47;;;;;10884:19;;10956:47;;;;;;;10963:6;10956:47;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;10956:47:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;10956:47:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;;11021:10:4::1;11035:1;11013:19:::0;;;:7:::1;10956:47;11013:19:::0;;;;;;;:23;;;11046:7:::1;:19:::0;;;;;:23;;;;11079:12:::1;:20:::0;;;;::::1;::::0;;11109:12:::1;:19:::0;;;;::::1;::::0;;11143:33;;11165:10;;::::1;11143:33:::0;;;;::::1;::::0;;;;;;;;::::1;7625:1;;10730:453::o:0;8607:383::-;7247:18;;;;7239:80;;;;-1:-1:-1;;;7239:80:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7338:9;;-1:-1:-1;;;7338:9:4;;;;7337:10;7329:39;;;;;-1:-1:-1;;;7329:39:4;;;;;;;;;;;;-1:-1:-1;;;7329:39:4;;;;;;;;;;;;;;;7387:11;;;;7386:12;7378:43;;;;;-1:-1:-1;;;7378:43:4;;;;;;;;;;;;-1:-1:-1;;;7378:43:4;;;;;;;;;;;;;;;7440:20;;;;7439:21;7431:57;;;;;-1:-1:-1;;;7431:57:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7431:57:4;;;;;;;;;;;;;;;7524:1;7506:15;;:19;7498:51;;;;;-1:-1:-1;;;7498:51:4;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7498:51:4;;;;;;;;;;;;;;;7582:15;;7567:12;:30;7559:56;;;;;-1:-1:-1;;;7559:56:4;;;;;;;;;;;;-1:-1:-1;;;7559:56:4;;;;;;;;;;;;;;;8702:10:::1;8694:19;::::0;;;:7:::1;:19;::::0;;;;;:29;-1:-1:-1;8694:29:4::1;8686:61;;;::::0;;-1:-1:-1;;;8686:61:4;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;8686:61:4;;;;;;;;;;;;;::::1;;8764:6;::::0;8757:43:::1;::::0;;-1:-1:-1;;;8757:43:4;;8781:10:::1;8757:43;::::0;::::1;::::0;;;;;;;;;-1:-1:-1;;;;;8764:6:4;;::::1;::::0;8757:23:::1;::::0;:43;;;;;::::1;::::0;;;;;;;;;8764:6:::1;::::0;8757:43;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;8757:43:4;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;8757:43:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;;8833:10:4::1;8810:12;8825:19:::0;;;:7:::1;8757:43;8825:19:::0;;;;;;;;;;8854:14;;::::1;8878:26:::0;;;;8914:12:::1;:22:::0;;;;::::1;::::0;;8951:32;;;;;;;8854:14;;8833:10;8951:32:::1;::::0;;;;;;;::::1;7625:1;8607:383:::0;:::o;3936:100::-;4020:9;4013:16;;;;;;;;-1:-1:-1;;4013:16:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3988:13;;4013:16;;4020:9;;4013:16;;4020:9;4013:16;;;;;;;;;;;;;;;;;;;;;;;;11556:472;11620:11;11619:12;:61;;;-1:-1:-1;11665:10:4;11679:1;11657:19;;;:7;:19;;;;;;;;;11635:7;:19;;;;;;;:41;:45;;11619:61;11611:94;;;;;-1:-1:-1;;;11611:94:4;;;;;;;;;;;;-1:-1:-1;;;11611:94:4;;;;;;;;;;;;;;;11724:11;11723:12;:40;;;-1:-1:-1;11752:10:4;11740:23;;;;:11;:23;;;;;;;;11739:24;11723:40;11715:72;;;;;-1:-1:-1;;;11715:72:4;;;;;;;;;;;;-1:-1:-1;;;11715:72:4;;;;;;;;;;;;;;;11830:10;11844:1;11822:19;;;:7;:19;;;;;;;;;11800:7;:19;;;;;;;:41;:45;;;;:73;;-1:-1:-1;11862:10:4;11850:23;;;;:11;:23;;;;;;;;11849:24;11800:73;11797:225;;;11896:6;;11913:10;11896:6;11947:19;;;:7;:19;;;;;;;;;11925:7;:19;;;;;;11889:78;;-1:-1:-1;;;11889:78:4;;;;;;;;;11925:41;11889:78;;;;;-1:-1:-1;;;;;11896:6:4;;;;11889:23;;:78;;;;;;;;;;;;;11896:6;11889:78;;;2:2:-1;;;;27:1;24;17:12;2:2;11889:78:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11889:78:4;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;11993:10:4;11981:23;;;;:11;11889:78;11981:23;;;;:30;;-1:-1:-1;;11981:30:4;12007:4;11981:30;;;11797:225;11556:472;:::o;6782:417::-;7095:25;7064:57;;;;;;6929:9;7064:57;;;;;;-1:-1:-1;;7064:57:4;;;;;;;;;;;;;;;;;;;;;;;;;6833:13;;6989:16;;7064:57;;;;;7095:25;7064:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:30;:57::i;:::-;7164:9;6871:320;;;;;;-1:-1:-1;;;6871:320:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6871:320:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;6871:320:4;;;;;;;-1:-1:-1;;;6871:320:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6871:320:4;;;;;-1:-1:-1;;26:21;;;22:32;6:49;;6871:320:4;;;;;;;-1:-1:-1;;;;;;6782:417:4;:::o;8014:232::-;8065:13;;:18;;:84;;;8103:13;;8088:12;;:28;:60;;;;;8135:13;;8120:12;;:28;8088:60;8062:120;;;8165:7;;8062:120;8191:20;:27;;-1:-1:-1;;8191:27:4;8214:4;8191:27;;;8228:11;:9;:11::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;

Swarm Source

ipfs://cc7f3bf856466276233180424b6f508fe3d144c7a0a548366500787677c07fa5

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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