# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: grr_response_proto/flows.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from grr_response_proto import jobs_pb2 as grr__response__proto_dot_jobs__pb2
from grr_response_proto import knowledge_base_pb2 as grr__response__proto_dot_knowledge__base__pb2
from grr_response_proto import objects_pb2 as grr__response__proto_dot_objects__pb2
from grr_response_proto import output_plugin_pb2 as grr__response__proto_dot_output__plugin__pb2
from grr_response_proto import semantic_pb2 as grr__response__proto_dot_semantic__pb2
from grr_response_proto import sysinfo_pb2 as grr__response__proto_dot_sysinfo__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
  name='grr_response_proto/flows.proto',
  package='',
  syntax='proto2',
  serialized_pb=_b('\n\x1egrr_response_proto/flows.proto\x1a\x1dgrr_response_proto/jobs.proto\x1a\'grr_response_proto/knowledge_base.proto\x1a grr_response_proto/objects.proto\x1a&grr_response_proto/output_plugin.proto\x1a!grr_response_proto/semantic.proto\x1a grr_response_proto/sysinfo.proto\"\xf1\x02\n\x14\x43loudMetadataRequest\x12\x1a\n\x12\x62ios_version_regex\x18\x01 \x01(\t\x12\x1a\n\x12service_name_regex\x18\x02 \x01(\t\x12\x12\n\x07timeout\x18\x03 \x01(\x02:\x01\x31\x12\x0b\n\x03url\x18\x04 \x01(\t\x12\x16\n\x07headers\x18\x05 \x01(\x0b\x32\x05.Dict\x12\x90\x01\n\x05label\x18\x06 \x01(\tB\x80\x01\xe2\xfc\xe3\xc4\x01z\x12xLabel to apply to the CloudMetadataResponse result. If unset, the URL is used as the label in the CloudMetadataResponse.\x12U\n\rinstance_type\x18\x07 \x01(\x0e\x32\x1b.CloudInstance.InstanceType:\x05UNSETB\x1a\xe2\xfc\xe3\xc4\x01\x14\x12\x12\x41MAZON/GOOGLE etc.\"@\n\x15\x43loudMetadataRequests\x12\'\n\x08requests\x18\x02 \x03(\x0b\x32\x15.CloudMetadataRequest\"4\n\x15\x43loudMetadataResponse\x12\r\n\x05label\x18\x01 \x01(\t\x12\x0c\n\x04text\x18\x02 \x01(\t\"~\n\x16\x43loudMetadataResponses\x12)\n\tresponses\x18\x01 \x03(\x0b\x32\x16.CloudMetadataResponse\x12\x39\n\rinstance_type\x18\x02 \x01(\x0e\x32\x1b.CloudInstance.InstanceType:\x05UNSET\"\x99\x04\n\x0b\x46lowContext\x12\x11\n\tbacktrace\x18\x01 \x01(\t\x12*\n\x10\x63lient_resources\x18\x02 \x01(\x0b\x32\x10.ClientResources\x12(\n\x0b\x63reate_time\x18\x03 \x01(\x04\x42\x13\xe2\xfc\xe3\xc4\x01\r\n\x0bRDFDatetime\x12\x0f\n\x07\x63reator\x18\x04 \x01(\t\x12\x15\n\rcurrent_state\x18\x05 \x01(\t\x12+\n\x0ekill_timestamp\x18\x06 \x01(\x04\x42\x13\xe2\xfc\xe3\xc4\x01\r\n\x0bRDFDatetime\x12\x1a\n\x12network_bytes_sent\x18\x07 \x01(\x04\x12\x1b\n\x10next_outbound_id\x18\x08 \x01(\x04:\x01\x31\x12!\n\x16next_processed_request\x18\t \x01(\x04:\x01\x31\x12\x31\n\x15output_plugins_states\x18\n \x03(\x0b\x32\x12.OutputPluginState\x12\x1c\n\x14outstanding_requests\x18\x0b \x01(\x04\x12%\n\nsession_id\x18\r \x01(\tB\x11\xe2\xfc\xe3\xc4\x01\x0b\n\tSessionID\x12!\n\x05state\x18\x0e \x01(\x0e\x32\x12.FlowContext.State\x12\x0e\n\x06status\x18\x0f \x01(\t\"?\n\x05State\x12\x0b\n\x07RUNNING\x10\x00\x12\x0e\n\nTERMINATED\x10\x01\x12\t\n\x05\x45RROR\x10\x03\x12\x0e\n\nWELL_KNOWN\x10\x02J\x04\x08\x10\x10\x11\"\x9a\x04\n\x0bHuntContext\x12*\n\x10\x63lient_resources\x18\x01 \x01(\x0b\x32\x10.ClientResources\x12(\n\x0b\x63reate_time\x18\x02 \x01(\x04\x42\x13\xe2\xfc\xe3\xc4\x01\r\n\x0bRDFDatetime\x12\x0f\n\x07\x63reator\x18\x03 \x01(\t\x12$\n\x07\x65xpires\x18\x04 \x01(\x04\x42\x13\xe2\xfc\xe3\xc4\x01\r\n\x0bRDFDatetime\x12\x1a\n\x12network_bytes_sent\x18\x05 \x01(\x04\x12,\n\x0fnext_client_due\x18\x06 \x01(\x04\x42\x13\xe2\xfc\xe3\xc4\x01\r\n\x0bRDFDatetime\x12\x1b\n\x10next_outbound_id\x18\x07 \x01(\x04:\x01\x31\x12!\n\x16next_processed_request\x18\x08 \x01(\x04:\x01\x31\x12%\n\nsession_id\x18\n \x01(\tB\x11\xe2\xfc\xe3\xc4\x01\x0b\n\tSessionID\x12\'\n\nstart_time\x18\x0b \x01(\x04\x42\x13\xe2\xfc\xe3\xc4\x01\r\n\x0bRDFDatetime\x12*\n\x0busage_stats\x18\x0c \x01(\x0b\x32\x15.ClientResourcesStats\x12\"\n\x1a\x63lients_with_results_count\x18\r \x01(\x04\x12\x15\n\rresults_count\x18\x0e \x01(\x04\x12\x1f\n\x17\x63ompleted_clients_count\x18\x0f \x01(\x04\x12\x1c\n\x14\x63lients_queued_count\x18\x10 \x01(\x04\"\xc4\x01\n\x08\x41\x43LToken\x12\x10\n\x08username\x18\x01 \x01(\t\x12\x0e\n\x06reason\x18\x02 \x01(\t\x12\x18\n\x10requested_access\x18\x03 \x01(\t\x12\x41\n\x06\x65xpiry\x18\x05 \x01(\x04\x42\x31\xe2\xfc\xe3\xc4\x01+\n\x0bRDFDatetime\x12\x1cWhen does this token expire?\x12\x12\n\nsource_ips\x18\x06 \x03(\t\x12\x0f\n\x07process\x18\x07 \x01(\t\x12\x14\n\x0cis_emergency\x18\x08 \x01(\x08\"\xfb\x01\n\x17\x46lowLikeObjectReference\x12\x38\n\x0bobject_type\x18\x01 \x01(\x0e\x32#.FlowLikeObjectReference.ObjectType\x12&\n\x0e\x66low_reference\x18\x02 \x01(\x0b\x32\x0e.FlowReference\x12&\n\x0ehunt_reference\x18\x03 \x01(\x0b\x32\x0e.HuntReference\"A\n\nObjectType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x12\n\x0e\x46LOW_REFERENCE\x10\x01\x12\x12\n\x0eHUNT_REFERENCE\x10\x02:\x13\xda\xfc\xe3\xc4\x01\r\x12\x0bobject_type\"\x92\x0f\n\x0e\x46lowRunnerArgs\x12\x63\n\x08priority\x18\x01 \x01(\x0e\x32\x14.GrrMessage.Priority:\x0fMEDIUM_PRIORITYB*\xe2\xfc\xe3\xc4\x01$\x12 The priority used for this flow.\x18\x01\x12k\n\x0enotify_to_user\x18\x02 \x01(\x08:\x04trueBM\xe2\xfc\xe3\xc4\x01G\x12/Should a notification be sent to the initiator.\"\x14Notify at Completion\x12g\n\x0csend_replies\x18\x03 \x01(\x08:\x04trueBK\xe2\xfc\xe3\xc4\x01\x45\x12\x33Should send replies back to the parent flow or not.\x18\x02\"\x0cSend Replies\x12L\n\tclient_id\x18\x05 \x01(\tB9\xe2\xfc\xe3\xc4\x01\x33\n\tClientURN\x12$The client id this flow operates on.\x18\x02\x12\x42\n\x05queue\x18\x06 \x01(\t:\x01\x46\x42\x30\xe2\xfc\xe3\xc4\x01*\n\x06RDFURN\x12\x1eThe queue to use for the flow.\x18\x02\x12H\n\x08\x65vent_id\x18\x07 \x01(\tB6\xe2\xfc\xe3\xc4\x01\x30\x12,A logging event id for issuing further logs.\x18\x02\x12W\n\tcpu_limit\x18\t \x01(\x04:\x04\x37\x32\x30\x30\x42>\xe2\xfc\xe3\xc4\x01\x38\x12\x34\x41 limit on the client cpu seconds used by this flow.\x18\x01\x12V\n\x13network_bytes_limit\x18\r \x01(\x04\x42\x39\xe2\xfc\xe3\xc4\x01\x33\x12/A limit on the total traffic used by this flow.\x18\x01\x12U\n\rrequest_state\x18\n \x01(\x0b\x32\r.RequestStateB/\xe2\xfc\xe3\xc4\x01)\x12%The request state of the parent flow.\x18\x02\x12P\n\tflow_name\x18\x0b \x01(\tB=\xe2\xfc\xe3\xc4\x01\x37\x12\x33The name of the class implementing the flow to run.\x18\x02\x12l\n\x0f\x62\x61se_session_id\x18\x0c \x01(\tBS\xe2\xfc\xe3\xc4\x01M\n\x06RDFURN\x12\x41The session id for the flow runner. If not specified we make one.\x18\x02\x12~\n\nstart_time\x18\x0f \x01(\x04\x42j\xe2\xfc\xe3\xc4\x01\x64\n\x0bRDFDatetime\x12SDo not process this flow until this time. (Implies the flow is run asyncronously.).\x18\x01\x12Z\n\x13logs_collection_urn\x18\x11 \x01(\tB=\xe2\xfc\xe3\xc4\x01\x37\n\x06RDFURN\x12+The logs collection to log to for the flow.\x18\x02\x12\x9e\x01\n\x1awrite_intermediate_results\x18\x12 \x01(\x08:\x05\x66\x61lseBs\xe2\xfc\xe3\xc4\x01m\x12iIf true, all child flow results received with sendreply will be written to the flow\'s default collection.\x18\x01\x12\xdb\x01\n\x10require_fastpoll\x18\x13 \x01(\x08:\x04trueB\xba\x01\xe2\xfc\xe3\xc4\x01\xb3\x01\x12\xae\x01This value is passed to the client during CallClient, and by default will cause the client to enter fastpoll afterprocessing the message. Users shouldn\'t modify this setting.\x18\x01\x12\xbf\x01\n\x0eoutput_plugins\x18\x15 \x03(\x0b\x32\x17.OutputPluginDescriptorB\x8d\x01\xe2\xfc\xe3\xc4\x01\x86\x01\x12rOutput plugins used for this flow. These plugins will be applied to flow results as soon as the flow is completed.\x18\x02\"\x0eOutput Plugins\x12\x83\x01\n\roriginal_flow\x18\x16 \x01(\x0b\x32\x0e.FlowReferenceB\\\xe2\xfc\xe3\xc4\x01V\x12RIf this flow is a copy of another flow, we store a reference to the original here.\x18\x02\"\xb3\x18\n\x0eHuntRunnerArgs\x12N\n\thunt_name\x18\x01 \x01(\tB;\xe2\xfc\xe3\xc4\x01\x35\x12\x33The name of the class implementing the hunt to run.\x12:\n\x0b\x64\x65scription\x18\x02 \x01(\tB%\xe2\xfc\xe3\xc4\x01\x1f\x12\x1dThe description of this hunt.\x12U\n\x0f\x63lient_rule_set\x18\x12 \x01(\x0b\x32\x15.ForemanClientRuleSetB%\xe2\xfc\xe3\xc4\x01\x1f\x12\x1dRules that trigger this hunt.\x12\x63\n\x08priority\x18\x05 \x01(\x0e\x32\x14.GrrMessage.Priority:\x0fMEDIUM_PRIORITYB*\xe2\xfc\xe3\xc4\x01$\x12 The priority used for this flow.\x18\x01\x12\x42\n\x05queue\x18\x07 \x01(\t:\x01HB0\xe2\xfc\xe3\xc4\x01*\n\x06RDFURN\x12\x1eThe queue to use for the hunt.\x18\x02\x12j\n\tcpu_limit\x18\t \x01(\x04\x42W\xe2\xfc\xe3\xc4\x01Q\x12=An overall limit on the client cpu seconds used by this hunt.\x18\x01\"\x0eHunt CPU Limit\x12{\n\x13network_bytes_limit\x18\r \x01(\x04\x42^\xe2\xfc\xe3\xc4\x01X\x12\x38\x41n overall limit on the total traffic used by this hunt.\x18\x01\"\x1aHunt Network Limit (bytes)\x12\xe0\x02\n\x0c\x63lient_limit\x18\n \x01(\x04:\x03\x31\x30\x30\x42\xc4\x02\xe2\xfc\xe3\xc4\x01\xbd\x02\x12\xac\x02Maximum number of clients participating in the hunt. Best practice is for all hunts to use a limit to start with and remove it only when client impact has been assessed by looking at hunt stats. Note that this limit can be overshot by a small number of clients if there are multiple workers running. \"\x0c\x43lient Limit\x12\x87\x01\n\x0b\x63rash_limit\x18\x19 \x01(\x04\x42r\xe2\xfc\xe3\xc4\x01l\x12]Maximum number of clients that are allowed to crash before the hunt is automatically stopped.\"\x0b\x43rash Limit\x12\x94\x02\n\x1c\x61vg_results_per_client_limit\x18\x1b \x01(\x04\x42\xed\x01\xe2\xfc\xe3\xc4\x01\xe6\x01\x12\xbf\x01If the average number of results per client becomes greater than this limit, the hunt will be automatically stopped. The average is calculated only after 1000 clients report back to the hunt.\x18\x01\" Average Results-per-Client Limit\x12\xa4\x02\n avg_cpu_seconds_per_client_limit\x18\x1c \x01(\x04\x42\xf9\x01\xe2\xfc\xe3\xc4\x01\xf2\x01\x12\xbf\x01If the average CPU usage seconds per client becomes greater than this limit, the hunt will be automatically stopped. The average is calculated only after 1000 clients report back to the hunt.\x18\x01\",Average CPU-Usage-per-Client Limit (seconds)\x12\xa4\x02\n\"avg_network_bytes_per_client_limit\x18\x1d \x01(\x04\x42\xf7\x01\xe2\xfc\xe3\xc4\x01\xf0\x01\x12\xbb\x01If the average network usage per client becomes greater than this limit, the hunt will be automatically stopped. The average is calculated only after 1000 clients report back to the hunt.\x18\x01\".Average Network-Usage-per-Client Limit (bytes)\x12V\n\x0b\x65xpiry_time\x18\x0b \x01(\x04:\x07\x31\x32\x30\x39\x36\x30\x30\x42\x38\xe2\xfc\xe3\xc4\x01\x32\n\x08\x44uration\x12\x19\x45xpiry time for the hunt.\"\x0b\x45xpiry Time\x12\x91\x01\n\x0b\x63lient_rate\x18\x0c \x01(\x02:\x04\x32\x30.5Bv\xe2\xfc\xe3\xc4\x01p\x12nThe maximum number of clients to engage per minute. A rate of 0 means to schedule clients as fast as possible.\x12\xa3\x01\n\x11\x61\x64\x64_foreman_rules\x18\x10 \x01(\x08:\x04trueB\x81\x01\xe2\xfc\xe3\xc4\x01{\x12wShould always be true for user-scheduled hunts. Set to false for system-created hunts that use ManuallyScheduleClients.\x18\x02\x12{\n\x11\x63rash_alert_email\x18\x11 \x01(\tB`\xe2\xfc\xe3\xc4\x01Z\x12VAn email address to send mails to when a client crashes during execution of this hunt.\x18\x01\x12\x9c\x01\n\x0eoutput_plugins\x18\x16 \x03(\x0b\x32\x17.OutputPluginDescriptorBk\xe2\xfc\xe3\xc4\x01\x65\x12QOutput plugins used for this hunt. These plugins will be applied to hunt results.\x18\x02\"\x0eOutput Plugins\x12r\n\x14per_client_cpu_limit\x18\x17 \x01(\x04:\x03\x36\x30\x30\x42O\xe2\xfc\xe3\xc4\x01I\x12/A cpu limit imposed on each client in the hunt.\x18\x01\"\x14Per Client CPU Limit\x12\x9d\x01\n\x1eper_client_network_limit_bytes\x18\x18 \x01(\x04:\t100000000Bj\xe2\xfc\xe3\xc4\x01\x64\x12>A network limit (in bytes) imposed on each client in the hunt.\x18\x01\" Per Client Network Limit (bytes)\x12\x97\x01\n\x0foriginal_object\x18\x1a \x01(\x0b\x32\x18.FlowLikeObjectReferenceBd\xe2\xfc\xe3\xc4\x01^\x12ZIf this hunt is a copy of another hunt or flow, we store a reference to the original here.\x18\x02\"W\n\x0eSampleHuntArgs\x12\x45\n\x08\x66ilename\x18\x01 \x01(\t:\r/tmp/evil.txtB$\xe2\xfc\xe3\xc4\x01\x1e\x12\x1c\x65vil filename to search for.\"\xce\x02\n\x0b\x46lowRequest\x12H\n\nclient_ids\x18\x01 \x03(\tB4\xe2\xfc\xe3\xc4\x01.\n\tClientURN\x12!The clients to start the flow on.\x12\xac\x01\n\x04\x61rgs\x18\x05 \x01(\x0c\x42\x9d\x01\xe2\xfc\xe3\xc4\x01\x96\x01\x12\x81\x01\x41rgs to the flow. These depend on the flow_name parameter.It is expected that this field contains an instance of flow\'s arg_type.*\x10GetFlowArgsClass\x12\x46\n\x0brunner_args\x18\x06 \x01(\x0b\x32\x0f.FlowRunnerArgsB \xe2\xfc\xe3\xc4\x01\x1a\x12\x18\x41rgs to the flow runner.\"\xdc\x01\n\x17VariableGenericHuntArgs\x12^\n\x05\x66lows\x18\x01 \x03(\x0b\x32\x0c.FlowRequestBA\xe2\xfc\xe3\xc4\x01;\x12\x39\x41 list of requests for starting flows on certain clients.\x12\x61\n\x0eoutput_plugins\x18\x02 \x03(\x0b\x32\x17.OutputPluginDescriptorB0\xe2\xfc\xe3\xc4\x01*\x12(The output plugins to use for this hunt.\"\xd4\x02\n\x0fGenericHuntArgs\x12\x80\x01\n\tflow_args\x18\x02 \x01(\x0c\x42m\xe2\xfc\xe3\xc4\x01g\x12QArguments to the flow to run. This should be an instance of flow.args_type proto.\x18\x02*\x10GetFlowArgsClass\x12[\n\x10\x66low_runner_args\x18\x03 \x01(\x0b\x32\x0f.FlowRunnerArgsB0\xe2\xfc\xe3\xc4\x01*\x12(The runner args for launching each flow.\x12\x61\n\x0eoutput_plugins\x18\x04 \x03(\x0b\x32\x17.OutputPluginDescriptorB0\xe2\xfc\xe3\xc4\x01*\x12(The output plugins to use for this hunt.\"\x95\x08\n\x0c\x42\x61reGrepSpec\x12\x45\n\x0cstart_offset\x18\x02 \x01(\x04:\x01\x30\x42,\xe2\xfc\xe3\xc4\x01&\x12$Start searching at this file offset.\x12P\n\x06length\x18\x03 \x01(\x04:\x0b\x31\x30\x37\x33\x37\x34\x31\x38\x32\x34\x30\x42\x33\xe2\xfc\xe3\xc4\x01-\x12+How far (in bytes) into the file to search.\x12^\n\x05regex\x18\x04 \x01(\tBO\xe2\xfc\xe3\xc4\x01I\n\x11RegularExpression\x12\x34The regular expression which will be used to search.\x12K\n\x07literal\x18\x05 \x01(\x0c\x42:\xe2\xfc\xe3\xc4\x01\x34\n\x11LiteralExpression\x12\x1fSearch for this literal string.\x12u\n\x04mode\x18\x06 \x01(\x0e\x32\x12.BareGrepSpec.Mode:\x08\x41LL_HITSBI\xe2\xfc\xe3\xc4\x01\x43\x12\x41When should searching stop? Stop after one hit or search for all?\x12K\n\x0c\x62ytes_before\x18\x07 \x01(\r:\x02\x31\x30\x42\x31\xe2\xfc\xe3\xc4\x01+\x12\'Include this many bytes before the hit.\x18\x01\x12I\n\x0b\x62ytes_after\x18\x08 \x01(\r:\x02\x31\x30\x42\x30\xe2\xfc\xe3\xc4\x01*\x12&Include this many bytes after the hit.\x18\x01\x12\xc3\x01\n\nxor_in_key\x18\t \x01(\r:\x02\x33\x37\x42\xaa\x01\xe2\xfc\xe3\xc4\x01\xa3\x01\x12\x9e\x01When searching memory we need to ensure we dont hit on our own process. This allows us to obfuscate the search string in memory to avoid us finding ourselves.\x18\x01\x12\xc4\x01\n\x0bxor_out_key\x18\n \x01(\r:\x02\x35\x37\x42\xaa\x01\xe2\xfc\xe3\xc4\x01\xa3\x01\x12\x9e\x01When searching memory we need to ensure we dont hit on our own process. This allows us to obfuscate the search string in memory to avoid us finding ourselves.\x18\x01\"#\n\x04Mode\x12\x0c\n\x08\x41LL_HITS\x10\x00\x12\r\n\tFIRST_HIT\x10\x01\"^\n\rCAEnrolerArgs\x12M\n\x03\x63sr\x18\x01 \x01(\x0b\x32\x0c.CertificateB2\xe2\xfc\xe3\xc4\x01,\x12*A Certificate RDFValue with the CSR in it.\"\xa4\x02\n\x16\x44\x65leteGRRTempFilesArgs\x12\x89\x02\n\x08pathspec\x18\x01 \x01(\x0b\x32\t.PathSpecB\xeb\x01\xe2\xfc\xe3\xc4\x01\xe4\x01\x12\xe1\x01The pathspec target for deletion.If path is a directory, look in the top level for filenames beginning with Client.tempfile_prefix, and delete them. If path is a regular file and starts with Client.tempfile_prefix, delete it.\"?\n\rUninstallArgs\x12.\n\x04kill\x18\x01 \x01(\x08\x42 \xe2\xfc\xe3\xc4\x01\x1a\x12\x18Kills the client if set.\"[\n\x17UpdateConfigurationArgs\x12@\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\x05.DictB)\xe2\xfc\xe3\xc4\x01#\x12!The config to send to the client.\"\xb0\x01\n\x15\x45xecutePythonHackArgs\x12_\n\thack_name\x18\x01 \x01(\tBL\xe2\xfc\xe3\xc4\x01\x46\x12\x44The path to the hack to execute relative to Config.python_hack_root.\x12\x36\n\x07py_args\x18\x02 \x01(\x0b\x32\x05.DictB\x1e\xe2\xfc\xe3\xc4\x01\x18\x12\x16Python Hack Arguments.\"\xd8\x01\n\x12\x45xecuteCommandArgs\x12\x15\n\x03\x63md\x18\x01 \x01(\tB\x08\xe2\xfc\xe3\xc4\x01\x02\x12\x00\x12S\n\x0c\x63ommand_line\x18\x02 \x01(\tB=\xe2\xfc\xe3\xc4\x01\x37\x12\x35The arguments to the command as a shell command line.\x12V\n\ntime_limit\x18\x03 \x01(\x03:\x02-1B>\xe2\xfc\xe3\xc4\x01\x38\x12\x36The time limit for this execution, -1 means unlimited.\"\x93\x01\n\x16OnlineNotificationArgs\x12y\n\x05\x65mail\x18\x01 \x01(\tBj\xe2\xfc\xe3\xc4\x01\x64\n\x12\x44omainEmailAddress\x12NEmail address to send to. If not set, mail will be sent to the logged in user.\"o\n\x10UpdateClientArgs\x12[\n\tblob_path\x18\x01 \x01(\tBH\xe2\xfc\xe3\xc4\x01\x42\n\x06RDFURN\x12\x38\x41n aff4 path to a GRRSignedBlob of a new client version.\"s\n\rKeepAliveArgs\x12\x62\n\x08\x64uration\x18\x01 \x01(\x04:\x04\x33\x36\x30\x30\x42J\xe2\xfc\xe3\xc4\x01\x44\n\x08\x44uration\x12\x38Until when should the client stay in the fast poll mode.\"\x9e\x01\n\x10LaunchBinaryArgs\x12\x41\n\x06\x62inary\x18\x01 \x01(\tB1\xe2\xfc\xe3\xc4\x01+\n\x06RDFURN\x12!The URN of the binary to execute.\x12G\n\x0c\x63ommand_line\x18\x02 \x01(\tB1\xe2\xfc\xe3\xc4\x01+\x12)Binary Arguments as a shell command line.\"\xd8\x04\n WinUserActivityInvestigationArgs\x12<\n\x08username\x18\x01 \x01(\tB*\xe2\xfc\xe3\xc4\x01$\x12\"The user to target the actions to.\x12R\n\x13get_browser_history\x18\x02 \x01(\x08:\x04trueB/\xe2\xfc\xe3\xc4\x01)\x12\'Call each of the browser history flows.\x12\\\n\x16recursive_list_homedir\x18\x03 \x01(\x04:\x01\x35\x42\x39\xe2\xfc\xe3\xc4\x01\x33\x12\x31Recursively list the users homedir to this depth.\x12Z\n\x1crecursive_list_user_registry\x18\x04 \x01(\x04:\x01\x35\x42\x31\xe2\xfc\xe3\xc4\x01+\x12)Recursively list the users registry hive.\x12\x46\n\rartifact_list\x18\x05 \x03(\tB/\xe2\xfc\xe3\xc4\x01)\n\x0c\x41rtifactName\x12\x19\x41 list of Artifact names.\x12\\\n\x17timeline_collected_data\x18\x06 \x01(\x08:\x04trueB5\xe2\xfc\xe3\xc4\x01/\x12-Once complete create a timeline for the host.\x12\x42\n\x07use_tsk\x18\x07 \x01(\x08\x42\x31\xe2\xfc\xe3\xc4\x01+\x12)Use raw filesystem access where possible.\"\xd7\x0c\n\x19\x41rtifactCollectorFlowArgs\x12L\n\rartifact_list\x18\x01 \x03(\tB5\xe2\xfc\xe3\xc4\x01/\n\x0c\x41rtifactName\x12\x1f\x41 list of Artifact class names.\x12M\n\x07use_tsk\x18\x02 \x01(\x08:\x05\x66\x61lseB5\xe2\xfc\xe3\xc4\x01/\x12-Whether raw filesystem access should be used.\x12\x92\x01\n\x18split_output_by_artifact\x18\x05 \x01(\x08:\x05\x66\x61lseBi\xe2\xfc\xe3\xc4\x01\x63\x12_If True, use output as a directory and write a separate collection for each artifact collected.\x18\x01\x12\x8d\x01\n\x0eknowledge_base\x18\x06 \x01(\x0b\x32\x0e.KnowledgeBaseBe\xe2\xfc\xe3\xc4\x01_\x12[An optional knowledge base to use, if not specified we retrieve one from the client object.\x18\x02\x12\x9e\x01\n\x13on_no_results_error\x18\x07 \x01(\x08:\x05\x66\x61lseBz\xe2\xfc\xe3\xc4\x01t\x12rIf True, an artifact returning no results will raise a hard error. This is useful where you always expect results.\x12\xa6\x01\n\rapply_parsers\x18\x08 \x01(\x08:\x04trueB\x88\x01\xe2\xfc\xe3\xc4\x01\x81\x01\x12}If True, apply any relevant parser to the collected data. If False, return the raw collected data e.g Files or Registry Keys.\x18\x01\x12|\n\rmax_file_size\x18\t \x01(\x04:\t500000000BZ\xe2\xfc\xe3\xc4\x01T\n\x08\x42yteSize\x12\x46The maximum size of files we will download in bytes, 500MB by default.\x18\x01\x12\x80\x01\n\x0c\x64\x65pendencies\x18\x0b \x01(\x0e\x32%.ArtifactCollectorFlowArgs.Dependency:\nUSE_CACHEDB7\xe2\xfc\xe3\xc4\x01\x31\x12-Specifies how dependencies should be handled.\x18\x01\x12\xb1\x02\n\x1bignore_interpolation_errors\x18\x0c \x01(\x08:\x05\x66\x61lseB\x84\x02\xe2\xfc\xe3\xc4\x01\xfd\x01\x12\xfa\x01If true, don\'t die if %%users.homedir%% and similar fail to expand. It\'s common on windows for some user attributes to be missing if users have never logged in. Enable this when you have multiple artifacts or paths and want to report partial results.\"\xf8\x01\n\nDependency\x12t\n\nUSE_CACHED\x10\x00\x1a\x64\xea\xb9\xcb\xb9\x01^Use the knowledgebase as a cache. If knowledgebase isn\'t present, a new one will be populated.\x12+\n\x0bIGNORE_DEPS\x10\x01\x1a\x1a\xea\xb9\xcb\xb9\x01\x14Ignore dependencies.\x12G\n\tFETCH_NOW\x10\x02\x1a\x38\xea\xb9\xcb\xb9\x01\x32\x46\x65tch only required dependencies for this artifact\"\xbc\x02\n\x1f\x41rtifactFilesDownloaderFlowArgs\x12L\n\rartifact_list\x18\x01 \x03(\tB5\xe2\xfc\xe3\xc4\x01/\n\x0c\x41rtifactName\x12\x1f\x41 list of Artifact class names.\x12M\n\x07use_tsk\x18\x02 \x01(\x08:\x05\x66\x61lseB5\xe2\xfc\xe3\xc4\x01/\x12-Whether raw filesystem access should be used.\x12|\n\rmax_file_size\x18\t \x01(\x04:\t500000000BZ\xe2\xfc\xe3\xc4\x01T\n\x08\x42yteSize\x12\x46The maximum size of files we will download in bytes, 500MB by default.\x18\x01\"\xb1\x03\n\x1d\x41rtifactFilesDownloaderResult\x12]\n\x14original_result_type\x18\x01 \x01(\tB?\xe2\xfc\xe3\xc4\x01\x39\x12\x37Type of the result returned by the artifacts collector.\x12l\n\x0foriginal_result\x18\x02 \x01(\x0c\x42S\xe2\xfc\xe3\xc4\x01M\x12\x34Original result returned by the artifacts collector.*\x15GetOriginalResultType\x12V\n\x0e\x66ound_pathspec\x18\x03 \x01(\x0b\x32\t.PathSpecB3\xe2\xfc\xe3\xc4\x01-\x12+Pathspecs found in the collected artifacts.\x12k\n\x0f\x64ownloaded_file\x18\x04 \x01(\x0b\x32\n.StatEntryBF\xe2\xfc\xe3\xc4\x01@\x12>Files that were successfully downloaded using found pathspecs.\"h\n\x0fInterrogateArgs\x12U\n\x0blightweight\x18\x01 \x01(\x08:\x04trueB:\xe2\xfc\xe3\xc4\x01\x34\x12\x32Perform a light weight version of the interrogate.\"Y\n\x13\x46ingerprintFileArgs\x12\x42\n\x08pathspec\x18\x01 \x01(\x0b\x32\t.PathSpecB%\xe2\xfc\xe3\xc4\x01\x1f\x12\x1dThe file path to fingerprint.\"\x92\x01\n\x15\x46ingerprintFileResult\x12\x43\n\x08\x66ile_urn\x18\x01 \x01(\tB1\xe2\xfc\xe3\xc4\x01+\n\x06RDFURN\x12!The URN of the file fingerprinted\x12\x34\n\nhash_entry\x18\x02 \x01(\x0b\x32\x05.HashB\x19\xe2\xfc\xe3\xc4\x01\x13\x12\x11\x46ile hash object.\"a\n\x13SophosCollectorArgs\x12J\n\x08pathtype\x18\x01 \x01(\x0e\x32\x12.PathSpec.PathType:\x02OSB \xe2\xfc\xe3\xc4\x01\x1a\x12\x18The requested path type.\"a\n\x0cMACTimesArgs\x12Q\n\x04path\x18\x01 \x01(\t:\x04/fs/B=\xe2\xfc\xe3\xc4\x01\x37\x12\x35\x41n AFF path (relative to the client area of the VFS).\"Y\n\x11\x46ileCollectorArgs\x12\x44\n\tfindspecs\x18\x01 \x03(\x0b\x32\t.FindSpecB&\xe2\xfc\xe3\xc4\x01 \x12\x1e\x41 list of find specifications.\"\xc5\x03\n\x12\x46irefoxHistoryArgs\x12M\n\x08pathtype\x18\x01 \x01(\x0e\x32\x12.PathSpec.PathType:\x02OSB#\xe2\xfc\xe3\xc4\x01\x1d\x12\x1bType of path access to use.\x12Z\n\x0bget_archive\x18\x02 \x01(\x08:\x05\x66\x61lseB>\xe2\xfc\xe3\xc4\x01\x38\x12\x36Should we get Archived History as well (3 months old).\x12\xaa\x01\n\x08username\x18\x03 \x01(\tB\x97\x01\xe2\xfc\xe3\xc4\x01\x90\x01\x12\x8d\x01The user to get history for. If history_path is not set this will be used to guess the path to the history files. Can be in form DOMAIN\\user.\x12W\n\x0chistory_path\x18\x05 \x01(\tBA\xe2\xfc\xe3\xc4\x01;\x12\x39Path to a profile directory that contains a History file.\"\xbf\x03\n\rCacheGrepArgs\x12V\n\ngrep_users\x18\x01 \x03(\tBB\xe2\xfc\xe3\xc4\x01<\x12:A list of users to check. Default all users on the system.\x12M\n\x08pathtype\x18\x02 \x01(\x0e\x32\x12.PathSpec.PathType:\x02OSB#\xe2\xfc\xe3\xc4\x01\x1d\x12\x1bType of path access to use.\x12R\n\ndata_regex\x18\x03 \x01(\tB>\xe2\xfc\xe3\xc4\x01\x38\n\x11RegularExpression\x12#A regular expression to search for.\x12\x30\n\x0c\x63heck_chrome\x18\x05 \x01(\x08:\x04trueB\x14\xe2\xfc\xe3\xc4\x01\x0e\x12\x0c\x43heck Chrome\x12\x32\n\rcheck_firefox\x18\x06 \x01(\x08:\x04trueB\x15\xe2\xfc\xe3\xc4\x01\x0f\x12\rCheck Firefox\x12M\n\x08\x63heck_ie\x18\x07 \x01(\x08:\x04trueB5\xe2\xfc\xe3\xc4\x01/\x12-Check Internet Explorer (Not implemented yet)\"a\n\x11ListDirectoryArgs\x12L\n\x08pathspec\x18\x01 \x01(\x0b\x32\t.PathSpecB/\xe2\xfc\xe3\xc4\x01)\x12\'The pathspec for the directory to list.\"\xa2\x01\n\x1aRecursiveListDirectoryArgs\x12L\n\x08pathspec\x18\x01 \x01(\x0b\x32\t.PathSpecB/\xe2\xfc\xe3\xc4\x01)\x12\'The pathspec for the directory to list.\x12\x36\n\tmax_depth\x18\x02 \x01(\x04:\x01\x35\x42 \xe2\xfc\xe3\xc4\x01\x1a\x12\x18Maximum recursion depth.\"\x88\x01\n\x1d\x46\x65tchBufferForSparseImageArgs\x12G\n\x08\x66ile_urn\x18\x01 \x01(\tB5\xe2\xfc\xe3\xc4\x01/\n\x06RDFURN\x12%The URN of the sparse image to update\x12\x0e\n\x06length\x18\x02 \x01(\x04\x12\x0e\n\x06offset\x18\x03 \x01(\x04\"Q\n\x1aMakeNewAFF4SparseImageArgs\x12\x1b\n\x08pathspec\x18\x01 \x01(\x0b\x32\t.PathSpec\x12\x16\n\x0esize_threshold\x18\x02 \x01(\x04\"\x7f\n\x1bUpdateSparseImageChunksArgs\x12G\n\x08\x66ile_urn\x18\x01 \x01(\tB5\xe2\xfc\xe3\xc4\x01/\n\x06RDFURN\x12%The URN of the sparse image to update\x12\x17\n\x0f\x63hunks_to_fetch\x18\x02 \x03(\x04\"&\n\x08GrepArgs\x12\x1a\n\x07request\x18\x01 \x01(\x0b\x32\t.GrepSpec\"\xff\x04\n\x08GlobArgs\x12\x7f\n\x05paths\x18\x01 \x03(\tBp\xe2\xfc\xe3\xc4\x01j\n\x0eGlobExpression\x12XA list of paths to glob that supports: ** path recursion, * wildcards and %% expansions.\x12L\n\x08pathtype\x18\x02 \x01(\x0e\x32\x12.PathSpec.PathType:\x02OSB\"\xe2\xfc\xe3\xc4\x01\x1c\x12\x1aType of access to glob in.\x12\xd2\x01\n\troot_path\x18\x03 \x01(\x0b\x32\t.PathSpecB\xb3\x01\xe2\xfc\xe3\xc4\x01\xac\x01\x12\xa7\x01The root path to begin the glob.  Users should almost never need to change this. root_path.pathtype is unused in favor of pathtype to allow it to be modified by users.\x18\x01\x12\xce\x01\n\x19process_non_regular_files\x18\x04 \x01(\x08:\x05\x66\x61lseB\xa3\x01\xe2\xfc\xe3\xc4\x01\x9c\x01\x12\x97\x01Work with all kinds of files - not only with regular ones.NOTE: This is very dangerous and should be used with care, see MemoryCollector as an example.\x18\x02\"\xe5\x01\n\rFindFilesArgs\x12\x44\n\x08\x66indspec\x18\x01 \x01(\x0b\x32\t.FindSpecB\'\xe2\xfc\xe3\xc4\x01!\x12\x1f\x41 find operation specification.\x12\x45\n\x0bmax_results\x18\x03 \x01(\x04:\x03\x35\x30\x30\x42+\xe2\xfc\xe3\xc4\x01%\x12!Maximum number of results to get.\x18\x01\x12G\n\x0fiteration_count\x18\x04 \x01(\x04:\x05\x32\x30\x30\x30\x30\x42\'\xe2\xfc\xe3\xc4\x01!\x12\x1d\x46iles examined per iteration.\x18\x01\"\xc1\x02\n\x0bGetFileArgs\x12K\n\x08pathspec\x18\x01 \x01(\x0b\x32\t.PathSpecB.\xe2\xfc\xe3\xc4\x01(\x12&The pathspec for the file to retrieve.\x12s\n\x0bread_length\x18\x02 \x01(\x04:\x01\x30\x42[\xe2\xfc\xe3\xc4\x01U\x12QThe amount of data to read from the file. If 0 we use the value from a stat call.\x18\x01\x12p\n\x13ignore_stat_failure\x18\x03 \x01(\x08\x42S\xe2\xfc\xe3\xc4\x01M\x12IIgnore stat failures and try to read anyway. Disable for windows devices.\x18\x01\"Q\n\nGetMBRArgs\x12\x43\n\x06length\x18\x01 \x01(\x04:\x04\x34\x30\x39\x36\x42-\xe2\xfc\xe3\xc4\x01\'\x12%The length of the MBR buffer to read.\"\xc4\x03\n\x11\x43hromeHistoryArgs\x12M\n\x08pathtype\x18\x01 \x01(\x0e\x32\x12.PathSpec.PathType:\x02OSB#\xe2\xfc\xe3\xc4\x01\x1d\x12\x1bType of path access to use.\x12S\n\x0bget_archive\x18\x02 \x01(\x08\x42>\xe2\xfc\xe3\xc4\x01\x38\x12\x36Should we get Archived History as well (3 months old).\x12\xb1\x01\n\x08username\x18\x03 \x01(\tB\x9e\x01\xe2\xfc\xe3\xc4\x01\x97\x01\x12\x94\x01The user to get Chrome history for. If history_path is not set this will be used to guess the path to the history files. Can be in form DOMAIN\\user.\x12W\n\x0chistory_path\x18\x05 \x01(\tBA\xe2\xfc\xe3\xc4\x01;\x12\x39Path to a profile directory that contains a History file.\"k\n\x19\x43reateGenericHuntFlowArgs\x12)\n\x10hunt_runner_args\x18\x01 \x01(\x0b\x32\x0f.HuntRunnerArgs\x12#\n\thunt_args\x18\x02 \x01(\x0b\x32\x10.GenericHuntArgs\"\xab\x06\n\x15\x43reateCronJobFlowArgs\x12J\n\x0b\x64\x65scription\x18\x01 \x01(\tB5\xe2\xfc\xe3\xc4\x01/\x12-A human readable description of the cron job.\x12J\n\x0bperiodicity\x18\x02 \x01(\x04:\x06\x36\x30\x34\x38\x30\x30\x42-\xe2\xfc\xe3\xc4\x01\'\n\x08\x44uration\x12\x1bHow often to run this hunt.\x12)\n\x10\x66low_runner_args\x18\x03 \x01(\x0b\x32\x0f.FlowRunnerArgs\x12+\n\tflow_args\x18\x04 \x01(\x0c\x42\x18\xe2\xfc\xe3\xc4\x01\x12*\x10GetFlowArgsClass\x12\x16\n\x0e\x61llow_overruns\x18\x05 \x01(\x08\x12\x9d\x02\n\x08lifetime\x18\x06 \x01(\x04:\x01\x30\x42\x87\x02\xe2\xfc\xe3\xc4\x01\x80\x02\n\x08\x44uration\x12\xf3\x01How long each run of the cron should be allowed to run. Runs that exceed lifetime will be killed. This is complimentary but different to periodicity e.g. it allows us to run jobs weekly that should be killed if they take more than a few hours.\x12\xe9\x01\n\nstart_time\x18\x07 \x01(\x04:\x01\x30\x42\xd1\x01\xe2\xfc\xe3\xc4\x01\xca\x01\n\x0bRDFDatetime\x12\xba\x01Time at which this cron should run for the first time.Specifying this allows us to stagger or randomize cron start times so they don\'t all start at once. Default is to start immediately.\"\x97\x02\n\x07\x43ronJob\x12\x0e\n\x06job_id\x18\x01 \x01(\t\x12)\n\tcron_args\x18\x02 \x01(\x0b\x32\x16.CreateCronJobFlowArgs\x12(\n\x0b\x63reate_time\x18\x03 \x01(\x04\x42\x13\xe2\xfc\xe3\xc4\x01\r\n\x0bRDFDatetime\x12\x16\n\x0e\x63urrent_run_id\x18\x04 \x01(\x04\x12\x10\n\x08\x64isabled\x18\x05 \x01(\x08\x12\x31\n\x0flast_run_status\x18\x06 \x01(\x0e\x32\x18.CronJobRunStatus.Status\x12*\n\rlast_run_time\x18\x07 \x01(\x04\x42\x13\xe2\xfc\xe3\xc4\x01\r\n\x0bRDFDatetime\x12\x1e\n\x05state\x18\x08 \x01(\x0b\x32\x0f.AttributedDict\"o\n\x14PlistValueFilterArgs\x12W\n\x07request\x18\x01 \x01(\x0b\x32\r.PlistRequestB7\xe2\xfc\xe3\xc4\x01\x31\x12/A request for the client to parse a plist file.\"\xb9\x01\n\x11RunReportFlowArgs\x12G\n\x0breport_name\x18\x01 \x01(\tB2\xe2\xfc\xe3\xc4\x01,\n\nReportName\x12\x1eThe name of the report to run.\x12[\n\x05\x65mail\x18\x02 \x01(\tBL\xe2\xfc\xe3\xc4\x01\x46\n\x12\x44omainEmailAddress\x12\x30The email address that messages will be sent to.\"\xb8\x01\n\x15\x45numerateServicesArgs\x12M\n\x11\x64ownload_binaries\x18\x01 \x01(\x08:\x04trueB,\xe2\xfc\xe3\xc4\x01&\x12$If set, also downloads the binaries.\x12P\n\x08pathtype\x18\x03 \x01(\x0e\x32\x12.PathSpec.PathType:\x03TSKB%\xe2\xfc\xe3\xc4\x01\x1f\x12\x1dHow to access the filesystem.\"\xd0\x02\n\x11\x43hromePluginsArgs\x12q\n\x04path\x18\x01 \x01(\tBc\xe2\xfc\xe3\xc4\x01]\x12[A path to a Chrome Extensions directory. If not set, the path is guessed from the username.\x12=\n\x08pathtype\x18\x02 \x01(\x0e\x32\x12.PathSpec.PathType:\x02OSB\x13\xe2\xfc\xe3\xc4\x01\r\x12\x0b\x41\x63\x63\x65ss mode\x12@\n\x08username\x18\x04 \x01(\tB.\xe2\xfc\xe3\xc4\x01(\x12&The user to get Chrome extensions for.\x12G\n\x0e\x64ownload_files\x18\x05 \x01(\x08:\x05\x66\x61lseB(\xe2\xfc\xe3\xc4\x01\"\x12 Should extensions be downloaded?\"\xb2\x01\n\x11UpdateVFSFileArgs\x12\x31\n\x0cvfs_file_urn\x18\x01 \x01(\tB\x1b\xe2\xfc\xe3\xc4\x01\x15\n\x06RDFURN\x12\x0bVFSFile urn\x12j\n\tattribute\x18\x02 \x01(\t:\x08\x43ONTAINSBM\xe2\xfc\xe3\xc4\x01G\x12\x45\x41ttribute to update, given as the attribute name on the schema class.\"\x9e\x04\n\x10MultiGetFileArgs\x12I\n\tpathspecs\x18\x02 \x03(\x0b\x32\t.PathSpecB+\xe2\xfc\xe3\xc4\x01%\x12#Pathspecs of files to be retrieved.\x12\xee\x01\n\x13use_external_stores\x18\x03 \x01(\x08:\x04trueB\xca\x01\xe2\xfc\xe3\xc4\x01\xc3\x01\x12\xbe\x01If true, look in any defined external file stores for filesbefore downloading them, and offer any new files to external stores.This should be true unless the external checks are misbehaving.\x18\x01\x12\x64\n\tfile_size\x18\x04 \x01(\x04:\n1000000000BE\xe2\xfc\xe3\xc4\x01?\n\x08\x42yteSize\x12\x31Maximum number of bytes to download in each file.\x18\x01\x12h\n\x15maximum_pending_files\x18\x05 \x01(\x04:\x04\x31\x30\x30\x30\x42\x43\xe2\xfc\xe3\xc4\x01=\x12\x39Maximum number of files to be downloading simultaneously.\x18\x01\"\xda\x03\n(ProcessHuntResultCollectionsCronFlowArgs\x12\x62\n\nbatch_size\x18\x01 \x01(\x04\x42N\xe2\xfc\xe3\xc4\x01H\x12\x44Results will be processed by output plugins in batches of this size.\x18\x01\x12\xd4\x01\n\x10max_running_time\x18\x02 \x01(\x04\x42\xb9\x01\xe2\xfc\xe3\xc4\x01\xb2\x01\n\x08\x44uration\x12\xa3\x01ProcessHuntResultsCollectionsCronFlow will run not much longer than max_running_time. It will finish (without an error) even if there are still results to process.\x18\x01\x12s\n\x15start_processing_time\x18\x05 \x01(\x04:\x01\x30\x42Q\xe2\xfc\xe3\xc4\x01K\n\x0bRDFDatetime\x12<The flow will only process results received after this time.\"\xaf\x01\n#VerifyHuntOutputPluginsCronFlowArgs\x12\x87\x01\n\x0b\x63heck_range\x18\x01 \x01(\x04\x42r\xe2\xfc\xe3\xc4\x01l\n\x08\x44uration\x12^Only the hunts that were active within given duration from the current moment will be checked.\x18\x01\"\x85\x03\n\x11ListProcessesArgs\x12q\n\x0e\x66ilename_regex\x18\x01 \x01(\t:\x01.BV\xe2\xfc\xe3\xc4\x01P\n\x11RegularExpression\x12+Regex used to filter the list of processes.\"\x0e\x46ilename Regex\x12\x35\n\x0e\x66\x65tch_binaries\x18\x02 \x01(\x08:\x05\x66\x61lseB\x16\xe2\xfc\xe3\xc4\x01\x10\"\x0e\x46\x65tch Binaries\x12\xc5\x01\n\x11\x63onnection_states\x18\x03 \x03(\x0e\x32\x18.NetworkConnection.StateB\x8f\x01\xe2\xfc\xe3\xc4\x01\x88\x01\x12\x85\x01Network connection states to match. If a process has any network connections in any status listed here, it will be considered a match\"\xbe\x01\n\x13ListVADBinariesArgs\x12p\n\x0e\x66ilename_regex\x18\x01 \x01(\t:\x01.BU\xe2\xfc\xe3\xc4\x01O\n\x11RegularExpression\x12*Regex used to filter the list of binaries.\"\x0e\x46ilename Regex\x12\x35\n\x0e\x66\x65tch_binaries\x18\x02 \x01(\x08:\x05\x66\x61lseB\x16\xe2\xfc\xe3\xc4\x01\x10\"\x0e\x46\x65tch Binaries\"\x9e\x02\n#FileFinderModificationTimeCondition\x12^\n\x16min_last_modified_time\x18\x05 \x01(\x04:\x01\x30\x42;\xe2\xfc\xe3\xc4\x01\x35\n\x0bRDFDatetime\x12&File must be modified after this time.\x12\x96\x01\n\x16max_last_modified_time\x18\x06 \x01(\x04:\x13\x39\x32\x32\x33\x33\x37\x32\x30\x33\x36\x38\x35\x34\x37\x37\x35\x38\x30\x37\x42\x61\xe2\xfc\xe3\xc4\x01[\n\x0bRDFDatetime\x12LFile must be modified before this time (default=heat death of the universe).\"\x94\x02\n\x1d\x46ileFinderAccessTimeCondition\x12\\\n\x14min_last_access_time\x18\x05 \x01(\x04:\x01\x30\x42;\xe2\xfc\xe3\xc4\x01\x35\n\x0bRDFDatetime\x12&File must be accessed after this time.\x12\x94\x01\n\x14max_last_access_time\x18\x06 \x01(\x04:\x13\x39\x32\x32\x33\x33\x37\x32\x30\x33\x36\x38\x35\x34\x37\x37\x35\x38\x30\x37\x42\x61\xe2\xfc\xe3\xc4\x01[\n\x0bRDFDatetime\x12LFile must be accessed before this time (default=heat death of the universe).\"\xad\x02\n\"FileFinderInodeChangeTimeCondition\x12i\n\x1amin_last_inode_change_time\x18\x05 \x01(\x04:\x01\x30\x42\x42\xe2\xfc\xe3\xc4\x01<\n\x0bRDFDatetime\x12-File\'s inode must be changed after this time.\x12\x9b\x01\n\x1amax_last_inode_change_time\x18\x06 \x01(\x04:\x13\x39\x32\x32\x33\x33\x37\x32\x30\x33\x36\x38\x35\x34\x37\x37\x35\x38\x30\x37\x42\x62\xe2\xfc\xe3\xc4\x01\\\n\x0bRDFDatetime\x12MFile\'s must be changed before this time (default=heat death of the universe).\"\xad\x01\n\x17\x46ileFinderSizeCondition\x12=\n\rmin_file_size\x18\x0b \x01(\x04:\x01\x30\x42#\xe2\xfc\xe3\xc4\x01\x1d\x12\x1bMinimum file size in bytes.\x12S\n\rmax_file_size\x18\x0c \x01(\x04:\x08\x32\x30\x30\x30\x30\x30\x30\x30\x42\x32\xe2\xfc\xe3\xc4\x01,\x12*Maximum file size in bytes (default=20MB).\"\x89\x01\n\x1b\x46ileFinderExtFlagsCondition\x12\x19\n\x0elinux_bits_set\x18\x01 \x01(\r:\x01\x30\x12\x1b\n\x10linux_bits_unset\x18\x02 \x01(\r:\x01\x30\x12\x17\n\x0cosx_bits_set\x18\x03 \x01(\r:\x01\x30\x12\x19\n\x0eosx_bits_unset\x18\x04 \x01(\r:\x01\x30\"\xfa\x04\n%FileFinderContentsRegexMatchCondition\x12^\n\x05regex\x18\x04 \x01(\tBO\xe2\xfc\xe3\xc4\x01I\n\x11RegularExpression\x12\x34The regular expression which will be used to search.\x12\x8f\x01\n\x04mode\x18\x06 \x01(\x0e\x32+.FileFinderContentsRegexMatchCondition.Mode:\tFIRST_HITBI\xe2\xfc\xe3\xc4\x01\x43\x12\x41When should searching stop? Stop after one hit or search for all?\x12J\n\x0c\x62ytes_before\x18\x07 \x01(\r:\x01\x30\x42\x31\xe2\xfc\xe3\xc4\x01+\x12\'Include this many bytes before the hit.\x18\x01\x12H\n\x0b\x62ytes_after\x18\x08 \x01(\r:\x01\x30\x42\x30\xe2\xfc\xe3\xc4\x01*\x12&Include this many bytes after the hit.\x18\x01\x12G\n\x0cstart_offset\x18\x02 \x01(\x04:\x01\x30\x42.\xe2\xfc\xe3\xc4\x01(\x12$Start searching at this file offset.\x18\x01\x12[\n\x06length\x18\x03 \x01(\x04:\x08\x32\x30\x30\x30\x30\x30\x30\x30\x42\x41\xe2\xfc\xe3\xc4\x01;\x12\x39How far (in bytes) into the file to search. Default=20MB.\"#\n\x04Mode\x12\x0c\n\x08\x41LL_HITS\x10\x00\x12\r\n\tFIRST_HIT\x10\x01\"\xf7\x07\n\'FileFinderContentsLiteralMatchCondition\x12K\n\x07literal\x18\x05 \x01(\x0c\x42:\xe2\xfc\xe3\xc4\x01\x34\n\x11LiteralExpression\x12\x1fSearch for this literal string.\x12\x91\x01\n\x04mode\x18\x06 \x01(\x0e\x32-.FileFinderContentsLiteralMatchCondition.Mode:\tFIRST_HITBI\xe2\xfc\xe3\xc4\x01\x43\x12\x41When should searching stop? Stop after one hit or search for all?\x12G\n\x0cstart_offset\x18\x02 \x01(\x04:\x01\x30\x42.\xe2\xfc\xe3\xc4\x01(\x12$Start searching at this file offset.\x18\x01\x12\\\n\x06length\x18\x03 \x01(\x04:\x08\x32\x30\x30\x30\x30\x30\x30\x30\x42\x42\xe2\xfc\xe3\xc4\x01<\x12\x38How far (in bytes) into the file to search. Default=20MB\x18\x01\x12J\n\x0c\x62ytes_before\x18\x07 \x01(\r:\x01\x30\x42\x31\xe2\xfc\xe3\xc4\x01+\x12\'Include this many bytes before the hit.\x18\x01\x12H\n\x0b\x62ytes_after\x18\x08 \x01(\r:\x01\x30\x42\x30\xe2\xfc\xe3\xc4\x01*\x12&Include this many bytes after the hit.\x18\x01\x12\xc2\x01\n\nxor_in_key\x18\t \x01(\r:\x01\x30\x42\xaa\x01\xe2\xfc\xe3\xc4\x01\xa3\x01\x12\x9e\x01When searching memory we need to ensure we dont hit on our own process. This allows us to obfuscate the search string in memory to avoid us finding ourselves.\x18\x01\x12\xc3\x01\n\x0bxor_out_key\x18\n \x01(\r:\x01\x30\x42\xaa\x01\xe2\xfc\xe3\xc4\x01\xa3\x01\x12\x9e\x01When searching memory we need to ensure we dont hit on our own process. This allows us to obfuscate the search string in memory to avoid us finding ourselves.\x18\x01\"#\n\x04Mode\x12\x0c\n\x08\x41LL_HITS\x10\x00\x12\r\n\tFIRST_HIT\x10\x01\"\xe9\x06\n\x13\x46ileFinderCondition\x12Y\n\x0e\x63ondition_type\x18\x01 \x01(\x0e\x32\x19.FileFinderCondition.TypeB&\xe2\xfc\xe3\xc4\x01 \x12\x0e\x43ondition type\"\x0e\x43ondition type\x12?\n\x11modification_time\x18\x02 \x01(\x0b\x32$.FileFinderModificationTimeCondition\x12\x33\n\x0b\x61\x63\x63\x65ss_time\x18\x03 \x01(\x0b\x32\x1e.FileFinderAccessTimeCondition\x12>\n\x11inode_change_time\x18\x04 \x01(\x0b\x32#.FileFinderInodeChangeTimeCondition\x12&\n\x04size\x18\x05 \x01(\x0b\x32\x18.FileFinderSizeCondition\x12/\n\text_flags\x18\x08 \x01(\x0b\x32\x1c.FileFinderExtFlagsCondition\x12\x44\n\x14\x63ontents_regex_match\x18\x06 \x01(\x0b\x32&.FileFinderContentsRegexMatchCondition\x12H\n\x16\x63ontents_literal_match\x18\x07 \x01(\x0b\x32(.FileFinderContentsLiteralMatchCondition\"\xbf\x02\n\x04Type\x12.\n\x11MODIFICATION_TIME\x10\x00\x1a\x17\xea\xb9\xcb\xb9\x01\x11Modification time\x12\"\n\x0b\x41\x43\x43\x45SS_TIME\x10\x01\x1a\x11\xea\xb9\xcb\xb9\x01\x0b\x41\x63\x63\x65ss time\x12.\n\x11INODE_CHANGE_TIME\x10\x02\x1a\x17\xea\xb9\xcb\xb9\x01\x11Inode change time\x12\x19\n\x04SIZE\x10\x03\x1a\x0f\xea\xb9\xcb\xb9\x01\tFile size\x12(\n\tEXT_FLAGS\x10\x06\x1a\x19\xea\xb9\xcb\xb9\x01\x13\x45xtended file flags\x12\x34\n\x14\x43ONTENTS_REGEX_MATCH\x10\x04\x1a\x1a\xea\xb9\xcb\xb9\x01\x14\x43ontents regex match\x12\x38\n\x16\x43ONTENTS_LITERAL_MATCH\x10\x05\x1a\x1c\xea\xb9\xcb\xb9\x01\x16\x43ontents literal match:\x16\xda\xfc\xe3\xc4\x01\x10\x12\x0e\x63ondition_type\"\xbd\x04\n\x1b\x46ileFinderHashActionOptions\x12X\n\x08max_size\x18\x01 \x01(\x04:\t500000000B;\xe2\xfc\xe3\xc4\x01\x35\n\x08\x42yteSize\x12\'The maximum size of files we will hash.\x18\x01\x12\x97\x01\n\x15oversized_file_policy\x18\x02 \x01(\x0e\x32\x30.FileFinderHashActionOptions.OversizedFilePolicyBF\xe2\xfc\xe3\xc4\x01@\x12<What should GRR do with files that are larger than max_size.\x18\x01\x12\xa5\x01\n\x11\x63ollect_ext_attrs\x18\x04 \x01(\x08:\x04trueB\x83\x01\xe2\xfc\xe3\xc4\x01}\x12\\If true, extended attributes and flags of the hashed file are going to be collected as well.\x18\x01\"\x1b\x43ollect extended attributes\"\x81\x01\n\x13OversizedFilePolicy\x12$\n\x04SKIP\x10\x00\x1a\x1a\xea\xb9\xcb\xb9\x01\x14Skip oversized files\x12\x44\n\x0eHASH_TRUNCATED\x10\x01\x1a\x30\xea\xb9\xcb\xb9\x01*Hash truncated versions of oversized files\"\x8c\x08\n\x1f\x46ileFinderDownloadActionOptions\x12\\\n\x08max_size\x18\x05 \x01(\x04:\t500000000B?\xe2\xfc\xe3\xc4\x01\x39\n\x08\x42yteSize\x12+The maximum size of files we will download.\x18\x01\x12\x9b\x01\n\x15oversized_file_policy\x18\x07 \x01(\x0e\x32\x34.FileFinderDownloadActionOptions.OversizedFilePolicyBF\xe2\xfc\xe3\xc4\x01@\x12<What should GRR do with files that are larger than max_size.\x18\x01\x12\xf0\x01\n\x13use_external_stores\x18\x06 \x01(\x08:\x04trueB\xcc\x01\xe2\xfc\xe3\xc4\x01\xc5\x01\x12\xc0\x01If true, look in any defined external file stores for files before downloading them, and offer any new files to external stores. This should be true unless the external checks are misbehaving.\x18\x01\x12\xaa\x01\n\x11\x63ollect_ext_attrs\x18\t \x01(\x08:\x04trueB\x88\x01\xe2\xfc\xe3\xc4\x01\x81\x01\x12`If true, extended attributes and flags of the downloaded file are going to be collected as well.\x18\x01\"\x1b\x43ollect extended attributes\x12u\n\nchunk_size\x18\x0b \x01(\x04:\x06\x35\x32\x34\x32\x38\x38\x42Y\xe2\xfc\xe3\xc4\x01S\x12\x43Number of bytes per chunk that the downloaded file is divided into.\x18\x02\"\nChunk size\"\xd5\x01\n\x13OversizedFilePolicy\x12$\n\x04SKIP\x10\x00\x1a\x1a\xea\xb9\xcb\xb9\x01\x14Skip oversized files\x12R\n\x0eHASH_TRUNCATED\x10\x01\x1a>\xea\xb9\xcb\xb9\x01\x38Hash truncated version of the file (without downloading)\x12\x44\n\x12\x44OWNLOAD_TRUNCATED\x10\x02\x1a,\xea\xb9\xcb\xb9\x01&Download truncated version of the file\"\xc5\x02\n\x1b\x46ileFinderStatActionOptions\x12\xa1\x01\n\rresolve_links\x18\x01 \x01(\x08:\x05\x66\x61lseB\x82\x01\xe2\xfc\xe3\xc4\x01|\x12zIf true, the action will yield stat information for link targets, if false, the stat for the link itself will be returned.\x12\x81\x01\n\x11\x63ollect_ext_attrs\x18\x02 \x01(\x08:\x04trueB`\xe2\xfc\xe3\xc4\x01Z\x12\x39If true, the action will also gather extended attributes.\x18\x01\"\x1b\x43ollect extended attributes\"\xec\x02\n\x10\x46ileFinderAction\x12\x63\n\x0b\x61\x63tion_type\x18\x01 \x01(\x0e\x32\x18.FileFinderAction.Action:\x04STATB.\xe2\xfc\xe3\xc4\x01(\x12\x1e\x41\x63tion to apply to found files\"\x06\x41\x63tion\x12*\n\x04hash\x18\x03 \x01(\x0b\x32\x1c.FileFinderHashActionOptions\x12\x32\n\x08\x64ownload\x18\x02 \x01(\x0b\x32 .FileFinderDownloadActionOptions\x12*\n\x04stat\x18\x04 \x01(\x0b\x32\x1c.FileFinderStatActionOptions\"R\n\x06\x41\x63tion\x12\x14\n\x04STAT\x10\x00\x1a\n\xea\xb9\xcb\xb9\x01\x04Stat\x12\x14\n\x04HASH\x10\x01\x1a\n\xea\xb9\xcb\xb9\x01\x04Hash\x12\x1c\n\x08\x44OWNLOAD\x10\x02\x1a\x0e\xea\xb9\xcb\xb9\x01\x08\x44ownload:\x13\xda\xfc\xe3\xc4\x01\r\x12\x0b\x61\x63tion_type\"\xb5\x07\n\x0e\x46ileFinderArgs\x12U\n\x05paths\x18\x01 \x03(\tBF\xe2\xfc\xe3\xc4\x01@\n\x0eGlobExpression\x12.A path to glob that can contain %% expansions.\x12G\n\x08pathtype\x18\x02 \x01(\x0e\x32\x12.PathSpec.PathType:\x02OSB\x1d\xe2\xfc\xe3\xc4\x01\x17\x12\x15Path type to glob in.\x12~\n\nconditions\x18\x05 \x03(\x0b\x32\x14.FileFinderConditionBT\xe2\xfc\xe3\xc4\x01N\x12LThese conditions will be applied to all files that match the path arguments.\x12!\n\x06\x61\x63tion\x18\x06 \x01(\x0b\x32\x11.FileFinderAction\x12\xbe\x01\n\x19process_non_regular_files\x18\x07 \x01(\x08\x42\x9a\x01\xe2\xfc\xe3\xc4\x01\x93\x01\x12\x8e\x01Look both into regular files and non-regular files (devices, named pipes, sockets). NOTE: This is very dangerous and should be used with care.\x18\x01\x12i\n\x0c\x66ollow_links\x18\x08 \x01(\x08:\x05\x66\x61lseBL\xe2\xfc\xe3\xc4\x01\x46\x12\x42Should symbolic links be followed in recursive directory listings.\x18\x01\x12\x80\x01\n\x04xdev\x18\t \x01(\x0e\x32\x14.FileFinderArgs.XDev:\x05LOCALBU\xe2\xfc\xe3\xc4\x01O\x12KBehavior when ecountering device boundaries while doing recursive searches.\x18\x01\"\xb0\x01\n\x04XDev\x12/\n\x05NEVER\x10\x00\x1a$\xea\xb9\xcb\xb9\x01\x1eNever cross device boundaries.\x12\x31\n\x06\x41LWAYS\x10\x01\x1a%\xea\xb9\xcb\xb9\x01\x1f\x41lways cross device boundaries.\x12\x44\n\x05LOCAL\x10\x02\x1a\x39\xea\xb9\xcb\xb9\x01\x33\x44\x65scend into file systems on physical devices only.\"\xf4\x01\n\x10\x46ileFinderResult\x12\x1e\n\nstat_entry\x18\x01 \x01(\x0b\x32\n.StatEntry\x12!\n\x07matches\x18\x02 \x03(\x0b\x32\x10.BufferReference\x12\x19\n\nhash_entry\x18\x03 \x01(\x0b\x32\x05.Hash\x12\x81\x01\n\x10transferred_file\x18\x05 \x01(\x0b\x32\x14.BlobImageDescriptorBQ\xe2\xfc\xe3\xc4\x01K\x12IAn descriptor for files uploaded as fragments to the transfer store flow.\"\xe6\x01\n\rFileReference\x12\x46\n\tclient_id\x18\x01 \x01(\tB3\xe2\xfc\xe3\xc4\x01-\n\tClientURN\x12 The client id the file lives on.\x12=\n\tpathspecs\x18\x02 \x03(\x0b\x32\t.PathSpecB\x1f\xe2\xfc\xe3\xc4\x01\x19\x12\x17The paths to the files.\x12N\n\rsha256_hashes\x18\x03 \x03(\x0c\x42\x37\xe2\xfc\xe3\xc4\x01\x31\n\nHashDigest\x12#A SHA256 hash digest for each file.\"\x94\x04\n\x17RegistryFinderCondition\x12\x35\n\x0e\x63ondition_type\x18\x01 \x01(\x0e\x32\x1d.RegistryFinderCondition.Type\x12\x45\n\x13value_literal_match\x18\x02 \x01(\x0b\x32(.FileFinderContentsLiteralMatchCondition\x12\x41\n\x11value_regex_match\x18\x03 \x01(\x0b\x32&.FileFinderContentsRegexMatchCondition\x12?\n\x11modification_time\x18\x04 \x01(\x0b\x32$.FileFinderModificationTimeCondition\x12&\n\x04size\x18\x05 \x01(\x0b\x32\x18.FileFinderSizeCondition\"\xb6\x01\n\x04Type\x12\x32\n\x13VALUE_LITERAL_MATCH\x10\x00\x1a\x19\xea\xb9\xcb\xb9\x01\x13Value literal match\x12.\n\x11VALUE_REGEX_MATCH\x10\x01\x1a\x17\xea\xb9\xcb\xb9\x01\x11Value regex match\x12.\n\x11MODIFICATION_TIME\x10\x02\x1a\x17\xea\xb9\xcb\xb9\x01\x11Modification time\x12\x1a\n\x04SIZE\x10\x03\x1a\x10\xea\xb9\xcb\xb9\x01\nValue size:\x16\xda\xfc\xe3\xc4\x01\x10\x12\x0e\x63ondition_type\"\xfe\x01\n\x12RegistryFinderArgs\x12^\n\nkeys_paths\x18\x01 \x03(\tBJ\xe2\xfc\xe3\xc4\x01\x44\n\x0eGlobExpression\x12\x32Glob expression for registry keys to be retrieved.\x12\x87\x01\n\nconditions\x18\x02 \x03(\x0b\x32\x18.RegistryFinderConditionBY\xe2\xfc\xe3\xc4\x01S\x12QThese conditions will be applied to all items that match the keys path arguments.\"\xa1\x02\n\x13MemoryCollectorArgs\x12i\n\rmax_file_size\x18\x07 \x01(\x04:\x0b\x33\x35\x34\x33\x33\x34\x38\x30\x31\x39\x32\x42\x45\xe2\xfc\xe3\xc4\x01?\x12=Maximum length to read off the dumped memory file (in bytes).\x12\x9e\x01\n\x15\x63heck_disk_free_space\x18\x08 \x01(\x08:\x04trueBy\xe2\xfc\xe3\xc4\x01s\x12oIf true, check for available disk space before doing a local copy. Ignored if the dump option isn\'t local copy.\x18\x01\"w\n\x1d\x41rtifactFallbackCollectorArgs\x12V\n\rartifact_name\x18\x01 \x01(\tB?\xe2\xfc\xe3\xc4\x01\x39\n\x0c\x41rtifactName\x12)Name of the artifact using this fallback.\"\x92\x02\n\x1fKnowledgeBaseInitializationArgs\x12s\n\x10require_complete\x18\x01 \x01(\x08:\x04trueBS\xe2\xfc\xe3\xc4\x01M\x12KIf true require all dependencies to be complete.  Raise if any are missing.\x12z\n\x0blightweight\x18\x02 \x01(\x08:\x04trueB_\xe2\xfc\xe3\xc4\x01Y\x12WIf true skip all heavyweight artifacts defined in Artifacts.knowledge_base_heavyweight.\"\x91\x01\n\x14\x45ndToEndTestFlowArgs\x12y\n\ntest_names\x18\x01 \x03(\tBe\xe2\xfc\xe3\xc4\x01_\x12]List of endtoend test classes to run. If none are specifed, run all automated endtoend tests.\"\xa2\x01\n\x12\x44iskVolumeInfoArgs\x12)\n\tpath_list\x18\x01 \x03(\tB\x16\xe2\xfc\xe3\xc4\x01\x10\x12\x0eList of paths.\x12\x61\n\x08pathtype\x18\x02 \x01(\x0e\x32\x12.PathSpec.PathType:\x02OSB7\xe2\xfc\xe3\xc4\x01\x31\x12-Type of path. Only OS is currently supported.\x18\x02\"\x99\x03\n\rCheckFlowArgs\x12R\n\x07only_os\x18\x01 \x03(\tBA\xe2\xfc\xe3\xc4\x01;\x12\x37Limit checks to hosts of OS type(s) [Linux|OSX|Windows]\x18\x01\x12\x43\n\x08only_cpe\x18\x02 \x03(\tB1\xe2\xfc\xe3\xc4\x01+\x12\'Limit checks to hosts with cpe strings.\x18\x01\x12G\n\nonly_label\x18\x03 \x03(\tB3\xe2\xfc\xe3\xc4\x01-\x12)Limit checks to hosts with label strings.\x18\x01\x12V\n\x0cmax_findings\x18\x04 \x03(\x04\x42@\xe2\xfc\xe3\xc4\x01:\x12\x36Summarize checks with more than N individual findings.\x18\x01\x12N\n\x0frestrict_checks\x18\x05 \x03(\tB5\xe2\xfc\xe3\xc4\x01/\x12-Only run checks with the specified check_ids.\"\xfe\x03\n\x12\x44umpFlashImageArgs\x12\x7f\n\tlog_level\x18\x01 \x01(\rBl\xe2\xfc\xe3\xc4\x01\x66\x12\x64Set the log level. If set, the log returned will include additional information reported by Chipsec.\x12\x86\x01\n\nchunk_size\x18\x02 \x01(\r:\x05\x36\x35\x35\x33\x36\x42k\xe2\xfc\xe3\xc4\x01\x65\x12\x61\x41 heartbeat will be emitted every chunk_size.This could be reduced in case the process times out.\x18\x01\x12\xd7\x01\n\rnotify_syslog\x18\x03 \x01(\x08\x42\xbf\x01\xe2\xfc\xe3\xc4\x01\xb8\x01\x12\xb5\x01If true, a message will be written by the client to the syslog before running the action. This can be used for debugging in case the client crashes during the image dumping process.J\x04\x08\x04\x10\x05\"\xcf\x01\n\x11\x44umpACPITableArgs\x12\x66\n\x07logging\x18\x01 \x01(\x08\x42U\xe2\xfc\xe3\xc4\x01O\x12MIf the logging is set to true, the client sends log, including Chipsec\'s log.\x12L\n\x14table_signature_list\x18\x02 \x03(\tB.\xe2\xfc\xe3\xc4\x01(\x12&Signature of ACPI tables to be dumped.J\x04\x08\x03\x10\x04\"\xe3\x0e\n\x16YaraProcessScanRequest\x12Y\n\x0eyara_signature\x18\x01 \x01(\tBA\xe2\xfc\xe3\xc4\x01;\n\rYaraSignature\x12*The yara signature(s) to use for scanning.\x12N\n\x04pids\x18\x02 \x03(\x04\x42@\xe2\xfc\xe3\xc4\x01:\x12\x38The pids to scan. No pids given indicates all processes.\x12n\n\rprocess_regex\x18\x03 \x01(\tBW\xe2\xfc\xe3\xc4\x01Q\x12OA regex to match against the process name. Only matching names will be scanned.\x12s\n\x19include_errors_in_results\x18\x0e \x01(\x08:\x05\x66\x61lseBI\xe2\xfc\xe3\xc4\x01\x43\x12?Include processes that we failed to scan into returned results.\x18\x01\x12{\n\x19include_misses_in_results\x18\x0f \x01(\x08:\x05\x66\x61lseBQ\xe2\xfc\xe3\xc4\x01K\x12GInclude processes that came back without matches into returned results.\x18\x01\x12\x80\x01\n\x12ignore_grr_process\x18\x04 \x01(\x08:\x04trueB^\xe2\xfc\xe3\xc4\x01X\x12TBy default, the GRR process is not scanned. Clear this flag to change this behavior.\x18\x01\x12|\n\x13per_process_timeout\x18\x05 \x01(\rB_\xe2\xfc\xe3\xc4\x01Y\x12WA timeout in seconds that is applied while scanning; applies to each scan individually.\x12\x62\n\nchunk_size\x18\x06 \x01(\x04:\t104857600BC\xe2\xfc\xe3\xc4\x01=\x12\x39The chunk size to use when scanning large memory regions.\x18\x01\x12\x65\n\x0coverlap_size\x18\x07 \x01(\x04:\x08\x31\x30\x34\x38\x35\x37\x36\x30\x42\x45\xe2\xfc\xe3\xc4\x01?\x12;The overlap size to use when scanning large memory regions.\x18\x01\x12\x8e\x01\n\x14skip_special_regions\x18\x08 \x01(\x08:\x05\x66\x61lseBi\xe2\xfc\xe3\xc4\x01\x63\x12_Set this flag to avoid scanning device backed regions and guard pages. Applies to Windows only.\x18\x01\x12o\n\x11skip_mapped_files\x18\t \x01(\x08:\x04trueBN\xe2\xfc\xe3\xc4\x01H\x12\x44Set this flag to avoid scanning mapped files. Applies to Linux only.\x18\x01\x12y\n\x13skip_shared_regions\x18\n \x01(\x08:\x05\x66\x61lseBU\xe2\xfc\xe3\xc4\x01O\x12KSet this flag to avoid scanning shared regions. Applies to Linux and macOS.\x18\x01\x12\x81\x01\n\x17skip_executable_regions\x18\x0b \x01(\x08:\x05\x66\x61lseBY\xe2\xfc\xe3\xc4\x01S\x12OSet this flag to avoid scanning executable regions. Applies to Linux and macOS.\x18\x01\x12}\n\x15skip_readonly_regions\x18\x0c \x01(\x08:\x05\x66\x61lseBW\xe2\xfc\xe3\xc4\x01Q\x12MSet this flag to avoid scanning readonly regions. Applies to Linux and macOS.\x18\x01\x12y\n\x15\x64ump_process_on_match\x18\r \x01(\x08:\x05\x66\x61lseBS\xe2\xfc\xe3\xc4\x01M\x12ISet this flag to schedule a process memory dump on every signature match.\x18\x01\x12u\n\x17max_results_per_process\x18\x10 \x01(\rBT\xe2\xfc\xe3\xc4\x01N\x12JSet this to limit the number of matches returned for each process scanned.\x18\x01\"\x9e\x01\n\x10YaraProcessError\x12U\n\x07process\x18\x01 \x01(\x0b\x32\x08.ProcessB:\xe2\xfc\xe3\xc4\x01\x34\x12\x32The process that returned an error while scanning.\x12\x33\n\x05\x65rror\x18\x02 \x01(\tB$\xe2\xfc\xe3\xc4\x01\x1e\x12\x1cThe error that was returned.\"\xba\x01\n\x0fYaraStringMatch\x12?\n\tstring_id\x18\x01 \x01(\tB,\xe2\xfc\xe3\xc4\x01&\x12$The name of the string that matched.\x12\x31\n\x06offset\x18\x02 \x01(\x04\x42!\xe2\xfc\xe3\xc4\x01\x1b\x12\x19The offset into the data.\x12\x33\n\x04\x64\x61ta\x18\x03 \x01(\x0c\x42%\xe2\xfc\xe3\xc4\x01\x1f\x12\x1dThe actual data that matched.\"\xa1\x01\n\tYaraMatch\x12?\n\trule_name\x18\x01 \x01(\tB,\xe2\xfc\xe3\xc4\x01&\x12$The name of the rule that triggered.\x12S\n\x0estring_matches\x18\x02 \x03(\x0b\x32\x10.YaraStringMatchB)\xe2\xfc\xe3\xc4\x01#\x12!The list of strings that matched.\"\xf7\x01\n\x14YaraProcessScanMatch\x12Q\n\x07process\x18\x01 \x01(\x0b\x32\x08.ProcessB6\xe2\xfc\xe3\xc4\x01\x30\x12.The process that returned one or more matches.\x12=\n\x05match\x18\x02 \x03(\x0b\x32\n.YaraMatchB\"\xe2\xfc\xe3\xc4\x01\x1c\x12\x1a\x44\x65tails about the matches.\x12M\n\x0cscan_time_us\x18\x03 \x01(\x04\x42\x37\xe2\xfc\xe3\xc4\x01\x31\x12/Time in microseconds taken to perform the scan.\"\xae\x01\n\x13YaraProcessScanMiss\x12H\n\x07process\x18\x01 \x01(\x0b\x32\x08.ProcessB-\xe2\xfc\xe3\xc4\x01\'\x12%The process that returned no matches.\x12M\n\x0cscan_time_us\x18\x02 \x01(\x04\x42\x37\xe2\xfc\xe3\xc4\x01\x31\x12/Time in microseconds taken to perform the scan.\"\xb1\x02\n\x17YaraProcessScanResponse\x12[\n\x07matches\x18\x01 \x03(\x0b\x32\x15.YaraProcessScanMatchB3\xe2\xfc\xe3\xc4\x01-\x12+A list of processes with signature matches.\x12V\n\x06\x65rrors\x18\x02 \x03(\x0b\x32\x11.YaraProcessErrorB3\xe2\xfc\xe3\xc4\x01-\x12+A list of processes that we failed to scan.\x12\x61\n\x06misses\x18\x03 \x03(\x0b\x32\x14.YaraProcessScanMissB;\xe2\xfc\xe3\xc4\x01\x35\x12\x33\x41 list of processes that came back without matches.\"\xee\n\n\x13YaraProcessDumpArgs\x12-\n\x04pids\x18\x01 \x03(\x04\x42\x1f\xe2\xfc\xe3\xc4\x01\x19\x12\x17\x41 list of pids to dump.\x12m\n\rprocess_regex\x18\x02 \x01(\tBV\xe2\xfc\xe3\xc4\x01P\x12NA regex to match against the process name. Only matching names will be dumped.\x12\x7f\n\x12ignore_grr_process\x18\x03 \x01(\x08:\x04trueB]\xe2\xfc\xe3\xc4\x01W\x12SBy default, the GRR process is not dumped. Clear this flag to change this behavior.\x18\x01\x12p\n\x12\x64ump_all_processes\x18\x04 \x01(\x08:\x05\x66\x61lseBM\xe2\xfc\xe3\xc4\x01G\x12\x43This dumps all processes. Might return lots of data, use with care.\x18\x01\x12\xe7\x01\n\nsize_limit\x18\x05 \x01(\x04:\x01\x30\x42\xcf\x01\xe2\xfc\xe3\xc4\x01\xc8\x01\n\x08\x42yteSize\x12\xb9\x01Maximum amount of raw process memory to dump. Applies to all requested processes together. The first memory block going over the limit will not be written anymore. 0 indicates no limit.\x18\x01\x12\x61\n\nchunk_size\x18\x06 \x01(\x04:\t104857600BB\xe2\xfc\xe3\xc4\x01<\x12\x38The chunk size to use when reading large memory regions.\x18\x01\x12\x8d\x01\n\x14skip_special_regions\x18\x07 \x01(\x08:\x05\x66\x61lseBh\xe2\xfc\xe3\xc4\x01\x62\x12^Set this flag to avoid dumping device backed regions and guard pages. Applies to Windows only.\x18\x01\x12n\n\x11skip_mapped_files\x18\x08 \x01(\x08:\x04trueBM\xe2\xfc\xe3\xc4\x01G\x12\x43Set this flag to avoid dumping mapped files. Applies to Linux only.\x18\x01\x12x\n\x13skip_shared_regions\x18\t \x01(\x08:\x05\x66\x61lseBT\xe2\xfc\xe3\xc4\x01N\x12JSet this flag to avoid dumping shared regions. Applies to Linux and macOS.\x18\x01\x12\x80\x01\n\x17skip_executable_regions\x18\n \x01(\x08:\x05\x66\x61lseBX\xe2\xfc\xe3\xc4\x01R\x12NSet this flag to avoid dumping executable regions. Applies to Linux and macOS.\x18\x01\x12|\n\x15skip_readonly_regions\x18\x0b \x01(\x08:\x05\x66\x61lseBV\xe2\xfc\xe3\xc4\x01P\x12LSet this flag to avoid dumping readonly regions. Applies to Linux and macOS.\x18\x01\"\xf6\x02\n\x1aYaraProcessDumpInformation\x12G\n\x07process\x18\x01 \x01(\x0b\x32\x08.ProcessB,\xe2\xfc\xe3\xc4\x01&\x12$The process that was dumped to disk.\x12P\n\ndump_files\x18\x02 \x03(\x0b\x32\t.PathSpecB1\xe2\xfc\xe3\xc4\x01+\x12)The files that contain the process image.\x12n\n\x05\x65rror\x18\x03 \x01(\tB_\xe2\xfc\xe3\xc4\x01Y\x12WErrors while dumping will be reported here. Mostly used when exceeding the bytes limit.\x12M\n\x0c\x64ump_time_us\x18\x04 \x01(\x04\x42\x37\xe2\xfc\xe3\xc4\x01\x31\x12/Time in microseconds taken to dump the process.\"\xe5\x01\n\x17YaraProcessDumpResponse\x12r\n\x10\x64umped_processes\x18\x01 \x03(\x0b\x32\x1b.YaraProcessDumpInformationB;\xe2\xfc\xe3\xc4\x01\x35\x12\x33Information about processes that we dumped to disk.\x12V\n\x06\x65rrors\x18\x02 \x03(\x0b\x32\x11.YaraProcessErrorB3\xe2\xfc\xe3\xc4\x01-\x12+A list of processes that we failed to dump.\"f\n\x0bNetstatArgs\x12W\n\x0elistening_only\x18\x01 \x01(\x08:\x05\x66\x61lseB8\xe2\xfc\xe3\xc4\x01\x32\x12\x30If set, only listening connections are returned.\"u\n\x1aListNetworkConnectionsArgs\x12W\n\x0elistening_only\x18\x01 \x01(\x08:\x05\x66\x61lseB8\xe2\xfc\xe3\xc4\x01\x32\x12\x30If set, only listening connections are returned.')
  ,
  dependencies=[grr__response__proto_dot_jobs__pb2.DESCRIPTOR,grr__response__proto_dot_knowledge__base__pb2.DESCRIPTOR,grr__response__proto_dot_objects__pb2.DESCRIPTOR,grr__response__proto_dot_output__plugin__pb2.DESCRIPTOR,grr__response__proto_dot_semantic__pb2.DESCRIPTOR,grr__response__proto_dot_sysinfo__pb2.DESCRIPTOR,])



_FLOWCONTEXT_STATE = _descriptor.EnumDescriptor(
  name='State',
  full_name='FlowContext.State',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='RUNNING', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='TERMINATED', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='ERROR', index=2, number=3,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='WELL_KNOWN', index=3, number=2,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=1338,
  serialized_end=1401,
)
_sym_db.RegisterEnumDescriptor(_FLOWCONTEXT_STATE)

_FLOWLIKEOBJECTREFERENCE_OBJECTTYPE = _descriptor.EnumDescriptor(
  name='ObjectType',
  full_name='FlowLikeObjectReference.ObjectType',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='UNKNOWN', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='FLOW_REFERENCE', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='HUNT_REFERENCE', index=2, number=2,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=2315,
  serialized_end=2380,
)
_sym_db.RegisterEnumDescriptor(_FLOWLIKEOBJECTREFERENCE_OBJECTTYPE)

_BAREGREPSPEC_MODE = _descriptor.EnumDescriptor(
  name='Mode',
  full_name='BareGrepSpec.Mode',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='ALL_HITS', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='FIRST_HIT', index=1, number=1,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=9473,
  serialized_end=9508,
)
_sym_db.RegisterEnumDescriptor(_BAREGREPSPEC_MODE)

_ARTIFACTCOLLECTORFLOWARGS_DEPENDENCY = _descriptor.EnumDescriptor(
  name='Dependency',
  full_name='ArtifactCollectorFlowArgs.Dependency',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='USE_CACHED', index=0, number=0,
      options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001^Use the knowledgebase as a cache. If knowledgebase isn\'t present, a new one will be populated.')),
      type=None),
    _descriptor.EnumValueDescriptor(
      name='IGNORE_DEPS', index=1, number=1,
      options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\024Ignore dependencies.')),
      type=None),
    _descriptor.EnumValueDescriptor(
      name='FETCH_NOW', index=2, number=2,
      options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\0012Fetch only required dependencies for this artifact')),
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=12977,
  serialized_end=13225,
)
_sym_db.RegisterEnumDescriptor(_ARTIFACTCOLLECTORFLOWARGS_DEPENDENCY)

_FILEFINDERCONTENTSREGEXMATCHCONDITION_MODE = _descriptor.EnumDescriptor(
  name='Mode',
  full_name='FileFinderContentsRegexMatchCondition.Mode',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='ALL_HITS', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='FIRST_HIT', index=1, number=1,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=9473,
  serialized_end=9508,
)
_sym_db.RegisterEnumDescriptor(_FILEFINDERCONTENTSREGEXMATCHCONDITION_MODE)

_FILEFINDERCONTENTSLITERALMATCHCONDITION_MODE = _descriptor.EnumDescriptor(
  name='Mode',
  full_name='FileFinderContentsLiteralMatchCondition.Mode',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='ALL_HITS', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='FIRST_HIT', index=1, number=1,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=9473,
  serialized_end=9508,
)
_sym_db.RegisterEnumDescriptor(_FILEFINDERCONTENTSLITERALMATCHCONDITION_MODE)

_FILEFINDERCONDITION_TYPE = _descriptor.EnumDescriptor(
  name='Type',
  full_name='FileFinderCondition.Type',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='MODIFICATION_TIME', index=0, number=0,
      options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\021Modification time')),
      type=None),
    _descriptor.EnumValueDescriptor(
      name='ACCESS_TIME', index=1, number=1,
      options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\013Access time')),
      type=None),
    _descriptor.EnumValueDescriptor(
      name='INODE_CHANGE_TIME', index=2, number=2,
      options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\021Inode change time')),
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SIZE', index=3, number=3,
      options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\tFile size')),
      type=None),
    _descriptor.EnumValueDescriptor(
      name='EXT_FLAGS', index=4, number=6,
      options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\023Extended file flags')),
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CONTENTS_REGEX_MATCH', index=5, number=4,
      options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\024Contents regex match')),
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CONTENTS_LITERAL_MATCH', index=6, number=5,
      options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\026Contents literal match')),
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=25286,
  serialized_end=25605,
)
_sym_db.RegisterEnumDescriptor(_FILEFINDERCONDITION_TYPE)

_FILEFINDERHASHACTIONOPTIONS_OVERSIZEDFILEPOLICY = _descriptor.EnumDescriptor(
  name='OversizedFilePolicy',
  full_name='FileFinderHashActionOptions.OversizedFilePolicy',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='SKIP', index=0, number=0,
      options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\024Skip oversized files')),
      type=None),
    _descriptor.EnumValueDescriptor(
      name='HASH_TRUNCATED', index=1, number=1,
      options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001*Hash truncated versions of oversized files')),
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=26076,
  serialized_end=26205,
)
_sym_db.RegisterEnumDescriptor(_FILEFINDERHASHACTIONOPTIONS_OVERSIZEDFILEPOLICY)

_FILEFINDERDOWNLOADACTIONOPTIONS_OVERSIZEDFILEPOLICY = _descriptor.EnumDescriptor(
  name='OversizedFilePolicy',
  full_name='FileFinderDownloadActionOptions.OversizedFilePolicy',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='SKIP', index=0, number=0,
      options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\024Skip oversized files')),
      type=None),
    _descriptor.EnumValueDescriptor(
      name='HASH_TRUNCATED', index=1, number=1,
      options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\0018Hash truncated version of the file (without downloading)')),
      type=None),
    _descriptor.EnumValueDescriptor(
      name='DOWNLOAD_TRUNCATED', index=2, number=2,
      options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001&Download truncated version of the file')),
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=27031,
  serialized_end=27244,
)
_sym_db.RegisterEnumDescriptor(_FILEFINDERDOWNLOADACTIONOPTIONS_OVERSIZEDFILEPOLICY)

_FILEFINDERACTION_ACTION = _descriptor.EnumDescriptor(
  name='Action',
  full_name='FileFinderAction.Action',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='STAT', index=0, number=0,
      options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\004Stat')),
      type=None),
    _descriptor.EnumValueDescriptor(
      name='HASH', index=1, number=1,
      options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\004Hash')),
      type=None),
    _descriptor.EnumValueDescriptor(
      name='DOWNLOAD', index=2, number=2,
      options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\010Download')),
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=27836,
  serialized_end=27918,
)
_sym_db.RegisterEnumDescriptor(_FILEFINDERACTION_ACTION)

_FILEFINDERARGS_XDEV = _descriptor.EnumDescriptor(
  name='XDev',
  full_name='FileFinderArgs.XDev',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='NEVER', index=0, number=0,
      options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\036Never cross device boundaries.')),
      type=None),
    _descriptor.EnumValueDescriptor(
      name='ALWAYS', index=1, number=1,
      options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\037Always cross device boundaries.')),
      type=None),
    _descriptor.EnumValueDescriptor(
      name='LOCAL', index=2, number=2,
      options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\0013Descend into file systems on physical devices only.')),
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=28715,
  serialized_end=28891,
)
_sym_db.RegisterEnumDescriptor(_FILEFINDERARGS_XDEV)

_REGISTRYFINDERCONDITION_TYPE = _descriptor.EnumDescriptor(
  name='Type',
  full_name='RegistryFinderCondition.Type',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='VALUE_LITERAL_MATCH', index=0, number=0,
      options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\023Value literal match')),
      type=None),
    _descriptor.EnumValueDescriptor(
      name='VALUE_REGEX_MATCH', index=1, number=1,
      options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\021Value regex match')),
      type=None),
    _descriptor.EnumValueDescriptor(
      name='MODIFICATION_TIME', index=2, number=2,
      options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\021Modification time')),
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SIZE', index=3, number=3,
      options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\nValue size')),
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=29700,
  serialized_end=29882,
)
_sym_db.RegisterEnumDescriptor(_REGISTRYFINDERCONDITION_TYPE)


_CLOUDMETADATAREQUEST = _descriptor.Descriptor(
  name='CloudMetadataRequest',
  full_name='CloudMetadataRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='bios_version_regex', full_name='CloudMetadataRequest.bios_version_regex', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='service_name_regex', full_name='CloudMetadataRequest.service_name_regex', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='timeout', full_name='CloudMetadataRequest.timeout', index=2,
      number=3, type=2, cpp_type=6, label=1,
      has_default_value=True, default_value=float(1),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='url', full_name='CloudMetadataRequest.url', index=3,
      number=4, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='headers', full_name='CloudMetadataRequest.headers', index=4,
      number=5, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='label', full_name='CloudMetadataRequest.label', index=5,
      number=6, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001z\022xLabel to apply to the CloudMetadataResponse result. If unset, the URL is used as the label in the CloudMetadataResponse.'))),
    _descriptor.FieldDescriptor(
      name='instance_type', full_name='CloudMetadataRequest.instance_type', index=6,
      number=7, type=14, cpp_type=8, label=1,
      has_default_value=True, default_value=-1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\024\022\022AMAZON/GOOGLE etc.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=250,
  serialized_end=619,
)


_CLOUDMETADATAREQUESTS = _descriptor.Descriptor(
  name='CloudMetadataRequests',
  full_name='CloudMetadataRequests',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='requests', full_name='CloudMetadataRequests.requests', index=0,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=621,
  serialized_end=685,
)


_CLOUDMETADATARESPONSE = _descriptor.Descriptor(
  name='CloudMetadataResponse',
  full_name='CloudMetadataResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='label', full_name='CloudMetadataResponse.label', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='text', full_name='CloudMetadataResponse.text', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=687,
  serialized_end=739,
)


_CLOUDMETADATARESPONSES = _descriptor.Descriptor(
  name='CloudMetadataResponses',
  full_name='CloudMetadataResponses',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='responses', full_name='CloudMetadataResponses.responses', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='instance_type', full_name='CloudMetadataResponses.instance_type', index=1,
      number=2, type=14, cpp_type=8, label=1,
      has_default_value=True, default_value=-1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=741,
  serialized_end=867,
)


_FLOWCONTEXT = _descriptor.Descriptor(
  name='FlowContext',
  full_name='FlowContext',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='backtrace', full_name='FlowContext.backtrace', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='client_resources', full_name='FlowContext.client_resources', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='create_time', full_name='FlowContext.create_time', index=2,
      number=3, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\r\n\013RDFDatetime'))),
    _descriptor.FieldDescriptor(
      name='creator', full_name='FlowContext.creator', index=3,
      number=4, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='current_state', full_name='FlowContext.current_state', index=4,
      number=5, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='kill_timestamp', full_name='FlowContext.kill_timestamp', index=5,
      number=6, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\r\n\013RDFDatetime'))),
    _descriptor.FieldDescriptor(
      name='network_bytes_sent', full_name='FlowContext.network_bytes_sent', index=6,
      number=7, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='next_outbound_id', full_name='FlowContext.next_outbound_id', index=7,
      number=8, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='next_processed_request', full_name='FlowContext.next_processed_request', index=8,
      number=9, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='output_plugins_states', full_name='FlowContext.output_plugins_states', index=9,
      number=10, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='outstanding_requests', full_name='FlowContext.outstanding_requests', index=10,
      number=11, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='session_id', full_name='FlowContext.session_id', index=11,
      number=13, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\013\n\tSessionID'))),
    _descriptor.FieldDescriptor(
      name='state', full_name='FlowContext.state', index=12,
      number=14, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='status', full_name='FlowContext.status', index=13,
      number=15, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _FLOWCONTEXT_STATE,
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=870,
  serialized_end=1407,
)


_HUNTCONTEXT = _descriptor.Descriptor(
  name='HuntContext',
  full_name='HuntContext',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='client_resources', full_name='HuntContext.client_resources', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='create_time', full_name='HuntContext.create_time', index=1,
      number=2, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\r\n\013RDFDatetime'))),
    _descriptor.FieldDescriptor(
      name='creator', full_name='HuntContext.creator', index=2,
      number=3, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='expires', full_name='HuntContext.expires', index=3,
      number=4, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\r\n\013RDFDatetime'))),
    _descriptor.FieldDescriptor(
      name='network_bytes_sent', full_name='HuntContext.network_bytes_sent', index=4,
      number=5, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='next_client_due', full_name='HuntContext.next_client_due', index=5,
      number=6, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\r\n\013RDFDatetime'))),
    _descriptor.FieldDescriptor(
      name='next_outbound_id', full_name='HuntContext.next_outbound_id', index=6,
      number=7, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='next_processed_request', full_name='HuntContext.next_processed_request', index=7,
      number=8, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='session_id', full_name='HuntContext.session_id', index=8,
      number=10, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\013\n\tSessionID'))),
    _descriptor.FieldDescriptor(
      name='start_time', full_name='HuntContext.start_time', index=9,
      number=11, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\r\n\013RDFDatetime'))),
    _descriptor.FieldDescriptor(
      name='usage_stats', full_name='HuntContext.usage_stats', index=10,
      number=12, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='clients_with_results_count', full_name='HuntContext.clients_with_results_count', index=11,
      number=13, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='results_count', full_name='HuntContext.results_count', index=12,
      number=14, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='completed_clients_count', full_name='HuntContext.completed_clients_count', index=13,
      number=15, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='clients_queued_count', full_name='HuntContext.clients_queued_count', index=14,
      number=16, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1410,
  serialized_end=1948,
)


_ACLTOKEN = _descriptor.Descriptor(
  name='ACLToken',
  full_name='ACLToken',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='username', full_name='ACLToken.username', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='reason', full_name='ACLToken.reason', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='requested_access', full_name='ACLToken.requested_access', index=2,
      number=3, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='expiry', full_name='ACLToken.expiry', index=3,
      number=5, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001+\n\013RDFDatetime\022\034When does this token expire?'))),
    _descriptor.FieldDescriptor(
      name='source_ips', full_name='ACLToken.source_ips', index=4,
      number=6, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='process', full_name='ACLToken.process', index=5,
      number=7, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='is_emergency', full_name='ACLToken.is_emergency', index=6,
      number=8, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1951,
  serialized_end=2147,
)


_FLOWLIKEOBJECTREFERENCE = _descriptor.Descriptor(
  name='FlowLikeObjectReference',
  full_name='FlowLikeObjectReference',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='object_type', full_name='FlowLikeObjectReference.object_type', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='flow_reference', full_name='FlowLikeObjectReference.flow_reference', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='hunt_reference', full_name='FlowLikeObjectReference.hunt_reference', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _FLOWLIKEOBJECTREFERENCE_OBJECTTYPE,
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('\332\374\343\304\001\r\022\013object_type')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2150,
  serialized_end=2401,
)


_FLOWRUNNERARGS = _descriptor.Descriptor(
  name='FlowRunnerArgs',
  full_name='FlowRunnerArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='priority', full_name='FlowRunnerArgs.priority', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=True, default_value=1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001$\022 The priority used for this flow.\030\001'))),
    _descriptor.FieldDescriptor(
      name='notify_to_user', full_name='FlowRunnerArgs.notify_to_user', index=1,
      number=2, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=True,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001G\022/Should a notification be sent to the initiator.\"\024Notify at Completion'))),
    _descriptor.FieldDescriptor(
      name='send_replies', full_name='FlowRunnerArgs.send_replies', index=2,
      number=3, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=True,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001E\0223Should send replies back to the parent flow or not.\030\002\"\014Send Replies'))),
    _descriptor.FieldDescriptor(
      name='client_id', full_name='FlowRunnerArgs.client_id', index=3,
      number=5, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0013\n\tClientURN\022$The client id this flow operates on.\030\002'))),
    _descriptor.FieldDescriptor(
      name='queue', full_name='FlowRunnerArgs.queue', index=4,
      number=6, type=9, cpp_type=9, label=1,
      has_default_value=True, default_value=_b("F").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001*\n\006RDFURN\022\036The queue to use for the flow.\030\002'))),
    _descriptor.FieldDescriptor(
      name='event_id', full_name='FlowRunnerArgs.event_id', index=5,
      number=7, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0010\022,A logging event id for issuing further logs.\030\002'))),
    _descriptor.FieldDescriptor(
      name='cpu_limit', full_name='FlowRunnerArgs.cpu_limit', index=6,
      number=9, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=7200,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0018\0224A limit on the client cpu seconds used by this flow.\030\001'))),
    _descriptor.FieldDescriptor(
      name='network_bytes_limit', full_name='FlowRunnerArgs.network_bytes_limit', index=7,
      number=13, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0013\022/A limit on the total traffic used by this flow.\030\001'))),
    _descriptor.FieldDescriptor(
      name='request_state', full_name='FlowRunnerArgs.request_state', index=8,
      number=10, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001)\022%The request state of the parent flow.\030\002'))),
    _descriptor.FieldDescriptor(
      name='flow_name', full_name='FlowRunnerArgs.flow_name', index=9,
      number=11, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0017\0223The name of the class implementing the flow to run.\030\002'))),
    _descriptor.FieldDescriptor(
      name='base_session_id', full_name='FlowRunnerArgs.base_session_id', index=10,
      number=12, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001M\n\006RDFURN\022AThe session id for the flow runner. If not specified we make one.\030\002'))),
    _descriptor.FieldDescriptor(
      name='start_time', full_name='FlowRunnerArgs.start_time', index=11,
      number=15, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001d\n\013RDFDatetime\022SDo not process this flow until this time. (Implies the flow is run asyncronously.).\030\001'))),
    _descriptor.FieldDescriptor(
      name='logs_collection_urn', full_name='FlowRunnerArgs.logs_collection_urn', index=12,
      number=17, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0017\n\006RDFURN\022+The logs collection to log to for the flow.\030\002'))),
    _descriptor.FieldDescriptor(
      name='write_intermediate_results', full_name='FlowRunnerArgs.write_intermediate_results', index=13,
      number=18, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001m\022iIf true, all child flow results received with sendreply will be written to the flow\'s default collection.\030\001'))),
    _descriptor.FieldDescriptor(
      name='require_fastpoll', full_name='FlowRunnerArgs.require_fastpoll', index=14,
      number=19, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=True,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\263\001\022\256\001This value is passed to the client during CallClient, and by default will cause the client to enter fastpoll afterprocessing the message. Users shouldn\'t modify this setting.\030\001'))),
    _descriptor.FieldDescriptor(
      name='output_plugins', full_name='FlowRunnerArgs.output_plugins', index=15,
      number=21, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\206\001\022rOutput plugins used for this flow. These plugins will be applied to flow results as soon as the flow is completed.\030\002\"\016Output Plugins'))),
    _descriptor.FieldDescriptor(
      name='original_flow', full_name='FlowRunnerArgs.original_flow', index=16,
      number=22, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001V\022RIf this flow is a copy of another flow, we store a reference to the original here.\030\002'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2404,
  serialized_end=4342,
)


_HUNTRUNNERARGS = _descriptor.Descriptor(
  name='HuntRunnerArgs',
  full_name='HuntRunnerArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='hunt_name', full_name='HuntRunnerArgs.hunt_name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0015\0223The name of the class implementing the hunt to run.'))),
    _descriptor.FieldDescriptor(
      name='description', full_name='HuntRunnerArgs.description', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\037\022\035The description of this hunt.'))),
    _descriptor.FieldDescriptor(
      name='client_rule_set', full_name='HuntRunnerArgs.client_rule_set', index=2,
      number=18, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\037\022\035Rules that trigger this hunt.'))),
    _descriptor.FieldDescriptor(
      name='priority', full_name='HuntRunnerArgs.priority', index=3,
      number=5, type=14, cpp_type=8, label=1,
      has_default_value=True, default_value=1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001$\022 The priority used for this flow.\030\001'))),
    _descriptor.FieldDescriptor(
      name='queue', full_name='HuntRunnerArgs.queue', index=4,
      number=7, type=9, cpp_type=9, label=1,
      has_default_value=True, default_value=_b("H").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001*\n\006RDFURN\022\036The queue to use for the hunt.\030\002'))),
    _descriptor.FieldDescriptor(
      name='cpu_limit', full_name='HuntRunnerArgs.cpu_limit', index=5,
      number=9, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001Q\022=An overall limit on the client cpu seconds used by this hunt.\030\001\"\016Hunt CPU Limit'))),
    _descriptor.FieldDescriptor(
      name='network_bytes_limit', full_name='HuntRunnerArgs.network_bytes_limit', index=6,
      number=13, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001X\0228An overall limit on the total traffic used by this hunt.\030\001\"\032Hunt Network Limit (bytes)'))),
    _descriptor.FieldDescriptor(
      name='client_limit', full_name='HuntRunnerArgs.client_limit', index=7,
      number=10, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=100,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\275\002\022\254\002Maximum number of clients participating in the hunt. Best practice is for all hunts to use a limit to start with and remove it only when client impact has been assessed by looking at hunt stats. Note that this limit can be overshot by a small number of clients if there are multiple workers running. \"\014Client Limit'))),
    _descriptor.FieldDescriptor(
      name='crash_limit', full_name='HuntRunnerArgs.crash_limit', index=8,
      number=25, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001l\022]Maximum number of clients that are allowed to crash before the hunt is automatically stopped.\"\013Crash Limit'))),
    _descriptor.FieldDescriptor(
      name='avg_results_per_client_limit', full_name='HuntRunnerArgs.avg_results_per_client_limit', index=9,
      number=27, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\346\001\022\277\001If the average number of results per client becomes greater than this limit, the hunt will be automatically stopped. The average is calculated only after 1000 clients report back to the hunt.\030\001\" Average Results-per-Client Limit'))),
    _descriptor.FieldDescriptor(
      name='avg_cpu_seconds_per_client_limit', full_name='HuntRunnerArgs.avg_cpu_seconds_per_client_limit', index=10,
      number=28, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\362\001\022\277\001If the average CPU usage seconds per client becomes greater than this limit, the hunt will be automatically stopped. The average is calculated only after 1000 clients report back to the hunt.\030\001\",Average CPU-Usage-per-Client Limit (seconds)'))),
    _descriptor.FieldDescriptor(
      name='avg_network_bytes_per_client_limit', full_name='HuntRunnerArgs.avg_network_bytes_per_client_limit', index=11,
      number=29, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\360\001\022\273\001If the average network usage per client becomes greater than this limit, the hunt will be automatically stopped. The average is calculated only after 1000 clients report back to the hunt.\030\001\".Average Network-Usage-per-Client Limit (bytes)'))),
    _descriptor.FieldDescriptor(
      name='expiry_time', full_name='HuntRunnerArgs.expiry_time', index=12,
      number=11, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=1209600,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0012\n\010Duration\022\031Expiry time for the hunt.\"\013Expiry Time'))),
    _descriptor.FieldDescriptor(
      name='client_rate', full_name='HuntRunnerArgs.client_rate', index=13,
      number=12, type=2, cpp_type=6, label=1,
      has_default_value=True, default_value=float(20.5),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001p\022nThe maximum number of clients to engage per minute. A rate of 0 means to schedule clients as fast as possible.'))),
    _descriptor.FieldDescriptor(
      name='add_foreman_rules', full_name='HuntRunnerArgs.add_foreman_rules', index=14,
      number=16, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=True,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001{\022wShould always be true for user-scheduled hunts. Set to false for system-created hunts that use ManuallyScheduleClients.\030\002'))),
    _descriptor.FieldDescriptor(
      name='crash_alert_email', full_name='HuntRunnerArgs.crash_alert_email', index=15,
      number=17, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001Z\022VAn email address to send mails to when a client crashes during execution of this hunt.\030\001'))),
    _descriptor.FieldDescriptor(
      name='output_plugins', full_name='HuntRunnerArgs.output_plugins', index=16,
      number=22, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001e\022QOutput plugins used for this hunt. These plugins will be applied to hunt results.\030\002\"\016Output Plugins'))),
    _descriptor.FieldDescriptor(
      name='per_client_cpu_limit', full_name='HuntRunnerArgs.per_client_cpu_limit', index=17,
      number=23, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=600,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001I\022/A cpu limit imposed on each client in the hunt.\030\001\"\024Per Client CPU Limit'))),
    _descriptor.FieldDescriptor(
      name='per_client_network_limit_bytes', full_name='HuntRunnerArgs.per_client_network_limit_bytes', index=18,
      number=24, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=100000000,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001d\022>A network limit (in bytes) imposed on each client in the hunt.\030\001\" Per Client Network Limit (bytes)'))),
    _descriptor.FieldDescriptor(
      name='original_object', full_name='HuntRunnerArgs.original_object', index=19,
      number=26, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001^\022ZIf this hunt is a copy of another hunt or flow, we store a reference to the original here.\030\002'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4345,
  serialized_end=7468,
)


_SAMPLEHUNTARGS = _descriptor.Descriptor(
  name='SampleHuntArgs',
  full_name='SampleHuntArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='filename', full_name='SampleHuntArgs.filename', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=True, default_value=_b("/tmp/evil.txt").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\036\022\034evil filename to search for.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=7470,
  serialized_end=7557,
)


_FLOWREQUEST = _descriptor.Descriptor(
  name='FlowRequest',
  full_name='FlowRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='client_ids', full_name='FlowRequest.client_ids', index=0,
      number=1, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001.\n\tClientURN\022!The clients to start the flow on.'))),
    _descriptor.FieldDescriptor(
      name='args', full_name='FlowRequest.args', index=1,
      number=5, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\226\001\022\201\001Args to the flow. These depend on the flow_name parameter.It is expected that this field contains an instance of flow\'s arg_type.*\020GetFlowArgsClass'))),
    _descriptor.FieldDescriptor(
      name='runner_args', full_name='FlowRequest.runner_args', index=2,
      number=6, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\032\022\030Args to the flow runner.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=7560,
  serialized_end=7894,
)


_VARIABLEGENERICHUNTARGS = _descriptor.Descriptor(
  name='VariableGenericHuntArgs',
  full_name='VariableGenericHuntArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='flows', full_name='VariableGenericHuntArgs.flows', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001;\0229A list of requests for starting flows on certain clients.'))),
    _descriptor.FieldDescriptor(
      name='output_plugins', full_name='VariableGenericHuntArgs.output_plugins', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001*\022(The output plugins to use for this hunt.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=7897,
  serialized_end=8117,
)


_GENERICHUNTARGS = _descriptor.Descriptor(
  name='GenericHuntArgs',
  full_name='GenericHuntArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='flow_args', full_name='GenericHuntArgs.flow_args', index=0,
      number=2, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001g\022QArguments to the flow to run. This should be an instance of flow.args_type proto.\030\002*\020GetFlowArgsClass'))),
    _descriptor.FieldDescriptor(
      name='flow_runner_args', full_name='GenericHuntArgs.flow_runner_args', index=1,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001*\022(The runner args for launching each flow.'))),
    _descriptor.FieldDescriptor(
      name='output_plugins', full_name='GenericHuntArgs.output_plugins', index=2,
      number=4, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001*\022(The output plugins to use for this hunt.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=8120,
  serialized_end=8460,
)


_BAREGREPSPEC = _descriptor.Descriptor(
  name='BareGrepSpec',
  full_name='BareGrepSpec',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='start_offset', full_name='BareGrepSpec.start_offset', index=0,
      number=2, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001&\022$Start searching at this file offset.'))),
    _descriptor.FieldDescriptor(
      name='length', full_name='BareGrepSpec.length', index=1,
      number=3, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=10737418240,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001-\022+How far (in bytes) into the file to search.'))),
    _descriptor.FieldDescriptor(
      name='regex', full_name='BareGrepSpec.regex', index=2,
      number=4, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001I\n\021RegularExpression\0224The regular expression which will be used to search.'))),
    _descriptor.FieldDescriptor(
      name='literal', full_name='BareGrepSpec.literal', index=3,
      number=5, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0014\n\021LiteralExpression\022\037Search for this literal string.'))),
    _descriptor.FieldDescriptor(
      name='mode', full_name='BareGrepSpec.mode', index=4,
      number=6, type=14, cpp_type=8, label=1,
      has_default_value=True, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001C\022AWhen should searching stop? Stop after one hit or search for all?'))),
    _descriptor.FieldDescriptor(
      name='bytes_before', full_name='BareGrepSpec.bytes_before', index=5,
      number=7, type=13, cpp_type=3, label=1,
      has_default_value=True, default_value=10,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001+\022\'Include this many bytes before the hit.\030\001'))),
    _descriptor.FieldDescriptor(
      name='bytes_after', full_name='BareGrepSpec.bytes_after', index=6,
      number=8, type=13, cpp_type=3, label=1,
      has_default_value=True, default_value=10,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001*\022&Include this many bytes after the hit.\030\001'))),
    _descriptor.FieldDescriptor(
      name='xor_in_key', full_name='BareGrepSpec.xor_in_key', index=7,
      number=9, type=13, cpp_type=3, label=1,
      has_default_value=True, default_value=37,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\243\001\022\236\001When searching memory we need to ensure we dont hit on our own process. This allows us to obfuscate the search string in memory to avoid us finding ourselves.\030\001'))),
    _descriptor.FieldDescriptor(
      name='xor_out_key', full_name='BareGrepSpec.xor_out_key', index=8,
      number=10, type=13, cpp_type=3, label=1,
      has_default_value=True, default_value=57,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\243\001\022\236\001When searching memory we need to ensure we dont hit on our own process. This allows us to obfuscate the search string in memory to avoid us finding ourselves.\030\001'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _BAREGREPSPEC_MODE,
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=8463,
  serialized_end=9508,
)


_CAENROLERARGS = _descriptor.Descriptor(
  name='CAEnrolerArgs',
  full_name='CAEnrolerArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='csr', full_name='CAEnrolerArgs.csr', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001,\022*A Certificate RDFValue with the CSR in it.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=9510,
  serialized_end=9604,
)


_DELETEGRRTEMPFILESARGS = _descriptor.Descriptor(
  name='DeleteGRRTempFilesArgs',
  full_name='DeleteGRRTempFilesArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='pathspec', full_name='DeleteGRRTempFilesArgs.pathspec', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\344\001\022\341\001The pathspec target for deletion.If path is a directory, look in the top level for filenames beginning with Client.tempfile_prefix, and delete them. If path is a regular file and starts with Client.tempfile_prefix, delete it.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=9607,
  serialized_end=9899,
)


_UNINSTALLARGS = _descriptor.Descriptor(
  name='UninstallArgs',
  full_name='UninstallArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='kill', full_name='UninstallArgs.kill', index=0,
      number=1, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\032\022\030Kills the client if set.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=9901,
  serialized_end=9964,
)


_UPDATECONFIGURATIONARGS = _descriptor.Descriptor(
  name='UpdateConfigurationArgs',
  full_name='UpdateConfigurationArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='config', full_name='UpdateConfigurationArgs.config', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001#\022!The config to send to the client.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=9966,
  serialized_end=10057,
)


_EXECUTEPYTHONHACKARGS = _descriptor.Descriptor(
  name='ExecutePythonHackArgs',
  full_name='ExecutePythonHackArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='hack_name', full_name='ExecutePythonHackArgs.hack_name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001F\022DThe path to the hack to execute relative to Config.python_hack_root.'))),
    _descriptor.FieldDescriptor(
      name='py_args', full_name='ExecutePythonHackArgs.py_args', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\030\022\026Python Hack Arguments.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=10060,
  serialized_end=10236,
)


_EXECUTECOMMANDARGS = _descriptor.Descriptor(
  name='ExecuteCommandArgs',
  full_name='ExecuteCommandArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='cmd', full_name='ExecuteCommandArgs.cmd', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\002\022\000'))),
    _descriptor.FieldDescriptor(
      name='command_line', full_name='ExecuteCommandArgs.command_line', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0017\0225The arguments to the command as a shell command line.'))),
    _descriptor.FieldDescriptor(
      name='time_limit', full_name='ExecuteCommandArgs.time_limit', index=2,
      number=3, type=3, cpp_type=2, label=1,
      has_default_value=True, default_value=-1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0018\0226The time limit for this execution, -1 means unlimited.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=10239,
  serialized_end=10455,
)


_ONLINENOTIFICATIONARGS = _descriptor.Descriptor(
  name='OnlineNotificationArgs',
  full_name='OnlineNotificationArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='email', full_name='OnlineNotificationArgs.email', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001d\n\022DomainEmailAddress\022NEmail address to send to. If not set, mail will be sent to the logged in user.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=10458,
  serialized_end=10605,
)


_UPDATECLIENTARGS = _descriptor.Descriptor(
  name='UpdateClientArgs',
  full_name='UpdateClientArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='blob_path', full_name='UpdateClientArgs.blob_path', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001B\n\006RDFURN\0228An aff4 path to a GRRSignedBlob of a new client version.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=10607,
  serialized_end=10718,
)


_KEEPALIVEARGS = _descriptor.Descriptor(
  name='KeepAliveArgs',
  full_name='KeepAliveArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='duration', full_name='KeepAliveArgs.duration', index=0,
      number=1, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=3600,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001D\n\010Duration\0228Until when should the client stay in the fast poll mode.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=10720,
  serialized_end=10835,
)


_LAUNCHBINARYARGS = _descriptor.Descriptor(
  name='LaunchBinaryArgs',
  full_name='LaunchBinaryArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='binary', full_name='LaunchBinaryArgs.binary', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001+\n\006RDFURN\022!The URN of the binary to execute.'))),
    _descriptor.FieldDescriptor(
      name='command_line', full_name='LaunchBinaryArgs.command_line', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001+\022)Binary Arguments as a shell command line.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=10838,
  serialized_end=10996,
)


_WINUSERACTIVITYINVESTIGATIONARGS = _descriptor.Descriptor(
  name='WinUserActivityInvestigationArgs',
  full_name='WinUserActivityInvestigationArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='username', full_name='WinUserActivityInvestigationArgs.username', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001$\022\"The user to target the actions to.'))),
    _descriptor.FieldDescriptor(
      name='get_browser_history', full_name='WinUserActivityInvestigationArgs.get_browser_history', index=1,
      number=2, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=True,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001)\022\'Call each of the browser history flows.'))),
    _descriptor.FieldDescriptor(
      name='recursive_list_homedir', full_name='WinUserActivityInvestigationArgs.recursive_list_homedir', index=2,
      number=3, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=5,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0013\0221Recursively list the users homedir to this depth.'))),
    _descriptor.FieldDescriptor(
      name='recursive_list_user_registry', full_name='WinUserActivityInvestigationArgs.recursive_list_user_registry', index=3,
      number=4, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=5,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001+\022)Recursively list the users registry hive.'))),
    _descriptor.FieldDescriptor(
      name='artifact_list', full_name='WinUserActivityInvestigationArgs.artifact_list', index=4,
      number=5, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001)\n\014ArtifactName\022\031A list of Artifact names.'))),
    _descriptor.FieldDescriptor(
      name='timeline_collected_data', full_name='WinUserActivityInvestigationArgs.timeline_collected_data', index=5,
      number=6, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=True,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001/\022-Once complete create a timeline for the host.'))),
    _descriptor.FieldDescriptor(
      name='use_tsk', full_name='WinUserActivityInvestigationArgs.use_tsk', index=6,
      number=7, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001+\022)Use raw filesystem access where possible.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=10999,
  serialized_end=11599,
)


_ARTIFACTCOLLECTORFLOWARGS = _descriptor.Descriptor(
  name='ArtifactCollectorFlowArgs',
  full_name='ArtifactCollectorFlowArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='artifact_list', full_name='ArtifactCollectorFlowArgs.artifact_list', index=0,
      number=1, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001/\n\014ArtifactName\022\037A list of Artifact class names.'))),
    _descriptor.FieldDescriptor(
      name='use_tsk', full_name='ArtifactCollectorFlowArgs.use_tsk', index=1,
      number=2, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001/\022-Whether raw filesystem access should be used.'))),
    _descriptor.FieldDescriptor(
      name='split_output_by_artifact', full_name='ArtifactCollectorFlowArgs.split_output_by_artifact', index=2,
      number=5, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001c\022_If True, use output as a directory and write a separate collection for each artifact collected.\030\001'))),
    _descriptor.FieldDescriptor(
      name='knowledge_base', full_name='ArtifactCollectorFlowArgs.knowledge_base', index=3,
      number=6, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001_\022[An optional knowledge base to use, if not specified we retrieve one from the client object.\030\002'))),
    _descriptor.FieldDescriptor(
      name='on_no_results_error', full_name='ArtifactCollectorFlowArgs.on_no_results_error', index=4,
      number=7, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001t\022rIf True, an artifact returning no results will raise a hard error. This is useful where you always expect results.'))),
    _descriptor.FieldDescriptor(
      name='apply_parsers', full_name='ArtifactCollectorFlowArgs.apply_parsers', index=5,
      number=8, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=True,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\201\001\022}If True, apply any relevant parser to the collected data. If False, return the raw collected data e.g Files or Registry Keys.\030\001'))),
    _descriptor.FieldDescriptor(
      name='max_file_size', full_name='ArtifactCollectorFlowArgs.max_file_size', index=6,
      number=9, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=500000000,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001T\n\010ByteSize\022FThe maximum size of files we will download in bytes, 500MB by default.\030\001'))),
    _descriptor.FieldDescriptor(
      name='dependencies', full_name='ArtifactCollectorFlowArgs.dependencies', index=7,
      number=11, type=14, cpp_type=8, label=1,
      has_default_value=True, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0011\022-Specifies how dependencies should be handled.\030\001'))),
    _descriptor.FieldDescriptor(
      name='ignore_interpolation_errors', full_name='ArtifactCollectorFlowArgs.ignore_interpolation_errors', index=8,
      number=12, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\375\001\022\372\001If true, don\'t die if %%users.homedir%% and similar fail to expand. It\'s common on windows for some user attributes to be missing if users have never logged in. Enable this when you have multiple artifacts or paths and want to report partial results.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _ARTIFACTCOLLECTORFLOWARGS_DEPENDENCY,
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=11602,
  serialized_end=13225,
)


_ARTIFACTFILESDOWNLOADERFLOWARGS = _descriptor.Descriptor(
  name='ArtifactFilesDownloaderFlowArgs',
  full_name='ArtifactFilesDownloaderFlowArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='artifact_list', full_name='ArtifactFilesDownloaderFlowArgs.artifact_list', index=0,
      number=1, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001/\n\014ArtifactName\022\037A list of Artifact class names.'))),
    _descriptor.FieldDescriptor(
      name='use_tsk', full_name='ArtifactFilesDownloaderFlowArgs.use_tsk', index=1,
      number=2, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001/\022-Whether raw filesystem access should be used.'))),
    _descriptor.FieldDescriptor(
      name='max_file_size', full_name='ArtifactFilesDownloaderFlowArgs.max_file_size', index=2,
      number=9, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=500000000,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001T\n\010ByteSize\022FThe maximum size of files we will download in bytes, 500MB by default.\030\001'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=13228,
  serialized_end=13544,
)


_ARTIFACTFILESDOWNLOADERRESULT = _descriptor.Descriptor(
  name='ArtifactFilesDownloaderResult',
  full_name='ArtifactFilesDownloaderResult',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='original_result_type', full_name='ArtifactFilesDownloaderResult.original_result_type', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0019\0227Type of the result returned by the artifacts collector.'))),
    _descriptor.FieldDescriptor(
      name='original_result', full_name='ArtifactFilesDownloaderResult.original_result', index=1,
      number=2, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001M\0224Original result returned by the artifacts collector.*\025GetOriginalResultType'))),
    _descriptor.FieldDescriptor(
      name='found_pathspec', full_name='ArtifactFilesDownloaderResult.found_pathspec', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001-\022+Pathspecs found in the collected artifacts.'))),
    _descriptor.FieldDescriptor(
      name='downloaded_file', full_name='ArtifactFilesDownloaderResult.downloaded_file', index=3,
      number=4, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001@\022>Files that were successfully downloaded using found pathspecs.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=13547,
  serialized_end=13980,
)


_INTERROGATEARGS = _descriptor.Descriptor(
  name='InterrogateArgs',
  full_name='InterrogateArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='lightweight', full_name='InterrogateArgs.lightweight', index=0,
      number=1, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=True,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0014\0222Perform a light weight version of the interrogate.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=13982,
  serialized_end=14086,
)


_FINGERPRINTFILEARGS = _descriptor.Descriptor(
  name='FingerprintFileArgs',
  full_name='FingerprintFileArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='pathspec', full_name='FingerprintFileArgs.pathspec', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\037\022\035The file path to fingerprint.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=14088,
  serialized_end=14177,
)


_FINGERPRINTFILERESULT = _descriptor.Descriptor(
  name='FingerprintFileResult',
  full_name='FingerprintFileResult',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='file_urn', full_name='FingerprintFileResult.file_urn', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001+\n\006RDFURN\022!The URN of the file fingerprinted'))),
    _descriptor.FieldDescriptor(
      name='hash_entry', full_name='FingerprintFileResult.hash_entry', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\023\022\021File hash object.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=14180,
  serialized_end=14326,
)


_SOPHOSCOLLECTORARGS = _descriptor.Descriptor(
  name='SophosCollectorArgs',
  full_name='SophosCollectorArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='pathtype', full_name='SophosCollectorArgs.pathtype', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=True, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\032\022\030The requested path type.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=14328,
  serialized_end=14425,
)


_MACTIMESARGS = _descriptor.Descriptor(
  name='MACTimesArgs',
  full_name='MACTimesArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='path', full_name='MACTimesArgs.path', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=True, default_value=_b("/fs/").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0017\0225An AFF path (relative to the client area of the VFS).'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=14427,
  serialized_end=14524,
)


_FILECOLLECTORARGS = _descriptor.Descriptor(
  name='FileCollectorArgs',
  full_name='FileCollectorArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='findspecs', full_name='FileCollectorArgs.findspecs', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001 \022\036A list of find specifications.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=14526,
  serialized_end=14615,
)


_FIREFOXHISTORYARGS = _descriptor.Descriptor(
  name='FirefoxHistoryArgs',
  full_name='FirefoxHistoryArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='pathtype', full_name='FirefoxHistoryArgs.pathtype', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=True, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\035\022\033Type of path access to use.'))),
    _descriptor.FieldDescriptor(
      name='get_archive', full_name='FirefoxHistoryArgs.get_archive', index=1,
      number=2, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0018\0226Should we get Archived History as well (3 months old).'))),
    _descriptor.FieldDescriptor(
      name='username', full_name='FirefoxHistoryArgs.username', index=2,
      number=3, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\220\001\022\215\001The user to get history for. If history_path is not set this will be used to guess the path to the history files. Can be in form DOMAIN\\user.'))),
    _descriptor.FieldDescriptor(
      name='history_path', full_name='FirefoxHistoryArgs.history_path', index=3,
      number=5, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001;\0229Path to a profile directory that contains a History file.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=14618,
  serialized_end=15071,
)


_CACHEGREPARGS = _descriptor.Descriptor(
  name='CacheGrepArgs',
  full_name='CacheGrepArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='grep_users', full_name='CacheGrepArgs.grep_users', index=0,
      number=1, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001<\022:A list of users to check. Default all users on the system.'))),
    _descriptor.FieldDescriptor(
      name='pathtype', full_name='CacheGrepArgs.pathtype', index=1,
      number=2, type=14, cpp_type=8, label=1,
      has_default_value=True, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\035\022\033Type of path access to use.'))),
    _descriptor.FieldDescriptor(
      name='data_regex', full_name='CacheGrepArgs.data_regex', index=2,
      number=3, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0018\n\021RegularExpression\022#A regular expression to search for.'))),
    _descriptor.FieldDescriptor(
      name='check_chrome', full_name='CacheGrepArgs.check_chrome', index=3,
      number=5, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=True,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\016\022\014Check Chrome'))),
    _descriptor.FieldDescriptor(
      name='check_firefox', full_name='CacheGrepArgs.check_firefox', index=4,
      number=6, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=True,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\017\022\rCheck Firefox'))),
    _descriptor.FieldDescriptor(
      name='check_ie', full_name='CacheGrepArgs.check_ie', index=5,
      number=7, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=True,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001/\022-Check Internet Explorer (Not implemented yet)'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=15074,
  serialized_end=15521,
)


_LISTDIRECTORYARGS = _descriptor.Descriptor(
  name='ListDirectoryArgs',
  full_name='ListDirectoryArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='pathspec', full_name='ListDirectoryArgs.pathspec', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001)\022\'The pathspec for the directory to list.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=15523,
  serialized_end=15620,
)


_RECURSIVELISTDIRECTORYARGS = _descriptor.Descriptor(
  name='RecursiveListDirectoryArgs',
  full_name='RecursiveListDirectoryArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='pathspec', full_name='RecursiveListDirectoryArgs.pathspec', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001)\022\'The pathspec for the directory to list.'))),
    _descriptor.FieldDescriptor(
      name='max_depth', full_name='RecursiveListDirectoryArgs.max_depth', index=1,
      number=2, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=5,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\032\022\030Maximum recursion depth.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=15623,
  serialized_end=15785,
)


_FETCHBUFFERFORSPARSEIMAGEARGS = _descriptor.Descriptor(
  name='FetchBufferForSparseImageArgs',
  full_name='FetchBufferForSparseImageArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='file_urn', full_name='FetchBufferForSparseImageArgs.file_urn', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001/\n\006RDFURN\022%The URN of the sparse image to update'))),
    _descriptor.FieldDescriptor(
      name='length', full_name='FetchBufferForSparseImageArgs.length', index=1,
      number=2, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='offset', full_name='FetchBufferForSparseImageArgs.offset', index=2,
      number=3, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=15788,
  serialized_end=15924,
)


_MAKENEWAFF4SPARSEIMAGEARGS = _descriptor.Descriptor(
  name='MakeNewAFF4SparseImageArgs',
  full_name='MakeNewAFF4SparseImageArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='pathspec', full_name='MakeNewAFF4SparseImageArgs.pathspec', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='size_threshold', full_name='MakeNewAFF4SparseImageArgs.size_threshold', index=1,
      number=2, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=15926,
  serialized_end=16007,
)


_UPDATESPARSEIMAGECHUNKSARGS = _descriptor.Descriptor(
  name='UpdateSparseImageChunksArgs',
  full_name='UpdateSparseImageChunksArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='file_urn', full_name='UpdateSparseImageChunksArgs.file_urn', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001/\n\006RDFURN\022%The URN of the sparse image to update'))),
    _descriptor.FieldDescriptor(
      name='chunks_to_fetch', full_name='UpdateSparseImageChunksArgs.chunks_to_fetch', index=1,
      number=2, type=4, cpp_type=4, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=16009,
  serialized_end=16136,
)


_GREPARGS = _descriptor.Descriptor(
  name='GrepArgs',
  full_name='GrepArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='request', full_name='GrepArgs.request', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=16138,
  serialized_end=16176,
)


_GLOBARGS = _descriptor.Descriptor(
  name='GlobArgs',
  full_name='GlobArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='paths', full_name='GlobArgs.paths', index=0,
      number=1, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001j\n\016GlobExpression\022XA list of paths to glob that supports: ** path recursion, * wildcards and %% expansions.'))),
    _descriptor.FieldDescriptor(
      name='pathtype', full_name='GlobArgs.pathtype', index=1,
      number=2, type=14, cpp_type=8, label=1,
      has_default_value=True, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\034\022\032Type of access to glob in.'))),
    _descriptor.FieldDescriptor(
      name='root_path', full_name='GlobArgs.root_path', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\254\001\022\247\001The root path to begin the glob.  Users should almost never need to change this. root_path.pathtype is unused in favor of pathtype to allow it to be modified by users.\030\001'))),
    _descriptor.FieldDescriptor(
      name='process_non_regular_files', full_name='GlobArgs.process_non_regular_files', index=3,
      number=4, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\234\001\022\227\001Work with all kinds of files - not only with regular ones.NOTE: This is very dangerous and should be used with care, see MemoryCollector as an example.\030\002'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=16179,
  serialized_end=16818,
)


_FINDFILESARGS = _descriptor.Descriptor(
  name='FindFilesArgs',
  full_name='FindFilesArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='findspec', full_name='FindFilesArgs.findspec', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001!\022\037A find operation specification.'))),
    _descriptor.FieldDescriptor(
      name='max_results', full_name='FindFilesArgs.max_results', index=1,
      number=3, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=500,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001%\022!Maximum number of results to get.\030\001'))),
    _descriptor.FieldDescriptor(
      name='iteration_count', full_name='FindFilesArgs.iteration_count', index=2,
      number=4, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=20000,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001!\022\035Files examined per iteration.\030\001'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=16821,
  serialized_end=17050,
)


_GETFILEARGS = _descriptor.Descriptor(
  name='GetFileArgs',
  full_name='GetFileArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='pathspec', full_name='GetFileArgs.pathspec', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001(\022&The pathspec for the file to retrieve.'))),
    _descriptor.FieldDescriptor(
      name='read_length', full_name='GetFileArgs.read_length', index=1,
      number=2, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001U\022QThe amount of data to read from the file. If 0 we use the value from a stat call.\030\001'))),
    _descriptor.FieldDescriptor(
      name='ignore_stat_failure', full_name='GetFileArgs.ignore_stat_failure', index=2,
      number=3, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001M\022IIgnore stat failures and try to read anyway. Disable for windows devices.\030\001'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=17053,
  serialized_end=17374,
)


_GETMBRARGS = _descriptor.Descriptor(
  name='GetMBRArgs',
  full_name='GetMBRArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='length', full_name='GetMBRArgs.length', index=0,
      number=1, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=4096,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\'\022%The length of the MBR buffer to read.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=17376,
  serialized_end=17457,
)


_CHROMEHISTORYARGS = _descriptor.Descriptor(
  name='ChromeHistoryArgs',
  full_name='ChromeHistoryArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='pathtype', full_name='ChromeHistoryArgs.pathtype', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=True, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\035\022\033Type of path access to use.'))),
    _descriptor.FieldDescriptor(
      name='get_archive', full_name='ChromeHistoryArgs.get_archive', index=1,
      number=2, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0018\0226Should we get Archived History as well (3 months old).'))),
    _descriptor.FieldDescriptor(
      name='username', full_name='ChromeHistoryArgs.username', index=2,
      number=3, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\227\001\022\224\001The user to get Chrome history for. If history_path is not set this will be used to guess the path to the history files. Can be in form DOMAIN\\user.'))),
    _descriptor.FieldDescriptor(
      name='history_path', full_name='ChromeHistoryArgs.history_path', index=3,
      number=5, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001;\0229Path to a profile directory that contains a History file.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=17460,
  serialized_end=17912,
)


_CREATEGENERICHUNTFLOWARGS = _descriptor.Descriptor(
  name='CreateGenericHuntFlowArgs',
  full_name='CreateGenericHuntFlowArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='hunt_runner_args', full_name='CreateGenericHuntFlowArgs.hunt_runner_args', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='hunt_args', full_name='CreateGenericHuntFlowArgs.hunt_args', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=17914,
  serialized_end=18021,
)


_CREATECRONJOBFLOWARGS = _descriptor.Descriptor(
  name='CreateCronJobFlowArgs',
  full_name='CreateCronJobFlowArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='description', full_name='CreateCronJobFlowArgs.description', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001/\022-A human readable description of the cron job.'))),
    _descriptor.FieldDescriptor(
      name='periodicity', full_name='CreateCronJobFlowArgs.periodicity', index=1,
      number=2, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=604800,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\'\n\010Duration\022\033How often to run this hunt.'))),
    _descriptor.FieldDescriptor(
      name='flow_runner_args', full_name='CreateCronJobFlowArgs.flow_runner_args', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='flow_args', full_name='CreateCronJobFlowArgs.flow_args', index=3,
      number=4, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\022*\020GetFlowArgsClass'))),
    _descriptor.FieldDescriptor(
      name='allow_overruns', full_name='CreateCronJobFlowArgs.allow_overruns', index=4,
      number=5, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='lifetime', full_name='CreateCronJobFlowArgs.lifetime', index=5,
      number=6, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\200\002\n\010Duration\022\363\001How long each run of the cron should be allowed to run. Runs that exceed lifetime will be killed. This is complimentary but different to periodicity e.g. it allows us to run jobs weekly that should be killed if they take more than a few hours.'))),
    _descriptor.FieldDescriptor(
      name='start_time', full_name='CreateCronJobFlowArgs.start_time', index=6,
      number=7, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\312\001\n\013RDFDatetime\022\272\001Time at which this cron should run for the first time.Specifying this allows us to stagger or randomize cron start times so they don\'t all start at once. Default is to start immediately.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=18024,
  serialized_end=18835,
)


_CRONJOB = _descriptor.Descriptor(
  name='CronJob',
  full_name='CronJob',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='job_id', full_name='CronJob.job_id', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='cron_args', full_name='CronJob.cron_args', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='create_time', full_name='CronJob.create_time', index=2,
      number=3, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\r\n\013RDFDatetime'))),
    _descriptor.FieldDescriptor(
      name='current_run_id', full_name='CronJob.current_run_id', index=3,
      number=4, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='disabled', full_name='CronJob.disabled', index=4,
      number=5, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='last_run_status', full_name='CronJob.last_run_status', index=5,
      number=6, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='last_run_time', full_name='CronJob.last_run_time', index=6,
      number=7, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\r\n\013RDFDatetime'))),
    _descriptor.FieldDescriptor(
      name='state', full_name='CronJob.state', index=7,
      number=8, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=18838,
  serialized_end=19117,
)


_PLISTVALUEFILTERARGS = _descriptor.Descriptor(
  name='PlistValueFilterArgs',
  full_name='PlistValueFilterArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='request', full_name='PlistValueFilterArgs.request', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0011\022/A request for the client to parse a plist file.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=19119,
  serialized_end=19230,
)


_RUNREPORTFLOWARGS = _descriptor.Descriptor(
  name='RunReportFlowArgs',
  full_name='RunReportFlowArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='report_name', full_name='RunReportFlowArgs.report_name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001,\n\nReportName\022\036The name of the report to run.'))),
    _descriptor.FieldDescriptor(
      name='email', full_name='RunReportFlowArgs.email', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001F\n\022DomainEmailAddress\0220The email address that messages will be sent to.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=19233,
  serialized_end=19418,
)


_ENUMERATESERVICESARGS = _descriptor.Descriptor(
  name='EnumerateServicesArgs',
  full_name='EnumerateServicesArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='download_binaries', full_name='EnumerateServicesArgs.download_binaries', index=0,
      number=1, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=True,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001&\022$If set, also downloads the binaries.'))),
    _descriptor.FieldDescriptor(
      name='pathtype', full_name='EnumerateServicesArgs.pathtype', index=1,
      number=3, type=14, cpp_type=8, label=1,
      has_default_value=True, default_value=1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\037\022\035How to access the filesystem.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=19421,
  serialized_end=19605,
)


_CHROMEPLUGINSARGS = _descriptor.Descriptor(
  name='ChromePluginsArgs',
  full_name='ChromePluginsArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='path', full_name='ChromePluginsArgs.path', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001]\022[A path to a Chrome Extensions directory. If not set, the path is guessed from the username.'))),
    _descriptor.FieldDescriptor(
      name='pathtype', full_name='ChromePluginsArgs.pathtype', index=1,
      number=2, type=14, cpp_type=8, label=1,
      has_default_value=True, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\r\022\013Access mode'))),
    _descriptor.FieldDescriptor(
      name='username', full_name='ChromePluginsArgs.username', index=2,
      number=4, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001(\022&The user to get Chrome extensions for.'))),
    _descriptor.FieldDescriptor(
      name='download_files', full_name='ChromePluginsArgs.download_files', index=3,
      number=5, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\"\022 Should extensions be downloaded?'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=19608,
  serialized_end=19944,
)


_UPDATEVFSFILEARGS = _descriptor.Descriptor(
  name='UpdateVFSFileArgs',
  full_name='UpdateVFSFileArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='vfs_file_urn', full_name='UpdateVFSFileArgs.vfs_file_urn', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\025\n\006RDFURN\022\013VFSFile urn'))),
    _descriptor.FieldDescriptor(
      name='attribute', full_name='UpdateVFSFileArgs.attribute', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=True, default_value=_b("CONTAINS").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001G\022EAttribute to update, given as the attribute name on the schema class.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=19947,
  serialized_end=20125,
)


_MULTIGETFILEARGS = _descriptor.Descriptor(
  name='MultiGetFileArgs',
  full_name='MultiGetFileArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='pathspecs', full_name='MultiGetFileArgs.pathspecs', index=0,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001%\022#Pathspecs of files to be retrieved.'))),
    _descriptor.FieldDescriptor(
      name='use_external_stores', full_name='MultiGetFileArgs.use_external_stores', index=1,
      number=3, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=True,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\303\001\022\276\001If true, look in any defined external file stores for filesbefore downloading them, and offer any new files to external stores.This should be true unless the external checks are misbehaving.\030\001'))),
    _descriptor.FieldDescriptor(
      name='file_size', full_name='MultiGetFileArgs.file_size', index=2,
      number=4, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=1000000000,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001?\n\010ByteSize\0221Maximum number of bytes to download in each file.\030\001'))),
    _descriptor.FieldDescriptor(
      name='maximum_pending_files', full_name='MultiGetFileArgs.maximum_pending_files', index=3,
      number=5, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=1000,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001=\0229Maximum number of files to be downloading simultaneously.\030\001'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=20128,
  serialized_end=20670,
)


_PROCESSHUNTRESULTCOLLECTIONSCRONFLOWARGS = _descriptor.Descriptor(
  name='ProcessHuntResultCollectionsCronFlowArgs',
  full_name='ProcessHuntResultCollectionsCronFlowArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='batch_size', full_name='ProcessHuntResultCollectionsCronFlowArgs.batch_size', index=0,
      number=1, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001H\022DResults will be processed by output plugins in batches of this size.\030\001'))),
    _descriptor.FieldDescriptor(
      name='max_running_time', full_name='ProcessHuntResultCollectionsCronFlowArgs.max_running_time', index=1,
      number=2, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\262\001\n\010Duration\022\243\001ProcessHuntResultsCollectionsCronFlow will run not much longer than max_running_time. It will finish (without an error) even if there are still results to process.\030\001'))),
    _descriptor.FieldDescriptor(
      name='start_processing_time', full_name='ProcessHuntResultCollectionsCronFlowArgs.start_processing_time', index=2,
      number=5, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001K\n\013RDFDatetime\022<The flow will only process results received after this time.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=20673,
  serialized_end=21147,
)


_VERIFYHUNTOUTPUTPLUGINSCRONFLOWARGS = _descriptor.Descriptor(
  name='VerifyHuntOutputPluginsCronFlowArgs',
  full_name='VerifyHuntOutputPluginsCronFlowArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='check_range', full_name='VerifyHuntOutputPluginsCronFlowArgs.check_range', index=0,
      number=1, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001l\n\010Duration\022^Only the hunts that were active within given duration from the current moment will be checked.\030\001'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=21150,
  serialized_end=21325,
)


_LISTPROCESSESARGS = _descriptor.Descriptor(
  name='ListProcessesArgs',
  full_name='ListProcessesArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='filename_regex', full_name='ListProcessesArgs.filename_regex', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=True, default_value=_b(".").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001P\n\021RegularExpression\022+Regex used to filter the list of processes.\"\016Filename Regex'))),
    _descriptor.FieldDescriptor(
      name='fetch_binaries', full_name='ListProcessesArgs.fetch_binaries', index=1,
      number=2, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\020\"\016Fetch Binaries'))),
    _descriptor.FieldDescriptor(
      name='connection_states', full_name='ListProcessesArgs.connection_states', index=2,
      number=3, type=14, cpp_type=8, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\210\001\022\205\001Network connection states to match. If a process has any network connections in any status listed here, it will be considered a match'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=21328,
  serialized_end=21717,
)


_LISTVADBINARIESARGS = _descriptor.Descriptor(
  name='ListVADBinariesArgs',
  full_name='ListVADBinariesArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='filename_regex', full_name='ListVADBinariesArgs.filename_regex', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=True, default_value=_b(".").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001O\n\021RegularExpression\022*Regex used to filter the list of binaries.\"\016Filename Regex'))),
    _descriptor.FieldDescriptor(
      name='fetch_binaries', full_name='ListVADBinariesArgs.fetch_binaries', index=1,
      number=2, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\020\"\016Fetch Binaries'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=21720,
  serialized_end=21910,
)


_FILEFINDERMODIFICATIONTIMECONDITION = _descriptor.Descriptor(
  name='FileFinderModificationTimeCondition',
  full_name='FileFinderModificationTimeCondition',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='min_last_modified_time', full_name='FileFinderModificationTimeCondition.min_last_modified_time', index=0,
      number=5, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0015\n\013RDFDatetime\022&File must be modified after this time.'))),
    _descriptor.FieldDescriptor(
      name='max_last_modified_time', full_name='FileFinderModificationTimeCondition.max_last_modified_time', index=1,
      number=6, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=9223372036854775807,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001[\n\013RDFDatetime\022LFile must be modified before this time (default=heat death of the universe).'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=21913,
  serialized_end=22199,
)


_FILEFINDERACCESSTIMECONDITION = _descriptor.Descriptor(
  name='FileFinderAccessTimeCondition',
  full_name='FileFinderAccessTimeCondition',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='min_last_access_time', full_name='FileFinderAccessTimeCondition.min_last_access_time', index=0,
      number=5, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0015\n\013RDFDatetime\022&File must be accessed after this time.'))),
    _descriptor.FieldDescriptor(
      name='max_last_access_time', full_name='FileFinderAccessTimeCondition.max_last_access_time', index=1,
      number=6, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=9223372036854775807,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001[\n\013RDFDatetime\022LFile must be accessed before this time (default=heat death of the universe).'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=22202,
  serialized_end=22478,
)


_FILEFINDERINODECHANGETIMECONDITION = _descriptor.Descriptor(
  name='FileFinderInodeChangeTimeCondition',
  full_name='FileFinderInodeChangeTimeCondition',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='min_last_inode_change_time', full_name='FileFinderInodeChangeTimeCondition.min_last_inode_change_time', index=0,
      number=5, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001<\n\013RDFDatetime\022-File\'s inode must be changed after this time.'))),
    _descriptor.FieldDescriptor(
      name='max_last_inode_change_time', full_name='FileFinderInodeChangeTimeCondition.max_last_inode_change_time', index=1,
      number=6, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=9223372036854775807,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\\\n\013RDFDatetime\022MFile\'s must be changed before this time (default=heat death of the universe).'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=22481,
  serialized_end=22782,
)


_FILEFINDERSIZECONDITION = _descriptor.Descriptor(
  name='FileFinderSizeCondition',
  full_name='FileFinderSizeCondition',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='min_file_size', full_name='FileFinderSizeCondition.min_file_size', index=0,
      number=11, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\035\022\033Minimum file size in bytes.'))),
    _descriptor.FieldDescriptor(
      name='max_file_size', full_name='FileFinderSizeCondition.max_file_size', index=1,
      number=12, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=20000000,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001,\022*Maximum file size in bytes (default=20MB).'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=22785,
  serialized_end=22958,
)


_FILEFINDEREXTFLAGSCONDITION = _descriptor.Descriptor(
  name='FileFinderExtFlagsCondition',
  full_name='FileFinderExtFlagsCondition',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='linux_bits_set', full_name='FileFinderExtFlagsCondition.linux_bits_set', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=True, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='linux_bits_unset', full_name='FileFinderExtFlagsCondition.linux_bits_unset', index=1,
      number=2, type=13, cpp_type=3, label=1,
      has_default_value=True, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='osx_bits_set', full_name='FileFinderExtFlagsCondition.osx_bits_set', index=2,
      number=3, type=13, cpp_type=3, label=1,
      has_default_value=True, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='osx_bits_unset', full_name='FileFinderExtFlagsCondition.osx_bits_unset', index=3,
      number=4, type=13, cpp_type=3, label=1,
      has_default_value=True, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=22961,
  serialized_end=23098,
)


_FILEFINDERCONTENTSREGEXMATCHCONDITION = _descriptor.Descriptor(
  name='FileFinderContentsRegexMatchCondition',
  full_name='FileFinderContentsRegexMatchCondition',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='regex', full_name='FileFinderContentsRegexMatchCondition.regex', index=0,
      number=4, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001I\n\021RegularExpression\0224The regular expression which will be used to search.'))),
    _descriptor.FieldDescriptor(
      name='mode', full_name='FileFinderContentsRegexMatchCondition.mode', index=1,
      number=6, type=14, cpp_type=8, label=1,
      has_default_value=True, default_value=1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001C\022AWhen should searching stop? Stop after one hit or search for all?'))),
    _descriptor.FieldDescriptor(
      name='bytes_before', full_name='FileFinderContentsRegexMatchCondition.bytes_before', index=2,
      number=7, type=13, cpp_type=3, label=1,
      has_default_value=True, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001+\022\'Include this many bytes before the hit.\030\001'))),
    _descriptor.FieldDescriptor(
      name='bytes_after', full_name='FileFinderContentsRegexMatchCondition.bytes_after', index=3,
      number=8, type=13, cpp_type=3, label=1,
      has_default_value=True, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001*\022&Include this many bytes after the hit.\030\001'))),
    _descriptor.FieldDescriptor(
      name='start_offset', full_name='FileFinderContentsRegexMatchCondition.start_offset', index=4,
      number=2, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001(\022$Start searching at this file offset.\030\001'))),
    _descriptor.FieldDescriptor(
      name='length', full_name='FileFinderContentsRegexMatchCondition.length', index=5,
      number=3, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=20000000,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001;\0229How far (in bytes) into the file to search. Default=20MB.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _FILEFINDERCONTENTSREGEXMATCHCONDITION_MODE,
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=23101,
  serialized_end=23735,
)


_FILEFINDERCONTENTSLITERALMATCHCONDITION = _descriptor.Descriptor(
  name='FileFinderContentsLiteralMatchCondition',
  full_name='FileFinderContentsLiteralMatchCondition',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='literal', full_name='FileFinderContentsLiteralMatchCondition.literal', index=0,
      number=5, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0014\n\021LiteralExpression\022\037Search for this literal string.'))),
    _descriptor.FieldDescriptor(
      name='mode', full_name='FileFinderContentsLiteralMatchCondition.mode', index=1,
      number=6, type=14, cpp_type=8, label=1,
      has_default_value=True, default_value=1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001C\022AWhen should searching stop? Stop after one hit or search for all?'))),
    _descriptor.FieldDescriptor(
      name='start_offset', full_name='FileFinderContentsLiteralMatchCondition.start_offset', index=2,
      number=2, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001(\022$Start searching at this file offset.\030\001'))),
    _descriptor.FieldDescriptor(
      name='length', full_name='FileFinderContentsLiteralMatchCondition.length', index=3,
      number=3, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=20000000,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001<\0228How far (in bytes) into the file to search. Default=20MB\030\001'))),
    _descriptor.FieldDescriptor(
      name='bytes_before', full_name='FileFinderContentsLiteralMatchCondition.bytes_before', index=4,
      number=7, type=13, cpp_type=3, label=1,
      has_default_value=True, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001+\022\'Include this many bytes before the hit.\030\001'))),
    _descriptor.FieldDescriptor(
      name='bytes_after', full_name='FileFinderContentsLiteralMatchCondition.bytes_after', index=5,
      number=8, type=13, cpp_type=3, label=1,
      has_default_value=True, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001*\022&Include this many bytes after the hit.\030\001'))),
    _descriptor.FieldDescriptor(
      name='xor_in_key', full_name='FileFinderContentsLiteralMatchCondition.xor_in_key', index=6,
      number=9, type=13, cpp_type=3, label=1,
      has_default_value=True, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\243\001\022\236\001When searching memory we need to ensure we dont hit on our own process. This allows us to obfuscate the search string in memory to avoid us finding ourselves.\030\001'))),
    _descriptor.FieldDescriptor(
      name='xor_out_key', full_name='FileFinderContentsLiteralMatchCondition.xor_out_key', index=7,
      number=10, type=13, cpp_type=3, label=1,
      has_default_value=True, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\243\001\022\236\001When searching memory we need to ensure we dont hit on our own process. This allows us to obfuscate the search string in memory to avoid us finding ourselves.\030\001'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _FILEFINDERCONTENTSLITERALMATCHCONDITION_MODE,
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=23738,
  serialized_end=24753,
)


_FILEFINDERCONDITION = _descriptor.Descriptor(
  name='FileFinderCondition',
  full_name='FileFinderCondition',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='condition_type', full_name='FileFinderCondition.condition_type', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001 \022\016Condition type\"\016Condition type'))),
    _descriptor.FieldDescriptor(
      name='modification_time', full_name='FileFinderCondition.modification_time', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='access_time', full_name='FileFinderCondition.access_time', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='inode_change_time', full_name='FileFinderCondition.inode_change_time', index=3,
      number=4, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='size', full_name='FileFinderCondition.size', index=4,
      number=5, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='ext_flags', full_name='FileFinderCondition.ext_flags', index=5,
      number=8, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='contents_regex_match', full_name='FileFinderCondition.contents_regex_match', index=6,
      number=6, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='contents_literal_match', full_name='FileFinderCondition.contents_literal_match', index=7,
      number=7, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _FILEFINDERCONDITION_TYPE,
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('\332\374\343\304\001\020\022\016condition_type')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=24756,
  serialized_end=25629,
)


_FILEFINDERHASHACTIONOPTIONS = _descriptor.Descriptor(
  name='FileFinderHashActionOptions',
  full_name='FileFinderHashActionOptions',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='max_size', full_name='FileFinderHashActionOptions.max_size', index=0,
      number=1, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=500000000,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0015\n\010ByteSize\022\'The maximum size of files we will hash.\030\001'))),
    _descriptor.FieldDescriptor(
      name='oversized_file_policy', full_name='FileFinderHashActionOptions.oversized_file_policy', index=1,
      number=2, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001@\022<What should GRR do with files that are larger than max_size.\030\001'))),
    _descriptor.FieldDescriptor(
      name='collect_ext_attrs', full_name='FileFinderHashActionOptions.collect_ext_attrs', index=2,
      number=4, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=True,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001}\022\\If true, extended attributes and flags of the hashed file are going to be collected as well.\030\001\"\033Collect extended attributes'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _FILEFINDERHASHACTIONOPTIONS_OVERSIZEDFILEPOLICY,
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=25632,
  serialized_end=26205,
)


_FILEFINDERDOWNLOADACTIONOPTIONS = _descriptor.Descriptor(
  name='FileFinderDownloadActionOptions',
  full_name='FileFinderDownloadActionOptions',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='max_size', full_name='FileFinderDownloadActionOptions.max_size', index=0,
      number=5, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=500000000,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0019\n\010ByteSize\022+The maximum size of files we will download.\030\001'))),
    _descriptor.FieldDescriptor(
      name='oversized_file_policy', full_name='FileFinderDownloadActionOptions.oversized_file_policy', index=1,
      number=7, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001@\022<What should GRR do with files that are larger than max_size.\030\001'))),
    _descriptor.FieldDescriptor(
      name='use_external_stores', full_name='FileFinderDownloadActionOptions.use_external_stores', index=2,
      number=6, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=True,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\305\001\022\300\001If true, look in any defined external file stores for files before downloading them, and offer any new files to external stores. This should be true unless the external checks are misbehaving.\030\001'))),
    _descriptor.FieldDescriptor(
      name='collect_ext_attrs', full_name='FileFinderDownloadActionOptions.collect_ext_attrs', index=3,
      number=9, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=True,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\201\001\022`If true, extended attributes and flags of the downloaded file are going to be collected as well.\030\001\"\033Collect extended attributes'))),
    _descriptor.FieldDescriptor(
      name='chunk_size', full_name='FileFinderDownloadActionOptions.chunk_size', index=4,
      number=11, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=524288,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001S\022CNumber of bytes per chunk that the downloaded file is divided into.\030\002\"\nChunk size'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _FILEFINDERDOWNLOADACTIONOPTIONS_OVERSIZEDFILEPOLICY,
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=26208,
  serialized_end=27244,
)


_FILEFINDERSTATACTIONOPTIONS = _descriptor.Descriptor(
  name='FileFinderStatActionOptions',
  full_name='FileFinderStatActionOptions',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='resolve_links', full_name='FileFinderStatActionOptions.resolve_links', index=0,
      number=1, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001|\022zIf true, the action will yield stat information for link targets, if false, the stat for the link itself will be returned.'))),
    _descriptor.FieldDescriptor(
      name='collect_ext_attrs', full_name='FileFinderStatActionOptions.collect_ext_attrs', index=1,
      number=2, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=True,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001Z\0229If true, the action will also gather extended attributes.\030\001\"\033Collect extended attributes'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=27247,
  serialized_end=27572,
)


_FILEFINDERACTION = _descriptor.Descriptor(
  name='FileFinderAction',
  full_name='FileFinderAction',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='action_type', full_name='FileFinderAction.action_type', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=True, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001(\022\036Action to apply to found files\"\006Action'))),
    _descriptor.FieldDescriptor(
      name='hash', full_name='FileFinderAction.hash', index=1,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='download', full_name='FileFinderAction.download', index=2,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='stat', full_name='FileFinderAction.stat', index=3,
      number=4, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _FILEFINDERACTION_ACTION,
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('\332\374\343\304\001\r\022\013action_type')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=27575,
  serialized_end=27939,
)


_FILEFINDERARGS = _descriptor.Descriptor(
  name='FileFinderArgs',
  full_name='FileFinderArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='paths', full_name='FileFinderArgs.paths', index=0,
      number=1, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001@\n\016GlobExpression\022.A path to glob that can contain %% expansions.'))),
    _descriptor.FieldDescriptor(
      name='pathtype', full_name='FileFinderArgs.pathtype', index=1,
      number=2, type=14, cpp_type=8, label=1,
      has_default_value=True, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\027\022\025Path type to glob in.'))),
    _descriptor.FieldDescriptor(
      name='conditions', full_name='FileFinderArgs.conditions', index=2,
      number=5, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001N\022LThese conditions will be applied to all files that match the path arguments.'))),
    _descriptor.FieldDescriptor(
      name='action', full_name='FileFinderArgs.action', index=3,
      number=6, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='process_non_regular_files', full_name='FileFinderArgs.process_non_regular_files', index=4,
      number=7, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\223\001\022\216\001Look both into regular files and non-regular files (devices, named pipes, sockets). NOTE: This is very dangerous and should be used with care.\030\001'))),
    _descriptor.FieldDescriptor(
      name='follow_links', full_name='FileFinderArgs.follow_links', index=5,
      number=8, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001F\022BShould symbolic links be followed in recursive directory listings.\030\001'))),
    _descriptor.FieldDescriptor(
      name='xdev', full_name='FileFinderArgs.xdev', index=6,
      number=9, type=14, cpp_type=8, label=1,
      has_default_value=True, default_value=2,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001O\022KBehavior when ecountering device boundaries while doing recursive searches.\030\001'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _FILEFINDERARGS_XDEV,
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=27942,
  serialized_end=28891,
)


_FILEFINDERRESULT = _descriptor.Descriptor(
  name='FileFinderResult',
  full_name='FileFinderResult',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='stat_entry', full_name='FileFinderResult.stat_entry', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='matches', full_name='FileFinderResult.matches', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='hash_entry', full_name='FileFinderResult.hash_entry', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='transferred_file', full_name='FileFinderResult.transferred_file', index=3,
      number=5, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001K\022IAn descriptor for files uploaded as fragments to the transfer store flow.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=28894,
  serialized_end=29138,
)


_FILEREFERENCE = _descriptor.Descriptor(
  name='FileReference',
  full_name='FileReference',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='client_id', full_name='FileReference.client_id', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001-\n\tClientURN\022 The client id the file lives on.'))),
    _descriptor.FieldDescriptor(
      name='pathspecs', full_name='FileReference.pathspecs', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\031\022\027The paths to the files.'))),
    _descriptor.FieldDescriptor(
      name='sha256_hashes', full_name='FileReference.sha256_hashes', index=2,
      number=3, type=12, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0011\n\nHashDigest\022#A SHA256 hash digest for each file.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=29141,
  serialized_end=29371,
)


_REGISTRYFINDERCONDITION = _descriptor.Descriptor(
  name='RegistryFinderCondition',
  full_name='RegistryFinderCondition',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='condition_type', full_name='RegistryFinderCondition.condition_type', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='value_literal_match', full_name='RegistryFinderCondition.value_literal_match', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='value_regex_match', full_name='RegistryFinderCondition.value_regex_match', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='modification_time', full_name='RegistryFinderCondition.modification_time', index=3,
      number=4, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='size', full_name='RegistryFinderCondition.size', index=4,
      number=5, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _REGISTRYFINDERCONDITION_TYPE,
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('\332\374\343\304\001\020\022\016condition_type')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=29374,
  serialized_end=29906,
)


_REGISTRYFINDERARGS = _descriptor.Descriptor(
  name='RegistryFinderArgs',
  full_name='RegistryFinderArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='keys_paths', full_name='RegistryFinderArgs.keys_paths', index=0,
      number=1, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001D\n\016GlobExpression\0222Glob expression for registry keys to be retrieved.'))),
    _descriptor.FieldDescriptor(
      name='conditions', full_name='RegistryFinderArgs.conditions', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001S\022QThese conditions will be applied to all items that match the keys path arguments.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=29909,
  serialized_end=30163,
)


_MEMORYCOLLECTORARGS = _descriptor.Descriptor(
  name='MemoryCollectorArgs',
  full_name='MemoryCollectorArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='max_file_size', full_name='MemoryCollectorArgs.max_file_size', index=0,
      number=7, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=35433480192,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001?\022=Maximum length to read off the dumped memory file (in bytes).'))),
    _descriptor.FieldDescriptor(
      name='check_disk_free_space', full_name='MemoryCollectorArgs.check_disk_free_space', index=1,
      number=8, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=True,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001s\022oIf true, check for available disk space before doing a local copy. Ignored if the dump option isn\'t local copy.\030\001'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=30166,
  serialized_end=30455,
)


_ARTIFACTFALLBACKCOLLECTORARGS = _descriptor.Descriptor(
  name='ArtifactFallbackCollectorArgs',
  full_name='ArtifactFallbackCollectorArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='artifact_name', full_name='ArtifactFallbackCollectorArgs.artifact_name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0019\n\014ArtifactName\022)Name of the artifact using this fallback.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=30457,
  serialized_end=30576,
)


_KNOWLEDGEBASEINITIALIZATIONARGS = _descriptor.Descriptor(
  name='KnowledgeBaseInitializationArgs',
  full_name='KnowledgeBaseInitializationArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='require_complete', full_name='KnowledgeBaseInitializationArgs.require_complete', index=0,
      number=1, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=True,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001M\022KIf true require all dependencies to be complete.  Raise if any are missing.'))),
    _descriptor.FieldDescriptor(
      name='lightweight', full_name='KnowledgeBaseInitializationArgs.lightweight', index=1,
      number=2, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=True,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001Y\022WIf true skip all heavyweight artifacts defined in Artifacts.knowledge_base_heavyweight.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=30579,
  serialized_end=30853,
)


_ENDTOENDTESTFLOWARGS = _descriptor.Descriptor(
  name='EndToEndTestFlowArgs',
  full_name='EndToEndTestFlowArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='test_names', full_name='EndToEndTestFlowArgs.test_names', index=0,
      number=1, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001_\022]List of endtoend test classes to run. If none are specifed, run all automated endtoend tests.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=30856,
  serialized_end=31001,
)


_DISKVOLUMEINFOARGS = _descriptor.Descriptor(
  name='DiskVolumeInfoArgs',
  full_name='DiskVolumeInfoArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='path_list', full_name='DiskVolumeInfoArgs.path_list', index=0,
      number=1, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\020\022\016List of paths.'))),
    _descriptor.FieldDescriptor(
      name='pathtype', full_name='DiskVolumeInfoArgs.pathtype', index=1,
      number=2, type=14, cpp_type=8, label=1,
      has_default_value=True, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0011\022-Type of path. Only OS is currently supported.\030\002'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=31004,
  serialized_end=31166,
)


_CHECKFLOWARGS = _descriptor.Descriptor(
  name='CheckFlowArgs',
  full_name='CheckFlowArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='only_os', full_name='CheckFlowArgs.only_os', index=0,
      number=1, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001;\0227Limit checks to hosts of OS type(s) [Linux|OSX|Windows]\030\001'))),
    _descriptor.FieldDescriptor(
      name='only_cpe', full_name='CheckFlowArgs.only_cpe', index=1,
      number=2, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001+\022\'Limit checks to hosts with cpe strings.\030\001'))),
    _descriptor.FieldDescriptor(
      name='only_label', full_name='CheckFlowArgs.only_label', index=2,
      number=3, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001-\022)Limit checks to hosts with label strings.\030\001'))),
    _descriptor.FieldDescriptor(
      name='max_findings', full_name='CheckFlowArgs.max_findings', index=3,
      number=4, type=4, cpp_type=4, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001:\0226Summarize checks with more than N individual findings.\030\001'))),
    _descriptor.FieldDescriptor(
      name='restrict_checks', full_name='CheckFlowArgs.restrict_checks', index=4,
      number=5, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001/\022-Only run checks with the specified check_ids.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=31169,
  serialized_end=31578,
)


_DUMPFLASHIMAGEARGS = _descriptor.Descriptor(
  name='DumpFlashImageArgs',
  full_name='DumpFlashImageArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='log_level', full_name='DumpFlashImageArgs.log_level', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001f\022dSet the log level. If set, the log returned will include additional information reported by Chipsec.'))),
    _descriptor.FieldDescriptor(
      name='chunk_size', full_name='DumpFlashImageArgs.chunk_size', index=1,
      number=2, type=13, cpp_type=3, label=1,
      has_default_value=True, default_value=65536,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001e\022aA heartbeat will be emitted every chunk_size.This could be reduced in case the process times out.\030\001'))),
    _descriptor.FieldDescriptor(
      name='notify_syslog', full_name='DumpFlashImageArgs.notify_syslog', index=2,
      number=3, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\270\001\022\265\001If true, a message will be written by the client to the syslog before running the action. This can be used for debugging in case the client crashes during the image dumping process.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=31581,
  serialized_end=32091,
)


_DUMPACPITABLEARGS = _descriptor.Descriptor(
  name='DumpACPITableArgs',
  full_name='DumpACPITableArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='logging', full_name='DumpACPITableArgs.logging', index=0,
      number=1, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001O\022MIf the logging is set to true, the client sends log, including Chipsec\'s log.'))),
    _descriptor.FieldDescriptor(
      name='table_signature_list', full_name='DumpACPITableArgs.table_signature_list', index=1,
      number=2, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001(\022&Signature of ACPI tables to be dumped.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=32094,
  serialized_end=32301,
)


_YARAPROCESSSCANREQUEST = _descriptor.Descriptor(
  name='YaraProcessScanRequest',
  full_name='YaraProcessScanRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='yara_signature', full_name='YaraProcessScanRequest.yara_signature', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001;\n\rYaraSignature\022*The yara signature(s) to use for scanning.'))),
    _descriptor.FieldDescriptor(
      name='pids', full_name='YaraProcessScanRequest.pids', index=1,
      number=2, type=4, cpp_type=4, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001:\0228The pids to scan. No pids given indicates all processes.'))),
    _descriptor.FieldDescriptor(
      name='process_regex', full_name='YaraProcessScanRequest.process_regex', index=2,
      number=3, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001Q\022OA regex to match against the process name. Only matching names will be scanned.'))),
    _descriptor.FieldDescriptor(
      name='include_errors_in_results', full_name='YaraProcessScanRequest.include_errors_in_results', index=3,
      number=14, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001C\022?Include processes that we failed to scan into returned results.\030\001'))),
    _descriptor.FieldDescriptor(
      name='include_misses_in_results', full_name='YaraProcessScanRequest.include_misses_in_results', index=4,
      number=15, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001K\022GInclude processes that came back without matches into returned results.\030\001'))),
    _descriptor.FieldDescriptor(
      name='ignore_grr_process', full_name='YaraProcessScanRequest.ignore_grr_process', index=5,
      number=4, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=True,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001X\022TBy default, the GRR process is not scanned. Clear this flag to change this behavior.\030\001'))),
    _descriptor.FieldDescriptor(
      name='per_process_timeout', full_name='YaraProcessScanRequest.per_process_timeout', index=6,
      number=5, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001Y\022WA timeout in seconds that is applied while scanning; applies to each scan individually.'))),
    _descriptor.FieldDescriptor(
      name='chunk_size', full_name='YaraProcessScanRequest.chunk_size', index=7,
      number=6, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=104857600,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001=\0229The chunk size to use when scanning large memory regions.\030\001'))),
    _descriptor.FieldDescriptor(
      name='overlap_size', full_name='YaraProcessScanRequest.overlap_size', index=8,
      number=7, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=10485760,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001?\022;The overlap size to use when scanning large memory regions.\030\001'))),
    _descriptor.FieldDescriptor(
      name='skip_special_regions', full_name='YaraProcessScanRequest.skip_special_regions', index=9,
      number=8, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001c\022_Set this flag to avoid scanning device backed regions and guard pages. Applies to Windows only.\030\001'))),
    _descriptor.FieldDescriptor(
      name='skip_mapped_files', full_name='YaraProcessScanRequest.skip_mapped_files', index=10,
      number=9, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=True,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001H\022DSet this flag to avoid scanning mapped files. Applies to Linux only.\030\001'))),
    _descriptor.FieldDescriptor(
      name='skip_shared_regions', full_name='YaraProcessScanRequest.skip_shared_regions', index=11,
      number=10, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001O\022KSet this flag to avoid scanning shared regions. Applies to Linux and macOS.\030\001'))),
    _descriptor.FieldDescriptor(
      name='skip_executable_regions', full_name='YaraProcessScanRequest.skip_executable_regions', index=12,
      number=11, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001S\022OSet this flag to avoid scanning executable regions. Applies to Linux and macOS.\030\001'))),
    _descriptor.FieldDescriptor(
      name='skip_readonly_regions', full_name='YaraProcessScanRequest.skip_readonly_regions', index=13,
      number=12, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001Q\022MSet this flag to avoid scanning readonly regions. Applies to Linux and macOS.\030\001'))),
    _descriptor.FieldDescriptor(
      name='dump_process_on_match', full_name='YaraProcessScanRequest.dump_process_on_match', index=14,
      number=13, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001M\022ISet this flag to schedule a process memory dump on every signature match.\030\001'))),
    _descriptor.FieldDescriptor(
      name='max_results_per_process', full_name='YaraProcessScanRequest.max_results_per_process', index=15,
      number=16, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001N\022JSet this to limit the number of matches returned for each process scanned.\030\001'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=32304,
  serialized_end=34195,
)


_YARAPROCESSERROR = _descriptor.Descriptor(
  name='YaraProcessError',
  full_name='YaraProcessError',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='process', full_name='YaraProcessError.process', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0014\0222The process that returned an error while scanning.'))),
    _descriptor.FieldDescriptor(
      name='error', full_name='YaraProcessError.error', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\036\022\034The error that was returned.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=34198,
  serialized_end=34356,
)


_YARASTRINGMATCH = _descriptor.Descriptor(
  name='YaraStringMatch',
  full_name='YaraStringMatch',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='string_id', full_name='YaraStringMatch.string_id', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001&\022$The name of the string that matched.'))),
    _descriptor.FieldDescriptor(
      name='offset', full_name='YaraStringMatch.offset', index=1,
      number=2, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\033\022\031The offset into the data.'))),
    _descriptor.FieldDescriptor(
      name='data', full_name='YaraStringMatch.data', index=2,
      number=3, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\037\022\035The actual data that matched.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=34359,
  serialized_end=34545,
)


_YARAMATCH = _descriptor.Descriptor(
  name='YaraMatch',
  full_name='YaraMatch',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='rule_name', full_name='YaraMatch.rule_name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001&\022$The name of the rule that triggered.'))),
    _descriptor.FieldDescriptor(
      name='string_matches', full_name='YaraMatch.string_matches', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001#\022!The list of strings that matched.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=34548,
  serialized_end=34709,
)


_YARAPROCESSSCANMATCH = _descriptor.Descriptor(
  name='YaraProcessScanMatch',
  full_name='YaraProcessScanMatch',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='process', full_name='YaraProcessScanMatch.process', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0010\022.The process that returned one or more matches.'))),
    _descriptor.FieldDescriptor(
      name='match', full_name='YaraProcessScanMatch.match', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\034\022\032Details about the matches.'))),
    _descriptor.FieldDescriptor(
      name='scan_time_us', full_name='YaraProcessScanMatch.scan_time_us', index=2,
      number=3, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0011\022/Time in microseconds taken to perform the scan.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=34712,
  serialized_end=34959,
)


_YARAPROCESSSCANMISS = _descriptor.Descriptor(
  name='YaraProcessScanMiss',
  full_name='YaraProcessScanMiss',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='process', full_name='YaraProcessScanMiss.process', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\'\022%The process that returned no matches.'))),
    _descriptor.FieldDescriptor(
      name='scan_time_us', full_name='YaraProcessScanMiss.scan_time_us', index=1,
      number=2, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0011\022/Time in microseconds taken to perform the scan.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=34962,
  serialized_end=35136,
)


_YARAPROCESSSCANRESPONSE = _descriptor.Descriptor(
  name='YaraProcessScanResponse',
  full_name='YaraProcessScanResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='matches', full_name='YaraProcessScanResponse.matches', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001-\022+A list of processes with signature matches.'))),
    _descriptor.FieldDescriptor(
      name='errors', full_name='YaraProcessScanResponse.errors', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001-\022+A list of processes that we failed to scan.'))),
    _descriptor.FieldDescriptor(
      name='misses', full_name='YaraProcessScanResponse.misses', index=2,
      number=3, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0015\0223A list of processes that came back without matches.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=35139,
  serialized_end=35444,
)


_YARAPROCESSDUMPARGS = _descriptor.Descriptor(
  name='YaraProcessDumpArgs',
  full_name='YaraProcessDumpArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='pids', full_name='YaraProcessDumpArgs.pids', index=0,
      number=1, type=4, cpp_type=4, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\031\022\027A list of pids to dump.'))),
    _descriptor.FieldDescriptor(
      name='process_regex', full_name='YaraProcessDumpArgs.process_regex', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001P\022NA regex to match against the process name. Only matching names will be dumped.'))),
    _descriptor.FieldDescriptor(
      name='ignore_grr_process', full_name='YaraProcessDumpArgs.ignore_grr_process', index=2,
      number=3, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=True,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001W\022SBy default, the GRR process is not dumped. Clear this flag to change this behavior.\030\001'))),
    _descriptor.FieldDescriptor(
      name='dump_all_processes', full_name='YaraProcessDumpArgs.dump_all_processes', index=3,
      number=4, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001G\022CThis dumps all processes. Might return lots of data, use with care.\030\001'))),
    _descriptor.FieldDescriptor(
      name='size_limit', full_name='YaraProcessDumpArgs.size_limit', index=4,
      number=5, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\310\001\n\010ByteSize\022\271\001Maximum amount of raw process memory to dump. Applies to all requested processes together. The first memory block going over the limit will not be written anymore. 0 indicates no limit.\030\001'))),
    _descriptor.FieldDescriptor(
      name='chunk_size', full_name='YaraProcessDumpArgs.chunk_size', index=5,
      number=6, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=104857600,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001<\0228The chunk size to use when reading large memory regions.\030\001'))),
    _descriptor.FieldDescriptor(
      name='skip_special_regions', full_name='YaraProcessDumpArgs.skip_special_regions', index=6,
      number=7, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001b\022^Set this flag to avoid dumping device backed regions and guard pages. Applies to Windows only.\030\001'))),
    _descriptor.FieldDescriptor(
      name='skip_mapped_files', full_name='YaraProcessDumpArgs.skip_mapped_files', index=7,
      number=8, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=True,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001G\022CSet this flag to avoid dumping mapped files. Applies to Linux only.\030\001'))),
    _descriptor.FieldDescriptor(
      name='skip_shared_regions', full_name='YaraProcessDumpArgs.skip_shared_regions', index=8,
      number=9, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001N\022JSet this flag to avoid dumping shared regions. Applies to Linux and macOS.\030\001'))),
    _descriptor.FieldDescriptor(
      name='skip_executable_regions', full_name='YaraProcessDumpArgs.skip_executable_regions', index=9,
      number=10, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001R\022NSet this flag to avoid dumping executable regions. Applies to Linux and macOS.\030\001'))),
    _descriptor.FieldDescriptor(
      name='skip_readonly_regions', full_name='YaraProcessDumpArgs.skip_readonly_regions', index=10,
      number=11, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001P\022LSet this flag to avoid dumping readonly regions. Applies to Linux and macOS.\030\001'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=35447,
  serialized_end=36837,
)


_YARAPROCESSDUMPINFORMATION = _descriptor.Descriptor(
  name='YaraProcessDumpInformation',
  full_name='YaraProcessDumpInformation',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='process', full_name='YaraProcessDumpInformation.process', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001&\022$The process that was dumped to disk.'))),
    _descriptor.FieldDescriptor(
      name='dump_files', full_name='YaraProcessDumpInformation.dump_files', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001+\022)The files that contain the process image.'))),
    _descriptor.FieldDescriptor(
      name='error', full_name='YaraProcessDumpInformation.error', index=2,
      number=3, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001Y\022WErrors while dumping will be reported here. Mostly used when exceeding the bytes limit.'))),
    _descriptor.FieldDescriptor(
      name='dump_time_us', full_name='YaraProcessDumpInformation.dump_time_us', index=3,
      number=4, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0011\022/Time in microseconds taken to dump the process.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=36840,
  serialized_end=37214,
)


_YARAPROCESSDUMPRESPONSE = _descriptor.Descriptor(
  name='YaraProcessDumpResponse',
  full_name='YaraProcessDumpResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='dumped_processes', full_name='YaraProcessDumpResponse.dumped_processes', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0015\0223Information about processes that we dumped to disk.'))),
    _descriptor.FieldDescriptor(
      name='errors', full_name='YaraProcessDumpResponse.errors', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001-\022+A list of processes that we failed to dump.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=37217,
  serialized_end=37446,
)


_NETSTATARGS = _descriptor.Descriptor(
  name='NetstatArgs',
  full_name='NetstatArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='listening_only', full_name='NetstatArgs.listening_only', index=0,
      number=1, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0012\0220If set, only listening connections are returned.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=37448,
  serialized_end=37550,
)


_LISTNETWORKCONNECTIONSARGS = _descriptor.Descriptor(
  name='ListNetworkConnectionsArgs',
  full_name='ListNetworkConnectionsArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='listening_only', full_name='ListNetworkConnectionsArgs.listening_only', index=0,
      number=1, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0012\0220If set, only listening connections are returned.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=37552,
  serialized_end=37669,
)

_CLOUDMETADATAREQUEST.fields_by_name['headers'].message_type = grr__response__proto_dot_jobs__pb2._DICT
_CLOUDMETADATAREQUEST.fields_by_name['instance_type'].enum_type = grr__response__proto_dot_jobs__pb2._CLOUDINSTANCE_INSTANCETYPE
_CLOUDMETADATAREQUESTS.fields_by_name['requests'].message_type = _CLOUDMETADATAREQUEST
_CLOUDMETADATARESPONSES.fields_by_name['responses'].message_type = _CLOUDMETADATARESPONSE
_CLOUDMETADATARESPONSES.fields_by_name['instance_type'].enum_type = grr__response__proto_dot_jobs__pb2._CLOUDINSTANCE_INSTANCETYPE
_FLOWCONTEXT.fields_by_name['client_resources'].message_type = grr__response__proto_dot_jobs__pb2._CLIENTRESOURCES
_FLOWCONTEXT.fields_by_name['output_plugins_states'].message_type = grr__response__proto_dot_output__plugin__pb2._OUTPUTPLUGINSTATE
_FLOWCONTEXT.fields_by_name['state'].enum_type = _FLOWCONTEXT_STATE
_FLOWCONTEXT_STATE.containing_type = _FLOWCONTEXT
_HUNTCONTEXT.fields_by_name['client_resources'].message_type = grr__response__proto_dot_jobs__pb2._CLIENTRESOURCES
_HUNTCONTEXT.fields_by_name['usage_stats'].message_type = grr__response__proto_dot_jobs__pb2._CLIENTRESOURCESSTATS
_FLOWLIKEOBJECTREFERENCE.fields_by_name['object_type'].enum_type = _FLOWLIKEOBJECTREFERENCE_OBJECTTYPE
_FLOWLIKEOBJECTREFERENCE.fields_by_name['flow_reference'].message_type = grr__response__proto_dot_objects__pb2._FLOWREFERENCE
_FLOWLIKEOBJECTREFERENCE.fields_by_name['hunt_reference'].message_type = grr__response__proto_dot_objects__pb2._HUNTREFERENCE
_FLOWLIKEOBJECTREFERENCE_OBJECTTYPE.containing_type = _FLOWLIKEOBJECTREFERENCE
_FLOWRUNNERARGS.fields_by_name['priority'].enum_type = grr__response__proto_dot_jobs__pb2._GRRMESSAGE_PRIORITY
_FLOWRUNNERARGS.fields_by_name['request_state'].message_type = grr__response__proto_dot_jobs__pb2._REQUESTSTATE
_FLOWRUNNERARGS.fields_by_name['output_plugins'].message_type = grr__response__proto_dot_output__plugin__pb2._OUTPUTPLUGINDESCRIPTOR
_FLOWRUNNERARGS.fields_by_name['original_flow'].message_type = grr__response__proto_dot_objects__pb2._FLOWREFERENCE
_HUNTRUNNERARGS.fields_by_name['client_rule_set'].message_type = grr__response__proto_dot_jobs__pb2._FOREMANCLIENTRULESET
_HUNTRUNNERARGS.fields_by_name['priority'].enum_type = grr__response__proto_dot_jobs__pb2._GRRMESSAGE_PRIORITY
_HUNTRUNNERARGS.fields_by_name['output_plugins'].message_type = grr__response__proto_dot_output__plugin__pb2._OUTPUTPLUGINDESCRIPTOR
_HUNTRUNNERARGS.fields_by_name['original_object'].message_type = _FLOWLIKEOBJECTREFERENCE
_FLOWREQUEST.fields_by_name['runner_args'].message_type = _FLOWRUNNERARGS
_VARIABLEGENERICHUNTARGS.fields_by_name['flows'].message_type = _FLOWREQUEST
_VARIABLEGENERICHUNTARGS.fields_by_name['output_plugins'].message_type = grr__response__proto_dot_output__plugin__pb2._OUTPUTPLUGINDESCRIPTOR
_GENERICHUNTARGS.fields_by_name['flow_runner_args'].message_type = _FLOWRUNNERARGS
_GENERICHUNTARGS.fields_by_name['output_plugins'].message_type = grr__response__proto_dot_output__plugin__pb2._OUTPUTPLUGINDESCRIPTOR
_BAREGREPSPEC.fields_by_name['mode'].enum_type = _BAREGREPSPEC_MODE
_BAREGREPSPEC_MODE.containing_type = _BAREGREPSPEC
_CAENROLERARGS.fields_by_name['csr'].message_type = grr__response__proto_dot_jobs__pb2._CERTIFICATE
_DELETEGRRTEMPFILESARGS.fields_by_name['pathspec'].message_type = grr__response__proto_dot_jobs__pb2._PATHSPEC
_UPDATECONFIGURATIONARGS.fields_by_name['config'].message_type = grr__response__proto_dot_jobs__pb2._DICT
_EXECUTEPYTHONHACKARGS.fields_by_name['py_args'].message_type = grr__response__proto_dot_jobs__pb2._DICT
_ARTIFACTCOLLECTORFLOWARGS.fields_by_name['knowledge_base'].message_type = grr__response__proto_dot_knowledge__base__pb2._KNOWLEDGEBASE
_ARTIFACTCOLLECTORFLOWARGS.fields_by_name['dependencies'].enum_type = _ARTIFACTCOLLECTORFLOWARGS_DEPENDENCY
_ARTIFACTCOLLECTORFLOWARGS_DEPENDENCY.containing_type = _ARTIFACTCOLLECTORFLOWARGS
_ARTIFACTFILESDOWNLOADERRESULT.fields_by_name['found_pathspec'].message_type = grr__response__proto_dot_jobs__pb2._PATHSPEC
_ARTIFACTFILESDOWNLOADERRESULT.fields_by_name['downloaded_file'].message_type = grr__response__proto_dot_jobs__pb2._STATENTRY
_FINGERPRINTFILEARGS.fields_by_name['pathspec'].message_type = grr__response__proto_dot_jobs__pb2._PATHSPEC
_FINGERPRINTFILERESULT.fields_by_name['hash_entry'].message_type = grr__response__proto_dot_jobs__pb2._HASH
_SOPHOSCOLLECTORARGS.fields_by_name['pathtype'].enum_type = grr__response__proto_dot_jobs__pb2._PATHSPEC_PATHTYPE
_FILECOLLECTORARGS.fields_by_name['findspecs'].message_type = grr__response__proto_dot_jobs__pb2._FINDSPEC
_FIREFOXHISTORYARGS.fields_by_name['pathtype'].enum_type = grr__response__proto_dot_jobs__pb2._PATHSPEC_PATHTYPE
_CACHEGREPARGS.fields_by_name['pathtype'].enum_type = grr__response__proto_dot_jobs__pb2._PATHSPEC_PATHTYPE
_LISTDIRECTORYARGS.fields_by_name['pathspec'].message_type = grr__response__proto_dot_jobs__pb2._PATHSPEC
_RECURSIVELISTDIRECTORYARGS.fields_by_name['pathspec'].message_type = grr__response__proto_dot_jobs__pb2._PATHSPEC
_MAKENEWAFF4SPARSEIMAGEARGS.fields_by_name['pathspec'].message_type = grr__response__proto_dot_jobs__pb2._PATHSPEC
_GREPARGS.fields_by_name['request'].message_type = grr__response__proto_dot_jobs__pb2._GREPSPEC
_GLOBARGS.fields_by_name['pathtype'].enum_type = grr__response__proto_dot_jobs__pb2._PATHSPEC_PATHTYPE
_GLOBARGS.fields_by_name['root_path'].message_type = grr__response__proto_dot_jobs__pb2._PATHSPEC
_FINDFILESARGS.fields_by_name['findspec'].message_type = grr__response__proto_dot_jobs__pb2._FINDSPEC
_GETFILEARGS.fields_by_name['pathspec'].message_type = grr__response__proto_dot_jobs__pb2._PATHSPEC
_CHROMEHISTORYARGS.fields_by_name['pathtype'].enum_type = grr__response__proto_dot_jobs__pb2._PATHSPEC_PATHTYPE
_CREATEGENERICHUNTFLOWARGS.fields_by_name['hunt_runner_args'].message_type = _HUNTRUNNERARGS
_CREATEGENERICHUNTFLOWARGS.fields_by_name['hunt_args'].message_type = _GENERICHUNTARGS
_CREATECRONJOBFLOWARGS.fields_by_name['flow_runner_args'].message_type = _FLOWRUNNERARGS
_CRONJOB.fields_by_name['cron_args'].message_type = _CREATECRONJOBFLOWARGS
_CRONJOB.fields_by_name['last_run_status'].enum_type = grr__response__proto_dot_jobs__pb2._CRONJOBRUNSTATUS_STATUS
_CRONJOB.fields_by_name['state'].message_type = grr__response__proto_dot_jobs__pb2._ATTRIBUTEDDICT
_PLISTVALUEFILTERARGS.fields_by_name['request'].message_type = grr__response__proto_dot_jobs__pb2._PLISTREQUEST
_ENUMERATESERVICESARGS.fields_by_name['pathtype'].enum_type = grr__response__proto_dot_jobs__pb2._PATHSPEC_PATHTYPE
_CHROMEPLUGINSARGS.fields_by_name['pathtype'].enum_type = grr__response__proto_dot_jobs__pb2._PATHSPEC_PATHTYPE
_MULTIGETFILEARGS.fields_by_name['pathspecs'].message_type = grr__response__proto_dot_jobs__pb2._PATHSPEC
_LISTPROCESSESARGS.fields_by_name['connection_states'].enum_type = grr__response__proto_dot_sysinfo__pb2._NETWORKCONNECTION_STATE
_FILEFINDERCONTENTSREGEXMATCHCONDITION.fields_by_name['mode'].enum_type = _FILEFINDERCONTENTSREGEXMATCHCONDITION_MODE
_FILEFINDERCONTENTSREGEXMATCHCONDITION_MODE.containing_type = _FILEFINDERCONTENTSREGEXMATCHCONDITION
_FILEFINDERCONTENTSLITERALMATCHCONDITION.fields_by_name['mode'].enum_type = _FILEFINDERCONTENTSLITERALMATCHCONDITION_MODE
_FILEFINDERCONTENTSLITERALMATCHCONDITION_MODE.containing_type = _FILEFINDERCONTENTSLITERALMATCHCONDITION
_FILEFINDERCONDITION.fields_by_name['condition_type'].enum_type = _FILEFINDERCONDITION_TYPE
_FILEFINDERCONDITION.fields_by_name['modification_time'].message_type = _FILEFINDERMODIFICATIONTIMECONDITION
_FILEFINDERCONDITION.fields_by_name['access_time'].message_type = _FILEFINDERACCESSTIMECONDITION
_FILEFINDERCONDITION.fields_by_name['inode_change_time'].message_type = _FILEFINDERINODECHANGETIMECONDITION
_FILEFINDERCONDITION.fields_by_name['size'].message_type = _FILEFINDERSIZECONDITION
_FILEFINDERCONDITION.fields_by_name['ext_flags'].message_type = _FILEFINDEREXTFLAGSCONDITION
_FILEFINDERCONDITION.fields_by_name['contents_regex_match'].message_type = _FILEFINDERCONTENTSREGEXMATCHCONDITION
_FILEFINDERCONDITION.fields_by_name['contents_literal_match'].message_type = _FILEFINDERCONTENTSLITERALMATCHCONDITION
_FILEFINDERCONDITION_TYPE.containing_type = _FILEFINDERCONDITION
_FILEFINDERHASHACTIONOPTIONS.fields_by_name['oversized_file_policy'].enum_type = _FILEFINDERHASHACTIONOPTIONS_OVERSIZEDFILEPOLICY
_FILEFINDERHASHACTIONOPTIONS_OVERSIZEDFILEPOLICY.containing_type = _FILEFINDERHASHACTIONOPTIONS
_FILEFINDERDOWNLOADACTIONOPTIONS.fields_by_name['oversized_file_policy'].enum_type = _FILEFINDERDOWNLOADACTIONOPTIONS_OVERSIZEDFILEPOLICY
_FILEFINDERDOWNLOADACTIONOPTIONS_OVERSIZEDFILEPOLICY.containing_type = _FILEFINDERDOWNLOADACTIONOPTIONS
_FILEFINDERACTION.fields_by_name['action_type'].enum_type = _FILEFINDERACTION_ACTION
_FILEFINDERACTION.fields_by_name['hash'].message_type = _FILEFINDERHASHACTIONOPTIONS
_FILEFINDERACTION.fields_by_name['download'].message_type = _FILEFINDERDOWNLOADACTIONOPTIONS
_FILEFINDERACTION.fields_by_name['stat'].message_type = _FILEFINDERSTATACTIONOPTIONS
_FILEFINDERACTION_ACTION.containing_type = _FILEFINDERACTION
_FILEFINDERARGS.fields_by_name['pathtype'].enum_type = grr__response__proto_dot_jobs__pb2._PATHSPEC_PATHTYPE
_FILEFINDERARGS.fields_by_name['conditions'].message_type = _FILEFINDERCONDITION
_FILEFINDERARGS.fields_by_name['action'].message_type = _FILEFINDERACTION
_FILEFINDERARGS.fields_by_name['xdev'].enum_type = _FILEFINDERARGS_XDEV
_FILEFINDERARGS_XDEV.containing_type = _FILEFINDERARGS
_FILEFINDERRESULT.fields_by_name['stat_entry'].message_type = grr__response__proto_dot_jobs__pb2._STATENTRY
_FILEFINDERRESULT.fields_by_name['matches'].message_type = grr__response__proto_dot_jobs__pb2._BUFFERREFERENCE
_FILEFINDERRESULT.fields_by_name['hash_entry'].message_type = grr__response__proto_dot_jobs__pb2._HASH
_FILEFINDERRESULT.fields_by_name['transferred_file'].message_type = grr__response__proto_dot_jobs__pb2._BLOBIMAGEDESCRIPTOR
_FILEREFERENCE.fields_by_name['pathspecs'].message_type = grr__response__proto_dot_jobs__pb2._PATHSPEC
_REGISTRYFINDERCONDITION.fields_by_name['condition_type'].enum_type = _REGISTRYFINDERCONDITION_TYPE
_REGISTRYFINDERCONDITION.fields_by_name['value_literal_match'].message_type = _FILEFINDERCONTENTSLITERALMATCHCONDITION
_REGISTRYFINDERCONDITION.fields_by_name['value_regex_match'].message_type = _FILEFINDERCONTENTSREGEXMATCHCONDITION
_REGISTRYFINDERCONDITION.fields_by_name['modification_time'].message_type = _FILEFINDERMODIFICATIONTIMECONDITION
_REGISTRYFINDERCONDITION.fields_by_name['size'].message_type = _FILEFINDERSIZECONDITION
_REGISTRYFINDERCONDITION_TYPE.containing_type = _REGISTRYFINDERCONDITION
_REGISTRYFINDERARGS.fields_by_name['conditions'].message_type = _REGISTRYFINDERCONDITION
_DISKVOLUMEINFOARGS.fields_by_name['pathtype'].enum_type = grr__response__proto_dot_jobs__pb2._PATHSPEC_PATHTYPE
_YARAPROCESSERROR.fields_by_name['process'].message_type = grr__response__proto_dot_sysinfo__pb2._PROCESS
_YARAMATCH.fields_by_name['string_matches'].message_type = _YARASTRINGMATCH
_YARAPROCESSSCANMATCH.fields_by_name['process'].message_type = grr__response__proto_dot_sysinfo__pb2._PROCESS
_YARAPROCESSSCANMATCH.fields_by_name['match'].message_type = _YARAMATCH
_YARAPROCESSSCANMISS.fields_by_name['process'].message_type = grr__response__proto_dot_sysinfo__pb2._PROCESS
_YARAPROCESSSCANRESPONSE.fields_by_name['matches'].message_type = _YARAPROCESSSCANMATCH
_YARAPROCESSSCANRESPONSE.fields_by_name['errors'].message_type = _YARAPROCESSERROR
_YARAPROCESSSCANRESPONSE.fields_by_name['misses'].message_type = _YARAPROCESSSCANMISS
_YARAPROCESSDUMPINFORMATION.fields_by_name['process'].message_type = grr__response__proto_dot_sysinfo__pb2._PROCESS
_YARAPROCESSDUMPINFORMATION.fields_by_name['dump_files'].message_type = grr__response__proto_dot_jobs__pb2._PATHSPEC
_YARAPROCESSDUMPRESPONSE.fields_by_name['dumped_processes'].message_type = _YARAPROCESSDUMPINFORMATION
_YARAPROCESSDUMPRESPONSE.fields_by_name['errors'].message_type = _YARAPROCESSERROR
DESCRIPTOR.message_types_by_name['CloudMetadataRequest'] = _CLOUDMETADATAREQUEST
DESCRIPTOR.message_types_by_name['CloudMetadataRequests'] = _CLOUDMETADATAREQUESTS
DESCRIPTOR.message_types_by_name['CloudMetadataResponse'] = _CLOUDMETADATARESPONSE
DESCRIPTOR.message_types_by_name['CloudMetadataResponses'] = _CLOUDMETADATARESPONSES
DESCRIPTOR.message_types_by_name['FlowContext'] = _FLOWCONTEXT
DESCRIPTOR.message_types_by_name['HuntContext'] = _HUNTCONTEXT
DESCRIPTOR.message_types_by_name['ACLToken'] = _ACLTOKEN
DESCRIPTOR.message_types_by_name['FlowLikeObjectReference'] = _FLOWLIKEOBJECTREFERENCE
DESCRIPTOR.message_types_by_name['FlowRunnerArgs'] = _FLOWRUNNERARGS
DESCRIPTOR.message_types_by_name['HuntRunnerArgs'] = _HUNTRUNNERARGS
DESCRIPTOR.message_types_by_name['SampleHuntArgs'] = _SAMPLEHUNTARGS
DESCRIPTOR.message_types_by_name['FlowRequest'] = _FLOWREQUEST
DESCRIPTOR.message_types_by_name['VariableGenericHuntArgs'] = _VARIABLEGENERICHUNTARGS
DESCRIPTOR.message_types_by_name['GenericHuntArgs'] = _GENERICHUNTARGS
DESCRIPTOR.message_types_by_name['BareGrepSpec'] = _BAREGREPSPEC
DESCRIPTOR.message_types_by_name['CAEnrolerArgs'] = _CAENROLERARGS
DESCRIPTOR.message_types_by_name['DeleteGRRTempFilesArgs'] = _DELETEGRRTEMPFILESARGS
DESCRIPTOR.message_types_by_name['UninstallArgs'] = _UNINSTALLARGS
DESCRIPTOR.message_types_by_name['UpdateConfigurationArgs'] = _UPDATECONFIGURATIONARGS
DESCRIPTOR.message_types_by_name['ExecutePythonHackArgs'] = _EXECUTEPYTHONHACKARGS
DESCRIPTOR.message_types_by_name['ExecuteCommandArgs'] = _EXECUTECOMMANDARGS
DESCRIPTOR.message_types_by_name['OnlineNotificationArgs'] = _ONLINENOTIFICATIONARGS
DESCRIPTOR.message_types_by_name['UpdateClientArgs'] = _UPDATECLIENTARGS
DESCRIPTOR.message_types_by_name['KeepAliveArgs'] = _KEEPALIVEARGS
DESCRIPTOR.message_types_by_name['LaunchBinaryArgs'] = _LAUNCHBINARYARGS
DESCRIPTOR.message_types_by_name['WinUserActivityInvestigationArgs'] = _WINUSERACTIVITYINVESTIGATIONARGS
DESCRIPTOR.message_types_by_name['ArtifactCollectorFlowArgs'] = _ARTIFACTCOLLECTORFLOWARGS
DESCRIPTOR.message_types_by_name['ArtifactFilesDownloaderFlowArgs'] = _ARTIFACTFILESDOWNLOADERFLOWARGS
DESCRIPTOR.message_types_by_name['ArtifactFilesDownloaderResult'] = _ARTIFACTFILESDOWNLOADERRESULT
DESCRIPTOR.message_types_by_name['InterrogateArgs'] = _INTERROGATEARGS
DESCRIPTOR.message_types_by_name['FingerprintFileArgs'] = _FINGERPRINTFILEARGS
DESCRIPTOR.message_types_by_name['FingerprintFileResult'] = _FINGERPRINTFILERESULT
DESCRIPTOR.message_types_by_name['SophosCollectorArgs'] = _SOPHOSCOLLECTORARGS
DESCRIPTOR.message_types_by_name['MACTimesArgs'] = _MACTIMESARGS
DESCRIPTOR.message_types_by_name['FileCollectorArgs'] = _FILECOLLECTORARGS
DESCRIPTOR.message_types_by_name['FirefoxHistoryArgs'] = _FIREFOXHISTORYARGS
DESCRIPTOR.message_types_by_name['CacheGrepArgs'] = _CACHEGREPARGS
DESCRIPTOR.message_types_by_name['ListDirectoryArgs'] = _LISTDIRECTORYARGS
DESCRIPTOR.message_types_by_name['RecursiveListDirectoryArgs'] = _RECURSIVELISTDIRECTORYARGS
DESCRIPTOR.message_types_by_name['FetchBufferForSparseImageArgs'] = _FETCHBUFFERFORSPARSEIMAGEARGS
DESCRIPTOR.message_types_by_name['MakeNewAFF4SparseImageArgs'] = _MAKENEWAFF4SPARSEIMAGEARGS
DESCRIPTOR.message_types_by_name['UpdateSparseImageChunksArgs'] = _UPDATESPARSEIMAGECHUNKSARGS
DESCRIPTOR.message_types_by_name['GrepArgs'] = _GREPARGS
DESCRIPTOR.message_types_by_name['GlobArgs'] = _GLOBARGS
DESCRIPTOR.message_types_by_name['FindFilesArgs'] = _FINDFILESARGS
DESCRIPTOR.message_types_by_name['GetFileArgs'] = _GETFILEARGS
DESCRIPTOR.message_types_by_name['GetMBRArgs'] = _GETMBRARGS
DESCRIPTOR.message_types_by_name['ChromeHistoryArgs'] = _CHROMEHISTORYARGS
DESCRIPTOR.message_types_by_name['CreateGenericHuntFlowArgs'] = _CREATEGENERICHUNTFLOWARGS
DESCRIPTOR.message_types_by_name['CreateCronJobFlowArgs'] = _CREATECRONJOBFLOWARGS
DESCRIPTOR.message_types_by_name['CronJob'] = _CRONJOB
DESCRIPTOR.message_types_by_name['PlistValueFilterArgs'] = _PLISTVALUEFILTERARGS
DESCRIPTOR.message_types_by_name['RunReportFlowArgs'] = _RUNREPORTFLOWARGS
DESCRIPTOR.message_types_by_name['EnumerateServicesArgs'] = _ENUMERATESERVICESARGS
DESCRIPTOR.message_types_by_name['ChromePluginsArgs'] = _CHROMEPLUGINSARGS
DESCRIPTOR.message_types_by_name['UpdateVFSFileArgs'] = _UPDATEVFSFILEARGS
DESCRIPTOR.message_types_by_name['MultiGetFileArgs'] = _MULTIGETFILEARGS
DESCRIPTOR.message_types_by_name['ProcessHuntResultCollectionsCronFlowArgs'] = _PROCESSHUNTRESULTCOLLECTIONSCRONFLOWARGS
DESCRIPTOR.message_types_by_name['VerifyHuntOutputPluginsCronFlowArgs'] = _VERIFYHUNTOUTPUTPLUGINSCRONFLOWARGS
DESCRIPTOR.message_types_by_name['ListProcessesArgs'] = _LISTPROCESSESARGS
DESCRIPTOR.message_types_by_name['ListVADBinariesArgs'] = _LISTVADBINARIESARGS
DESCRIPTOR.message_types_by_name['FileFinderModificationTimeCondition'] = _FILEFINDERMODIFICATIONTIMECONDITION
DESCRIPTOR.message_types_by_name['FileFinderAccessTimeCondition'] = _FILEFINDERACCESSTIMECONDITION
DESCRIPTOR.message_types_by_name['FileFinderInodeChangeTimeCondition'] = _FILEFINDERINODECHANGETIMECONDITION
DESCRIPTOR.message_types_by_name['FileFinderSizeCondition'] = _FILEFINDERSIZECONDITION
DESCRIPTOR.message_types_by_name['FileFinderExtFlagsCondition'] = _FILEFINDEREXTFLAGSCONDITION
DESCRIPTOR.message_types_by_name['FileFinderContentsRegexMatchCondition'] = _FILEFINDERCONTENTSREGEXMATCHCONDITION
DESCRIPTOR.message_types_by_name['FileFinderContentsLiteralMatchCondition'] = _FILEFINDERCONTENTSLITERALMATCHCONDITION
DESCRIPTOR.message_types_by_name['FileFinderCondition'] = _FILEFINDERCONDITION
DESCRIPTOR.message_types_by_name['FileFinderHashActionOptions'] = _FILEFINDERHASHACTIONOPTIONS
DESCRIPTOR.message_types_by_name['FileFinderDownloadActionOptions'] = _FILEFINDERDOWNLOADACTIONOPTIONS
DESCRIPTOR.message_types_by_name['FileFinderStatActionOptions'] = _FILEFINDERSTATACTIONOPTIONS
DESCRIPTOR.message_types_by_name['FileFinderAction'] = _FILEFINDERACTION
DESCRIPTOR.message_types_by_name['FileFinderArgs'] = _FILEFINDERARGS
DESCRIPTOR.message_types_by_name['FileFinderResult'] = _FILEFINDERRESULT
DESCRIPTOR.message_types_by_name['FileReference'] = _FILEREFERENCE
DESCRIPTOR.message_types_by_name['RegistryFinderCondition'] = _REGISTRYFINDERCONDITION
DESCRIPTOR.message_types_by_name['RegistryFinderArgs'] = _REGISTRYFINDERARGS
DESCRIPTOR.message_types_by_name['MemoryCollectorArgs'] = _MEMORYCOLLECTORARGS
DESCRIPTOR.message_types_by_name['ArtifactFallbackCollectorArgs'] = _ARTIFACTFALLBACKCOLLECTORARGS
DESCRIPTOR.message_types_by_name['KnowledgeBaseInitializationArgs'] = _KNOWLEDGEBASEINITIALIZATIONARGS
DESCRIPTOR.message_types_by_name['EndToEndTestFlowArgs'] = _ENDTOENDTESTFLOWARGS
DESCRIPTOR.message_types_by_name['DiskVolumeInfoArgs'] = _DISKVOLUMEINFOARGS
DESCRIPTOR.message_types_by_name['CheckFlowArgs'] = _CHECKFLOWARGS
DESCRIPTOR.message_types_by_name['DumpFlashImageArgs'] = _DUMPFLASHIMAGEARGS
DESCRIPTOR.message_types_by_name['DumpACPITableArgs'] = _DUMPACPITABLEARGS
DESCRIPTOR.message_types_by_name['YaraProcessScanRequest'] = _YARAPROCESSSCANREQUEST
DESCRIPTOR.message_types_by_name['YaraProcessError'] = _YARAPROCESSERROR
DESCRIPTOR.message_types_by_name['YaraStringMatch'] = _YARASTRINGMATCH
DESCRIPTOR.message_types_by_name['YaraMatch'] = _YARAMATCH
DESCRIPTOR.message_types_by_name['YaraProcessScanMatch'] = _YARAPROCESSSCANMATCH
DESCRIPTOR.message_types_by_name['YaraProcessScanMiss'] = _YARAPROCESSSCANMISS
DESCRIPTOR.message_types_by_name['YaraProcessScanResponse'] = _YARAPROCESSSCANRESPONSE
DESCRIPTOR.message_types_by_name['YaraProcessDumpArgs'] = _YARAPROCESSDUMPARGS
DESCRIPTOR.message_types_by_name['YaraProcessDumpInformation'] = _YARAPROCESSDUMPINFORMATION
DESCRIPTOR.message_types_by_name['YaraProcessDumpResponse'] = _YARAPROCESSDUMPRESPONSE
DESCRIPTOR.message_types_by_name['NetstatArgs'] = _NETSTATARGS
DESCRIPTOR.message_types_by_name['ListNetworkConnectionsArgs'] = _LISTNETWORKCONNECTIONSARGS
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

CloudMetadataRequest = _reflection.GeneratedProtocolMessageType('CloudMetadataRequest', (_message.Message,), dict(
  DESCRIPTOR = _CLOUDMETADATAREQUEST,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:CloudMetadataRequest)
  ))
_sym_db.RegisterMessage(CloudMetadataRequest)

CloudMetadataRequests = _reflection.GeneratedProtocolMessageType('CloudMetadataRequests', (_message.Message,), dict(
  DESCRIPTOR = _CLOUDMETADATAREQUESTS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:CloudMetadataRequests)
  ))
_sym_db.RegisterMessage(CloudMetadataRequests)

CloudMetadataResponse = _reflection.GeneratedProtocolMessageType('CloudMetadataResponse', (_message.Message,), dict(
  DESCRIPTOR = _CLOUDMETADATARESPONSE,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:CloudMetadataResponse)
  ))
_sym_db.RegisterMessage(CloudMetadataResponse)

CloudMetadataResponses = _reflection.GeneratedProtocolMessageType('CloudMetadataResponses', (_message.Message,), dict(
  DESCRIPTOR = _CLOUDMETADATARESPONSES,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:CloudMetadataResponses)
  ))
_sym_db.RegisterMessage(CloudMetadataResponses)

FlowContext = _reflection.GeneratedProtocolMessageType('FlowContext', (_message.Message,), dict(
  DESCRIPTOR = _FLOWCONTEXT,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:FlowContext)
  ))
_sym_db.RegisterMessage(FlowContext)

HuntContext = _reflection.GeneratedProtocolMessageType('HuntContext', (_message.Message,), dict(
  DESCRIPTOR = _HUNTCONTEXT,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:HuntContext)
  ))
_sym_db.RegisterMessage(HuntContext)

ACLToken = _reflection.GeneratedProtocolMessageType('ACLToken', (_message.Message,), dict(
  DESCRIPTOR = _ACLTOKEN,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:ACLToken)
  ))
_sym_db.RegisterMessage(ACLToken)

FlowLikeObjectReference = _reflection.GeneratedProtocolMessageType('FlowLikeObjectReference', (_message.Message,), dict(
  DESCRIPTOR = _FLOWLIKEOBJECTREFERENCE,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:FlowLikeObjectReference)
  ))
_sym_db.RegisterMessage(FlowLikeObjectReference)

FlowRunnerArgs = _reflection.GeneratedProtocolMessageType('FlowRunnerArgs', (_message.Message,), dict(
  DESCRIPTOR = _FLOWRUNNERARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:FlowRunnerArgs)
  ))
_sym_db.RegisterMessage(FlowRunnerArgs)

HuntRunnerArgs = _reflection.GeneratedProtocolMessageType('HuntRunnerArgs', (_message.Message,), dict(
  DESCRIPTOR = _HUNTRUNNERARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:HuntRunnerArgs)
  ))
_sym_db.RegisterMessage(HuntRunnerArgs)

SampleHuntArgs = _reflection.GeneratedProtocolMessageType('SampleHuntArgs', (_message.Message,), dict(
  DESCRIPTOR = _SAMPLEHUNTARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:SampleHuntArgs)
  ))
_sym_db.RegisterMessage(SampleHuntArgs)

FlowRequest = _reflection.GeneratedProtocolMessageType('FlowRequest', (_message.Message,), dict(
  DESCRIPTOR = _FLOWREQUEST,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:FlowRequest)
  ))
_sym_db.RegisterMessage(FlowRequest)

VariableGenericHuntArgs = _reflection.GeneratedProtocolMessageType('VariableGenericHuntArgs', (_message.Message,), dict(
  DESCRIPTOR = _VARIABLEGENERICHUNTARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:VariableGenericHuntArgs)
  ))
_sym_db.RegisterMessage(VariableGenericHuntArgs)

GenericHuntArgs = _reflection.GeneratedProtocolMessageType('GenericHuntArgs', (_message.Message,), dict(
  DESCRIPTOR = _GENERICHUNTARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:GenericHuntArgs)
  ))
_sym_db.RegisterMessage(GenericHuntArgs)

BareGrepSpec = _reflection.GeneratedProtocolMessageType('BareGrepSpec', (_message.Message,), dict(
  DESCRIPTOR = _BAREGREPSPEC,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:BareGrepSpec)
  ))
_sym_db.RegisterMessage(BareGrepSpec)

CAEnrolerArgs = _reflection.GeneratedProtocolMessageType('CAEnrolerArgs', (_message.Message,), dict(
  DESCRIPTOR = _CAENROLERARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:CAEnrolerArgs)
  ))
_sym_db.RegisterMessage(CAEnrolerArgs)

DeleteGRRTempFilesArgs = _reflection.GeneratedProtocolMessageType('DeleteGRRTempFilesArgs', (_message.Message,), dict(
  DESCRIPTOR = _DELETEGRRTEMPFILESARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:DeleteGRRTempFilesArgs)
  ))
_sym_db.RegisterMessage(DeleteGRRTempFilesArgs)

UninstallArgs = _reflection.GeneratedProtocolMessageType('UninstallArgs', (_message.Message,), dict(
  DESCRIPTOR = _UNINSTALLARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:UninstallArgs)
  ))
_sym_db.RegisterMessage(UninstallArgs)

UpdateConfigurationArgs = _reflection.GeneratedProtocolMessageType('UpdateConfigurationArgs', (_message.Message,), dict(
  DESCRIPTOR = _UPDATECONFIGURATIONARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:UpdateConfigurationArgs)
  ))
_sym_db.RegisterMessage(UpdateConfigurationArgs)

ExecutePythonHackArgs = _reflection.GeneratedProtocolMessageType('ExecutePythonHackArgs', (_message.Message,), dict(
  DESCRIPTOR = _EXECUTEPYTHONHACKARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:ExecutePythonHackArgs)
  ))
_sym_db.RegisterMessage(ExecutePythonHackArgs)

ExecuteCommandArgs = _reflection.GeneratedProtocolMessageType('ExecuteCommandArgs', (_message.Message,), dict(
  DESCRIPTOR = _EXECUTECOMMANDARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:ExecuteCommandArgs)
  ))
_sym_db.RegisterMessage(ExecuteCommandArgs)

OnlineNotificationArgs = _reflection.GeneratedProtocolMessageType('OnlineNotificationArgs', (_message.Message,), dict(
  DESCRIPTOR = _ONLINENOTIFICATIONARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:OnlineNotificationArgs)
  ))
_sym_db.RegisterMessage(OnlineNotificationArgs)

UpdateClientArgs = _reflection.GeneratedProtocolMessageType('UpdateClientArgs', (_message.Message,), dict(
  DESCRIPTOR = _UPDATECLIENTARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:UpdateClientArgs)
  ))
_sym_db.RegisterMessage(UpdateClientArgs)

KeepAliveArgs = _reflection.GeneratedProtocolMessageType('KeepAliveArgs', (_message.Message,), dict(
  DESCRIPTOR = _KEEPALIVEARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:KeepAliveArgs)
  ))
_sym_db.RegisterMessage(KeepAliveArgs)

LaunchBinaryArgs = _reflection.GeneratedProtocolMessageType('LaunchBinaryArgs', (_message.Message,), dict(
  DESCRIPTOR = _LAUNCHBINARYARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:LaunchBinaryArgs)
  ))
_sym_db.RegisterMessage(LaunchBinaryArgs)

WinUserActivityInvestigationArgs = _reflection.GeneratedProtocolMessageType('WinUserActivityInvestigationArgs', (_message.Message,), dict(
  DESCRIPTOR = _WINUSERACTIVITYINVESTIGATIONARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:WinUserActivityInvestigationArgs)
  ))
_sym_db.RegisterMessage(WinUserActivityInvestigationArgs)

ArtifactCollectorFlowArgs = _reflection.GeneratedProtocolMessageType('ArtifactCollectorFlowArgs', (_message.Message,), dict(
  DESCRIPTOR = _ARTIFACTCOLLECTORFLOWARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:ArtifactCollectorFlowArgs)
  ))
_sym_db.RegisterMessage(ArtifactCollectorFlowArgs)

ArtifactFilesDownloaderFlowArgs = _reflection.GeneratedProtocolMessageType('ArtifactFilesDownloaderFlowArgs', (_message.Message,), dict(
  DESCRIPTOR = _ARTIFACTFILESDOWNLOADERFLOWARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:ArtifactFilesDownloaderFlowArgs)
  ))
_sym_db.RegisterMessage(ArtifactFilesDownloaderFlowArgs)

ArtifactFilesDownloaderResult = _reflection.GeneratedProtocolMessageType('ArtifactFilesDownloaderResult', (_message.Message,), dict(
  DESCRIPTOR = _ARTIFACTFILESDOWNLOADERRESULT,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:ArtifactFilesDownloaderResult)
  ))
_sym_db.RegisterMessage(ArtifactFilesDownloaderResult)

InterrogateArgs = _reflection.GeneratedProtocolMessageType('InterrogateArgs', (_message.Message,), dict(
  DESCRIPTOR = _INTERROGATEARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:InterrogateArgs)
  ))
_sym_db.RegisterMessage(InterrogateArgs)

FingerprintFileArgs = _reflection.GeneratedProtocolMessageType('FingerprintFileArgs', (_message.Message,), dict(
  DESCRIPTOR = _FINGERPRINTFILEARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:FingerprintFileArgs)
  ))
_sym_db.RegisterMessage(FingerprintFileArgs)

FingerprintFileResult = _reflection.GeneratedProtocolMessageType('FingerprintFileResult', (_message.Message,), dict(
  DESCRIPTOR = _FINGERPRINTFILERESULT,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:FingerprintFileResult)
  ))
_sym_db.RegisterMessage(FingerprintFileResult)

SophosCollectorArgs = _reflection.GeneratedProtocolMessageType('SophosCollectorArgs', (_message.Message,), dict(
  DESCRIPTOR = _SOPHOSCOLLECTORARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:SophosCollectorArgs)
  ))
_sym_db.RegisterMessage(SophosCollectorArgs)

MACTimesArgs = _reflection.GeneratedProtocolMessageType('MACTimesArgs', (_message.Message,), dict(
  DESCRIPTOR = _MACTIMESARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:MACTimesArgs)
  ))
_sym_db.RegisterMessage(MACTimesArgs)

FileCollectorArgs = _reflection.GeneratedProtocolMessageType('FileCollectorArgs', (_message.Message,), dict(
  DESCRIPTOR = _FILECOLLECTORARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:FileCollectorArgs)
  ))
_sym_db.RegisterMessage(FileCollectorArgs)

FirefoxHistoryArgs = _reflection.GeneratedProtocolMessageType('FirefoxHistoryArgs', (_message.Message,), dict(
  DESCRIPTOR = _FIREFOXHISTORYARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:FirefoxHistoryArgs)
  ))
_sym_db.RegisterMessage(FirefoxHistoryArgs)

CacheGrepArgs = _reflection.GeneratedProtocolMessageType('CacheGrepArgs', (_message.Message,), dict(
  DESCRIPTOR = _CACHEGREPARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:CacheGrepArgs)
  ))
_sym_db.RegisterMessage(CacheGrepArgs)

ListDirectoryArgs = _reflection.GeneratedProtocolMessageType('ListDirectoryArgs', (_message.Message,), dict(
  DESCRIPTOR = _LISTDIRECTORYARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:ListDirectoryArgs)
  ))
_sym_db.RegisterMessage(ListDirectoryArgs)

RecursiveListDirectoryArgs = _reflection.GeneratedProtocolMessageType('RecursiveListDirectoryArgs', (_message.Message,), dict(
  DESCRIPTOR = _RECURSIVELISTDIRECTORYARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:RecursiveListDirectoryArgs)
  ))
_sym_db.RegisterMessage(RecursiveListDirectoryArgs)

FetchBufferForSparseImageArgs = _reflection.GeneratedProtocolMessageType('FetchBufferForSparseImageArgs', (_message.Message,), dict(
  DESCRIPTOR = _FETCHBUFFERFORSPARSEIMAGEARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:FetchBufferForSparseImageArgs)
  ))
_sym_db.RegisterMessage(FetchBufferForSparseImageArgs)

MakeNewAFF4SparseImageArgs = _reflection.GeneratedProtocolMessageType('MakeNewAFF4SparseImageArgs', (_message.Message,), dict(
  DESCRIPTOR = _MAKENEWAFF4SPARSEIMAGEARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:MakeNewAFF4SparseImageArgs)
  ))
_sym_db.RegisterMessage(MakeNewAFF4SparseImageArgs)

UpdateSparseImageChunksArgs = _reflection.GeneratedProtocolMessageType('UpdateSparseImageChunksArgs', (_message.Message,), dict(
  DESCRIPTOR = _UPDATESPARSEIMAGECHUNKSARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:UpdateSparseImageChunksArgs)
  ))
_sym_db.RegisterMessage(UpdateSparseImageChunksArgs)

GrepArgs = _reflection.GeneratedProtocolMessageType('GrepArgs', (_message.Message,), dict(
  DESCRIPTOR = _GREPARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:GrepArgs)
  ))
_sym_db.RegisterMessage(GrepArgs)

GlobArgs = _reflection.GeneratedProtocolMessageType('GlobArgs', (_message.Message,), dict(
  DESCRIPTOR = _GLOBARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:GlobArgs)
  ))
_sym_db.RegisterMessage(GlobArgs)

FindFilesArgs = _reflection.GeneratedProtocolMessageType('FindFilesArgs', (_message.Message,), dict(
  DESCRIPTOR = _FINDFILESARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:FindFilesArgs)
  ))
_sym_db.RegisterMessage(FindFilesArgs)

GetFileArgs = _reflection.GeneratedProtocolMessageType('GetFileArgs', (_message.Message,), dict(
  DESCRIPTOR = _GETFILEARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:GetFileArgs)
  ))
_sym_db.RegisterMessage(GetFileArgs)

GetMBRArgs = _reflection.GeneratedProtocolMessageType('GetMBRArgs', (_message.Message,), dict(
  DESCRIPTOR = _GETMBRARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:GetMBRArgs)
  ))
_sym_db.RegisterMessage(GetMBRArgs)

ChromeHistoryArgs = _reflection.GeneratedProtocolMessageType('ChromeHistoryArgs', (_message.Message,), dict(
  DESCRIPTOR = _CHROMEHISTORYARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:ChromeHistoryArgs)
  ))
_sym_db.RegisterMessage(ChromeHistoryArgs)

CreateGenericHuntFlowArgs = _reflection.GeneratedProtocolMessageType('CreateGenericHuntFlowArgs', (_message.Message,), dict(
  DESCRIPTOR = _CREATEGENERICHUNTFLOWARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:CreateGenericHuntFlowArgs)
  ))
_sym_db.RegisterMessage(CreateGenericHuntFlowArgs)

CreateCronJobFlowArgs = _reflection.GeneratedProtocolMessageType('CreateCronJobFlowArgs', (_message.Message,), dict(
  DESCRIPTOR = _CREATECRONJOBFLOWARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:CreateCronJobFlowArgs)
  ))
_sym_db.RegisterMessage(CreateCronJobFlowArgs)

CronJob = _reflection.GeneratedProtocolMessageType('CronJob', (_message.Message,), dict(
  DESCRIPTOR = _CRONJOB,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:CronJob)
  ))
_sym_db.RegisterMessage(CronJob)

PlistValueFilterArgs = _reflection.GeneratedProtocolMessageType('PlistValueFilterArgs', (_message.Message,), dict(
  DESCRIPTOR = _PLISTVALUEFILTERARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:PlistValueFilterArgs)
  ))
_sym_db.RegisterMessage(PlistValueFilterArgs)

RunReportFlowArgs = _reflection.GeneratedProtocolMessageType('RunReportFlowArgs', (_message.Message,), dict(
  DESCRIPTOR = _RUNREPORTFLOWARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:RunReportFlowArgs)
  ))
_sym_db.RegisterMessage(RunReportFlowArgs)

EnumerateServicesArgs = _reflection.GeneratedProtocolMessageType('EnumerateServicesArgs', (_message.Message,), dict(
  DESCRIPTOR = _ENUMERATESERVICESARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:EnumerateServicesArgs)
  ))
_sym_db.RegisterMessage(EnumerateServicesArgs)

ChromePluginsArgs = _reflection.GeneratedProtocolMessageType('ChromePluginsArgs', (_message.Message,), dict(
  DESCRIPTOR = _CHROMEPLUGINSARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:ChromePluginsArgs)
  ))
_sym_db.RegisterMessage(ChromePluginsArgs)

UpdateVFSFileArgs = _reflection.GeneratedProtocolMessageType('UpdateVFSFileArgs', (_message.Message,), dict(
  DESCRIPTOR = _UPDATEVFSFILEARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:UpdateVFSFileArgs)
  ))
_sym_db.RegisterMessage(UpdateVFSFileArgs)

MultiGetFileArgs = _reflection.GeneratedProtocolMessageType('MultiGetFileArgs', (_message.Message,), dict(
  DESCRIPTOR = _MULTIGETFILEARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:MultiGetFileArgs)
  ))
_sym_db.RegisterMessage(MultiGetFileArgs)

ProcessHuntResultCollectionsCronFlowArgs = _reflection.GeneratedProtocolMessageType('ProcessHuntResultCollectionsCronFlowArgs', (_message.Message,), dict(
  DESCRIPTOR = _PROCESSHUNTRESULTCOLLECTIONSCRONFLOWARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:ProcessHuntResultCollectionsCronFlowArgs)
  ))
_sym_db.RegisterMessage(ProcessHuntResultCollectionsCronFlowArgs)

VerifyHuntOutputPluginsCronFlowArgs = _reflection.GeneratedProtocolMessageType('VerifyHuntOutputPluginsCronFlowArgs', (_message.Message,), dict(
  DESCRIPTOR = _VERIFYHUNTOUTPUTPLUGINSCRONFLOWARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:VerifyHuntOutputPluginsCronFlowArgs)
  ))
_sym_db.RegisterMessage(VerifyHuntOutputPluginsCronFlowArgs)

ListProcessesArgs = _reflection.GeneratedProtocolMessageType('ListProcessesArgs', (_message.Message,), dict(
  DESCRIPTOR = _LISTPROCESSESARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:ListProcessesArgs)
  ))
_sym_db.RegisterMessage(ListProcessesArgs)

ListVADBinariesArgs = _reflection.GeneratedProtocolMessageType('ListVADBinariesArgs', (_message.Message,), dict(
  DESCRIPTOR = _LISTVADBINARIESARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:ListVADBinariesArgs)
  ))
_sym_db.RegisterMessage(ListVADBinariesArgs)

FileFinderModificationTimeCondition = _reflection.GeneratedProtocolMessageType('FileFinderModificationTimeCondition', (_message.Message,), dict(
  DESCRIPTOR = _FILEFINDERMODIFICATIONTIMECONDITION,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:FileFinderModificationTimeCondition)
  ))
_sym_db.RegisterMessage(FileFinderModificationTimeCondition)

FileFinderAccessTimeCondition = _reflection.GeneratedProtocolMessageType('FileFinderAccessTimeCondition', (_message.Message,), dict(
  DESCRIPTOR = _FILEFINDERACCESSTIMECONDITION,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:FileFinderAccessTimeCondition)
  ))
_sym_db.RegisterMessage(FileFinderAccessTimeCondition)

FileFinderInodeChangeTimeCondition = _reflection.GeneratedProtocolMessageType('FileFinderInodeChangeTimeCondition', (_message.Message,), dict(
  DESCRIPTOR = _FILEFINDERINODECHANGETIMECONDITION,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:FileFinderInodeChangeTimeCondition)
  ))
_sym_db.RegisterMessage(FileFinderInodeChangeTimeCondition)

FileFinderSizeCondition = _reflection.GeneratedProtocolMessageType('FileFinderSizeCondition', (_message.Message,), dict(
  DESCRIPTOR = _FILEFINDERSIZECONDITION,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:FileFinderSizeCondition)
  ))
_sym_db.RegisterMessage(FileFinderSizeCondition)

FileFinderExtFlagsCondition = _reflection.GeneratedProtocolMessageType('FileFinderExtFlagsCondition', (_message.Message,), dict(
  DESCRIPTOR = _FILEFINDEREXTFLAGSCONDITION,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:FileFinderExtFlagsCondition)
  ))
_sym_db.RegisterMessage(FileFinderExtFlagsCondition)

FileFinderContentsRegexMatchCondition = _reflection.GeneratedProtocolMessageType('FileFinderContentsRegexMatchCondition', (_message.Message,), dict(
  DESCRIPTOR = _FILEFINDERCONTENTSREGEXMATCHCONDITION,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:FileFinderContentsRegexMatchCondition)
  ))
_sym_db.RegisterMessage(FileFinderContentsRegexMatchCondition)

FileFinderContentsLiteralMatchCondition = _reflection.GeneratedProtocolMessageType('FileFinderContentsLiteralMatchCondition', (_message.Message,), dict(
  DESCRIPTOR = _FILEFINDERCONTENTSLITERALMATCHCONDITION,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:FileFinderContentsLiteralMatchCondition)
  ))
_sym_db.RegisterMessage(FileFinderContentsLiteralMatchCondition)

FileFinderCondition = _reflection.GeneratedProtocolMessageType('FileFinderCondition', (_message.Message,), dict(
  DESCRIPTOR = _FILEFINDERCONDITION,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:FileFinderCondition)
  ))
_sym_db.RegisterMessage(FileFinderCondition)

FileFinderHashActionOptions = _reflection.GeneratedProtocolMessageType('FileFinderHashActionOptions', (_message.Message,), dict(
  DESCRIPTOR = _FILEFINDERHASHACTIONOPTIONS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:FileFinderHashActionOptions)
  ))
_sym_db.RegisterMessage(FileFinderHashActionOptions)

FileFinderDownloadActionOptions = _reflection.GeneratedProtocolMessageType('FileFinderDownloadActionOptions', (_message.Message,), dict(
  DESCRIPTOR = _FILEFINDERDOWNLOADACTIONOPTIONS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:FileFinderDownloadActionOptions)
  ))
_sym_db.RegisterMessage(FileFinderDownloadActionOptions)

FileFinderStatActionOptions = _reflection.GeneratedProtocolMessageType('FileFinderStatActionOptions', (_message.Message,), dict(
  DESCRIPTOR = _FILEFINDERSTATACTIONOPTIONS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:FileFinderStatActionOptions)
  ))
_sym_db.RegisterMessage(FileFinderStatActionOptions)

FileFinderAction = _reflection.GeneratedProtocolMessageType('FileFinderAction', (_message.Message,), dict(
  DESCRIPTOR = _FILEFINDERACTION,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:FileFinderAction)
  ))
_sym_db.RegisterMessage(FileFinderAction)

FileFinderArgs = _reflection.GeneratedProtocolMessageType('FileFinderArgs', (_message.Message,), dict(
  DESCRIPTOR = _FILEFINDERARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:FileFinderArgs)
  ))
_sym_db.RegisterMessage(FileFinderArgs)

FileFinderResult = _reflection.GeneratedProtocolMessageType('FileFinderResult', (_message.Message,), dict(
  DESCRIPTOR = _FILEFINDERRESULT,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:FileFinderResult)
  ))
_sym_db.RegisterMessage(FileFinderResult)

FileReference = _reflection.GeneratedProtocolMessageType('FileReference', (_message.Message,), dict(
  DESCRIPTOR = _FILEREFERENCE,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:FileReference)
  ))
_sym_db.RegisterMessage(FileReference)

RegistryFinderCondition = _reflection.GeneratedProtocolMessageType('RegistryFinderCondition', (_message.Message,), dict(
  DESCRIPTOR = _REGISTRYFINDERCONDITION,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:RegistryFinderCondition)
  ))
_sym_db.RegisterMessage(RegistryFinderCondition)

RegistryFinderArgs = _reflection.GeneratedProtocolMessageType('RegistryFinderArgs', (_message.Message,), dict(
  DESCRIPTOR = _REGISTRYFINDERARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:RegistryFinderArgs)
  ))
_sym_db.RegisterMessage(RegistryFinderArgs)

MemoryCollectorArgs = _reflection.GeneratedProtocolMessageType('MemoryCollectorArgs', (_message.Message,), dict(
  DESCRIPTOR = _MEMORYCOLLECTORARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:MemoryCollectorArgs)
  ))
_sym_db.RegisterMessage(MemoryCollectorArgs)

ArtifactFallbackCollectorArgs = _reflection.GeneratedProtocolMessageType('ArtifactFallbackCollectorArgs', (_message.Message,), dict(
  DESCRIPTOR = _ARTIFACTFALLBACKCOLLECTORARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:ArtifactFallbackCollectorArgs)
  ))
_sym_db.RegisterMessage(ArtifactFallbackCollectorArgs)

KnowledgeBaseInitializationArgs = _reflection.GeneratedProtocolMessageType('KnowledgeBaseInitializationArgs', (_message.Message,), dict(
  DESCRIPTOR = _KNOWLEDGEBASEINITIALIZATIONARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:KnowledgeBaseInitializationArgs)
  ))
_sym_db.RegisterMessage(KnowledgeBaseInitializationArgs)

EndToEndTestFlowArgs = _reflection.GeneratedProtocolMessageType('EndToEndTestFlowArgs', (_message.Message,), dict(
  DESCRIPTOR = _ENDTOENDTESTFLOWARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:EndToEndTestFlowArgs)
  ))
_sym_db.RegisterMessage(EndToEndTestFlowArgs)

DiskVolumeInfoArgs = _reflection.GeneratedProtocolMessageType('DiskVolumeInfoArgs', (_message.Message,), dict(
  DESCRIPTOR = _DISKVOLUMEINFOARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:DiskVolumeInfoArgs)
  ))
_sym_db.RegisterMessage(DiskVolumeInfoArgs)

CheckFlowArgs = _reflection.GeneratedProtocolMessageType('CheckFlowArgs', (_message.Message,), dict(
  DESCRIPTOR = _CHECKFLOWARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:CheckFlowArgs)
  ))
_sym_db.RegisterMessage(CheckFlowArgs)

DumpFlashImageArgs = _reflection.GeneratedProtocolMessageType('DumpFlashImageArgs', (_message.Message,), dict(
  DESCRIPTOR = _DUMPFLASHIMAGEARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:DumpFlashImageArgs)
  ))
_sym_db.RegisterMessage(DumpFlashImageArgs)

DumpACPITableArgs = _reflection.GeneratedProtocolMessageType('DumpACPITableArgs', (_message.Message,), dict(
  DESCRIPTOR = _DUMPACPITABLEARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:DumpACPITableArgs)
  ))
_sym_db.RegisterMessage(DumpACPITableArgs)

YaraProcessScanRequest = _reflection.GeneratedProtocolMessageType('YaraProcessScanRequest', (_message.Message,), dict(
  DESCRIPTOR = _YARAPROCESSSCANREQUEST,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:YaraProcessScanRequest)
  ))
_sym_db.RegisterMessage(YaraProcessScanRequest)

YaraProcessError = _reflection.GeneratedProtocolMessageType('YaraProcessError', (_message.Message,), dict(
  DESCRIPTOR = _YARAPROCESSERROR,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:YaraProcessError)
  ))
_sym_db.RegisterMessage(YaraProcessError)

YaraStringMatch = _reflection.GeneratedProtocolMessageType('YaraStringMatch', (_message.Message,), dict(
  DESCRIPTOR = _YARASTRINGMATCH,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:YaraStringMatch)
  ))
_sym_db.RegisterMessage(YaraStringMatch)

YaraMatch = _reflection.GeneratedProtocolMessageType('YaraMatch', (_message.Message,), dict(
  DESCRIPTOR = _YARAMATCH,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:YaraMatch)
  ))
_sym_db.RegisterMessage(YaraMatch)

YaraProcessScanMatch = _reflection.GeneratedProtocolMessageType('YaraProcessScanMatch', (_message.Message,), dict(
  DESCRIPTOR = _YARAPROCESSSCANMATCH,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:YaraProcessScanMatch)
  ))
_sym_db.RegisterMessage(YaraProcessScanMatch)

YaraProcessScanMiss = _reflection.GeneratedProtocolMessageType('YaraProcessScanMiss', (_message.Message,), dict(
  DESCRIPTOR = _YARAPROCESSSCANMISS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:YaraProcessScanMiss)
  ))
_sym_db.RegisterMessage(YaraProcessScanMiss)

YaraProcessScanResponse = _reflection.GeneratedProtocolMessageType('YaraProcessScanResponse', (_message.Message,), dict(
  DESCRIPTOR = _YARAPROCESSSCANRESPONSE,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:YaraProcessScanResponse)
  ))
_sym_db.RegisterMessage(YaraProcessScanResponse)

YaraProcessDumpArgs = _reflection.GeneratedProtocolMessageType('YaraProcessDumpArgs', (_message.Message,), dict(
  DESCRIPTOR = _YARAPROCESSDUMPARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:YaraProcessDumpArgs)
  ))
_sym_db.RegisterMessage(YaraProcessDumpArgs)

YaraProcessDumpInformation = _reflection.GeneratedProtocolMessageType('YaraProcessDumpInformation', (_message.Message,), dict(
  DESCRIPTOR = _YARAPROCESSDUMPINFORMATION,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:YaraProcessDumpInformation)
  ))
_sym_db.RegisterMessage(YaraProcessDumpInformation)

YaraProcessDumpResponse = _reflection.GeneratedProtocolMessageType('YaraProcessDumpResponse', (_message.Message,), dict(
  DESCRIPTOR = _YARAPROCESSDUMPRESPONSE,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:YaraProcessDumpResponse)
  ))
_sym_db.RegisterMessage(YaraProcessDumpResponse)

NetstatArgs = _reflection.GeneratedProtocolMessageType('NetstatArgs', (_message.Message,), dict(
  DESCRIPTOR = _NETSTATARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:NetstatArgs)
  ))
_sym_db.RegisterMessage(NetstatArgs)

ListNetworkConnectionsArgs = _reflection.GeneratedProtocolMessageType('ListNetworkConnectionsArgs', (_message.Message,), dict(
  DESCRIPTOR = _LISTNETWORKCONNECTIONSARGS,
  __module__ = 'grr_response_proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:ListNetworkConnectionsArgs)
  ))
_sym_db.RegisterMessage(ListNetworkConnectionsArgs)


_CLOUDMETADATAREQUEST.fields_by_name['label'].has_options = True
_CLOUDMETADATAREQUEST.fields_by_name['label']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001z\022xLabel to apply to the CloudMetadataResponse result. If unset, the URL is used as the label in the CloudMetadataResponse.'))
_CLOUDMETADATAREQUEST.fields_by_name['instance_type'].has_options = True
_CLOUDMETADATAREQUEST.fields_by_name['instance_type']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\024\022\022AMAZON/GOOGLE etc.'))
_FLOWCONTEXT.fields_by_name['create_time'].has_options = True
_FLOWCONTEXT.fields_by_name['create_time']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\r\n\013RDFDatetime'))
_FLOWCONTEXT.fields_by_name['kill_timestamp'].has_options = True
_FLOWCONTEXT.fields_by_name['kill_timestamp']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\r\n\013RDFDatetime'))
_FLOWCONTEXT.fields_by_name['session_id'].has_options = True
_FLOWCONTEXT.fields_by_name['session_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\013\n\tSessionID'))
_HUNTCONTEXT.fields_by_name['create_time'].has_options = True
_HUNTCONTEXT.fields_by_name['create_time']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\r\n\013RDFDatetime'))
_HUNTCONTEXT.fields_by_name['expires'].has_options = True
_HUNTCONTEXT.fields_by_name['expires']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\r\n\013RDFDatetime'))
_HUNTCONTEXT.fields_by_name['next_client_due'].has_options = True
_HUNTCONTEXT.fields_by_name['next_client_due']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\r\n\013RDFDatetime'))
_HUNTCONTEXT.fields_by_name['session_id'].has_options = True
_HUNTCONTEXT.fields_by_name['session_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\013\n\tSessionID'))
_HUNTCONTEXT.fields_by_name['start_time'].has_options = True
_HUNTCONTEXT.fields_by_name['start_time']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\r\n\013RDFDatetime'))
_ACLTOKEN.fields_by_name['expiry'].has_options = True
_ACLTOKEN.fields_by_name['expiry']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001+\n\013RDFDatetime\022\034When does this token expire?'))
_FLOWLIKEOBJECTREFERENCE.has_options = True
_FLOWLIKEOBJECTREFERENCE._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('\332\374\343\304\001\r\022\013object_type'))
_FLOWRUNNERARGS.fields_by_name['priority'].has_options = True
_FLOWRUNNERARGS.fields_by_name['priority']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001$\022 The priority used for this flow.\030\001'))
_FLOWRUNNERARGS.fields_by_name['notify_to_user'].has_options = True
_FLOWRUNNERARGS.fields_by_name['notify_to_user']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001G\022/Should a notification be sent to the initiator.\"\024Notify at Completion'))
_FLOWRUNNERARGS.fields_by_name['send_replies'].has_options = True
_FLOWRUNNERARGS.fields_by_name['send_replies']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001E\0223Should send replies back to the parent flow or not.\030\002\"\014Send Replies'))
_FLOWRUNNERARGS.fields_by_name['client_id'].has_options = True
_FLOWRUNNERARGS.fields_by_name['client_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0013\n\tClientURN\022$The client id this flow operates on.\030\002'))
_FLOWRUNNERARGS.fields_by_name['queue'].has_options = True
_FLOWRUNNERARGS.fields_by_name['queue']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001*\n\006RDFURN\022\036The queue to use for the flow.\030\002'))
_FLOWRUNNERARGS.fields_by_name['event_id'].has_options = True
_FLOWRUNNERARGS.fields_by_name['event_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0010\022,A logging event id for issuing further logs.\030\002'))
_FLOWRUNNERARGS.fields_by_name['cpu_limit'].has_options = True
_FLOWRUNNERARGS.fields_by_name['cpu_limit']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0018\0224A limit on the client cpu seconds used by this flow.\030\001'))
_FLOWRUNNERARGS.fields_by_name['network_bytes_limit'].has_options = True
_FLOWRUNNERARGS.fields_by_name['network_bytes_limit']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0013\022/A limit on the total traffic used by this flow.\030\001'))
_FLOWRUNNERARGS.fields_by_name['request_state'].has_options = True
_FLOWRUNNERARGS.fields_by_name['request_state']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001)\022%The request state of the parent flow.\030\002'))
_FLOWRUNNERARGS.fields_by_name['flow_name'].has_options = True
_FLOWRUNNERARGS.fields_by_name['flow_name']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0017\0223The name of the class implementing the flow to run.\030\002'))
_FLOWRUNNERARGS.fields_by_name['base_session_id'].has_options = True
_FLOWRUNNERARGS.fields_by_name['base_session_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001M\n\006RDFURN\022AThe session id for the flow runner. If not specified we make one.\030\002'))
_FLOWRUNNERARGS.fields_by_name['start_time'].has_options = True
_FLOWRUNNERARGS.fields_by_name['start_time']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001d\n\013RDFDatetime\022SDo not process this flow until this time. (Implies the flow is run asyncronously.).\030\001'))
_FLOWRUNNERARGS.fields_by_name['logs_collection_urn'].has_options = True
_FLOWRUNNERARGS.fields_by_name['logs_collection_urn']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0017\n\006RDFURN\022+The logs collection to log to for the flow.\030\002'))
_FLOWRUNNERARGS.fields_by_name['write_intermediate_results'].has_options = True
_FLOWRUNNERARGS.fields_by_name['write_intermediate_results']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001m\022iIf true, all child flow results received with sendreply will be written to the flow\'s default collection.\030\001'))
_FLOWRUNNERARGS.fields_by_name['require_fastpoll'].has_options = True
_FLOWRUNNERARGS.fields_by_name['require_fastpoll']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\263\001\022\256\001This value is passed to the client during CallClient, and by default will cause the client to enter fastpoll afterprocessing the message. Users shouldn\'t modify this setting.\030\001'))
_FLOWRUNNERARGS.fields_by_name['output_plugins'].has_options = True
_FLOWRUNNERARGS.fields_by_name['output_plugins']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\206\001\022rOutput plugins used for this flow. These plugins will be applied to flow results as soon as the flow is completed.\030\002\"\016Output Plugins'))
_FLOWRUNNERARGS.fields_by_name['original_flow'].has_options = True
_FLOWRUNNERARGS.fields_by_name['original_flow']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001V\022RIf this flow is a copy of another flow, we store a reference to the original here.\030\002'))
_HUNTRUNNERARGS.fields_by_name['hunt_name'].has_options = True
_HUNTRUNNERARGS.fields_by_name['hunt_name']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0015\0223The name of the class implementing the hunt to run.'))
_HUNTRUNNERARGS.fields_by_name['description'].has_options = True
_HUNTRUNNERARGS.fields_by_name['description']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\037\022\035The description of this hunt.'))
_HUNTRUNNERARGS.fields_by_name['client_rule_set'].has_options = True
_HUNTRUNNERARGS.fields_by_name['client_rule_set']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\037\022\035Rules that trigger this hunt.'))
_HUNTRUNNERARGS.fields_by_name['priority'].has_options = True
_HUNTRUNNERARGS.fields_by_name['priority']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001$\022 The priority used for this flow.\030\001'))
_HUNTRUNNERARGS.fields_by_name['queue'].has_options = True
_HUNTRUNNERARGS.fields_by_name['queue']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001*\n\006RDFURN\022\036The queue to use for the hunt.\030\002'))
_HUNTRUNNERARGS.fields_by_name['cpu_limit'].has_options = True
_HUNTRUNNERARGS.fields_by_name['cpu_limit']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001Q\022=An overall limit on the client cpu seconds used by this hunt.\030\001\"\016Hunt CPU Limit'))
_HUNTRUNNERARGS.fields_by_name['network_bytes_limit'].has_options = True
_HUNTRUNNERARGS.fields_by_name['network_bytes_limit']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001X\0228An overall limit on the total traffic used by this hunt.\030\001\"\032Hunt Network Limit (bytes)'))
_HUNTRUNNERARGS.fields_by_name['client_limit'].has_options = True
_HUNTRUNNERARGS.fields_by_name['client_limit']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\275\002\022\254\002Maximum number of clients participating in the hunt. Best practice is for all hunts to use a limit to start with and remove it only when client impact has been assessed by looking at hunt stats. Note that this limit can be overshot by a small number of clients if there are multiple workers running. \"\014Client Limit'))
_HUNTRUNNERARGS.fields_by_name['crash_limit'].has_options = True
_HUNTRUNNERARGS.fields_by_name['crash_limit']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001l\022]Maximum number of clients that are allowed to crash before the hunt is automatically stopped.\"\013Crash Limit'))
_HUNTRUNNERARGS.fields_by_name['avg_results_per_client_limit'].has_options = True
_HUNTRUNNERARGS.fields_by_name['avg_results_per_client_limit']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\346\001\022\277\001If the average number of results per client becomes greater than this limit, the hunt will be automatically stopped. The average is calculated only after 1000 clients report back to the hunt.\030\001\" Average Results-per-Client Limit'))
_HUNTRUNNERARGS.fields_by_name['avg_cpu_seconds_per_client_limit'].has_options = True
_HUNTRUNNERARGS.fields_by_name['avg_cpu_seconds_per_client_limit']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\362\001\022\277\001If the average CPU usage seconds per client becomes greater than this limit, the hunt will be automatically stopped. The average is calculated only after 1000 clients report back to the hunt.\030\001\",Average CPU-Usage-per-Client Limit (seconds)'))
_HUNTRUNNERARGS.fields_by_name['avg_network_bytes_per_client_limit'].has_options = True
_HUNTRUNNERARGS.fields_by_name['avg_network_bytes_per_client_limit']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\360\001\022\273\001If the average network usage per client becomes greater than this limit, the hunt will be automatically stopped. The average is calculated only after 1000 clients report back to the hunt.\030\001\".Average Network-Usage-per-Client Limit (bytes)'))
_HUNTRUNNERARGS.fields_by_name['expiry_time'].has_options = True
_HUNTRUNNERARGS.fields_by_name['expiry_time']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0012\n\010Duration\022\031Expiry time for the hunt.\"\013Expiry Time'))
_HUNTRUNNERARGS.fields_by_name['client_rate'].has_options = True
_HUNTRUNNERARGS.fields_by_name['client_rate']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001p\022nThe maximum number of clients to engage per minute. A rate of 0 means to schedule clients as fast as possible.'))
_HUNTRUNNERARGS.fields_by_name['add_foreman_rules'].has_options = True
_HUNTRUNNERARGS.fields_by_name['add_foreman_rules']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001{\022wShould always be true for user-scheduled hunts. Set to false for system-created hunts that use ManuallyScheduleClients.\030\002'))
_HUNTRUNNERARGS.fields_by_name['crash_alert_email'].has_options = True
_HUNTRUNNERARGS.fields_by_name['crash_alert_email']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001Z\022VAn email address to send mails to when a client crashes during execution of this hunt.\030\001'))
_HUNTRUNNERARGS.fields_by_name['output_plugins'].has_options = True
_HUNTRUNNERARGS.fields_by_name['output_plugins']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001e\022QOutput plugins used for this hunt. These plugins will be applied to hunt results.\030\002\"\016Output Plugins'))
_HUNTRUNNERARGS.fields_by_name['per_client_cpu_limit'].has_options = True
_HUNTRUNNERARGS.fields_by_name['per_client_cpu_limit']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001I\022/A cpu limit imposed on each client in the hunt.\030\001\"\024Per Client CPU Limit'))
_HUNTRUNNERARGS.fields_by_name['per_client_network_limit_bytes'].has_options = True
_HUNTRUNNERARGS.fields_by_name['per_client_network_limit_bytes']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001d\022>A network limit (in bytes) imposed on each client in the hunt.\030\001\" Per Client Network Limit (bytes)'))
_HUNTRUNNERARGS.fields_by_name['original_object'].has_options = True
_HUNTRUNNERARGS.fields_by_name['original_object']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001^\022ZIf this hunt is a copy of another hunt or flow, we store a reference to the original here.\030\002'))
_SAMPLEHUNTARGS.fields_by_name['filename'].has_options = True
_SAMPLEHUNTARGS.fields_by_name['filename']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\036\022\034evil filename to search for.'))
_FLOWREQUEST.fields_by_name['client_ids'].has_options = True
_FLOWREQUEST.fields_by_name['client_ids']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001.\n\tClientURN\022!The clients to start the flow on.'))
_FLOWREQUEST.fields_by_name['args'].has_options = True
_FLOWREQUEST.fields_by_name['args']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\226\001\022\201\001Args to the flow. These depend on the flow_name parameter.It is expected that this field contains an instance of flow\'s arg_type.*\020GetFlowArgsClass'))
_FLOWREQUEST.fields_by_name['runner_args'].has_options = True
_FLOWREQUEST.fields_by_name['runner_args']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\032\022\030Args to the flow runner.'))
_VARIABLEGENERICHUNTARGS.fields_by_name['flows'].has_options = True
_VARIABLEGENERICHUNTARGS.fields_by_name['flows']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001;\0229A list of requests for starting flows on certain clients.'))
_VARIABLEGENERICHUNTARGS.fields_by_name['output_plugins'].has_options = True
_VARIABLEGENERICHUNTARGS.fields_by_name['output_plugins']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001*\022(The output plugins to use for this hunt.'))
_GENERICHUNTARGS.fields_by_name['flow_args'].has_options = True
_GENERICHUNTARGS.fields_by_name['flow_args']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001g\022QArguments to the flow to run. This should be an instance of flow.args_type proto.\030\002*\020GetFlowArgsClass'))
_GENERICHUNTARGS.fields_by_name['flow_runner_args'].has_options = True
_GENERICHUNTARGS.fields_by_name['flow_runner_args']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001*\022(The runner args for launching each flow.'))
_GENERICHUNTARGS.fields_by_name['output_plugins'].has_options = True
_GENERICHUNTARGS.fields_by_name['output_plugins']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001*\022(The output plugins to use for this hunt.'))
_BAREGREPSPEC.fields_by_name['start_offset'].has_options = True
_BAREGREPSPEC.fields_by_name['start_offset']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001&\022$Start searching at this file offset.'))
_BAREGREPSPEC.fields_by_name['length'].has_options = True
_BAREGREPSPEC.fields_by_name['length']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001-\022+How far (in bytes) into the file to search.'))
_BAREGREPSPEC.fields_by_name['regex'].has_options = True
_BAREGREPSPEC.fields_by_name['regex']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001I\n\021RegularExpression\0224The regular expression which will be used to search.'))
_BAREGREPSPEC.fields_by_name['literal'].has_options = True
_BAREGREPSPEC.fields_by_name['literal']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0014\n\021LiteralExpression\022\037Search for this literal string.'))
_BAREGREPSPEC.fields_by_name['mode'].has_options = True
_BAREGREPSPEC.fields_by_name['mode']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001C\022AWhen should searching stop? Stop after one hit or search for all?'))
_BAREGREPSPEC.fields_by_name['bytes_before'].has_options = True
_BAREGREPSPEC.fields_by_name['bytes_before']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001+\022\'Include this many bytes before the hit.\030\001'))
_BAREGREPSPEC.fields_by_name['bytes_after'].has_options = True
_BAREGREPSPEC.fields_by_name['bytes_after']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001*\022&Include this many bytes after the hit.\030\001'))
_BAREGREPSPEC.fields_by_name['xor_in_key'].has_options = True
_BAREGREPSPEC.fields_by_name['xor_in_key']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\243\001\022\236\001When searching memory we need to ensure we dont hit on our own process. This allows us to obfuscate the search string in memory to avoid us finding ourselves.\030\001'))
_BAREGREPSPEC.fields_by_name['xor_out_key'].has_options = True
_BAREGREPSPEC.fields_by_name['xor_out_key']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\243\001\022\236\001When searching memory we need to ensure we dont hit on our own process. This allows us to obfuscate the search string in memory to avoid us finding ourselves.\030\001'))
_CAENROLERARGS.fields_by_name['csr'].has_options = True
_CAENROLERARGS.fields_by_name['csr']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001,\022*A Certificate RDFValue with the CSR in it.'))
_DELETEGRRTEMPFILESARGS.fields_by_name['pathspec'].has_options = True
_DELETEGRRTEMPFILESARGS.fields_by_name['pathspec']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\344\001\022\341\001The pathspec target for deletion.If path is a directory, look in the top level for filenames beginning with Client.tempfile_prefix, and delete them. If path is a regular file and starts with Client.tempfile_prefix, delete it.'))
_UNINSTALLARGS.fields_by_name['kill'].has_options = True
_UNINSTALLARGS.fields_by_name['kill']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\032\022\030Kills the client if set.'))
_UPDATECONFIGURATIONARGS.fields_by_name['config'].has_options = True
_UPDATECONFIGURATIONARGS.fields_by_name['config']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001#\022!The config to send to the client.'))
_EXECUTEPYTHONHACKARGS.fields_by_name['hack_name'].has_options = True
_EXECUTEPYTHONHACKARGS.fields_by_name['hack_name']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001F\022DThe path to the hack to execute relative to Config.python_hack_root.'))
_EXECUTEPYTHONHACKARGS.fields_by_name['py_args'].has_options = True
_EXECUTEPYTHONHACKARGS.fields_by_name['py_args']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\030\022\026Python Hack Arguments.'))
_EXECUTECOMMANDARGS.fields_by_name['cmd'].has_options = True
_EXECUTECOMMANDARGS.fields_by_name['cmd']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\002\022\000'))
_EXECUTECOMMANDARGS.fields_by_name['command_line'].has_options = True
_EXECUTECOMMANDARGS.fields_by_name['command_line']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0017\0225The arguments to the command as a shell command line.'))
_EXECUTECOMMANDARGS.fields_by_name['time_limit'].has_options = True
_EXECUTECOMMANDARGS.fields_by_name['time_limit']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0018\0226The time limit for this execution, -1 means unlimited.'))
_ONLINENOTIFICATIONARGS.fields_by_name['email'].has_options = True
_ONLINENOTIFICATIONARGS.fields_by_name['email']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001d\n\022DomainEmailAddress\022NEmail address to send to. If not set, mail will be sent to the logged in user.'))
_UPDATECLIENTARGS.fields_by_name['blob_path'].has_options = True
_UPDATECLIENTARGS.fields_by_name['blob_path']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001B\n\006RDFURN\0228An aff4 path to a GRRSignedBlob of a new client version.'))
_KEEPALIVEARGS.fields_by_name['duration'].has_options = True
_KEEPALIVEARGS.fields_by_name['duration']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001D\n\010Duration\0228Until when should the client stay in the fast poll mode.'))
_LAUNCHBINARYARGS.fields_by_name['binary'].has_options = True
_LAUNCHBINARYARGS.fields_by_name['binary']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001+\n\006RDFURN\022!The URN of the binary to execute.'))
_LAUNCHBINARYARGS.fields_by_name['command_line'].has_options = True
_LAUNCHBINARYARGS.fields_by_name['command_line']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001+\022)Binary Arguments as a shell command line.'))
_WINUSERACTIVITYINVESTIGATIONARGS.fields_by_name['username'].has_options = True
_WINUSERACTIVITYINVESTIGATIONARGS.fields_by_name['username']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001$\022\"The user to target the actions to.'))
_WINUSERACTIVITYINVESTIGATIONARGS.fields_by_name['get_browser_history'].has_options = True
_WINUSERACTIVITYINVESTIGATIONARGS.fields_by_name['get_browser_history']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001)\022\'Call each of the browser history flows.'))
_WINUSERACTIVITYINVESTIGATIONARGS.fields_by_name['recursive_list_homedir'].has_options = True
_WINUSERACTIVITYINVESTIGATIONARGS.fields_by_name['recursive_list_homedir']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0013\0221Recursively list the users homedir to this depth.'))
_WINUSERACTIVITYINVESTIGATIONARGS.fields_by_name['recursive_list_user_registry'].has_options = True
_WINUSERACTIVITYINVESTIGATIONARGS.fields_by_name['recursive_list_user_registry']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001+\022)Recursively list the users registry hive.'))
_WINUSERACTIVITYINVESTIGATIONARGS.fields_by_name['artifact_list'].has_options = True
_WINUSERACTIVITYINVESTIGATIONARGS.fields_by_name['artifact_list']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001)\n\014ArtifactName\022\031A list of Artifact names.'))
_WINUSERACTIVITYINVESTIGATIONARGS.fields_by_name['timeline_collected_data'].has_options = True
_WINUSERACTIVITYINVESTIGATIONARGS.fields_by_name['timeline_collected_data']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001/\022-Once complete create a timeline for the host.'))
_WINUSERACTIVITYINVESTIGATIONARGS.fields_by_name['use_tsk'].has_options = True
_WINUSERACTIVITYINVESTIGATIONARGS.fields_by_name['use_tsk']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001+\022)Use raw filesystem access where possible.'))
_ARTIFACTCOLLECTORFLOWARGS_DEPENDENCY.values_by_name["USE_CACHED"].has_options = True
_ARTIFACTCOLLECTORFLOWARGS_DEPENDENCY.values_by_name["USE_CACHED"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001^Use the knowledgebase as a cache. If knowledgebase isn\'t present, a new one will be populated.'))
_ARTIFACTCOLLECTORFLOWARGS_DEPENDENCY.values_by_name["IGNORE_DEPS"].has_options = True
_ARTIFACTCOLLECTORFLOWARGS_DEPENDENCY.values_by_name["IGNORE_DEPS"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\024Ignore dependencies.'))
_ARTIFACTCOLLECTORFLOWARGS_DEPENDENCY.values_by_name["FETCH_NOW"].has_options = True
_ARTIFACTCOLLECTORFLOWARGS_DEPENDENCY.values_by_name["FETCH_NOW"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\0012Fetch only required dependencies for this artifact'))
_ARTIFACTCOLLECTORFLOWARGS.fields_by_name['artifact_list'].has_options = True
_ARTIFACTCOLLECTORFLOWARGS.fields_by_name['artifact_list']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001/\n\014ArtifactName\022\037A list of Artifact class names.'))
_ARTIFACTCOLLECTORFLOWARGS.fields_by_name['use_tsk'].has_options = True
_ARTIFACTCOLLECTORFLOWARGS.fields_by_name['use_tsk']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001/\022-Whether raw filesystem access should be used.'))
_ARTIFACTCOLLECTORFLOWARGS.fields_by_name['split_output_by_artifact'].has_options = True
_ARTIFACTCOLLECTORFLOWARGS.fields_by_name['split_output_by_artifact']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001c\022_If True, use output as a directory and write a separate collection for each artifact collected.\030\001'))
_ARTIFACTCOLLECTORFLOWARGS.fields_by_name['knowledge_base'].has_options = True
_ARTIFACTCOLLECTORFLOWARGS.fields_by_name['knowledge_base']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001_\022[An optional knowledge base to use, if not specified we retrieve one from the client object.\030\002'))
_ARTIFACTCOLLECTORFLOWARGS.fields_by_name['on_no_results_error'].has_options = True
_ARTIFACTCOLLECTORFLOWARGS.fields_by_name['on_no_results_error']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001t\022rIf True, an artifact returning no results will raise a hard error. This is useful where you always expect results.'))
_ARTIFACTCOLLECTORFLOWARGS.fields_by_name['apply_parsers'].has_options = True
_ARTIFACTCOLLECTORFLOWARGS.fields_by_name['apply_parsers']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\201\001\022}If True, apply any relevant parser to the collected data. If False, return the raw collected data e.g Files or Registry Keys.\030\001'))
_ARTIFACTCOLLECTORFLOWARGS.fields_by_name['max_file_size'].has_options = True
_ARTIFACTCOLLECTORFLOWARGS.fields_by_name['max_file_size']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001T\n\010ByteSize\022FThe maximum size of files we will download in bytes, 500MB by default.\030\001'))
_ARTIFACTCOLLECTORFLOWARGS.fields_by_name['dependencies'].has_options = True
_ARTIFACTCOLLECTORFLOWARGS.fields_by_name['dependencies']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0011\022-Specifies how dependencies should be handled.\030\001'))
_ARTIFACTCOLLECTORFLOWARGS.fields_by_name['ignore_interpolation_errors'].has_options = True
_ARTIFACTCOLLECTORFLOWARGS.fields_by_name['ignore_interpolation_errors']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\375\001\022\372\001If true, don\'t die if %%users.homedir%% and similar fail to expand. It\'s common on windows for some user attributes to be missing if users have never logged in. Enable this when you have multiple artifacts or paths and want to report partial results.'))
_ARTIFACTFILESDOWNLOADERFLOWARGS.fields_by_name['artifact_list'].has_options = True
_ARTIFACTFILESDOWNLOADERFLOWARGS.fields_by_name['artifact_list']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001/\n\014ArtifactName\022\037A list of Artifact class names.'))
_ARTIFACTFILESDOWNLOADERFLOWARGS.fields_by_name['use_tsk'].has_options = True
_ARTIFACTFILESDOWNLOADERFLOWARGS.fields_by_name['use_tsk']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001/\022-Whether raw filesystem access should be used.'))
_ARTIFACTFILESDOWNLOADERFLOWARGS.fields_by_name['max_file_size'].has_options = True
_ARTIFACTFILESDOWNLOADERFLOWARGS.fields_by_name['max_file_size']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001T\n\010ByteSize\022FThe maximum size of files we will download in bytes, 500MB by default.\030\001'))
_ARTIFACTFILESDOWNLOADERRESULT.fields_by_name['original_result_type'].has_options = True
_ARTIFACTFILESDOWNLOADERRESULT.fields_by_name['original_result_type']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0019\0227Type of the result returned by the artifacts collector.'))
_ARTIFACTFILESDOWNLOADERRESULT.fields_by_name['original_result'].has_options = True
_ARTIFACTFILESDOWNLOADERRESULT.fields_by_name['original_result']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001M\0224Original result returned by the artifacts collector.*\025GetOriginalResultType'))
_ARTIFACTFILESDOWNLOADERRESULT.fields_by_name['found_pathspec'].has_options = True
_ARTIFACTFILESDOWNLOADERRESULT.fields_by_name['found_pathspec']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001-\022+Pathspecs found in the collected artifacts.'))
_ARTIFACTFILESDOWNLOADERRESULT.fields_by_name['downloaded_file'].has_options = True
_ARTIFACTFILESDOWNLOADERRESULT.fields_by_name['downloaded_file']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001@\022>Files that were successfully downloaded using found pathspecs.'))
_INTERROGATEARGS.fields_by_name['lightweight'].has_options = True
_INTERROGATEARGS.fields_by_name['lightweight']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0014\0222Perform a light weight version of the interrogate.'))
_FINGERPRINTFILEARGS.fields_by_name['pathspec'].has_options = True
_FINGERPRINTFILEARGS.fields_by_name['pathspec']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\037\022\035The file path to fingerprint.'))
_FINGERPRINTFILERESULT.fields_by_name['file_urn'].has_options = True
_FINGERPRINTFILERESULT.fields_by_name['file_urn']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001+\n\006RDFURN\022!The URN of the file fingerprinted'))
_FINGERPRINTFILERESULT.fields_by_name['hash_entry'].has_options = True
_FINGERPRINTFILERESULT.fields_by_name['hash_entry']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\023\022\021File hash object.'))
_SOPHOSCOLLECTORARGS.fields_by_name['pathtype'].has_options = True
_SOPHOSCOLLECTORARGS.fields_by_name['pathtype']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\032\022\030The requested path type.'))
_MACTIMESARGS.fields_by_name['path'].has_options = True
_MACTIMESARGS.fields_by_name['path']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0017\0225An AFF path (relative to the client area of the VFS).'))
_FILECOLLECTORARGS.fields_by_name['findspecs'].has_options = True
_FILECOLLECTORARGS.fields_by_name['findspecs']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001 \022\036A list of find specifications.'))
_FIREFOXHISTORYARGS.fields_by_name['pathtype'].has_options = True
_FIREFOXHISTORYARGS.fields_by_name['pathtype']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\035\022\033Type of path access to use.'))
_FIREFOXHISTORYARGS.fields_by_name['get_archive'].has_options = True
_FIREFOXHISTORYARGS.fields_by_name['get_archive']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0018\0226Should we get Archived History as well (3 months old).'))
_FIREFOXHISTORYARGS.fields_by_name['username'].has_options = True
_FIREFOXHISTORYARGS.fields_by_name['username']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\220\001\022\215\001The user to get history for. If history_path is not set this will be used to guess the path to the history files. Can be in form DOMAIN\\user.'))
_FIREFOXHISTORYARGS.fields_by_name['history_path'].has_options = True
_FIREFOXHISTORYARGS.fields_by_name['history_path']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001;\0229Path to a profile directory that contains a History file.'))
_CACHEGREPARGS.fields_by_name['grep_users'].has_options = True
_CACHEGREPARGS.fields_by_name['grep_users']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001<\022:A list of users to check. Default all users on the system.'))
_CACHEGREPARGS.fields_by_name['pathtype'].has_options = True
_CACHEGREPARGS.fields_by_name['pathtype']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\035\022\033Type of path access to use.'))
_CACHEGREPARGS.fields_by_name['data_regex'].has_options = True
_CACHEGREPARGS.fields_by_name['data_regex']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0018\n\021RegularExpression\022#A regular expression to search for.'))
_CACHEGREPARGS.fields_by_name['check_chrome'].has_options = True
_CACHEGREPARGS.fields_by_name['check_chrome']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\016\022\014Check Chrome'))
_CACHEGREPARGS.fields_by_name['check_firefox'].has_options = True
_CACHEGREPARGS.fields_by_name['check_firefox']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\017\022\rCheck Firefox'))
_CACHEGREPARGS.fields_by_name['check_ie'].has_options = True
_CACHEGREPARGS.fields_by_name['check_ie']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001/\022-Check Internet Explorer (Not implemented yet)'))
_LISTDIRECTORYARGS.fields_by_name['pathspec'].has_options = True
_LISTDIRECTORYARGS.fields_by_name['pathspec']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001)\022\'The pathspec for the directory to list.'))
_RECURSIVELISTDIRECTORYARGS.fields_by_name['pathspec'].has_options = True
_RECURSIVELISTDIRECTORYARGS.fields_by_name['pathspec']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001)\022\'The pathspec for the directory to list.'))
_RECURSIVELISTDIRECTORYARGS.fields_by_name['max_depth'].has_options = True
_RECURSIVELISTDIRECTORYARGS.fields_by_name['max_depth']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\032\022\030Maximum recursion depth.'))
_FETCHBUFFERFORSPARSEIMAGEARGS.fields_by_name['file_urn'].has_options = True
_FETCHBUFFERFORSPARSEIMAGEARGS.fields_by_name['file_urn']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001/\n\006RDFURN\022%The URN of the sparse image to update'))
_UPDATESPARSEIMAGECHUNKSARGS.fields_by_name['file_urn'].has_options = True
_UPDATESPARSEIMAGECHUNKSARGS.fields_by_name['file_urn']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001/\n\006RDFURN\022%The URN of the sparse image to update'))
_GLOBARGS.fields_by_name['paths'].has_options = True
_GLOBARGS.fields_by_name['paths']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001j\n\016GlobExpression\022XA list of paths to glob that supports: ** path recursion, * wildcards and %% expansions.'))
_GLOBARGS.fields_by_name['pathtype'].has_options = True
_GLOBARGS.fields_by_name['pathtype']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\034\022\032Type of access to glob in.'))
_GLOBARGS.fields_by_name['root_path'].has_options = True
_GLOBARGS.fields_by_name['root_path']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\254\001\022\247\001The root path to begin the glob.  Users should almost never need to change this. root_path.pathtype is unused in favor of pathtype to allow it to be modified by users.\030\001'))
_GLOBARGS.fields_by_name['process_non_regular_files'].has_options = True
_GLOBARGS.fields_by_name['process_non_regular_files']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\234\001\022\227\001Work with all kinds of files - not only with regular ones.NOTE: This is very dangerous and should be used with care, see MemoryCollector as an example.\030\002'))
_FINDFILESARGS.fields_by_name['findspec'].has_options = True
_FINDFILESARGS.fields_by_name['findspec']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001!\022\037A find operation specification.'))
_FINDFILESARGS.fields_by_name['max_results'].has_options = True
_FINDFILESARGS.fields_by_name['max_results']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001%\022!Maximum number of results to get.\030\001'))
_FINDFILESARGS.fields_by_name['iteration_count'].has_options = True
_FINDFILESARGS.fields_by_name['iteration_count']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001!\022\035Files examined per iteration.\030\001'))
_GETFILEARGS.fields_by_name['pathspec'].has_options = True
_GETFILEARGS.fields_by_name['pathspec']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001(\022&The pathspec for the file to retrieve.'))
_GETFILEARGS.fields_by_name['read_length'].has_options = True
_GETFILEARGS.fields_by_name['read_length']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001U\022QThe amount of data to read from the file. If 0 we use the value from a stat call.\030\001'))
_GETFILEARGS.fields_by_name['ignore_stat_failure'].has_options = True
_GETFILEARGS.fields_by_name['ignore_stat_failure']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001M\022IIgnore stat failures and try to read anyway. Disable for windows devices.\030\001'))
_GETMBRARGS.fields_by_name['length'].has_options = True
_GETMBRARGS.fields_by_name['length']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\'\022%The length of the MBR buffer to read.'))
_CHROMEHISTORYARGS.fields_by_name['pathtype'].has_options = True
_CHROMEHISTORYARGS.fields_by_name['pathtype']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\035\022\033Type of path access to use.'))
_CHROMEHISTORYARGS.fields_by_name['get_archive'].has_options = True
_CHROMEHISTORYARGS.fields_by_name['get_archive']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0018\0226Should we get Archived History as well (3 months old).'))
_CHROMEHISTORYARGS.fields_by_name['username'].has_options = True
_CHROMEHISTORYARGS.fields_by_name['username']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\227\001\022\224\001The user to get Chrome history for. If history_path is not set this will be used to guess the path to the history files. Can be in form DOMAIN\\user.'))
_CHROMEHISTORYARGS.fields_by_name['history_path'].has_options = True
_CHROMEHISTORYARGS.fields_by_name['history_path']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001;\0229Path to a profile directory that contains a History file.'))
_CREATECRONJOBFLOWARGS.fields_by_name['description'].has_options = True
_CREATECRONJOBFLOWARGS.fields_by_name['description']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001/\022-A human readable description of the cron job.'))
_CREATECRONJOBFLOWARGS.fields_by_name['periodicity'].has_options = True
_CREATECRONJOBFLOWARGS.fields_by_name['periodicity']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\'\n\010Duration\022\033How often to run this hunt.'))
_CREATECRONJOBFLOWARGS.fields_by_name['flow_args'].has_options = True
_CREATECRONJOBFLOWARGS.fields_by_name['flow_args']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\022*\020GetFlowArgsClass'))
_CREATECRONJOBFLOWARGS.fields_by_name['lifetime'].has_options = True
_CREATECRONJOBFLOWARGS.fields_by_name['lifetime']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\200\002\n\010Duration\022\363\001How long each run of the cron should be allowed to run. Runs that exceed lifetime will be killed. This is complimentary but different to periodicity e.g. it allows us to run jobs weekly that should be killed if they take more than a few hours.'))
_CREATECRONJOBFLOWARGS.fields_by_name['start_time'].has_options = True
_CREATECRONJOBFLOWARGS.fields_by_name['start_time']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\312\001\n\013RDFDatetime\022\272\001Time at which this cron should run for the first time.Specifying this allows us to stagger or randomize cron start times so they don\'t all start at once. Default is to start immediately.'))
_CRONJOB.fields_by_name['create_time'].has_options = True
_CRONJOB.fields_by_name['create_time']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\r\n\013RDFDatetime'))
_CRONJOB.fields_by_name['last_run_time'].has_options = True
_CRONJOB.fields_by_name['last_run_time']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\r\n\013RDFDatetime'))
_PLISTVALUEFILTERARGS.fields_by_name['request'].has_options = True
_PLISTVALUEFILTERARGS.fields_by_name['request']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0011\022/A request for the client to parse a plist file.'))
_RUNREPORTFLOWARGS.fields_by_name['report_name'].has_options = True
_RUNREPORTFLOWARGS.fields_by_name['report_name']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001,\n\nReportName\022\036The name of the report to run.'))
_RUNREPORTFLOWARGS.fields_by_name['email'].has_options = True
_RUNREPORTFLOWARGS.fields_by_name['email']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001F\n\022DomainEmailAddress\0220The email address that messages will be sent to.'))
_ENUMERATESERVICESARGS.fields_by_name['download_binaries'].has_options = True
_ENUMERATESERVICESARGS.fields_by_name['download_binaries']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001&\022$If set, also downloads the binaries.'))
_ENUMERATESERVICESARGS.fields_by_name['pathtype'].has_options = True
_ENUMERATESERVICESARGS.fields_by_name['pathtype']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\037\022\035How to access the filesystem.'))
_CHROMEPLUGINSARGS.fields_by_name['path'].has_options = True
_CHROMEPLUGINSARGS.fields_by_name['path']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001]\022[A path to a Chrome Extensions directory. If not set, the path is guessed from the username.'))
_CHROMEPLUGINSARGS.fields_by_name['pathtype'].has_options = True
_CHROMEPLUGINSARGS.fields_by_name['pathtype']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\r\022\013Access mode'))
_CHROMEPLUGINSARGS.fields_by_name['username'].has_options = True
_CHROMEPLUGINSARGS.fields_by_name['username']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001(\022&The user to get Chrome extensions for.'))
_CHROMEPLUGINSARGS.fields_by_name['download_files'].has_options = True
_CHROMEPLUGINSARGS.fields_by_name['download_files']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\"\022 Should extensions be downloaded?'))
_UPDATEVFSFILEARGS.fields_by_name['vfs_file_urn'].has_options = True
_UPDATEVFSFILEARGS.fields_by_name['vfs_file_urn']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\025\n\006RDFURN\022\013VFSFile urn'))
_UPDATEVFSFILEARGS.fields_by_name['attribute'].has_options = True
_UPDATEVFSFILEARGS.fields_by_name['attribute']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001G\022EAttribute to update, given as the attribute name on the schema class.'))
_MULTIGETFILEARGS.fields_by_name['pathspecs'].has_options = True
_MULTIGETFILEARGS.fields_by_name['pathspecs']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001%\022#Pathspecs of files to be retrieved.'))
_MULTIGETFILEARGS.fields_by_name['use_external_stores'].has_options = True
_MULTIGETFILEARGS.fields_by_name['use_external_stores']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\303\001\022\276\001If true, look in any defined external file stores for filesbefore downloading them, and offer any new files to external stores.This should be true unless the external checks are misbehaving.\030\001'))
_MULTIGETFILEARGS.fields_by_name['file_size'].has_options = True
_MULTIGETFILEARGS.fields_by_name['file_size']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001?\n\010ByteSize\0221Maximum number of bytes to download in each file.\030\001'))
_MULTIGETFILEARGS.fields_by_name['maximum_pending_files'].has_options = True
_MULTIGETFILEARGS.fields_by_name['maximum_pending_files']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001=\0229Maximum number of files to be downloading simultaneously.\030\001'))
_PROCESSHUNTRESULTCOLLECTIONSCRONFLOWARGS.fields_by_name['batch_size'].has_options = True
_PROCESSHUNTRESULTCOLLECTIONSCRONFLOWARGS.fields_by_name['batch_size']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001H\022DResults will be processed by output plugins in batches of this size.\030\001'))
_PROCESSHUNTRESULTCOLLECTIONSCRONFLOWARGS.fields_by_name['max_running_time'].has_options = True
_PROCESSHUNTRESULTCOLLECTIONSCRONFLOWARGS.fields_by_name['max_running_time']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\262\001\n\010Duration\022\243\001ProcessHuntResultsCollectionsCronFlow will run not much longer than max_running_time. It will finish (without an error) even if there are still results to process.\030\001'))
_PROCESSHUNTRESULTCOLLECTIONSCRONFLOWARGS.fields_by_name['start_processing_time'].has_options = True
_PROCESSHUNTRESULTCOLLECTIONSCRONFLOWARGS.fields_by_name['start_processing_time']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001K\n\013RDFDatetime\022<The flow will only process results received after this time.'))
_VERIFYHUNTOUTPUTPLUGINSCRONFLOWARGS.fields_by_name['check_range'].has_options = True
_VERIFYHUNTOUTPUTPLUGINSCRONFLOWARGS.fields_by_name['check_range']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001l\n\010Duration\022^Only the hunts that were active within given duration from the current moment will be checked.\030\001'))
_LISTPROCESSESARGS.fields_by_name['filename_regex'].has_options = True
_LISTPROCESSESARGS.fields_by_name['filename_regex']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001P\n\021RegularExpression\022+Regex used to filter the list of processes.\"\016Filename Regex'))
_LISTPROCESSESARGS.fields_by_name['fetch_binaries'].has_options = True
_LISTPROCESSESARGS.fields_by_name['fetch_binaries']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\020\"\016Fetch Binaries'))
_LISTPROCESSESARGS.fields_by_name['connection_states'].has_options = True
_LISTPROCESSESARGS.fields_by_name['connection_states']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\210\001\022\205\001Network connection states to match. If a process has any network connections in any status listed here, it will be considered a match'))
_LISTVADBINARIESARGS.fields_by_name['filename_regex'].has_options = True
_LISTVADBINARIESARGS.fields_by_name['filename_regex']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001O\n\021RegularExpression\022*Regex used to filter the list of binaries.\"\016Filename Regex'))
_LISTVADBINARIESARGS.fields_by_name['fetch_binaries'].has_options = True
_LISTVADBINARIESARGS.fields_by_name['fetch_binaries']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\020\"\016Fetch Binaries'))
_FILEFINDERMODIFICATIONTIMECONDITION.fields_by_name['min_last_modified_time'].has_options = True
_FILEFINDERMODIFICATIONTIMECONDITION.fields_by_name['min_last_modified_time']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0015\n\013RDFDatetime\022&File must be modified after this time.'))
_FILEFINDERMODIFICATIONTIMECONDITION.fields_by_name['max_last_modified_time'].has_options = True
_FILEFINDERMODIFICATIONTIMECONDITION.fields_by_name['max_last_modified_time']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001[\n\013RDFDatetime\022LFile must be modified before this time (default=heat death of the universe).'))
_FILEFINDERACCESSTIMECONDITION.fields_by_name['min_last_access_time'].has_options = True
_FILEFINDERACCESSTIMECONDITION.fields_by_name['min_last_access_time']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0015\n\013RDFDatetime\022&File must be accessed after this time.'))
_FILEFINDERACCESSTIMECONDITION.fields_by_name['max_last_access_time'].has_options = True
_FILEFINDERACCESSTIMECONDITION.fields_by_name['max_last_access_time']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001[\n\013RDFDatetime\022LFile must be accessed before this time (default=heat death of the universe).'))
_FILEFINDERINODECHANGETIMECONDITION.fields_by_name['min_last_inode_change_time'].has_options = True
_FILEFINDERINODECHANGETIMECONDITION.fields_by_name['min_last_inode_change_time']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001<\n\013RDFDatetime\022-File\'s inode must be changed after this time.'))
_FILEFINDERINODECHANGETIMECONDITION.fields_by_name['max_last_inode_change_time'].has_options = True
_FILEFINDERINODECHANGETIMECONDITION.fields_by_name['max_last_inode_change_time']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\\\n\013RDFDatetime\022MFile\'s must be changed before this time (default=heat death of the universe).'))
_FILEFINDERSIZECONDITION.fields_by_name['min_file_size'].has_options = True
_FILEFINDERSIZECONDITION.fields_by_name['min_file_size']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\035\022\033Minimum file size in bytes.'))
_FILEFINDERSIZECONDITION.fields_by_name['max_file_size'].has_options = True
_FILEFINDERSIZECONDITION.fields_by_name['max_file_size']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001,\022*Maximum file size in bytes (default=20MB).'))
_FILEFINDERCONTENTSREGEXMATCHCONDITION.fields_by_name['regex'].has_options = True
_FILEFINDERCONTENTSREGEXMATCHCONDITION.fields_by_name['regex']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001I\n\021RegularExpression\0224The regular expression which will be used to search.'))
_FILEFINDERCONTENTSREGEXMATCHCONDITION.fields_by_name['mode'].has_options = True
_FILEFINDERCONTENTSREGEXMATCHCONDITION.fields_by_name['mode']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001C\022AWhen should searching stop? Stop after one hit or search for all?'))
_FILEFINDERCONTENTSREGEXMATCHCONDITION.fields_by_name['bytes_before'].has_options = True
_FILEFINDERCONTENTSREGEXMATCHCONDITION.fields_by_name['bytes_before']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001+\022\'Include this many bytes before the hit.\030\001'))
_FILEFINDERCONTENTSREGEXMATCHCONDITION.fields_by_name['bytes_after'].has_options = True
_FILEFINDERCONTENTSREGEXMATCHCONDITION.fields_by_name['bytes_after']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001*\022&Include this many bytes after the hit.\030\001'))
_FILEFINDERCONTENTSREGEXMATCHCONDITION.fields_by_name['start_offset'].has_options = True
_FILEFINDERCONTENTSREGEXMATCHCONDITION.fields_by_name['start_offset']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001(\022$Start searching at this file offset.\030\001'))
_FILEFINDERCONTENTSREGEXMATCHCONDITION.fields_by_name['length'].has_options = True
_FILEFINDERCONTENTSREGEXMATCHCONDITION.fields_by_name['length']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001;\0229How far (in bytes) into the file to search. Default=20MB.'))
_FILEFINDERCONTENTSLITERALMATCHCONDITION.fields_by_name['literal'].has_options = True
_FILEFINDERCONTENTSLITERALMATCHCONDITION.fields_by_name['literal']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0014\n\021LiteralExpression\022\037Search for this literal string.'))
_FILEFINDERCONTENTSLITERALMATCHCONDITION.fields_by_name['mode'].has_options = True
_FILEFINDERCONTENTSLITERALMATCHCONDITION.fields_by_name['mode']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001C\022AWhen should searching stop? Stop after one hit or search for all?'))
_FILEFINDERCONTENTSLITERALMATCHCONDITION.fields_by_name['start_offset'].has_options = True
_FILEFINDERCONTENTSLITERALMATCHCONDITION.fields_by_name['start_offset']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001(\022$Start searching at this file offset.\030\001'))
_FILEFINDERCONTENTSLITERALMATCHCONDITION.fields_by_name['length'].has_options = True
_FILEFINDERCONTENTSLITERALMATCHCONDITION.fields_by_name['length']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001<\0228How far (in bytes) into the file to search. Default=20MB\030\001'))
_FILEFINDERCONTENTSLITERALMATCHCONDITION.fields_by_name['bytes_before'].has_options = True
_FILEFINDERCONTENTSLITERALMATCHCONDITION.fields_by_name['bytes_before']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001+\022\'Include this many bytes before the hit.\030\001'))
_FILEFINDERCONTENTSLITERALMATCHCONDITION.fields_by_name['bytes_after'].has_options = True
_FILEFINDERCONTENTSLITERALMATCHCONDITION.fields_by_name['bytes_after']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001*\022&Include this many bytes after the hit.\030\001'))
_FILEFINDERCONTENTSLITERALMATCHCONDITION.fields_by_name['xor_in_key'].has_options = True
_FILEFINDERCONTENTSLITERALMATCHCONDITION.fields_by_name['xor_in_key']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\243\001\022\236\001When searching memory we need to ensure we dont hit on our own process. This allows us to obfuscate the search string in memory to avoid us finding ourselves.\030\001'))
_FILEFINDERCONTENTSLITERALMATCHCONDITION.fields_by_name['xor_out_key'].has_options = True
_FILEFINDERCONTENTSLITERALMATCHCONDITION.fields_by_name['xor_out_key']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\243\001\022\236\001When searching memory we need to ensure we dont hit on our own process. This allows us to obfuscate the search string in memory to avoid us finding ourselves.\030\001'))
_FILEFINDERCONDITION_TYPE.values_by_name["MODIFICATION_TIME"].has_options = True
_FILEFINDERCONDITION_TYPE.values_by_name["MODIFICATION_TIME"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\021Modification time'))
_FILEFINDERCONDITION_TYPE.values_by_name["ACCESS_TIME"].has_options = True
_FILEFINDERCONDITION_TYPE.values_by_name["ACCESS_TIME"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\013Access time'))
_FILEFINDERCONDITION_TYPE.values_by_name["INODE_CHANGE_TIME"].has_options = True
_FILEFINDERCONDITION_TYPE.values_by_name["INODE_CHANGE_TIME"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\021Inode change time'))
_FILEFINDERCONDITION_TYPE.values_by_name["SIZE"].has_options = True
_FILEFINDERCONDITION_TYPE.values_by_name["SIZE"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\tFile size'))
_FILEFINDERCONDITION_TYPE.values_by_name["EXT_FLAGS"].has_options = True
_FILEFINDERCONDITION_TYPE.values_by_name["EXT_FLAGS"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\023Extended file flags'))
_FILEFINDERCONDITION_TYPE.values_by_name["CONTENTS_REGEX_MATCH"].has_options = True
_FILEFINDERCONDITION_TYPE.values_by_name["CONTENTS_REGEX_MATCH"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\024Contents regex match'))
_FILEFINDERCONDITION_TYPE.values_by_name["CONTENTS_LITERAL_MATCH"].has_options = True
_FILEFINDERCONDITION_TYPE.values_by_name["CONTENTS_LITERAL_MATCH"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\026Contents literal match'))
_FILEFINDERCONDITION.fields_by_name['condition_type'].has_options = True
_FILEFINDERCONDITION.fields_by_name['condition_type']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001 \022\016Condition type\"\016Condition type'))
_FILEFINDERCONDITION.has_options = True
_FILEFINDERCONDITION._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('\332\374\343\304\001\020\022\016condition_type'))
_FILEFINDERHASHACTIONOPTIONS_OVERSIZEDFILEPOLICY.values_by_name["SKIP"].has_options = True
_FILEFINDERHASHACTIONOPTIONS_OVERSIZEDFILEPOLICY.values_by_name["SKIP"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\024Skip oversized files'))
_FILEFINDERHASHACTIONOPTIONS_OVERSIZEDFILEPOLICY.values_by_name["HASH_TRUNCATED"].has_options = True
_FILEFINDERHASHACTIONOPTIONS_OVERSIZEDFILEPOLICY.values_by_name["HASH_TRUNCATED"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001*Hash truncated versions of oversized files'))
_FILEFINDERHASHACTIONOPTIONS.fields_by_name['max_size'].has_options = True
_FILEFINDERHASHACTIONOPTIONS.fields_by_name['max_size']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0015\n\010ByteSize\022\'The maximum size of files we will hash.\030\001'))
_FILEFINDERHASHACTIONOPTIONS.fields_by_name['oversized_file_policy'].has_options = True
_FILEFINDERHASHACTIONOPTIONS.fields_by_name['oversized_file_policy']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001@\022<What should GRR do with files that are larger than max_size.\030\001'))
_FILEFINDERHASHACTIONOPTIONS.fields_by_name['collect_ext_attrs'].has_options = True
_FILEFINDERHASHACTIONOPTIONS.fields_by_name['collect_ext_attrs']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001}\022\\If true, extended attributes and flags of the hashed file are going to be collected as well.\030\001\"\033Collect extended attributes'))
_FILEFINDERDOWNLOADACTIONOPTIONS_OVERSIZEDFILEPOLICY.values_by_name["SKIP"].has_options = True
_FILEFINDERDOWNLOADACTIONOPTIONS_OVERSIZEDFILEPOLICY.values_by_name["SKIP"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\024Skip oversized files'))
_FILEFINDERDOWNLOADACTIONOPTIONS_OVERSIZEDFILEPOLICY.values_by_name["HASH_TRUNCATED"].has_options = True
_FILEFINDERDOWNLOADACTIONOPTIONS_OVERSIZEDFILEPOLICY.values_by_name["HASH_TRUNCATED"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\0018Hash truncated version of the file (without downloading)'))
_FILEFINDERDOWNLOADACTIONOPTIONS_OVERSIZEDFILEPOLICY.values_by_name["DOWNLOAD_TRUNCATED"].has_options = True
_FILEFINDERDOWNLOADACTIONOPTIONS_OVERSIZEDFILEPOLICY.values_by_name["DOWNLOAD_TRUNCATED"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001&Download truncated version of the file'))
_FILEFINDERDOWNLOADACTIONOPTIONS.fields_by_name['max_size'].has_options = True
_FILEFINDERDOWNLOADACTIONOPTIONS.fields_by_name['max_size']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0019\n\010ByteSize\022+The maximum size of files we will download.\030\001'))
_FILEFINDERDOWNLOADACTIONOPTIONS.fields_by_name['oversized_file_policy'].has_options = True
_FILEFINDERDOWNLOADACTIONOPTIONS.fields_by_name['oversized_file_policy']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001@\022<What should GRR do with files that are larger than max_size.\030\001'))
_FILEFINDERDOWNLOADACTIONOPTIONS.fields_by_name['use_external_stores'].has_options = True
_FILEFINDERDOWNLOADACTIONOPTIONS.fields_by_name['use_external_stores']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\305\001\022\300\001If true, look in any defined external file stores for files before downloading them, and offer any new files to external stores. This should be true unless the external checks are misbehaving.\030\001'))
_FILEFINDERDOWNLOADACTIONOPTIONS.fields_by_name['collect_ext_attrs'].has_options = True
_FILEFINDERDOWNLOADACTIONOPTIONS.fields_by_name['collect_ext_attrs']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\201\001\022`If true, extended attributes and flags of the downloaded file are going to be collected as well.\030\001\"\033Collect extended attributes'))
_FILEFINDERDOWNLOADACTIONOPTIONS.fields_by_name['chunk_size'].has_options = True
_FILEFINDERDOWNLOADACTIONOPTIONS.fields_by_name['chunk_size']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001S\022CNumber of bytes per chunk that the downloaded file is divided into.\030\002\"\nChunk size'))
_FILEFINDERSTATACTIONOPTIONS.fields_by_name['resolve_links'].has_options = True
_FILEFINDERSTATACTIONOPTIONS.fields_by_name['resolve_links']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001|\022zIf true, the action will yield stat information for link targets, if false, the stat for the link itself will be returned.'))
_FILEFINDERSTATACTIONOPTIONS.fields_by_name['collect_ext_attrs'].has_options = True
_FILEFINDERSTATACTIONOPTIONS.fields_by_name['collect_ext_attrs']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001Z\0229If true, the action will also gather extended attributes.\030\001\"\033Collect extended attributes'))
_FILEFINDERACTION_ACTION.values_by_name["STAT"].has_options = True
_FILEFINDERACTION_ACTION.values_by_name["STAT"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\004Stat'))
_FILEFINDERACTION_ACTION.values_by_name["HASH"].has_options = True
_FILEFINDERACTION_ACTION.values_by_name["HASH"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\004Hash'))
_FILEFINDERACTION_ACTION.values_by_name["DOWNLOAD"].has_options = True
_FILEFINDERACTION_ACTION.values_by_name["DOWNLOAD"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\010Download'))
_FILEFINDERACTION.fields_by_name['action_type'].has_options = True
_FILEFINDERACTION.fields_by_name['action_type']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001(\022\036Action to apply to found files\"\006Action'))
_FILEFINDERACTION.has_options = True
_FILEFINDERACTION._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('\332\374\343\304\001\r\022\013action_type'))
_FILEFINDERARGS_XDEV.values_by_name["NEVER"].has_options = True
_FILEFINDERARGS_XDEV.values_by_name["NEVER"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\036Never cross device boundaries.'))
_FILEFINDERARGS_XDEV.values_by_name["ALWAYS"].has_options = True
_FILEFINDERARGS_XDEV.values_by_name["ALWAYS"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\037Always cross device boundaries.'))
_FILEFINDERARGS_XDEV.values_by_name["LOCAL"].has_options = True
_FILEFINDERARGS_XDEV.values_by_name["LOCAL"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\0013Descend into file systems on physical devices only.'))
_FILEFINDERARGS.fields_by_name['paths'].has_options = True
_FILEFINDERARGS.fields_by_name['paths']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001@\n\016GlobExpression\022.A path to glob that can contain %% expansions.'))
_FILEFINDERARGS.fields_by_name['pathtype'].has_options = True
_FILEFINDERARGS.fields_by_name['pathtype']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\027\022\025Path type to glob in.'))
_FILEFINDERARGS.fields_by_name['conditions'].has_options = True
_FILEFINDERARGS.fields_by_name['conditions']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001N\022LThese conditions will be applied to all files that match the path arguments.'))
_FILEFINDERARGS.fields_by_name['process_non_regular_files'].has_options = True
_FILEFINDERARGS.fields_by_name['process_non_regular_files']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\223\001\022\216\001Look both into regular files and non-regular files (devices, named pipes, sockets). NOTE: This is very dangerous and should be used with care.\030\001'))
_FILEFINDERARGS.fields_by_name['follow_links'].has_options = True
_FILEFINDERARGS.fields_by_name['follow_links']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001F\022BShould symbolic links be followed in recursive directory listings.\030\001'))
_FILEFINDERARGS.fields_by_name['xdev'].has_options = True
_FILEFINDERARGS.fields_by_name['xdev']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001O\022KBehavior when ecountering device boundaries while doing recursive searches.\030\001'))
_FILEFINDERRESULT.fields_by_name['transferred_file'].has_options = True
_FILEFINDERRESULT.fields_by_name['transferred_file']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001K\022IAn descriptor for files uploaded as fragments to the transfer store flow.'))
_FILEREFERENCE.fields_by_name['client_id'].has_options = True
_FILEREFERENCE.fields_by_name['client_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001-\n\tClientURN\022 The client id the file lives on.'))
_FILEREFERENCE.fields_by_name['pathspecs'].has_options = True
_FILEREFERENCE.fields_by_name['pathspecs']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\031\022\027The paths to the files.'))
_FILEREFERENCE.fields_by_name['sha256_hashes'].has_options = True
_FILEREFERENCE.fields_by_name['sha256_hashes']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0011\n\nHashDigest\022#A SHA256 hash digest for each file.'))
_REGISTRYFINDERCONDITION_TYPE.values_by_name["VALUE_LITERAL_MATCH"].has_options = True
_REGISTRYFINDERCONDITION_TYPE.values_by_name["VALUE_LITERAL_MATCH"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\023Value literal match'))
_REGISTRYFINDERCONDITION_TYPE.values_by_name["VALUE_REGEX_MATCH"].has_options = True
_REGISTRYFINDERCONDITION_TYPE.values_by_name["VALUE_REGEX_MATCH"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\021Value regex match'))
_REGISTRYFINDERCONDITION_TYPE.values_by_name["MODIFICATION_TIME"].has_options = True
_REGISTRYFINDERCONDITION_TYPE.values_by_name["MODIFICATION_TIME"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\021Modification time'))
_REGISTRYFINDERCONDITION_TYPE.values_by_name["SIZE"].has_options = True
_REGISTRYFINDERCONDITION_TYPE.values_by_name["SIZE"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\nValue size'))
_REGISTRYFINDERCONDITION.has_options = True
_REGISTRYFINDERCONDITION._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('\332\374\343\304\001\020\022\016condition_type'))
_REGISTRYFINDERARGS.fields_by_name['keys_paths'].has_options = True
_REGISTRYFINDERARGS.fields_by_name['keys_paths']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001D\n\016GlobExpression\0222Glob expression for registry keys to be retrieved.'))
_REGISTRYFINDERARGS.fields_by_name['conditions'].has_options = True
_REGISTRYFINDERARGS.fields_by_name['conditions']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001S\022QThese conditions will be applied to all items that match the keys path arguments.'))
_MEMORYCOLLECTORARGS.fields_by_name['max_file_size'].has_options = True
_MEMORYCOLLECTORARGS.fields_by_name['max_file_size']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001?\022=Maximum length to read off the dumped memory file (in bytes).'))
_MEMORYCOLLECTORARGS.fields_by_name['check_disk_free_space'].has_options = True
_MEMORYCOLLECTORARGS.fields_by_name['check_disk_free_space']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001s\022oIf true, check for available disk space before doing a local copy. Ignored if the dump option isn\'t local copy.\030\001'))
_ARTIFACTFALLBACKCOLLECTORARGS.fields_by_name['artifact_name'].has_options = True
_ARTIFACTFALLBACKCOLLECTORARGS.fields_by_name['artifact_name']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0019\n\014ArtifactName\022)Name of the artifact using this fallback.'))
_KNOWLEDGEBASEINITIALIZATIONARGS.fields_by_name['require_complete'].has_options = True
_KNOWLEDGEBASEINITIALIZATIONARGS.fields_by_name['require_complete']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001M\022KIf true require all dependencies to be complete.  Raise if any are missing.'))
_KNOWLEDGEBASEINITIALIZATIONARGS.fields_by_name['lightweight'].has_options = True
_KNOWLEDGEBASEINITIALIZATIONARGS.fields_by_name['lightweight']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001Y\022WIf true skip all heavyweight artifacts defined in Artifacts.knowledge_base_heavyweight.'))
_ENDTOENDTESTFLOWARGS.fields_by_name['test_names'].has_options = True
_ENDTOENDTESTFLOWARGS.fields_by_name['test_names']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001_\022]List of endtoend test classes to run. If none are specifed, run all automated endtoend tests.'))
_DISKVOLUMEINFOARGS.fields_by_name['path_list'].has_options = True
_DISKVOLUMEINFOARGS.fields_by_name['path_list']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\020\022\016List of paths.'))
_DISKVOLUMEINFOARGS.fields_by_name['pathtype'].has_options = True
_DISKVOLUMEINFOARGS.fields_by_name['pathtype']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0011\022-Type of path. Only OS is currently supported.\030\002'))
_CHECKFLOWARGS.fields_by_name['only_os'].has_options = True
_CHECKFLOWARGS.fields_by_name['only_os']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001;\0227Limit checks to hosts of OS type(s) [Linux|OSX|Windows]\030\001'))
_CHECKFLOWARGS.fields_by_name['only_cpe'].has_options = True
_CHECKFLOWARGS.fields_by_name['only_cpe']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001+\022\'Limit checks to hosts with cpe strings.\030\001'))
_CHECKFLOWARGS.fields_by_name['only_label'].has_options = True
_CHECKFLOWARGS.fields_by_name['only_label']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001-\022)Limit checks to hosts with label strings.\030\001'))
_CHECKFLOWARGS.fields_by_name['max_findings'].has_options = True
_CHECKFLOWARGS.fields_by_name['max_findings']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001:\0226Summarize checks with more than N individual findings.\030\001'))
_CHECKFLOWARGS.fields_by_name['restrict_checks'].has_options = True
_CHECKFLOWARGS.fields_by_name['restrict_checks']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001/\022-Only run checks with the specified check_ids.'))
_DUMPFLASHIMAGEARGS.fields_by_name['log_level'].has_options = True
_DUMPFLASHIMAGEARGS.fields_by_name['log_level']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001f\022dSet the log level. If set, the log returned will include additional information reported by Chipsec.'))
_DUMPFLASHIMAGEARGS.fields_by_name['chunk_size'].has_options = True
_DUMPFLASHIMAGEARGS.fields_by_name['chunk_size']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001e\022aA heartbeat will be emitted every chunk_size.This could be reduced in case the process times out.\030\001'))
_DUMPFLASHIMAGEARGS.fields_by_name['notify_syslog'].has_options = True
_DUMPFLASHIMAGEARGS.fields_by_name['notify_syslog']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\270\001\022\265\001If true, a message will be written by the client to the syslog before running the action. This can be used for debugging in case the client crashes during the image dumping process.'))
_DUMPACPITABLEARGS.fields_by_name['logging'].has_options = True
_DUMPACPITABLEARGS.fields_by_name['logging']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001O\022MIf the logging is set to true, the client sends log, including Chipsec\'s log.'))
_DUMPACPITABLEARGS.fields_by_name['table_signature_list'].has_options = True
_DUMPACPITABLEARGS.fields_by_name['table_signature_list']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001(\022&Signature of ACPI tables to be dumped.'))
_YARAPROCESSSCANREQUEST.fields_by_name['yara_signature'].has_options = True
_YARAPROCESSSCANREQUEST.fields_by_name['yara_signature']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001;\n\rYaraSignature\022*The yara signature(s) to use for scanning.'))
_YARAPROCESSSCANREQUEST.fields_by_name['pids'].has_options = True
_YARAPROCESSSCANREQUEST.fields_by_name['pids']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001:\0228The pids to scan. No pids given indicates all processes.'))
_YARAPROCESSSCANREQUEST.fields_by_name['process_regex'].has_options = True
_YARAPROCESSSCANREQUEST.fields_by_name['process_regex']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001Q\022OA regex to match against the process name. Only matching names will be scanned.'))
_YARAPROCESSSCANREQUEST.fields_by_name['include_errors_in_results'].has_options = True
_YARAPROCESSSCANREQUEST.fields_by_name['include_errors_in_results']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001C\022?Include processes that we failed to scan into returned results.\030\001'))
_YARAPROCESSSCANREQUEST.fields_by_name['include_misses_in_results'].has_options = True
_YARAPROCESSSCANREQUEST.fields_by_name['include_misses_in_results']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001K\022GInclude processes that came back without matches into returned results.\030\001'))
_YARAPROCESSSCANREQUEST.fields_by_name['ignore_grr_process'].has_options = True
_YARAPROCESSSCANREQUEST.fields_by_name['ignore_grr_process']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001X\022TBy default, the GRR process is not scanned. Clear this flag to change this behavior.\030\001'))
_YARAPROCESSSCANREQUEST.fields_by_name['per_process_timeout'].has_options = True
_YARAPROCESSSCANREQUEST.fields_by_name['per_process_timeout']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001Y\022WA timeout in seconds that is applied while scanning; applies to each scan individually.'))
_YARAPROCESSSCANREQUEST.fields_by_name['chunk_size'].has_options = True
_YARAPROCESSSCANREQUEST.fields_by_name['chunk_size']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001=\0229The chunk size to use when scanning large memory regions.\030\001'))
_YARAPROCESSSCANREQUEST.fields_by_name['overlap_size'].has_options = True
_YARAPROCESSSCANREQUEST.fields_by_name['overlap_size']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001?\022;The overlap size to use when scanning large memory regions.\030\001'))
_YARAPROCESSSCANREQUEST.fields_by_name['skip_special_regions'].has_options = True
_YARAPROCESSSCANREQUEST.fields_by_name['skip_special_regions']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001c\022_Set this flag to avoid scanning device backed regions and guard pages. Applies to Windows only.\030\001'))
_YARAPROCESSSCANREQUEST.fields_by_name['skip_mapped_files'].has_options = True
_YARAPROCESSSCANREQUEST.fields_by_name['skip_mapped_files']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001H\022DSet this flag to avoid scanning mapped files. Applies to Linux only.\030\001'))
_YARAPROCESSSCANREQUEST.fields_by_name['skip_shared_regions'].has_options = True
_YARAPROCESSSCANREQUEST.fields_by_name['skip_shared_regions']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001O\022KSet this flag to avoid scanning shared regions. Applies to Linux and macOS.\030\001'))
_YARAPROCESSSCANREQUEST.fields_by_name['skip_executable_regions'].has_options = True
_YARAPROCESSSCANREQUEST.fields_by_name['skip_executable_regions']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001S\022OSet this flag to avoid scanning executable regions. Applies to Linux and macOS.\030\001'))
_YARAPROCESSSCANREQUEST.fields_by_name['skip_readonly_regions'].has_options = True
_YARAPROCESSSCANREQUEST.fields_by_name['skip_readonly_regions']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001Q\022MSet this flag to avoid scanning readonly regions. Applies to Linux and macOS.\030\001'))
_YARAPROCESSSCANREQUEST.fields_by_name['dump_process_on_match'].has_options = True
_YARAPROCESSSCANREQUEST.fields_by_name['dump_process_on_match']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001M\022ISet this flag to schedule a process memory dump on every signature match.\030\001'))
_YARAPROCESSSCANREQUEST.fields_by_name['max_results_per_process'].has_options = True
_YARAPROCESSSCANREQUEST.fields_by_name['max_results_per_process']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001N\022JSet this to limit the number of matches returned for each process scanned.\030\001'))
_YARAPROCESSERROR.fields_by_name['process'].has_options = True
_YARAPROCESSERROR.fields_by_name['process']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0014\0222The process that returned an error while scanning.'))
_YARAPROCESSERROR.fields_by_name['error'].has_options = True
_YARAPROCESSERROR.fields_by_name['error']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\036\022\034The error that was returned.'))
_YARASTRINGMATCH.fields_by_name['string_id'].has_options = True
_YARASTRINGMATCH.fields_by_name['string_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001&\022$The name of the string that matched.'))
_YARASTRINGMATCH.fields_by_name['offset'].has_options = True
_YARASTRINGMATCH.fields_by_name['offset']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\033\022\031The offset into the data.'))
_YARASTRINGMATCH.fields_by_name['data'].has_options = True
_YARASTRINGMATCH.fields_by_name['data']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\037\022\035The actual data that matched.'))
_YARAMATCH.fields_by_name['rule_name'].has_options = True
_YARAMATCH.fields_by_name['rule_name']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001&\022$The name of the rule that triggered.'))
_YARAMATCH.fields_by_name['string_matches'].has_options = True
_YARAMATCH.fields_by_name['string_matches']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001#\022!The list of strings that matched.'))
_YARAPROCESSSCANMATCH.fields_by_name['process'].has_options = True
_YARAPROCESSSCANMATCH.fields_by_name['process']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0010\022.The process that returned one or more matches.'))
_YARAPROCESSSCANMATCH.fields_by_name['match'].has_options = True
_YARAPROCESSSCANMATCH.fields_by_name['match']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\034\022\032Details about the matches.'))
_YARAPROCESSSCANMATCH.fields_by_name['scan_time_us'].has_options = True
_YARAPROCESSSCANMATCH.fields_by_name['scan_time_us']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0011\022/Time in microseconds taken to perform the scan.'))
_YARAPROCESSSCANMISS.fields_by_name['process'].has_options = True
_YARAPROCESSSCANMISS.fields_by_name['process']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\'\022%The process that returned no matches.'))
_YARAPROCESSSCANMISS.fields_by_name['scan_time_us'].has_options = True
_YARAPROCESSSCANMISS.fields_by_name['scan_time_us']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0011\022/Time in microseconds taken to perform the scan.'))
_YARAPROCESSSCANRESPONSE.fields_by_name['matches'].has_options = True
_YARAPROCESSSCANRESPONSE.fields_by_name['matches']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001-\022+A list of processes with signature matches.'))
_YARAPROCESSSCANRESPONSE.fields_by_name['errors'].has_options = True
_YARAPROCESSSCANRESPONSE.fields_by_name['errors']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001-\022+A list of processes that we failed to scan.'))
_YARAPROCESSSCANRESPONSE.fields_by_name['misses'].has_options = True
_YARAPROCESSSCANRESPONSE.fields_by_name['misses']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0015\0223A list of processes that came back without matches.'))
_YARAPROCESSDUMPARGS.fields_by_name['pids'].has_options = True
_YARAPROCESSDUMPARGS.fields_by_name['pids']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\031\022\027A list of pids to dump.'))
_YARAPROCESSDUMPARGS.fields_by_name['process_regex'].has_options = True
_YARAPROCESSDUMPARGS.fields_by_name['process_regex']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001P\022NA regex to match against the process name. Only matching names will be dumped.'))
_YARAPROCESSDUMPARGS.fields_by_name['ignore_grr_process'].has_options = True
_YARAPROCESSDUMPARGS.fields_by_name['ignore_grr_process']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001W\022SBy default, the GRR process is not dumped. Clear this flag to change this behavior.\030\001'))
_YARAPROCESSDUMPARGS.fields_by_name['dump_all_processes'].has_options = True
_YARAPROCESSDUMPARGS.fields_by_name['dump_all_processes']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001G\022CThis dumps all processes. Might return lots of data, use with care.\030\001'))
_YARAPROCESSDUMPARGS.fields_by_name['size_limit'].has_options = True
_YARAPROCESSDUMPARGS.fields_by_name['size_limit']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\310\001\n\010ByteSize\022\271\001Maximum amount of raw process memory to dump. Applies to all requested processes together. The first memory block going over the limit will not be written anymore. 0 indicates no limit.\030\001'))
_YARAPROCESSDUMPARGS.fields_by_name['chunk_size'].has_options = True
_YARAPROCESSDUMPARGS.fields_by_name['chunk_size']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001<\0228The chunk size to use when reading large memory regions.\030\001'))
_YARAPROCESSDUMPARGS.fields_by_name['skip_special_regions'].has_options = True
_YARAPROCESSDUMPARGS.fields_by_name['skip_special_regions']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001b\022^Set this flag to avoid dumping device backed regions and guard pages. Applies to Windows only.\030\001'))
_YARAPROCESSDUMPARGS.fields_by_name['skip_mapped_files'].has_options = True
_YARAPROCESSDUMPARGS.fields_by_name['skip_mapped_files']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001G\022CSet this flag to avoid dumping mapped files. Applies to Linux only.\030\001'))
_YARAPROCESSDUMPARGS.fields_by_name['skip_shared_regions'].has_options = True
_YARAPROCESSDUMPARGS.fields_by_name['skip_shared_regions']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001N\022JSet this flag to avoid dumping shared regions. Applies to Linux and macOS.\030\001'))
_YARAPROCESSDUMPARGS.fields_by_name['skip_executable_regions'].has_options = True
_YARAPROCESSDUMPARGS.fields_by_name['skip_executable_regions']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001R\022NSet this flag to avoid dumping executable regions. Applies to Linux and macOS.\030\001'))
_YARAPROCESSDUMPARGS.fields_by_name['skip_readonly_regions'].has_options = True
_YARAPROCESSDUMPARGS.fields_by_name['skip_readonly_regions']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001P\022LSet this flag to avoid dumping readonly regions. Applies to Linux and macOS.\030\001'))
_YARAPROCESSDUMPINFORMATION.fields_by_name['process'].has_options = True
_YARAPROCESSDUMPINFORMATION.fields_by_name['process']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001&\022$The process that was dumped to disk.'))
_YARAPROCESSDUMPINFORMATION.fields_by_name['dump_files'].has_options = True
_YARAPROCESSDUMPINFORMATION.fields_by_name['dump_files']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001+\022)The files that contain the process image.'))
_YARAPROCESSDUMPINFORMATION.fields_by_name['error'].has_options = True
_YARAPROCESSDUMPINFORMATION.fields_by_name['error']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001Y\022WErrors while dumping will be reported here. Mostly used when exceeding the bytes limit.'))
_YARAPROCESSDUMPINFORMATION.fields_by_name['dump_time_us'].has_options = True
_YARAPROCESSDUMPINFORMATION.fields_by_name['dump_time_us']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0011\022/Time in microseconds taken to dump the process.'))
_YARAPROCESSDUMPRESPONSE.fields_by_name['dumped_processes'].has_options = True
_YARAPROCESSDUMPRESPONSE.fields_by_name['dumped_processes']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0015\0223Information about processes that we dumped to disk.'))
_YARAPROCESSDUMPRESPONSE.fields_by_name['errors'].has_options = True
_YARAPROCESSDUMPRESPONSE.fields_by_name['errors']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001-\022+A list of processes that we failed to dump.'))
_NETSTATARGS.fields_by_name['listening_only'].has_options = True
_NETSTATARGS.fields_by_name['listening_only']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0012\0220If set, only listening connections are returned.'))
_LISTNETWORKCONNECTIONSARGS.fields_by_name['listening_only'].has_options = True
_LISTNETWORKCONNECTIONSARGS.fields_by_name['listening_only']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0012\0220If set, only listening connections are returned.'))
# @@protoc_insertion_point(module_scope)
