{
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract IOracle",
          "name": "_oracle",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "Module_OnlyOracle",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        }
      ],
      "name": "Oracle_AlreadyFinalized",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_caller",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "_responseId",
          "type": "bytes32"
        }
      ],
      "name": "Oracle_CannotDeleteInvalidProposer",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_responseId",
          "type": "bytes32"
        }
      ],
      "name": "Oracle_CannotDeleteWhileDisputing",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        }
      ],
      "name": "Oracle_CannotEscalate",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        }
      ],
      "name": "Oracle_CannotResolve",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "Oracle_CannotTamperParticipant",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        }
      ],
      "name": "Oracle_InvalidDisputeId",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_responseId",
          "type": "bytes32"
        }
      ],
      "name": "Oracle_InvalidFinalizedResponse",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        }
      ],
      "name": "Oracle_InvalidRequestId",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_responseId",
          "type": "bytes32"
        }
      ],
      "name": "Oracle_InvalidResponseId",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        }
      ],
      "name": "Oracle_NoResolutionModule",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_caller",
          "type": "address"
        }
      ],
      "name": "Oracle_NotDisputeModule",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_caller",
          "type": "address"
        }
      ],
      "name": "Oracle_NotResolutionModule",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_responseId",
          "type": "bytes32"
        }
      ],
      "name": "Oracle_ResponseAlreadyDisputed",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "SequentialResolutionModule_NotImplemented",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "SequentialResolutionModule_OnlySubmodule",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_sequenceId",
          "type": "uint256"
        }
      ],
      "name": "SequentialResolutionModule_SequenceIdAlreadyUsed",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_caller",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        }
      ],
      "name": "DisputeEscalated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "enum IOracle.DisputeStatus",
          "name": "_status",
          "type": "uint8"
        }
      ],
      "name": "DisputeResolved",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_caller",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        }
      ],
      "name": "DisputeResolved",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "enum IOracle.DisputeStatus",
          "name": "_status",
          "type": "uint8"
        }
      ],
      "name": "DisputeStatusUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_caller",
          "type": "address"
        }
      ],
      "name": "OracleRequestFinalized",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_requester",
          "type": "address"
        }
      ],
      "name": "RequestCreated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "_finalizer",
          "type": "address"
        }
      ],
      "name": "RequestFinalized",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_sequenceId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "contract IResolutionModule[]",
          "name": "_modules",
          "type": "address[]"
        }
      ],
      "name": "ResolutionSequenceAdded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        }
      ],
      "name": "ResolutionStarted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_caller",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_responseId",
          "type": "bytes32"
        }
      ],
      "name": "ResponseDeleted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_disputer",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_responseId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        }
      ],
      "name": "ResponseDisputed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_proposer",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_responseId",
          "type": "bytes32"
        }
      ],
      "name": "ResponseProposed",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "ORACLE",
      "outputs": [
        {
          "internalType": "contract IOracle",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IResolutionModule[]",
          "name": "_modules",
          "type": "address[]"
        }
      ],
      "name": "addResolutionModuleSequence",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_sequenceId",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "_module",
          "type": "address"
        }
      ],
      "name": "allowedModule",
      "outputs": [
        {
          "internalType": "bool",
          "name": "_allowedModule",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "bytes",
              "name": "requestModuleData",
              "type": "bytes"
            },
            {
              "internalType": "bytes",
              "name": "responseModuleData",
              "type": "bytes"
            },
            {
              "internalType": "bytes",
              "name": "disputeModuleData",
              "type": "bytes"
            },
            {
              "internalType": "bytes",
              "name": "resolutionModuleData",
              "type": "bytes"
            },
            {
              "internalType": "bytes",
              "name": "finalityModuleData",
              "type": "bytes"
            },
            {
              "internalType": "bytes32",
              "name": "ipfsHash",
              "type": "bytes32"
            },
            {
              "internalType": "contract IRequestModule",
              "name": "requestModule",
              "type": "address"
            },
            {
              "internalType": "contract IResponseModule",
              "name": "responseModule",
              "type": "address"
            },
            {
              "internalType": "contract IDisputeModule",
              "name": "disputeModule",
              "type": "address"
            },
            {
              "internalType": "contract IResolutionModule",
              "name": "resolutionModule",
              "type": "address"
            },
            {
              "internalType": "contract IFinalityModule",
              "name": "finalityModule",
              "type": "address"
            }
          ],
          "internalType": "struct IOracle.NewRequest",
          "name": "",
          "type": "tuple"
        }
      ],
      "name": "createRequest",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "bytes",
              "name": "requestModuleData",
              "type": "bytes"
            },
            {
              "internalType": "bytes",
              "name": "responseModuleData",
              "type": "bytes"
            },
            {
              "internalType": "bytes",
              "name": "disputeModuleData",
              "type": "bytes"
            },
            {
              "internalType": "bytes",
              "name": "resolutionModuleData",
              "type": "bytes"
            },
            {
              "internalType": "bytes",
              "name": "finalityModuleData",
              "type": "bytes"
            },
            {
              "internalType": "bytes32",
              "name": "ipfsHash",
              "type": "bytes32"
            },
            {
              "internalType": "contract IRequestModule",
              "name": "requestModule",
              "type": "address"
            },
            {
              "internalType": "contract IResponseModule",
              "name": "responseModule",
              "type": "address"
            },
            {
              "internalType": "contract IDisputeModule",
              "name": "disputeModule",
              "type": "address"
            },
            {
              "internalType": "contract IResolutionModule",
              "name": "resolutionModule",
              "type": "address"
            },
            {
              "internalType": "contract IFinalityModule",
              "name": "finalityModule",
              "type": "address"
            }
          ],
          "internalType": "struct IOracle.NewRequest[]",
          "name": "",
          "type": "tuple[]"
        }
      ],
      "name": "createRequests",
      "outputs": [
        {
          "internalType": "bytes32[]",
          "name": "",
          "type": "bytes32[]"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        }
      ],
      "name": "currentModuleIndex",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_moduleIndex",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "currentSequenceId",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        }
      ],
      "name": "decodeRequestData",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "sequenceId",
              "type": "uint256"
            },
            {
              "internalType": "bytes[]",
              "name": "submoduleData",
              "type": "bytes[]"
            }
          ],
          "internalType": "struct ISequentialResolutionModule.RequestParameters",
          "name": "_params",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "deleteResponse",
      "outputs": [],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        }
      ],
      "name": "disputeOf",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "disputeResponse",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        }
      ],
      "name": "escalateDispute",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        }
      ],
      "name": "finalize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "_finalizedResponseId",
          "type": "bytes32"
        }
      ],
      "name": "finalize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "_finalizer",
          "type": "address"
        }
      ],
      "name": "finalizeRequest",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        }
      ],
      "name": "getCurrentResolutionModule",
      "outputs": [
        {
          "internalType": "contract IResolutionModule",
          "name": "_module",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        }
      ],
      "name": "getDispute",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "createdAt",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "disputer",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "proposer",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "responseId",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "requestId",
              "type": "bytes32"
            },
            {
              "internalType": "enum IOracle.DisputeStatus",
              "name": "status",
              "type": "uint8"
            }
          ],
          "internalType": "struct IOracle.Dispute",
          "name": "_dispute",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        }
      ],
      "name": "getFinalizedResponse",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "createdAt",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "proposer",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "requestId",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "disputeId",
              "type": "bytes32"
            },
            {
              "internalType": "bytes",
              "name": "response",
              "type": "bytes"
            }
          ],
          "internalType": "struct IOracle.Response",
          "name": "_response",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        }
      ],
      "name": "getFinalizedResponseId",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "_finalizedResponseId",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        }
      ],
      "name": "getFullRequest",
      "outputs": [
        {
          "components": [
            {
              "internalType": "bytes",
              "name": "requestModuleData",
              "type": "bytes"
            },
            {
              "internalType": "bytes",
              "name": "responseModuleData",
              "type": "bytes"
            },
            {
              "internalType": "bytes",
              "name": "disputeModuleData",
              "type": "bytes"
            },
            {
              "internalType": "bytes",
              "name": "resolutionModuleData",
              "type": "bytes"
            },
            {
              "internalType": "bytes",
              "name": "finalityModuleData",
              "type": "bytes"
            },
            {
              "internalType": "bytes32",
              "name": "ipfsHash",
              "type": "bytes32"
            },
            {
              "internalType": "contract IRequestModule",
              "name": "requestModule",
              "type": "address"
            },
            {
              "internalType": "contract IResponseModule",
              "name": "responseModule",
              "type": "address"
            },
            {
              "internalType": "contract IDisputeModule",
              "name": "disputeModule",
              "type": "address"
            },
            {
              "internalType": "contract IResolutionModule",
              "name": "resolutionModule",
              "type": "address"
            },
            {
              "internalType": "contract IFinalityModule",
              "name": "finalityModule",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "requester",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "nonce",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "createdAt",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "finalizedAt",
              "type": "uint256"
            },
            {
              "internalType": "bytes32",
              "name": "requestId",
              "type": "bytes32"
            }
          ],
          "internalType": "struct IOracle.FullRequest",
          "name": "_request",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        }
      ],
      "name": "getRequest",
      "outputs": [
        {
          "components": [
            {
              "internalType": "bytes32",
              "name": "ipfsHash",
              "type": "bytes32"
            },
            {
              "internalType": "contract IRequestModule",
              "name": "requestModule",
              "type": "address"
            },
            {
              "internalType": "contract IResponseModule",
              "name": "responseModule",
              "type": "address"
            },
            {
              "internalType": "contract IDisputeModule",
              "name": "disputeModule",
              "type": "address"
            },
            {
              "internalType": "contract IResolutionModule",
              "name": "resolutionModule",
              "type": "address"
            },
            {
              "internalType": "contract IFinalityModule",
              "name": "finalityModule",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "requester",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "nonce",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "createdAt",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "finalizedAt",
              "type": "uint256"
            }
          ],
          "internalType": "struct IOracle.Request",
          "name": "_request",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_nonce",
          "type": "uint256"
        }
      ],
      "name": "getRequestByNonce",
      "outputs": [
        {
          "components": [
            {
              "internalType": "bytes32",
              "name": "ipfsHash",
              "type": "bytes32"
            },
            {
              "internalType": "contract IRequestModule",
              "name": "requestModule",
              "type": "address"
            },
            {
              "internalType": "contract IResponseModule",
              "name": "responseModule",
              "type": "address"
            },
            {
              "internalType": "contract IDisputeModule",
              "name": "disputeModule",
              "type": "address"
            },
            {
              "internalType": "contract IResolutionModule",
              "name": "resolutionModule",
              "type": "address"
            },
            {
              "internalType": "contract IFinalityModule",
              "name": "finalityModule",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "requester",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "nonce",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "createdAt",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "finalizedAt",
              "type": "uint256"
            }
          ],
          "internalType": "struct IOracle.Request",
          "name": "_request",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_nonce",
          "type": "uint256"
        }
      ],
      "name": "getRequestId",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_responseId",
          "type": "bytes32"
        }
      ],
      "name": "getResponse",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "createdAt",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "proposer",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "requestId",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "disputeId",
              "type": "bytes32"
            },
            {
              "internalType": "bytes",
              "name": "response",
              "type": "bytes"
            }
          ],
          "internalType": "struct IOracle.Response",
          "name": "_response",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        }
      ],
      "name": "getResponseIds",
      "outputs": [
        {
          "internalType": "bytes32[]",
          "name": "_ids",
          "type": "bytes32[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "_user",
          "type": "address"
        }
      ],
      "name": "isParticipant",
      "outputs": [
        {
          "internalType": "bool",
          "name": "_isParticipant",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_startFrom",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_batchSize",
          "type": "uint256"
        }
      ],
      "name": "listRequestIds",
      "outputs": [
        {
          "internalType": "bytes32[]",
          "name": "_list",
          "type": "bytes32[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_startFrom",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "listRequests",
      "outputs": [
        {
          "components": [
            {
              "internalType": "bytes",
              "name": "requestModuleData",
              "type": "bytes"
            },
            {
              "internalType": "bytes",
              "name": "responseModuleData",
              "type": "bytes"
            },
            {
              "internalType": "bytes",
              "name": "disputeModuleData",
              "type": "bytes"
            },
            {
              "internalType": "bytes",
              "name": "resolutionModuleData",
              "type": "bytes"
            },
            {
              "internalType": "bytes",
              "name": "finalityModuleData",
              "type": "bytes"
            },
            {
              "internalType": "bytes32",
              "name": "ipfsHash",
              "type": "bytes32"
            },
            {
              "internalType": "contract IRequestModule",
              "name": "requestModule",
              "type": "address"
            },
            {
              "internalType": "contract IResponseModule",
              "name": "responseModule",
              "type": "address"
            },
            {
              "internalType": "contract IDisputeModule",
              "name": "disputeModule",
              "type": "address"
            },
            {
              "internalType": "contract IResolutionModule",
              "name": "resolutionModule",
              "type": "address"
            },
            {
              "internalType": "contract IFinalityModule",
              "name": "finalityModule",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "requester",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "nonce",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "createdAt",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "finalizedAt",
              "type": "uint256"
            },
            {
              "internalType": "bytes32",
              "name": "requestId",
              "type": "bytes32"
            }
          ],
          "internalType": "struct IOracle.FullRequest[]",
          "name": "_list",
          "type": "tuple[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_startFrom",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_batchSize",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_sequenceId",
          "type": "uint256"
        }
      ],
      "name": "listSubmodules",
      "outputs": [
        {
          "internalType": "contract IResolutionModule[]",
          "name": "_list",
          "type": "address[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "moduleName",
      "outputs": [
        {
          "internalType": "string",
          "name": "_moduleName",
          "type": "string"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "oracle",
      "outputs": [
        {
          "internalType": "address",
          "name": "_oracle",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "name": "proposeResponse",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "name": "proposeResponse",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        }
      ],
      "name": "requestData",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "_requestData",
          "type": "bytes"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        }
      ],
      "name": "requestIdForDispute",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        }
      ],
      "name": "resolveDispute",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "internalType": "bytes",
          "name": "_data",
          "type": "bytes"
        }
      ],
      "name": "setupRequest",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        }
      ],
      "name": "startResolution",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalRequestCount",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_count",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        },
        {
          "internalType": "enum IOracle.DisputeStatus",
          "name": "_status",
          "type": "uint8"
        }
      ],
      "name": "updateDisputeStatus",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": {
    "object": "0x60a06040523480156200001157600080fd5b50604051620037e4380380620037e4833981016040819052620000349162000046565b6001600160a01b031660805262000078565b6000602082840312156200005957600080fd5b81516001600160a01b03811681146200007157600080fd5b9392505050565b6080516136a162000143600039600081816103d3015281816104d10152818161087d015281816109a201528181610a9501528181610b3701528181610bd001528181610c6901528181610da101528181610f3a015281816110c20152818161117801528181611329015281816113c9015281816114f401528181611606015281816116830152818161175601528181611813015281816118c20152818161195101528181611ae001528181611b6701528181611bf001528181611d830152611e8101526136a16000f3fe608060405234801561001057600080fd5b50600436106102c85760003560e01c8063843d7a701161017b578063c44a8923116100d8578063d96dd0e71161008c578063eeff613911610071578063eeff613914610681578063fb1e61ca146106a1578063ffc84d69146106b457600080fd5b8063d96dd0e71461064e578063da526d1b1461066157600080fd5b8063c65ff8f2116100bd578063c65ff8f214610608578063c8218e3e1461061b578063d35d640e1461062e57600080fd5b8063c44a8923146105d2578063c4a41c4f146105f557600080fd5b806397a0075d1161012f578063b06303f211610114578063b06303f21461059e578063b2d83645146105ac578063b670e144146105bf57600080fd5b806397a0075d1461056b578063a803b59d1461057e57600080fd5b806392b0382f1161016057806392b0382f1461051157806393f0899a1461051f5780639427c7d61461055857600080fd5b8063843d7a70146104f557806392584d80146104fe57600080fd5b8063415a2bc1116102295780635b425b09116101dd57806368814af8116101c257806368814af81461049c5780637436f080146104af5780637dc0d1d0146104cf57600080fd5b80635b425b091461046957806367b3a1e91461047c57600080fd5b80634d610a461161020e5780634d610a4614610428578063548a48841461044857806359e318aa1461045b57600080fd5b8063415a2bc1146103f557806349c7741e1461040857600080fd5b80632e76be2a116102805780633261bb3f116102655780633261bb3f146103a65780633661346b146103ae57806338013f02146103ce57600080fd5b80632e76be2a14610380578063309de6071461039357600080fd5b8063136ba6aa116102b1578063136ba6aa1461031f578063163ed02f1461033f5780631af022111461035f57600080fd5b80630c1d0c23146102cd5780630cad26ce146102e2575b600080fd5b6102e06102db3660046121b4565b6106c7565b005b6102f56102f03660046121e4565b6108ef565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61033261032d3660046121e4565b61093d565b6040516103169190612267565b61035261034d3660046121e4565b610a28565b6040516103169190612320565b61037261036d3660046121e4565b610b05565b604051908152602001610316565b6102e061038e3660046123c2565b610bb8565b6102e06103a1366004612430565b610c51565b610372610d9d565b6103c16103bc3660046121e4565b610e33565b6040516103169190612455565b6102f57f000000000000000000000000000000000000000000000000000000000000000081565b6103526104033660046121e4565b610ecd565b61041b610416366004612468565b610f69565b60405161031691906124dd565b61043b6104363660046121e4565b610f9d565b6040516103169190612521565b6103726104563660046125b4565b61105c565b61037261045636600461277c565b61041b6104773660046121e4565b611090565b61037261048a3660046121e4565b60016020526000908152604090205481565b6103726104aa3660046121e4565b611146565b6104c26104bd3660046128e4565b6111bc565b6040516103169190612961565b7f00000000000000000000000000000000000000000000000000000000000000006102f5565b61037260035481565b6102e061050c3660046121e4565b6112b2565b610372610456366004612974565b60408051808201909152601a81527f53657175656e7469616c5265736f6c7574696f6e4d6f64756c6500000000000060208201526103c1565b6103726105663660046121e4565b611397565b6103726105793660046129f4565b61140d565b61059161058c3660046125b4565b6114bb565b6040516103169190612beb565b6103726104563660046123c2565b6102e06105ba3660046121e4565b61157f565b61041b6105cd3660046125b4565b61164a565b6105e56105e0366004612430565b611707565b6040519015158152602001610316565b6105e5610603366004612430565b6117c4565b6102e06106163660046125b4565b611844565b6102e06106293660046121e4565b611939565b61064161063c3660046121e4565b611a20565b6040516103169190612c5e565b6102e061065c3660046121e4565b611b4f565b61037261066f3660046121e4565b60026020526000908152604090205481565b61069461068f3660046121e4565b611cf2565b6040516103169190612c71565b6106946106af3660046121e4565b611df0565b6102e06106c23660046121e4565b611eb0565b600082815260026020526040812054906107059033906004906106e985611ee2565b8152602001908152602001600020611f9290919063ffffffff16565b61073b576040517fd62e5f1d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600083815260026020908152604080832054600192839052908320549092916107649190612dc2565b905060006004600061077585611ee2565b815260208101919091526040016000209050600585600581111561079b5761079b6121fd565b1480156107af57506107ac81611fc1565b82105b156108405760008681526001602052604090208290556107cf8183611fcb565b73ffffffffffffffffffffffffffffffffffffffff1663d96dd0e7876040518263ffffffff1660e01b815260040161080991815260200190565b600060405180830381600087803b15801561082357600080fd5b505af1158015610837573d6000803e3d6000fd5b505050506108e7565b6040517f0c1d0c2300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690630c1d0c23906108b49089908990600401612dd5565b600060405180830381600087803b1580156108ce57600080fd5b505af11580156108e2573d6000803e3d6000fd5b505050505b505050505050565b60008181526001602090815260408083205460029092528220548290600490829061091990611ee2565b8152602081019190915260400160002090506109358183611fcb565b949350505050565b6109736040805160c08101825260008082526020820181905291810182905260608101829052608081018290529060a082015290565b6040517f136ba6aa000000000000000000000000000000000000000000000000000000008152600481018390527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063136ba6aa9060240160c060405180830381865afa1580156109fe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a229190612df4565b92915050565b6040805160a081018252600080825260208201819052818301819052606080830191909152608082015290517f163ed02f0000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063163ed02f906024015b600060405180830381865afa158015610add573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a229190810190612ecb565b6040517f1af02211000000000000000000000000000000000000000000000000000000008152600481018290526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690631af02211906024015b602060405180830381865afa158015610b94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a229190612f6b565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610c27576040517fbb44f97c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000838152602081905260409020610c4082848361301d565b50610c4c838383611fd7565b505050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610cc0576040517fbb44f97c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060046000610ccf85611ee2565b8152602001908152602001600020905060005b610ceb82611fc1565b811015610d9757610cfc8282611fcb565b6040517f309de6070000000000000000000000000000000000000000000000000000000081526004810186905273ffffffffffffffffffffffffffffffffffffffff8581166024830152919091169063309de60790604401600060405180830381600087803b158015610d6e57600080fd5b505af1158015610d82573d6000803e3d6000fd5b5050505080610d9090613119565b9050610ce2565b50505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16633261bb3f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2e9190612f6b565b905090565b60006020819052908152604090208054610e4c90612f84565b80601f0160208091040260200160405190810160405280929190818152602001828054610e7890612f84565b8015610ec55780601f10610e9a57610100808354040283529160200191610ec5565b820191906000526020600020905b815481529060010190602001808311610ea857829003601f168201915b505050505081565b6040805160a081018252600080825260208201819052818301819052606080830191909152608082015290517f415a2bc10000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063415a2bc190602401610ac0565b60606040517f2815397800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408051808201909152600081526060602082015260008281526020819052604090208054610fcb90612f84565b80601f0160208091040260200160405190810160405280929190818152602001828054610ff790612f84565b80156110445780601f1061101957610100808354040283529160200191611044565b820191906000526020600020905b81548152906001019060200180831161102757829003601f168201915b5050505050806020019051810190610a229190613151565b60006040517f2815397800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f5b425b09000000000000000000000000000000000000000000000000000000008152600481018290526060907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690635b425b0990602401600060405180830381865afa15801561111e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a22919081019061323a565b6040517f68814af8000000000000000000000000000000000000000000000000000000008152600481018290526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906368814af890602401610b77565b60008181526004602052604081206060916111d682611fc1565b905060006111e487836132c0565b86116111f057856111fa565b6111fa87836132c0565b90508067ffffffffffffffff811115611215576112156125d6565b60405190808252806020026020018201604052801561123e578160200160208202803683370190505b50935060005b818110156112a757611260611259828a612dc2565b8590611fcb565b858281518110611272576112726132d3565b73ffffffffffffffffffffffffffffffffffffffff909216602092830291909101909101526112a081613119565b9050611244565b505050509392505050565b806112c433600460006106e985611ee2565b6112fa576040517fd62e5f1d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f92584d80000000000000000000000000000000000000000000000000000000008152600481018390527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906392584d80906024015b600060405180830381600087803b15801561138357600080fd5b505af11580156108e7573d6000803e3d6000fd5b6040517f9427c7d6000000000000000000000000000000000000000000000000000000008152600481018290526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690639427c7d690602401610b77565b600060036000815461141e90613119565b918290555060008181526004602052604081209192505b835181101561147b5761146a848281518110611453576114536132d3565b6020026020010151836120e090919063ffffffff16565b5061147481613119565b9050611435565b507f2fc09c44e2c6dcd1a9c240e8466955d2e0fb7e1395b2db28dbda2ae75d449be982846040516114ad929190613302565b60405180910390a150919050565b6040517fa803b59d00000000000000000000000000000000000000000000000000000000815260048101839052602481018290526060907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063a803b59d90604401600060405180830381865afa158015611550573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611578919081019061349c565b9392505050565b600081815260026020526040812054906115a19033906004906106e985611ee2565b6115d7576040517fd62e5f1d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fb2d83645000000000000000000000000000000000000000000000000000000008152600481018390527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063b2d8364590602401611369565b6040517fb670e14400000000000000000000000000000000000000000000000000000000815260048101839052602481018290526060907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063b670e14490604401600060405180830381865afa1580156116df573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611578919081019061323a565b6040517fc44a89230000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82811660248301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063c44a8923906044015b602060405180830381865afa1580156117a0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611578919061354d565b6040517fc4a41c4f0000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82811660248301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063c4a41c4f90604401611783565b8161185633600460006106e985611ee2565b61188c576040517fd62e5f1d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fc65ff8f200000000000000000000000000000000000000000000000000000000815260048101849052602481018390527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063c65ff8f2906044015b600060405180830381600087803b15801561191c57600080fd5b505af1158015611930573d6000803e3d6000fd5b50505050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146119a8576040517fbb44f97c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6119b1816108ef565b73ffffffffffffffffffffffffffffffffffffffff1663c8218e3e826040518263ffffffff1660e01b81526004016119eb91815260200190565b600060405180830381600087803b158015611a0557600080fd5b505af1158015611a19573d6000803e3d6000fd5b5050505050565b60408051610200810182526060808252602082018190528183018190528082018190526080820152600060a0820181905260c0820181905260e08201819052610100820181905261012082018190526101408201819052610160820181905261018082018190526101a082018190526101c082018190526101e082015290517fd35d640e0000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063d35d640e90602401600060405180830381865afa158015611b27573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a22919081019061356f565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614611bbe576040517fbb44f97c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f136ba6aa000000000000000000000000000000000000000000000000000000008152600481018290526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063136ba6aa9060240160c060405180830381865afa158015611c4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c709190612df4565b608001516000838152600260205260408120829055909150600481611c9484611ee2565b81526020019081526020016000209050611cb8600082611fcb90919063ffffffff16565b73ffffffffffffffffffffffffffffffffffffffff1663d96dd0e7846040518263ffffffff1660e01b815260040161190291815260200190565b6040805161014081018252600080825260208201819052818301819052606082018190526080820181905260a0820181905260c0820181905260e08201819052610100820181905261012082015290517feeff61390000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063eeff6139906024015b61014060405180830381865afa158015611dcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2291906135a4565b6040805161014081018252600080825260208201819052818301819052606082018190526080820181905260a0820181905260c0820181905260e08201819052610100820181905261012082015290517ffb1e61ca0000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063fb1e61ca90602401611dae565b6040517f2815397800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008181526020819052604081208054829190611efe90612f84565b80601f0160208091040260200160405190810160405280929190818152602001828054611f2a90612f84565b8015611f775780601f10611f4c57610100808354040283529160200191611f77565b820191906000526020600020905b815481529060010190602001808311611f5a57829003601f168201915b505050505090506000611f8982612102565b51949350505050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001830160205260408120541515611578565b6000610a22825490565b6000611578838361212b565b600061201883838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061210292505050565b805160009081526004602052604081209192505b61203582611fc1565b8110156108e7576120468282611fcb565b73ffffffffffffffffffffffffffffffffffffffff16632e76be2a8785602001518481518110612078576120786132d3565b60200260200101516040518363ffffffff1660e01b815260040161209d929190613652565b600060405180830381600087803b1580156120b757600080fd5b505af11580156120cb573d6000803e3d6000fd5b50505050806120d990613119565b905061202c565b60006115788373ffffffffffffffffffffffffffffffffffffffff8416612155565b60408051808201909152600081526060602082015281806020019051810190610a229190613151565b6000826000018281548110612142576121426132d3565b9060005260206000200154905092915050565b600081815260018301602052604081205461219c57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610a22565b506000610a22565b600681106121b157600080fd5b50565b600080604083850312156121c757600080fd5b8235915060208301356121d9816121a4565b809150509250929050565b6000602082840312156121f657600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60068110612263577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b600060c08201905082518252602083015173ffffffffffffffffffffffffffffffffffffffff80821660208501528060408601511660408501525050606083015160608301526080830151608083015260a08301516122c960a084018261222c565b5092915050565b60005b838110156122eb5781810151838201526020016122d3565b50506000910152565b6000815180845261230c8160208601602086016122d0565b601f01601f19169290920160200192915050565b602081528151602082015273ffffffffffffffffffffffffffffffffffffffff602083015116604082015260408201516060820152606082015160808201526000608083015160a08084015261093560c08401826122f4565b60008083601f84011261238b57600080fd5b50813567ffffffffffffffff8111156123a357600080fd5b6020830191508360208285010111156123bb57600080fd5b9250929050565b6000806000604084860312156123d757600080fd5b83359250602084013567ffffffffffffffff8111156123f557600080fd5b61240186828701612379565b9497909650939450505050565b73ffffffffffffffffffffffffffffffffffffffff811681146121b157600080fd5b6000806040838503121561244357600080fd5b8235915060208301356121d98161240e565b60208152600061157860208301846122f4565b6000806020838503121561247b57600080fd5b823567ffffffffffffffff8082111561249357600080fd5b818501915085601f8301126124a757600080fd5b8135818111156124b657600080fd5b8660208260051b85010111156124cb57600080fd5b60209290920196919550909350505050565b6020808252825182820181905260009190848201906040850190845b81811015612515578351835292840192918401916001016124f9565b50909695505050505050565b60006020808352606083018451828501528185015160408086015281815180845260808701915060808160051b8801019350848301925060005b818110156125a7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808886030183526125958585516122f4565b9450928501929185019160010161255b565b5092979650505050505050565b600080604083850312156125c757600080fd5b50508035926020909101359150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610160810167ffffffffffffffff81118282101715612629576126296125d6565b60405290565b60405160a0810167ffffffffffffffff81118282101715612629576126296125d6565b6040805190810167ffffffffffffffff81118282101715612629576126296125d6565b604051610200810167ffffffffffffffff81118282101715612629576126296125d6565b604051610140810167ffffffffffffffff81118282101715612629576126296125d6565b604051601f8201601f1916810167ffffffffffffffff811182821017156126e6576126e66125d6565b604052919050565b600067ffffffffffffffff821115612708576127086125d6565b50601f01601f191660200190565b600082601f83011261272757600080fd5b813561273a612735826126ee565b6126bd565b81815284602083860101111561274f57600080fd5b816020850160208301376000918101602001919091529392505050565b80356127778161240e565b919050565b60006020828403121561278e57600080fd5b813567ffffffffffffffff808211156127a657600080fd5b9083019061016082860312156127bb57600080fd5b6127c3612605565b8235828111156127d257600080fd5b6127de87828601612716565b8252506020830135828111156127f357600080fd5b6127ff87828601612716565b60208301525060408301358281111561281757600080fd5b61282387828601612716565b60408301525060608301358281111561283b57600080fd5b61284787828601612716565b60608301525060808301358281111561285f57600080fd5b61286b87828601612716565b60808301525060a083013560a082015261288760c0840161276c565b60c082015261289860e0840161276c565b60e082015261010091506128ad82840161276c565b8282015261012091506128c182840161276c565b8282015261014091506128d582840161276c565b91810191909152949350505050565b6000806000606084860312156128f957600080fd5b505081359360208301359350604090920135919050565b600081518084526020808501945080840160005b8381101561295657815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101612924565b509495945050505050565b6020815260006115786020830184612910565b6000806000806060858703121561298a57600080fd5b84356129958161240e565b935060208501359250604085013567ffffffffffffffff8111156129b857600080fd5b6129c487828801612379565b95989497509550505050565b600067ffffffffffffffff8211156129ea576129ea6125d6565b5060051b60200190565b60006020808385031215612a0757600080fd5b823567ffffffffffffffff811115612a1e57600080fd5b8301601f81018513612a2f57600080fd5b8035612a3d612735826129d0565b81815260059190911b82018301908381019087831115612a5c57600080fd5b928401925b82841015612a83578335612a748161240e565b82529284019290840190612a61565b979650505050505050565b60006102008251818552612aa4828601826122f4565b91505060208301518482036020860152612abe82826122f4565b91505060408301518482036040860152612ad882826122f4565b91505060608301518482036060860152612af282826122f4565b91505060808301518482036080860152612b0c82826122f4565b91505060a083015160a085015260c0830151612b4060c086018273ffffffffffffffffffffffffffffffffffffffff169052565b5060e0830151612b6860e086018273ffffffffffffffffffffffffffffffffffffffff169052565b506101008381015173ffffffffffffffffffffffffffffffffffffffff908116918601919091526101208085015182169086015261014080850151821690860152610160808501519091169085015261018080840151908501526101a080840151908501526101c080840151908501526101e09283015192909301919091525090565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156125a7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452612c4c858351612a8e565b94509285019290850190600101612c12565b6020815260006115786020830184612a8e565b81518152602080830151610140830191612ca29084018273ffffffffffffffffffffffffffffffffffffffff169052565b506040830151612cca604084018273ffffffffffffffffffffffffffffffffffffffff169052565b506060830151612cf2606084018273ffffffffffffffffffffffffffffffffffffffff169052565b506080830151612d1a608084018273ffffffffffffffffffffffffffffffffffffffff169052565b5060a0830151612d4260a084018273ffffffffffffffffffffffffffffffffffffffff169052565b5060c0830151612d6a60c084018273ffffffffffffffffffffffffffffffffffffffff169052565b5060e083015160e083015261010080840151818401525061012080840151818401525092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610a2257610a22612d93565b82815260408101611578602083018461222c565b80516127778161240e565b600060c08284031215612e0657600080fd5b60405160c0810181811067ffffffffffffffff82111715612e2957612e296125d6565b604052825181526020830151612e3e8161240e565b60208201526040830151612e518161240e565b80604083015250606083015160608201526080830151608082015260a0830151612e7a816121a4565b60a08201529392505050565b600082601f830112612e9757600080fd5b8151612ea5612735826126ee565b818152846020838601011115612eba57600080fd5b6109358260208301602087016122d0565b600060208284031215612edd57600080fd5b815167ffffffffffffffff80821115612ef557600080fd5b9083019060a08286031215612f0957600080fd5b612f1161262f565b825181526020830151612f238161240e565b806020830152506040830151604082015260608301516060820152608083015182811115612f5057600080fd5b612f5c87828601612e86565b60808301525095945050505050565b600060208284031215612f7d57600080fd5b5051919050565b600181811c90821680612f9857607f821691505b602082108103612fd1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f821115610c4c57600081815260208120601f850160051c81016020861015612ffe5750805b601f850160051c820191505b818110156108e75782815560010161300a565b67ffffffffffffffff831115613035576130356125d6565b613049836130438354612f84565b83612fd7565b6000601f84116001811461309b57600085156130655750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355611a19565b600083815260209020601f19861690835b828110156130cc57868501358255602094850194600190920191016130ac565b5086821015613107577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361314a5761314a612d93565b5060010190565b6000602080838503121561316457600080fd5b825167ffffffffffffffff8082111561317c57600080fd5b908401906040828703121561319057600080fd5b613198612652565b8251815283830151828111156131ad57600080fd5b80840193505086601f8401126131c257600080fd5b82516131d0612735826129d0565b81815260059190911b840185019085810190898311156131ef57600080fd5b8686015b838110156132275780518681111561320b5760008081fd5b6132198c8a838b0101612e86565b8452509187019187016131f3565b5095830195909552509695505050505050565b6000602080838503121561324d57600080fd5b825167ffffffffffffffff81111561326457600080fd5b8301601f8101851361327557600080fd5b8051613283612735826129d0565b81815260059190911b820183019083810190878311156132a257600080fd5b928401925b82841015612a83578351825292840192908401906132a7565b81810381811115610a2257610a22612d93565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8281526040602082015260006109356040830184612910565b6000610200828403121561332e57600080fd5b613336612675565b9050815167ffffffffffffffff8082111561335057600080fd5b61335c85838601612e86565b8352602084015191508082111561337257600080fd5b61337e85838601612e86565b6020840152604084015191508082111561339757600080fd5b6133a385838601612e86565b604084015260608401519150808211156133bc57600080fd5b6133c885838601612e86565b606084015260808401519150808211156133e157600080fd5b506133ee84828501612e86565b60808301525060a082015160a082015261340a60c08301612de9565b60c082015261341b60e08301612de9565b60e082015261010061342e818401612de9565b90820152610120613440838201612de9565b90820152610140613452838201612de9565b90820152610160613464838201612de9565b9082015261018082810151908201526101a080830151908201526101c080830151908201526101e09182015191810191909152919050565b600060208083850312156134af57600080fd5b825167ffffffffffffffff808211156134c757600080fd5b818501915085601f8301126134db57600080fd5b81516134e9612735826129d0565b81815260059190911b8301840190848101908883111561350857600080fd5b8585015b83811015613540578051858111156135245760008081fd5b6135328b89838a010161331b565b84525091860191860161350c565b5098975050505050505050565b60006020828403121561355f57600080fd5b8151801515811461157857600080fd5b60006020828403121561358157600080fd5b815167ffffffffffffffff81111561359857600080fd5b6109358482850161331b565b600061014082840312156135b757600080fd5b6135bf612699565b825181526135cf60208401612de9565b60208201526135e060408401612de9565b60408201526135f160608401612de9565b606082015261360260808401612de9565b608082015261361360a08401612de9565b60a082015261362460c08401612de9565b60c082015260e083810151908201526101008084015190820152610120928301519281019290925250919050565b82815260406020820152600061093560408301846122f456fea264697066735822122073d24c53df27d9e23edeaedfc5a53d228b57fa0b432659a70671c3296fb2df4764736f6c63430008130033",
    "sourceMap": "713:10261:54:-:0;;;1357:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;353:16:0;;;713:10261:54;;14:306:113;100:6;153:2;141:9;132:7;128:23;124:32;121:52;;;169:1;166;159:12;121:52;195:16;;-1:-1:-1;;;;;240:31:113;;230:42;;220:70;;286:1;283;276:12;220:70;309:5;14:306;-1:-1:-1;;;14:306:113:o;:::-;713:10261:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
    "linkReferences": {}
  },
  "deployedBytecode": {
    "object": "0x608060405234801561001057600080fd5b50600436106102c85760003560e01c8063843d7a701161017b578063c44a8923116100d8578063d96dd0e71161008c578063eeff613911610071578063eeff613914610681578063fb1e61ca146106a1578063ffc84d69146106b457600080fd5b8063d96dd0e71461064e578063da526d1b1461066157600080fd5b8063c65ff8f2116100bd578063c65ff8f214610608578063c8218e3e1461061b578063d35d640e1461062e57600080fd5b8063c44a8923146105d2578063c4a41c4f146105f557600080fd5b806397a0075d1161012f578063b06303f211610114578063b06303f21461059e578063b2d83645146105ac578063b670e144146105bf57600080fd5b806397a0075d1461056b578063a803b59d1461057e57600080fd5b806392b0382f1161016057806392b0382f1461051157806393f0899a1461051f5780639427c7d61461055857600080fd5b8063843d7a70146104f557806392584d80146104fe57600080fd5b8063415a2bc1116102295780635b425b09116101dd57806368814af8116101c257806368814af81461049c5780637436f080146104af5780637dc0d1d0146104cf57600080fd5b80635b425b091461046957806367b3a1e91461047c57600080fd5b80634d610a461161020e5780634d610a4614610428578063548a48841461044857806359e318aa1461045b57600080fd5b8063415a2bc1146103f557806349c7741e1461040857600080fd5b80632e76be2a116102805780633261bb3f116102655780633261bb3f146103a65780633661346b146103ae57806338013f02146103ce57600080fd5b80632e76be2a14610380578063309de6071461039357600080fd5b8063136ba6aa116102b1578063136ba6aa1461031f578063163ed02f1461033f5780631af022111461035f57600080fd5b80630c1d0c23146102cd5780630cad26ce146102e2575b600080fd5b6102e06102db3660046121b4565b6106c7565b005b6102f56102f03660046121e4565b6108ef565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61033261032d3660046121e4565b61093d565b6040516103169190612267565b61035261034d3660046121e4565b610a28565b6040516103169190612320565b61037261036d3660046121e4565b610b05565b604051908152602001610316565b6102e061038e3660046123c2565b610bb8565b6102e06103a1366004612430565b610c51565b610372610d9d565b6103c16103bc3660046121e4565b610e33565b6040516103169190612455565b6102f57f000000000000000000000000000000000000000000000000000000000000000081565b6103526104033660046121e4565b610ecd565b61041b610416366004612468565b610f69565b60405161031691906124dd565b61043b6104363660046121e4565b610f9d565b6040516103169190612521565b6103726104563660046125b4565b61105c565b61037261045636600461277c565b61041b6104773660046121e4565b611090565b61037261048a3660046121e4565b60016020526000908152604090205481565b6103726104aa3660046121e4565b611146565b6104c26104bd3660046128e4565b6111bc565b6040516103169190612961565b7f00000000000000000000000000000000000000000000000000000000000000006102f5565b61037260035481565b6102e061050c3660046121e4565b6112b2565b610372610456366004612974565b60408051808201909152601a81527f53657175656e7469616c5265736f6c7574696f6e4d6f64756c6500000000000060208201526103c1565b6103726105663660046121e4565b611397565b6103726105793660046129f4565b61140d565b61059161058c3660046125b4565b6114bb565b6040516103169190612beb565b6103726104563660046123c2565b6102e06105ba3660046121e4565b61157f565b61041b6105cd3660046125b4565b61164a565b6105e56105e0366004612430565b611707565b6040519015158152602001610316565b6105e5610603366004612430565b6117c4565b6102e06106163660046125b4565b611844565b6102e06106293660046121e4565b611939565b61064161063c3660046121e4565b611a20565b6040516103169190612c5e565b6102e061065c3660046121e4565b611b4f565b61037261066f3660046121e4565b60026020526000908152604090205481565b61069461068f3660046121e4565b611cf2565b6040516103169190612c71565b6106946106af3660046121e4565b611df0565b6102e06106c23660046121e4565b611eb0565b600082815260026020526040812054906107059033906004906106e985611ee2565b8152602001908152602001600020611f9290919063ffffffff16565b61073b576040517fd62e5f1d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600083815260026020908152604080832054600192839052908320549092916107649190612dc2565b905060006004600061077585611ee2565b815260208101919091526040016000209050600585600581111561079b5761079b6121fd565b1480156107af57506107ac81611fc1565b82105b156108405760008681526001602052604090208290556107cf8183611fcb565b73ffffffffffffffffffffffffffffffffffffffff1663d96dd0e7876040518263ffffffff1660e01b815260040161080991815260200190565b600060405180830381600087803b15801561082357600080fd5b505af1158015610837573d6000803e3d6000fd5b505050506108e7565b6040517f0c1d0c2300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690630c1d0c23906108b49089908990600401612dd5565b600060405180830381600087803b1580156108ce57600080fd5b505af11580156108e2573d6000803e3d6000fd5b505050505b505050505050565b60008181526001602090815260408083205460029092528220548290600490829061091990611ee2565b8152602081019190915260400160002090506109358183611fcb565b949350505050565b6109736040805160c08101825260008082526020820181905291810182905260608101829052608081018290529060a082015290565b6040517f136ba6aa000000000000000000000000000000000000000000000000000000008152600481018390527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063136ba6aa9060240160c060405180830381865afa1580156109fe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a229190612df4565b92915050565b6040805160a081018252600080825260208201819052818301819052606080830191909152608082015290517f163ed02f0000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063163ed02f906024015b600060405180830381865afa158015610add573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a229190810190612ecb565b6040517f1af02211000000000000000000000000000000000000000000000000000000008152600481018290526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690631af02211906024015b602060405180830381865afa158015610b94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a229190612f6b565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610c27576040517fbb44f97c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000838152602081905260409020610c4082848361301d565b50610c4c838383611fd7565b505050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610cc0576040517fbb44f97c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060046000610ccf85611ee2565b8152602001908152602001600020905060005b610ceb82611fc1565b811015610d9757610cfc8282611fcb565b6040517f309de6070000000000000000000000000000000000000000000000000000000081526004810186905273ffffffffffffffffffffffffffffffffffffffff8581166024830152919091169063309de60790604401600060405180830381600087803b158015610d6e57600080fd5b505af1158015610d82573d6000803e3d6000fd5b5050505080610d9090613119565b9050610ce2565b50505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16633261bb3f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2e9190612f6b565b905090565b60006020819052908152604090208054610e4c90612f84565b80601f0160208091040260200160405190810160405280929190818152602001828054610e7890612f84565b8015610ec55780601f10610e9a57610100808354040283529160200191610ec5565b820191906000526020600020905b815481529060010190602001808311610ea857829003601f168201915b505050505081565b6040805160a081018252600080825260208201819052818301819052606080830191909152608082015290517f415a2bc10000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063415a2bc190602401610ac0565b60606040517f2815397800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408051808201909152600081526060602082015260008281526020819052604090208054610fcb90612f84565b80601f0160208091040260200160405190810160405280929190818152602001828054610ff790612f84565b80156110445780601f1061101957610100808354040283529160200191611044565b820191906000526020600020905b81548152906001019060200180831161102757829003601f168201915b5050505050806020019051810190610a229190613151565b60006040517f2815397800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f5b425b09000000000000000000000000000000000000000000000000000000008152600481018290526060907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690635b425b0990602401600060405180830381865afa15801561111e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a22919081019061323a565b6040517f68814af8000000000000000000000000000000000000000000000000000000008152600481018290526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906368814af890602401610b77565b60008181526004602052604081206060916111d682611fc1565b905060006111e487836132c0565b86116111f057856111fa565b6111fa87836132c0565b90508067ffffffffffffffff811115611215576112156125d6565b60405190808252806020026020018201604052801561123e578160200160208202803683370190505b50935060005b818110156112a757611260611259828a612dc2565b8590611fcb565b858281518110611272576112726132d3565b73ffffffffffffffffffffffffffffffffffffffff909216602092830291909101909101526112a081613119565b9050611244565b505050509392505050565b806112c433600460006106e985611ee2565b6112fa576040517fd62e5f1d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f92584d80000000000000000000000000000000000000000000000000000000008152600481018390527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906392584d80906024015b600060405180830381600087803b15801561138357600080fd5b505af11580156108e7573d6000803e3d6000fd5b6040517f9427c7d6000000000000000000000000000000000000000000000000000000008152600481018290526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690639427c7d690602401610b77565b600060036000815461141e90613119565b918290555060008181526004602052604081209192505b835181101561147b5761146a848281518110611453576114536132d3565b6020026020010151836120e090919063ffffffff16565b5061147481613119565b9050611435565b507f2fc09c44e2c6dcd1a9c240e8466955d2e0fb7e1395b2db28dbda2ae75d449be982846040516114ad929190613302565b60405180910390a150919050565b6040517fa803b59d00000000000000000000000000000000000000000000000000000000815260048101839052602481018290526060907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063a803b59d90604401600060405180830381865afa158015611550573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611578919081019061349c565b9392505050565b600081815260026020526040812054906115a19033906004906106e985611ee2565b6115d7576040517fd62e5f1d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fb2d83645000000000000000000000000000000000000000000000000000000008152600481018390527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063b2d8364590602401611369565b6040517fb670e14400000000000000000000000000000000000000000000000000000000815260048101839052602481018290526060907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063b670e14490604401600060405180830381865afa1580156116df573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611578919081019061323a565b6040517fc44a89230000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82811660248301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063c44a8923906044015b602060405180830381865afa1580156117a0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611578919061354d565b6040517fc4a41c4f0000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82811660248301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063c4a41c4f90604401611783565b8161185633600460006106e985611ee2565b61188c576040517fd62e5f1d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fc65ff8f200000000000000000000000000000000000000000000000000000000815260048101849052602481018390527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063c65ff8f2906044015b600060405180830381600087803b15801561191c57600080fd5b505af1158015611930573d6000803e3d6000fd5b50505050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146119a8576040517fbb44f97c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6119b1816108ef565b73ffffffffffffffffffffffffffffffffffffffff1663c8218e3e826040518263ffffffff1660e01b81526004016119eb91815260200190565b600060405180830381600087803b158015611a0557600080fd5b505af1158015611a19573d6000803e3d6000fd5b5050505050565b60408051610200810182526060808252602082018190528183018190528082018190526080820152600060a0820181905260c0820181905260e08201819052610100820181905261012082018190526101408201819052610160820181905261018082018190526101a082018190526101c082018190526101e082015290517fd35d640e0000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063d35d640e90602401600060405180830381865afa158015611b27573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a22919081019061356f565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614611bbe576040517fbb44f97c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f136ba6aa000000000000000000000000000000000000000000000000000000008152600481018290526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063136ba6aa9060240160c060405180830381865afa158015611c4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c709190612df4565b608001516000838152600260205260408120829055909150600481611c9484611ee2565b81526020019081526020016000209050611cb8600082611fcb90919063ffffffff16565b73ffffffffffffffffffffffffffffffffffffffff1663d96dd0e7846040518263ffffffff1660e01b815260040161190291815260200190565b6040805161014081018252600080825260208201819052818301819052606082018190526080820181905260a0820181905260c0820181905260e08201819052610100820181905261012082015290517feeff61390000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063eeff6139906024015b61014060405180830381865afa158015611dcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2291906135a4565b6040805161014081018252600080825260208201819052818301819052606082018190526080820181905260a0820181905260c0820181905260e08201819052610100820181905261012082015290517ffb1e61ca0000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063fb1e61ca90602401611dae565b6040517f2815397800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008181526020819052604081208054829190611efe90612f84565b80601f0160208091040260200160405190810160405280929190818152602001828054611f2a90612f84565b8015611f775780601f10611f4c57610100808354040283529160200191611f77565b820191906000526020600020905b815481529060010190602001808311611f5a57829003601f168201915b505050505090506000611f8982612102565b51949350505050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001830160205260408120541515611578565b6000610a22825490565b6000611578838361212b565b600061201883838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061210292505050565b805160009081526004602052604081209192505b61203582611fc1565b8110156108e7576120468282611fcb565b73ffffffffffffffffffffffffffffffffffffffff16632e76be2a8785602001518481518110612078576120786132d3565b60200260200101516040518363ffffffff1660e01b815260040161209d929190613652565b600060405180830381600087803b1580156120b757600080fd5b505af11580156120cb573d6000803e3d6000fd5b50505050806120d990613119565b905061202c565b60006115788373ffffffffffffffffffffffffffffffffffffffff8416612155565b60408051808201909152600081526060602082015281806020019051810190610a229190613151565b6000826000018281548110612142576121426132d3565b9060005260206000200154905092915050565b600081815260018301602052604081205461219c57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610a22565b506000610a22565b600681106121b157600080fd5b50565b600080604083850312156121c757600080fd5b8235915060208301356121d9816121a4565b809150509250929050565b6000602082840312156121f657600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60068110612263577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b600060c08201905082518252602083015173ffffffffffffffffffffffffffffffffffffffff80821660208501528060408601511660408501525050606083015160608301526080830151608083015260a08301516122c960a084018261222c565b5092915050565b60005b838110156122eb5781810151838201526020016122d3565b50506000910152565b6000815180845261230c8160208601602086016122d0565b601f01601f19169290920160200192915050565b602081528151602082015273ffffffffffffffffffffffffffffffffffffffff602083015116604082015260408201516060820152606082015160808201526000608083015160a08084015261093560c08401826122f4565b60008083601f84011261238b57600080fd5b50813567ffffffffffffffff8111156123a357600080fd5b6020830191508360208285010111156123bb57600080fd5b9250929050565b6000806000604084860312156123d757600080fd5b83359250602084013567ffffffffffffffff8111156123f557600080fd5b61240186828701612379565b9497909650939450505050565b73ffffffffffffffffffffffffffffffffffffffff811681146121b157600080fd5b6000806040838503121561244357600080fd5b8235915060208301356121d98161240e565b60208152600061157860208301846122f4565b6000806020838503121561247b57600080fd5b823567ffffffffffffffff8082111561249357600080fd5b818501915085601f8301126124a757600080fd5b8135818111156124b657600080fd5b8660208260051b85010111156124cb57600080fd5b60209290920196919550909350505050565b6020808252825182820181905260009190848201906040850190845b81811015612515578351835292840192918401916001016124f9565b50909695505050505050565b60006020808352606083018451828501528185015160408086015281815180845260808701915060808160051b8801019350848301925060005b818110156125a7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808886030183526125958585516122f4565b9450928501929185019160010161255b565b5092979650505050505050565b600080604083850312156125c757600080fd5b50508035926020909101359150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610160810167ffffffffffffffff81118282101715612629576126296125d6565b60405290565b60405160a0810167ffffffffffffffff81118282101715612629576126296125d6565b6040805190810167ffffffffffffffff81118282101715612629576126296125d6565b604051610200810167ffffffffffffffff81118282101715612629576126296125d6565b604051610140810167ffffffffffffffff81118282101715612629576126296125d6565b604051601f8201601f1916810167ffffffffffffffff811182821017156126e6576126e66125d6565b604052919050565b600067ffffffffffffffff821115612708576127086125d6565b50601f01601f191660200190565b600082601f83011261272757600080fd5b813561273a612735826126ee565b6126bd565b81815284602083860101111561274f57600080fd5b816020850160208301376000918101602001919091529392505050565b80356127778161240e565b919050565b60006020828403121561278e57600080fd5b813567ffffffffffffffff808211156127a657600080fd5b9083019061016082860312156127bb57600080fd5b6127c3612605565b8235828111156127d257600080fd5b6127de87828601612716565b8252506020830135828111156127f357600080fd5b6127ff87828601612716565b60208301525060408301358281111561281757600080fd5b61282387828601612716565b60408301525060608301358281111561283b57600080fd5b61284787828601612716565b60608301525060808301358281111561285f57600080fd5b61286b87828601612716565b60808301525060a083013560a082015261288760c0840161276c565b60c082015261289860e0840161276c565b60e082015261010091506128ad82840161276c565b8282015261012091506128c182840161276c565b8282015261014091506128d582840161276c565b91810191909152949350505050565b6000806000606084860312156128f957600080fd5b505081359360208301359350604090920135919050565b600081518084526020808501945080840160005b8381101561295657815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101612924565b509495945050505050565b6020815260006115786020830184612910565b6000806000806060858703121561298a57600080fd5b84356129958161240e565b935060208501359250604085013567ffffffffffffffff8111156129b857600080fd5b6129c487828801612379565b95989497509550505050565b600067ffffffffffffffff8211156129ea576129ea6125d6565b5060051b60200190565b60006020808385031215612a0757600080fd5b823567ffffffffffffffff811115612a1e57600080fd5b8301601f81018513612a2f57600080fd5b8035612a3d612735826129d0565b81815260059190911b82018301908381019087831115612a5c57600080fd5b928401925b82841015612a83578335612a748161240e565b82529284019290840190612a61565b979650505050505050565b60006102008251818552612aa4828601826122f4565b91505060208301518482036020860152612abe82826122f4565b91505060408301518482036040860152612ad882826122f4565b91505060608301518482036060860152612af282826122f4565b91505060808301518482036080860152612b0c82826122f4565b91505060a083015160a085015260c0830151612b4060c086018273ffffffffffffffffffffffffffffffffffffffff169052565b5060e0830151612b6860e086018273ffffffffffffffffffffffffffffffffffffffff169052565b506101008381015173ffffffffffffffffffffffffffffffffffffffff908116918601919091526101208085015182169086015261014080850151821690860152610160808501519091169085015261018080840151908501526101a080840151908501526101c080840151908501526101e09283015192909301919091525090565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156125a7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452612c4c858351612a8e565b94509285019290850190600101612c12565b6020815260006115786020830184612a8e565b81518152602080830151610140830191612ca29084018273ffffffffffffffffffffffffffffffffffffffff169052565b506040830151612cca604084018273ffffffffffffffffffffffffffffffffffffffff169052565b506060830151612cf2606084018273ffffffffffffffffffffffffffffffffffffffff169052565b506080830151612d1a608084018273ffffffffffffffffffffffffffffffffffffffff169052565b5060a0830151612d4260a084018273ffffffffffffffffffffffffffffffffffffffff169052565b5060c0830151612d6a60c084018273ffffffffffffffffffffffffffffffffffffffff169052565b5060e083015160e083015261010080840151818401525061012080840151818401525092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610a2257610a22612d93565b82815260408101611578602083018461222c565b80516127778161240e565b600060c08284031215612e0657600080fd5b60405160c0810181811067ffffffffffffffff82111715612e2957612e296125d6565b604052825181526020830151612e3e8161240e565b60208201526040830151612e518161240e565b80604083015250606083015160608201526080830151608082015260a0830151612e7a816121a4565b60a08201529392505050565b600082601f830112612e9757600080fd5b8151612ea5612735826126ee565b818152846020838601011115612eba57600080fd5b6109358260208301602087016122d0565b600060208284031215612edd57600080fd5b815167ffffffffffffffff80821115612ef557600080fd5b9083019060a08286031215612f0957600080fd5b612f1161262f565b825181526020830151612f238161240e565b806020830152506040830151604082015260608301516060820152608083015182811115612f5057600080fd5b612f5c87828601612e86565b60808301525095945050505050565b600060208284031215612f7d57600080fd5b5051919050565b600181811c90821680612f9857607f821691505b602082108103612fd1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f821115610c4c57600081815260208120601f850160051c81016020861015612ffe5750805b601f850160051c820191505b818110156108e75782815560010161300a565b67ffffffffffffffff831115613035576130356125d6565b613049836130438354612f84565b83612fd7565b6000601f84116001811461309b57600085156130655750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355611a19565b600083815260209020601f19861690835b828110156130cc57868501358255602094850194600190920191016130ac565b5086821015613107577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361314a5761314a612d93565b5060010190565b6000602080838503121561316457600080fd5b825167ffffffffffffffff8082111561317c57600080fd5b908401906040828703121561319057600080fd5b613198612652565b8251815283830151828111156131ad57600080fd5b80840193505086601f8401126131c257600080fd5b82516131d0612735826129d0565b81815260059190911b840185019085810190898311156131ef57600080fd5b8686015b838110156132275780518681111561320b5760008081fd5b6132198c8a838b0101612e86565b8452509187019187016131f3565b5095830195909552509695505050505050565b6000602080838503121561324d57600080fd5b825167ffffffffffffffff81111561326457600080fd5b8301601f8101851361327557600080fd5b8051613283612735826129d0565b81815260059190911b820183019083810190878311156132a257600080fd5b928401925b82841015612a83578351825292840192908401906132a7565b81810381811115610a2257610a22612d93565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8281526040602082015260006109356040830184612910565b6000610200828403121561332e57600080fd5b613336612675565b9050815167ffffffffffffffff8082111561335057600080fd5b61335c85838601612e86565b8352602084015191508082111561337257600080fd5b61337e85838601612e86565b6020840152604084015191508082111561339757600080fd5b6133a385838601612e86565b604084015260608401519150808211156133bc57600080fd5b6133c885838601612e86565b606084015260808401519150808211156133e157600080fd5b506133ee84828501612e86565b60808301525060a082015160a082015261340a60c08301612de9565b60c082015261341b60e08301612de9565b60e082015261010061342e818401612de9565b90820152610120613440838201612de9565b90820152610140613452838201612de9565b90820152610160613464838201612de9565b9082015261018082810151908201526101a080830151908201526101c080830151908201526101e09182015191810191909152919050565b600060208083850312156134af57600080fd5b825167ffffffffffffffff808211156134c757600080fd5b818501915085601f8301126134db57600080fd5b81516134e9612735826129d0565b81815260059190911b8301840190848101908883111561350857600080fd5b8585015b83811015613540578051858111156135245760008081fd5b6135328b89838a010161331b565b84525091860191860161350c565b5098975050505050505050565b60006020828403121561355f57600080fd5b8151801515811461157857600080fd5b60006020828403121561358157600080fd5b815167ffffffffffffffff81111561359857600080fd5b6109358482850161331b565b600061014082840312156135b757600080fd5b6135bf612699565b825181526135cf60208401612de9565b60208201526135e060408401612de9565b60408201526135f160608401612de9565b606082015261360260808401612de9565b608082015261361360a08401612de9565b60a082015261362460c08401612de9565b60c082015260e083810151908201526101008084015190820152610120928301519281019290925250919050565b82815260406020820152600061093560408301846122f456fea264697066735822122073d24c53df27d9e23edeaedfc5a53d228b57fa0b432659a70671c3296fb2df4764736f6c63430008130033",
    "sourceMap": "713:10261:54:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3923:670;;;;;;:::i;:::-;;:::i;:::-;;2177:347;;;;;;:::i;:::-;;:::i;:::-;;;1018:42:113;1006:55;;;988:74;;976:2;961:18;2177:347:54;;;;;;;;6806:147;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;8244:170::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;8034:180::-;;;;;;:::i;:::-;;:::i;:::-;;;3678:25:113;;;3666:2;3651:18;8034:180:54;3532:177:113;695:175:0;;;;;;:::i;:::-;;:::i;3520:373:54:-;;;;;;:::i;:::-;;:::i;9537:114::-;;;:::i;237:68:0:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;201:31::-;;;;;6983:154:54;;;;;;:::i;:::-;;:::i;10099:157::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3311:179::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;10286:136::-;;;;;;:::i;:::-;;:::i;9926:143::-;;;;;;:::i;8444:141::-;;;;;;:::i;:::-;;:::i;891:77::-;;;;;;:::i;:::-;;;;;;;;;;;;;;7167:132;;;;;;:::i;:::-;;:::i;2574:539::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;571:94:0:-;653:6;571:94;;1146:32:54;;;;;;9220:111;;;;;;:::i;:::-;;:::i;10625:152::-;;;;;;:::i;3143:118::-;3221:35;;;;;;;;;;;;;;;;;3143:118;;7870:134;;;;;;:::i;:::-;;:::i;1726:401::-;;;;;;:::i;:::-;;:::i;8615:177::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;10452:143::-;;;;;;:::i;9361:146::-;;;;;;:::i;:::-;;:::i;8822:175::-;;;;;;:::i;:::-;;:::i;6607:169::-;;;;;;:::i;:::-;;:::i;:::-;;;19887:14:113;;19880:22;19862:41;;19850:2;19835:18;6607:169:54;19722:187:113;6404:173:54;;;;;;:::i;:::-;;:::i;9027:163::-;;;;;;:::i;:::-;;:::i;5053:140::-;;;;;;:::i;:::-;;:::i;7681:159::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;4633:380::-;;;;;;:::i;:::-;;:::i;1019:76::-;;;;;;:::i;:::-;;;;;;;;;;;;;;7329:145;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;7504:147::-;;;;;;:::i;:::-;;:::i;10807:108::-;;;;;;:::i;:::-;;:::i;3923:670::-;4030:31;;;;:19;:31;;;;;;;1532:67;;1588:10;;1532:18;;1551:26;4030:31;1551:14;:26::i;:::-;1532:46;;;;;;;;;;;:55;;:67;;;;:::i;:::-;1527:138;;1616:42;;;;;;;;;;;;;;1527:138;4069:18:::1;4090:31:::0;;;:19:::1;:31;::::0;;;;;;;;4154:18:::1;:30:::0;;;;;;;;4090:31;;4069:18;4154:34:::1;::::0;:30;:34:::1;:::i;:::-;4127:61;;4194:41;4238:18;:46;4257:26;4272:10;4257:14;:26::i;:::-;4238:46:::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;4238:46:54;;-1:-1:-1;4305:26:54::1;4294:7;:37;;;;;;;;:::i;:::-;;:77;;;;;4354:17;:8;:15;:17::i;:::-;4335:16;:36;4294:77;4290:299;;;4381:30;::::0;;;:18:::1;:30;::::0;;;;:49;;;4456:29:::1;:8:::0;4414:16;4456:11:::1;:29::i;:::-;4438:64;;;4503:10;4438:76;;;;;;;;;;;;;3678:25:113::0;;3666:2;3651:18;;3532:177;4438:76:54::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4290:299;;;4535:47;::::0;;;;:26:::1;:6;:26;::::0;::::1;::::0;:47:::1;::::0;4562:10;;4574:7;;4535:47:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4290:299;4063:530;;;3923:670:::0;;;:::o;2177:347::-;2254:25;2311:30;;;:18;:30;;;;;;;;;2425:19;:31;;;;;;2254:25;;2391:18;;2254:25;;2410:47;;:14;:47::i;:::-;2391:67;;;;;;;;;;;-1:-1:-1;2391:67:54;;-1:-1:-1;2492:26:54;2391:67;2504:13;2492:11;:26::i;:::-;2464:55;2177:347;-1:-1:-1;;;;2177:347:54:o;6806:147::-;6869:31;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6869:31:54;6919:29;;;;;;;;3678:25:113;;;6919:6:54;:17;;;;;3651:18:113;;6919:29:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6908:40;6806:147;-1:-1:-1;;6806:147:54:o;8244:170::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8370:39:54;;;;;;;;3678:25:113;;;8370:27:54;:6;:27;;;;3651:18:113;;8370:39:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8370:39:54;;;;;;;;;;;;:::i;8034:180::-;8168:41;;;;;;;;3678:25:113;;;8109:28:54;;8168:6;:29;;;;;3651:18:113;;8168:41:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;695:175:0:-;472:10;:29;494:6;472:29;;468:61;;510:19;;;;;;;;;;;;;;468:61;791:11:::1;:23:::0;;;::::1;::::0;;;;;;:31:::1;817:5:::0;;791:23;:31:::1;:::i;:::-;;828:37;847:10;859:5;;828:18;:37::i;:::-;695:175:::0;;;:::o;3520:373:54:-;472:10:0;:29;494:6;472:29;;468:61;;510:19;;;;;;;;;;;;;;468:61;3657:41:54::1;3701:18;:46;3720:26;3735:10;3720:14;:26::i;:::-;3701:46;;;;;;;;;;;3657:90;;3758:10;3753:136;3775:17;:8;:15;:17::i;:::-;3770:2;:22;3753:136;;;3826:15;:8:::0;3838:2;3826:11:::1;:15::i;:::-;3808:74;::::0;;;;::::1;::::0;::::1;27599:25:113::0;;;3808:50:54::1;27660:55:113::0;;;27640:18;;;27633:83;3808:50:54;;;::::1;::::0;::::1;::::0;27572:18:113;;3808:74:54::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3794:4;;;;:::i;:::-;;;3753:136;;;;3651:242;3520:373:::0;;:::o;9537:114::-;9589:14;9620:6;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9611:35;;9537:114;:::o;237:68:0:-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6983:154:54:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7101:31:54;;;;;;;;3678:25:113;;;7101:18:54;:6;:18;;;;3651::113;;7101:31:54;3532:177:113;10099:157:54;10177:16;10208:43;;;;;;;;;;;;;;3311:179;-1:-1:-1;;;;;;;;;;;;;;;;;3440:11:54;:23;;;;;;;;;;3429:56;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10286:136::-;10352:7;10374:43;;;;;;;;;;;;;;8444:141;8547:33;;;;;;;;3678:25:113;;;8511:21:54;;8547:6;:21;;;;;3651:18:113;;8547:33:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8547:33:54;;;;;;;;;;;;:::i;7167:132::-;7267:27;;;;;;;;3678:25:113;;;7228:18:54;;7267:6;:19;;;;;3651:18:113;;7267:27:54;3532:177:113;2574:539:54;2738:41;2782:31;;;:18;:31;;;;;2698:32;;2837:17;2782:31;2837:15;:17::i;:::-;2819:35;-1:-1:-1;2860:14:54;2891:20;2901:10;2819:35;2891:20;:::i;:::-;2878:10;:33;2877:71;;2938:10;2877:71;;;2915:20;2925:10;2915:7;:20;:::i;:::-;2860:88;;2986:6;2962:31;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2962:31:54;;2954:39;;3004:10;2999:110;3021:6;3016:2;:11;2999:110;;;3073:28;3085:15;3098:2;3085:10;:15;:::i;:::-;3073:8;;:11;:28::i;:::-;3043:5;3049:2;3043:9;;;;;;;;:::i;:::-;:59;;;;:9;;;;;;;;;;;:59;3029:4;;;:::i;:::-;;;2999:110;;;;2732:381;;;2574:539;;;;;:::o;9220:111::-;9281:10;1532:67;1588:10;1532:18;:46;1551:26;1566:10;1551:14;:26::i;1532:67::-;1527:138;;1616:42;;;;;;;;;;;;;;1527:138;9299:27:::1;::::0;;;;::::1;::::0;::::1;3678:25:113::0;;;9299:6:54::1;:15;;::::0;::::1;::::0;3651:18:113;;9299:27:54::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;7870:134:::0;7971:28;;;;;;;;3678:25:113;;;7932:18:54;;7971:6;:16;;;;;3651:18:113;;7971:28:54;3532:177:113;1726:401:54;1818:19;1861:17;;1859:19;;;;;:::i;:::-;;;;;-1:-1:-1;1884:44:54;1931:31;;;:18;:31;;;;;1859:19;;-1:-1:-1;1968:98:54;1990:8;:15;1985:2;:20;1968:98;;;2021:38;2045:8;2054:2;2045:12;;;;;;;;:::i;:::-;;;;;;;2021:11;:15;;:38;;;;:::i;:::-;-1:-1:-1;2007:4:54;;;:::i;:::-;;;1968:98;;;;2076:46;2100:11;2113:8;2076:46;;;;;;;:::i;:::-;;;;;;;;1839:288;1726:401;;;:::o;8615:177::-;8747:40;;;;;;;;31352:25:113;;;31393:18;;;31386:34;;;8697::54;;8747:6;:19;;;;;31325:18:113;;8747:40:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8747:40:54;;;;;;;;;;;;:::i;:::-;8739:48;8615:177;-1:-1:-1;;;8615:177:54:o;9361:146::-;9429:31;;;;:19;:31;;;;;;;1532:67;;1588:10;;1532:18;;1551:26;9429:31;1551:14;:26::i;1532:67::-;1527:138;;1616:42;;;;;;;;;;;;;;1527:138;9468:34:::1;::::0;;;;::::1;::::0;::::1;3678:25:113::0;;;9468:6:54::1;:22;;::::0;::::1;::::0;3651:18:113;;9468:34:54::1;3532:177:113::0;8822:175:54;8947:45;;;;;;;;31352:25:113;;;31393:18;;;31386:34;;;8909:22:54;;8947:6;:21;;;;;31325:18:113;;8947:45:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8947:45:54;;;;;;;;;;;;:::i;6607:169::-;6732:39;;;;;;;;27599:25:113;;;6732:20:54;27660:55:113;;;27640:18;;;27633:83;6688:19:54;;6732:6;:20;;;;;;27572:18:113;;6732:39:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6404:173::-;6531:41;;;;;;;;27599:25:113;;;6531:20:54;27660:55:113;;;27640:18;;;27633:83;6487:19:54;;6531:6;:20;;;;;;27572:18:113;;6531:41:54;27425:297:113;9027:163:54;9118:10;1532:67;1588:10;1532:18;:46;1551:26;1566:10;1551:14;:26::i;1532:67::-;1527:138;;1616:42;;;;;;;;;;;;;;1527:138;9136:49:::1;::::0;;;;::::1;::::0;::::1;31352:25:113::0;;;31393:18;;;31386:34;;;9136:6:54::1;:15;;::::0;::::1;::::0;31325:18:113;;9136:49:54::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9027:163:::0;;;:::o;5053:140::-;472:10:0;:29;494:6;472:29;;468:61;;510:19;;;;;;;;;;;;;;468:61;5123:38:54::1;5150:10;5123:26;:38::i;:::-;:53;;;5177:10;5123:65;;;;;;;;;;;;;3678:25:113::0;;3666:2;3651:18;;3532:177;5123:65:54::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5053:140:::0;:::o;7681:159::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7802:33:54;;;;;;;;3678:25:113;;;7802:21:54;:6;:21;;;;3651:18:113;;7802:33:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7802:33:54;;;;;;;;;;;;:::i;4633:380::-;472:10:0;:29;494:6;472:29;;468:61;;510:19;;;;;;;;;;;;;;468:61;4735:29:54::1;::::0;;;;::::1;::::0;::::1;3678:25:113::0;;;4704:28:54::1;::::0;4735:6:::1;:17;;::::0;::::1;::::0;3651:18:113;;4735:29:54::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:39;;::::0;4780:31:::1;::::0;;;:19:::1;:31;::::0;;;;:54;;;4735:39;;-1:-1:-1;4885:18:54::1;4780:31:::0;4904:36:::1;4735:39:::0;4904:14:::1;:36::i;:::-;4885:56;;;;;;;;;;;4841:100;;4965:14;4977:1;4965:8;:11;;:14;;;;:::i;:::-;4947:49;;;4997:10;4947:61;;;;;;;;;;;;;3678:25:113::0;;3666:2;3651:18;;3532:177;7329:145:54;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7437:32:54;;;;;;;;3678:25:113;;;7437:24:54;:6;:24;;;;3651:18:113;;7437:32:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7504:147::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7617:29:54;;;;;;;;3678:25:113;;;7617:17:54;:6;:17;;;;3651:18:113;;7617:29:54;3532:177:113;10807:108:54;10867:43;;;;;;;;;;;;;;6088:240;6155:19;6203:23;;;;;;;;;;6182:44;;6155:19;;6203:23;6182:44;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6232:32;6267:18;6279:5;6267:11;:18::i;:::-;6305;;6088:240;-1:-1:-1;;;;6088:240:54:o;8860:165:18:-;8993:23;;;8940:4;4351:19;;;:12;;;:19;;;;;;:24;;8963:55;4255:127;9106:115;9169:7;9195:19;9203:3;4545:18;;4463:107;9563:156;9637:7;9687:22;9691:3;9703:5;9687:3;:22::i;5222:393:54:-;5316:32;5351:18;5363:5;;5351:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5351:11:54;;-1:-1:-1;;;5351:18:54:i;:::-;5438;;5375:41;5419:38;;;:18;:38;;;;;5316:53;;-1:-1:-1;5463:148:54;5485:17;:8;:15;:17::i;:::-;5480:2;:22;5463:148;;;5536:15;:8;5548:2;5536:11;:15::i;:::-;5518:47;;;5566:10;5578:7;:21;;;5600:2;5578:25;;;;;;;;:::i;:::-;;;;;;;5518:86;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5504:4;;;;:::i;:::-;;;5463:148;;8305:150:18;8375:4;8398:50;8403:3;8423:23;;;8398:4;:50::i;5757:157:54:-;-1:-1:-1;;;;;;;;;;;;;;;;;5882:5:54;5871:38;;;;;;;;;;;;:::i;4912:118:18:-;4979:7;5005:3;:11;;5017:5;5005:18;;;;;;;;:::i;:::-;;;;;;;;;4998:25;;4912:118;;;;:::o;2214:404::-;2277:4;4351:19;;;:12;;;:19;;;;;;2293:319;;-1:-1:-1;2335:23:18;;;;;;;;:11;:23;;;;;;;;;;;;;2515:18;;2493:19;;;:12;;;:19;;;;;;:40;;;;2547:11;;2293:319;-1:-1:-1;2596:5:18;2589:12;;14:112:113;100:1;93:5;90:12;80:40;;116:1;113;106:12;80:40;14:112;:::o;131:344::-;217:6;225;278:2;266:9;257:7;253:23;249:32;246:52;;;294:1;291;284:12;246:52;330:9;317:23;307:33;;390:2;379:9;375:18;362:32;403:42;439:5;403:42;:::i;:::-;464:5;454:15;;;131:344;;;;;:::o;480:180::-;539:6;592:2;580:9;571:7;567:23;563:32;560:52;;;608:1;605;598:12;560:52;-1:-1:-1;631:23:113;;480:180;-1:-1:-1;480:180:113:o;1073:184::-;1125:77;1122:1;1115:88;1222:4;1219:1;1212:15;1246:4;1243:1;1236:15;1262:298;1347:1;1340:5;1337:12;1327:200;;1383:77;1380:1;1373:88;1484:4;1481:1;1474:15;1512:4;1509:1;1502:15;1327:200;1536:18;;1262:298::o;1565:738::-;1707:4;1749:3;1738:9;1734:19;1726:27;;1786:6;1780:13;1769:9;1762:32;1841:4;1833:6;1829:17;1823:24;1866:42;1964:2;1950:12;1946:21;1939:4;1928:9;1924:20;1917:51;2036:2;2028:4;2020:6;2016:17;2010:24;2006:33;1999:4;1988:9;1984:20;1977:63;;;2096:4;2088:6;2084:17;2078:24;2071:4;2060:9;2056:20;2049:54;2159:4;2151:6;2147:17;2141:24;2134:4;2123:9;2119:20;2112:54;2215:4;2207:6;2203:17;2197:24;2230:67;2291:4;2280:9;2276:20;2260:14;2230:67;:::i;:::-;;1565:738;;;;:::o;2308:250::-;2393:1;2403:113;2417:6;2414:1;2411:13;2403:113;;;2493:11;;;2487:18;2474:11;;;2467:39;2439:2;2432:10;2403:113;;;-1:-1:-1;;2550:1:113;2532:16;;2525:27;2308:250::o;2563:329::-;2604:3;2642:5;2636:12;2669:6;2664:3;2657:19;2685:76;2754:6;2747:4;2742:3;2738:14;2731:4;2724:5;2720:16;2685:76;:::i;:::-;2806:2;2794:15;-1:-1:-1;;2790:88:113;2781:98;;;;2881:4;2777:109;;2563:329;-1:-1:-1;;2563:329:113:o;2897:630::-;3078:2;3067:9;3060:21;3123:6;3117:13;3112:2;3101:9;3097:18;3090:41;3195:42;3189:2;3181:6;3177:15;3171:22;3167:71;3162:2;3151:9;3147:18;3140:99;3293:2;3285:6;3281:15;3275:22;3270:2;3259:9;3255:18;3248:50;3353:2;3345:6;3341:15;3335:22;3329:3;3318:9;3314:19;3307:51;3041:4;3405:3;3397:6;3393:16;3387:23;3448:4;3441;3430:9;3426:20;3419:34;3470:51;3516:3;3505:9;3501:19;3487:12;3470:51;:::i;3714:347::-;3765:8;3775:6;3829:3;3822:4;3814:6;3810:17;3806:27;3796:55;;3847:1;3844;3837:12;3796:55;-1:-1:-1;3870:20:113;;3913:18;3902:30;;3899:50;;;3945:1;3942;3935:12;3899:50;3982:4;3974:6;3970:17;3958:29;;4034:3;4027:4;4018:6;4010;4006:19;4002:30;3999:39;3996:59;;;4051:1;4048;4041:12;3996:59;3714:347;;;;;:::o;4066:477::-;4145:6;4153;4161;4214:2;4202:9;4193:7;4189:23;4185:32;4182:52;;;4230:1;4227;4220:12;4182:52;4266:9;4253:23;4243:33;;4327:2;4316:9;4312:18;4299:32;4354:18;4346:6;4343:30;4340:50;;;4386:1;4383;4376:12;4340:50;4425:58;4475:7;4466:6;4455:9;4451:22;4425:58;:::i;:::-;4066:477;;4502:8;;-1:-1:-1;4399:84:113;;-1:-1:-1;;;;4066:477:113:o;4548:154::-;4634:42;4627:5;4623:54;4616:5;4613:65;4603:93;;4692:1;4689;4682:12;4707:315;4775:6;4783;4836:2;4824:9;4815:7;4811:23;4807:32;4804:52;;;4852:1;4849;4842:12;4804:52;4888:9;4875:23;4865:33;;4948:2;4937:9;4933:18;4920:32;4961:31;4986:5;4961:31;:::i;5209:217::-;5356:2;5345:9;5338:21;5319:4;5376:44;5416:2;5405:9;5401:18;5393:6;5376:44;:::i;5678:645::-;5794:6;5802;5855:2;5843:9;5834:7;5830:23;5826:32;5823:52;;;5871:1;5868;5861:12;5823:52;5911:9;5898:23;5940:18;5981:2;5973:6;5970:14;5967:34;;;5997:1;5994;5987:12;5967:34;6035:6;6024:9;6020:22;6010:32;;6080:7;6073:4;6069:2;6065:13;6061:27;6051:55;;6102:1;6099;6092:12;6051:55;6142:2;6129:16;6168:2;6160:6;6157:14;6154:34;;;6184:1;6181;6174:12;6154:34;6237:7;6232:2;6222:6;6219:1;6215:14;6211:2;6207:23;6203:32;6200:45;6197:65;;;6258:1;6255;6248:12;6197:65;6289:2;6281:11;;;;;6311:6;;-1:-1:-1;5678:645:113;;-1:-1:-1;;;;5678:645:113:o;6328:632::-;6499:2;6551:21;;;6621:13;;6524:18;;;6643:22;;;6470:4;;6499:2;6722:15;;;;6696:2;6681:18;;;6470:4;6765:169;6779:6;6776:1;6773:13;6765:169;;;6840:13;;6828:26;;6909:15;;;;6874:12;;;;6801:1;6794:9;6765:169;;;-1:-1:-1;6951:3:113;;6328:632;-1:-1:-1;;;;;;6328:632:113:o;6965:1021::-;7129:4;7158:2;7187;7176:9;7169:21;7228:2;7217:9;7213:18;7273:6;7267:13;7262:2;7251:9;7247:18;7240:41;7328:2;7320:6;7316:15;7310:22;7370:4;7363;7352:9;7348:20;7341:34;7395:6;7430:12;7424:19;7467:6;7459;7452:22;7505:3;7494:9;7490:19;7483:26;;7568:3;7558:6;7555:1;7551:14;7540:9;7536:30;7532:40;7518:54;;7613:2;7599:12;7595:21;7581:35;;7634:1;7644:313;7658:6;7655:1;7652:13;7644:313;;;7747:66;7735:9;7727:6;7723:22;7719:95;7714:3;7707:108;7838:39;7870:6;7861;7855:13;7838:39;:::i;:::-;7828:49;-1:-1:-1;7900:15:113;;;;7935:12;;;;7680:1;7673:9;7644:313;;;-1:-1:-1;7974:6:113;;6965:1021;-1:-1:-1;;;;;;;6965:1021:113:o;7991:248::-;8059:6;8067;8120:2;8108:9;8099:7;8095:23;8091:32;8088:52;;;8136:1;8133;8126:12;8088:52;-1:-1:-1;;8159:23:113;;;8229:2;8214:18;;;8201:32;;-1:-1:-1;7991:248:113:o;8244:184::-;8296:77;8293:1;8286:88;8393:4;8390:1;8383:15;8417:4;8414:1;8407:15;8433:255;8505:2;8499:9;8547:6;8535:19;;8584:18;8569:34;;8605:22;;;8566:62;8563:88;;;8631:18;;:::i;:::-;8667:2;8660:22;8433:255;:::o;8693:253::-;8765:2;8759:9;8807:4;8795:17;;8842:18;8827:34;;8863:22;;;8824:62;8821:88;;;8889:18;;:::i;8951:257::-;9023:4;9017:11;;;9055:17;;9102:18;9087:34;;9123:22;;;9084:62;9081:88;;;9149:18;;:::i;9213:255::-;9285:2;9279:9;9327:6;9315:19;;9364:18;9349:34;;9385:22;;;9346:62;9343:88;;;9411:18;;:::i;9473:252::-;9545:2;9539:9;9587:3;9575:16;;9621:18;9606:34;;9642:22;;;9603:62;9600:88;;;9668:18;;:::i;9730:334::-;9801:2;9795:9;9857:2;9847:13;;-1:-1:-1;;9843:86:113;9831:99;;9960:18;9945:34;;9981:22;;;9942:62;9939:88;;;10007:18;;:::i;:::-;10043:2;10036:22;9730:334;;-1:-1:-1;9730:334:113:o;10069:245::-;10117:4;10150:18;10142:6;10139:30;10136:56;;;10172:18;;:::i;:::-;-1:-1:-1;10229:2:113;10217:15;-1:-1:-1;;10213:88:113;10303:4;10209:99;;10069:245::o;10319:462::-;10361:5;10414:3;10407:4;10399:6;10395:17;10391:27;10381:55;;10432:1;10429;10422:12;10381:55;10468:6;10455:20;10499:48;10515:31;10543:2;10515:31;:::i;:::-;10499:48;:::i;:::-;10572:2;10563:7;10556:19;10618:3;10611:4;10606:2;10598:6;10594:15;10590:26;10587:35;10584:55;;;10635:1;10632;10625:12;10584:55;10700:2;10693:4;10685:6;10681:17;10674:4;10665:7;10661:18;10648:55;10748:1;10723:16;;;10741:4;10719:27;10712:38;;;;10727:7;10319:462;-1:-1:-1;;;10319:462:113:o;10786:150::-;10870:20;;10899:31;10870:20;10899:31;:::i;:::-;10786:150;;;:::o;10941:1833::-;11028:6;11081:2;11069:9;11060:7;11056:23;11052:32;11049:52;;;11097:1;11094;11087:12;11049:52;11137:9;11124:23;11166:18;11207:2;11199:6;11196:14;11193:34;;;11223:1;11220;11213:12;11193:34;11246:22;;;;11302:6;11284:16;;;11280:29;11277:49;;;11322:1;11319;11312:12;11277:49;11348:22;;:::i;:::-;11408:2;11395:16;11436:2;11426:8;11423:16;11420:36;;;11452:1;11449;11442:12;11420:36;11479:44;11515:7;11504:8;11500:2;11496:17;11479:44;:::i;:::-;11472:5;11465:59;;11570:2;11566;11562:11;11549:25;11599:2;11589:8;11586:16;11583:36;;;11615:1;11612;11605:12;11583:36;11651:44;11687:7;11676:8;11672:2;11668:17;11651:44;:::i;:::-;11646:2;11639:5;11635:14;11628:68;;11742:2;11738;11734:11;11721:25;11771:2;11761:8;11758:16;11755:36;;;11787:1;11784;11777:12;11755:36;11823:44;11859:7;11848:8;11844:2;11840:17;11823:44;:::i;:::-;11818:2;11811:5;11807:14;11800:68;;11914:2;11910;11906:11;11893:25;11943:2;11933:8;11930:16;11927:36;;;11959:1;11956;11949:12;11927:36;11995:44;12031:7;12020:8;12016:2;12012:17;11995:44;:::i;:::-;11990:2;11983:5;11979:14;11972:68;;12086:3;12082:2;12078:12;12065:26;12116:2;12106:8;12103:16;12100:36;;;12132:1;12129;12122:12;12100:36;12169:44;12205:7;12194:8;12190:2;12186:17;12169:44;:::i;:::-;12163:3;12156:5;12152:15;12145:69;;12268:3;12264:2;12260:12;12247:26;12241:3;12234:5;12230:15;12223:51;12307:48;12350:3;12346:2;12342:12;12307:48;:::i;:::-;12301:3;12294:5;12290:15;12283:73;12389:48;12432:3;12428:2;12424:12;12389:48;:::i;:::-;12383:3;12376:5;12372:15;12365:73;12457:3;12447:13;;12492:47;12535:2;12531;12527:11;12492:47;:::i;:::-;12487:2;12480:5;12476:14;12469:71;12559:3;12549:13;;12594:47;12637:2;12633;12629:11;12594:47;:::i;:::-;12589:2;12582:5;12578:14;12571:71;12661:3;12651:13;;12696:47;12739:2;12735;12731:11;12696:47;:::i;:::-;12680:14;;;12673:71;;;;12684:5;10941:1833;-1:-1:-1;;;;10941:1833:113:o;12964:316::-;13041:6;13049;13057;13110:2;13098:9;13089:7;13085:23;13081:32;13078:52;;;13126:1;13123;13116:12;13078:52;-1:-1:-1;;13149:23:113;;;13219:2;13204:18;;13191:32;;-1:-1:-1;13270:2:113;13255:18;;;13242:32;;12964:316;-1:-1:-1;12964:316:113:o;13285:503::-;13357:3;13395:5;13389:12;13422:6;13417:3;13410:19;13448:4;13477:2;13472:3;13468:12;13461:19;;13514:2;13507:5;13503:14;13535:1;13545:218;13559:6;13556:1;13553:13;13545:218;;;13624:13;;13639:42;13620:62;13608:75;;13703:12;;;;13738:15;;;;13581:1;13574:9;13545:218;;;-1:-1:-1;13779:3:113;;13285:503;-1:-1:-1;;;;;13285:503:113:o;13793:306::-;13998:2;13987:9;13980:21;13961:4;14018:75;14089:2;14078:9;14074:18;14066:6;14018:75;:::i;14335:612::-;14423:6;14431;14439;14447;14500:2;14488:9;14479:7;14475:23;14471:32;14468:52;;;14516:1;14513;14506:12;14468:52;14555:9;14542:23;14574:31;14599:5;14574:31;:::i;:::-;14624:5;-1:-1:-1;14676:2:113;14661:18;;14648:32;;-1:-1:-1;14731:2:113;14716:18;;14703:32;14758:18;14747:30;;14744:50;;;14790:1;14787;14780:12;14744:50;14829:58;14879:7;14870:6;14859:9;14855:22;14829:58;:::i;:::-;14335:612;;;;-1:-1:-1;14906:8:113;-1:-1:-1;;;;14335:612:113:o;15176:202::-;15255:4;15288:18;15280:6;15277:30;15274:56;;;15310:18;;:::i;:::-;-1:-1:-1;15355:1:113;15351:14;15367:4;15347:25;;15176:202::o;15383:1011::-;15493:6;15524:2;15567;15555:9;15546:7;15542:23;15538:32;15535:52;;;15583:1;15580;15573:12;15535:52;15623:9;15610:23;15656:18;15648:6;15645:30;15642:50;;;15688:1;15685;15678:12;15642:50;15711:22;;15764:4;15756:13;;15752:27;-1:-1:-1;15742:55:113;;15793:1;15790;15783:12;15742:55;15829:2;15816:16;15852:79;15868:62;15927:2;15868:62;:::i;15852:79::-;15965:15;;;16047:1;16043:10;;;;16035:19;;16031:28;;;15996:12;;;;16071:19;;;16068:39;;;16103:1;16100;16093:12;16068:39;16127:11;;;;16147:217;16163:6;16158:3;16155:15;16147:217;;;16243:3;16230:17;16260:31;16285:5;16260:31;:::i;:::-;16304:18;;16180:12;;;;16342;;;;16147:217;;;16383:5;15383:1011;-1:-1:-1;;;;;;;15383:1011:113:o;16652:2148::-;16706:3;16734:6;16775:5;16769:12;16802:2;16797:3;16790:15;16826:44;16866:2;16861:3;16857:12;16843;16826:44;:::i;:::-;16814:56;;;16918:4;16911:5;16907:16;16901:23;16966:3;16960:4;16956:14;16949:4;16944:3;16940:14;16933:38;16994;17027:4;17011:14;16994:38;:::i;:::-;16980:52;;;17080:4;17073:5;17069:16;17063:23;17130:3;17122:6;17118:16;17111:4;17106:3;17102:14;17095:40;17158;17191:6;17175:14;17158:40;:::i;:::-;17144:54;;;17246:4;17239:5;17235:16;17229:23;17296:3;17288:6;17284:16;17277:4;17272:3;17268:14;17261:40;17324;17357:6;17341:14;17324:40;:::i;:::-;17310:54;;;17412:4;17405:5;17401:16;17395:23;17462:3;17454:6;17450:16;17443:4;17438:3;17434:14;17427:40;17490;17523:6;17507:14;17490:40;:::i;:::-;17476:54;;;17579:4;17572:5;17568:16;17562:23;17555:4;17550:3;17546:14;17539:47;17634:4;17627:5;17623:16;17617:23;17649:69;17712:4;17707:3;17703:14;17687;761:42;750:54;738:67;;665:146;17649:69;;17766:4;17759:5;17755:16;17749:23;17781:69;17844:4;17839:3;17835:14;17819;761:42;750:54;738:67;;665:146;17781:69;-1:-1:-1;17869:6:113;17912:14;;;17906:21;761:42;750:54;;;17990:12;;;738:67;;;;18022:6;18065:14;;;18059:21;750:54;;18143:12;;;738:67;18175:6;18218:14;;;18212:21;750:54;;18296:12;;;738:67;18328:6;18372:14;;;18366:21;750:54;;;18451:12;;;738:67;18483:6;18525:14;;;18519:21;18505:12;;;18498:43;18560:6;18602:14;;;18596:21;18582:12;;;18575:43;18637:6;18679:14;;;18673:21;18659:12;;;18652:43;18714:6;18756:14;;;18750:21;18736:12;;;;18729:43;;;;-1:-1:-1;18736:12:113;16652:2148::o;18805:912::-;19005:4;19034:2;19074;19063:9;19059:18;19104:2;19093:9;19086:21;19127:6;19162;19156:13;19193:6;19185;19178:22;19231:2;19220:9;19216:18;19209:25;;19293:2;19283:6;19280:1;19276:14;19265:9;19261:30;19257:39;19243:53;;19331:2;19323:6;19319:15;19352:1;19362:326;19376:6;19373:1;19370:13;19362:326;;;19465:66;19453:9;19445:6;19441:22;19437:95;19432:3;19425:108;19556:52;19601:6;19592;19586:13;19556:52;:::i;:::-;19546:62;-1:-1:-1;19666:12:113;;;;19631:15;;;;19398:1;19391:9;19362:326;;19914:270;20101:2;20090:9;20083:21;20064:4;20121:57;20174:2;20163:9;20159:18;20151:6;20121:57;:::i;20189:1296::-;20404:13;;20386:32;;20465:4;20453:17;;;20447:24;20373:3;20358:19;;;20480:73;;20532:20;;20447:24;761:42;750:54;738:67;;665:146;20480:73;;20602:4;20594:6;20590:17;20584:24;20617:75;20686:4;20675:9;20671:20;20655:14;761:42;750:54;738:67;;665:146;20617:75;;20741:4;20733:6;20729:17;20723:24;20756:75;20825:4;20814:9;20810:20;20794:14;761:42;750:54;738:67;;665:146;20756:75;;20880:4;20872:6;20868:17;20862:24;20895:75;20964:4;20953:9;20949:20;20933:14;761:42;750:54;738:67;;665:146;20895:75;;21019:4;21011:6;21007:17;21001:24;21034:75;21103:4;21092:9;21088:20;21072:14;761:42;750:54;738:67;;665:146;21034:75;;21158:4;21150:6;21146:17;21140:24;21173:75;21242:4;21231:9;21227:20;21211:14;761:42;750:54;738:67;;665:146;21173:75;;21304:4;21296:6;21292:17;21286:24;21279:4;21268:9;21264:20;21257:54;21330:6;21390:2;21382:6;21378:15;21372:22;21367:2;21356:9;21352:18;21345:50;;21414:6;21474:2;21466:6;21462:15;21456:22;21451:2;21440:9;21436:18;21429:50;;20189:1296;;;;:::o;21490:184::-;21542:77;21539:1;21532:88;21639:4;21636:1;21629:15;21663:4;21660:1;21653:15;21679:125;21744:9;;;21765:10;;;21762:36;;;21778:18;;:::i;21809:287::-;21999:25;;;21987:2;21972:18;;22033:57;22086:2;22071:18;;22063:6;22033:57;:::i;22101:138::-;22180:13;;22202:31;22180:13;22202:31;:::i;22244:967::-;22339:6;22392:3;22380:9;22371:7;22367:23;22363:33;22360:53;;;22409:1;22406;22399:12;22360:53;22442:2;22436:9;22484:3;22476:6;22472:16;22554:6;22542:10;22539:22;22518:18;22506:10;22503:34;22500:62;22497:88;;;22565:18;;:::i;:::-;22601:2;22594:22;22640:16;;22625:32;;22700:2;22685:18;;22679:25;22713:31;22679:25;22713:31;:::i;:::-;22772:2;22760:15;;22753:30;22828:2;22813:18;;22807:25;22841:33;22807:25;22841:33;:::i;:::-;22907:7;22902:2;22894:6;22890:15;22883:32;;22969:2;22958:9;22954:18;22948:25;22943:2;22935:6;22931:15;22924:50;23029:3;23018:9;23014:19;23008:26;23002:3;22994:6;22990:16;22983:52;23080:3;23069:9;23065:19;23059:26;23094:44;23130:7;23094:44;:::i;:::-;23166:3;23154:16;;23147:33;23158:6;22244:967;-1:-1:-1;;;22244:967:113:o;23216:441::-;23269:5;23322:3;23315:4;23307:6;23303:17;23299:27;23289:55;;23340:1;23337;23330:12;23289:55;23369:6;23363:13;23400:48;23416:31;23444:2;23416:31;:::i;23400:48::-;23473:2;23464:7;23457:19;23519:3;23512:4;23507:2;23499:6;23495:15;23491:26;23488:35;23485:55;;;23536:1;23533;23526:12;23485:55;23549:77;23623:2;23616:4;23607:7;23603:18;23596:4;23588:6;23584:17;23549:77;:::i;23662:896::-;23758:6;23811:2;23799:9;23790:7;23786:23;23782:32;23779:52;;;23827:1;23824;23817:12;23779:52;23860:9;23854:16;23889:18;23930:2;23922:6;23919:14;23916:34;;;23946:1;23943;23936:12;23916:34;23969:22;;;;24025:4;24007:16;;;24003:27;24000:47;;;24043:1;24040;24033:12;24000:47;24069:22;;:::i;:::-;24120:2;24114:9;24107:5;24100:24;24162:2;24158;24154:11;24148:18;24175:33;24200:7;24175:33;:::i;:::-;24240:7;24235:2;24228:5;24224:14;24217:31;;24294:2;24290;24286:11;24280:18;24275:2;24268:5;24264:14;24257:42;24345:2;24341;24337:11;24331:18;24326:2;24319:5;24315:14;24308:42;24389:3;24385:2;24381:12;24375:19;24419:2;24409:8;24406:16;24403:36;;;24435:1;24432;24425:12;24403:36;24472:55;24519:7;24508:8;24504:2;24500:17;24472:55;:::i;:::-;24466:3;24455:15;;24448:80;-1:-1:-1;24459:5:113;23662:896;-1:-1:-1;;;;;23662:896:113:o;24563:184::-;24633:6;24686:2;24674:9;24665:7;24661:23;24657:32;24654:52;;;24702:1;24699;24692:12;24654:52;-1:-1:-1;24725:16:113;;24563:184;-1:-1:-1;24563:184:113:o;24752:437::-;24831:1;24827:12;;;;24874;;;24895:61;;24949:4;24941:6;24937:17;24927:27;;24895:61;25002:2;24994:6;24991:14;24971:18;24968:38;24965:218;;25039:77;25036:1;25029:88;25140:4;25137:1;25130:15;25168:4;25165:1;25158:15;24965:218;;24752:437;;;:::o;25319:544::-;25420:2;25415:3;25412:11;25409:448;;;25456:1;25481:5;25477:2;25470:17;25526:4;25522:2;25512:19;25596:2;25584:10;25580:19;25577:1;25573:27;25567:4;25563:38;25632:4;25620:10;25617:20;25614:47;;;-1:-1:-1;25655:4:113;25614:47;25710:2;25705:3;25701:12;25698:1;25694:20;25688:4;25684:31;25674:41;;25765:82;25783:2;25776:5;25773:13;25765:82;;;25828:17;;;25809:1;25798:13;25765:82;;26099:1321;26221:18;26216:3;26213:27;26210:53;;;26243:18;;:::i;:::-;26272:93;26361:3;26321:38;26353:4;26347:11;26321:38;:::i;:::-;26315:4;26272:93;:::i;:::-;26391:1;26416:2;26411:3;26408:11;26433:1;26428:734;;;;27206:1;27223:3;27220:93;;;-1:-1:-1;27279:19:113;;;27266:33;27220:93;26005:66;25996:1;25992:11;;;25988:84;25984:89;25974:100;26080:1;26076:11;;;25971:117;27326:78;;26401:1013;;26428:734;25266:1;25259:14;;;25303:4;25290:18;;-1:-1:-1;;26464:76:113;;;26623:9;26645:229;26659:7;26656:1;26653:14;26645:229;;;26748:19;;;26735:33;26720:49;;26855:4;26840:20;;;;26808:1;26796:14;;;;26675:12;26645:229;;;26649:3;26902;26893:7;26890:16;26887:219;;;27022:66;27016:3;27010;27007:1;27003:11;26999:21;26995:94;26991:99;26978:9;26973:3;26969:19;26956:33;26952:139;26944:6;26937:155;26887:219;;;27149:1;27143:3;27140:1;27136:11;27132:19;27126:4;27119:33;26401:1013;;26099:1321;;;:::o;27727:195::-;27766:3;27797:66;27790:5;27787:77;27784:103;;27867:18;;:::i;:::-;-1:-1:-1;27914:1:113;27903:13;;27727:195::o;28116:1448::-;28222:6;28253:2;28296;28284:9;28275:7;28271:23;28267:32;28264:52;;;28312:1;28309;28302:12;28264:52;28345:9;28339:16;28374:18;28415:2;28407:6;28404:14;28401:34;;;28431:1;28428;28421:12;28401:34;28454:22;;;;28510:4;28492:16;;;28488:27;28485:47;;;28528:1;28525;28518:12;28485:47;28554:22;;:::i;:::-;28605:2;28599:9;28592:5;28585:24;28648:2;28644;28640:11;28634:18;28677:2;28667:8;28664:16;28661:36;;;28693:1;28690;28683:12;28661:36;28724:8;28720:2;28716:17;28706:27;;;28771:7;28764:4;28760:2;28756:13;28752:27;28742:55;;28793:1;28790;28783:12;28742:55;28822:2;28816:9;28845:79;28861:62;28920:2;28861:62;:::i;28845:79::-;28958:15;;;29040:1;29036:10;;;;29028:19;;29024:28;;;28989:12;;;;29064:19;;;29061:39;;;29096:1;29093;29086:12;29061:39;29128:2;29124;29120:11;29140:356;29156:6;29151:3;29148:15;29140:356;;;29235:3;29229:10;29271:2;29258:11;29255:19;29252:109;;;29315:1;29344:2;29340;29333:14;29252:109;29386:67;29445:7;29440:2;29426:11;29422:2;29418:20;29414:29;29386:67;:::i;:::-;29374:80;;-1:-1:-1;29474:12:113;;;;29173;;29140:356;;;-1:-1:-1;29512:14:113;;;29505:29;;;;-1:-1:-1;29516:5:113;28116:1448;-1:-1:-1;;;;;;28116:1448:113:o;29569:900::-;29664:6;29695:2;29738;29726:9;29717:7;29713:23;29709:32;29706:52;;;29754:1;29751;29744:12;29706:52;29787:9;29781:16;29820:18;29812:6;29809:30;29806:50;;;29852:1;29849;29842:12;29806:50;29875:22;;29928:4;29920:13;;29916:27;-1:-1:-1;29906:55:113;;29957:1;29954;29947:12;29906:55;29986:2;29980:9;30009:79;30025:62;30084:2;30025:62;:::i;30009:79::-;30122:15;;;30204:1;30200:10;;;;30192:19;;30188:28;;;30153:12;;;;30228:19;;;30225:39;;;30260:1;30257;30250:12;30225:39;30284:11;;;;30304:135;30320:6;30315:3;30312:15;30304:135;;;30386:10;;30374:23;;30337:12;;;;30417;;;;30304:135;;30474:128;30541:9;;;30562:11;;;30559:37;;;30576:18;;:::i;30607:184::-;30659:77;30656:1;30649:88;30756:4;30753:1;30746:15;30780:4;30777:1;30770:15;30796:377;31029:6;31018:9;31011:25;31072:2;31067;31056:9;31052:18;31045:30;30992:4;31092:75;31163:2;31152:9;31148:18;31140:6;31092:75;:::i;31431:2096::-;31500:5;31548:6;31536:9;31531:3;31527:19;31523:32;31520:52;;;31568:1;31565;31558:12;31520:52;31590:22;;:::i;:::-;31581:31;;31641:9;31635:16;31670:18;31711:2;31703:6;31700:14;31697:34;;;31727:1;31724;31717:12;31697:34;31754:56;31806:3;31797:6;31786:9;31782:22;31754:56;:::i;:::-;31747:5;31740:71;31857:2;31846:9;31842:18;31836:25;31820:41;;31886:2;31876:8;31873:16;31870:36;;;31902:1;31899;31892:12;31870:36;31938:58;31992:3;31981:8;31970:9;31966:24;31938:58;:::i;:::-;31933:2;31926:5;31922:14;31915:82;32043:2;32032:9;32028:18;32022:25;32006:41;;32072:2;32062:8;32059:16;32056:36;;;32088:1;32085;32078:12;32056:36;32124:58;32178:3;32167:8;32156:9;32152:24;32124:58;:::i;:::-;32119:2;32112:5;32108:14;32101:82;32229:2;32218:9;32214:18;32208:25;32192:41;;32258:2;32248:8;32245:16;32242:36;;;32274:1;32271;32264:12;32242:36;32310:58;32364:3;32353:8;32342:9;32338:24;32310:58;:::i;:::-;32305:2;32298:5;32294:14;32287:82;32415:3;32404:9;32400:19;32394:26;32378:42;;32445:2;32435:8;32432:16;32429:36;;;32461:1;32458;32451:12;32429:36;;32498:58;32552:3;32541:8;32530:9;32526:24;32498:58;:::i;:::-;32492:3;32485:5;32481:15;32474:83;;32611:3;32600:9;32596:19;32590:26;32584:3;32577:5;32573:15;32566:51;32650:50;32695:3;32684:9;32680:19;32650:50;:::i;:::-;32644:3;32637:5;32633:15;32626:75;32734:50;32779:3;32768:9;32764:19;32734:50;:::i;:::-;32728:3;32721:5;32717:15;32710:75;32804:3;32839:49;32884:2;32873:9;32869:18;32839:49;:::i;:::-;32823:14;;;32816:73;32908:3;32943:49;32973:18;;;32943:49;:::i;:::-;32927:14;;;32920:73;33012:3;33047:49;33077:18;;;33047:49;:::i;:::-;33031:14;;;33024:73;33116:3;33151:49;33181:18;;;33151:49;:::i;:::-;33135:14;;;33128:73;33220:3;33261:18;;;33255:25;33239:14;;;33232:49;33300:3;33341:18;;;33335:25;33319:14;;;33312:49;33380:3;33421:18;;;33415:25;33399:14;;;33392:49;33460:3;33501:18;;;33495:25;33479:14;;;33472:49;;;;33139:5;31431:2096;-1:-1:-1;31431:2096:113:o;33532:1184::-;33656:6;33687:2;33730;33718:9;33709:7;33705:23;33701:32;33698:52;;;33746:1;33743;33736:12;33698:52;33779:9;33773:16;33808:18;33849:2;33841:6;33838:14;33835:34;;;33865:1;33862;33855:12;33835:34;33903:6;33892:9;33888:22;33878:32;;33948:7;33941:4;33937:2;33933:13;33929:27;33919:55;;33970:1;33967;33960:12;33919:55;33999:2;33993:9;34022:79;34038:62;34097:2;34038:62;:::i;34022:79::-;34135:15;;;34217:1;34213:10;;;;34205:19;;34201:28;;;34166:12;;;;34241:19;;;34238:39;;;34273:1;34270;34263:12;34238:39;34305:2;34301;34297:11;34317:369;34333:6;34328:3;34325:15;34317:369;;;34412:3;34406:10;34448:2;34435:11;34432:19;34429:109;;;34492:1;34521:2;34517;34510:14;34429:109;34563:80;34635:7;34630:2;34616:11;34612:2;34608:20;34604:29;34563:80;:::i;:::-;34551:93;;-1:-1:-1;34664:12:113;;;;34350;;34317:369;;;-1:-1:-1;34705:5:113;33532:1184;-1:-1:-1;;;;;;;;33532:1184:113:o;34721:277::-;34788:6;34841:2;34829:9;34820:7;34816:23;34812:32;34809:52;;;34857:1;34854;34847:12;34809:52;34889:9;34883:16;34942:5;34935:13;34928:21;34921:5;34918:32;34908:60;;34964:1;34961;34954:12;35256:368;35355:6;35408:2;35396:9;35387:7;35383:23;35379:32;35376:52;;;35424:1;35421;35414:12;35376:52;35457:9;35451:16;35490:18;35482:6;35479:30;35476:50;;;35522:1;35519;35512:12;35476:50;35545:73;35610:7;35601:6;35590:9;35586:22;35545:73;:::i;35629:1001::-;35724:6;35777:3;35765:9;35756:7;35752:23;35748:33;35745:53;;;35794:1;35791;35784:12;35745:53;35820:22;;:::i;:::-;35871:9;35865:16;35858:5;35851:31;35914:49;35959:2;35948:9;35944:18;35914:49;:::i;:::-;35909:2;35902:5;35898:14;35891:73;35996:49;36041:2;36030:9;36026:18;35996:49;:::i;:::-;35991:2;35984:5;35980:14;35973:73;36078:49;36123:2;36112:9;36108:18;36078:49;:::i;:::-;36073:2;36066:5;36062:14;36055:73;36161:50;36206:3;36195:9;36191:19;36161:50;:::i;:::-;36155:3;36148:5;36144:15;36137:75;36245:50;36290:3;36279:9;36275:19;36245:50;:::i;:::-;36239:3;36232:5;36228:15;36221:75;36329:50;36374:3;36363:9;36359:19;36329:50;:::i;:::-;36323:3;36312:15;;36305:75;36434:3;36419:19;;;36413:26;36396:15;;;36389:51;36459:3;36500:18;;;36494:25;36478:14;;;36471:49;36539:3;36580:18;;;36574:25;36558:14;;;36551:49;;;;-1:-1:-1;36316:5:113;35629:1001;-1:-1:-1;35629:1001:113:o;36635:288::-;36810:6;36799:9;36792:25;36853:2;36848;36837:9;36833:18;36826:30;36773:4;36873:44;36913:2;36902:9;36898:18;36890:6;36873:44;:::i",
    "linkReferences": {},
    "immutableReferences": {
      "10": [
        {
          "start": 979,
          "length": 32
        },
        {
          "start": 1233,
          "length": 32
        },
        {
          "start": 2173,
          "length": 32
        },
        {
          "start": 2466,
          "length": 32
        },
        {
          "start": 2709,
          "length": 32
        },
        {
          "start": 2871,
          "length": 32
        },
        {
          "start": 3024,
          "length": 32
        },
        {
          "start": 3177,
          "length": 32
        },
        {
          "start": 3489,
          "length": 32
        },
        {
          "start": 3898,
          "length": 32
        },
        {
          "start": 4290,
          "length": 32
        },
        {
          "start": 4472,
          "length": 32
        },
        {
          "start": 4905,
          "length": 32
        },
        {
          "start": 5065,
          "length": 32
        },
        {
          "start": 5364,
          "length": 32
        },
        {
          "start": 5638,
          "length": 32
        },
        {
          "start": 5763,
          "length": 32
        },
        {
          "start": 5974,
          "length": 32
        },
        {
          "start": 6163,
          "length": 32
        },
        {
          "start": 6338,
          "length": 32
        },
        {
          "start": 6481,
          "length": 32
        },
        {
          "start": 6880,
          "length": 32
        },
        {
          "start": 7015,
          "length": 32
        },
        {
          "start": 7152,
          "length": 32
        },
        {
          "start": 7555,
          "length": 32
        },
        {
          "start": 7809,
          "length": 32
        }
      ]
    }
  },
  "methodIdentifiers": {
    "ORACLE()": "38013f02",
    "addResolutionModuleSequence(address[])": "97a0075d",
    "allowedModule(bytes32,address)": "c4a41c4f",
    "createRequest((bytes,bytes,bytes,bytes,bytes,bytes32,address,address,address,address,address))": "59e318aa",
    "createRequests((bytes,bytes,bytes,bytes,bytes,bytes32,address,address,address,address,address)[])": "49c7741e",
    "currentModuleIndex(bytes32)": "67b3a1e9",
    "currentSequenceId()": "843d7a70",
    "decodeRequestData(bytes32)": "4d610a46",
    "deleteResponse(bytes32)": "ffc84d69",
    "disputeOf(bytes32)": "9427c7d6",
    "disputeResponse(bytes32,bytes32)": "548a4884",
    "escalateDispute(bytes32)": "b2d83645",
    "finalize(bytes32)": "92584d80",
    "finalize(bytes32,bytes32)": "c65ff8f2",
    "finalizeRequest(bytes32,address)": "309de607",
    "getCurrentResolutionModule(bytes32)": "0cad26ce",
    "getDispute(bytes32)": "136ba6aa",
    "getFinalizedResponse(bytes32)": "163ed02f",
    "getFinalizedResponseId(bytes32)": "1af02211",
    "getFullRequest(bytes32)": "d35d640e",
    "getRequest(bytes32)": "fb1e61ca",
    "getRequestByNonce(uint256)": "eeff6139",
    "getRequestId(uint256)": "68814af8",
    "getResponse(bytes32)": "415a2bc1",
    "getResponseIds(bytes32)": "5b425b09",
    "isParticipant(bytes32,address)": "c44a8923",
    "listRequestIds(uint256,uint256)": "b670e144",
    "listRequests(uint256,uint256)": "a803b59d",
    "listSubmodules(uint256,uint256,uint256)": "7436f080",
    "moduleName()": "93f0899a",
    "oracle()": "7dc0d1d0",
    "proposeResponse(address,bytes32,bytes)": "92b0382f",
    "proposeResponse(bytes32,bytes)": "b06303f2",
    "requestData(bytes32)": "3661346b",
    "requestIdForDispute(bytes32)": "da526d1b",
    "resolveDispute(bytes32)": "c8218e3e",
    "setupRequest(bytes32,bytes)": "2e76be2a",
    "startResolution(bytes32)": "d96dd0e7",
    "totalRequestCount()": "3261bb3f",
    "updateDisputeStatus(bytes32,uint8)": "0c1d0c23"
  },
  "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IOracle\",\"name\":\"_oracle\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"Module_OnlyOracle\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"}],\"name\":\"Oracle_AlreadyFinalized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_caller\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_responseId\",\"type\":\"bytes32\"}],\"name\":\"Oracle_CannotDeleteInvalidProposer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_responseId\",\"type\":\"bytes32\"}],\"name\":\"Oracle_CannotDeleteWhileDisputing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"}],\"name\":\"Oracle_CannotEscalate\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"}],\"name\":\"Oracle_CannotResolve\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Oracle_CannotTamperParticipant\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"}],\"name\":\"Oracle_InvalidDisputeId\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_responseId\",\"type\":\"bytes32\"}],\"name\":\"Oracle_InvalidFinalizedResponse\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"}],\"name\":\"Oracle_InvalidRequestId\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_responseId\",\"type\":\"bytes32\"}],\"name\":\"Oracle_InvalidResponseId\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"}],\"name\":\"Oracle_NoResolutionModule\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_caller\",\"type\":\"address\"}],\"name\":\"Oracle_NotDisputeModule\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_caller\",\"type\":\"address\"}],\"name\":\"Oracle_NotResolutionModule\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_responseId\",\"type\":\"bytes32\"}],\"name\":\"Oracle_ResponseAlreadyDisputed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SequentialResolutionModule_NotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SequentialResolutionModule_OnlySubmodule\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_sequenceId\",\"type\":\"uint256\"}],\"name\":\"SequentialResolutionModule_SequenceIdAlreadyUsed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_caller\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"}],\"name\":\"DisputeEscalated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IOracle.DisputeStatus\",\"name\":\"_status\",\"type\":\"uint8\"}],\"name\":\"DisputeResolved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_caller\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"}],\"name\":\"DisputeResolved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IOracle.DisputeStatus\",\"name\":\"_status\",\"type\":\"uint8\"}],\"name\":\"DisputeStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_caller\",\"type\":\"address\"}],\"name\":\"OracleRequestFinalized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_requester\",\"type\":\"address\"}],\"name\":\"RequestCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_finalizer\",\"type\":\"address\"}],\"name\":\"RequestFinalized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_sequenceId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"contract IResolutionModule[]\",\"name\":\"_modules\",\"type\":\"address[]\"}],\"name\":\"ResolutionSequenceAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"}],\"name\":\"ResolutionStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_caller\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_responseId\",\"type\":\"bytes32\"}],\"name\":\"ResponseDeleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_disputer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_responseId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"}],\"name\":\"ResponseDisputed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_proposer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_responseId\",\"type\":\"bytes32\"}],\"name\":\"ResponseProposed\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ORACLE\",\"outputs\":[{\"internalType\":\"contract IOracle\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IResolutionModule[]\",\"name\":\"_modules\",\"type\":\"address[]\"}],\"name\":\"addResolutionModuleSequence\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_sequenceId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_module\",\"type\":\"address\"}],\"name\":\"allowedModule\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_allowedModule\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"requestModuleData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"responseModuleData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"disputeModuleData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"resolutionModuleData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"finalityModuleData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"ipfsHash\",\"type\":\"bytes32\"},{\"internalType\":\"contract IRequestModule\",\"name\":\"requestModule\",\"type\":\"address\"},{\"internalType\":\"contract IResponseModule\",\"name\":\"responseModule\",\"type\":\"address\"},{\"internalType\":\"contract IDisputeModule\",\"name\":\"disputeModule\",\"type\":\"address\"},{\"internalType\":\"contract IResolutionModule\",\"name\":\"resolutionModule\",\"type\":\"address\"},{\"internalType\":\"contract IFinalityModule\",\"name\":\"finalityModule\",\"type\":\"address\"}],\"internalType\":\"struct IOracle.NewRequest\",\"name\":\"\",\"type\":\"tuple\"}],\"name\":\"createRequest\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"requestModuleData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"responseModuleData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"disputeModuleData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"resolutionModuleData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"finalityModuleData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"ipfsHash\",\"type\":\"bytes32\"},{\"internalType\":\"contract IRequestModule\",\"name\":\"requestModule\",\"type\":\"address\"},{\"internalType\":\"contract IResponseModule\",\"name\":\"responseModule\",\"type\":\"address\"},{\"internalType\":\"contract IDisputeModule\",\"name\":\"disputeModule\",\"type\":\"address\"},{\"internalType\":\"contract IResolutionModule\",\"name\":\"resolutionModule\",\"type\":\"address\"},{\"internalType\":\"contract IFinalityModule\",\"name\":\"finalityModule\",\"type\":\"address\"}],\"internalType\":\"struct IOracle.NewRequest[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"name\":\"createRequests\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"}],\"name\":\"currentModuleIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_moduleIndex\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentSequenceId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"}],\"name\":\"decodeRequestData\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"sequenceId\",\"type\":\"uint256\"},{\"internalType\":\"bytes[]\",\"name\":\"submoduleData\",\"type\":\"bytes[]\"}],\"internalType\":\"struct ISequentialResolutionModule.RequestParameters\",\"name\":\"_params\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"deleteResponse\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"}],\"name\":\"disputeOf\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"disputeResponse\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"}],\"name\":\"escalateDispute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"}],\"name\":\"finalize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_finalizedResponseId\",\"type\":\"bytes32\"}],\"name\":\"finalize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_finalizer\",\"type\":\"address\"}],\"name\":\"finalizeRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"}],\"name\":\"getCurrentResolutionModule\",\"outputs\":[{\"internalType\":\"contract IResolutionModule\",\"name\":\"_module\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"}],\"name\":\"getDispute\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"disputer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"responseId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"internalType\":\"enum IOracle.DisputeStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"internalType\":\"struct IOracle.Dispute\",\"name\":\"_dispute\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"}],\"name\":\"getFinalizedResponse\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"disputeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"response\",\"type\":\"bytes\"}],\"internalType\":\"struct IOracle.Response\",\"name\":\"_response\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"}],\"name\":\"getFinalizedResponseId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_finalizedResponseId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"}],\"name\":\"getFullRequest\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"requestModuleData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"responseModuleData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"disputeModuleData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"resolutionModuleData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"finalityModuleData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"ipfsHash\",\"type\":\"bytes32\"},{\"internalType\":\"contract IRequestModule\",\"name\":\"requestModule\",\"type\":\"address\"},{\"internalType\":\"contract IResponseModule\",\"name\":\"responseModule\",\"type\":\"address\"},{\"internalType\":\"contract IDisputeModule\",\"name\":\"disputeModule\",\"type\":\"address\"},{\"internalType\":\"contract IResolutionModule\",\"name\":\"resolutionModule\",\"type\":\"address\"},{\"internalType\":\"contract IFinalityModule\",\"name\":\"finalityModule\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"finalizedAt\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"}],\"internalType\":\"struct IOracle.FullRequest\",\"name\":\"_request\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"}],\"name\":\"getRequest\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"ipfsHash\",\"type\":\"bytes32\"},{\"internalType\":\"contract IRequestModule\",\"name\":\"requestModule\",\"type\":\"address\"},{\"internalType\":\"contract IResponseModule\",\"name\":\"responseModule\",\"type\":\"address\"},{\"internalType\":\"contract IDisputeModule\",\"name\":\"disputeModule\",\"type\":\"address\"},{\"internalType\":\"contract IResolutionModule\",\"name\":\"resolutionModule\",\"type\":\"address\"},{\"internalType\":\"contract IFinalityModule\",\"name\":\"finalityModule\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"finalizedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IOracle.Request\",\"name\":\"_request\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"getRequestByNonce\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"ipfsHash\",\"type\":\"bytes32\"},{\"internalType\":\"contract IRequestModule\",\"name\":\"requestModule\",\"type\":\"address\"},{\"internalType\":\"contract IResponseModule\",\"name\":\"responseModule\",\"type\":\"address\"},{\"internalType\":\"contract IDisputeModule\",\"name\":\"disputeModule\",\"type\":\"address\"},{\"internalType\":\"contract IResolutionModule\",\"name\":\"resolutionModule\",\"type\":\"address\"},{\"internalType\":\"contract IFinalityModule\",\"name\":\"finalityModule\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"finalizedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IOracle.Request\",\"name\":\"_request\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"getRequestId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_responseId\",\"type\":\"bytes32\"}],\"name\":\"getResponse\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"disputeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"response\",\"type\":\"bytes\"}],\"internalType\":\"struct IOracle.Response\",\"name\":\"_response\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"}],\"name\":\"getResponseIds\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"_ids\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"isParticipant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isParticipant\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_startFrom\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_batchSize\",\"type\":\"uint256\"}],\"name\":\"listRequestIds\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"_list\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_startFrom\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"listRequests\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"requestModuleData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"responseModuleData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"disputeModuleData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"resolutionModuleData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"finalityModuleData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"ipfsHash\",\"type\":\"bytes32\"},{\"internalType\":\"contract IRequestModule\",\"name\":\"requestModule\",\"type\":\"address\"},{\"internalType\":\"contract IResponseModule\",\"name\":\"responseModule\",\"type\":\"address\"},{\"internalType\":\"contract IDisputeModule\",\"name\":\"disputeModule\",\"type\":\"address\"},{\"internalType\":\"contract IResolutionModule\",\"name\":\"resolutionModule\",\"type\":\"address\"},{\"internalType\":\"contract IFinalityModule\",\"name\":\"finalityModule\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"finalizedAt\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"}],\"internalType\":\"struct IOracle.FullRequest[]\",\"name\":\"_list\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_startFrom\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_batchSize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_sequenceId\",\"type\":\"uint256\"}],\"name\":\"listSubmodules\",\"outputs\":[{\"internalType\":\"contract IResolutionModule[]\",\"name\":\"_list\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"moduleName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"_moduleName\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oracle\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_oracle\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"proposeResponse\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"proposeResponse\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"}],\"name\":\"requestData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"_requestData\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"}],\"name\":\"requestIdForDispute\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"}],\"name\":\"resolveDispute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"setupRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"}],\"name\":\"startResolution\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalRequestCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_count\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"},{\"internalType\":\"enum IOracle.DisputeStatus\",\"name\":\"_status\",\"type\":\"uint8\"}],\"name\":\"updateDisputeStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"The next resolution is started if the current resolution module returns no answer\",\"errors\":{\"Oracle_AlreadyFinalized(bytes32)\":[{\"params\":{\"_requestId\":\"The id of the request\"}}],\"Oracle_CannotDeleteInvalidProposer(address,bytes32)\":[{\"params\":{\"_caller\":\"The caller of the function\",\"_responseId\":\"The id of the response being deleted\"}}],\"Oracle_CannotDeleteWhileDisputing(bytes32)\":[{\"params\":{\"_responseId\":\"The id of the response being deleted\"}}],\"Oracle_CannotEscalate(bytes32)\":[{\"params\":{\"_disputeId\":\"The id of the dispute\"}}],\"Oracle_CannotResolve(bytes32)\":[{\"params\":{\"_disputeId\":\"The id of the dispute\"}}],\"Oracle_InvalidDisputeId(bytes32)\":[{\"params\":{\"_disputeId\":\"The id of the dispute\"}}],\"Oracle_InvalidFinalizedResponse(bytes32)\":[{\"params\":{\"_responseId\":\"The id of the response\"}}],\"Oracle_InvalidRequestId(bytes32)\":[{\"params\":{\"_requestId\":\"The id of the request\"}}],\"Oracle_InvalidResponseId(bytes32)\":[{\"params\":{\"_responseId\":\"The id of the response being disputed\"}}],\"Oracle_NoResolutionModule(bytes32)\":[{\"params\":{\"_disputeId\":\"The id of the dispute being\"}}],\"Oracle_NotDisputeModule(address)\":[{\"params\":{\"_caller\":\"The caller of the function\"}}],\"Oracle_NotResolutionModule(address)\":[{\"params\":{\"_caller\":\"The caller of the function\"}}],\"Oracle_ResponseAlreadyDisputed(bytes32)\":[{\"params\":{\"_responseId\":\"The id of the response being disputed\"}}],\"SequentialResolutionModule_SequenceIdAlreadyUsed(uint256)\":[{\"params\":{\"_sequenceId\":\"The sequenceId that was already used\"}}]},\"events\":{\"DisputeEscalated(address,bytes32)\":{\"params\":{\"_caller\":\"The address of the user who escalated the dispute\",\"_disputeId\":\"The id of the dispute being escalated\"}},\"DisputeResolved(address,bytes32)\":{\"params\":{\"_caller\":\"The address of the user who resolved the dispute\",\"_disputeId\":\"The id of the dispute being resolved\"}},\"DisputeResolved(bytes32,bytes32,uint8)\":{\"params\":{\"_disputeId\":\"The id for the dispute that was resolved\",\"_requestId\":\"The id for the request that was disputed\",\"_status\":\"The final result of the resolution\"}},\"DisputeStatusUpdated(bytes32,uint8)\":{\"params\":{\"_disputeId\":\"The id of the dispute\",\"_status\":\"The new dispute status\"}},\"OracleRequestFinalized(bytes32,address)\":{\"params\":{\"_caller\":\"The address of the user who finalized the request\",\"_requestId\":\"The id of the request being finalized\"}},\"RequestCreated(bytes32,address)\":{\"params\":{\"_requestId\":\"The id of the created request\",\"_requester\":\"The address of the user who created the request\"}},\"RequestFinalized(bytes32,address)\":{\"params\":{\"_finalizer\":\"The address that initiated the finalization\",\"_requestId\":\"The ID of the request that was finalized\"}},\"ResolutionStarted(bytes32,bytes32)\":{\"params\":{\"_disputeId\":\"The id for the dispute that the resolution was started for\",\"_requestId\":\"The id for the request for the dispute\"}},\"ResponseDeleted(bytes32,address,bytes32)\":{\"params\":{\"_caller\":\"The address of the user who deleted the response\",\"_requestId\":\"The id of the request\",\"_responseId\":\"The id of the deleted response\"}},\"ResponseDisputed(address,bytes32,bytes32)\":{\"params\":{\"_disputeId\":\"The id of the dispute\",\"_disputer\":\"The address of the user who started the dispute\",\"_responseId\":\"The id of the response being disputed\"}},\"ResponseProposed(bytes32,address,bytes32)\":{\"params\":{\"_proposer\":\"The address of the user who proposed the response\",\"_requestId\":\"The id of the request\",\"_responseId\":\"The id of the proposed response\"}}},\"kind\":\"dev\",\"methods\":{\"addResolutionModuleSequence(address[])\":{\"params\":{\"_modules\":\"The modules to add to the sequence.\"},\"returns\":{\"_sequenceId\":\"The sequenceId created\"}},\"allowedModule(bytes32,address)\":{\"params\":{\"_module\":\"The address to check\",\"_requestId\":\"The id of the request\"},\"returns\":{\"_allowedModule\":\"If the module is a part of the request\"}},\"createRequest((bytes,bytes,bytes,bytes,bytes,bytes32,address,address,address,address,address))\":{\"details\":\"The modules must be real contracts following the IModule interface\",\"params\":{\"_request\":\"The request data\"},\"returns\":{\"_0\":\"The id of the request, can be used to propose a response or query results\"}},\"createRequests((bytes,bytes,bytes,bytes,bytes,bytes32,address,address,address,address,address)[])\":{\"params\":{\"_requestsData\":\"The array of calldata for each request\"},\"returns\":{\"_0\":\"The array of request IDs\"}},\"decodeRequestData(bytes32)\":{\"params\":{\"_requestId\":\"The ID of the request\"},\"returns\":{\"_params\":\"The struct containing the parameters for the request\"}},\"deleteResponse(bytes32)\":{\"params\":{\"_responseId\":\"The id of the response being deleted\"}},\"disputeOf(bytes32)\":{\"params\":{\"_responseId\":\"The response id to get the dispute for\"},\"returns\":{\"_disputeId\":\"The id of the dispute associated with the given response\"}},\"disputeResponse(bytes32,bytes32)\":{\"details\":\"If pre-dispute modules are being used, the returned dispute from `disputeModule.disputeResponse` may have a status other than `Active`, in which case the dispute is considered resolved and the dispute status updated.\",\"params\":{\"_requestId\":\"The id of the request which was responded\",\"_responseId\":\"The id of the response being disputed\"}},\"escalateDispute(bytes32)\":{\"params\":{\"_disputeId\":\"The id of the dispute to escalate\"}},\"finalize(bytes32)\":{\"params\":{\"_requestId\":\"The id of the request to finalize\"}},\"finalize(bytes32,bytes32)\":{\"params\":{\"_finalizedResponseId\":\"The id of the response to finalize the request with\",\"_requestId\":\"The id of the request to finalize\"}},\"finalizeRequest(bytes32,address)\":{\"params\":{\"_finalizer\":\"The address that initiated the finalization\",\"_requestId\":\"The ID of the request being finalized\"}},\"getCurrentResolutionModule(bytes32)\":{\"params\":{\"_disputeId\":\"The id of the dispute\"},\"returns\":{\"_module\":\"Te current resolution module\"}},\"getDispute(bytes32)\":{\"params\":{\"_disputeId\":\"The id of the dispute\"},\"returns\":{\"_dispute\":\"The dispute data\"}},\"getFinalizedResponse(bytes32)\":{\"params\":{\"_requestId\":\"The id of the request\"},\"returns\":{\"_response\":\"The finalized response\"}},\"getFinalizedResponseId(bytes32)\":{\"params\":{\"_requestId\":\"The id of the request\"},\"returns\":{\"_finalizedResponseId\":\"The ID of the finalized response\"}},\"getFullRequest(bytes32)\":{\"params\":{\"_requestId\":\"The id of the request\"},\"returns\":{\"_request\":\"The request data\"}},\"getRequest(bytes32)\":{\"params\":{\"_requestId\":\"The id of the request\"},\"returns\":{\"_request\":\"The request data\"}},\"getRequestByNonce(uint256)\":{\"params\":{\"_nonce\":\"The nonce of the request\"},\"returns\":{\"_request\":\"The request data\"}},\"getRequestId(uint256)\":{\"params\":{\"_nonce\":\"The nonce of the request\"},\"returns\":{\"_requestId\":\"The id of the request\"}},\"getResponse(bytes32)\":{\"params\":{\"_responseId\":\"The id of the response\"},\"returns\":{\"_response\":\"The response data\"}},\"getResponseIds(bytes32)\":{\"params\":{\"_requestId\":\"The id of the request\"},\"returns\":{\"_ids\":\"The ids of the responses\"}},\"isParticipant(bytes32,address)\":{\"params\":{\"_requestId\":\"The id of the request\",\"_user\":\"The address to check\"},\"returns\":{\"_isParticipant\":\"If the user is a participant of the request\"}},\"listRequestIds(uint256,uint256)\":{\"params\":{\"_batchSize\":\"The number of requests to return\",\"_startFrom\":\"The index to start from\"},\"returns\":{\"_list\":\"The list of request IDs\"}},\"listRequests(uint256,uint256)\":{\"params\":{\"_batchSize\":\"The number of requests to return\",\"_startFrom\":\"The index to start from\"},\"returns\":{\"_list\":\"The list of requests\"}},\"listSubmodules(uint256,uint256,uint256)\":{\"params\":{\"_batchSize\":\"The number of submodules to return\",\"_sequenceId\":\"The sequence to get the submodules from\",\"_startFrom\":\"The index to start from\"},\"returns\":{\"_list\":\"The list of submodules\"}},\"moduleName()\":{\"returns\":{\"_moduleName\":\"The name of the module.\"}},\"oracle()\":{\"returns\":{\"_oracle\":\"The address of the oracle\"}},\"proposeResponse(address,bytes32,bytes)\":{\"details\":\"Only callable by the dispute module of the request\",\"params\":{\"_proposer\":\"The address of the user proposing the response\",\"_requestId\":\"The id of the request\",\"_responseData\":\"The response data\"},\"returns\":{\"_0\":\"The id of the created response\"}},\"proposeResponse(bytes32,bytes)\":{\"params\":{\"_requestId\":\"The id of the request\",\"_responseData\":\"The response data\"},\"returns\":{\"_0\":\"The id of the created response\"}},\"resolveDispute(bytes32)\":{\"params\":{\"_disputeId\":\"The ID of the dispute being resolved\"}},\"setupRequest(bytes32,bytes)\":{\"params\":{\"_data\":\"The data of the request\",\"_requestId\":\"The ID of the request\"}},\"startResolution(bytes32)\":{\"params\":{\"_disputeId\":\"The ID of the dispute\"}},\"totalRequestCount()\":{\"returns\":{\"_count\":\"The total number of requests\"}},\"updateDisputeStatus(bytes32,uint8)\":{\"params\":{\"_disputeId\":\"The id of the dispute to update\",\"_status\":\"The new status of the dispute\"}}},\"stateVariables\":{\"currentModuleIndex\":{\"params\":{\"_disputeId\":\"The disputeId\"},\"return\":\"_moduleIndex The index of the module\",\"returns\":{\"_moduleIndex\":\"The index of the module\"}},\"currentSequenceId\":{\"return\":\"The sequence id\",\"returns\":{\"_0\":\"The sequence id\"}},\"requestIdForDispute\":{\"params\":{\"_disputeId\":\"The disputeId\"},\"return\":\"_requestId The requestId\",\"returns\":{\"_requestId\":\"The requestId\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"Module_OnlyOracle()\":[{\"notice\":\"Thrown when the caller is not the oracle\"}],\"Oracle_AlreadyFinalized(bytes32)\":[{\"notice\":\"Thrown when trying to dispute or finalize a request that is already finalized\"}],\"Oracle_CannotDeleteInvalidProposer(address,bytes32)\":[{\"notice\":\"Thrown when an unauthorized caller is trying to delete a response\"}],\"Oracle_CannotDeleteWhileDisputing(bytes32)\":[{\"notice\":\"Thrown when trying to delete a disputed response\"}],\"Oracle_CannotEscalate(bytes32)\":[{\"notice\":\"Thrown when trying to escalate a dispute that's not in the active state\"}],\"Oracle_CannotResolve(bytes32)\":[{\"notice\":\"Thrown when trying to resolve a dispute that's not in the active nor escalated state\"}],\"Oracle_CannotTamperParticipant()\":[{\"notice\":\"Thrown when a module tries to tamper with the address of the user\"}],\"Oracle_InvalidDisputeId(bytes32)\":[{\"notice\":\"Thrown when trying to resolve or escalate an invalid dispute\"}],\"Oracle_InvalidFinalizedResponse(bytes32)\":[{\"notice\":\"Thrown when trying to finalize a request with an invalid response\"}],\"Oracle_InvalidRequestId(bytes32)\":[{\"notice\":\"Thrown when trying to propose a response to an invalid request\"}],\"Oracle_InvalidResponseId(bytes32)\":[{\"notice\":\"Thrown when trying to dispute an invalid response\"}],\"Oracle_NoResolutionModule(bytes32)\":[{\"notice\":\"Thrown when trying to resolve a dispute of a request without resolution module\"}],\"Oracle_NotDisputeModule(address)\":[{\"notice\":\"Thrown when an unauthorized caller is trying to propose a response\"}],\"Oracle_NotResolutionModule(address)\":[{\"notice\":\"Thrown when an unauthorized caller is trying to change a dispute's status\"}],\"Oracle_ResponseAlreadyDisputed(bytes32)\":[{\"notice\":\"Thrown when disputing a response that is already disputed\"}],\"SequentialResolutionModule_NotImplemented()\":[{\"notice\":\"Thrown when the function called is not implemented\"}],\"SequentialResolutionModule_OnlySubmodule()\":[{\"notice\":\"Thrown when the caller is not a valid sub-module\"}],\"SequentialResolutionModule_SequenceIdAlreadyUsed(uint256)\":[{\"notice\":\"Thrown when trying to add a new sequenceId that was already used\"}]},\"events\":{\"DisputeEscalated(address,bytes32)\":{\"notice\":\"Emitted when a dispute is escalated\"},\"DisputeResolved(address,bytes32)\":{\"notice\":\"Emitted when a dispute is resolved\"},\"DisputeResolved(bytes32,bytes32,uint8)\":{\"notice\":\"Emitted when a dispute has been resolved\"},\"DisputeStatusUpdated(bytes32,uint8)\":{\"notice\":\"Emitted when a dispute's status changes\"},\"OracleRequestFinalized(bytes32,address)\":{\"notice\":\"Emitted when a request is finalized\"},\"RequestCreated(bytes32,address)\":{\"notice\":\"Emitted when a request is created\"},\"RequestFinalized(bytes32,address)\":{\"notice\":\"Emitted when a request is finalized\"},\"ResolutionSequenceAdded(uint256,address[])\":{\"notice\":\"Emitted when a new resolution sequence is added\"},\"ResolutionStarted(bytes32,bytes32)\":{\"notice\":\"Emitted when a resolution is started\"},\"ResponseDeleted(bytes32,address,bytes32)\":{\"notice\":\"Emitted when a response is deleted\"},\"ResponseDisputed(address,bytes32,bytes32)\":{\"notice\":\"Emitted when a response is disputed\"},\"ResponseProposed(bytes32,address,bytes32)\":{\"notice\":\"Emitted when a response is proposed\"}},\"kind\":\"user\",\"methods\":{\"addResolutionModuleSequence(address[])\":{\"notice\":\"Adds a sequence of modules to the resolution module registry.\"},\"allowedModule(bytes32,address)\":{\"notice\":\"Checks if the given address is a module used in the request\"},\"createRequest((bytes,bytes,bytes,bytes,bytes,bytes32,address,address,address,address,address))\":{\"notice\":\"Generates the request ID and initializes the modules for the request\"},\"createRequests((bytes,bytes,bytes,bytes,bytes,bytes32,address,address,address,address,address)[])\":{\"notice\":\"Creates multiple requests, the same way as createRequest\"},\"currentModuleIndex(bytes32)\":{\"notice\":\"Returns the current index of the submodule in use for a dispute\"},\"currentSequenceId()\":{\"notice\":\"Returns the last sequence id that was created\"},\"decodeRequestData(bytes32)\":{\"notice\":\"Returns the decoded data for a request\"},\"deleteResponse(bytes32)\":{\"notice\":\"Deletes a response\"},\"disputeOf(bytes32)\":{\"notice\":\"Returns the dispute id for a given response\"},\"disputeResponse(bytes32,bytes32)\":{\"notice\":\"Starts the process of disputing a response\"},\"escalateDispute(bytes32)\":{\"notice\":\"Escalates a dispute, sending it to the resolution module\"},\"finalize(bytes32)\":{\"notice\":\"Finalizes a request without a valid response\"},\"finalize(bytes32,bytes32)\":{\"notice\":\"Finalizes a request\"},\"finalizeRequest(bytes32,address)\":{\"notice\":\"Finalizes a given request and executes any additional logic set by the chosen modules\"},\"getCurrentResolutionModule(bytes32)\":{\"notice\":\"Returns the module that is currently resolving the specified dispute\"},\"getDispute(bytes32)\":{\"notice\":\"Returns a dispute\"},\"getFinalizedResponse(bytes32)\":{\"notice\":\"Returns the finalized response for a given request\"},\"getFinalizedResponseId(bytes32)\":{\"notice\":\"Returns the finalized response ID for a given request\"},\"getFullRequest(bytes32)\":{\"notice\":\"Returns a full request\"},\"getRequest(bytes32)\":{\"notice\":\"Returns a request\"},\"getRequestByNonce(uint256)\":{\"notice\":\"Returns a request\"},\"getRequestId(uint256)\":{\"notice\":\"Returns a request id\"},\"getResponse(bytes32)\":{\"notice\":\"Fetches a response\"},\"getResponseIds(bytes32)\":{\"notice\":\"Returns the ids of the responses for a given request\"},\"isParticipant(bytes32,address)\":{\"notice\":\"Checks if the given address is participating in a specific request\"},\"listRequestIds(uint256,uint256)\":{\"notice\":\"Returns the list of request IDs\"},\"listRequests(uint256,uint256)\":{\"notice\":\"Returns the list of requests\"},\"listSubmodules(uint256,uint256,uint256)\":{\"notice\":\"Returns the list of submodules\"},\"moduleName()\":{\"notice\":\"Returns the name of the module.\"},\"oracle()\":{\"notice\":\"Returns the address of the oracle\"},\"proposeResponse(address,bytes32,bytes)\":{\"notice\":\"Creates a new response for a given request\"},\"proposeResponse(bytes32,bytes)\":{\"notice\":\"Creates a new response for a given request\"},\"requestData(bytes32)\":{\"notice\":\"Returns the data of the request associated with the provided id\"},\"requestIdForDispute(bytes32)\":{\"notice\":\"Returns the requestId corresponding to a dispute\"},\"resolveDispute(bytes32)\":{\"notice\":\"Resolves a dispute\"},\"setupRequest(bytes32,bytes)\":{\"notice\":\"Stores the request data and runs module-specific hooks\"},\"startResolution(bytes32)\":{\"notice\":\"Starts the resolution process\"},\"totalRequestCount()\":{\"notice\":\"Returns the total number of requests stored in the oracle\"},\"updateDisputeStatus(bytes32,uint8)\":{\"notice\":\"Updates the status of a dispute\"}},\"notice\":\"Module that leverages multiple resolution modules to obtain an answer\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"solidity/contracts/modules/resolution/SequentialResolutionModule.sol\":\"SequentialResolutionModule\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[\":@defi-wonderland/=node_modules/@defi-wonderland/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\",\":solmate/=node_modules/solmate/src/\"]},\"sources\":{\"node_modules/@defi-wonderland/prophet-core-contracts/solidity/contracts/Module.sol\":{\"keccak256\":\"0xb528e0eea66984412d038db1edcbfe77ac642089975fae6b0b44e8be13319bbf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e70d520407288d43d7c735fd7355502b514ba6feacaeb4a5dd86497e3f91eb41\",\"dweb:/ipfs/QmPXY7uXjnsFacp6VpL45bMrxCZGtQ8AAnecTXC9ASkpV7\"]},\"node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/IModule.sol\":{\"keccak256\":\"0x72c2f68e8c2b749d9ae745269c706b137a640d6bd6f65f966238b547d61e3a05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4edb1aae7c4abd875d2da44a2dd83781c3c0a3d059edf2d1f2be1c44f865456f\",\"dweb:/ipfs/QmbEHy8tENha1ANEEZADpH4THmqC8aHyCXxFYPw4tS5mf4\"]},\"node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/IOracle.sol\":{\"keccak256\":\"0x606262b4bb3b1447b1f6afef8a1b49088956b168a4b066f6f60da4712b95d3cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a763cdb6ba9f12a93e3d5238d6d3235c5c0c229df94793927f9d2abe00542823\",\"dweb:/ipfs/QmbAbfVyCiHvNvhHxc5r8tK5GUuVBATo15Ma5MirhZPtE6\"]},\"node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/dispute/IDisputeModule.sol\":{\"keccak256\":\"0x21707db43d55ba040893ef0ffefa7f9740c6e03b94d750637e6b2c047a16baa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ae582ca2fdd6fc82c650333066c95a917221282ad7ef15ea62fb4a31e4ed864d\",\"dweb:/ipfs/QmdxvkpNCK46uYv31TxAtxCiRPSoxbT4hrs94WQfR4ctTM\"]},\"node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/finality/IFinalityModule.sol\":{\"keccak256\":\"0xf6f465732ee119879e3317227f9cf6468055f4f98acdb4365f5b4eacda32948e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://82e1928a7bbc5bce95e1b83d917e1470c72a0bec7494f6f42471b21c0f2b641e\",\"dweb:/ipfs/QmSjaBsNhzCfQd5xwZa98LNYSZ1TqAqo6inRTGD31ua4L8\"]},\"node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/request/IRequestModule.sol\":{\"keccak256\":\"0xefa5dd3334a1676cca1c1860c66c16adb1e399917742476d15de8737b5cb0032\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://03bcff0500f4054b5f71b0badd1779f8dfaa7fc74fc64788991438a1d9d2d14d\",\"dweb:/ipfs/QmdDjbGPgBfbbyT26Xtt9uBD7nYnhSK43fa9skfuBrfjCc\"]},\"node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/resolution/IResolutionModule.sol\":{\"keccak256\":\"0x36e75a87661b234be605a7455c88eaf4e7cbc9f5b4ea08133dd6d9d5af8d6bc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://232536c4e8b2e9114035e57360976ff24931459fb22a026114d392d3e315ea67\",\"dweb:/ipfs/QmPYKU5RDGMqTZZzCCvVy7ssush4EQGgCCbzbeGpnejGno\"]},\"node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/response/IResponseModule.sol\":{\"keccak256\":\"0xd0610065a22a8d3323427d871a73b835e4d0dffb3afe4bb7e8bbee81b8b9ed1b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c72dcbd36f11e87fc21c922684e5524f0c83830dc945ac92614ea1cd770a1bf\",\"dweb:/ipfs/QmfYnQfSDd2jS9QEAdpmDF6wVXWqitQpmJsSeEHs1mtUQP\"]},\"node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x9f4357008a8f7d8c8bf5d48902e789637538d8c016be5766610901b4bba81514\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20bf19b2b851f58a4c24543de80ae70b3e08621f9230eb335dc75e2d4f43f5df\",\"dweb:/ipfs/QmSYuH1AhvJkPK8hNvoPqtExBcgTB42pPRHgTHkS5c5zYW\"]},\"solidity/contracts/modules/resolution/SequentialResolutionModule.sol\":{\"keccak256\":\"0xa81a8c31b20f86188090944af6efb3d333a2679ee4cb65f18fd1d87756a39c2c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6013146951d7d162cdf1db8b769966809a485da8dc36158d3e68735ff89684b1\",\"dweb:/ipfs/Qmf2QHfDCsEottm1LiJKZ89KS4B5iTCb7aqYBg4szpZ486\"]},\"solidity/interfaces/modules/resolution/ISequentialResolutionModule.sol\":{\"keccak256\":\"0x21a0797f15381671c435eaab7f18d69abbcec369ac6248dbeb857b714088e1c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cb01a61628fa5bf67a160515e79898c670399a259ae70db70283b242a651e700\",\"dweb:/ipfs/QmRXkLLNBTW5hChhKKmJQ1nHy6Q4h3LZfudgxwHAgrgtiq\"]}},\"version\":1}",
  "metadata": {
    "compiler": {
      "version": "0.8.19+commit.7dd6d404"
    },
    "language": "Solidity",
    "output": {
      "abi": [
        {
          "inputs": [
            {
              "internalType": "contract IOracle",
              "name": "_oracle",
              "type": "address"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "constructor"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "Module_OnlyOracle"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            }
          ],
          "type": "error",
          "name": "Oracle_AlreadyFinalized"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "_caller",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "_responseId",
              "type": "bytes32"
            }
          ],
          "type": "error",
          "name": "Oracle_CannotDeleteInvalidProposer"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_responseId",
              "type": "bytes32"
            }
          ],
          "type": "error",
          "name": "Oracle_CannotDeleteWhileDisputing"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32"
            }
          ],
          "type": "error",
          "name": "Oracle_CannotEscalate"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32"
            }
          ],
          "type": "error",
          "name": "Oracle_CannotResolve"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "Oracle_CannotTamperParticipant"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32"
            }
          ],
          "type": "error",
          "name": "Oracle_InvalidDisputeId"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_responseId",
              "type": "bytes32"
            }
          ],
          "type": "error",
          "name": "Oracle_InvalidFinalizedResponse"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            }
          ],
          "type": "error",
          "name": "Oracle_InvalidRequestId"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_responseId",
              "type": "bytes32"
            }
          ],
          "type": "error",
          "name": "Oracle_InvalidResponseId"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32"
            }
          ],
          "type": "error",
          "name": "Oracle_NoResolutionModule"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "_caller",
              "type": "address"
            }
          ],
          "type": "error",
          "name": "Oracle_NotDisputeModule"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "_caller",
              "type": "address"
            }
          ],
          "type": "error",
          "name": "Oracle_NotResolutionModule"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_responseId",
              "type": "bytes32"
            }
          ],
          "type": "error",
          "name": "Oracle_ResponseAlreadyDisputed"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "SequentialResolutionModule_NotImplemented"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "SequentialResolutionModule_OnlySubmodule"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "_sequenceId",
              "type": "uint256"
            }
          ],
          "type": "error",
          "name": "SequentialResolutionModule_SequenceIdAlreadyUsed"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "_caller",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32",
              "indexed": true
            }
          ],
          "type": "event",
          "name": "DisputeEscalated",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "enum IOracle.DisputeStatus",
              "name": "_status",
              "type": "uint8",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "DisputeResolved",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "_caller",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32",
              "indexed": true
            }
          ],
          "type": "event",
          "name": "DisputeResolved",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "enum IOracle.DisputeStatus",
              "name": "_status",
              "type": "uint8",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "DisputeStatusUpdated",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "_caller",
              "type": "address",
              "indexed": true
            }
          ],
          "type": "event",
          "name": "OracleRequestFinalized",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "_requester",
              "type": "address",
              "indexed": true
            }
          ],
          "type": "event",
          "name": "RequestCreated",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "_finalizer",
              "type": "address",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "RequestFinalized",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "_sequenceId",
              "type": "uint256",
              "indexed": false
            },
            {
              "internalType": "contract IResolutionModule[]",
              "name": "_modules",
              "type": "address[]",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "ResolutionSequenceAdded",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32",
              "indexed": true
            }
          ],
          "type": "event",
          "name": "ResolutionStarted",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "_caller",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "bytes32",
              "name": "_responseId",
              "type": "bytes32",
              "indexed": true
            }
          ],
          "type": "event",
          "name": "ResponseDeleted",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "_disputer",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "bytes32",
              "name": "_responseId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32",
              "indexed": true
            }
          ],
          "type": "event",
          "name": "ResponseDisputed",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "_proposer",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "bytes32",
              "name": "_responseId",
              "type": "bytes32",
              "indexed": true
            }
          ],
          "type": "event",
          "name": "ResponseProposed",
          "anonymous": false
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "ORACLE",
          "outputs": [
            {
              "internalType": "contract IOracle",
              "name": "",
              "type": "address"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "contract IResolutionModule[]",
              "name": "_modules",
              "type": "address[]"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "addResolutionModuleSequence",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "_sequenceId",
              "type": "uint256"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "_module",
              "type": "address"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "allowedModule",
          "outputs": [
            {
              "internalType": "bool",
              "name": "_allowedModule",
              "type": "bool"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "struct IOracle.NewRequest",
              "name": "",
              "type": "tuple",
              "components": [
                {
                  "internalType": "bytes",
                  "name": "requestModuleData",
                  "type": "bytes"
                },
                {
                  "internalType": "bytes",
                  "name": "responseModuleData",
                  "type": "bytes"
                },
                {
                  "internalType": "bytes",
                  "name": "disputeModuleData",
                  "type": "bytes"
                },
                {
                  "internalType": "bytes",
                  "name": "resolutionModuleData",
                  "type": "bytes"
                },
                {
                  "internalType": "bytes",
                  "name": "finalityModuleData",
                  "type": "bytes"
                },
                {
                  "internalType": "bytes32",
                  "name": "ipfsHash",
                  "type": "bytes32"
                },
                {
                  "internalType": "contract IRequestModule",
                  "name": "requestModule",
                  "type": "address"
                },
                {
                  "internalType": "contract IResponseModule",
                  "name": "responseModule",
                  "type": "address"
                },
                {
                  "internalType": "contract IDisputeModule",
                  "name": "disputeModule",
                  "type": "address"
                },
                {
                  "internalType": "contract IResolutionModule",
                  "name": "resolutionModule",
                  "type": "address"
                },
                {
                  "internalType": "contract IFinalityModule",
                  "name": "finalityModule",
                  "type": "address"
                }
              ]
            }
          ],
          "stateMutability": "pure",
          "type": "function",
          "name": "createRequest",
          "outputs": [
            {
              "internalType": "bytes32",
              "name": "",
              "type": "bytes32"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "struct IOracle.NewRequest[]",
              "name": "",
              "type": "tuple[]",
              "components": [
                {
                  "internalType": "bytes",
                  "name": "requestModuleData",
                  "type": "bytes"
                },
                {
                  "internalType": "bytes",
                  "name": "responseModuleData",
                  "type": "bytes"
                },
                {
                  "internalType": "bytes",
                  "name": "disputeModuleData",
                  "type": "bytes"
                },
                {
                  "internalType": "bytes",
                  "name": "resolutionModuleData",
                  "type": "bytes"
                },
                {
                  "internalType": "bytes",
                  "name": "finalityModuleData",
                  "type": "bytes"
                },
                {
                  "internalType": "bytes32",
                  "name": "ipfsHash",
                  "type": "bytes32"
                },
                {
                  "internalType": "contract IRequestModule",
                  "name": "requestModule",
                  "type": "address"
                },
                {
                  "internalType": "contract IResponseModule",
                  "name": "responseModule",
                  "type": "address"
                },
                {
                  "internalType": "contract IDisputeModule",
                  "name": "disputeModule",
                  "type": "address"
                },
                {
                  "internalType": "contract IResolutionModule",
                  "name": "resolutionModule",
                  "type": "address"
                },
                {
                  "internalType": "contract IFinalityModule",
                  "name": "finalityModule",
                  "type": "address"
                }
              ]
            }
          ],
          "stateMutability": "pure",
          "type": "function",
          "name": "createRequests",
          "outputs": [
            {
              "internalType": "bytes32[]",
              "name": "",
              "type": "bytes32[]"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "currentModuleIndex",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "_moduleIndex",
              "type": "uint256"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "currentSequenceId",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "decodeRequestData",
          "outputs": [
            {
              "internalType": "struct ISequentialResolutionModule.RequestParameters",
              "name": "_params",
              "type": "tuple",
              "components": [
                {
                  "internalType": "uint256",
                  "name": "sequenceId",
                  "type": "uint256"
                },
                {
                  "internalType": "bytes[]",
                  "name": "submoduleData",
                  "type": "bytes[]"
                }
              ]
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "",
              "type": "bytes32"
            }
          ],
          "stateMutability": "pure",
          "type": "function",
          "name": "deleteResponse"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "disputeOf",
          "outputs": [
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "",
              "type": "bytes32"
            }
          ],
          "stateMutability": "pure",
          "type": "function",
          "name": "disputeResponse",
          "outputs": [
            {
              "internalType": "bytes32",
              "name": "",
              "type": "bytes32"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "escalateDispute"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "finalize"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "_finalizedResponseId",
              "type": "bytes32"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "finalize"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "_finalizer",
              "type": "address"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "finalizeRequest"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "getCurrentResolutionModule",
          "outputs": [
            {
              "internalType": "contract IResolutionModule",
              "name": "_module",
              "type": "address"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "getDispute",
          "outputs": [
            {
              "internalType": "struct IOracle.Dispute",
              "name": "_dispute",
              "type": "tuple",
              "components": [
                {
                  "internalType": "uint256",
                  "name": "createdAt",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "disputer",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "proposer",
                  "type": "address"
                },
                {
                  "internalType": "bytes32",
                  "name": "responseId",
                  "type": "bytes32"
                },
                {
                  "internalType": "bytes32",
                  "name": "requestId",
                  "type": "bytes32"
                },
                {
                  "internalType": "enum IOracle.DisputeStatus",
                  "name": "status",
                  "type": "uint8"
                }
              ]
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "getFinalizedResponse",
          "outputs": [
            {
              "internalType": "struct IOracle.Response",
              "name": "_response",
              "type": "tuple",
              "components": [
                {
                  "internalType": "uint256",
                  "name": "createdAt",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "proposer",
                  "type": "address"
                },
                {
                  "internalType": "bytes32",
                  "name": "requestId",
                  "type": "bytes32"
                },
                {
                  "internalType": "bytes32",
                  "name": "disputeId",
                  "type": "bytes32"
                },
                {
                  "internalType": "bytes",
                  "name": "response",
                  "type": "bytes"
                }
              ]
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "getFinalizedResponseId",
          "outputs": [
            {
              "internalType": "bytes32",
              "name": "_finalizedResponseId",
              "type": "bytes32"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "getFullRequest",
          "outputs": [
            {
              "internalType": "struct IOracle.FullRequest",
              "name": "_request",
              "type": "tuple",
              "components": [
                {
                  "internalType": "bytes",
                  "name": "requestModuleData",
                  "type": "bytes"
                },
                {
                  "internalType": "bytes",
                  "name": "responseModuleData",
                  "type": "bytes"
                },
                {
                  "internalType": "bytes",
                  "name": "disputeModuleData",
                  "type": "bytes"
                },
                {
                  "internalType": "bytes",
                  "name": "resolutionModuleData",
                  "type": "bytes"
                },
                {
                  "internalType": "bytes",
                  "name": "finalityModuleData",
                  "type": "bytes"
                },
                {
                  "internalType": "bytes32",
                  "name": "ipfsHash",
                  "type": "bytes32"
                },
                {
                  "internalType": "contract IRequestModule",
                  "name": "requestModule",
                  "type": "address"
                },
                {
                  "internalType": "contract IResponseModule",
                  "name": "responseModule",
                  "type": "address"
                },
                {
                  "internalType": "contract IDisputeModule",
                  "name": "disputeModule",
                  "type": "address"
                },
                {
                  "internalType": "contract IResolutionModule",
                  "name": "resolutionModule",
                  "type": "address"
                },
                {
                  "internalType": "contract IFinalityModule",
                  "name": "finalityModule",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "requester",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "nonce",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "createdAt",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "finalizedAt",
                  "type": "uint256"
                },
                {
                  "internalType": "bytes32",
                  "name": "requestId",
                  "type": "bytes32"
                }
              ]
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "getRequest",
          "outputs": [
            {
              "internalType": "struct IOracle.Request",
              "name": "_request",
              "type": "tuple",
              "components": [
                {
                  "internalType": "bytes32",
                  "name": "ipfsHash",
                  "type": "bytes32"
                },
                {
                  "internalType": "contract IRequestModule",
                  "name": "requestModule",
                  "type": "address"
                },
                {
                  "internalType": "contract IResponseModule",
                  "name": "responseModule",
                  "type": "address"
                },
                {
                  "internalType": "contract IDisputeModule",
                  "name": "disputeModule",
                  "type": "address"
                },
                {
                  "internalType": "contract IResolutionModule",
                  "name": "resolutionModule",
                  "type": "address"
                },
                {
                  "internalType": "contract IFinalityModule",
                  "name": "finalityModule",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "requester",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "nonce",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "createdAt",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "finalizedAt",
                  "type": "uint256"
                }
              ]
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "_nonce",
              "type": "uint256"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "getRequestByNonce",
          "outputs": [
            {
              "internalType": "struct IOracle.Request",
              "name": "_request",
              "type": "tuple",
              "components": [
                {
                  "internalType": "bytes32",
                  "name": "ipfsHash",
                  "type": "bytes32"
                },
                {
                  "internalType": "contract IRequestModule",
                  "name": "requestModule",
                  "type": "address"
                },
                {
                  "internalType": "contract IResponseModule",
                  "name": "responseModule",
                  "type": "address"
                },
                {
                  "internalType": "contract IDisputeModule",
                  "name": "disputeModule",
                  "type": "address"
                },
                {
                  "internalType": "contract IResolutionModule",
                  "name": "resolutionModule",
                  "type": "address"
                },
                {
                  "internalType": "contract IFinalityModule",
                  "name": "finalityModule",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "requester",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "nonce",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "createdAt",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "finalizedAt",
                  "type": "uint256"
                }
              ]
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "_nonce",
              "type": "uint256"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "getRequestId",
          "outputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_responseId",
              "type": "bytes32"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "getResponse",
          "outputs": [
            {
              "internalType": "struct IOracle.Response",
              "name": "_response",
              "type": "tuple",
              "components": [
                {
                  "internalType": "uint256",
                  "name": "createdAt",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "proposer",
                  "type": "address"
                },
                {
                  "internalType": "bytes32",
                  "name": "requestId",
                  "type": "bytes32"
                },
                {
                  "internalType": "bytes32",
                  "name": "disputeId",
                  "type": "bytes32"
                },
                {
                  "internalType": "bytes",
                  "name": "response",
                  "type": "bytes"
                }
              ]
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "getResponseIds",
          "outputs": [
            {
              "internalType": "bytes32[]",
              "name": "_ids",
              "type": "bytes32[]"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "_user",
              "type": "address"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "isParticipant",
          "outputs": [
            {
              "internalType": "bool",
              "name": "_isParticipant",
              "type": "bool"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "_startFrom",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "_batchSize",
              "type": "uint256"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "listRequestIds",
          "outputs": [
            {
              "internalType": "bytes32[]",
              "name": "_list",
              "type": "bytes32[]"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "_startFrom",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "_amount",
              "type": "uint256"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "listRequests",
          "outputs": [
            {
              "internalType": "struct IOracle.FullRequest[]",
              "name": "_list",
              "type": "tuple[]",
              "components": [
                {
                  "internalType": "bytes",
                  "name": "requestModuleData",
                  "type": "bytes"
                },
                {
                  "internalType": "bytes",
                  "name": "responseModuleData",
                  "type": "bytes"
                },
                {
                  "internalType": "bytes",
                  "name": "disputeModuleData",
                  "type": "bytes"
                },
                {
                  "internalType": "bytes",
                  "name": "resolutionModuleData",
                  "type": "bytes"
                },
                {
                  "internalType": "bytes",
                  "name": "finalityModuleData",
                  "type": "bytes"
                },
                {
                  "internalType": "bytes32",
                  "name": "ipfsHash",
                  "type": "bytes32"
                },
                {
                  "internalType": "contract IRequestModule",
                  "name": "requestModule",
                  "type": "address"
                },
                {
                  "internalType": "contract IResponseModule",
                  "name": "responseModule",
                  "type": "address"
                },
                {
                  "internalType": "contract IDisputeModule",
                  "name": "disputeModule",
                  "type": "address"
                },
                {
                  "internalType": "contract IResolutionModule",
                  "name": "resolutionModule",
                  "type": "address"
                },
                {
                  "internalType": "contract IFinalityModule",
                  "name": "finalityModule",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "requester",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "nonce",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "createdAt",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "finalizedAt",
                  "type": "uint256"
                },
                {
                  "internalType": "bytes32",
                  "name": "requestId",
                  "type": "bytes32"
                }
              ]
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "_startFrom",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "_batchSize",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "_sequenceId",
              "type": "uint256"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "listSubmodules",
          "outputs": [
            {
              "internalType": "contract IResolutionModule[]",
              "name": "_list",
              "type": "address[]"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "pure",
          "type": "function",
          "name": "moduleName",
          "outputs": [
            {
              "internalType": "string",
              "name": "_moduleName",
              "type": "string"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "oracle",
          "outputs": [
            {
              "internalType": "address",
              "name": "_oracle",
              "type": "address"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "",
              "type": "bytes32"
            },
            {
              "internalType": "bytes",
              "name": "",
              "type": "bytes"
            }
          ],
          "stateMutability": "pure",
          "type": "function",
          "name": "proposeResponse",
          "outputs": [
            {
              "internalType": "bytes32",
              "name": "",
              "type": "bytes32"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "",
              "type": "bytes32"
            },
            {
              "internalType": "bytes",
              "name": "",
              "type": "bytes"
            }
          ],
          "stateMutability": "pure",
          "type": "function",
          "name": "proposeResponse",
          "outputs": [
            {
              "internalType": "bytes32",
              "name": "",
              "type": "bytes32"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "requestData",
          "outputs": [
            {
              "internalType": "bytes",
              "name": "_requestData",
              "type": "bytes"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "requestIdForDispute",
          "outputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "resolveDispute"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            },
            {
              "internalType": "bytes",
              "name": "_data",
              "type": "bytes"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "setupRequest"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "startResolution"
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "totalRequestCount",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "_count",
              "type": "uint256"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32"
            },
            {
              "internalType": "enum IOracle.DisputeStatus",
              "name": "_status",
              "type": "uint8"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "updateDisputeStatus"
        }
      ],
      "devdoc": {
        "kind": "dev",
        "methods": {
          "addResolutionModuleSequence(address[])": {
            "params": {
              "_modules": "The modules to add to the sequence."
            },
            "returns": {
              "_sequenceId": "The sequenceId created"
            }
          },
          "allowedModule(bytes32,address)": {
            "params": {
              "_module": "The address to check",
              "_requestId": "The id of the request"
            },
            "returns": {
              "_allowedModule": "If the module is a part of the request"
            }
          },
          "createRequest((bytes,bytes,bytes,bytes,bytes,bytes32,address,address,address,address,address))": {
            "details": "The modules must be real contracts following the IModule interface",
            "params": {
              "_request": "The request data"
            },
            "returns": {
              "_0": "The id of the request, can be used to propose a response or query results"
            }
          },
          "createRequests((bytes,bytes,bytes,bytes,bytes,bytes32,address,address,address,address,address)[])": {
            "params": {
              "_requestsData": "The array of calldata for each request"
            },
            "returns": {
              "_0": "The array of request IDs"
            }
          },
          "decodeRequestData(bytes32)": {
            "params": {
              "_requestId": "The ID of the request"
            },
            "returns": {
              "_params": "The struct containing the parameters for the request"
            }
          },
          "deleteResponse(bytes32)": {
            "params": {
              "_responseId": "The id of the response being deleted"
            }
          },
          "disputeOf(bytes32)": {
            "params": {
              "_responseId": "The response id to get the dispute for"
            },
            "returns": {
              "_disputeId": "The id of the dispute associated with the given response"
            }
          },
          "disputeResponse(bytes32,bytes32)": {
            "details": "If pre-dispute modules are being used, the returned dispute from `disputeModule.disputeResponse` may have a status other than `Active`, in which case the dispute is considered resolved and the dispute status updated.",
            "params": {
              "_requestId": "The id of the request which was responded",
              "_responseId": "The id of the response being disputed"
            }
          },
          "escalateDispute(bytes32)": {
            "params": {
              "_disputeId": "The id of the dispute to escalate"
            }
          },
          "finalize(bytes32)": {
            "params": {
              "_requestId": "The id of the request to finalize"
            }
          },
          "finalize(bytes32,bytes32)": {
            "params": {
              "_finalizedResponseId": "The id of the response to finalize the request with",
              "_requestId": "The id of the request to finalize"
            }
          },
          "finalizeRequest(bytes32,address)": {
            "params": {
              "_finalizer": "The address that initiated the finalization",
              "_requestId": "The ID of the request being finalized"
            }
          },
          "getCurrentResolutionModule(bytes32)": {
            "params": {
              "_disputeId": "The id of the dispute"
            },
            "returns": {
              "_module": "Te current resolution module"
            }
          },
          "getDispute(bytes32)": {
            "params": {
              "_disputeId": "The id of the dispute"
            },
            "returns": {
              "_dispute": "The dispute data"
            }
          },
          "getFinalizedResponse(bytes32)": {
            "params": {
              "_requestId": "The id of the request"
            },
            "returns": {
              "_response": "The finalized response"
            }
          },
          "getFinalizedResponseId(bytes32)": {
            "params": {
              "_requestId": "The id of the request"
            },
            "returns": {
              "_finalizedResponseId": "The ID of the finalized response"
            }
          },
          "getFullRequest(bytes32)": {
            "params": {
              "_requestId": "The id of the request"
            },
            "returns": {
              "_request": "The request data"
            }
          },
          "getRequest(bytes32)": {
            "params": {
              "_requestId": "The id of the request"
            },
            "returns": {
              "_request": "The request data"
            }
          },
          "getRequestByNonce(uint256)": {
            "params": {
              "_nonce": "The nonce of the request"
            },
            "returns": {
              "_request": "The request data"
            }
          },
          "getRequestId(uint256)": {
            "params": {
              "_nonce": "The nonce of the request"
            },
            "returns": {
              "_requestId": "The id of the request"
            }
          },
          "getResponse(bytes32)": {
            "params": {
              "_responseId": "The id of the response"
            },
            "returns": {
              "_response": "The response data"
            }
          },
          "getResponseIds(bytes32)": {
            "params": {
              "_requestId": "The id of the request"
            },
            "returns": {
              "_ids": "The ids of the responses"
            }
          },
          "isParticipant(bytes32,address)": {
            "params": {
              "_requestId": "The id of the request",
              "_user": "The address to check"
            },
            "returns": {
              "_isParticipant": "If the user is a participant of the request"
            }
          },
          "listRequestIds(uint256,uint256)": {
            "params": {
              "_batchSize": "The number of requests to return",
              "_startFrom": "The index to start from"
            },
            "returns": {
              "_list": "The list of request IDs"
            }
          },
          "listRequests(uint256,uint256)": {
            "params": {
              "_batchSize": "The number of requests to return",
              "_startFrom": "The index to start from"
            },
            "returns": {
              "_list": "The list of requests"
            }
          },
          "listSubmodules(uint256,uint256,uint256)": {
            "params": {
              "_batchSize": "The number of submodules to return",
              "_sequenceId": "The sequence to get the submodules from",
              "_startFrom": "The index to start from"
            },
            "returns": {
              "_list": "The list of submodules"
            }
          },
          "moduleName()": {
            "returns": {
              "_moduleName": "The name of the module."
            }
          },
          "oracle()": {
            "returns": {
              "_oracle": "The address of the oracle"
            }
          },
          "proposeResponse(address,bytes32,bytes)": {
            "details": "Only callable by the dispute module of the request",
            "params": {
              "_proposer": "The address of the user proposing the response",
              "_requestId": "The id of the request",
              "_responseData": "The response data"
            },
            "returns": {
              "_0": "The id of the created response"
            }
          },
          "proposeResponse(bytes32,bytes)": {
            "params": {
              "_requestId": "The id of the request",
              "_responseData": "The response data"
            },
            "returns": {
              "_0": "The id of the created response"
            }
          },
          "resolveDispute(bytes32)": {
            "params": {
              "_disputeId": "The ID of the dispute being resolved"
            }
          },
          "setupRequest(bytes32,bytes)": {
            "params": {
              "_data": "The data of the request",
              "_requestId": "The ID of the request"
            }
          },
          "startResolution(bytes32)": {
            "params": {
              "_disputeId": "The ID of the dispute"
            }
          },
          "totalRequestCount()": {
            "returns": {
              "_count": "The total number of requests"
            }
          },
          "updateDisputeStatus(bytes32,uint8)": {
            "params": {
              "_disputeId": "The id of the dispute to update",
              "_status": "The new status of the dispute"
            }
          }
        },
        "version": 1
      },
      "userdoc": {
        "kind": "user",
        "methods": {
          "addResolutionModuleSequence(address[])": {
            "notice": "Adds a sequence of modules to the resolution module registry."
          },
          "allowedModule(bytes32,address)": {
            "notice": "Checks if the given address is a module used in the request"
          },
          "createRequest((bytes,bytes,bytes,bytes,bytes,bytes32,address,address,address,address,address))": {
            "notice": "Generates the request ID and initializes the modules for the request"
          },
          "createRequests((bytes,bytes,bytes,bytes,bytes,bytes32,address,address,address,address,address)[])": {
            "notice": "Creates multiple requests, the same way as createRequest"
          },
          "currentModuleIndex(bytes32)": {
            "notice": "Returns the current index of the submodule in use for a dispute"
          },
          "currentSequenceId()": {
            "notice": "Returns the last sequence id that was created"
          },
          "decodeRequestData(bytes32)": {
            "notice": "Returns the decoded data for a request"
          },
          "deleteResponse(bytes32)": {
            "notice": "Deletes a response"
          },
          "disputeOf(bytes32)": {
            "notice": "Returns the dispute id for a given response"
          },
          "disputeResponse(bytes32,bytes32)": {
            "notice": "Starts the process of disputing a response"
          },
          "escalateDispute(bytes32)": {
            "notice": "Escalates a dispute, sending it to the resolution module"
          },
          "finalize(bytes32)": {
            "notice": "Finalizes a request without a valid response"
          },
          "finalize(bytes32,bytes32)": {
            "notice": "Finalizes a request"
          },
          "finalizeRequest(bytes32,address)": {
            "notice": "Finalizes a given request and executes any additional logic set by the chosen modules"
          },
          "getCurrentResolutionModule(bytes32)": {
            "notice": "Returns the module that is currently resolving the specified dispute"
          },
          "getDispute(bytes32)": {
            "notice": "Returns a dispute"
          },
          "getFinalizedResponse(bytes32)": {
            "notice": "Returns the finalized response for a given request"
          },
          "getFinalizedResponseId(bytes32)": {
            "notice": "Returns the finalized response ID for a given request"
          },
          "getFullRequest(bytes32)": {
            "notice": "Returns a full request"
          },
          "getRequest(bytes32)": {
            "notice": "Returns a request"
          },
          "getRequestByNonce(uint256)": {
            "notice": "Returns a request"
          },
          "getRequestId(uint256)": {
            "notice": "Returns a request id"
          },
          "getResponse(bytes32)": {
            "notice": "Fetches a response"
          },
          "getResponseIds(bytes32)": {
            "notice": "Returns the ids of the responses for a given request"
          },
          "isParticipant(bytes32,address)": {
            "notice": "Checks if the given address is participating in a specific request"
          },
          "listRequestIds(uint256,uint256)": {
            "notice": "Returns the list of request IDs"
          },
          "listRequests(uint256,uint256)": {
            "notice": "Returns the list of requests"
          },
          "listSubmodules(uint256,uint256,uint256)": {
            "notice": "Returns the list of submodules"
          },
          "moduleName()": {
            "notice": "Returns the name of the module."
          },
          "oracle()": {
            "notice": "Returns the address of the oracle"
          },
          "proposeResponse(address,bytes32,bytes)": {
            "notice": "Creates a new response for a given request"
          },
          "proposeResponse(bytes32,bytes)": {
            "notice": "Creates a new response for a given request"
          },
          "requestData(bytes32)": {
            "notice": "Returns the data of the request associated with the provided id"
          },
          "requestIdForDispute(bytes32)": {
            "notice": "Returns the requestId corresponding to a dispute"
          },
          "resolveDispute(bytes32)": {
            "notice": "Resolves a dispute"
          },
          "setupRequest(bytes32,bytes)": {
            "notice": "Stores the request data and runs module-specific hooks"
          },
          "startResolution(bytes32)": {
            "notice": "Starts the resolution process"
          },
          "totalRequestCount()": {
            "notice": "Returns the total number of requests stored in the oracle"
          },
          "updateDisputeStatus(bytes32,uint8)": {
            "notice": "Updates the status of a dispute"
          }
        },
        "version": 1
      }
    },
    "settings": {
      "remappings": [
        "@defi-wonderland/=node_modules/@defi-wonderland/",
        "@openzeppelin/=node_modules/@openzeppelin/",
        "ds-test/=node_modules/ds-test/src/",
        "forge-std/=node_modules/forge-std/src/",
        "solmate/=node_modules/solmate/src/"
      ],
      "optimizer": {
        "enabled": true,
        "runs": 10000
      },
      "metadata": {
        "bytecodeHash": "ipfs"
      },
      "compilationTarget": {
        "solidity/contracts/modules/resolution/SequentialResolutionModule.sol": "SequentialResolutionModule"
      },
      "libraries": {}
    },
    "sources": {
      "node_modules/@defi-wonderland/prophet-core-contracts/solidity/contracts/Module.sol": {
        "keccak256": "0xb528e0eea66984412d038db1edcbfe77ac642089975fae6b0b44e8be13319bbf",
        "urls": [
          "bzz-raw://e70d520407288d43d7c735fd7355502b514ba6feacaeb4a5dd86497e3f91eb41",
          "dweb:/ipfs/QmPXY7uXjnsFacp6VpL45bMrxCZGtQ8AAnecTXC9ASkpV7"
        ],
        "license": "MIT"
      },
      "node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/IModule.sol": {
        "keccak256": "0x72c2f68e8c2b749d9ae745269c706b137a640d6bd6f65f966238b547d61e3a05",
        "urls": [
          "bzz-raw://4edb1aae7c4abd875d2da44a2dd83781c3c0a3d059edf2d1f2be1c44f865456f",
          "dweb:/ipfs/QmbEHy8tENha1ANEEZADpH4THmqC8aHyCXxFYPw4tS5mf4"
        ],
        "license": "MIT"
      },
      "node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/IOracle.sol": {
        "keccak256": "0x606262b4bb3b1447b1f6afef8a1b49088956b168a4b066f6f60da4712b95d3cf",
        "urls": [
          "bzz-raw://a763cdb6ba9f12a93e3d5238d6d3235c5c0c229df94793927f9d2abe00542823",
          "dweb:/ipfs/QmbAbfVyCiHvNvhHxc5r8tK5GUuVBATo15Ma5MirhZPtE6"
        ],
        "license": "MIT"
      },
      "node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/dispute/IDisputeModule.sol": {
        "keccak256": "0x21707db43d55ba040893ef0ffefa7f9740c6e03b94d750637e6b2c047a16baa4",
        "urls": [
          "bzz-raw://ae582ca2fdd6fc82c650333066c95a917221282ad7ef15ea62fb4a31e4ed864d",
          "dweb:/ipfs/QmdxvkpNCK46uYv31TxAtxCiRPSoxbT4hrs94WQfR4ctTM"
        ],
        "license": "MIT"
      },
      "node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/finality/IFinalityModule.sol": {
        "keccak256": "0xf6f465732ee119879e3317227f9cf6468055f4f98acdb4365f5b4eacda32948e",
        "urls": [
          "bzz-raw://82e1928a7bbc5bce95e1b83d917e1470c72a0bec7494f6f42471b21c0f2b641e",
          "dweb:/ipfs/QmSjaBsNhzCfQd5xwZa98LNYSZ1TqAqo6inRTGD31ua4L8"
        ],
        "license": "MIT"
      },
      "node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/request/IRequestModule.sol": {
        "keccak256": "0xefa5dd3334a1676cca1c1860c66c16adb1e399917742476d15de8737b5cb0032",
        "urls": [
          "bzz-raw://03bcff0500f4054b5f71b0badd1779f8dfaa7fc74fc64788991438a1d9d2d14d",
          "dweb:/ipfs/QmdDjbGPgBfbbyT26Xtt9uBD7nYnhSK43fa9skfuBrfjCc"
        ],
        "license": "MIT"
      },
      "node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/resolution/IResolutionModule.sol": {
        "keccak256": "0x36e75a87661b234be605a7455c88eaf4e7cbc9f5b4ea08133dd6d9d5af8d6bc6",
        "urls": [
          "bzz-raw://232536c4e8b2e9114035e57360976ff24931459fb22a026114d392d3e315ea67",
          "dweb:/ipfs/QmPYKU5RDGMqTZZzCCvVy7ssush4EQGgCCbzbeGpnejGno"
        ],
        "license": "MIT"
      },
      "node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/response/IResponseModule.sol": {
        "keccak256": "0xd0610065a22a8d3323427d871a73b835e4d0dffb3afe4bb7e8bbee81b8b9ed1b",
        "urls": [
          "bzz-raw://8c72dcbd36f11e87fc21c922684e5524f0c83830dc945ac92614ea1cd770a1bf",
          "dweb:/ipfs/QmfYnQfSDd2jS9QEAdpmDF6wVXWqitQpmJsSeEHs1mtUQP"
        ],
        "license": "MIT"
      },
      "node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol": {
        "keccak256": "0x9f4357008a8f7d8c8bf5d48902e789637538d8c016be5766610901b4bba81514",
        "urls": [
          "bzz-raw://20bf19b2b851f58a4c24543de80ae70b3e08621f9230eb335dc75e2d4f43f5df",
          "dweb:/ipfs/QmSYuH1AhvJkPK8hNvoPqtExBcgTB42pPRHgTHkS5c5zYW"
        ],
        "license": "MIT"
      },
      "solidity/contracts/modules/resolution/SequentialResolutionModule.sol": {
        "keccak256": "0xa81a8c31b20f86188090944af6efb3d333a2679ee4cb65f18fd1d87756a39c2c",
        "urls": [
          "bzz-raw://6013146951d7d162cdf1db8b769966809a485da8dc36158d3e68735ff89684b1",
          "dweb:/ipfs/Qmf2QHfDCsEottm1LiJKZ89KS4B5iTCb7aqYBg4szpZ486"
        ],
        "license": "MIT"
      },
      "solidity/interfaces/modules/resolution/ISequentialResolutionModule.sol": {
        "keccak256": "0x21a0797f15381671c435eaab7f18d69abbcec369ac6248dbeb857b714088e1c3",
        "urls": [
          "bzz-raw://cb01a61628fa5bf67a160515e79898c670399a259ae70db70283b242a651e700",
          "dweb:/ipfs/QmRXkLLNBTW5hChhKKmJQ1nHy6Q4h3LZfudgxwHAgrgtiq"
        ],
        "license": "MIT"
      }
    },
    "version": 1
  },
  "ast": {
    "absolutePath": "solidity/contracts/modules/resolution/SequentialResolutionModule.sol",
    "id": 41876,
    "exportedSymbols": {
      "EnumerableSet": [
        5377
      ],
      "IModule": [
        1782
      ],
      "IOracle": [
        2282
      ],
      "IResolutionModule": [
        2399
      ],
      "ISequentialResolutionModule": [
        44097
      ],
      "Module": [
        98
      ],
      "SequentialResolutionModule": [
        41875
      ]
    },
    "nodeType": "SourceUnit",
    "src": "32:10943:54",
    "nodes": [
      {
        "id": 40927,
        "nodeType": "PragmaDirective",
        "src": "32:24:54",
        "nodes": [],
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".19"
        ]
      },
      {
        "id": 40930,
        "nodeType": "ImportDirective",
        "src": "104:102:54",
        "nodes": [],
        "absolutePath": "node_modules/@defi-wonderland/prophet-core-contracts/solidity/contracts/Module.sol",
        "file": "@defi-wonderland/prophet-core-contracts/solidity/contracts/Module.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 41876,
        "sourceUnit": 99,
        "symbolAliases": [
          {
            "foreign": {
              "id": 40928,
              "name": "Module",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 98,
              "src": "112:6:54",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          },
          {
            "foreign": {
              "id": 40929,
              "name": "IModule",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1782,
              "src": "120:7:54",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 40932,
        "nodeType": "ImportDirective",
        "src": "207:96:54",
        "nodes": [],
        "absolutePath": "node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/IOracle.sol",
        "file": "@defi-wonderland/prophet-core-contracts/solidity/interfaces/IOracle.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 41876,
        "sourceUnit": 2283,
        "symbolAliases": [
          {
            "foreign": {
              "id": 40931,
              "name": "IOracle",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2282,
              "src": "215:7:54",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 40934,
        "nodeType": "ImportDirective",
        "src": "304:86:54",
        "nodes": [],
        "absolutePath": "node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol",
        "file": "@openzeppelin/contracts/utils/structs/EnumerableSet.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 41876,
        "sourceUnit": 5378,
        "symbolAliases": [
          {
            "foreign": {
              "id": 40933,
              "name": "EnumerableSet",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 5377,
              "src": "312:13:54",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 40937,
        "nodeType": "ImportDirective",
        "src": "392:140:54",
        "nodes": [],
        "absolutePath": "solidity/interfaces/modules/resolution/ISequentialResolutionModule.sol",
        "file": "../../../interfaces/modules/resolution/ISequentialResolutionModule.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 41876,
        "sourceUnit": 44098,
        "symbolAliases": [
          {
            "foreign": {
              "id": 40935,
              "name": "ISequentialResolutionModule",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 44097,
              "src": "403:27:54",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          },
          {
            "foreign": {
              "id": 40936,
              "name": "IResolutionModule",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2399,
              "src": "434:17:54",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 41875,
        "nodeType": "ContractDefinition",
        "src": "713:10261:54",
        "nodes": [
          {
            "id": 40946,
            "nodeType": "UsingForDirective",
            "src": "792:49:54",
            "nodes": [],
            "global": false,
            "libraryName": {
              "id": 40943,
              "name": "EnumerableSet",
              "nameLocations": [
                "798:13:54"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 5377,
              "src": "798:13:54"
            },
            "typeName": {
              "id": 40945,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 40944,
                "name": "EnumerableSet.AddressSet",
                "nameLocations": [
                  "816:13:54",
                  "830:10:54"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 5090,
                "src": "816:24:54"
              },
              "referencedDeclaration": 5090,
              "src": "816:24:54",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_AddressSet_$5090_storage_ptr",
                "typeString": "struct EnumerableSet.AddressSet"
              }
            }
          },
          {
            "id": 40951,
            "nodeType": "VariableDeclaration",
            "src": "891:77:54",
            "nodes": [],
            "baseFunctions": [
              44037
            ],
            "constant": false,
            "documentation": {
              "id": 40947,
              "nodeType": "StructuredDocumentation",
              "src": "845:43:54",
              "text": "@inheritdoc ISequentialResolutionModule"
            },
            "functionSelector": "67b3a1e9",
            "mutability": "mutable",
            "name": "currentModuleIndex",
            "nameLocation": "950:18:54",
            "scope": 41875,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
              "typeString": "mapping(bytes32 => uint256)"
            },
            "typeName": {
              "id": 40950,
              "keyName": "_disputeId",
              "keyNameLocation": "907:10:54",
              "keyType": {
                "id": 40948,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "899:7:54",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "891:51:54",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                "typeString": "mapping(bytes32 => uint256)"
              },
              "valueName": "_moduleIndex",
              "valueNameLocation": "929:12:54",
              "valueType": {
                "id": 40949,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "921:7:54",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              }
            },
            "visibility": "public"
          },
          {
            "id": 40956,
            "nodeType": "VariableDeclaration",
            "src": "1019:76:54",
            "nodes": [],
            "baseFunctions": [
              44045
            ],
            "constant": false,
            "documentation": {
              "id": 40952,
              "nodeType": "StructuredDocumentation",
              "src": "973:43:54",
              "text": "@inheritdoc ISequentialResolutionModule"
            },
            "functionSelector": "da526d1b",
            "mutability": "mutable",
            "name": "requestIdForDispute",
            "nameLocation": "1076:19:54",
            "scope": 41875,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
              "typeString": "mapping(bytes32 => bytes32)"
            },
            "typeName": {
              "id": 40955,
              "keyName": "_disputeId",
              "keyNameLocation": "1035:10:54",
              "keyType": {
                "id": 40953,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "1027:7:54",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "1019:49:54",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                "typeString": "mapping(bytes32 => bytes32)"
              },
              "valueName": "_requestId",
              "valueNameLocation": "1057:10:54",
              "valueType": {
                "id": 40954,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "1049:7:54",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              }
            },
            "visibility": "public"
          },
          {
            "id": 40959,
            "nodeType": "VariableDeclaration",
            "src": "1146:32:54",
            "nodes": [],
            "baseFunctions": [
              44029
            ],
            "constant": false,
            "documentation": {
              "id": 40957,
              "nodeType": "StructuredDocumentation",
              "src": "1100:43:54",
              "text": "@inheritdoc ISequentialResolutionModule"
            },
            "functionSelector": "843d7a70",
            "mutability": "mutable",
            "name": "currentSequenceId",
            "nameLocation": "1161:17:54",
            "scope": 41875,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 40958,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1146:7:54",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "visibility": "public"
          },
          {
            "id": 40965,
            "nodeType": "VariableDeclaration",
            "src": "1259:93:54",
            "nodes": [],
            "constant": false,
            "documentation": {
              "id": 40960,
              "nodeType": "StructuredDocumentation",
              "src": "1183:73:54",
              "text": " @notice Maps the sequenceId to the array of modules to use"
            },
            "mutability": "mutable",
            "name": "_resolutionModules",
            "nameLocation": "1334:18:54",
            "scope": 41875,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$5090_storage_$",
              "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet)"
            },
            "typeName": {
              "id": 40964,
              "keyName": "_sequenceId",
              "keyNameLocation": "1275:11:54",
              "keyType": {
                "id": 40961,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "1267:7:54",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "1259:65:54",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$5090_storage_$",
                "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet)"
              },
              "valueName": "_modules",
              "valueNameLocation": "1315:8:54",
              "valueType": {
                "id": 40963,
                "nodeType": "UserDefinedTypeName",
                "pathNode": {
                  "id": 40962,
                  "name": "EnumerableSet.AddressSet",
                  "nameLocations": [
                    "1290:13:54",
                    "1304:10:54"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 5090,
                  "src": "1290:24:54"
                },
                "referencedDeclaration": 5090,
                "src": "1290:24:54",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_AddressSet_$5090_storage_ptr",
                  "typeString": "struct EnumerableSet.AddressSet"
                }
              }
            },
            "visibility": "internal"
          },
          {
            "id": 40975,
            "nodeType": "FunctionDefinition",
            "src": "1357:47:54",
            "nodes": [],
            "body": {
              "id": 40974,
              "nodeType": "Block",
              "src": "1402:2:54",
              "nodes": [],
              "statements": []
            },
            "implemented": true,
            "kind": "constructor",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 40971,
                    "name": "_oracle",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 40968,
                    "src": "1393:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IOracle_$2282",
                      "typeString": "contract IOracle"
                    }
                  }
                ],
                "id": 40972,
                "kind": "baseConstructorSpecifier",
                "modifierName": {
                  "id": 40970,
                  "name": "Module",
                  "nameLocations": [
                    "1386:6:54"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 98,
                  "src": "1386:6:54"
                },
                "nodeType": "ModifierInvocation",
                "src": "1386:15:54"
              }
            ],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "parameters": {
              "id": 40969,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 40968,
                  "mutability": "mutable",
                  "name": "_oracle",
                  "nameLocation": "1377:7:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 40975,
                  "src": "1369:15:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IOracle_$2282",
                    "typeString": "contract IOracle"
                  },
                  "typeName": {
                    "id": 40967,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 40966,
                      "name": "IOracle",
                      "nameLocations": [
                        "1369:7:54"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 2282,
                      "src": "1369:7:54"
                    },
                    "referencedDeclaration": 2282,
                    "src": "1369:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IOracle_$2282",
                      "typeString": "contract IOracle"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1368:17:54"
            },
            "returnParameters": {
              "id": 40973,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1402:0:54"
            },
            "scope": 41875,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 40997,
            "nodeType": "ModifierDefinition",
            "src": "1478:198:54",
            "nodes": [],
            "body": {
              "id": 40996,
              "nodeType": "Block",
              "src": "1521:155:54",
              "nodes": [],
              "statements": [
                {
                  "condition": {
                    "id": 40989,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "!",
                    "prefix": true,
                    "src": "1531:68:54",
                    "subExpression": {
                      "arguments": [
                        {
                          "expression": {
                            "id": 40986,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -15,
                            "src": "1588:3:54",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 40987,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "1592:6:54",
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "src": "1588:10:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "expression": {
                          "baseExpression": {
                            "id": 40980,
                            "name": "_resolutionModules",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 40965,
                            "src": "1532:18:54",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$5090_storage_$",
                              "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"
                            }
                          },
                          "id": 40984,
                          "indexExpression": {
                            "arguments": [
                              {
                                "id": 40982,
                                "name": "_requestId",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 40978,
                                "src": "1566:10:54",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 40981,
                              "name": "_getSequenceId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 41480,
                              "src": "1551:14:54",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$",
                                "typeString": "function (bytes32) view returns (uint256)"
                              }
                            },
                            "id": 40983,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1551:26:54",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "1532:46:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_AddressSet_$5090_storage",
                            "typeString": "struct EnumerableSet.AddressSet storage ref"
                          }
                        },
                        "id": 40985,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "1579:8:54",
                        "memberName": "contains",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 5171,
                        "src": "1532:55:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$5090_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$5090_storage_ptr_$",
                          "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)"
                        }
                      },
                      "id": 40988,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1532:67:54",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 40994,
                  "nodeType": "IfStatement",
                  "src": "1527:138:54",
                  "trueBody": {
                    "id": 40993,
                    "nodeType": "Block",
                    "src": "1601:64:54",
                    "statements": [
                      {
                        "errorCall": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 40990,
                            "name": "SequentialResolutionModule_OnlySubmodule",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44009,
                            "src": "1616:40:54",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_error_pure$__$returns$__$",
                              "typeString": "function () pure"
                            }
                          },
                          "id": 40991,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1616:42:54",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 40992,
                        "nodeType": "RevertStatement",
                        "src": "1609:49:54"
                      }
                    ]
                  }
                },
                {
                  "id": 40995,
                  "nodeType": "PlaceholderStatement",
                  "src": "1670:1:54"
                }
              ]
            },
            "documentation": {
              "id": 40976,
              "nodeType": "StructuredDocumentation",
              "src": "1408:67:54",
              "text": " @notice Checks that the caller is a valid sub-module"
            },
            "name": "onlySubmodule",
            "nameLocation": "1487:13:54",
            "parameters": {
              "id": 40979,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 40978,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "1509:10:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 40997,
                  "src": "1501:18:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 40977,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1501:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1500:20:54"
            },
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 41050,
            "nodeType": "FunctionDefinition",
            "src": "1726:401:54",
            "nodes": [],
            "body": {
              "id": 41049,
              "nodeType": "Block",
              "src": "1839:288:54",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "id": 41010,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 41007,
                      "name": "_sequenceId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41005,
                      "src": "1845:11:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 41009,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": true,
                      "src": "1859:19:54",
                      "subExpression": {
                        "id": 41008,
                        "name": "currentSequenceId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 40959,
                        "src": "1861:17:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1845:33:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 41011,
                  "nodeType": "ExpressionStatement",
                  "src": "1845:33:54"
                },
                {
                  "assignments": [
                    41016
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 41016,
                      "mutability": "mutable",
                      "name": "_setModules",
                      "nameLocation": "1917:11:54",
                      "nodeType": "VariableDeclaration",
                      "scope": 41049,
                      "src": "1884:44:54",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_AddressSet_$5090_storage_ptr",
                        "typeString": "struct EnumerableSet.AddressSet"
                      },
                      "typeName": {
                        "id": 41015,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 41014,
                          "name": "EnumerableSet.AddressSet",
                          "nameLocations": [
                            "1884:13:54",
                            "1898:10:54"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 5090,
                          "src": "1884:24:54"
                        },
                        "referencedDeclaration": 5090,
                        "src": "1884:24:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_AddressSet_$5090_storage_ptr",
                          "typeString": "struct EnumerableSet.AddressSet"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 41020,
                  "initialValue": {
                    "baseExpression": {
                      "id": 41017,
                      "name": "_resolutionModules",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 40965,
                      "src": "1931:18:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$5090_storage_$",
                        "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"
                      }
                    },
                    "id": 41019,
                    "indexExpression": {
                      "id": 41018,
                      "name": "_sequenceId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41005,
                      "src": "1950:11:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "1931:31:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_AddressSet_$5090_storage",
                      "typeString": "struct EnumerableSet.AddressSet storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1884:78:54"
                },
                {
                  "body": {
                    "id": 41042,
                    "nodeType": "Block",
                    "src": "2013:53:54",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "baseExpression": {
                                    "id": 41036,
                                    "name": "_modules",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 41002,
                                    "src": "2045:8:54",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_contract$_IResolutionModule_$2399_$dyn_memory_ptr",
                                      "typeString": "contract IResolutionModule[] memory"
                                    }
                                  },
                                  "id": 41038,
                                  "indexExpression": {
                                    "id": 41037,
                                    "name": "_i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 41022,
                                    "src": "2054:2:54",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "2045:12:54",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_IResolutionModule_$2399",
                                    "typeString": "contract IResolutionModule"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_contract$_IResolutionModule_$2399",
                                    "typeString": "contract IResolutionModule"
                                  }
                                ],
                                "id": 41035,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "2037:7:54",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": {
                                  "id": 41034,
                                  "name": "address",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "2037:7:54",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 41039,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2037:21:54",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "expression": {
                              "id": 41031,
                              "name": "_setModules",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 41016,
                              "src": "2021:11:54",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_AddressSet_$5090_storage_ptr",
                                "typeString": "struct EnumerableSet.AddressSet storage pointer"
                              }
                            },
                            "id": 41033,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "2033:3:54",
                            "memberName": "add",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 5117,
                            "src": "2021:15:54",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$5090_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$5090_storage_ptr_$",
                              "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"
                            }
                          },
                          "id": 41040,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2021:38:54",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 41041,
                        "nodeType": "ExpressionStatement",
                        "src": "2021:38:54"
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 41027,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 41024,
                      "name": "_i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41022,
                      "src": "1985:2:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 41025,
                        "name": "_modules",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 41002,
                        "src": "1990:8:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_contract$_IResolutionModule_$2399_$dyn_memory_ptr",
                          "typeString": "contract IResolutionModule[] memory"
                        }
                      },
                      "id": 41026,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "1999:6:54",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "1990:15:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1985:20:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 41043,
                  "initializationExpression": {
                    "assignments": [
                      41022
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 41022,
                        "mutability": "mutable",
                        "name": "_i",
                        "nameLocation": "1981:2:54",
                        "nodeType": "VariableDeclaration",
                        "scope": 41043,
                        "src": "1973:10:54",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 41021,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1973:7:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 41023,
                    "nodeType": "VariableDeclarationStatement",
                    "src": "1973:10:54"
                  },
                  "loopExpression": {
                    "expression": {
                      "id": 41029,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": true,
                      "src": "2007:4:54",
                      "subExpression": {
                        "id": 41028,
                        "name": "_i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 41022,
                        "src": "2009:2:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 41030,
                    "nodeType": "ExpressionStatement",
                    "src": "2007:4:54"
                  },
                  "nodeType": "ForStatement",
                  "src": "1968:98:54"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 41045,
                        "name": "_sequenceId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 41005,
                        "src": "2100:11:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 41046,
                        "name": "_modules",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 41002,
                        "src": "2113:8:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_contract$_IResolutionModule_$2399_$dyn_memory_ptr",
                          "typeString": "contract IResolutionModule[] memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_array$_t_contract$_IResolutionModule_$2399_$dyn_memory_ptr",
                          "typeString": "contract IResolutionModule[] memory"
                        }
                      ],
                      "id": 41044,
                      "name": "ResolutionSequenceAdded",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 44006,
                      "src": "2076:23:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_array$_t_contract$_IResolutionModule_$2399_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (uint256,contract IResolutionModule[] memory)"
                      }
                    },
                    "id": 41047,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2076:46:54",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 41048,
                  "nodeType": "EmitStatement",
                  "src": "2071:51:54"
                }
              ]
            },
            "baseFunctions": [
              44078
            ],
            "documentation": {
              "id": 40998,
              "nodeType": "StructuredDocumentation",
              "src": "1680:43:54",
              "text": "@inheritdoc ISequentialResolutionModule"
            },
            "functionSelector": "97a0075d",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "addResolutionModuleSequence",
            "nameLocation": "1735:27:54",
            "parameters": {
              "id": 41003,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41002,
                  "mutability": "mutable",
                  "name": "_modules",
                  "nameLocation": "1790:8:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41050,
                  "src": "1763:35:54",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_contract$_IResolutionModule_$2399_$dyn_memory_ptr",
                    "typeString": "contract IResolutionModule[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 41000,
                      "nodeType": "UserDefinedTypeName",
                      "pathNode": {
                        "id": 40999,
                        "name": "IResolutionModule",
                        "nameLocations": [
                          "1763:17:54"
                        ],
                        "nodeType": "IdentifierPath",
                        "referencedDeclaration": 2399,
                        "src": "1763:17:54"
                      },
                      "referencedDeclaration": 2399,
                      "src": "1763:17:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IResolutionModule_$2399",
                        "typeString": "contract IResolutionModule"
                      }
                    },
                    "id": 41001,
                    "nodeType": "ArrayTypeName",
                    "src": "1763:19:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_contract$_IResolutionModule_$2399_$dyn_storage_ptr",
                      "typeString": "contract IResolutionModule[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1762:37:54"
            },
            "returnParameters": {
              "id": 41006,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41005,
                  "mutability": "mutable",
                  "name": "_sequenceId",
                  "nameLocation": "1826:11:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41050,
                  "src": "1818:19:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 41004,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1818:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1817:21:54"
            },
            "scope": 41875,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 41088,
            "nodeType": "FunctionDefinition",
            "src": "2177:347:54",
            "nodes": [],
            "body": {
              "id": 41087,
              "nodeType": "Block",
              "src": "2281:243:54",
              "nodes": [],
              "statements": [
                {
                  "assignments": [
                    41060
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 41060,
                      "mutability": "mutable",
                      "name": "_currentIndex",
                      "nameLocation": "2295:13:54",
                      "nodeType": "VariableDeclaration",
                      "scope": 41087,
                      "src": "2287:21:54",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 41059,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2287:7:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 41064,
                  "initialValue": {
                    "baseExpression": {
                      "id": 41061,
                      "name": "currentModuleIndex",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 40951,
                      "src": "2311:18:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                        "typeString": "mapping(bytes32 => uint256)"
                      }
                    },
                    "id": 41063,
                    "indexExpression": {
                      "id": 41062,
                      "name": "_disputeId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41053,
                      "src": "2330:10:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "2311:30:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2287:54:54"
                },
                {
                  "assignments": [
                    41069
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 41069,
                      "mutability": "mutable",
                      "name": "_modules",
                      "nameLocation": "2380:8:54",
                      "nodeType": "VariableDeclaration",
                      "scope": 41087,
                      "src": "2347:41:54",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_AddressSet_$5090_storage_ptr",
                        "typeString": "struct EnumerableSet.AddressSet"
                      },
                      "typeName": {
                        "id": 41068,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 41067,
                          "name": "EnumerableSet.AddressSet",
                          "nameLocations": [
                            "2347:13:54",
                            "2361:10:54"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 5090,
                          "src": "2347:24:54"
                        },
                        "referencedDeclaration": 5090,
                        "src": "2347:24:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_AddressSet_$5090_storage_ptr",
                          "typeString": "struct EnumerableSet.AddressSet"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 41077,
                  "initialValue": {
                    "baseExpression": {
                      "id": 41070,
                      "name": "_resolutionModules",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 40965,
                      "src": "2391:18:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$5090_storage_$",
                        "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"
                      }
                    },
                    "id": 41076,
                    "indexExpression": {
                      "arguments": [
                        {
                          "baseExpression": {
                            "id": 41072,
                            "name": "requestIdForDispute",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 40956,
                            "src": "2425:19:54",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                              "typeString": "mapping(bytes32 => bytes32)"
                            }
                          },
                          "id": 41074,
                          "indexExpression": {
                            "id": 41073,
                            "name": "_disputeId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 41053,
                            "src": "2445:10:54",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2425:31:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 41071,
                        "name": "_getSequenceId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 41480,
                        "src": "2410:14:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$",
                          "typeString": "function (bytes32) view returns (uint256)"
                        }
                      },
                      "id": 41075,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2410:47:54",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "2391:67:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_AddressSet_$5090_storage",
                      "typeString": "struct EnumerableSet.AddressSet storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2347:111:54"
                },
                {
                  "expression": {
                    "id": 41085,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 41078,
                      "name": "_module",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41057,
                      "src": "2464:7:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IResolutionModule_$2399",
                        "typeString": "contract IResolutionModule"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "arguments": [
                            {
                              "id": 41082,
                              "name": "_currentIndex",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 41060,
                              "src": "2504:13:54",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "id": 41080,
                              "name": "_modules",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 41069,
                              "src": "2492:8:54",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_AddressSet_$5090_storage_ptr",
                                "typeString": "struct EnumerableSet.AddressSet storage pointer"
                              }
                            },
                            "id": 41081,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "2501:2:54",
                            "memberName": "at",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 5213,
                            "src": "2492:11:54",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$5090_storage_ptr_$_t_uint256_$returns$_t_address_$attached_to$_t_struct$_AddressSet_$5090_storage_ptr_$",
                              "typeString": "function (struct EnumerableSet.AddressSet storage pointer,uint256) view returns (address)"
                            }
                          },
                          "id": 41083,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2492:26:54",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 41079,
                        "name": "IResolutionModule",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2399,
                        "src": "2474:17:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_IResolutionModule_$2399_$",
                          "typeString": "type(contract IResolutionModule)"
                        }
                      },
                      "id": 41084,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2474:45:54",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IResolutionModule_$2399",
                        "typeString": "contract IResolutionModule"
                      }
                    },
                    "src": "2464:55:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IResolutionModule_$2399",
                      "typeString": "contract IResolutionModule"
                    }
                  },
                  "id": 41086,
                  "nodeType": "ExpressionStatement",
                  "src": "2464:55:54"
                }
              ]
            },
            "baseFunctions": [
              44087
            ],
            "documentation": {
              "id": 41051,
              "nodeType": "StructuredDocumentation",
              "src": "2131:43:54",
              "text": "@inheritdoc ISequentialResolutionModule"
            },
            "functionSelector": "0cad26ce",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getCurrentResolutionModule",
            "nameLocation": "2186:26:54",
            "parameters": {
              "id": 41054,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41053,
                  "mutability": "mutable",
                  "name": "_disputeId",
                  "nameLocation": "2221:10:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41088,
                  "src": "2213:18:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 41052,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2213:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2212:20:54"
            },
            "returnParameters": {
              "id": 41058,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41057,
                  "mutability": "mutable",
                  "name": "_module",
                  "nameLocation": "2272:7:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41088,
                  "src": "2254:25:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IResolutionModule_$2399",
                    "typeString": "contract IResolutionModule"
                  },
                  "typeName": {
                    "id": 41056,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 41055,
                      "name": "IResolutionModule",
                      "nameLocations": [
                        "2254:17:54"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 2399,
                      "src": "2254:17:54"
                    },
                    "referencedDeclaration": 2399,
                    "src": "2254:17:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IResolutionModule_$2399",
                      "typeString": "contract IResolutionModule"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2253:27:54"
            },
            "scope": 41875,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 41165,
            "nodeType": "FunctionDefinition",
            "src": "2574:539:54",
            "nodes": [],
            "body": {
              "id": 41164,
              "nodeType": "Block",
              "src": "2732:381:54",
              "nodes": [],
              "statements": [
                {
                  "assignments": [
                    41106
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 41106,
                      "mutability": "mutable",
                      "name": "_modules",
                      "nameLocation": "2771:8:54",
                      "nodeType": "VariableDeclaration",
                      "scope": 41164,
                      "src": "2738:41:54",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_AddressSet_$5090_storage_ptr",
                        "typeString": "struct EnumerableSet.AddressSet"
                      },
                      "typeName": {
                        "id": 41105,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 41104,
                          "name": "EnumerableSet.AddressSet",
                          "nameLocations": [
                            "2738:13:54",
                            "2752:10:54"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 5090,
                          "src": "2738:24:54"
                        },
                        "referencedDeclaration": 5090,
                        "src": "2738:24:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_AddressSet_$5090_storage_ptr",
                          "typeString": "struct EnumerableSet.AddressSet"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 41110,
                  "initialValue": {
                    "baseExpression": {
                      "id": 41107,
                      "name": "_resolutionModules",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 40965,
                      "src": "2782:18:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$5090_storage_$",
                        "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"
                      }
                    },
                    "id": 41109,
                    "indexExpression": {
                      "id": 41108,
                      "name": "_sequenceId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41095,
                      "src": "2801:11:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "2782:31:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_AddressSet_$5090_storage",
                      "typeString": "struct EnumerableSet.AddressSet storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2738:75:54"
                },
                {
                  "assignments": [
                    41112
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 41112,
                      "mutability": "mutable",
                      "name": "_length",
                      "nameLocation": "2827:7:54",
                      "nodeType": "VariableDeclaration",
                      "scope": 41164,
                      "src": "2819:15:54",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 41111,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2819:7:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 41116,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "id": 41113,
                        "name": "_modules",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 41106,
                        "src": "2837:8:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_AddressSet_$5090_storage_ptr",
                          "typeString": "struct EnumerableSet.AddressSet storage pointer"
                        }
                      },
                      "id": 41114,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "2846:6:54",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 5186,
                      "src": "2837:15:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$5090_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressSet_$5090_storage_ptr_$",
                        "typeString": "function (struct EnumerableSet.AddressSet storage pointer) view returns (uint256)"
                      }
                    },
                    "id": 41115,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2837:17:54",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2819:35:54"
                },
                {
                  "assignments": [
                    41118
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 41118,
                      "mutability": "mutable",
                      "name": "_count",
                      "nameLocation": "2868:6:54",
                      "nodeType": "VariableDeclaration",
                      "scope": 41164,
                      "src": "2860:14:54",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 41117,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2860:7:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 41130,
                  "initialValue": {
                    "condition": {
                      "components": [
                        {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 41123,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 41119,
                            "name": "_batchSize",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 41093,
                            "src": "2878:10:54",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 41122,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 41120,
                              "name": "_length",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 41112,
                              "src": "2891:7:54",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "-",
                            "rightExpression": {
                              "id": 41121,
                              "name": "_startFrom",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 41091,
                              "src": "2901:10:54",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "2891:20:54",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "2878:33:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        }
                      ],
                      "id": 41124,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "2877:35:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseExpression": {
                      "id": 41128,
                      "name": "_batchSize",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41093,
                      "src": "2938:10:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 41129,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "Conditional",
                    "src": "2877:71:54",
                    "trueExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 41127,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 41125,
                        "name": "_length",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 41112,
                        "src": "2915:7:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "-",
                      "rightExpression": {
                        "id": 41126,
                        "name": "_startFrom",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 41091,
                        "src": "2925:10:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "2915:20:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2860:88:54"
                },
                {
                  "expression": {
                    "id": 41138,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 41131,
                      "name": "_list",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41100,
                      "src": "2954:5:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_contract$_IResolutionModule_$2399_$dyn_memory_ptr",
                        "typeString": "contract IResolutionModule[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 41136,
                          "name": "_count",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 41118,
                          "src": "2986:6:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 41135,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "2962:23:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_contract$_IResolutionModule_$2399_$dyn_memory_ptr_$",
                          "typeString": "function (uint256) pure returns (contract IResolutionModule[] memory)"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 41133,
                            "nodeType": "UserDefinedTypeName",
                            "pathNode": {
                              "id": 41132,
                              "name": "IResolutionModule",
                              "nameLocations": [
                                "2966:17:54"
                              ],
                              "nodeType": "IdentifierPath",
                              "referencedDeclaration": 2399,
                              "src": "2966:17:54"
                            },
                            "referencedDeclaration": 2399,
                            "src": "2966:17:54",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_IResolutionModule_$2399",
                              "typeString": "contract IResolutionModule"
                            }
                          },
                          "id": 41134,
                          "nodeType": "ArrayTypeName",
                          "src": "2966:19:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_contract$_IResolutionModule_$2399_$dyn_storage_ptr",
                            "typeString": "contract IResolutionModule[]"
                          }
                        }
                      },
                      "id": 41137,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2962:31:54",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_contract$_IResolutionModule_$2399_$dyn_memory_ptr",
                        "typeString": "contract IResolutionModule[] memory"
                      }
                    },
                    "src": "2954:39:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_contract$_IResolutionModule_$2399_$dyn_memory_ptr",
                      "typeString": "contract IResolutionModule[] memory"
                    }
                  },
                  "id": 41139,
                  "nodeType": "ExpressionStatement",
                  "src": "2954:39:54"
                },
                {
                  "body": {
                    "id": 41162,
                    "nodeType": "Block",
                    "src": "3035:74:54",
                    "statements": [
                      {
                        "expression": {
                          "id": 41160,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 41149,
                              "name": "_list",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 41100,
                              "src": "3043:5:54",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_contract$_IResolutionModule_$2399_$dyn_memory_ptr",
                                "typeString": "contract IResolutionModule[] memory"
                              }
                            },
                            "id": 41151,
                            "indexExpression": {
                              "id": 41150,
                              "name": "_i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 41141,
                              "src": "3049:2:54",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "3043:9:54",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_IResolutionModule_$2399",
                              "typeString": "contract IResolutionModule"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "commonType": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "id": 41157,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "id": 41155,
                                      "name": "_startFrom",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 41091,
                                      "src": "3085:10:54",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "+",
                                    "rightExpression": {
                                      "id": 41156,
                                      "name": "_i",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 41141,
                                      "src": "3098:2:54",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "src": "3085:15:54",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "expression": {
                                    "id": 41153,
                                    "name": "_modules",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 41106,
                                    "src": "3073:8:54",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_AddressSet_$5090_storage_ptr",
                                      "typeString": "struct EnumerableSet.AddressSet storage pointer"
                                    }
                                  },
                                  "id": 41154,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "3082:2:54",
                                  "memberName": "at",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 5213,
                                  "src": "3073:11:54",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$5090_storage_ptr_$_t_uint256_$returns$_t_address_$attached_to$_t_struct$_AddressSet_$5090_storage_ptr_$",
                                    "typeString": "function (struct EnumerableSet.AddressSet storage pointer,uint256) view returns (address)"
                                  }
                                },
                                "id": 41158,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3073:28:54",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "id": 41152,
                              "name": "IResolutionModule",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2399,
                              "src": "3055:17:54",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_IResolutionModule_$2399_$",
                                "typeString": "type(contract IResolutionModule)"
                              }
                            },
                            "id": 41159,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3055:47:54",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_IResolutionModule_$2399",
                              "typeString": "contract IResolutionModule"
                            }
                          },
                          "src": "3043:59:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IResolutionModule_$2399",
                            "typeString": "contract IResolutionModule"
                          }
                        },
                        "id": 41161,
                        "nodeType": "ExpressionStatement",
                        "src": "3043:59:54"
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 41145,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 41143,
                      "name": "_i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41141,
                      "src": "3016:2:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "id": 41144,
                      "name": "_count",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41118,
                      "src": "3021:6:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3016:11:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 41163,
                  "initializationExpression": {
                    "assignments": [
                      41141
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 41141,
                        "mutability": "mutable",
                        "name": "_i",
                        "nameLocation": "3012:2:54",
                        "nodeType": "VariableDeclaration",
                        "scope": 41163,
                        "src": "3004:10:54",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 41140,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "3004:7:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 41142,
                    "nodeType": "VariableDeclarationStatement",
                    "src": "3004:10:54"
                  },
                  "loopExpression": {
                    "expression": {
                      "id": 41147,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": true,
                      "src": "3029:4:54",
                      "subExpression": {
                        "id": 41146,
                        "name": "_i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 41141,
                        "src": "3031:2:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 41148,
                    "nodeType": "ExpressionStatement",
                    "src": "3029:4:54"
                  },
                  "nodeType": "ForStatement",
                  "src": "2999:110:54"
                }
              ]
            },
            "baseFunctions": [
              44068
            ],
            "documentation": {
              "id": 41089,
              "nodeType": "StructuredDocumentation",
              "src": "2528:43:54",
              "text": "@inheritdoc ISequentialResolutionModule"
            },
            "functionSelector": "7436f080",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "listSubmodules",
            "nameLocation": "2583:14:54",
            "parameters": {
              "id": 41096,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41091,
                  "mutability": "mutable",
                  "name": "_startFrom",
                  "nameLocation": "2611:10:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41165,
                  "src": "2603:18:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 41090,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2603:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 41093,
                  "mutability": "mutable",
                  "name": "_batchSize",
                  "nameLocation": "2635:10:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41165,
                  "src": "2627:18:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 41092,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2627:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 41095,
                  "mutability": "mutable",
                  "name": "_sequenceId",
                  "nameLocation": "2659:11:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41165,
                  "src": "2651:19:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 41094,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2651:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2597:77:54"
            },
            "returnParameters": {
              "id": 41101,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41100,
                  "mutability": "mutable",
                  "name": "_list",
                  "nameLocation": "2725:5:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41165,
                  "src": "2698:32:54",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_contract$_IResolutionModule_$2399_$dyn_memory_ptr",
                    "typeString": "contract IResolutionModule[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 41098,
                      "nodeType": "UserDefinedTypeName",
                      "pathNode": {
                        "id": 41097,
                        "name": "IResolutionModule",
                        "nameLocations": [
                          "2698:17:54"
                        ],
                        "nodeType": "IdentifierPath",
                        "referencedDeclaration": 2399,
                        "src": "2698:17:54"
                      },
                      "referencedDeclaration": 2399,
                      "src": "2698:17:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IResolutionModule_$2399",
                        "typeString": "contract IResolutionModule"
                      }
                    },
                    "id": 41099,
                    "nodeType": "ArrayTypeName",
                    "src": "2698:19:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_contract$_IResolutionModule_$2399_$dyn_storage_ptr",
                      "typeString": "contract IResolutionModule[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2697:34:54"
            },
            "scope": 41875,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 41174,
            "nodeType": "FunctionDefinition",
            "src": "3143:118:54",
            "nodes": [],
            "body": {
              "id": 41173,
              "nodeType": "Block",
              "src": "3215:46:54",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "hexValue": "53657175656e7469616c5265736f6c7574696f6e4d6f64756c65",
                    "id": 41171,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "string",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "3228:28:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_stringliteral_8f8b53d07df6449578c16e62354398bae353aa227d4cb10a92e5521a661c559f",
                      "typeString": "literal_string \"SequentialResolutionModule\""
                    },
                    "value": "SequentialResolutionModule"
                  },
                  "functionReturnParameters": 41170,
                  "id": 41172,
                  "nodeType": "Return",
                  "src": "3221:35:54"
                }
              ]
            },
            "baseFunctions": [
              1781
            ],
            "documentation": {
              "id": 41166,
              "nodeType": "StructuredDocumentation",
              "src": "3117:23:54",
              "text": "@inheritdoc IModule"
            },
            "functionSelector": "93f0899a",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "moduleName",
            "nameLocation": "3152:10:54",
            "parameters": {
              "id": 41167,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3162:2:54"
            },
            "returnParameters": {
              "id": 41170,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41169,
                  "mutability": "mutable",
                  "name": "_moduleName",
                  "nameLocation": "3202:11:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41174,
                  "src": "3188:25:54",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 41168,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3188:6:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3187:27:54"
            },
            "scope": 41875,
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 41195,
            "nodeType": "FunctionDefinition",
            "src": "3311:179:54",
            "nodes": [],
            "body": {
              "id": 41194,
              "nodeType": "Block",
              "src": "3413:77:54",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "id": 41192,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 41183,
                      "name": "_params",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41181,
                      "src": "3419:7:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_RequestParameters_$44023_memory_ptr",
                        "typeString": "struct ISequentialResolutionModule.RequestParameters memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "baseExpression": {
                            "id": 41186,
                            "name": "requestData",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14,
                            "src": "3440:11:54",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
                              "typeString": "mapping(bytes32 => bytes storage ref)"
                            }
                          },
                          "id": 41188,
                          "indexExpression": {
                            "id": 41187,
                            "name": "_requestId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 41177,
                            "src": "3452:10:54",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "3440:23:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_storage",
                            "typeString": "bytes storage ref"
                          }
                        },
                        {
                          "components": [
                            {
                              "id": 41189,
                              "name": "RequestParameters",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 44023,
                              "src": "3466:17:54",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_struct$_RequestParameters_$44023_storage_ptr_$",
                                "typeString": "type(struct ISequentialResolutionModule.RequestParameters storage pointer)"
                              }
                            }
                          ],
                          "id": 41190,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "3465:19:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_struct$_RequestParameters_$44023_storage_ptr_$",
                            "typeString": "type(struct ISequentialResolutionModule.RequestParameters storage pointer)"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes_storage",
                            "typeString": "bytes storage ref"
                          },
                          {
                            "typeIdentifier": "t_type$_t_struct$_RequestParameters_$44023_storage_ptr_$",
                            "typeString": "type(struct ISequentialResolutionModule.RequestParameters storage pointer)"
                          }
                        ],
                        "expression": {
                          "id": 41184,
                          "name": "abi",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -1,
                          "src": "3429:3:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_abi",
                            "typeString": "abi"
                          }
                        },
                        "id": 41185,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "3433:6:54",
                        "memberName": "decode",
                        "nodeType": "MemberAccess",
                        "src": "3429:10:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
                          "typeString": "function () pure"
                        }
                      },
                      "id": 41191,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3429:56:54",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_RequestParameters_$44023_memory_ptr",
                        "typeString": "struct ISequentialResolutionModule.RequestParameters memory"
                      }
                    },
                    "src": "3419:66:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RequestParameters_$44023_memory_ptr",
                      "typeString": "struct ISequentialResolutionModule.RequestParameters memory"
                    }
                  },
                  "id": 41193,
                  "nodeType": "ExpressionStatement",
                  "src": "3419:66:54"
                }
              ]
            },
            "baseFunctions": [
              44054
            ],
            "documentation": {
              "id": 41175,
              "nodeType": "StructuredDocumentation",
              "src": "3265:43:54",
              "text": "@inheritdoc ISequentialResolutionModule"
            },
            "functionSelector": "4d610a46",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decodeRequestData",
            "nameLocation": "3320:17:54",
            "parameters": {
              "id": 41178,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41177,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "3346:10:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41195,
                  "src": "3338:18:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 41176,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3338:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3337:20:54"
            },
            "returnParameters": {
              "id": 41182,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41181,
                  "mutability": "mutable",
                  "name": "_params",
                  "nameLocation": "3404:7:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41195,
                  "src": "3379:32:54",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_RequestParameters_$44023_memory_ptr",
                    "typeString": "struct ISequentialResolutionModule.RequestParameters"
                  },
                  "typeName": {
                    "id": 41180,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 41179,
                      "name": "RequestParameters",
                      "nameLocations": [
                        "3379:17:54"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 44023,
                      "src": "3379:17:54"
                    },
                    "referencedDeclaration": 44023,
                    "src": "3379:17:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RequestParameters_$44023_storage_ptr",
                      "typeString": "struct ISequentialResolutionModule.RequestParameters"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3378:34:54"
            },
            "scope": 41875,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 41244,
            "nodeType": "FunctionDefinition",
            "src": "3520:373:54",
            "nodes": [],
            "body": {
              "id": 41243,
              "nodeType": "Block",
              "src": "3651:242:54",
              "nodes": [],
              "statements": [
                {
                  "assignments": [
                    41212
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 41212,
                      "mutability": "mutable",
                      "name": "_modules",
                      "nameLocation": "3690:8:54",
                      "nodeType": "VariableDeclaration",
                      "scope": 41243,
                      "src": "3657:41:54",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_AddressSet_$5090_storage_ptr",
                        "typeString": "struct EnumerableSet.AddressSet"
                      },
                      "typeName": {
                        "id": 41211,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 41210,
                          "name": "EnumerableSet.AddressSet",
                          "nameLocations": [
                            "3657:13:54",
                            "3671:10:54"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 5090,
                          "src": "3657:24:54"
                        },
                        "referencedDeclaration": 5090,
                        "src": "3657:24:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_AddressSet_$5090_storage_ptr",
                          "typeString": "struct EnumerableSet.AddressSet"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 41218,
                  "initialValue": {
                    "baseExpression": {
                      "id": 41213,
                      "name": "_resolutionModules",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 40965,
                      "src": "3701:18:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$5090_storage_$",
                        "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"
                      }
                    },
                    "id": 41217,
                    "indexExpression": {
                      "arguments": [
                        {
                          "id": 41215,
                          "name": "_requestId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 41198,
                          "src": "3735:10:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 41214,
                        "name": "_getSequenceId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 41480,
                        "src": "3720:14:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$",
                          "typeString": "function (bytes32) view returns (uint256)"
                        }
                      },
                      "id": 41216,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3720:26:54",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "3701:46:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_AddressSet_$5090_storage",
                      "typeString": "struct EnumerableSet.AddressSet storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3657:90:54"
                },
                {
                  "body": {
                    "id": 41241,
                    "nodeType": "Block",
                    "src": "3800:89:54",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 41237,
                              "name": "_requestId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 41198,
                              "src": "3859:10:54",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "id": 41238,
                              "name": "_finalizer",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 41200,
                              "src": "3871:10:54",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "expression": {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "id": 41233,
                                      "name": "_i",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 41220,
                                      "src": "3838:2:54",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "expression": {
                                      "id": 41231,
                                      "name": "_modules",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 41212,
                                      "src": "3826:8:54",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_AddressSet_$5090_storage_ptr",
                                        "typeString": "struct EnumerableSet.AddressSet storage pointer"
                                      }
                                    },
                                    "id": 41232,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "3835:2:54",
                                    "memberName": "at",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 5213,
                                    "src": "3826:11:54",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$5090_storage_ptr_$_t_uint256_$returns$_t_address_$attached_to$_t_struct$_AddressSet_$5090_storage_ptr_$",
                                      "typeString": "function (struct EnumerableSet.AddressSet storage pointer,uint256) view returns (address)"
                                    }
                                  },
                                  "id": 41234,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "3826:15:54",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 41230,
                                "name": "IResolutionModule",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2399,
                                "src": "3808:17:54",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_IResolutionModule_$2399_$",
                                  "typeString": "type(contract IResolutionModule)"
                                }
                              },
                              "id": 41235,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3808:34:54",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IResolutionModule_$2399",
                                "typeString": "contract IResolutionModule"
                              }
                            },
                            "id": 41236,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "3843:15:54",
                            "memberName": "finalizeRequest",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1775,
                            "src": "3808:50:54",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                              "typeString": "function (bytes32,address) external"
                            }
                          },
                          "id": 41239,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3808:74:54",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 41240,
                        "nodeType": "ExpressionStatement",
                        "src": "3808:74:54"
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 41226,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 41222,
                      "name": "_i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41220,
                      "src": "3770:2:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 41223,
                          "name": "_modules",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 41212,
                          "src": "3775:8:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_AddressSet_$5090_storage_ptr",
                            "typeString": "struct EnumerableSet.AddressSet storage pointer"
                          }
                        },
                        "id": 41224,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "3784:6:54",
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 5186,
                        "src": "3775:15:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$5090_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressSet_$5090_storage_ptr_$",
                          "typeString": "function (struct EnumerableSet.AddressSet storage pointer) view returns (uint256)"
                        }
                      },
                      "id": 41225,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3775:17:54",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3770:22:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 41242,
                  "initializationExpression": {
                    "assignments": [
                      41220
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 41220,
                        "mutability": "mutable",
                        "name": "_i",
                        "nameLocation": "3766:2:54",
                        "nodeType": "VariableDeclaration",
                        "scope": 41242,
                        "src": "3758:10:54",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 41219,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "3758:7:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 41221,
                    "nodeType": "VariableDeclarationStatement",
                    "src": "3758:10:54"
                  },
                  "loopExpression": {
                    "expression": {
                      "id": 41228,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": true,
                      "src": "3794:4:54",
                      "subExpression": {
                        "id": 41227,
                        "name": "_i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 41220,
                        "src": "3796:2:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 41229,
                    "nodeType": "ExpressionStatement",
                    "src": "3794:4:54"
                  },
                  "nodeType": "ForStatement",
                  "src": "3753:136:54"
                }
              ]
            },
            "baseFunctions": [
              88,
              1775
            ],
            "documentation": {
              "id": 41196,
              "nodeType": "StructuredDocumentation",
              "src": "3494:23:54",
              "text": "@inheritdoc IModule"
            },
            "functionSelector": "309de607",
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 41206,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 41205,
                  "name": "onlyOracle",
                  "nameLocations": [
                    "3640:10:54"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 41,
                  "src": "3640:10:54"
                },
                "nodeType": "ModifierInvocation",
                "src": "3640:10:54"
              }
            ],
            "name": "finalizeRequest",
            "nameLocation": "3529:15:54",
            "overrides": {
              "id": 41204,
              "nodeType": "OverrideSpecifier",
              "overrides": [
                {
                  "id": 41202,
                  "name": "Module",
                  "nameLocations": [
                    "3623:6:54"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 98,
                  "src": "3623:6:54"
                },
                {
                  "id": 41203,
                  "name": "IModule",
                  "nameLocations": [
                    "3631:7:54"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1782,
                  "src": "3631:7:54"
                }
              ],
              "src": "3614:25:54"
            },
            "parameters": {
              "id": 41201,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41198,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "3558:10:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41244,
                  "src": "3550:18:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 41197,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3550:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 41200,
                  "mutability": "mutable",
                  "name": "_finalizer",
                  "nameLocation": "3582:10:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41244,
                  "src": "3574:18:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 41199,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3574:7:54",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3544:52:54"
            },
            "returnParameters": {
              "id": 41207,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3651:0:54"
            },
            "scope": 41875,
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "id": 41320,
            "nodeType": "FunctionDefinition",
            "src": "3923:670:54",
            "nodes": [],
            "body": {
              "id": 41319,
              "nodeType": "Block",
              "src": "4063:530:54",
              "nodes": [],
              "statements": [
                {
                  "assignments": [
                    41259
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 41259,
                      "mutability": "mutable",
                      "name": "_requestId",
                      "nameLocation": "4077:10:54",
                      "nodeType": "VariableDeclaration",
                      "scope": 41319,
                      "src": "4069:18:54",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 41258,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "4069:7:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 41263,
                  "initialValue": {
                    "baseExpression": {
                      "id": 41260,
                      "name": "requestIdForDispute",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 40956,
                      "src": "4090:19:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                        "typeString": "mapping(bytes32 => bytes32)"
                      }
                    },
                    "id": 41262,
                    "indexExpression": {
                      "id": 41261,
                      "name": "_disputeId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41247,
                      "src": "4110:10:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4090:31:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4069:52:54"
                },
                {
                  "assignments": [
                    41265
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 41265,
                      "mutability": "mutable",
                      "name": "_nextModuleIndex",
                      "nameLocation": "4135:16:54",
                      "nodeType": "VariableDeclaration",
                      "scope": 41319,
                      "src": "4127:24:54",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 41264,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4127:7:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 41271,
                  "initialValue": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 41270,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "baseExpression": {
                        "id": 41266,
                        "name": "currentModuleIndex",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 40951,
                        "src": "4154:18:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 41268,
                      "indexExpression": {
                        "id": 41267,
                        "name": "_disputeId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 41247,
                        "src": "4173:10:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "4154:30:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "+",
                    "rightExpression": {
                      "hexValue": "31",
                      "id": 41269,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4187:1:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "4154:34:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4127:61:54"
                },
                {
                  "assignments": [
                    41276
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 41276,
                      "mutability": "mutable",
                      "name": "_modules",
                      "nameLocation": "4227:8:54",
                      "nodeType": "VariableDeclaration",
                      "scope": 41319,
                      "src": "4194:41:54",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_AddressSet_$5090_storage_ptr",
                        "typeString": "struct EnumerableSet.AddressSet"
                      },
                      "typeName": {
                        "id": 41275,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 41274,
                          "name": "EnumerableSet.AddressSet",
                          "nameLocations": [
                            "4194:13:54",
                            "4208:10:54"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 5090,
                          "src": "4194:24:54"
                        },
                        "referencedDeclaration": 5090,
                        "src": "4194:24:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_AddressSet_$5090_storage_ptr",
                          "typeString": "struct EnumerableSet.AddressSet"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 41282,
                  "initialValue": {
                    "baseExpression": {
                      "id": 41277,
                      "name": "_resolutionModules",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 40965,
                      "src": "4238:18:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$5090_storage_$",
                        "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"
                      }
                    },
                    "id": 41281,
                    "indexExpression": {
                      "arguments": [
                        {
                          "id": 41279,
                          "name": "_requestId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 41259,
                          "src": "4272:10:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 41278,
                        "name": "_getSequenceId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 41480,
                        "src": "4257:14:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$",
                          "typeString": "function (bytes32) view returns (uint256)"
                        }
                      },
                      "id": 41280,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4257:26:54",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4238:46:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_AddressSet_$5090_storage",
                      "typeString": "struct EnumerableSet.AddressSet storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4194:90:54"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 41292,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_enum$_DisputeStatus_$2052",
                        "typeString": "enum IOracle.DisputeStatus"
                      },
                      "id": 41286,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 41283,
                        "name": "_status",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 41250,
                        "src": "4294:7:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_DisputeStatus_$2052",
                          "typeString": "enum IOracle.DisputeStatus"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "expression": {
                          "id": 41284,
                          "name": "DisputeStatus",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2052,
                          "src": "4305:13:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_DisputeStatus_$2052_$",
                            "typeString": "type(enum IOracle.DisputeStatus)"
                          }
                        },
                        "id": 41285,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "4319:12:54",
                        "memberName": "NoResolution",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2051,
                        "src": "4305:26:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_DisputeStatus_$2052",
                          "typeString": "enum IOracle.DisputeStatus"
                        }
                      },
                      "src": "4294:37:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 41291,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 41287,
                        "name": "_nextModuleIndex",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 41265,
                        "src": "4335:16:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "<",
                      "rightExpression": {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "id": 41288,
                            "name": "_modules",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 41276,
                            "src": "4354:8:54",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_AddressSet_$5090_storage_ptr",
                              "typeString": "struct EnumerableSet.AddressSet storage pointer"
                            }
                          },
                          "id": 41289,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "4363:6:54",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5186,
                          "src": "4354:15:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$5090_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressSet_$5090_storage_ptr_$",
                            "typeString": "function (struct EnumerableSet.AddressSet storage pointer) view returns (uint256)"
                          }
                        },
                        "id": 41290,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4354:17:54",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "4335:36:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "4294:77:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 41317,
                    "nodeType": "Block",
                    "src": "4527:62:54",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 41313,
                              "name": "_disputeId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 41247,
                              "src": "4562:10:54",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "id": 41314,
                              "name": "_status",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 41250,
                              "src": "4574:7:54",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_DisputeStatus_$2052",
                                "typeString": "enum IOracle.DisputeStatus"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_enum$_DisputeStatus_$2052",
                                "typeString": "enum IOracle.DisputeStatus"
                              }
                            ],
                            "expression": {
                              "id": 41310,
                              "name": "ORACLE",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10,
                              "src": "4535:6:54",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IOracle_$2282",
                                "typeString": "contract IOracle"
                              }
                            },
                            "id": 41312,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "4542:19:54",
                            "memberName": "updateDisputeStatus",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2221,
                            "src": "4535:26:54",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_enum$_DisputeStatus_$2052_$returns$__$",
                              "typeString": "function (bytes32,enum IOracle.DisputeStatus) external"
                            }
                          },
                          "id": 41315,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4535:47:54",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 41316,
                        "nodeType": "ExpressionStatement",
                        "src": "4535:47:54"
                      }
                    ]
                  },
                  "id": 41318,
                  "nodeType": "IfStatement",
                  "src": "4290:299:54",
                  "trueBody": {
                    "id": 41309,
                    "nodeType": "Block",
                    "src": "4373:148:54",
                    "statements": [
                      {
                        "expression": {
                          "id": 41297,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 41293,
                              "name": "currentModuleIndex",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 40951,
                              "src": "4381:18:54",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                "typeString": "mapping(bytes32 => uint256)"
                              }
                            },
                            "id": 41295,
                            "indexExpression": {
                              "id": 41294,
                              "name": "_disputeId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 41247,
                              "src": "4400:10:54",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "4381:30:54",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "id": 41296,
                            "name": "_nextModuleIndex",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 41265,
                            "src": "4414:16:54",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "4381:49:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 41298,
                        "nodeType": "ExpressionStatement",
                        "src": "4381:49:54"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 41306,
                              "name": "_disputeId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 41247,
                              "src": "4503:10:54",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "expression": {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "id": 41302,
                                      "name": "_nextModuleIndex",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 41265,
                                      "src": "4468:16:54",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "expression": {
                                      "id": 41300,
                                      "name": "_modules",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 41276,
                                      "src": "4456:8:54",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_AddressSet_$5090_storage_ptr",
                                        "typeString": "struct EnumerableSet.AddressSet storage pointer"
                                      }
                                    },
                                    "id": 41301,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "4465:2:54",
                                    "memberName": "at",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 5213,
                                    "src": "4456:11:54",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$5090_storage_ptr_$_t_uint256_$returns$_t_address_$attached_to$_t_struct$_AddressSet_$5090_storage_ptr_$",
                                      "typeString": "function (struct EnumerableSet.AddressSet storage pointer,uint256) view returns (address)"
                                    }
                                  },
                                  "id": 41303,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "4456:29:54",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 41299,
                                "name": "IResolutionModule",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2399,
                                "src": "4438:17:54",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_IResolutionModule_$2399_$",
                                  "typeString": "type(contract IResolutionModule)"
                                }
                              },
                              "id": 41304,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "4438:48:54",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IResolutionModule_$2399",
                                "typeString": "contract IResolutionModule"
                              }
                            },
                            "id": 41305,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "4487:15:54",
                            "memberName": "startResolution",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2392,
                            "src": "4438:64:54",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$returns$__$",
                              "typeString": "function (bytes32) external"
                            }
                          },
                          "id": 41307,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4438:76:54",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 41308,
                        "nodeType": "ExpressionStatement",
                        "src": "4438:76:54"
                      }
                    ]
                  }
                }
              ]
            },
            "baseFunctions": [
              2221
            ],
            "documentation": {
              "id": 41245,
              "nodeType": "StructuredDocumentation",
              "src": "3897:23:54",
              "text": "@inheritdoc IOracle"
            },
            "functionSelector": "0c1d0c23",
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "baseExpression": {
                      "id": 41253,
                      "name": "requestIdForDispute",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 40956,
                      "src": "4030:19:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                        "typeString": "mapping(bytes32 => bytes32)"
                      }
                    },
                    "id": 41255,
                    "indexExpression": {
                      "id": 41254,
                      "name": "_disputeId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41247,
                      "src": "4050:10:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4030:31:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 41256,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 41252,
                  "name": "onlySubmodule",
                  "nameLocations": [
                    "4016:13:54"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 40997,
                  "src": "4016:13:54"
                },
                "nodeType": "ModifierInvocation",
                "src": "4016:46:54"
              }
            ],
            "name": "updateDisputeStatus",
            "nameLocation": "3932:19:54",
            "parameters": {
              "id": 41251,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41247,
                  "mutability": "mutable",
                  "name": "_disputeId",
                  "nameLocation": "3965:10:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41320,
                  "src": "3957:18:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 41246,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3957:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 41250,
                  "mutability": "mutable",
                  "name": "_status",
                  "nameLocation": "3995:7:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41320,
                  "src": "3981:21:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_DisputeStatus_$2052",
                    "typeString": "enum IOracle.DisputeStatus"
                  },
                  "typeName": {
                    "id": 41249,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 41248,
                      "name": "DisputeStatus",
                      "nameLocations": [
                        "3981:13:54"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 2052,
                      "src": "3981:13:54"
                    },
                    "referencedDeclaration": 2052,
                    "src": "3981:13:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_DisputeStatus_$2052",
                      "typeString": "enum IOracle.DisputeStatus"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3951:55:54"
            },
            "returnParameters": {
              "id": 41257,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4063:0:54"
            },
            "scope": 41875,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 41364,
            "nodeType": "FunctionDefinition",
            "src": "4633:380:54",
            "nodes": [],
            "body": {
              "id": 41363,
              "nodeType": "Block",
              "src": "4698:315:54",
              "nodes": [],
              "statements": [
                {
                  "assignments": [
                    41329
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 41329,
                      "mutability": "mutable",
                      "name": "_requestIdForDispute",
                      "nameLocation": "4712:20:54",
                      "nodeType": "VariableDeclaration",
                      "scope": 41363,
                      "src": "4704:28:54",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 41328,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "4704:7:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 41335,
                  "initialValue": {
                    "expression": {
                      "arguments": [
                        {
                          "id": 41332,
                          "name": "_disputeId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 41323,
                          "src": "4753:10:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "expression": {
                          "id": 41330,
                          "name": "ORACLE",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10,
                          "src": "4735:6:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IOracle_$2282",
                            "typeString": "contract IOracle"
                          }
                        },
                        "id": 41331,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "4742:10:54",
                        "memberName": "getDispute",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2162,
                        "src": "4735:17:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_struct$_Dispute_$2045_memory_ptr_$",
                          "typeString": "function (bytes32) view external returns (struct IOracle.Dispute memory)"
                        }
                      },
                      "id": 41333,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4735:29:54",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Dispute_$2045_memory_ptr",
                        "typeString": "struct IOracle.Dispute memory"
                      }
                    },
                    "id": 41334,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "4765:9:54",
                    "memberName": "requestId",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2041,
                    "src": "4735:39:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4704:70:54"
                },
                {
                  "expression": {
                    "id": 41340,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 41336,
                        "name": "requestIdForDispute",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 40956,
                        "src": "4780:19:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                          "typeString": "mapping(bytes32 => bytes32)"
                        }
                      },
                      "id": 41338,
                      "indexExpression": {
                        "id": 41337,
                        "name": "_disputeId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 41323,
                        "src": "4800:10:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "4780:31:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 41339,
                      "name": "_requestIdForDispute",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41329,
                      "src": "4814:20:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "4780:54:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 41341,
                  "nodeType": "ExpressionStatement",
                  "src": "4780:54:54"
                },
                {
                  "assignments": [
                    41346
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 41346,
                      "mutability": "mutable",
                      "name": "_modules",
                      "nameLocation": "4874:8:54",
                      "nodeType": "VariableDeclaration",
                      "scope": 41363,
                      "src": "4841:41:54",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_AddressSet_$5090_storage_ptr",
                        "typeString": "struct EnumerableSet.AddressSet"
                      },
                      "typeName": {
                        "id": 41345,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 41344,
                          "name": "EnumerableSet.AddressSet",
                          "nameLocations": [
                            "4841:13:54",
                            "4855:10:54"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 5090,
                          "src": "4841:24:54"
                        },
                        "referencedDeclaration": 5090,
                        "src": "4841:24:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_AddressSet_$5090_storage_ptr",
                          "typeString": "struct EnumerableSet.AddressSet"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 41352,
                  "initialValue": {
                    "baseExpression": {
                      "id": 41347,
                      "name": "_resolutionModules",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 40965,
                      "src": "4885:18:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$5090_storage_$",
                        "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"
                      }
                    },
                    "id": 41351,
                    "indexExpression": {
                      "arguments": [
                        {
                          "id": 41349,
                          "name": "_requestIdForDispute",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 41329,
                          "src": "4919:20:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 41348,
                        "name": "_getSequenceId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 41480,
                        "src": "4904:14:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$",
                          "typeString": "function (bytes32) view returns (uint256)"
                        }
                      },
                      "id": 41350,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4904:36:54",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4885:56:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_AddressSet_$5090_storage",
                      "typeString": "struct EnumerableSet.AddressSet storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4841:100:54"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 41360,
                        "name": "_disputeId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 41323,
                        "src": "4997:10:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "hexValue": "30",
                                "id": 41356,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4977:1:54",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                }
                              ],
                              "expression": {
                                "id": 41354,
                                "name": "_modules",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 41346,
                                "src": "4965:8:54",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_AddressSet_$5090_storage_ptr",
                                  "typeString": "struct EnumerableSet.AddressSet storage pointer"
                                }
                              },
                              "id": 41355,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "4974:2:54",
                              "memberName": "at",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 5213,
                              "src": "4965:11:54",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$5090_storage_ptr_$_t_uint256_$returns$_t_address_$attached_to$_t_struct$_AddressSet_$5090_storage_ptr_$",
                                "typeString": "function (struct EnumerableSet.AddressSet storage pointer,uint256) view returns (address)"
                              }
                            },
                            "id": 41357,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4965:14:54",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 41353,
                          "name": "IResolutionModule",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2399,
                          "src": "4947:17:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_IResolutionModule_$2399_$",
                            "typeString": "type(contract IResolutionModule)"
                          }
                        },
                        "id": 41358,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4947:33:54",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IResolutionModule_$2399",
                          "typeString": "contract IResolutionModule"
                        }
                      },
                      "id": 41359,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "4981:15:54",
                      "memberName": "startResolution",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2392,
                      "src": "4947:49:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32) external"
                      }
                    },
                    "id": 41361,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4947:61:54",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 41362,
                  "nodeType": "ExpressionStatement",
                  "src": "4947:61:54"
                }
              ]
            },
            "baseFunctions": [
              2392
            ],
            "documentation": {
              "id": 41321,
              "nodeType": "StructuredDocumentation",
              "src": "4597:33:54",
              "text": "@inheritdoc IResolutionModule"
            },
            "functionSelector": "d96dd0e7",
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 41326,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 41325,
                  "name": "onlyOracle",
                  "nameLocations": [
                    "4687:10:54"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 41,
                  "src": "4687:10:54"
                },
                "nodeType": "ModifierInvocation",
                "src": "4687:10:54"
              }
            ],
            "name": "startResolution",
            "nameLocation": "4642:15:54",
            "parameters": {
              "id": 41324,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41323,
                  "mutability": "mutable",
                  "name": "_disputeId",
                  "nameLocation": "4666:10:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41364,
                  "src": "4658:18:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 41322,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4658:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4657:20:54"
            },
            "returnParameters": {
              "id": 41327,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4698:0:54"
            },
            "scope": 41875,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 41380,
            "nodeType": "FunctionDefinition",
            "src": "5053:140:54",
            "nodes": [],
            "body": {
              "id": 41379,
              "nodeType": "Block",
              "src": "5117:76:54",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 41376,
                        "name": "_disputeId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 41367,
                        "src": "5177:10:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "arguments": [
                          {
                            "id": 41373,
                            "name": "_disputeId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 41367,
                            "src": "5150:10:54",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 41372,
                          "name": "getCurrentResolutionModule",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 41088,
                          "src": "5123:26:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_contract$_IResolutionModule_$2399_$",
                            "typeString": "function (bytes32) view returns (contract IResolutionModule)"
                          }
                        },
                        "id": 41374,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5123:38:54",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IResolutionModule_$2399",
                          "typeString": "contract IResolutionModule"
                        }
                      },
                      "id": 41375,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "5162:14:54",
                      "memberName": "resolveDispute",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2398,
                      "src": "5123:53:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32) external"
                      }
                    },
                    "id": 41377,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5123:65:54",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 41378,
                  "nodeType": "ExpressionStatement",
                  "src": "5123:65:54"
                }
              ]
            },
            "baseFunctions": [
              44096
            ],
            "documentation": {
              "id": 41365,
              "nodeType": "StructuredDocumentation",
              "src": "5017:33:54",
              "text": "@inheritdoc IResolutionModule"
            },
            "functionSelector": "c8218e3e",
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 41370,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 41369,
                  "name": "onlyOracle",
                  "nameLocations": [
                    "5106:10:54"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 41,
                  "src": "5106:10:54"
                },
                "nodeType": "ModifierInvocation",
                "src": "5106:10:54"
              }
            ],
            "name": "resolveDispute",
            "nameLocation": "5062:14:54",
            "parameters": {
              "id": 41368,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41367,
                  "mutability": "mutable",
                  "name": "_disputeId",
                  "nameLocation": "5085:10:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41380,
                  "src": "5077:18:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 41366,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5077:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5076:20:54"
            },
            "returnParameters": {
              "id": 41371,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5117:0:54"
            },
            "scope": 41875,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 41434,
            "nodeType": "FunctionDefinition",
            "src": "5222:393:54",
            "nodes": [],
            "body": {
              "id": 41433,
              "nodeType": "Block",
              "src": "5310:305:54",
              "nodes": [],
              "statements": [
                {
                  "assignments": [
                    41391
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 41391,
                      "mutability": "mutable",
                      "name": "_params",
                      "nameLocation": "5341:7:54",
                      "nodeType": "VariableDeclaration",
                      "scope": 41433,
                      "src": "5316:32:54",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_RequestParameters_$44023_memory_ptr",
                        "typeString": "struct ISequentialResolutionModule.RequestParameters"
                      },
                      "typeName": {
                        "id": 41390,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 41389,
                          "name": "RequestParameters",
                          "nameLocations": [
                            "5316:17:54"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 44023,
                          "src": "5316:17:54"
                        },
                        "referencedDeclaration": 44023,
                        "src": "5316:17:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_RequestParameters_$44023_storage_ptr",
                          "typeString": "struct ISequentialResolutionModule.RequestParameters"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 41395,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 41393,
                        "name": "_data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 41385,
                        "src": "5363:5:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      ],
                      "id": 41392,
                      "name": "_decodeData",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41453,
                      "src": "5351:11:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_struct$_RequestParameters_$44023_memory_ptr_$",
                        "typeString": "function (bytes memory) pure returns (struct ISequentialResolutionModule.RequestParameters memory)"
                      }
                    },
                    "id": 41394,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5351:18:54",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RequestParameters_$44023_memory_ptr",
                      "typeString": "struct ISequentialResolutionModule.RequestParameters memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5316:53:54"
                },
                {
                  "assignments": [
                    41400
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 41400,
                      "mutability": "mutable",
                      "name": "_modules",
                      "nameLocation": "5408:8:54",
                      "nodeType": "VariableDeclaration",
                      "scope": 41433,
                      "src": "5375:41:54",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_AddressSet_$5090_storage_ptr",
                        "typeString": "struct EnumerableSet.AddressSet"
                      },
                      "typeName": {
                        "id": 41399,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 41398,
                          "name": "EnumerableSet.AddressSet",
                          "nameLocations": [
                            "5375:13:54",
                            "5389:10:54"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 5090,
                          "src": "5375:24:54"
                        },
                        "referencedDeclaration": 5090,
                        "src": "5375:24:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_AddressSet_$5090_storage_ptr",
                          "typeString": "struct EnumerableSet.AddressSet"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 41405,
                  "initialValue": {
                    "baseExpression": {
                      "id": 41401,
                      "name": "_resolutionModules",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 40965,
                      "src": "5419:18:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_AddressSet_$5090_storage_$",
                        "typeString": "mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"
                      }
                    },
                    "id": 41404,
                    "indexExpression": {
                      "expression": {
                        "id": 41402,
                        "name": "_params",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 41391,
                        "src": "5438:7:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_RequestParameters_$44023_memory_ptr",
                          "typeString": "struct ISequentialResolutionModule.RequestParameters memory"
                        }
                      },
                      "id": 41403,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "5446:10:54",
                      "memberName": "sequenceId",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 44019,
                      "src": "5438:18:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "5419:38:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_AddressSet_$5090_storage",
                      "typeString": "struct EnumerableSet.AddressSet storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5375:82:54"
                },
                {
                  "body": {
                    "id": 41431,
                    "nodeType": "Block",
                    "src": "5510:101:54",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 41424,
                              "name": "_requestId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 41383,
                              "src": "5566:10:54",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "baseExpression": {
                                "expression": {
                                  "id": 41425,
                                  "name": "_params",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 41391,
                                  "src": "5578:7:54",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_RequestParameters_$44023_memory_ptr",
                                    "typeString": "struct ISequentialResolutionModule.RequestParameters memory"
                                  }
                                },
                                "id": 41426,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "5586:13:54",
                                "memberName": "submoduleData",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 44022,
                                "src": "5578:21:54",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr",
                                  "typeString": "bytes memory[] memory"
                                }
                              },
                              "id": 41428,
                              "indexExpression": {
                                "id": 41427,
                                "name": "_i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 41407,
                                "src": "5600:2:54",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "5578:25:54",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            ],
                            "expression": {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "id": 41420,
                                      "name": "_i",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 41407,
                                      "src": "5548:2:54",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "expression": {
                                      "id": 41418,
                                      "name": "_modules",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 41400,
                                      "src": "5536:8:54",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_AddressSet_$5090_storage_ptr",
                                        "typeString": "struct EnumerableSet.AddressSet storage pointer"
                                      }
                                    },
                                    "id": 41419,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "5545:2:54",
                                    "memberName": "at",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 5213,
                                    "src": "5536:11:54",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$5090_storage_ptr_$_t_uint256_$returns$_t_address_$attached_to$_t_struct$_AddressSet_$5090_storage_ptr_$",
                                      "typeString": "function (struct EnumerableSet.AddressSet storage pointer,uint256) view returns (address)"
                                    }
                                  },
                                  "id": 41421,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "5536:15:54",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 41417,
                                "name": "IResolutionModule",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2399,
                                "src": "5518:17:54",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_IResolutionModule_$2399_$",
                                  "typeString": "type(contract IResolutionModule)"
                                }
                              },
                              "id": 41422,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5518:34:54",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IResolutionModule_$2399",
                                "typeString": "contract IResolutionModule"
                              }
                            },
                            "id": 41423,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "5553:12:54",
                            "memberName": "setupRequest",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1767,
                            "src": "5518:47:54",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$",
                              "typeString": "function (bytes32,bytes memory) external"
                            }
                          },
                          "id": 41429,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5518:86:54",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 41430,
                        "nodeType": "ExpressionStatement",
                        "src": "5518:86:54"
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 41413,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 41409,
                      "name": "_i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41407,
                      "src": "5480:2:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 41410,
                          "name": "_modules",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 41400,
                          "src": "5485:8:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_AddressSet_$5090_storage_ptr",
                            "typeString": "struct EnumerableSet.AddressSet storage pointer"
                          }
                        },
                        "id": 41411,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "5494:6:54",
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 5186,
                        "src": "5485:15:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$5090_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressSet_$5090_storage_ptr_$",
                          "typeString": "function (struct EnumerableSet.AddressSet storage pointer) view returns (uint256)"
                        }
                      },
                      "id": 41412,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "5485:17:54",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5480:22:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 41432,
                  "initializationExpression": {
                    "assignments": [
                      41407
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 41407,
                        "mutability": "mutable",
                        "name": "_i",
                        "nameLocation": "5476:2:54",
                        "nodeType": "VariableDeclaration",
                        "scope": 41432,
                        "src": "5468:10:54",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 41406,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "5468:7:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 41408,
                    "nodeType": "VariableDeclarationStatement",
                    "src": "5468:10:54"
                  },
                  "loopExpression": {
                    "expression": {
                      "id": 41415,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": true,
                      "src": "5504:4:54",
                      "subExpression": {
                        "id": 41414,
                        "name": "_i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 41407,
                        "src": "5506:2:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 41416,
                    "nodeType": "ExpressionStatement",
                    "src": "5504:4:54"
                  },
                  "nodeType": "ForStatement",
                  "src": "5463:148:54"
                }
              ]
            },
            "baseFunctions": [
              97
            ],
            "documentation": {
              "id": 41381,
              "nodeType": "StructuredDocumentation",
              "src": "5197:22:54",
              "text": "@inheritdoc Module"
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_afterSetupRequest",
            "nameLocation": "5231:18:54",
            "overrides": {
              "id": 41387,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "5301:8:54"
            },
            "parameters": {
              "id": 41386,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41383,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "5258:10:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41434,
                  "src": "5250:18:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 41382,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5250:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 41385,
                  "mutability": "mutable",
                  "name": "_data",
                  "nameLocation": "5285:5:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41434,
                  "src": "5270:20:54",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 41384,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "5270:5:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5249:42:54"
            },
            "returnParameters": {
              "id": 41388,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5310:0:54"
            },
            "scope": 41875,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 41453,
            "nodeType": "FunctionDefinition",
            "src": "5757:157:54",
            "nodes": [],
            "body": {
              "id": 41452,
              "nodeType": "Block",
              "src": "5855:59:54",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "id": 41450,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 41443,
                      "name": "_params",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41441,
                      "src": "5861:7:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_RequestParameters_$44023_memory_ptr",
                        "typeString": "struct ISequentialResolutionModule.RequestParameters memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 41446,
                          "name": "_data",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 41437,
                          "src": "5882:5:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        },
                        {
                          "components": [
                            {
                              "id": 41447,
                              "name": "RequestParameters",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 44023,
                              "src": "5890:17:54",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_struct$_RequestParameters_$44023_storage_ptr_$",
                                "typeString": "type(struct ISequentialResolutionModule.RequestParameters storage pointer)"
                              }
                            }
                          ],
                          "id": 41448,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "5889:19:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_struct$_RequestParameters_$44023_storage_ptr_$",
                            "typeString": "type(struct ISequentialResolutionModule.RequestParameters storage pointer)"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          },
                          {
                            "typeIdentifier": "t_type$_t_struct$_RequestParameters_$44023_storage_ptr_$",
                            "typeString": "type(struct ISequentialResolutionModule.RequestParameters storage pointer)"
                          }
                        ],
                        "expression": {
                          "id": 41444,
                          "name": "abi",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -1,
                          "src": "5871:3:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_abi",
                            "typeString": "abi"
                          }
                        },
                        "id": 41445,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "5875:6:54",
                        "memberName": "decode",
                        "nodeType": "MemberAccess",
                        "src": "5871:10:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
                          "typeString": "function () pure"
                        }
                      },
                      "id": 41449,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "5871:38:54",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_RequestParameters_$44023_memory_ptr",
                        "typeString": "struct ISequentialResolutionModule.RequestParameters memory"
                      }
                    },
                    "src": "5861:48:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RequestParameters_$44023_memory_ptr",
                      "typeString": "struct ISequentialResolutionModule.RequestParameters memory"
                    }
                  },
                  "id": 41451,
                  "nodeType": "ExpressionStatement",
                  "src": "5861:48:54"
                }
              ]
            },
            "documentation": {
              "id": 41435,
              "nodeType": "StructuredDocumentation",
              "src": "5619:135:54",
              "text": " @notice Decodes the data received\n @param _data The data received\n @return _params The parameters of the request"
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_decodeData",
            "nameLocation": "5766:11:54",
            "parameters": {
              "id": 41438,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41437,
                  "mutability": "mutable",
                  "name": "_data",
                  "nameLocation": "5791:5:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41453,
                  "src": "5778:18:54",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 41436,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "5778:5:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5777:20:54"
            },
            "returnParameters": {
              "id": 41442,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41441,
                  "mutability": "mutable",
                  "name": "_params",
                  "nameLocation": "5846:7:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41453,
                  "src": "5821:32:54",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_RequestParameters_$44023_memory_ptr",
                    "typeString": "struct ISequentialResolutionModule.RequestParameters"
                  },
                  "typeName": {
                    "id": 41440,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 41439,
                      "name": "RequestParameters",
                      "nameLocations": [
                        "5821:17:54"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 44023,
                      "src": "5821:17:54"
                    },
                    "referencedDeclaration": 44023,
                    "src": "5821:17:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RequestParameters_$44023_storage_ptr",
                      "typeString": "struct ISequentialResolutionModule.RequestParameters"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5820:34:54"
            },
            "scope": 41875,
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 41480,
            "nodeType": "FunctionDefinition",
            "src": "6088:240:54",
            "nodes": [],
            "body": {
              "id": 41479,
              "nodeType": "Block",
              "src": "6176:152:54",
              "nodes": [],
              "statements": [
                {
                  "assignments": [
                    41462
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 41462,
                      "mutability": "mutable",
                      "name": "_data",
                      "nameLocation": "6195:5:54",
                      "nodeType": "VariableDeclaration",
                      "scope": 41479,
                      "src": "6182:18:54",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 41461,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "6182:5:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 41466,
                  "initialValue": {
                    "baseExpression": {
                      "id": 41463,
                      "name": "requestData",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14,
                      "src": "6203:11:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
                        "typeString": "mapping(bytes32 => bytes storage ref)"
                      }
                    },
                    "id": 41465,
                    "indexExpression": {
                      "id": 41464,
                      "name": "_requestId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41456,
                      "src": "6215:10:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "6203:23:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage",
                      "typeString": "bytes storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6182:44:54"
                },
                {
                  "assignments": [
                    41469
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 41469,
                      "mutability": "mutable",
                      "name": "_params",
                      "nameLocation": "6257:7:54",
                      "nodeType": "VariableDeclaration",
                      "scope": 41479,
                      "src": "6232:32:54",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_RequestParameters_$44023_memory_ptr",
                        "typeString": "struct ISequentialResolutionModule.RequestParameters"
                      },
                      "typeName": {
                        "id": 41468,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 41467,
                          "name": "RequestParameters",
                          "nameLocations": [
                            "6232:17:54"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 44023,
                          "src": "6232:17:54"
                        },
                        "referencedDeclaration": 44023,
                        "src": "6232:17:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_RequestParameters_$44023_storage_ptr",
                          "typeString": "struct ISequentialResolutionModule.RequestParameters"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 41473,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 41471,
                        "name": "_data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 41462,
                        "src": "6279:5:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 41470,
                      "name": "_decodeData",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41453,
                      "src": "6267:11:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_struct$_RequestParameters_$44023_memory_ptr_$",
                        "typeString": "function (bytes memory) pure returns (struct ISequentialResolutionModule.RequestParameters memory)"
                      }
                    },
                    "id": 41472,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6267:18:54",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RequestParameters_$44023_memory_ptr",
                      "typeString": "struct ISequentialResolutionModule.RequestParameters memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6232:53:54"
                },
                {
                  "expression": {
                    "id": 41477,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 41474,
                      "name": "_sequenceId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41459,
                      "src": "6291:11:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "expression": {
                        "id": 41475,
                        "name": "_params",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 41469,
                        "src": "6305:7:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_RequestParameters_$44023_memory_ptr",
                          "typeString": "struct ISequentialResolutionModule.RequestParameters memory"
                        }
                      },
                      "id": 41476,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "6313:10:54",
                      "memberName": "sequenceId",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 44019,
                      "src": "6305:18:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6291:32:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 41478,
                  "nodeType": "ExpressionStatement",
                  "src": "6291:32:54"
                }
              ]
            },
            "documentation": {
              "id": 41454,
              "nodeType": "StructuredDocumentation",
              "src": "5918:167:54",
              "text": " @notice Returns the sequenceId for a particular requestId\n @param _requestId The requestId to the sequenceId\n @return _sequenceId The sequenceId"
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_getSequenceId",
            "nameLocation": "6097:14:54",
            "parameters": {
              "id": 41457,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41456,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "6120:10:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41480,
                  "src": "6112:18:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 41455,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6112:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6111:20:54"
            },
            "returnParameters": {
              "id": 41460,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41459,
                  "mutability": "mutable",
                  "name": "_sequenceId",
                  "nameLocation": "6163:11:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41480,
                  "src": "6155:19:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 41458,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6155:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6154:21:54"
            },
            "scope": 41875,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 41499,
            "nodeType": "FunctionDefinition",
            "src": "6404:173:54",
            "nodes": [],
            "body": {
              "id": 41498,
              "nodeType": "Block",
              "src": "6508:69:54",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "id": 41496,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 41490,
                      "name": "_allowedModule",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41488,
                      "src": "6514:14:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 41493,
                          "name": "_requestId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 41483,
                          "src": "6552:10:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "id": 41494,
                          "name": "_module",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 41485,
                          "src": "6564:7:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "expression": {
                          "id": 41491,
                          "name": "ORACLE",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10,
                          "src": "6531:6:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IOracle_$2282",
                            "typeString": "contract IOracle"
                          }
                        },
                        "id": 41492,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "6538:13:54",
                        "memberName": "allowedModule",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2231,
                        "src": "6531:20:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_address_$returns$_t_bool_$",
                          "typeString": "function (bytes32,address) view external returns (bool)"
                        }
                      },
                      "id": 41495,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "6531:41:54",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "6514:58:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 41497,
                  "nodeType": "ExpressionStatement",
                  "src": "6514:58:54"
                }
              ]
            },
            "baseFunctions": [
              2231
            ],
            "documentation": {
              "id": 41481,
              "nodeType": "StructuredDocumentation",
              "src": "6378:23:54",
              "text": "@inheritdoc IOracle"
            },
            "functionSelector": "c4a41c4f",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "allowedModule",
            "nameLocation": "6413:13:54",
            "parameters": {
              "id": 41486,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41483,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "6435:10:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41499,
                  "src": "6427:18:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 41482,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6427:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 41485,
                  "mutability": "mutable",
                  "name": "_module",
                  "nameLocation": "6455:7:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41499,
                  "src": "6447:15:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 41484,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6447:7:54",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6426:37:54"
            },
            "returnParameters": {
              "id": 41489,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41488,
                  "mutability": "mutable",
                  "name": "_allowedModule",
                  "nameLocation": "6492:14:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41499,
                  "src": "6487:19:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 41487,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "6487:4:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6486:21:54"
            },
            "scope": 41875,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 41518,
            "nodeType": "FunctionDefinition",
            "src": "6607:169:54",
            "nodes": [],
            "body": {
              "id": 41517,
              "nodeType": "Block",
              "src": "6709:67:54",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "id": 41515,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 41509,
                      "name": "_isParticipant",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41507,
                      "src": "6715:14:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 41512,
                          "name": "_requestId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 41502,
                          "src": "6753:10:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "id": 41513,
                          "name": "_user",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 41504,
                          "src": "6765:5:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "expression": {
                          "id": 41510,
                          "name": "ORACLE",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10,
                          "src": "6732:6:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IOracle_$2282",
                            "typeString": "contract IOracle"
                          }
                        },
                        "id": 41511,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "6739:13:54",
                        "memberName": "isParticipant",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2241,
                        "src": "6732:20:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_address_$returns$_t_bool_$",
                          "typeString": "function (bytes32,address) view external returns (bool)"
                        }
                      },
                      "id": 41514,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "6732:39:54",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "6715:56:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 41516,
                  "nodeType": "ExpressionStatement",
                  "src": "6715:56:54"
                }
              ]
            },
            "baseFunctions": [
              2241
            ],
            "documentation": {
              "id": 41500,
              "nodeType": "StructuredDocumentation",
              "src": "6581:23:54",
              "text": "@inheritdoc IOracle"
            },
            "functionSelector": "c44a8923",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "isParticipant",
            "nameLocation": "6616:13:54",
            "parameters": {
              "id": 41505,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41502,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "6638:10:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41518,
                  "src": "6630:18:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 41501,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6630:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 41504,
                  "mutability": "mutable",
                  "name": "_user",
                  "nameLocation": "6658:5:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41518,
                  "src": "6650:13:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 41503,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6650:7:54",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6629:35:54"
            },
            "returnParameters": {
              "id": 41508,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41507,
                  "mutability": "mutable",
                  "name": "_isParticipant",
                  "nameLocation": "6693:14:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41518,
                  "src": "6688:19:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 41506,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "6688:4:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6687:21:54"
            },
            "scope": 41875,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 41535,
            "nodeType": "FunctionDefinition",
            "src": "6806:147:54",
            "nodes": [],
            "body": {
              "id": 41534,
              "nodeType": "Block",
              "src": "6902:51:54",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "id": 41532,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 41527,
                      "name": "_dispute",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41525,
                      "src": "6908:8:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Dispute_$2045_memory_ptr",
                        "typeString": "struct IOracle.Dispute memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 41530,
                          "name": "_disputeId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 41521,
                          "src": "6937:10:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "expression": {
                          "id": 41528,
                          "name": "ORACLE",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10,
                          "src": "6919:6:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IOracle_$2282",
                            "typeString": "contract IOracle"
                          }
                        },
                        "id": 41529,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "6926:10:54",
                        "memberName": "getDispute",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2162,
                        "src": "6919:17:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_struct$_Dispute_$2045_memory_ptr_$",
                          "typeString": "function (bytes32) view external returns (struct IOracle.Dispute memory)"
                        }
                      },
                      "id": 41531,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "6919:29:54",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Dispute_$2045_memory_ptr",
                        "typeString": "struct IOracle.Dispute memory"
                      }
                    },
                    "src": "6908:40:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Dispute_$2045_memory_ptr",
                      "typeString": "struct IOracle.Dispute memory"
                    }
                  },
                  "id": 41533,
                  "nodeType": "ExpressionStatement",
                  "src": "6908:40:54"
                }
              ]
            },
            "baseFunctions": [
              2162
            ],
            "documentation": {
              "id": 41519,
              "nodeType": "StructuredDocumentation",
              "src": "6780:23:54",
              "text": "@inheritdoc IOracle"
            },
            "functionSelector": "136ba6aa",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getDispute",
            "nameLocation": "6815:10:54",
            "parameters": {
              "id": 41522,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41521,
                  "mutability": "mutable",
                  "name": "_disputeId",
                  "nameLocation": "6834:10:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41535,
                  "src": "6826:18:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 41520,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6826:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6825:20:54"
            },
            "returnParameters": {
              "id": 41526,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41525,
                  "mutability": "mutable",
                  "name": "_dispute",
                  "nameLocation": "6892:8:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41535,
                  "src": "6869:31:54",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Dispute_$2045_memory_ptr",
                    "typeString": "struct IOracle.Dispute"
                  },
                  "typeName": {
                    "id": 41524,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 41523,
                      "name": "IOracle.Dispute",
                      "nameLocations": [
                        "6869:7:54",
                        "6877:7:54"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 2045,
                      "src": "6869:15:54"
                    },
                    "referencedDeclaration": 2045,
                    "src": "6869:15:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Dispute_$2045_storage_ptr",
                      "typeString": "struct IOracle.Dispute"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6868:33:54"
            },
            "scope": 41875,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 41552,
            "nodeType": "FunctionDefinition",
            "src": "6983:154:54",
            "nodes": [],
            "body": {
              "id": 41551,
              "nodeType": "Block",
              "src": "7083:54:54",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "id": 41549,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 41544,
                      "name": "_response",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41542,
                      "src": "7089:9:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Response_$2031_memory_ptr",
                        "typeString": "struct IOracle.Response memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 41547,
                          "name": "_responseId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 41538,
                          "src": "7120:11:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "expression": {
                          "id": 41545,
                          "name": "ORACLE",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10,
                          "src": "7101:6:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IOracle_$2282",
                            "typeString": "contract IOracle"
                          }
                        },
                        "id": 41546,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "7108:11:54",
                        "memberName": "getResponse",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2118,
                        "src": "7101:18:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_struct$_Response_$2031_memory_ptr_$",
                          "typeString": "function (bytes32) view external returns (struct IOracle.Response memory)"
                        }
                      },
                      "id": 41548,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7101:31:54",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Response_$2031_memory_ptr",
                        "typeString": "struct IOracle.Response memory"
                      }
                    },
                    "src": "7089:43:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Response_$2031_memory_ptr",
                      "typeString": "struct IOracle.Response memory"
                    }
                  },
                  "id": 41550,
                  "nodeType": "ExpressionStatement",
                  "src": "7089:43:54"
                }
              ]
            },
            "baseFunctions": [
              2118
            ],
            "documentation": {
              "id": 41536,
              "nodeType": "StructuredDocumentation",
              "src": "6957:23:54",
              "text": "@inheritdoc IOracle"
            },
            "functionSelector": "415a2bc1",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getResponse",
            "nameLocation": "6992:11:54",
            "parameters": {
              "id": 41539,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41538,
                  "mutability": "mutable",
                  "name": "_responseId",
                  "nameLocation": "7012:11:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41552,
                  "src": "7004:19:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 41537,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7004:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7003:21:54"
            },
            "returnParameters": {
              "id": 41543,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41542,
                  "mutability": "mutable",
                  "name": "_response",
                  "nameLocation": "7072:9:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41552,
                  "src": "7048:33:54",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Response_$2031_memory_ptr",
                    "typeString": "struct IOracle.Response"
                  },
                  "typeName": {
                    "id": 41541,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 41540,
                      "name": "IOracle.Response",
                      "nameLocations": [
                        "7048:7:54",
                        "7056:8:54"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 2031,
                      "src": "7048:16:54"
                    },
                    "referencedDeclaration": 2031,
                    "src": "7048:16:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Response_$2031_storage_ptr",
                      "typeString": "struct IOracle.Response"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7047:35:54"
            },
            "scope": 41875,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 41568,
            "nodeType": "FunctionDefinition",
            "src": "7167:132:54",
            "nodes": [],
            "body": {
              "id": 41567,
              "nodeType": "Block",
              "src": "7248:51:54",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "id": 41565,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 41560,
                      "name": "_requestId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41558,
                      "src": "7254:10:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 41563,
                          "name": "_nonce",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 41555,
                          "src": "7287:6:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "id": 41561,
                          "name": "ORACLE",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10,
                          "src": "7267:6:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IOracle_$2282",
                            "typeString": "contract IOracle"
                          }
                        },
                        "id": 41562,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "7274:12:54",
                        "memberName": "getRequestId",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2126,
                        "src": "7267:19:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_bytes32_$",
                          "typeString": "function (uint256) view external returns (bytes32)"
                        }
                      },
                      "id": 41564,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7267:27:54",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "7254:40:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 41566,
                  "nodeType": "ExpressionStatement",
                  "src": "7254:40:54"
                }
              ]
            },
            "baseFunctions": [
              2126
            ],
            "documentation": {
              "id": 41553,
              "nodeType": "StructuredDocumentation",
              "src": "7141:23:54",
              "text": "@inheritdoc IOracle"
            },
            "functionSelector": "68814af8",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getRequestId",
            "nameLocation": "7176:12:54",
            "parameters": {
              "id": 41556,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41555,
                  "mutability": "mutable",
                  "name": "_nonce",
                  "nameLocation": "7197:6:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41568,
                  "src": "7189:14:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 41554,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7189:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7188:16:54"
            },
            "returnParameters": {
              "id": 41559,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41558,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "7236:10:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41568,
                  "src": "7228:18:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 41557,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7228:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7227:20:54"
            },
            "scope": 41875,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 41585,
            "nodeType": "FunctionDefinition",
            "src": "7329:145:54",
            "nodes": [],
            "body": {
              "id": 41584,
              "nodeType": "Block",
              "src": "7420:54:54",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "id": 41582,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 41577,
                      "name": "_request",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41575,
                      "src": "7426:8:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Request_$1954_memory_ptr",
                        "typeString": "struct IOracle.Request memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 41580,
                          "name": "_nonce",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 41571,
                          "src": "7462:6:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "id": 41578,
                          "name": "ORACLE",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10,
                          "src": "7437:6:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IOracle_$2282",
                            "typeString": "contract IOracle"
                          }
                        },
                        "id": 41579,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "7444:17:54",
                        "memberName": "getRequestByNonce",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2135,
                        "src": "7437:24:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_struct$_Request_$1954_memory_ptr_$",
                          "typeString": "function (uint256) view external returns (struct IOracle.Request memory)"
                        }
                      },
                      "id": 41581,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7437:32:54",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Request_$1954_memory_ptr",
                        "typeString": "struct IOracle.Request memory"
                      }
                    },
                    "src": "7426:43:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Request_$1954_memory_ptr",
                      "typeString": "struct IOracle.Request memory"
                    }
                  },
                  "id": 41583,
                  "nodeType": "ExpressionStatement",
                  "src": "7426:43:54"
                }
              ]
            },
            "baseFunctions": [
              2135
            ],
            "documentation": {
              "id": 41569,
              "nodeType": "StructuredDocumentation",
              "src": "7303:23:54",
              "text": "@inheritdoc IOracle"
            },
            "functionSelector": "eeff6139",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getRequestByNonce",
            "nameLocation": "7338:17:54",
            "parameters": {
              "id": 41572,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41571,
                  "mutability": "mutable",
                  "name": "_nonce",
                  "nameLocation": "7364:6:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41585,
                  "src": "7356:14:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 41570,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7356:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7355:16:54"
            },
            "returnParameters": {
              "id": 41576,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41575,
                  "mutability": "mutable",
                  "name": "_request",
                  "nameLocation": "7410:8:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41585,
                  "src": "7395:23:54",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Request_$1954_memory_ptr",
                    "typeString": "struct IOracle.Request"
                  },
                  "typeName": {
                    "id": 41574,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 41573,
                      "name": "Request",
                      "nameLocations": [
                        "7395:7:54"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 1954,
                      "src": "7395:7:54"
                    },
                    "referencedDeclaration": 1954,
                    "src": "7395:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Request_$1954_storage_ptr",
                      "typeString": "struct IOracle.Request"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7394:25:54"
            },
            "scope": 41875,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 41602,
            "nodeType": "FunctionDefinition",
            "src": "7504:147:54",
            "nodes": [],
            "body": {
              "id": 41601,
              "nodeType": "Block",
              "src": "7600:51:54",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "id": 41599,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 41594,
                      "name": "_request",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41592,
                      "src": "7606:8:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Request_$1954_memory_ptr",
                        "typeString": "struct IOracle.Request memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 41597,
                          "name": "_requestId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 41588,
                          "src": "7635:10:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "expression": {
                          "id": 41595,
                          "name": "ORACLE",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10,
                          "src": "7617:6:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IOracle_$2282",
                            "typeString": "contract IOracle"
                          }
                        },
                        "id": 41596,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "7624:10:54",
                        "memberName": "getRequest",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2144,
                        "src": "7617:17:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_struct$_Request_$1954_memory_ptr_$",
                          "typeString": "function (bytes32) view external returns (struct IOracle.Request memory)"
                        }
                      },
                      "id": 41598,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7617:29:54",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Request_$1954_memory_ptr",
                        "typeString": "struct IOracle.Request memory"
                      }
                    },
                    "src": "7606:40:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Request_$1954_memory_ptr",
                      "typeString": "struct IOracle.Request memory"
                    }
                  },
                  "id": 41600,
                  "nodeType": "ExpressionStatement",
                  "src": "7606:40:54"
                }
              ]
            },
            "baseFunctions": [
              2144
            ],
            "documentation": {
              "id": 41586,
              "nodeType": "StructuredDocumentation",
              "src": "7478:23:54",
              "text": "@inheritdoc IOracle"
            },
            "functionSelector": "fb1e61ca",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getRequest",
            "nameLocation": "7513:10:54",
            "parameters": {
              "id": 41589,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41588,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "7532:10:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41602,
                  "src": "7524:18:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 41587,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7524:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7523:20:54"
            },
            "returnParameters": {
              "id": 41593,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41592,
                  "mutability": "mutable",
                  "name": "_request",
                  "nameLocation": "7590:8:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41602,
                  "src": "7567:31:54",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Request_$1954_memory_ptr",
                    "typeString": "struct IOracle.Request"
                  },
                  "typeName": {
                    "id": 41591,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 41590,
                      "name": "IOracle.Request",
                      "nameLocations": [
                        "7567:7:54",
                        "7575:7:54"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 1954,
                      "src": "7567:15:54"
                    },
                    "referencedDeclaration": 1954,
                    "src": "7567:15:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Request_$1954_storage_ptr",
                      "typeString": "struct IOracle.Request"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7566:33:54"
            },
            "scope": 41875,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 41619,
            "nodeType": "FunctionDefinition",
            "src": "7681:159:54",
            "nodes": [],
            "body": {
              "id": 41618,
              "nodeType": "Block",
              "src": "7785:55:54",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "id": 41616,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 41611,
                      "name": "_request",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41609,
                      "src": "7791:8:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_FullRequest_$2020_memory_ptr",
                        "typeString": "struct IOracle.FullRequest memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 41614,
                          "name": "_requestId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 41605,
                          "src": "7824:10:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "expression": {
                          "id": 41612,
                          "name": "ORACLE",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10,
                          "src": "7802:6:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IOracle_$2282",
                            "typeString": "contract IOracle"
                          }
                        },
                        "id": 41613,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "7809:14:54",
                        "memberName": "getFullRequest",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2153,
                        "src": "7802:21:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_struct$_FullRequest_$2020_memory_ptr_$",
                          "typeString": "function (bytes32) view external returns (struct IOracle.FullRequest memory)"
                        }
                      },
                      "id": 41615,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7802:33:54",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_FullRequest_$2020_memory_ptr",
                        "typeString": "struct IOracle.FullRequest memory"
                      }
                    },
                    "src": "7791:44:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_FullRequest_$2020_memory_ptr",
                      "typeString": "struct IOracle.FullRequest memory"
                    }
                  },
                  "id": 41617,
                  "nodeType": "ExpressionStatement",
                  "src": "7791:44:54"
                }
              ]
            },
            "baseFunctions": [
              2153
            ],
            "documentation": {
              "id": 41603,
              "nodeType": "StructuredDocumentation",
              "src": "7655:23:54",
              "text": "@inheritdoc IOracle"
            },
            "functionSelector": "d35d640e",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getFullRequest",
            "nameLocation": "7690:14:54",
            "parameters": {
              "id": 41606,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41605,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "7713:10:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41619,
                  "src": "7705:18:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 41604,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7705:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7704:20:54"
            },
            "returnParameters": {
              "id": 41610,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41609,
                  "mutability": "mutable",
                  "name": "_request",
                  "nameLocation": "7775:8:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41619,
                  "src": "7748:35:54",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_FullRequest_$2020_memory_ptr",
                    "typeString": "struct IOracle.FullRequest"
                  },
                  "typeName": {
                    "id": 41608,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 41607,
                      "name": "IOracle.FullRequest",
                      "nameLocations": [
                        "7748:7:54",
                        "7756:11:54"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 2020,
                      "src": "7748:19:54"
                    },
                    "referencedDeclaration": 2020,
                    "src": "7748:19:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_FullRequest_$2020_storage_ptr",
                      "typeString": "struct IOracle.FullRequest"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7747:37:54"
            },
            "scope": 41875,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 41635,
            "nodeType": "FunctionDefinition",
            "src": "7870:134:54",
            "nodes": [],
            "body": {
              "id": 41634,
              "nodeType": "Block",
              "src": "7952:52:54",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "id": 41632,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 41627,
                      "name": "_disputeId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41625,
                      "src": "7958:10:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 41630,
                          "name": "_requestId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 41622,
                          "src": "7988:10:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "expression": {
                          "id": 41628,
                          "name": "ORACLE",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10,
                          "src": "7971:6:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IOracle_$2282",
                            "typeString": "contract IOracle"
                          }
                        },
                        "id": 41629,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "7978:9:54",
                        "memberName": "disputeOf",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2060,
                        "src": "7971:16:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                          "typeString": "function (bytes32) view external returns (bytes32)"
                        }
                      },
                      "id": 41631,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7971:28:54",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "7958:41:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 41633,
                  "nodeType": "ExpressionStatement",
                  "src": "7958:41:54"
                }
              ]
            },
            "baseFunctions": [
              2060
            ],
            "documentation": {
              "id": 41620,
              "nodeType": "StructuredDocumentation",
              "src": "7844:23:54",
              "text": "@inheritdoc IOracle"
            },
            "functionSelector": "9427c7d6",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "disputeOf",
            "nameLocation": "7879:9:54",
            "parameters": {
              "id": 41623,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41622,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "7897:10:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41635,
                  "src": "7889:18:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 41621,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7889:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7888:20:54"
            },
            "returnParameters": {
              "id": 41626,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41625,
                  "mutability": "mutable",
                  "name": "_disputeId",
                  "nameLocation": "7940:10:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41635,
                  "src": "7932:18:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 41624,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7932:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7931:20:54"
            },
            "scope": 41875,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 41651,
            "nodeType": "FunctionDefinition",
            "src": "8034:180:54",
            "nodes": [],
            "body": {
              "id": 41650,
              "nodeType": "Block",
              "src": "8139:75:54",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "id": 41648,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 41643,
                      "name": "_finalizedResponseId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41641,
                      "src": "8145:20:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 41646,
                          "name": "_requestId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 41638,
                          "src": "8198:10:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "expression": {
                          "id": 41644,
                          "name": "ORACLE",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10,
                          "src": "8168:6:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IOracle_$2282",
                            "typeString": "contract IOracle"
                          }
                        },
                        "id": 41645,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "8175:22:54",
                        "memberName": "getFinalizedResponseId",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2249,
                        "src": "8168:29:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                          "typeString": "function (bytes32) view external returns (bytes32)"
                        }
                      },
                      "id": 41647,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8168:41:54",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "8145:64:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 41649,
                  "nodeType": "ExpressionStatement",
                  "src": "8145:64:54"
                }
              ]
            },
            "baseFunctions": [
              2249
            ],
            "documentation": {
              "id": 41636,
              "nodeType": "StructuredDocumentation",
              "src": "8008:23:54",
              "text": "@inheritdoc IOracle"
            },
            "functionSelector": "1af02211",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getFinalizedResponseId",
            "nameLocation": "8043:22:54",
            "parameters": {
              "id": 41639,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41638,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "8074:10:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41651,
                  "src": "8066:18:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 41637,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8066:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8065:20:54"
            },
            "returnParameters": {
              "id": 41642,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41641,
                  "mutability": "mutable",
                  "name": "_finalizedResponseId",
                  "nameLocation": "8117:20:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41651,
                  "src": "8109:28:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 41640,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8109:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8108:30:54"
            },
            "scope": 41875,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 41668,
            "nodeType": "FunctionDefinition",
            "src": "8244:170:54",
            "nodes": [],
            "body": {
              "id": 41667,
              "nodeType": "Block",
              "src": "8352:62:54",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "id": 41665,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 41660,
                      "name": "_response",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41658,
                      "src": "8358:9:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Response_$2031_memory_ptr",
                        "typeString": "struct IOracle.Response memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 41663,
                          "name": "_requestId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 41654,
                          "src": "8398:10:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "expression": {
                          "id": 41661,
                          "name": "ORACLE",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10,
                          "src": "8370:6:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IOracle_$2282",
                            "typeString": "contract IOracle"
                          }
                        },
                        "id": 41662,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "8377:20:54",
                        "memberName": "getFinalizedResponse",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2258,
                        "src": "8370:27:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_struct$_Response_$2031_memory_ptr_$",
                          "typeString": "function (bytes32) view external returns (struct IOracle.Response memory)"
                        }
                      },
                      "id": 41664,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8370:39:54",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Response_$2031_memory_ptr",
                        "typeString": "struct IOracle.Response memory"
                      }
                    },
                    "src": "8358:51:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Response_$2031_memory_ptr",
                      "typeString": "struct IOracle.Response memory"
                    }
                  },
                  "id": 41666,
                  "nodeType": "ExpressionStatement",
                  "src": "8358:51:54"
                }
              ]
            },
            "baseFunctions": [
              2258
            ],
            "documentation": {
              "id": 41652,
              "nodeType": "StructuredDocumentation",
              "src": "8218:23:54",
              "text": "@inheritdoc IOracle"
            },
            "functionSelector": "163ed02f",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getFinalizedResponse",
            "nameLocation": "8253:20:54",
            "parameters": {
              "id": 41655,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41654,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "8282:10:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41668,
                  "src": "8274:18:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 41653,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8274:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8273:20:54"
            },
            "returnParameters": {
              "id": 41659,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41658,
                  "mutability": "mutable",
                  "name": "_response",
                  "nameLocation": "8341:9:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41668,
                  "src": "8317:33:54",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Response_$2031_memory_ptr",
                    "typeString": "struct IOracle.Response"
                  },
                  "typeName": {
                    "id": 41657,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 41656,
                      "name": "IOracle.Response",
                      "nameLocations": [
                        "8317:7:54",
                        "8325:8:54"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 2031,
                      "src": "8317:16:54"
                    },
                    "referencedDeclaration": 2031,
                    "src": "8317:16:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Response_$2031_storage_ptr",
                      "typeString": "struct IOracle.Response"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8316:35:54"
            },
            "scope": 41875,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 41685,
            "nodeType": "FunctionDefinition",
            "src": "8444:141:54",
            "nodes": [],
            "body": {
              "id": 41684,
              "nodeType": "Block",
              "src": "8534:51:54",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "id": 41682,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 41677,
                      "name": "_ids",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41675,
                      "src": "8540:4:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                        "typeString": "bytes32[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 41680,
                          "name": "_requestId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 41671,
                          "src": "8569:10:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "expression": {
                          "id": 41678,
                          "name": "ORACLE",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10,
                          "src": "8547:6:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IOracle_$2282",
                            "typeString": "contract IOracle"
                          }
                        },
                        "id": 41679,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "8554:14:54",
                        "memberName": "getResponseIds",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2267,
                        "src": "8547:21:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                          "typeString": "function (bytes32) view external returns (bytes32[] memory)"
                        }
                      },
                      "id": 41681,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8547:33:54",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                        "typeString": "bytes32[] memory"
                      }
                    },
                    "src": "8540:40:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                      "typeString": "bytes32[] memory"
                    }
                  },
                  "id": 41683,
                  "nodeType": "ExpressionStatement",
                  "src": "8540:40:54"
                }
              ]
            },
            "baseFunctions": [
              2267
            ],
            "documentation": {
              "id": 41669,
              "nodeType": "StructuredDocumentation",
              "src": "8418:23:54",
              "text": "@inheritdoc IOracle"
            },
            "functionSelector": "5b425b09",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getResponseIds",
            "nameLocation": "8453:14:54",
            "parameters": {
              "id": 41672,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41671,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "8476:10:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41685,
                  "src": "8468:18:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 41670,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8468:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8467:20:54"
            },
            "returnParameters": {
              "id": 41676,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41675,
                  "mutability": "mutable",
                  "name": "_ids",
                  "nameLocation": "8528:4:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41685,
                  "src": "8511:21:54",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 41673,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "8511:7:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 41674,
                    "nodeType": "ArrayTypeName",
                    "src": "8511:9:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8510:23:54"
            },
            "scope": 41875,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 41706,
            "nodeType": "FunctionDefinition",
            "src": "8615:177:54",
            "nodes": [],
            "body": {
              "id": 41705,
              "nodeType": "Block",
              "src": "8733:59:54",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "id": 41703,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 41697,
                      "name": "_list",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41695,
                      "src": "8739:5:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_FullRequest_$2020_memory_ptr_$dyn_memory_ptr",
                        "typeString": "struct IOracle.FullRequest memory[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 41700,
                          "name": "_startFrom",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 41688,
                          "src": "8767:10:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "id": 41701,
                          "name": "_amount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 41690,
                          "src": "8779:7:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "id": 41698,
                          "name": "ORACLE",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10,
                          "src": "8747:6:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IOracle_$2282",
                            "typeString": "contract IOracle"
                          }
                        },
                        "id": 41699,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "8754:12:54",
                        "memberName": "listRequests",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2098,
                        "src": "8747:19:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_uint256_$_t_uint256_$returns$_t_array$_t_struct$_FullRequest_$2020_memory_ptr_$dyn_memory_ptr_$",
                          "typeString": "function (uint256,uint256) view external returns (struct IOracle.FullRequest memory[] memory)"
                        }
                      },
                      "id": 41702,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8747:40:54",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_FullRequest_$2020_memory_ptr_$dyn_memory_ptr",
                        "typeString": "struct IOracle.FullRequest memory[] memory"
                      }
                    },
                    "src": "8739:48:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_FullRequest_$2020_memory_ptr_$dyn_memory_ptr",
                      "typeString": "struct IOracle.FullRequest memory[] memory"
                    }
                  },
                  "id": 41704,
                  "nodeType": "ExpressionStatement",
                  "src": "8739:48:54"
                }
              ]
            },
            "baseFunctions": [
              2098
            ],
            "documentation": {
              "id": 41686,
              "nodeType": "StructuredDocumentation",
              "src": "8589:23:54",
              "text": "@inheritdoc IOracle"
            },
            "functionSelector": "a803b59d",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "listRequests",
            "nameLocation": "8624:12:54",
            "parameters": {
              "id": 41691,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41688,
                  "mutability": "mutable",
                  "name": "_startFrom",
                  "nameLocation": "8645:10:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41706,
                  "src": "8637:18:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 41687,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8637:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 41690,
                  "mutability": "mutable",
                  "name": "_amount",
                  "nameLocation": "8665:7:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41706,
                  "src": "8657:15:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 41689,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8657:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8636:37:54"
            },
            "returnParameters": {
              "id": 41696,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41695,
                  "mutability": "mutable",
                  "name": "_list",
                  "nameLocation": "8726:5:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41706,
                  "src": "8697:34:54",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_FullRequest_$2020_memory_ptr_$dyn_memory_ptr",
                    "typeString": "struct IOracle.FullRequest[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 41693,
                      "nodeType": "UserDefinedTypeName",
                      "pathNode": {
                        "id": 41692,
                        "name": "IOracle.FullRequest",
                        "nameLocations": [
                          "8697:7:54",
                          "8705:11:54"
                        ],
                        "nodeType": "IdentifierPath",
                        "referencedDeclaration": 2020,
                        "src": "8697:19:54"
                      },
                      "referencedDeclaration": 2020,
                      "src": "8697:19:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_FullRequest_$2020_storage_ptr",
                        "typeString": "struct IOracle.FullRequest"
                      }
                    },
                    "id": 41694,
                    "nodeType": "ArrayTypeName",
                    "src": "8697:21:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_FullRequest_$2020_storage_$dyn_storage_ptr",
                      "typeString": "struct IOracle.FullRequest[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8696:36:54"
            },
            "scope": 41875,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 41726,
            "nodeType": "FunctionDefinition",
            "src": "8822:175:54",
            "nodes": [],
            "body": {
              "id": 41725,
              "nodeType": "Block",
              "src": "8933:64:54",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "id": 41723,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 41717,
                      "name": "_list",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41715,
                      "src": "8939:5:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                        "typeString": "bytes32[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 41720,
                          "name": "_startFrom",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 41709,
                          "src": "8969:10:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "id": 41721,
                          "name": "_batchSize",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 41711,
                          "src": "8981:10:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "id": 41718,
                          "name": "ORACLE",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10,
                          "src": "8947:6:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IOracle_$2282",
                            "typeString": "contract IOracle"
                          }
                        },
                        "id": 41719,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "8954:14:54",
                        "memberName": "listRequestIds",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2109,
                        "src": "8947:21:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_uint256_$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                          "typeString": "function (uint256,uint256) view external returns (bytes32[] memory)"
                        }
                      },
                      "id": 41722,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8947:45:54",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                        "typeString": "bytes32[] memory"
                      }
                    },
                    "src": "8939:53:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                      "typeString": "bytes32[] memory"
                    }
                  },
                  "id": 41724,
                  "nodeType": "ExpressionStatement",
                  "src": "8939:53:54"
                }
              ]
            },
            "baseFunctions": [
              2109
            ],
            "documentation": {
              "id": 41707,
              "nodeType": "StructuredDocumentation",
              "src": "8796:23:54",
              "text": "@inheritdoc IOracle"
            },
            "functionSelector": "b670e144",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "listRequestIds",
            "nameLocation": "8831:14:54",
            "parameters": {
              "id": 41712,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41709,
                  "mutability": "mutable",
                  "name": "_startFrom",
                  "nameLocation": "8854:10:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41726,
                  "src": "8846:18:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 41708,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8846:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 41711,
                  "mutability": "mutable",
                  "name": "_batchSize",
                  "nameLocation": "8874:10:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41726,
                  "src": "8866:18:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 41710,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8866:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8845:40:54"
            },
            "returnParameters": {
              "id": 41716,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41715,
                  "mutability": "mutable",
                  "name": "_list",
                  "nameLocation": "8926:5:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41726,
                  "src": "8909:22:54",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 41713,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "8909:7:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 41714,
                    "nodeType": "ArrayTypeName",
                    "src": "8909:9:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8908:24:54"
            },
            "scope": 41875,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 41745,
            "nodeType": "FunctionDefinition",
            "src": "9027:163:54",
            "nodes": [],
            "body": {
              "id": 41744,
              "nodeType": "Block",
              "src": "9130:60:54",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 41740,
                        "name": "_requestId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 41729,
                        "src": "9152:10:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 41741,
                        "name": "_finalizedResponseId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 41731,
                        "src": "9164:20:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "id": 41737,
                        "name": "ORACLE",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10,
                        "src": "9136:6:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IOracle_$2282",
                          "typeString": "contract IOracle"
                        }
                      },
                      "id": 41739,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "9143:8:54",
                      "memberName": "finalize",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2275,
                      "src": "9136:15:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32,bytes32) external"
                      }
                    },
                    "id": 41742,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9136:49:54",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 41743,
                  "nodeType": "ExpressionStatement",
                  "src": "9136:49:54"
                }
              ]
            },
            "baseFunctions": [
              2275
            ],
            "documentation": {
              "id": 41727,
              "nodeType": "StructuredDocumentation",
              "src": "9001:23:54",
              "text": "@inheritdoc IOracle"
            },
            "functionSelector": "c65ff8f2",
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 41734,
                    "name": "_requestId",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 41729,
                    "src": "9118:10:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 41735,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 41733,
                  "name": "onlySubmodule",
                  "nameLocations": [
                    "9104:13:54"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 40997,
                  "src": "9104:13:54"
                },
                "nodeType": "ModifierInvocation",
                "src": "9104:25:54"
              }
            ],
            "name": "finalize",
            "nameLocation": "9036:8:54",
            "parameters": {
              "id": 41732,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41729,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "9053:10:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41745,
                  "src": "9045:18:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 41728,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9045:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 41731,
                  "mutability": "mutable",
                  "name": "_finalizedResponseId",
                  "nameLocation": "9073:20:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41745,
                  "src": "9065:28:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 41730,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9065:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9044:50:54"
            },
            "returnParameters": {
              "id": 41736,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9130:0:54"
            },
            "scope": 41875,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 41761,
            "nodeType": "FunctionDefinition",
            "src": "9220:111:54",
            "nodes": [],
            "body": {
              "id": 41760,
              "nodeType": "Block",
              "src": "9293:38:54",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 41757,
                        "name": "_requestId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 41748,
                        "src": "9315:10:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "id": 41754,
                        "name": "ORACLE",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10,
                        "src": "9299:6:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IOracle_$2282",
                          "typeString": "contract IOracle"
                        }
                      },
                      "id": 41756,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "9306:8:54",
                      "memberName": "finalize",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2281,
                      "src": "9299:15:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32) external"
                      }
                    },
                    "id": 41758,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9299:27:54",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 41759,
                  "nodeType": "ExpressionStatement",
                  "src": "9299:27:54"
                }
              ]
            },
            "baseFunctions": [
              2281
            ],
            "documentation": {
              "id": 41746,
              "nodeType": "StructuredDocumentation",
              "src": "9194:23:54",
              "text": "@inheritdoc IOracle"
            },
            "functionSelector": "92584d80",
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 41751,
                    "name": "_requestId",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 41748,
                    "src": "9281:10:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 41752,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 41750,
                  "name": "onlySubmodule",
                  "nameLocations": [
                    "9267:13:54"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 40997,
                  "src": "9267:13:54"
                },
                "nodeType": "ModifierInvocation",
                "src": "9267:25:54"
              }
            ],
            "name": "finalize",
            "nameLocation": "9229:8:54",
            "parameters": {
              "id": 41749,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41748,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "9246:10:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41761,
                  "src": "9238:18:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 41747,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9238:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9237:20:54"
            },
            "returnParameters": {
              "id": 41753,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9293:0:54"
            },
            "scope": 41875,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 41779,
            "nodeType": "FunctionDefinition",
            "src": "9361:146:54",
            "nodes": [],
            "body": {
              "id": 41778,
              "nodeType": "Block",
              "src": "9462:45:54",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 41775,
                        "name": "_disputeId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 41764,
                        "src": "9491:10:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "id": 41772,
                        "name": "ORACLE",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10,
                        "src": "9468:6:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IOracle_$2282",
                          "typeString": "contract IOracle"
                        }
                      },
                      "id": 41774,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "9475:15:54",
                      "memberName": "escalateDispute",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2206,
                      "src": "9468:22:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32) external"
                      }
                    },
                    "id": 41776,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9468:34:54",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 41777,
                  "nodeType": "ExpressionStatement",
                  "src": "9468:34:54"
                }
              ]
            },
            "baseFunctions": [
              2206
            ],
            "documentation": {
              "id": 41762,
              "nodeType": "StructuredDocumentation",
              "src": "9335:23:54",
              "text": "@inheritdoc IOracle"
            },
            "functionSelector": "b2d83645",
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "baseExpression": {
                      "id": 41767,
                      "name": "requestIdForDispute",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 40956,
                      "src": "9429:19:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                        "typeString": "mapping(bytes32 => bytes32)"
                      }
                    },
                    "id": 41769,
                    "indexExpression": {
                      "id": 41768,
                      "name": "_disputeId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41764,
                      "src": "9449:10:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "9429:31:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 41770,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 41766,
                  "name": "onlySubmodule",
                  "nameLocations": [
                    "9415:13:54"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 40997,
                  "src": "9415:13:54"
                },
                "nodeType": "ModifierInvocation",
                "src": "9415:46:54"
              }
            ],
            "name": "escalateDispute",
            "nameLocation": "9370:15:54",
            "parameters": {
              "id": 41765,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41764,
                  "mutability": "mutable",
                  "name": "_disputeId",
                  "nameLocation": "9394:10:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41779,
                  "src": "9386:18:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 41763,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9386:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9385:20:54"
            },
            "returnParameters": {
              "id": 41771,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9462:0:54"
            },
            "scope": 41875,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 41792,
            "nodeType": "FunctionDefinition",
            "src": "9537:114:54",
            "nodes": [],
            "body": {
              "id": 41791,
              "nodeType": "Block",
              "src": "9605:46:54",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "id": 41789,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 41785,
                      "name": "_count",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41783,
                      "src": "9611:6:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 41786,
                          "name": "ORACLE",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10,
                          "src": "9620:6:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IOracle_$2282",
                            "typeString": "contract IOracle"
                          }
                        },
                        "id": 41787,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "9627:17:54",
                        "memberName": "totalRequestCount",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2066,
                        "src": "9620:24:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                          "typeString": "function () view external returns (uint256)"
                        }
                      },
                      "id": 41788,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9620:26:54",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "9611:35:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 41790,
                  "nodeType": "ExpressionStatement",
                  "src": "9611:35:54"
                }
              ]
            },
            "baseFunctions": [
              2066
            ],
            "documentation": {
              "id": 41780,
              "nodeType": "StructuredDocumentation",
              "src": "9511:23:54",
              "text": "@inheritdoc IOracle"
            },
            "functionSelector": "3261bb3f",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "totalRequestCount",
            "nameLocation": "9546:17:54",
            "parameters": {
              "id": 41781,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9563:2:54"
            },
            "returnParameters": {
              "id": 41784,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41783,
                  "mutability": "mutable",
                  "name": "_count",
                  "nameLocation": "9597:6:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 41792,
                  "src": "9589:14:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 41782,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9589:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9588:16:54"
            },
            "scope": 41875,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 41805,
            "nodeType": "FunctionDefinition",
            "src": "9926:143:54",
            "nodes": [],
            "body": {
              "id": 41804,
              "nodeType": "Block",
              "src": "10008:61:54",
              "nodes": [],
              "statements": [
                {
                  "errorCall": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 41801,
                      "name": "SequentialResolutionModule_NotImplemented",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 44012,
                      "src": "10021:41:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_error_pure$__$returns$__$",
                        "typeString": "function () pure"
                      }
                    },
                    "id": 41802,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10021:43:54",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 41803,
                  "nodeType": "RevertStatement",
                  "src": "10014:50:54"
                }
              ]
            },
            "baseFunctions": [
              2075
            ],
            "documentation": {
              "id": 41793,
              "nodeType": "StructuredDocumentation",
              "src": "9900:23:54",
              "text": "@inheritdoc IOracle"
            },
            "functionSelector": "59e318aa",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "createRequest",
            "nameLocation": "9935:13:54",
            "parameters": {
              "id": 41797,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41796,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 41805,
                  "src": "9949:25:54",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_NewRequest_$1982_memory_ptr",
                    "typeString": "struct IOracle.NewRequest"
                  },
                  "typeName": {
                    "id": 41795,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 41794,
                      "name": "IOracle.NewRequest",
                      "nameLocations": [
                        "9949:7:54",
                        "9957:10:54"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 1982,
                      "src": "9949:18:54"
                    },
                    "referencedDeclaration": 1982,
                    "src": "9949:18:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_NewRequest_$1982_storage_ptr",
                      "typeString": "struct IOracle.NewRequest"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9948:27:54"
            },
            "returnParameters": {
              "id": 41800,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41799,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 41805,
                  "src": "9999:7:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 41798,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9999:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9998:9:54"
            },
            "scope": 41875,
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 41820,
            "nodeType": "FunctionDefinition",
            "src": "10099:157:54",
            "nodes": [],
            "body": {
              "id": 41819,
              "nodeType": "Block",
              "src": "10195:61:54",
              "nodes": [],
              "statements": [
                {
                  "errorCall": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 41816,
                      "name": "SequentialResolutionModule_NotImplemented",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 44012,
                      "src": "10208:41:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_error_pure$__$returns$__$",
                        "typeString": "function () pure"
                      }
                    },
                    "id": 41817,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10208:43:54",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 41818,
                  "nodeType": "RevertStatement",
                  "src": "10201:50:54"
                }
              ]
            },
            "baseFunctions": [
              2086
            ],
            "documentation": {
              "id": 41806,
              "nodeType": "StructuredDocumentation",
              "src": "10073:23:54",
              "text": "@inheritdoc IOracle"
            },
            "functionSelector": "49c7741e",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "createRequests",
            "nameLocation": "10108:14:54",
            "parameters": {
              "id": 41811,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41810,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 41820,
                  "src": "10123:29:54",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_NewRequest_$1982_calldata_ptr_$dyn_calldata_ptr",
                    "typeString": "struct IOracle.NewRequest[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 41808,
                      "nodeType": "UserDefinedTypeName",
                      "pathNode": {
                        "id": 41807,
                        "name": "IOracle.NewRequest",
                        "nameLocations": [
                          "10123:7:54",
                          "10131:10:54"
                        ],
                        "nodeType": "IdentifierPath",
                        "referencedDeclaration": 1982,
                        "src": "10123:18:54"
                      },
                      "referencedDeclaration": 1982,
                      "src": "10123:18:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_NewRequest_$1982_storage_ptr",
                        "typeString": "struct IOracle.NewRequest"
                      }
                    },
                    "id": 41809,
                    "nodeType": "ArrayTypeName",
                    "src": "10123:20:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_NewRequest_$1982_storage_$dyn_storage_ptr",
                      "typeString": "struct IOracle.NewRequest[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10122:31:54"
            },
            "returnParameters": {
              "id": 41815,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41814,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 41820,
                  "src": "10177:16:54",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 41812,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "10177:7:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 41813,
                    "nodeType": "ArrayTypeName",
                    "src": "10177:9:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10176:18:54"
            },
            "scope": 41875,
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 41834,
            "nodeType": "FunctionDefinition",
            "src": "10286:136:54",
            "nodes": [],
            "body": {
              "id": 41833,
              "nodeType": "Block",
              "src": "10361:61:54",
              "nodes": [],
              "statements": [
                {
                  "errorCall": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 41830,
                      "name": "SequentialResolutionModule_NotImplemented",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 44012,
                      "src": "10374:41:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_error_pure$__$returns$__$",
                        "typeString": "function () pure"
                      }
                    },
                    "id": 41831,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10374:43:54",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 41832,
                  "nodeType": "RevertStatement",
                  "src": "10367:50:54"
                }
              ]
            },
            "baseFunctions": [
              2200
            ],
            "documentation": {
              "id": 41821,
              "nodeType": "StructuredDocumentation",
              "src": "10260:23:54",
              "text": "@inheritdoc IOracle"
            },
            "functionSelector": "548a4884",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "disputeResponse",
            "nameLocation": "10295:15:54",
            "parameters": {
              "id": 41826,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41823,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 41834,
                  "src": "10311:7:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 41822,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10311:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 41825,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 41834,
                  "src": "10320:7:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 41824,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10320:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10310:18:54"
            },
            "returnParameters": {
              "id": 41829,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41828,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 41834,
                  "src": "10352:7:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 41827,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10352:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10351:9:54"
            },
            "scope": 41875,
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 41848,
            "nodeType": "FunctionDefinition",
            "src": "10452:143:54",
            "nodes": [],
            "body": {
              "id": 41847,
              "nodeType": "Block",
              "src": "10534:61:54",
              "nodes": [],
              "statements": [
                {
                  "errorCall": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 41844,
                      "name": "SequentialResolutionModule_NotImplemented",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 44012,
                      "src": "10547:41:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_error_pure$__$returns$__$",
                        "typeString": "function () pure"
                      }
                    },
                    "id": 41845,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10547:43:54",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 41846,
                  "nodeType": "RevertStatement",
                  "src": "10540:50:54"
                }
              ]
            },
            "baseFunctions": [
              2172
            ],
            "documentation": {
              "id": 41835,
              "nodeType": "StructuredDocumentation",
              "src": "10426:23:54",
              "text": "@inheritdoc IOracle"
            },
            "functionSelector": "b06303f2",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "proposeResponse",
            "nameLocation": "10461:15:54",
            "parameters": {
              "id": 41840,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41837,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 41848,
                  "src": "10477:7:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 41836,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10477:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 41839,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 41848,
                  "src": "10486:14:54",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 41838,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "10486:5:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10476:25:54"
            },
            "returnParameters": {
              "id": 41843,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41842,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 41848,
                  "src": "10525:7:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 41841,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10525:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10524:9:54"
            },
            "scope": 41875,
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 41864,
            "nodeType": "FunctionDefinition",
            "src": "10625:152:54",
            "nodes": [],
            "body": {
              "id": 41863,
              "nodeType": "Block",
              "src": "10716:61:54",
              "nodes": [],
              "statements": [
                {
                  "errorCall": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 41860,
                      "name": "SequentialResolutionModule_NotImplemented",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 44012,
                      "src": "10729:41:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_error_pure$__$returns$__$",
                        "typeString": "function () pure"
                      }
                    },
                    "id": 41861,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10729:43:54",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 41862,
                  "nodeType": "RevertStatement",
                  "src": "10722:50:54"
                }
              ]
            },
            "baseFunctions": [
              2184
            ],
            "documentation": {
              "id": 41849,
              "nodeType": "StructuredDocumentation",
              "src": "10599:23:54",
              "text": "@inheritdoc IOracle"
            },
            "functionSelector": "92b0382f",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "proposeResponse",
            "nameLocation": "10634:15:54",
            "parameters": {
              "id": 41856,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41851,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 41864,
                  "src": "10650:7:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 41850,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "10650:7:54",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 41853,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 41864,
                  "src": "10659:7:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 41852,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10659:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 41855,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 41864,
                  "src": "10668:14:54",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 41854,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "10668:5:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10649:34:54"
            },
            "returnParameters": {
              "id": 41859,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41858,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 41864,
                  "src": "10707:7:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 41857,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10707:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10706:9:54"
            },
            "scope": 41875,
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 41874,
            "nodeType": "FunctionDefinition",
            "src": "10807:108:54",
            "nodes": [],
            "body": {
              "id": 41873,
              "nodeType": "Block",
              "src": "10854:61:54",
              "nodes": [],
              "statements": [
                {
                  "errorCall": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 41870,
                      "name": "SequentialResolutionModule_NotImplemented",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 44012,
                      "src": "10867:41:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_error_pure$__$returns$__$",
                        "typeString": "function () pure"
                      }
                    },
                    "id": 41871,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10867:43:54",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 41872,
                  "nodeType": "RevertStatement",
                  "src": "10860:50:54"
                }
              ]
            },
            "baseFunctions": [
              2190
            ],
            "documentation": {
              "id": 41865,
              "nodeType": "StructuredDocumentation",
              "src": "10781:23:54",
              "text": "@inheritdoc IOracle"
            },
            "functionSelector": "ffc84d69",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "deleteResponse",
            "nameLocation": "10816:14:54",
            "parameters": {
              "id": 41868,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41867,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 41874,
                  "src": "10831:7:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 41866,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10831:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10830:9:54"
            },
            "returnParameters": {
              "id": 41869,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "10854:0:54"
            },
            "scope": 41875,
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 40939,
              "name": "Module",
              "nameLocations": [
                "752:6:54"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 98,
              "src": "752:6:54"
            },
            "id": 40940,
            "nodeType": "InheritanceSpecifier",
            "src": "752:6:54"
          },
          {
            "baseName": {
              "id": 40941,
              "name": "ISequentialResolutionModule",
              "nameLocations": [
                "760:27:54"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 44097,
              "src": "760:27:54"
            },
            "id": 40942,
            "nodeType": "InheritanceSpecifier",
            "src": "760:27:54"
          }
        ],
        "canonicalName": "SequentialResolutionModule",
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": {
          "id": 40938,
          "nodeType": "StructuredDocumentation",
          "src": "534:178:54",
          "text": " @notice Module that leverages multiple resolution modules to obtain an answer\n @dev The next resolution is started if the current resolution module returns no answer"
        },
        "fullyImplemented": true,
        "linearizedBaseContracts": [
          41875,
          44097,
          2399,
          98,
          1782,
          2282
        ],
        "name": "SequentialResolutionModule",
        "nameLocation": "722:26:54",
        "scope": 41876,
        "usedErrors": [
          1745,
          1863,
          1868,
          1873,
          1878,
          1883,
          1888,
          1893,
          1898,
          1903,
          1908,
          1913,
          1918,
          1925,
          1928,
          44009,
          44012,
          44017
        ]
      }
    ],
    "license": "MIT"
  },
  "id": 54
}