# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: grr/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.proto import jobs_pb2 as grr_dot_proto_dot_jobs__pb2
from grr.proto import knowledge_base_pb2 as grr_dot_proto_dot_knowledge__base__pb2
from grr.proto import output_plugin_pb2 as grr_dot_proto_dot_output__plugin__pb2
from grr.proto import semantic_pb2 as grr_dot_proto_dot_semantic__pb2
from grr.proto import sysinfo_pb2 as grr_dot_proto_dot_sysinfo__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
  name='grr/proto/flows.proto',
  package='',
  syntax='proto2',
  serialized_pb=_b('\n\x15grr/proto/flows.proto\x1a\x14grr/proto/jobs.proto\x1a\x1egrr/proto/knowledge_base.proto\x1a\x1dgrr/proto/output_plugin.proto\x1a\x18grr/proto/semantic.proto\x1a\x17grr/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\"\xaa\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\x12\x15\n\ruser_notified\x18\x10 \x01(\x08\"?\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\x02\"\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\"\x8a\x03\n\x0bGUISettings\x12\x46\n\x04mode\x18\x01 \x01(\x0e\x32\x13.GUISettings.UIMode:\x05\x42\x41SICB\x1c\xe2\xfc\xe3\xc4\x01\x16\x12\x14User interface mode.\x12L\n\x0b\x63\x61nary_mode\x18\x03 \x01(\x08\x42\x37\xe2\xfc\xe3\xc4\x01\x31\x12/If true, show features that are being canaried.\x12\x64\n\rdocs_location\x18\x02 \x01(\x0e\x32\x19.GUISettings.DocsLocation:\x06REMOTEB*\xe2\xfc\xe3\xc4\x01$\x12\"Where to serve documentation from.\",\n\x06UIMode\x12\t\n\x05\x42\x41SIC\x10\x00\x12\x0c\n\x08\x41\x44VANCED\x10\x01\x12\t\n\x05\x44\x45\x42UG\x10\x02\"%\n\x0c\x44ocsLocation\x12\t\n\x05LOCAL\x10\x00\x12\n\n\x06REMOTE\x10\x01:*\xda\xfc\xe3\xc4\x01$\n\"User GUI settings and preferences.\"6\n\rHuntReference\x12%\n\x07hunt_id\x18\x01 \x01(\tB\x14\xe2\xfc\xe3\xc4\x01\x0e\x12\x0cThe hunt id.\"\xa1\x01\n\rFlowReference\x12?\n\x07\x66low_id\x18\x01 \x01(\tB.\xe2\xfc\xe3\xc4\x01(\x12&The session id of the referenced flow.\x12O\n\tclient_id\x18\x02 \x01(\tB<\xe2\xfc\xe3\xc4\x01\x36\n\tClientURN\x12)The client id the referenced flow ran on.\"\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\"\xbe\x11\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\x12\x9e\x01\n\x12notification_event\x18\x04 \x01(\tB\x81\x01\xe2\xfc\xe3\xc4\x01{\x12\x63\x41n event listener\'s event name. An event will be published to this listener once the flow finishes.\x18\x02\"\x12Notification Event\x12\x88\x01\n\x10notification_urn\x18\x0e \x01(\tBn\xe2\xfc\xe3\xc4\x01h\n\tSessionID\x12YThe Session ID for the event listener to receive a notification when this flow completes.\x18\x02\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\"\xda\x19\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\xa4\x01\n\x12notification_event\x18\x06 \x01(\tB\x87\x01\xe2\xfc\xe3\xc4\x01\x80\x01\x12hAn event name for an event listener. An event will be published to this listener once the flow finishes.\x18\x02\"\x12Notification Event\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.\"\xbf\x0f\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\xe5\x02\n\x15store_results_in_aff4\x18\x03 \x01(\x08:\x05\x66\x61lseB\xbe\x02\xe2\xfc\xe3\xc4\x01\xb7\x02\x12\xb2\x02Should the collected artifacts be written to the GRR AFF4 namespace based on the AFF4->RDF map. Collectors like GetFiles and GetRegistryKeys already write their results to the client space and only a small number of types are included in the map. Users should not enable this in the vast majority of cases.\x18\x01\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\"T\n\x13MultiUploadFileArgs\x12=\n\tpathspecs\x18\x01 \x03(\x0b\x32\t.PathSpecB\x1f\xe2\xfc\xe3\xc4\x01\x19\x12\x17The pathspecs to upload\"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.\"\xca\x02\n\x10\x43lientActionArgs\x12.\n\x06\x61\x63tion\x18\x01 \x01(\tB\x1e\xe2\xfc\xe3\xc4\x01\x18\x12\x16The action to execute.\x12\x63\n\x07save_to\x18\x02 \x01(\t:\x04/tmpBL\xe2\xfc\xe3\xc4\x01\x46\x12\x44If set, interpreted as a path to write pickle dumps of responses to.\x12V\n\tbreak_pdb\x18\x03 \x01(\x08:\x05\x66\x61lseB<\xe2\xfc\xe3\xc4\x01\x36\x12\x34If True, run pdb.set_trace when responses come back.\x12I\n\x0b\x61\x63tion_args\x18\x04 \x01(\x0c\x42\x34\xe2\xfc\xe3\xc4\x01.\x12\x18\x43lient action arguments.*\x12GetActionArgsClass\"\x83\x03\n\x14\x43onsoleDebugFlowArgs\x12*\n\x04\x66low\x18\x01 \x01(\tB\x1c\xe2\xfc\xe3\xc4\x01\x16\x12\x14The flow to execute.\x12i\n\x07save_to\x18\x02 \x01(\t:\x04/tmpBR\xe2\xfc\xe3\xc4\x01L\x12JIf not None, interpreted as an path to write pickle dumps of responses to.\x12V\n\tbreak_pdb\x18\x03 \x01(\x08:\x05\x66\x61lseB<\xe2\xfc\xe3\xc4\x01\x36\x12\x34If True, run pdb.set_trace when responses come back.\x12>\n\x0fprint_responses\x18\x04 \x01(\x08\x42%\xe2\xfc\xe3\xc4\x01\x1f\x12\x1dIf True, print each response.\x12<\n\tflow_args\x18\x05 \x01(\x0c\x42)\xe2\xfc\xe3\xc4\x01#\x12\x0f\x46low arguments.*\x10GetFlowArgsClass\"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.\"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).\"\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\"\x8e\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\x44\n\x14\x63ontents_regex_match\x18\x06 \x01(\x0b\x32&.FileFinderContentsRegexMatchCondition\x12H\n\x16\x63ontents_literal_match\x18\x07 \x01(\x0b\x32(.FileFinderContentsLiteralMatchCondition\"\x95\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\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\"\x95\x03\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\"\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\"\xe8\x05\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\"\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\"\xc3\x01\n\x1b\x46ileFinderStatActionOptions\x12\xa3\x01\n\rresolve_links\x18\x01 \x01(\x08:\x05\x66\x61lseB\x84\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.\x18\x01\"\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\"\xaa\n\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\x12\xf2\x02\n\x0cupload_token\x18\n \x01(\x0b\x32\x0c.UploadTokenB\xcd\x02\xe2\xfc\xe3\xc4\x01\xc6\x02\x12\xc1\x02\x41n upload token to use with the direct upload functionality. This token contains the hmac authenticated policy that determines for how long the client is allowed to upload files to the server. This is comparable to the policy document used by GCS: https://cloud.google.com/storage/docs/xml-api/post-object#policydocument \x18\x02\"\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.\"\xf1\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\x7f\n\ruploaded_file\x18\x04 \x01(\x0b\x32\r.UploadedFileBY\xe2\xfc\xe3\xc4\x01S\x12QAn uploaded file reference in case a file was collected via the ClientFileFinder.\"\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\"\x85\x01\n\x1f\x43ollectArtifactDependenciesArgs\x12\x62\n\rartifact_list\x18\x01 \x03(\tBK\xe2\xfc\xe3\xc4\x01\x45\n\x0c\x41rtifactName\x12\x35\x41 list of Artifact names to collect dependencies for.\"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.\"\xcc\x01\n\x15\x44umpProcessMemoryArgs\x12Q\n\x04pids\x18\x01 \x03(\x05\x42\x43\xe2\xfc\xe3\xc4\x01=\x12;Dump memory from process whose pid is included in the list.\x12`\n\x05pause\x18\x02 \x01(\x08\x42Q\xe2\xfc\xe3\xc4\x01K\x12IPause the process while the memory is being collected (use with caution).\"\xd0\x04\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.\x12V\n\x11\x63omponent_version\x18\x04 \x01(\t:\x07\x31.2.4.1B2\xe2\xfc\xe3\xc4\x01,\x12(Version of Chipsec component to be used.\x18\x01\"\xa1\x02\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.\x12V\n\x11\x63omponent_version\x18\x03 \x01(\t:\x07\x31.2.4.1B2\xe2\xfc\xe3\xc4\x01,\x12(Version of Chipsec component to be used.\x18\x01\"\xb4\x04\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.\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.\"\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.\"\x90\x05\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\"\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.')
  ,
  dependencies=[grr_dot_proto_dot_jobs__pb2.DESCRIPTOR,grr_dot_proto_dot_knowledge__base__pb2.DESCRIPTOR,grr_dot_proto_dot_output__plugin__pb2.DESCRIPTOR,grr_dot_proto_dot_semantic__pb2.DESCRIPTOR,grr_dot_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=1273,
  serialized_end=1336,
)
_sym_db.RegisterEnumDescriptor(_FLOWCONTEXT_STATE)

_GUISETTINGS_UIMODE = _descriptor.EnumDescriptor(
  name='UIMode',
  full_name='GUISettings.UIMode',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='BASIC', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='ADVANCED', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='DEBUG', index=2, number=2,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=2346,
  serialized_end=2390,
)
_sym_db.RegisterEnumDescriptor(_GUISETTINGS_UIMODE)

_GUISETTINGS_DOCSLOCATION = _descriptor.EnumDescriptor(
  name='DocsLocation',
  full_name='GUISettings.DocsLocation',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='LOCAL', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='REMOTE', index=1, number=1,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=2392,
  serialized_end=2429,
)
_sym_db.RegisterEnumDescriptor(_GUISETTINGS_DOCSLOCATION)

_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=2861,
  serialized_end=2926,
)
_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=10486,
  serialized_end=10521,
)
_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=14350,
  serialized_end=14598,
)
_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=10486,
  serialized_end=10521,
)
_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=10486,
  serialized_end=10521,
)
_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='CONTENTS_REGEX_MATCH', index=4, 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=5, 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=26997,
  serialized_end=27274,
)
_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=27577,
  serialized_end=27706,
)
_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=28240,
  serialized_end=28453,
)
_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=28915,
  serialized_end=28997,
)
_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=30167,
  serialized_end=30343,
)
_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=31149,
  serialized_end=31331,
)
_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=162,
  serialized_end=531,
)


_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=533,
  serialized_end=597,
)


_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=599,
  serialized_end=651,
)


_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=653,
  serialized_end=779,
)


_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),
    _descriptor.FieldDescriptor(
      name='user_notified', full_name='FlowContext.user_notified', index=14,
      number=16, 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=[
    _FLOWCONTEXT_STATE,
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=782,
  serialized_end=1336,
)


_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=1339,
  serialized_end=1877,
)


_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=1880,
  serialized_end=2076,
)


_GUISETTINGS = _descriptor.Descriptor(
  name='GUISettings',
  full_name='GUISettings',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='mode', full_name='GUISettings.mode', 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\026\022\024User interface mode.'))),
    _descriptor.FieldDescriptor(
      name='canary_mode', full_name='GUISettings.canary_mode', index=1,
      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\0011\022/If true, show features that are being canaried.'))),
    _descriptor.FieldDescriptor(
      name='docs_location', full_name='GUISettings.docs_location', index=2,
      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=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001$\022\"Where to serve documentation from.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _GUISETTINGS_UIMODE,
    _GUISETTINGS_DOCSLOCATION,
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('\332\374\343\304\001$\n\"User GUI settings and preferences.')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2079,
  serialized_end=2473,
)


_HUNTREFERENCE = _descriptor.Descriptor(
  name='HuntReference',
  full_name='HuntReference',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='hunt_id', full_name='HuntReference.hunt_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\016\022\014The hunt id.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2475,
  serialized_end=2529,
)


_FLOWREFERENCE = _descriptor.Descriptor(
  name='FlowReference',
  full_name='FlowReference',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='flow_id', full_name='FlowReference.flow_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 session id of the referenced flow.'))),
    _descriptor.FieldDescriptor(
      name='client_id', full_name='FlowReference.client_id', 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\0016\n\tClientURN\022)The client id the referenced flow ran on.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2532,
  serialized_end=2693,
)


_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=2696,
  serialized_end=2947,
)


_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='notification_event', full_name='FlowRunnerArgs.notification_event', 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=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001{\022cAn event listener\'s event name. An event will be published to this listener once the flow finishes.\030\002\"\022Notification Event'))),
    _descriptor.FieldDescriptor(
      name='notification_urn', full_name='FlowRunnerArgs.notification_urn', index=4,
      number=14, 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\001h\n\tSessionID\022YThe Session ID for the event listener to receive a notification when this flow completes.\030\002'))),
    _descriptor.FieldDescriptor(
      name='client_id', full_name='FlowRunnerArgs.client_id', index=5,
      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=6,
      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=7,
      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=8,
      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=9,
      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=10,
      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=11,
      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=12,
      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=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=_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=14,
      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=15,
      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=16,
      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=17,
      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=18,
      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=2950,
  serialized_end=5188,
)


_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='notification_event', full_name='HuntRunnerArgs.notification_event', index=4,
      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\001\200\001\022hAn event name for an event listener. An event will be published to this listener once the flow finishes.\030\002\"\022Notification Event'))),
    _descriptor.FieldDescriptor(
      name='queue', full_name='HuntRunnerArgs.queue', index=5,
      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=6,
      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=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\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=8,
      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=9,
      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=10,
      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=11,
      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=12,
      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=13,
      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=14,
      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=15,
      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=16,
      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=17,
      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=18,
      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=19,
      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=20,
      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=5191,
  serialized_end=8481,
)


_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=8483,
  serialized_end=8570,
)


_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=8573,
  serialized_end=8907,
)


_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=8910,
  serialized_end=9130,
)


_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=9133,
  serialized_end=9473,
)


_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=9476,
  serialized_end=10521,
)


_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=10523,
  serialized_end=10617,
)


_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=10620,
  serialized_end=10912,
)


_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=10914,
  serialized_end=10977,
)


_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=10979,
  serialized_end=11070,
)


_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=11073,
  serialized_end=11249,
)


_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=11252,
  serialized_end=11468,
)


_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=11471,
  serialized_end=11618,
)


_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=11620,
  serialized_end=11731,
)


_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=11733,
  serialized_end=11848,
)


_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=11851,
  serialized_end=12009,
)


_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=12012,
  serialized_end=12612,
)


_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='store_results_in_aff4', full_name='ArtifactCollectorFlowArgs.store_results_in_aff4', index=2,
      number=3, 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\267\002\022\262\002Should the collected artifacts be written to the GRR AFF4 namespace based on the AFF4->RDF map. Collectors like GetFiles and GetRegistryKeys already write their results to the client space and only a small number of types are included in the map. Users should not enable this in the vast majority of cases.\030\001'))),
    _descriptor.FieldDescriptor(
      name='split_output_by_artifact', full_name='ArtifactCollectorFlowArgs.split_output_by_artifact', 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\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=4,
      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=5,
      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=6,
      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=7,
      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=8,
      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=9,
      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=12615,
  serialized_end=14598,
)


_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=14601,
  serialized_end=14917,
)


_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=14920,
  serialized_end=15353,
)


_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=15355,
  serialized_end=15459,
)


_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=15461,
  serialized_end=15550,
)


_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=15553,
  serialized_end=15699,
)


_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=15701,
  serialized_end=15798,
)


_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=15800,
  serialized_end=15897,
)


_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=15899,
  serialized_end=15988,
)


_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=15991,
  serialized_end=16444,
)


_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=16447,
  serialized_end=16894,
)


_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=16896,
  serialized_end=16993,
)


_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=16996,
  serialized_end=17158,
)


_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=17161,
  serialized_end=17297,
)


_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=17299,
  serialized_end=17380,
)


_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=17382,
  serialized_end=17509,
)


_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=17511,
  serialized_end=17549,
)


_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=17552,
  serialized_end=18191,
)


_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=18194,
  serialized_end=18423,
)


_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=18426,
  serialized_end=18747,
)


_MULTIUPLOADFILEARGS = _descriptor.Descriptor(
  name='MultiUploadFileArgs',
  full_name='MultiUploadFileArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='pathspecs', full_name='MultiUploadFileArgs.pathspecs', 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\031\022\027The pathspecs to upload'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=18749,
  serialized_end=18833,
)


_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=18835,
  serialized_end=18916,
)


_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=18919,
  serialized_end=19371,
)


_CLIENTACTIONARGS = _descriptor.Descriptor(
  name='ClientActionArgs',
  full_name='ClientActionArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='action', full_name='ClientActionArgs.action', 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\030\022\026The action to execute.'))),
    _descriptor.FieldDescriptor(
      name='save_to', full_name='ClientActionArgs.save_to', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=True, default_value=_b("/tmp").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\022DIf set, interpreted as a path to write pickle dumps of responses to.'))),
    _descriptor.FieldDescriptor(
      name='break_pdb', full_name='ClientActionArgs.break_pdb', index=2,
      number=3, 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\0016\0224If True, run pdb.set_trace when responses come back.'))),
    _descriptor.FieldDescriptor(
      name='action_args', full_name='ClientActionArgs.action_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\030Client action arguments.*\022GetActionArgsClass'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=19374,
  serialized_end=19704,
)


_CONSOLEDEBUGFLOWARGS = _descriptor.Descriptor(
  name='ConsoleDebugFlowArgs',
  full_name='ConsoleDebugFlowArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='flow', full_name='ConsoleDebugFlowArgs.flow', 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\026\022\024The flow to execute.'))),
    _descriptor.FieldDescriptor(
      name='save_to', full_name='ConsoleDebugFlowArgs.save_to', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=True, default_value=_b("/tmp").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\001L\022JIf not None, interpreted as an path to write pickle dumps of responses to.'))),
    _descriptor.FieldDescriptor(
      name='break_pdb', full_name='ConsoleDebugFlowArgs.break_pdb', index=2,
      number=3, 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\0016\0224If True, run pdb.set_trace when responses come back.'))),
    _descriptor.FieldDescriptor(
      name='print_responses', full_name='ConsoleDebugFlowArgs.print_responses', index=3,
      number=4, 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\037\022\035If True, print each response.'))),
    _descriptor.FieldDescriptor(
      name='flow_args', full_name='ConsoleDebugFlowArgs.flow_args', index=4,
      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#\022\017Flow arguments.*\020GetFlowArgsClass'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=19707,
  serialized_end=20094,
)


_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=20096,
  serialized_end=20203,
)


_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=20206,
  serialized_end=21017,
)


_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=21019,
  serialized_end=21130,
)


_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=21133,
  serialized_end=21318,
)


_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=21321,
  serialized_end=21505,
)


_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=21508,
  serialized_end=21844,
)


_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=21847,
  serialized_end=22025,
)


_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=22028,
  serialized_end=22570,
)


_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=22573,
  serialized_end=23047,
)


_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=23050,
  serialized_end=23225,
)


_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=23228,
  serialized_end=23617,
)


_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=23620,
  serialized_end=23810,
)


_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=23813,
  serialized_end=24099,
)


_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=24102,
  serialized_end=24378,
)


_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=24381,
  serialized_end=24682,
)


_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=24685,
  serialized_end=24858,
)


_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=24861,
  serialized_end=25495,
)


_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=25498,
  serialized_end=26513,
)


_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='contents_regex_match', full_name='FileFinderCondition.contents_regex_match', index=5,
      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=6,
      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=26516,
  serialized_end=27298,
)


_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'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _FILEFINDERHASHACTIONOPTIONS_OVERSIZEDFILEPOLICY,
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=27301,
  serialized_end=27706,
)


_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'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _FILEFINDERDOWNLOADACTIONOPTIONS_OVERSIZEDFILEPOLICY,
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=27709,
  serialized_end=28453,
)


_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.\030\001'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=28456,
  serialized_end=28651,
)


_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=28654,
  serialized_end=29018,
)


_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'))),
    _descriptor.FieldDescriptor(
      name='upload_token', full_name='FileFinderArgs.upload_token', index=7,
      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\306\002\022\301\002An upload token to use with the direct upload functionality. This token contains the hmac authenticated policy that determines for how long the client is allowed to upload files to the server. This is comparable to the policy document used by GCS: https://cloud.google.com/storage/docs/xml-api/post-object#policydocument \030\002'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _FILEFINDERARGS_XDEV,
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=29021,
  serialized_end=30343,
)


_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='uploaded_file', full_name='FileFinderResult.uploaded_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\001S\022QAn uploaded file reference in case a file was collected via the ClientFileFinder.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=30346,
  serialized_end=30587,
)


_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=30590,
  serialized_end=30820,
)


_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=30823,
  serialized_end=31355,
)


_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=31358,
  serialized_end=31612,
)


_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=31615,
  serialized_end=31904,
)


_COLLECTARTIFACTDEPENDENCIESARGS = _descriptor.Descriptor(
  name='CollectArtifactDependenciesArgs',
  full_name='CollectArtifactDependenciesArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='artifact_list', full_name='CollectArtifactDependenciesArgs.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\001E\n\014ArtifactName\0225A list of Artifact names to collect dependencies for.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=31907,
  serialized_end=32040,
)


_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=32042,
  serialized_end=32161,
)


_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=32164,
  serialized_end=32438,
)


_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=32441,
  serialized_end=32586,
)


_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=32589,
  serialized_end=32751,
)


_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=32754,
  serialized_end=33163,
)


_DUMPPROCESSMEMORYARGS = _descriptor.Descriptor(
  name='DumpProcessMemoryArgs',
  full_name='DumpProcessMemoryArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='pids', full_name='DumpProcessMemoryArgs.pids', index=0,
      number=1, type=5, cpp_type=1, 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;Dump memory from process whose pid is included in the list.'))),
    _descriptor.FieldDescriptor(
      name='pause', full_name='DumpProcessMemoryArgs.pause', 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\001K\022IPause the process while the memory is being collected (use with caution).'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=33166,
  serialized_end=33370,
)


_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.'))),
    _descriptor.FieldDescriptor(
      name='component_version', full_name='DumpFlashImageArgs.component_version', index=3,
      number=4, type=9, cpp_type=9, label=1,
      has_default_value=True, default_value=_b("1.2.4.1").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(Version of Chipsec component to be used.\030\001'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=33373,
  serialized_end=33965,
)


_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.'))),
    _descriptor.FieldDescriptor(
      name='component_version', full_name='DumpACPITableArgs.component_version', index=2,
      number=3, type=9, cpp_type=9, label=1,
      has_default_value=True, default_value=_b("1.2.4.1").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(Version of Chipsec component to be used.\030\001'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=33968,
  serialized_end=34257,
)


_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='ignore_grr_process', full_name='YaraProcessScanRequest.ignore_grr_process', index=3,
      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=4,
      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.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=34260,
  serialized_end=34824,
)


_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=34827,
  serialized_end=34985,
)


_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=34988,
  serialized_end=35174,
)


_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=35177,
  serialized_end=35338,
)


_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=35341,
  serialized_end=35588,
)


_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=35591,
  serialized_end=35765,
)


_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=35768,
  serialized_end=36073,
)


_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'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=36076,
  serialized_end=36732,
)


_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=36735,
  serialized_end=37109,
)


_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=37112,
  serialized_end=37341,
)

_CLOUDMETADATAREQUEST.fields_by_name['headers'].message_type = grr_dot_proto_dot_jobs__pb2._DICT
_CLOUDMETADATAREQUEST.fields_by_name['instance_type'].enum_type = grr_dot_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_dot_proto_dot_jobs__pb2._CLOUDINSTANCE_INSTANCETYPE
_FLOWCONTEXT.fields_by_name['client_resources'].message_type = grr_dot_proto_dot_jobs__pb2._CLIENTRESOURCES
_FLOWCONTEXT.fields_by_name['output_plugins_states'].message_type = grr_dot_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_dot_proto_dot_jobs__pb2._CLIENTRESOURCES
_HUNTCONTEXT.fields_by_name['usage_stats'].message_type = grr_dot_proto_dot_jobs__pb2._CLIENTRESOURCESSTATS
_GUISETTINGS.fields_by_name['mode'].enum_type = _GUISETTINGS_UIMODE
_GUISETTINGS.fields_by_name['docs_location'].enum_type = _GUISETTINGS_DOCSLOCATION
_GUISETTINGS_UIMODE.containing_type = _GUISETTINGS
_GUISETTINGS_DOCSLOCATION.containing_type = _GUISETTINGS
_FLOWLIKEOBJECTREFERENCE.fields_by_name['object_type'].enum_type = _FLOWLIKEOBJECTREFERENCE_OBJECTTYPE
_FLOWLIKEOBJECTREFERENCE.fields_by_name['flow_reference'].message_type = _FLOWREFERENCE
_FLOWLIKEOBJECTREFERENCE.fields_by_name['hunt_reference'].message_type = _HUNTREFERENCE
_FLOWLIKEOBJECTREFERENCE_OBJECTTYPE.containing_type = _FLOWLIKEOBJECTREFERENCE
_FLOWRUNNERARGS.fields_by_name['priority'].enum_type = grr_dot_proto_dot_jobs__pb2._GRRMESSAGE_PRIORITY
_FLOWRUNNERARGS.fields_by_name['request_state'].message_type = grr_dot_proto_dot_jobs__pb2._REQUESTSTATE
_FLOWRUNNERARGS.fields_by_name['output_plugins'].message_type = grr_dot_proto_dot_output__plugin__pb2._OUTPUTPLUGINDESCRIPTOR
_FLOWRUNNERARGS.fields_by_name['original_flow'].message_type = _FLOWREFERENCE
_HUNTRUNNERARGS.fields_by_name['client_rule_set'].message_type = grr_dot_proto_dot_jobs__pb2._FOREMANCLIENTRULESET
_HUNTRUNNERARGS.fields_by_name['priority'].enum_type = grr_dot_proto_dot_jobs__pb2._GRRMESSAGE_PRIORITY
_HUNTRUNNERARGS.fields_by_name['output_plugins'].message_type = grr_dot_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_dot_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_dot_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_dot_proto_dot_jobs__pb2._CERTIFICATE
_DELETEGRRTEMPFILESARGS.fields_by_name['pathspec'].message_type = grr_dot_proto_dot_jobs__pb2._PATHSPEC
_UPDATECONFIGURATIONARGS.fields_by_name['config'].message_type = grr_dot_proto_dot_jobs__pb2._DICT
_EXECUTEPYTHONHACKARGS.fields_by_name['py_args'].message_type = grr_dot_proto_dot_jobs__pb2._DICT
_ARTIFACTCOLLECTORFLOWARGS.fields_by_name['knowledge_base'].message_type = grr_dot_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_dot_proto_dot_jobs__pb2._PATHSPEC
_ARTIFACTFILESDOWNLOADERRESULT.fields_by_name['downloaded_file'].message_type = grr_dot_proto_dot_jobs__pb2._STATENTRY
_FINGERPRINTFILEARGS.fields_by_name['pathspec'].message_type = grr_dot_proto_dot_jobs__pb2._PATHSPEC
_FINGERPRINTFILERESULT.fields_by_name['hash_entry'].message_type = grr_dot_proto_dot_jobs__pb2._HASH
_SOPHOSCOLLECTORARGS.fields_by_name['pathtype'].enum_type = grr_dot_proto_dot_jobs__pb2._PATHSPEC_PATHTYPE
_FILECOLLECTORARGS.fields_by_name['findspecs'].message_type = grr_dot_proto_dot_jobs__pb2._FINDSPEC
_FIREFOXHISTORYARGS.fields_by_name['pathtype'].enum_type = grr_dot_proto_dot_jobs__pb2._PATHSPEC_PATHTYPE
_CACHEGREPARGS.fields_by_name['pathtype'].enum_type = grr_dot_proto_dot_jobs__pb2._PATHSPEC_PATHTYPE
_LISTDIRECTORYARGS.fields_by_name['pathspec'].message_type = grr_dot_proto_dot_jobs__pb2._PATHSPEC
_RECURSIVELISTDIRECTORYARGS.fields_by_name['pathspec'].message_type = grr_dot_proto_dot_jobs__pb2._PATHSPEC
_MAKENEWAFF4SPARSEIMAGEARGS.fields_by_name['pathspec'].message_type = grr_dot_proto_dot_jobs__pb2._PATHSPEC
_GREPARGS.fields_by_name['request'].message_type = grr_dot_proto_dot_jobs__pb2._GREPSPEC
_GLOBARGS.fields_by_name['pathtype'].enum_type = grr_dot_proto_dot_jobs__pb2._PATHSPEC_PATHTYPE
_GLOBARGS.fields_by_name['root_path'].message_type = grr_dot_proto_dot_jobs__pb2._PATHSPEC
_FINDFILESARGS.fields_by_name['findspec'].message_type = grr_dot_proto_dot_jobs__pb2._FINDSPEC
_GETFILEARGS.fields_by_name['pathspec'].message_type = grr_dot_proto_dot_jobs__pb2._PATHSPEC
_MULTIUPLOADFILEARGS.fields_by_name['pathspecs'].message_type = grr_dot_proto_dot_jobs__pb2._PATHSPEC
_CHROMEHISTORYARGS.fields_by_name['pathtype'].enum_type = grr_dot_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
_PLISTVALUEFILTERARGS.fields_by_name['request'].message_type = grr_dot_proto_dot_jobs__pb2._PLISTREQUEST
_ENUMERATESERVICESARGS.fields_by_name['pathtype'].enum_type = grr_dot_proto_dot_jobs__pb2._PATHSPEC_PATHTYPE
_CHROMEPLUGINSARGS.fields_by_name['pathtype'].enum_type = grr_dot_proto_dot_jobs__pb2._PATHSPEC_PATHTYPE
_MULTIGETFILEARGS.fields_by_name['pathspecs'].message_type = grr_dot_proto_dot_jobs__pb2._PATHSPEC
_LISTPROCESSESARGS.fields_by_name['connection_states'].enum_type = grr_dot_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['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_dot_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.fields_by_name['upload_token'].message_type = grr_dot_proto_dot_jobs__pb2._UPLOADTOKEN
_FILEFINDERARGS_XDEV.containing_type = _FILEFINDERARGS
_FILEFINDERRESULT.fields_by_name['stat_entry'].message_type = grr_dot_proto_dot_jobs__pb2._STATENTRY
_FILEFINDERRESULT.fields_by_name['matches'].message_type = grr_dot_proto_dot_jobs__pb2._BUFFERREFERENCE
_FILEFINDERRESULT.fields_by_name['hash_entry'].message_type = grr_dot_proto_dot_jobs__pb2._HASH
_FILEFINDERRESULT.fields_by_name['uploaded_file'].message_type = grr_dot_proto_dot_jobs__pb2._UPLOADEDFILE
_FILEREFERENCE.fields_by_name['pathspecs'].message_type = grr_dot_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_dot_proto_dot_jobs__pb2._PATHSPEC_PATHTYPE
_YARAPROCESSERROR.fields_by_name['process'].message_type = grr_dot_proto_dot_sysinfo__pb2._PROCESS
_YARAMATCH.fields_by_name['string_matches'].message_type = _YARASTRINGMATCH
_YARAPROCESSSCANMATCH.fields_by_name['process'].message_type = grr_dot_proto_dot_sysinfo__pb2._PROCESS
_YARAPROCESSSCANMATCH.fields_by_name['match'].message_type = _YARAMATCH
_YARAPROCESSSCANMISS.fields_by_name['process'].message_type = grr_dot_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_dot_proto_dot_sysinfo__pb2._PROCESS
_YARAPROCESSDUMPINFORMATION.fields_by_name['dump_files'].message_type = grr_dot_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['GUISettings'] = _GUISETTINGS
DESCRIPTOR.message_types_by_name['HuntReference'] = _HUNTREFERENCE
DESCRIPTOR.message_types_by_name['FlowReference'] = _FLOWREFERENCE
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['MultiUploadFileArgs'] = _MULTIUPLOADFILEARGS
DESCRIPTOR.message_types_by_name['GetMBRArgs'] = _GETMBRARGS
DESCRIPTOR.message_types_by_name['ChromeHistoryArgs'] = _CHROMEHISTORYARGS
DESCRIPTOR.message_types_by_name['ClientActionArgs'] = _CLIENTACTIONARGS
DESCRIPTOR.message_types_by_name['ConsoleDebugFlowArgs'] = _CONSOLEDEBUGFLOWARGS
DESCRIPTOR.message_types_by_name['CreateGenericHuntFlowArgs'] = _CREATEGENERICHUNTFLOWARGS
DESCRIPTOR.message_types_by_name['CreateCronJobFlowArgs'] = _CREATECRONJOBFLOWARGS
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['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['CollectArtifactDependenciesArgs'] = _COLLECTARTIFACTDEPENDENCIESARGS
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['DumpProcessMemoryArgs'] = _DUMPPROCESSMEMORYARGS
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
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

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

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

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

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

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

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

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

GUISettings = _reflection.GeneratedProtocolMessageType('GUISettings', (_message.Message,), dict(
  DESCRIPTOR = _GUISETTINGS,
  __module__ = 'grr.proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:GUISettings)
  ))
_sym_db.RegisterMessage(GUISettings)

HuntReference = _reflection.GeneratedProtocolMessageType('HuntReference', (_message.Message,), dict(
  DESCRIPTOR = _HUNTREFERENCE,
  __module__ = 'grr.proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:HuntReference)
  ))
_sym_db.RegisterMessage(HuntReference)

FlowReference = _reflection.GeneratedProtocolMessageType('FlowReference', (_message.Message,), dict(
  DESCRIPTOR = _FLOWREFERENCE,
  __module__ = 'grr.proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:FlowReference)
  ))
_sym_db.RegisterMessage(FlowReference)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

MultiUploadFileArgs = _reflection.GeneratedProtocolMessageType('MultiUploadFileArgs', (_message.Message,), dict(
  DESCRIPTOR = _MULTIUPLOADFILEARGS,
  __module__ = 'grr.proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:MultiUploadFileArgs)
  ))
_sym_db.RegisterMessage(MultiUploadFileArgs)

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

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

ClientActionArgs = _reflection.GeneratedProtocolMessageType('ClientActionArgs', (_message.Message,), dict(
  DESCRIPTOR = _CLIENTACTIONARGS,
  __module__ = 'grr.proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:ClientActionArgs)
  ))
_sym_db.RegisterMessage(ClientActionArgs)

ConsoleDebugFlowArgs = _reflection.GeneratedProtocolMessageType('ConsoleDebugFlowArgs', (_message.Message,), dict(
  DESCRIPTOR = _CONSOLEDEBUGFLOWARGS,
  __module__ = 'grr.proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:ConsoleDebugFlowArgs)
  ))
_sym_db.RegisterMessage(ConsoleDebugFlowArgs)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

CollectArtifactDependenciesArgs = _reflection.GeneratedProtocolMessageType('CollectArtifactDependenciesArgs', (_message.Message,), dict(
  DESCRIPTOR = _COLLECTARTIFACTDEPENDENCIESARGS,
  __module__ = 'grr.proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:CollectArtifactDependenciesArgs)
  ))
_sym_db.RegisterMessage(CollectArtifactDependenciesArgs)

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

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

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

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

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

DumpProcessMemoryArgs = _reflection.GeneratedProtocolMessageType('DumpProcessMemoryArgs', (_message.Message,), dict(
  DESCRIPTOR = _DUMPPROCESSMEMORYARGS,
  __module__ = 'grr.proto.flows_pb2'
  # @@protoc_insertion_point(class_scope:DumpProcessMemoryArgs)
  ))
_sym_db.RegisterMessage(DumpProcessMemoryArgs)

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

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

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

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

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

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

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

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

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

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

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

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


_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?'))
_GUISETTINGS.fields_by_name['mode'].has_options = True
_GUISETTINGS.fields_by_name['mode']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\026\022\024User interface mode.'))
_GUISETTINGS.fields_by_name['canary_mode'].has_options = True
_GUISETTINGS.fields_by_name['canary_mode']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0011\022/If true, show features that are being canaried.'))
_GUISETTINGS.fields_by_name['docs_location'].has_options = True
_GUISETTINGS.fields_by_name['docs_location']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001$\022\"Where to serve documentation from.'))
_GUISETTINGS.has_options = True
_GUISETTINGS._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('\332\374\343\304\001$\n\"User GUI settings and preferences.'))
_HUNTREFERENCE.fields_by_name['hunt_id'].has_options = True
_HUNTREFERENCE.fields_by_name['hunt_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\016\022\014The hunt id.'))
_FLOWREFERENCE.fields_by_name['flow_id'].has_options = True
_FLOWREFERENCE.fields_by_name['flow_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001(\022&The session id of the referenced flow.'))
_FLOWREFERENCE.fields_by_name['client_id'].has_options = True
_FLOWREFERENCE.fields_by_name['client_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0016\n\tClientURN\022)The client id the referenced flow ran on.'))
_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['notification_event'].has_options = True
_FLOWRUNNERARGS.fields_by_name['notification_event']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001{\022cAn event listener\'s event name. An event will be published to this listener once the flow finishes.\030\002\"\022Notification Event'))
_FLOWRUNNERARGS.fields_by_name['notification_urn'].has_options = True
_FLOWRUNNERARGS.fields_by_name['notification_urn']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001h\n\tSessionID\022YThe Session ID for the event listener to receive a notification when this flow completes.\030\002'))
_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['notification_event'].has_options = True
_HUNTRUNNERARGS.fields_by_name['notification_event']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\200\001\022hAn event name for an event listener. An event will be published to this listener once the flow finishes.\030\002\"\022Notification Event'))
_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['store_results_in_aff4'].has_options = True
_ARTIFACTCOLLECTORFLOWARGS.fields_by_name['store_results_in_aff4']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\267\002\022\262\002Should the collected artifacts be written to the GRR AFF4 namespace based on the AFF4->RDF map. Collectors like GetFiles and GetRegistryKeys already write their results to the client space and only a small number of types are included in the map. Users should not enable this in the vast majority of cases.\030\001'))
_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'))
_MULTIUPLOADFILEARGS.fields_by_name['pathspecs'].has_options = True
_MULTIUPLOADFILEARGS.fields_by_name['pathspecs']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\031\022\027The pathspecs to upload'))
_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.'))
_CLIENTACTIONARGS.fields_by_name['action'].has_options = True
_CLIENTACTIONARGS.fields_by_name['action']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\030\022\026The action to execute.'))
_CLIENTACTIONARGS.fields_by_name['save_to'].has_options = True
_CLIENTACTIONARGS.fields_by_name['save_to']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001F\022DIf set, interpreted as a path to write pickle dumps of responses to.'))
_CLIENTACTIONARGS.fields_by_name['break_pdb'].has_options = True
_CLIENTACTIONARGS.fields_by_name['break_pdb']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0016\0224If True, run pdb.set_trace when responses come back.'))
_CLIENTACTIONARGS.fields_by_name['action_args'].has_options = True
_CLIENTACTIONARGS.fields_by_name['action_args']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001.\022\030Client action arguments.*\022GetActionArgsClass'))
_CONSOLEDEBUGFLOWARGS.fields_by_name['flow'].has_options = True
_CONSOLEDEBUGFLOWARGS.fields_by_name['flow']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\026\022\024The flow to execute.'))
_CONSOLEDEBUGFLOWARGS.fields_by_name['save_to'].has_options = True
_CONSOLEDEBUGFLOWARGS.fields_by_name['save_to']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001L\022JIf not None, interpreted as an path to write pickle dumps of responses to.'))
_CONSOLEDEBUGFLOWARGS.fields_by_name['break_pdb'].has_options = True
_CONSOLEDEBUGFLOWARGS.fields_by_name['break_pdb']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0016\0224If True, run pdb.set_trace when responses come back.'))
_CONSOLEDEBUGFLOWARGS.fields_by_name['print_responses'].has_options = True
_CONSOLEDEBUGFLOWARGS.fields_by_name['print_responses']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\037\022\035If True, print each response.'))
_CONSOLEDEBUGFLOWARGS.fields_by_name['flow_args'].has_options = True
_CONSOLEDEBUGFLOWARGS.fields_by_name['flow_args']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001#\022\017Flow arguments.*\020GetFlowArgsClass'))
_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.'))
_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["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'))
_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'))
_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.\030\001'))
_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'))
_FILEFINDERARGS.fields_by_name['upload_token'].has_options = True
_FILEFINDERARGS.fields_by_name['upload_token']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\306\002\022\301\002An upload token to use with the direct upload functionality. This token contains the hmac authenticated policy that determines for how long the client is allowed to upload files to the server. This is comparable to the policy document used by GCS: https://cloud.google.com/storage/docs/xml-api/post-object#policydocument \030\002'))
_FILEFINDERRESULT.fields_by_name['uploaded_file'].has_options = True
_FILEFINDERRESULT.fields_by_name['uploaded_file']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001S\022QAn uploaded file reference in case a file was collected via the ClientFileFinder.'))
_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'))
_COLLECTARTIFACTDEPENDENCIESARGS.fields_by_name['artifact_list'].has_options = True
_COLLECTARTIFACTDEPENDENCIESARGS.fields_by_name['artifact_list']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001E\n\014ArtifactName\0225A list of Artifact names to collect dependencies for.'))
_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.'))
_DUMPPROCESSMEMORYARGS.fields_by_name['pids'].has_options = True
_DUMPPROCESSMEMORYARGS.fields_by_name['pids']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001=\022;Dump memory from process whose pid is included in the list.'))
_DUMPPROCESSMEMORYARGS.fields_by_name['pause'].has_options = True
_DUMPPROCESSMEMORYARGS.fields_by_name['pause']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001K\022IPause the process while the memory is being collected (use with caution).'))
_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.'))
_DUMPFLASHIMAGEARGS.fields_by_name['component_version'].has_options = True
_DUMPFLASHIMAGEARGS.fields_by_name['component_version']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001,\022(Version of Chipsec component to be used.\030\001'))
_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.'))
_DUMPACPITABLEARGS.fields_by_name['component_version'].has_options = True
_DUMPACPITABLEARGS.fields_by_name['component_version']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001,\022(Version of Chipsec component to be used.\030\001'))
_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['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.'))
_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'))
_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.'))
# @@protoc_insertion_point(module_scope)
