```\nfunction simulateHandleOp(UserOperation calldata op, address target, bytes calldata targetCallData) external override {\n\n    UserOpInfo memory opInfo;\n    _simulationOnlyValidations(op);\n    (uint256 validationData, uint256 paymasterValidationData) = _validatePrepayment(0, op, opInfo);\n    ValidationData memory data = _intersectTimeRange(validationData, paymasterValidationData);\n\n    numberMarker();\n    uint256 paid = _executeUserOp(0, op, opInfo);\n    numberMarker();\n    bool targetSuccess;\n    bytes memory targetResult;\n    if (target != address(0)) {\n        (targetSuccess, targetResult) = target.call(targetCallData);\n    }\n    revert ExecutionResult(opInfo.preOpGas, paid, data.validAfter, data.validUntil, targetSuccess, targetResult);\n}\n```\n