Constant FILE_DESCRIPTOR_SET
Constant FILE_DESCRIPTOR_SET
Generated from cargo doc --no-deps -p nemo-relay-builtins -p nemo-relay-diagnostics -p nemo-relay-logging -p nemo-relay-plugin-host -p nemo-relay-codecs -p nemo-relay -p nemo-relay-runtime -p nemo-relay-model-pricing -p nemo-relay-resource-metrics -p nemo-relay-observability -p nemo-relay-adaptive -p nemo-relay-pii-redaction -p nemo-relay-ffi -p nemo-relay-types -p nemo-relay-plugin -p nemo-relay-worker-proto -p nemo-relay-worker.
pub const FILE_DESCRIPTOR_SET: &[u8] = b"\n\x94\xcd\x04\n google/protobuf/descriptor.proto\x12\x0fgoogle.protobuf\"[\n\x11FileDescriptorSet\x128\n\x04file\x18\x01 \x03(\x0b2$.google.protobuf.FileDescriptorProtoR\x04file*\x0c\x08\x80\xec\xca\xff\x01\x10\x81\xec\xca\xff\x01\"\xc5\x05\n\x13FileDescriptorProto\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n\x07package\x18\x02 \x01(\tR\x07package\x12\x1e\n\ndependency\x18\x03 \x03(\tR\ndependency\x12+\n\x11public_dependency\x18\n \x03(\x05R\x10publicDependency\x12\'\n\x0fweak_dependency\x18\x0b \x03(\x05R\x0eweakDependency\x12+\n\x11option_dependency\x18\x0f \x03(\tR\x10optionDependency\x12C\n\x0cmessage_type\x18\x04 \x03(\x0b2 .google.protobuf.DescriptorProtoR\x0bmessageType\x12A\n\tenum_type\x18\x05 \x03(\x0b2$.google.protobuf.EnumDescriptorProtoR\x08enumType\x12A\n\x07service\x18\x06 \x03(\x0b2\'.google.protobuf.ServiceDescriptorProtoR\x07service\x12C\n\textension\x18\x07 \x03(\x0b2%.google.protobuf.FieldDescriptorProtoR\textension\x126\n\x07options\x18\x08 \x01(\x0b2\x1c.google.protobuf.FileOptionsR\x07options\x12I\n\x10source_code_info\x18\t \x01(\x0b2\x1f.google.protobuf.SourceCodeInfoR\x0esourceCodeInfo\x12\x16\n\x06syntax\x18\x0c \x01(\tR\x06syntax\x122\n\x07edition\x18\x0e \x01(\x0e2\x18.google.protobuf.EditionR\x07edition\"\xfc\x06\n\x0fDescriptorProto\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12;\n\x05field\x18\x02 \x03(\x0b2%.google.protobuf.FieldDescriptorProtoR\x05field\x12C\n\textension\x18\x06 \x03(\x0b2%.google.protobuf.FieldDescriptorProtoR\textension\x12A\n\x0bnested_type\x18\x03 \x03(\x0b2 .google.protobuf.DescriptorProtoR\nnestedType\x12A\n\tenum_type\x18\x04 \x03(\x0b2$.google.protobuf.EnumDescriptorProtoR\x08enumType\x12X\n\x0fextension_range\x18\x05 \x03(\x0b2/.google.protobuf.DescriptorProto.ExtensionRangeR\x0eextensionRange\x12D\n\noneof_decl\x18\x08 \x03(\x0b2%.google.protobuf.OneofDescriptorProtoR\toneofDecl\x129\n\x07options\x18\x07 \x01(\x0b2\x1f.google.protobuf.MessageOptionsR\x07options\x12U\n\x0ereserved_range\x18\t \x03(\x0b2..google.protobuf.DescriptorProto.ReservedRangeR\rreservedRange\x12#\n\rreserved_name\x18\n \x03(\tR\x0creservedName\x12A\n\nvisibility\x18\x0b \x01(\x0e2!.google.protobuf.SymbolVisibilityR\nvisibility\x1az\n\x0eExtensionRange\x12\x14\n\x05start\x18\x01 \x01(\x05R\x05start\x12\x10\n\x03end\x18\x02 \x01(\x05R\x03end\x12@\n\x07options\x18\x03 \x01(\x0b2&.google.protobuf.ExtensionRangeOptionsR\x07options\x1a7\n\rReservedRange\x12\x14\n\x05start\x18\x01 \x01(\x05R\x05start\x12\x10\n\x03end\x18\x02 \x01(\x05R\x03end\"\xcc\x04\n\x15ExtensionRangeOptions\x12X\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b2$.google.protobuf.UninterpretedOptionR\x13uninterpretedOption\x12Y\n\x0bdeclaration\x18\x02 \x03(\x0b22.google.protobuf.ExtensionRangeOptions.DeclarationB\x03\x88\x01\x02R\x0bdeclaration\x127\n\x08features\x182 \x01(\x0b2\x1b.google.protobuf.FeatureSetR\x08features\x12m\n\x0cverification\x18\x03 \x01(\x0e28.google.protobuf.ExtensionRangeOptions.VerificationState:\nUNVERIFIEDB\x03\x88\x01\x02R\x0cverification\x1a\x94\x01\n\x0bDeclaration\x12\x16\n\x06number\x18\x01 \x01(\x05R\x06number\x12\x1b\n\tfull_name\x18\x02 \x01(\tR\x08fullName\x12\x12\n\x04type\x18\x03 \x01(\tR\x04type\x12\x1a\n\x08reserved\x18\x05 \x01(\x08R\x08reserved\x12\x1a\n\x08repeated\x18\x06 \x01(\x08R\x08repeatedJ\x04\x08\x04\x10\x05\"4\n\x11VerificationState\x12\x0f\n\x0bDECLARATION\x10\x00\x12\x0e\n\nUNVERIFIED\x10\x01*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\xc1\x06\n\x14FieldDescriptorProto\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x16\n\x06number\x18\x03 \x01(\x05R\x06number\x12A\n\x05label\x18\x04 \x01(\x0e2+.google.protobuf.FieldDescriptorProto.LabelR\x05label\x12>\n\x04type\x18\x05 \x01(\x0e2*.google.protobuf.FieldDescriptorProto.TypeR\x04type\x12\x1b\n\ttype_name\x18\x06 \x01(\tR\x08typeName\x12\x1a\n\x08extendee\x18\x02 \x01(\tR\x08extendee\x12#\n\rdefault_value\x18\x07 \x01(\tR\x0cdefaultValue\x12\x1f\n\x0boneof_index\x18\t \x01(\x05R\noneofIndex\x12\x1b\n\tjson_name\x18\n \x01(\tR\x08jsonName\x127\n\x07options\x18\x08 \x01(\x0b2\x1d.google.protobuf.FieldOptionsR\x07options\x12\'\n\x0fproto3_optional\x18\x11 \x01(\x08R\x0eproto3Optional\"\xb6\x02\n\x04Type\x12\x0f\n\x0bTYPE_DOUBLE\x10\x01\x12\x0e\n\nTYPE_FLOAT\x10\x02\x12\x0e\n\nTYPE_INT64\x10\x03\x12\x0f\n\x0bTYPE_UINT64\x10\x04\x12\x0e\n\nTYPE_INT32\x10\x05\x12\x10\n\x0cTYPE_FIXED64\x10\x06\x12\x10\n\x0cTYPE_FIXED32\x10\x07\x12\r\n\tTYPE_BOOL\x10\x08\x12\x0f\n\x0bTYPE_STRING\x10\t\x12\x0e\n\nTYPE_GROUP\x10\n\x12\x10\n\x0cTYPE_MESSAGE\x10\x0b\x12\x0e\n\nTYPE_BYTES\x10\x0c\x12\x0f\n\x0bTYPE_UINT32\x10\r\x12\r\n\tTYPE_ENUM\x10\x0e\x12\x11\n\rTYPE_SFIXED32\x10\x0f\x12\x11\n\rTYPE_SFIXED64\x10\x10\x12\x0f\n\x0bTYPE_SINT32\x10\x11\x12\x0f\n\x0bTYPE_SINT64\x10\x12\"C\n\x05Label\x12\x12\n\x0eLABEL_OPTIONAL\x10\x01\x12\x12\n\x0eLABEL_REPEATED\x10\x03\x12\x12\n\x0eLABEL_REQUIRED\x10\x02\"c\n\x14OneofDescriptorProto\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x127\n\x07options\x18\x02 \x01(\x0b2\x1d.google.protobuf.OneofOptionsR\x07options\"\xa6\x03\n\x13EnumDescriptorProto\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12?\n\x05value\x18\x02 \x03(\x0b2).google.protobuf.EnumValueDescriptorProtoR\x05value\x126\n\x07options\x18\x03 \x01(\x0b2\x1c.google.protobuf.EnumOptionsR\x07options\x12]\n\x0ereserved_range\x18\x04 \x03(\x0b26.google.protobuf.EnumDescriptorProto.EnumReservedRangeR\rreservedRange\x12#\n\rreserved_name\x18\x05 \x03(\tR\x0creservedName\x12A\n\nvisibility\x18\x06 \x01(\x0e2!.google.protobuf.SymbolVisibilityR\nvisibility\x1a;\n\x11EnumReservedRange\x12\x14\n\x05start\x18\x01 \x01(\x05R\x05start\x12\x10\n\x03end\x18\x02 \x01(\x05R\x03end\"\x83\x01\n\x18EnumValueDescriptorProto\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x16\n\x06number\x18\x02 \x01(\x05R\x06number\x12;\n\x07options\x18\x03 \x01(\x0b2!.google.protobuf.EnumValueOptionsR\x07options\"\xa7\x01\n\x16ServiceDescriptorProto\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12>\n\x06method\x18\x02 \x03(\x0b2&.google.protobuf.MethodDescriptorProtoR\x06method\x129\n\x07options\x18\x03 \x01(\x0b2\x1f.google.protobuf.ServiceOptionsR\x07options\"\x89\x02\n\x15MethodDescriptorProto\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1d\n\ninput_type\x18\x02 \x01(\tR\tinputType\x12\x1f\n\x0boutput_type\x18\x03 \x01(\tR\noutputType\x128\n\x07options\x18\x04 \x01(\x0b2\x1e.google.protobuf.MethodOptionsR\x07options\x120\n\x10client_streaming\x18\x05 \x01(\x08:\x05falseR\x0fclientStreaming\x120\n\x10server_streaming\x18\x06 \x01(\x08:\x05falseR\x0fserverStreaming\"\xad\t\n\x0bFileOptions\x12!\n\x0cjava_package\x18\x01 \x01(\tR\x0bjavaPackage\x120\n\x14java_outer_classname\x18\x08 \x01(\tR\x12javaOuterClassname\x125\n\x13java_multiple_files\x18\n \x01(\x08:\x05falseR\x11javaMultipleFiles\x12D\n\x1djava_generate_equals_and_hash\x18\x14 \x01(\x08B\x02\x18\x01R\x19javaGenerateEqualsAndHash\x12:\n\x16java_string_check_utf8\x18\x1b \x01(\x08:\x05falseR\x13javaStringCheckUtf8\x12S\n\x0coptimize_for\x18\t \x01(\x0e2).google.protobuf.FileOptions.OptimizeMode:\x05SPEEDR\x0boptimizeFor\x12\x1d\n\ngo_package\x18\x0b \x01(\tR\tgoPackage\x125\n\x13cc_generic_services\x18\x10 \x01(\x08:\x05falseR\x11ccGenericServices\x129\n\x15java_generic_services\x18\x11 \x01(\x08:\x05falseR\x13javaGenericServices\x125\n\x13py_generic_services\x18\x12 \x01(\x08:\x05falseR\x11pyGenericServices\x12%\n\ndeprecated\x18\x17 \x01(\x08:\x05falseR\ndeprecated\x12.\n\x10cc_enable_arenas\x18\x1f \x01(\x08:\x04trueR\x0eccEnableArenas\x12*\n\x11objc_class_prefix\x18$ \x01(\tR\x0fobjcClassPrefix\x12)\n\x10csharp_namespace\x18% \x01(\tR\x0fcsharpNamespace\x12!\n\x0cswift_prefix\x18\' \x01(\tR\x0bswiftPrefix\x12(\n\x10php_class_prefix\x18( \x01(\tR\x0ephpClassPrefix\x12#\n\rphp_namespace\x18) \x01(\tR\x0cphpNamespace\x124\n\x16php_metadata_namespace\x18, \x01(\tR\x14phpMetadataNamespace\x12!\n\x0cruby_package\x18- \x01(\tR\x0brubyPackage\x127\n\x08features\x182 \x01(\x0b2\x1b.google.protobuf.FeatureSetR\x08features\x12X\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b2$.google.protobuf.UninterpretedOptionR\x13uninterpretedOption\":\n\x0cOptimizeMode\x12\t\n\x05SPEED\x10\x01\x12\r\n\tCODE_SIZE\x10\x02\x12\x10\n\x0cLITE_RUNTIME\x10\x03*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02J\x04\x08*\x10+J\x04\x08&\x10\'R\x14php_generic_services\"\xf4\x03\n\x0eMessageOptions\x12<\n\x17message_set_wire_format\x18\x01 \x01(\x08:\x05falseR\x14messageSetWireFormat\x12L\n\x1fno_standard_descriptor_accessor\x18\x02 \x01(\x08:\x05falseR\x1cnoStandardDescriptorAccessor\x12%\n\ndeprecated\x18\x03 \x01(\x08:\x05falseR\ndeprecated\x12\x1b\n\tmap_entry\x18\x07 \x01(\x08R\x08mapEntry\x12V\n&deprecated_legacy_json_field_conflicts\x18\x0b \x01(\x08B\x02\x18\x01R\"deprecatedLegacyJsonFieldConflicts\x127\n\x08features\x18\x0c \x01(\x0b2\x1b.google.protobuf.FeatureSetR\x08features\x12X\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b2$.google.protobuf.UninterpretedOptionR\x13uninterpretedOption*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02J\x04\x08\x04\x10\x05J\x04\x08\x05\x10\x06J\x04\x08\x06\x10\x07J\x04\x08\x08\x10\tJ\x04\x08\t\x10\n\"\x9d\r\n\x0cFieldOptions\x12A\n\x05ctype\x18\x01 \x01(\x0e2#.google.protobuf.FieldOptions.CType:\x06STRINGR\x05ctype\x12\x16\n\x06packed\x18\x02 \x01(\x08R\x06packed\x12G\n\x06jstype\x18\x06 \x01(\x0e2$.google.protobuf.FieldOptions.JSType:\tJS_NORMALR\x06jstype\x12\x19\n\x04lazy\x18\x05 \x01(\x08:\x05falseR\x04lazy\x12.\n\x0funverified_lazy\x18\x0f \x01(\x08:\x05falseR\x0eunverifiedLazy\x12%\n\ndeprecated\x18\x03 \x01(\x08:\x05falseR\ndeprecated\x12\x19\n\x04weak\x18\n \x01(\x08:\x05falseR\x04weak\x12(\n\x0cdebug_redact\x18\x10 \x01(\x08:\x05falseR\x0bdebugRedact\x12K\n\tretention\x18\x11 \x01(\x0e2-.google.protobuf.FieldOptions.OptionRetentionR\tretention\x12H\n\x07targets\x18\x13 \x03(\x0e2..google.protobuf.FieldOptions.OptionTargetTypeR\x07targets\x12W\n\x10edition_defaults\x18\x14 \x03(\x0b2,.google.protobuf.FieldOptions.EditionDefaultR\x0feditionDefaults\x127\n\x08features\x18\x15 \x01(\x0b2\x1b.google.protobuf.FeatureSetR\x08features\x12U\n\x0ffeature_support\x18\x16 \x01(\x0b2,.google.protobuf.FieldOptions.FeatureSupportR\x0efeatureSupport\x12X\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b2$.google.protobuf.UninterpretedOptionR\x13uninterpretedOption\x1aZ\n\x0eEditionDefault\x122\n\x07edition\x18\x03 \x01(\x0e2\x18.google.protobuf.EditionR\x07edition\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value\x1a\x96\x02\n\x0eFeatureSupport\x12G\n\x12edition_introduced\x18\x01 \x01(\x0e2\x18.google.protobuf.EditionR\x11editionIntroduced\x12G\n\x12edition_deprecated\x18\x02 \x01(\x0e2\x18.google.protobuf.EditionR\x11editionDeprecated\x12/\n\x13deprecation_warning\x18\x03 \x01(\tR\x12deprecationWarning\x12A\n\x0fedition_removed\x18\x04 \x01(\x0e2\x18.google.protobuf.EditionR\x0eeditionRemoved\"/\n\x05CType\x12\n\n\x06STRING\x10\x00\x12\x08\n\x04CORD\x10\x01\x12\x10\n\x0cSTRING_PIECE\x10\x02\"5\n\x06JSType\x12\r\n\tJS_NORMAL\x10\x00\x12\r\n\tJS_STRING\x10\x01\x12\r\n\tJS_NUMBER\x10\x02\"U\n\x0fOptionRetention\x12\x15\n\x11RETENTION_UNKNOWN\x10\x00\x12\x15\n\x11RETENTION_RUNTIME\x10\x01\x12\x14\n\x10RETENTION_SOURCE\x10\x02\"\x8c\x02\n\x10OptionTargetType\x12\x17\n\x13TARGET_TYPE_UNKNOWN\x10\x00\x12\x14\n\x10TARGET_TYPE_FILE\x10\x01\x12\x1f\n\x1bTARGET_TYPE_EXTENSION_RANGE\x10\x02\x12\x17\n\x13TARGET_TYPE_MESSAGE\x10\x03\x12\x15\n\x11TARGET_TYPE_FIELD\x10\x04\x12\x15\n\x11TARGET_TYPE_ONEOF\x10\x05\x12\x14\n\x10TARGET_TYPE_ENUM\x10\x06\x12\x1a\n\x16TARGET_TYPE_ENUM_ENTRY\x10\x07\x12\x17\n\x13TARGET_TYPE_SERVICE\x10\x08\x12\x16\n\x12TARGET_TYPE_METHOD\x10\t*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02J\x04\x08\x04\x10\x05J\x04\x08\x12\x10\x13\"\xac\x01\n\x0cOneofOptions\x127\n\x08features\x18\x01 \x01(\x0b2\x1b.google.protobuf.FeatureSetR\x08features\x12X\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b2$.google.protobuf.UninterpretedOptionR\x13uninterpretedOption*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\xd1\x02\n\x0bEnumOptions\x12\x1f\n\x0ballow_alias\x18\x02 \x01(\x08R\nallowAlias\x12%\n\ndeprecated\x18\x03 \x01(\x08:\x05falseR\ndeprecated\x12V\n&deprecated_legacy_json_field_conflicts\x18\x06 \x01(\x08B\x02\x18\x01R\"deprecatedLegacyJsonFieldConflicts\x127\n\x08features\x18\x07 \x01(\x0b2\x1b.google.protobuf.FeatureSetR\x08features\x12X\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b2$.google.protobuf.UninterpretedOptionR\x13uninterpretedOption*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02J\x04\x08\x05\x10\x06\"\xd8\x02\n\x10EnumValueOptions\x12%\n\ndeprecated\x18\x01 \x01(\x08:\x05falseR\ndeprecated\x127\n\x08features\x18\x02 \x01(\x0b2\x1b.google.protobuf.FeatureSetR\x08features\x12(\n\x0cdebug_redact\x18\x03 \x01(\x08:\x05falseR\x0bdebugRedact\x12U\n\x0ffeature_support\x18\x04 \x01(\x0b2,.google.protobuf.FieldOptions.FeatureSupportR\x0efeatureSupport\x12X\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b2$.google.protobuf.UninterpretedOptionR\x13uninterpretedOption*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\xd5\x01\n\x0eServiceOptions\x127\n\x08features\x18\" \x01(\x0b2\x1b.google.protobuf.FeatureSetR\x08features\x12%\n\ndeprecated\x18! \x01(\x08:\x05falseR\ndeprecated\x12X\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b2$.google.protobuf.UninterpretedOptionR\x13uninterpretedOption*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\x99\x03\n\rMethodOptions\x12%\n\ndeprecated\x18! \x01(\x08:\x05falseR\ndeprecated\x12q\n\x11idempotency_level\x18\" \x01(\x0e2/.google.protobuf.MethodOptions.IdempotencyLevel:\x13IDEMPOTENCY_UNKNOWNR\x10idempotencyLevel\x127\n\x08features\x18# \x01(\x0b2\x1b.google.protobuf.FeatureSetR\x08features\x12X\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b2$.google.protobuf.UninterpretedOptionR\x13uninterpretedOption\"P\n\x10IdempotencyLevel\x12\x17\n\x13IDEMPOTENCY_UNKNOWN\x10\x00\x12\x13\n\x0fNO_SIDE_EFFECTS\x10\x01\x12\x0e\n\nIDEMPOTENT\x10\x02*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\x9a\x03\n\x13UninterpretedOption\x12A\n\x04name\x18\x02 \x03(\x0b2-.google.protobuf.UninterpretedOption.NamePartR\x04name\x12)\n\x10identifier_value\x18\x03 \x01(\tR\x0fidentifierValue\x12,\n\x12positive_int_value\x18\x04 \x01(\x04R\x10positiveIntValue\x12,\n\x12negative_int_value\x18\x05 \x01(\x03R\x10negativeIntValue\x12!\n\x0cdouble_value\x18\x06 \x01(\x01R\x0bdoubleValue\x12!\n\x0cstring_value\x18\x07 \x01(\x0cR\x0bstringValue\x12\'\n\x0faggregate_value\x18\x08 \x01(\tR\x0eaggregateValue\x1aJ\n\x08NamePart\x12\x1b\n\tname_part\x18\x01 \x02(\tR\x08namePart\x12!\n\x0cis_extension\x18\x02 \x02(\x08R\x0bisExtension\"\x8e\x0f\n\nFeatureSet\x12\x91\x01\n\x0efield_presence\x18\x01 \x01(\x0e2).google.protobuf.FeatureSet.FieldPresenceB?\x88\x01\x01\x98\x01\x04\x98\x01\x01\xa2\x01\r\x12\x08EXPLICIT\x18\x84\x07\xa2\x01\r\x12\x08IMPLICIT\x18\xe7\x07\xa2\x01\r\x12\x08EXPLICIT\x18\xe8\x07\xb2\x01\x03\x08\xe8\x07R\rfieldPresence\x12l\n\tenum_type\x18\x02 \x01(\x0e2$.google.protobuf.FeatureSet.EnumTypeB)\x88\x01\x01\x98\x01\x06\x98\x01\x01\xa2\x01\x0b\x12\x06CLOSED\x18\x84\x07\xa2\x01\t\x12\x04OPEN\x18\xe7\x07\xb2\x01\x03\x08\xe8\x07R\x08enumType\x12\x98\x01\n\x17repeated_field_encoding\x18\x03 \x01(\x0e21.google.protobuf.FeatureSet.RepeatedFieldEncodingB-\x88\x01\x01\x98\x01\x04\x98\x01\x01\xa2\x01\r\x12\x08EXPANDED\x18\x84\x07\xa2\x01\x0b\x12\x06PACKED\x18\xe7\x07\xb2\x01\x03\x08\xe8\x07R\x15repeatedFieldEncoding\x12~\n\x0futf8_validation\x18\x04 \x01(\x0e2*.google.protobuf.FeatureSet.Utf8ValidationB)\x88\x01\x01\x98\x01\x04\x98\x01\x01\xa2\x01\t\x12\x04NONE\x18\x84\x07\xa2\x01\x0b\x12\x06VERIFY\x18\xe7\x07\xb2\x01\x03\x08\xe8\x07R\x0eutf8Validation\x12~\n\x10message_encoding\x18\x05 \x01(\x0e2+.google.protobuf.FeatureSet.MessageEncodingB&\x88\x01\x01\x98\x01\x04\x98\x01\x01\xa2\x01\x14\x12\x0fLENGTH_PREFIXED\x18\x84\x07\xb2\x01\x03\x08\xe8\x07R\x0fmessageEncoding\x12\x82\x01\n\x0bjson_format\x18\x06 \x01(\x0e2&.google.protobuf.FeatureSet.JsonFormatB9\x88\x01\x01\x98\x01\x03\x98\x01\x06\x98\x01\x01\xa2\x01\x17\x12\x12LEGACY_BEST_EFFORT\x18\x84\x07\xa2\x01\n\x12\x05ALLOW\x18\xe7\x07\xb2\x01\x03\x08\xe8\x07R\njsonFormat\x12\xab\x01\n\x14enforce_naming_style\x18\x07 \x01(\x0e2..google.protobuf.FeatureSet.EnforceNamingStyleBI\x88\x01\x02\x98\x01\x01\x98\x01\x02\x98\x01\x03\x98\x01\x04\x98\x01\x05\x98\x01\x06\x98\x01\x07\x98\x01\x08\x98\x01\t\xa2\x01\x11\x12\x0cSTYLE_LEGACY\x18\x84\x07\xa2\x01\x0e\x12\tSTYLE2024\x18\xe9\x07\xb2\x01\x03\x08\xe9\x07R\x12enforceNamingStyle\x12\xb9\x01\n\x19default_symbol_visibility\x18\x08 \x01(\x0e2E.google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibilityB6\x88\x01\x02\x98\x01\x01\xa2\x01\x0f\x12\nEXPORT_ALL\x18\x84\x07\xa2\x01\x15\x12\x10EXPORT_TOP_LEVEL\x18\xe9\x07\xb2\x01\x03\x08\xe9\x07R\x17defaultSymbolVisibility\x1a\xa1\x01\n\x11VisibilityFeature\"\x81\x01\n\x17DefaultSymbolVisibility\x12%\n!DEFAULT_SYMBOL_VISIBILITY_UNKNOWN\x10\x00\x12\x0e\n\nEXPORT_ALL\x10\x01\x12\x14\n\x10EXPORT_TOP_LEVEL\x10\x02\x12\r\n\tLOCAL_ALL\x10\x03\x12\n\n\x06STRICT\x10\x04J\x08\x08\x01\x10\x80\x80\x80\x80\x02\"\\\n\rFieldPresence\x12\x1a\n\x16FIELD_PRESENCE_UNKNOWN\x10\x00\x12\x0c\n\x08EXPLICIT\x10\x01\x12\x0c\n\x08IMPLICIT\x10\x02\x12\x13\n\x0fLEGACY_REQUIRED\x10\x03\"7\n\x08EnumType\x12\x15\n\x11ENUM_TYPE_UNKNOWN\x10\x00\x12\x08\n\x04OPEN\x10\x01\x12\n\n\x06CLOSED\x10\x02\"V\n\x15RepeatedFieldEncoding\x12#\n\x1fREPEATED_FIELD_ENCODING_UNKNOWN\x10\x00\x12\n\n\x06PACKED\x10\x01\x12\x0c\n\x08EXPANDED\x10\x02\"I\n\x0eUtf8Validation\x12\x1b\n\x17UTF8_VALIDATION_UNKNOWN\x10\x00\x12\n\n\x06VERIFY\x10\x02\x12\x08\n\x04NONE\x10\x03\"\x04\x08\x01\x10\x01\"S\n\x0fMessageEncoding\x12\x1c\n\x18MESSAGE_ENCODING_UNKNOWN\x10\x00\x12\x13\n\x0fLENGTH_PREFIXED\x10\x01\x12\r\n\tDELIMITED\x10\x02\"H\n\nJsonFormat\x12\x17\n\x13JSON_FORMAT_UNKNOWN\x10\x00\x12\t\n\x05ALLOW\x10\x01\x12\x16\n\x12LEGACY_BEST_EFFORT\x10\x02\"W\n\x12EnforceNamingStyle\x12 \n\x1cENFORCE_NAMING_STYLE_UNKNOWN\x10\x00\x12\r\n\tSTYLE2024\x10\x01\x12\x10\n\x0cSTYLE_LEGACY\x10\x02*\x06\x08\xe8\x07\x10\x8bN*\x06\x08\x8bN\x10\x90N*\x06\x08\x90N\x10\x91NJ\x06\x08\xe7\x07\x10\xe8\x07\"\xef\x03\n\x12FeatureSetDefaults\x12X\n\x08defaults\x18\x01 \x03(\x0b2<.google.protobuf.FeatureSetDefaults.FeatureSetEditionDefaultR\x08defaults\x12A\n\x0fminimum_edition\x18\x04 \x01(\x0e2\x18.google.protobuf.EditionR\x0eminimumEdition\x12A\n\x0fmaximum_edition\x18\x05 \x01(\x0e2\x18.google.protobuf.EditionR\x0emaximumEdition\x1a\xf8\x01\n\x18FeatureSetEditionDefault\x122\n\x07edition\x18\x03 \x01(\x0e2\x18.google.protobuf.EditionR\x07edition\x12N\n\x14overridable_features\x18\x04 \x01(\x0b2\x1b.google.protobuf.FeatureSetR\x13overridableFeatures\x12B\n\x0efixed_features\x18\x05 \x01(\x0b2\x1b.google.protobuf.FeatureSetR\rfixedFeaturesJ\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03R\x08features\"\xb5\x02\n\x0eSourceCodeInfo\x12D\n\x08location\x18\x01 \x03(\x0b2(.google.protobuf.SourceCodeInfo.LocationR\x08location\x1a\xce\x01\n\x08Location\x12\x16\n\x04path\x18\x01 \x03(\x05B\x02\x10\x01R\x04path\x12\x16\n\x04span\x18\x02 \x03(\x05B\x02\x10\x01R\x04span\x12)\n\x10leading_comments\x18\x03 \x01(\tR\x0fleadingComments\x12+\n\x11trailing_comments\x18\x04 \x01(\tR\x10trailingComments\x12:\n\x19leading_detached_comments\x18\x06 \x03(\tR\x17leadingDetachedComments*\x0c\x08\x80\xec\xca\xff\x01\x10\x81\xec\xca\xff\x01\"\xd0\x02\n\x11GeneratedCodeInfo\x12M\n\nannotation\x18\x01 \x03(\x0b2-.google.protobuf.GeneratedCodeInfo.AnnotationR\nannotation\x1a\xeb\x01\n\nAnnotation\x12\x16\n\x04path\x18\x01 \x03(\x05B\x02\x10\x01R\x04path\x12\x1f\n\x0bsource_file\x18\x02 \x01(\tR\nsourceFile\x12\x14\n\x05begin\x18\x03 \x01(\x05R\x05begin\x12\x10\n\x03end\x18\x04 \x01(\x05R\x03end\x12R\n\x08semantic\x18\x05 \x01(\x0e26.google.protobuf.GeneratedCodeInfo.Annotation.SemanticR\x08semantic\"(\n\x08Semantic\x12\x08\n\x04NONE\x10\x00\x12\x07\n\x03SET\x10\x01\x12\t\n\x05ALIAS\x10\x02*\xa7\x02\n\x07Edition\x12\x13\n\x0fEDITION_UNKNOWN\x10\x00\x12\x13\n\x0eEDITION_LEGACY\x10\x84\x07\x12\x13\n\x0eEDITION_PROTO2\x10\xe6\x07\x12\x13\n\x0eEDITION_PROTO3\x10\xe7\x07\x12\x11\n\x0cEDITION_2023\x10\xe8\x07\x12\x11\n\x0cEDITION_2024\x10\xe9\x07\x12\x17\n\x13EDITION_1_TEST_ONLY\x10\x01\x12\x17\n\x13EDITION_2_TEST_ONLY\x10\x02\x12\x1d\n\x17EDITION_99997_TEST_ONLY\x10\x9d\x8d\x06\x12\x1d\n\x17EDITION_99998_TEST_ONLY\x10\x9e\x8d\x06\x12\x1d\n\x17EDITION_99999_TEST_ONLY\x10\x9f\x8d\x06\x12\x13\n\x0bEDITION_MAX\x10\xff\xff\xff\xff\x07*U\n\x10SymbolVisibility\x12\x14\n\x10VISIBILITY_UNSET\x10\x00\x12\x14\n\x10VISIBILITY_LOCAL\x10\x01\x12\x15\n\x11VISIBILITY_EXPORT\x10\x02B~\n\x13com.google.protobufB\x10DescriptorProtosH\x01Z-google.golang.org/protobuf/types/descriptorpb\xf8\x01\x01\xa2\x02\x03GPB\xaa\x02\x1aGoogle.Protobuf.ReflectionJ\x97\xe6\x03\n\x07\x12\x05&\x00\x88\x0b\x01\n\xaa\x0f\n\x01\x0c\x12\x03&\x00\x122\xc1\x0c Protocol Buffers - Google\'s data interchange format\n Copyright 2008 Google Inc. All rights reserved.\n https://developers.google.com/protocol-buffers/\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are\n met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above\n copyright notice, this list of conditions and the following disclaimer\n in the documentation and/or other materials provided with the\n distribution.\n * Neither the name of Google Inc. nor the names of its\n contributors may be used to endorse or promote products derived from\n this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n2\xdb\x02 Author: kenton@google.com (Kenton Varda)\n Based on original Protocol Buffers design by\n Sanjay Ghemawat, Jeff Dean, and others.\n\n The messages in this file describe the definitions found in .proto files.\n A valid .proto file can be translated directly to a FileDescriptorProto\n without any other information (e.g. without reading its imports).\n\n\x08\n\x01\x02\x12\x03(\x00\x18\n\x08\n\x01\x08\x12\x03*\x00D\n\t\n\x02\x08\x0b\x12\x03*\x00D\n\x08\n\x01\x08\x12\x03+\x00,\n\t\n\x02\x08\x01\x12\x03+\x00,\n\x08\n\x01\x08\x12\x03,\x001\n\t\n\x02\x08\x08\x12\x03,\x001\n\x08\n\x01\x08\x12\x03-\x007\n\t\n\x02\x08%\x12\x03-\x007\n\x08\n\x01\x08\x12\x03.\x00!\n\t\n\x02\x08$\x12\x03.\x00!\n\x08\n\x01\x08\x12\x03/\x00\x1f\n\t\n\x02\x08\x1f\x12\x03/\x00\x1f\n\x08\n\x01\x08\x12\x033\x00\x1c\n\x7f\n\x02\x08\t\x12\x033\x00\x1c\x1at descriptor.proto must be optimized for speed because reflection-based\n algorithms don\'t work during bootstrapping.\n\nj\n\x02\x04\x00\x12\x047\x00@\x01\x1a^ The protocol compiler can output a FileDescriptorSet containing the .proto\n files it parses.\n\n\n\n\x03\x04\x00\x01\x12\x037\x08\x19\n\x0b\n\x04\x04\x00\x02\x00\x12\x038\x02(\n\x0c\n\x05\x04\x00\x02\x00\x04\x12\x038\x02\n\n\x0c\n\x05\x04\x00\x02\x00\x06\x12\x038\x0b\x1e\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x038\x1f#\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x038&\'\n&\n\x03\x04\x00\x05\x12\x04;\x02?\x05\x1a\x19 Extensions for tooling.\n\n\x0b\n\x04\x04\x00\x05\x00\x12\x03;\r\x16\n\x0c\n\x05\x04\x00\x05\x00\x01\x12\x03;\r\x16\n\x0c\n\x05\x04\x00\x05\x00\x02\x12\x03;\r\x16\n-\n\x02\x05\x00\x12\x04C\x00d\x01\x1a! The full set of known editions.\n\n\n\n\x03\x05\x00\x01\x12\x03C\x05\x0c\n:\n\x04\x05\x00\x02\x00\x12\x03E\x02\x16\x1a- A placeholder for an unknown edition value.\n\n\x0c\n\x05\x05\x00\x02\x00\x01\x12\x03E\x02\x11\n\x0c\n\x05\x05\x00\x02\x00\x02\x12\x03E\x14\x15\n\x99\x01\n\x04\x05\x00\x02\x01\x12\x03I\x02\x17\x1a\x8b\x01 A placeholder edition for specifying default behaviors *before* a feature\n was first introduced. This is effectively an \"infinite past\".\n\n\x0c\n\x05\x05\x00\x02\x01\x01\x12\x03I\x02\x10\n\x0c\n\x05\x05\x00\x02\x01\x02\x12\x03I\x13\x16\n\x82\x02\n\x04\x05\x00\x02\x02\x12\x03O\x02\x17\x1a\xf4\x01 Legacy syntax \"editions\". These pre-date editions, but behave much like\n distinct editions. These can\'t be used to specify the edition of proto\n files, but feature definitions must supply proto2/proto3 defaults for\n backwards compatibility.\n\n\x0c\n\x05\x05\x00\x02\x02\x01\x12\x03O\x02\x10\n\x0c\n\x05\x05\x00\x02\x02\x02\x12\x03O\x13\x16\n\x0b\n\x04\x05\x00\x02\x03\x12\x03P\x02\x17\n\x0c\n\x05\x05\x00\x02\x03\x01\x12\x03P\x02\x10\n\x0c\n\x05\x05\x00\x02\x03\x02\x12\x03P\x13\x16\n\xaf\x01\n\x04\x05\x00\x02\x04\x12\x03U\x02\x16\x1a\xa1\x01 Editions that have been released. The specific values are arbitrary and\n should not be depended on, but they will always be time-ordered for easy\n comparison.\n\n\x0c\n\x05\x05\x00\x02\x04\x01\x12\x03U\x02\x0e\n\x0c\n\x05\x05\x00\x02\x04\x02\x12\x03U\x11\x15\n\x0b\n\x04\x05\x00\x02\x05\x12\x03V\x02\x16\n\x0c\n\x05\x05\x00\x02\x05\x01\x12\x03V\x02\x0e\n\x0c\n\x05\x05\x00\x02\x05\x02\x12\x03V\x11\x15\n}\n\x04\x05\x00\x02\x06\x12\x03Z\x02\x1a\x1ap Placeholder editions for testing feature resolution. These should not be\n used or relied on outside of tests.\n\n\x0c\n\x05\x05\x00\x02\x06\x01\x12\x03Z\x02\x15\n\x0c\n\x05\x05\x00\x02\x06\x02\x12\x03Z\x18\x19\n\x0b\n\x04\x05\x00\x02\x07\x12\x03[\x02\x1a\n\x0c\n\x05\x05\x00\x02\x07\x01\x12\x03[\x02\x15\n\x0c\n\x05\x05\x00\x02\x07\x02\x12\x03[\x18\x19\n\x0b\n\x04\x05\x00\x02\x08\x12\x03\\\x02\"\n\x0c\n\x05\x05\x00\x02\x08\x01\x12\x03\\\x02\x19\n\x0c\n\x05\x05\x00\x02\x08\x02\x12\x03\\\x1c!\n\x0b\n\x04\x05\x00\x02\t\x12\x03]\x02\"\n\x0c\n\x05\x05\x00\x02\t\x01\x12\x03]\x02\x19\n\x0c\n\x05\x05\x00\x02\t\x02\x12\x03]\x1c!\n\x0b\n\x04\x05\x00\x02\n\x12\x03^\x02\"\n\x0c\n\x05\x05\x00\x02\n\x01\x12\x03^\x02\x19\n\x0c\n\x05\x05\x00\x02\n\x02\x12\x03^\x1c!\n\xb8\x01\n\x04\x05\x00\x02\x0b\x12\x03c\x02\x1b\x1a\xaa\x01 Placeholder for specifying unbounded edition support. This should only\n ever be used by plugins that can expect to never require any changes to\n support a new edition.\n\n\x0c\n\x05\x05\x00\x02\x0b\x01\x12\x03c\x02\r\n\x0c\n\x05\x05\x00\x02\x0b\x02\x12\x03c\x10\x1a\n0\n\x02\x04\x01\x12\x05g\x00\x93\x01\x01\x1a# Describes a complete .proto file.\n\n\n\n\x03\x04\x01\x01\x12\x03g\x08\x1b\n9\n\x04\x04\x01\x02\x00\x12\x03h\x02\x1b\", file name, relative to root of source tree\n\n\x0c\n\x05\x04\x01\x02\x00\x04\x12\x03h\x02\n\n\x0c\n\x05\x04\x01\x02\x00\x05\x12\x03h\x0b\x11\n\x0c\n\x05\x04\x01\x02\x00\x01\x12\x03h\x12\x16\n\x0c\n\x05\x04\x01\x02\x00\x03\x12\x03h\x19\x1a\n*\n\x04\x04\x01\x02\x01\x12\x03i\x02\x1e\"\x1d e.g. \"foo\", \"foo.bar\", etc.\n\n\x0c\n\x05\x04\x01\x02\x01\x04\x12\x03i\x02\n\n\x0c\n\x05\x04\x01\x02\x01\x05\x12\x03i\x0b\x11\n\x0c\n\x05\x04\x01\x02\x01\x01\x12\x03i\x12\x19\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x03i\x1c\x1d\n4\n\x04\x04\x01\x02\x02\x12\x03l\x02!\x1a\' Names of files imported by this file.\n\n\x0c\n\x05\x04\x01\x02\x02\x04\x12\x03l\x02\n\n\x0c\n\x05\x04\x01\x02\x02\x05\x12\x03l\x0b\x11\n\x0c\n\x05\x04\x01\x02\x02\x01\x12\x03l\x12\x1c\n\x0c\n\x05\x04\x01\x02\x02\x03\x12\x03l\x1f \nQ\n\x04\x04\x01\x02\x03\x12\x03n\x02(\x1aD Indexes of the public imported files in the dependency list above.\n\n\x0c\n\x05\x04\x01\x02\x03\x04\x12\x03n\x02\n\n\x0c\n\x05\x04\x01\x02\x03\x05\x12\x03n\x0b\x10\n\x0c\n\x05\x04\x01\x02\x03\x01\x12\x03n\x11\"\n\x0c\n\x05\x04\x01\x02\x03\x03\x12\x03n%\'\nz\n\x04\x04\x01\x02\x04\x12\x03q\x02&\x1am Indexes of the weak imported files in the dependency list.\n For Google-internal migration only. Do not use.\n\n\x0c\n\x05\x04\x01\x02\x04\x04\x12\x03q\x02\n\n\x0c\n\x05\x04\x01\x02\x04\x05\x12\x03q\x0b\x10\n\x0c\n\x05\x04\x01\x02\x04\x01\x12\x03q\x11 \n\x0c\n\x05\x04\x01\x02\x04\x03\x12\x03q#%\n\x9f\x01\n\x04\x04\x01\x02\x05\x12\x03u\x02)\x1a\x91\x01 Names of files imported by this file purely for the purpose of providing\n option extensions. These are excluded from the dependency list above.\n\n\x0c\n\x05\x04\x01\x02\x05\x04\x12\x03u\x02\n\n\x0c\n\x05\x04\x01\x02\x05\x05\x12\x03u\x0b\x11\n\x0c\n\x05\x04\x01\x02\x05\x01\x12\x03u\x12#\n\x0c\n\x05\x04\x01\x02\x05\x03\x12\x03u&(\n6\n\x04\x04\x01\x02\x06\x12\x03x\x02,\x1a) All top-level definitions in this file.\n\n\x0c\n\x05\x04\x01\x02\x06\x04\x12\x03x\x02\n\n\x0c\n\x05\x04\x01\x02\x06\x06\x12\x03x\x0b\x1a\n\x0c\n\x05\x04\x01\x02\x06\x01\x12\x03x\x1b\'\n\x0c\n\x05\x04\x01\x02\x06\x03\x12\x03x*+\n\x0b\n\x04\x04\x01\x02\x07\x12\x03y\x02-\n\x0c\n\x05\x04\x01\x02\x07\x04\x12\x03y\x02\n\n\x0c\n\x05\x04\x01\x02\x07\x06\x12\x03y\x0b\x1e\n\x0c\n\x05\x04\x01\x02\x07\x01\x12\x03y\x1f(\n\x0c\n\x05\x04\x01\x02\x07\x03\x12\x03y+,\n\x0b\n\x04\x04\x01\x02\x08\x12\x03z\x02.\n\x0c\n\x05\x04\x01\x02\x08\x04\x12\x03z\x02\n\n\x0c\n\x05\x04\x01\x02\x08\x06\x12\x03z\x0b!\n\x0c\n\x05\x04\x01\x02\x08\x01\x12\x03z\")\n\x0c\n\x05\x04\x01\x02\x08\x03\x12\x03z,-\n\x0b\n\x04\x04\x01\x02\t\x12\x03{\x02.\n\x0c\n\x05\x04\x01\x02\t\x04\x12\x03{\x02\n\n\x0c\n\x05\x04\x01\x02\t\x06\x12\x03{\x0b\x1f\n\x0c\n\x05\x04\x01\x02\t\x01\x12\x03{ )\n\x0c\n\x05\x04\x01\x02\t\x03\x12\x03{,-\n\x0b\n\x04\x04\x01\x02\n\x12\x03}\x02#\n\x0c\n\x05\x04\x01\x02\n\x04\x12\x03}\x02\n\n\x0c\n\x05\x04\x01\x02\n\x06\x12\x03}\x0b\x16\n\x0c\n\x05\x04\x01\x02\n\x01\x12\x03}\x17\x1e\n\x0c\n\x05\x04\x01\x02\n\x03\x12\x03}!\"\n\xf5\x01\n\x04\x04\x01\x02\x0b\x12\x04\x83\x01\x02/\x1a\xe6\x01 This field contains optional information about the original source code.\n You may safely remove this entire field without harming runtime\n functionality of the descriptors -- the information is needed only by\n development tools.\n\n\r\n\x05\x04\x01\x02\x0b\x04\x12\x04\x83\x01\x02\n\n\r\n\x05\x04\x01\x02\x0b\x06\x12\x04\x83\x01\x0b\x19\n\r\n\x05\x04\x01\x02\x0b\x01\x12\x04\x83\x01\x1a*\n\r\n\x05\x04\x01\x02\x0b\x03\x12\x04\x83\x01-.\n\xf9\x02\n\x04\x04\x01\x02\x0c\x12\x04\x8c\x01\x02\x1e\x1a\xea\x02 The syntax of the proto file.\n The supported values are \"proto2\", \"proto3\", and \"editions\".\n\n If `edition` is present, this value must be \"editions\".\n WARNING: This field should only be used by protobuf plugins or special\n cases like the proto compiler. Other uses are discouraged and\n developers should rely on the protoreflect APIs for their client language.\n\n\r\n\x05\x04\x01\x02\x0c\x04\x12\x04\x8c\x01\x02\n\n\r\n\x05\x04\x01\x02\x0c\x05\x12\x04\x8c\x01\x0b\x11\n\r\n\x05\x04\x01\x02\x0c\x01\x12\x04\x8c\x01\x12\x18\n\r\n\x05\x04\x01\x02\x0c\x03\x12\x04\x8c\x01\x1b\x1d\n\x82\x02\n\x04\x04\x01\x02\r\x12\x04\x92\x01\x02 \x1a\xf3\x01 The edition of the proto file.\n WARNING: This field should only be used by protobuf plugins or special\n cases like the proto compiler. Other uses are discouraged and\n developers should rely on the protoreflect APIs for their client language.\n\n\r\n\x05\x04\x01\x02\r\x04\x12\x04\x92\x01\x02\n\n\r\n\x05\x04\x01\x02\r\x06\x12\x04\x92\x01\x0b\x12\n\r\n\x05\x04\x01\x02\r\x01\x12\x04\x92\x01\x13\x1a\n\r\n\x05\x04\x01\x02\r\x03\x12\x04\x92\x01\x1d\x1f\n)\n\x02\x04\x02\x12\x06\x96\x01\x00\xb9\x01\x01\x1a\x1b Describes a message type.\n\n\x0b\n\x03\x04\x02\x01\x12\x04\x96\x01\x08\x17\n\x0c\n\x04\x04\x02\x02\x00\x12\x04\x97\x01\x02\x1b\n\r\n\x05\x04\x02\x02\x00\x04\x12\x04\x97\x01\x02\n\n\r\n\x05\x04\x02\x02\x00\x05\x12\x04\x97\x01\x0b\x11\n\r\n\x05\x04\x02\x02\x00\x01\x12\x04\x97\x01\x12\x16\n\r\n\x05\x04\x02\x02\x00\x03\x12\x04\x97\x01\x19\x1a\n\x0c\n\x04\x04\x02\x02\x01\x12\x04\x99\x01\x02*\n\r\n\x05\x04\x02\x02\x01\x04\x12\x04\x99\x01\x02\n\n\r\n\x05\x04\x02\x02\x01\x06\x12\x04\x99\x01\x0b\x1f\n\r\n\x05\x04\x02\x02\x01\x01\x12\x04\x99\x01 %\n\r\n\x05\x04\x02\x02\x01\x03\x12\x04\x99\x01()\n\x0c\n\x04\x04\x02\x02\x02\x12\x04\x9a\x01\x02.\n\r\n\x05\x04\x02\x02\x02\x04\x12\x04\x9a\x01\x02\n\n\r\n\x05\x04\x02\x02\x02\x06\x12\x04\x9a\x01\x0b\x1f\n\r\n\x05\x04\x02\x02\x02\x01\x12\x04\x9a\x01 )\n\r\n\x05\x04\x02\x02\x02\x03\x12\x04\x9a\x01,-\n\x0c\n\x04\x04\x02\x02\x03\x12\x04\x9c\x01\x02+\n\r\n\x05\x04\x02\x02\x03\x04\x12\x04\x9c\x01\x02\n\n\r\n\x05\x04\x02\x02\x03\x06\x12\x04\x9c\x01\x0b\x1a\n\r\n\x05\x04\x02\x02\x03\x01\x12\x04\x9c\x01\x1b&\n\r\n\x05\x04\x02\x02\x03\x03\x12\x04\x9c\x01)*\n\x0c\n\x04\x04\x02\x02\x04\x12\x04\x9d\x01\x02-\n\r\n\x05\x04\x02\x02\x04\x04\x12\x04\x9d\x01\x02\n\n\r\n\x05\x04\x02\x02\x04\x06\x12\x04\x9d\x01\x0b\x1e\n\r\n\x05\x04\x02\x02\x04\x01\x12\x04\x9d\x01\x1f(\n\r\n\x05\x04\x02\x02\x04\x03\x12\x04\x9d\x01+,\n\x0e\n\x04\x04\x02\x03\x00\x12\x06\x9f\x01\x02\xa4\x01\x03\n\r\n\x05\x04\x02\x03\x00\x01\x12\x04\x9f\x01\n\x18\n\x1c\n\x06\x04\x02\x03\x00\x02\x00\x12\x04\xa0\x01\x04\x1d\"\x0c Inclusive.\n\n\x0f\n\x07\x04\x02\x03\x00\x02\x00\x04\x12\x04\xa0\x01\x04\x0c\n\x0f\n\x07\x04\x02\x03\x00\x02\x00\x05\x12\x04\xa0\x01\r\x12\n\x0f\n\x07\x04\x02\x03\x00\x02\x00\x01\x12\x04\xa0\x01\x13\x18\n\x0f\n\x07\x04\x02\x03\x00\x02\x00\x03\x12\x04\xa0\x01\x1b\x1c\n\x1c\n\x06\x04\x02\x03\x00\x02\x01\x12\x04\xa1\x01\x04\x1b\"\x0c Exclusive.\n\n\x0f\n\x07\x04\x02\x03\x00\x02\x01\x04\x12\x04\xa1\x01\x04\x0c\n\x0f\n\x07\x04\x02\x03\x00\x02\x01\x05\x12\x04\xa1\x01\r\x12\n\x0f\n\x07\x04\x02\x03\x00\x02\x01\x01\x12\x04\xa1\x01\x13\x16\n\x0f\n\x07\x04\x02\x03\x00\x02\x01\x03\x12\x04\xa1\x01\x19\x1a\n\x0e\n\x06\x04\x02\x03\x00\x02\x02\x12\x04\xa3\x01\x04/\n\x0f\n\x07\x04\x02\x03\x00\x02\x02\x04\x12\x04\xa3\x01\x04\x0c\n\x0f\n\x07\x04\x02\x03\x00\x02\x02\x06\x12\x04\xa3\x01\r\"\n\x0f\n\x07\x04\x02\x03\x00\x02\x02\x01\x12\x04\xa3\x01#*\n\x0f\n\x07\x04\x02\x03\x00\x02\x02\x03\x12\x04\xa3\x01-.\n\x0c\n\x04\x04\x02\x02\x05\x12\x04\xa5\x01\x02.\n\r\n\x05\x04\x02\x02\x05\x04\x12\x04\xa5\x01\x02\n\n\r\n\x05\x04\x02\x02\x05\x06\x12\x04\xa5\x01\x0b\x19\n\r\n\x05\x04\x02\x02\x05\x01\x12\x04\xa5\x01\x1a)\n\r\n\x05\x04\x02\x02\x05\x03\x12\x04\xa5\x01,-\n\x0c\n\x04\x04\x02\x02\x06\x12\x04\xa7\x01\x02/\n\r\n\x05\x04\x02\x02\x06\x04\x12\x04\xa7\x01\x02\n\n\r\n\x05\x04\x02\x02\x06\x06\x12\x04\xa7\x01\x0b\x1f\n\r\n\x05\x04\x02\x02\x06\x01\x12\x04\xa7\x01 *\n\r\n\x05\x04\x02\x02\x06\x03\x12\x04\xa7\x01-.\n\x0c\n\x04\x04\x02\x02\x07\x12\x04\xa9\x01\x02&\n\r\n\x05\x04\x02\x02\x07\x04\x12\x04\xa9\x01\x02\n\n\r\n\x05\x04\x02\x02\x07\x06\x12\x04\xa9\x01\x0b\x19\n\r\n\x05\x04\x02\x02\x07\x01\x12\x04\xa9\x01\x1a!\n\r\n\x05\x04\x02\x02\x07\x03\x12\x04\xa9\x01$%\n\xac\x01\n\x04\x04\x02\x03\x01\x12\x06\xae\x01\x02\xb1\x01\x03\x1a\x9b\x01 Range of reserved tag numbers. Reserved tag numbers may not be used by\n fields or extension ranges in the same message. Reserved ranges may\n not overlap.\n\n\r\n\x05\x04\x02\x03\x01\x01\x12\x04\xae\x01\n\x17\n\x1c\n\x06\x04\x02\x03\x01\x02\x00\x12\x04\xaf\x01\x04\x1d\"\x0c Inclusive.\n\n\x0f\n\x07\x04\x02\x03\x01\x02\x00\x04\x12\x04\xaf\x01\x04\x0c\n\x0f\n\x07\x04\x02\x03\x01\x02\x00\x05\x12\x04\xaf\x01\r\x12\n\x0f\n\x07\x04\x02\x03\x01\x02\x00\x01\x12\x04\xaf\x01\x13\x18\n\x0f\n\x07\x04\x02\x03\x01\x02\x00\x03\x12\x04\xaf\x01\x1b\x1c\n\x1c\n\x06\x04\x02\x03\x01\x02\x01\x12\x04\xb0\x01\x04\x1b\"\x0c Exclusive.\n\n\x0f\n\x07\x04\x02\x03\x01\x02\x01\x04\x12\x04\xb0\x01\x04\x0c\n\x0f\n\x07\x04\x02\x03\x01\x02\x01\x05\x12\x04\xb0\x01\r\x12\n\x0f\n\x07\x04\x02\x03\x01\x02\x01\x01\x12\x04\xb0\x01\x13\x16\n\x0f\n\x07\x04\x02\x03\x01\x02\x01\x03\x12\x04\xb0\x01\x19\x1a\n\x0c\n\x04\x04\x02\x02\x08\x12\x04\xb2\x01\x02,\n\r\n\x05\x04\x02\x02\x08\x04\x12\x04\xb2\x01\x02\n\n\r\n\x05\x04\x02\x02\x08\x06\x12\x04\xb2\x01\x0b\x18\n\r\n\x05\x04\x02\x02\x08\x01\x12\x04\xb2\x01\x19\'\n\r\n\x05\x04\x02\x02\x08\x03\x12\x04\xb2\x01*+\n\x83\x01\n\x04\x04\x02\x02\t\x12\x04\xb5\x01\x02%\x1au Reserved field names, which may not be used by fields in the same message.\n A given name may only be reserved once.\n\n\r\n\x05\x04\x02\x02\t\x04\x12\x04\xb5\x01\x02\n\n\r\n\x05\x04\x02\x02\t\x05\x12\x04\xb5\x01\x0b\x11\n\r\n\x05\x04\x02\x02\t\x01\x12\x04\xb5\x01\x12\x1f\n\r\n\x05\x04\x02\x02\t\x03\x12\x04\xb5\x01\"$\nC\n\x04\x04\x02\x02\n\x12\x04\xb8\x01\x02,\x1a5 Support for `export` and `local` keywords on enums.\n\n\r\n\x05\x04\x02\x02\n\x04\x12\x04\xb8\x01\x02\n\n\r\n\x05\x04\x02\x02\n\x06\x12\x04\xb8\x01\x0b\x1b\n\r\n\x05\x04\x02\x02\n\x01\x12\x04\xb8\x01\x1c&\n\r\n\x05\x04\x02\x02\n\x03\x12\x04\xb8\x01)+\n\x0c\n\x02\x04\x03\x12\x06\xbb\x01\x00\xef\x01\x01\n\x0b\n\x03\x04\x03\x01\x12\x04\xbb\x01\x08\x1d\nO\n\x04\x04\x03\x02\x00\x12\x04\xbd\x01\x02:\x1aA The parser stores options it doesn\'t recognize here. See above.\n\n\r\n\x05\x04\x03\x02\x00\x04\x12\x04\xbd\x01\x02\n\n\r\n\x05\x04\x03\x02\x00\x06\x12\x04\xbd\x01\x0b\x1e\n\r\n\x05\x04\x03\x02\x00\x01\x12\x04\xbd\x01\x1f3\n\r\n\x05\x04\x03\x02\x00\x03\x12\x04\xbd\x0169\n\x0e\n\x04\x04\x03\x03\x00\x12\x06\xbf\x01\x02\xd6\x01\x03\n\r\n\x05\x04\x03\x03\x00\x01\x12\x04\xbf\x01\n\x15\nK\n\x06\x04\x03\x03\x00\x02\x00\x12\x04\xc1\x01\x04\x1e\x1a; The extension number declared within the extension range.\n\n\x0f\n\x07\x04\x03\x03\x00\x02\x00\x04\x12\x04\xc1\x01\x04\x0c\n\x0f\n\x07\x04\x03\x03\x00\x02\x00\x05\x12\x04\xc1\x01\r\x12\n\x0f\n\x07\x04\x03\x03\x00\x02\x00\x01\x12\x04\xc1\x01\x13\x19\n\x0f\n\x07\x04\x03\x03\x00\x02\x00\x03\x12\x04\xc1\x01\x1c\x1d\nz\n\x06\x04\x03\x03\x00\x02\x01\x12\x04\xc5\x01\x04\"\x1aj The fully-qualified name of the extension field. There must be a leading\n dot in front of the full name.\n\n\x0f\n\x07\x04\x03\x03\x00\x02\x01\x04\x12\x04\xc5\x01\x04\x0c\n\x0f\n\x07\x04\x03\x03\x00\x02\x01\x05\x12\x04\xc5\x01\r\x13\n\x0f\n\x07\x04\x03\x03\x00\x02\x01\x01\x12\x04\xc5\x01\x14\x1d\n\x0f\n\x07\x04\x03\x03\x00\x02\x01\x03\x12\x04\xc5\x01 !\n\xa1\x01\n\x06\x04\x03\x03\x00\x02\x02\x12\x04\xca\x01\x04\x1d\x1a\x90\x01 The fully-qualified type name of the extension field. Unlike\n Metadata.type, Declaration.type must have a leading dot for messages\n and enums.\n\n\x0f\n\x07\x04\x03\x03\x00\x02\x02\x04\x12\x04\xca\x01\x04\x0c\n\x0f\n\x07\x04\x03\x03\x00\x02\x02\x05\x12\x04\xca\x01\r\x13\n\x0f\n\x07\x04\x03\x03\x00\x02\x02\x01\x12\x04\xca\x01\x14\x18\n\x0f\n\x07\x04\x03\x03\x00\x02\x02\x03\x12\x04\xca\x01\x1b\x1c\n\xce\x01\n\x06\x04\x03\x03\x00\x02\x03\x12\x04\xcf\x01\x04\x1f\x1a\xbd\x01 If true, indicates that the number is reserved in the extension range,\n and any extension field with the number will fail to compile. Set this\n when a declared extension field is deleted.\n\n\x0f\n\x07\x04\x03\x03\x00\x02\x03\x04\x12\x04\xcf\x01\x04\x0c\n\x0f\n\x07\x04\x03\x03\x00\x02\x03\x05\x12\x04\xcf\x01\r\x11\n\x0f\n\x07\x04\x03\x03\x00\x02\x03\x01\x12\x04\xcf\x01\x12\x1a\n\x0f\n\x07\x04\x03\x03\x00\x02\x03\x03\x12\x04\xcf\x01\x1d\x1e\n\x8a\x01\n\x06\x04\x03\x03\x00\x02\x04\x12\x04\xd3\x01\x04\x1f\x1az If true, indicates that the extension must be defined as repeated.\n Otherwise the extension must be defined as optional.\n\n\x0f\n\x07\x04\x03\x03\x00\x02\x04\x04\x12\x04\xd3\x01\x04\x0c\n\x0f\n\x07\x04\x03\x03\x00\x02\x04\x05\x12\x04\xd3\x01\r\x11\n\x0f\n\x07\x04\x03\x03\x00\x02\x04\x01\x12\x04\xd3\x01\x12\x1a\n\x0f\n\x07\x04\x03\x03\x00\x02\x04\x03\x12\x04\xd3\x01\x1d\x1e\n$\n\x05\x04\x03\x03\x00\t\x12\x04\xd5\x01\x04\x0f\"\x15 removed is_repeated\n\n\x0e\n\x06\x04\x03\x03\x00\t\x00\x12\x04\xd5\x01\r\x0e\n\x0f\n\x07\x04\x03\x03\x00\t\x00\x01\x12\x04\xd5\x01\r\x0e\n\x0f\n\x07\x04\x03\x03\x00\t\x00\x02\x12\x04\xd5\x01\r\x0e\n\xb1\x01\n\x04\x04\x03\x02\x01\x12\x04\xdb\x01\x02F\x1a\xa2\x01 For external users: DO NOT USE. We are in the process of open sourcing\n extension declaration and executing internal cleanups before it can be\n used externally.\n\n\r\n\x05\x04\x03\x02\x01\x04\x12\x04\xdb\x01\x02\n\n\r\n\x05\x04\x03\x02\x01\x06\x12\x04\xdb\x01\x0b\x16\n\r\n\x05\x04\x03\x02\x01\x01\x12\x04\xdb\x01\x17\"\n\r\n\x05\x04\x03\x02\x01\x03\x12\x04\xdb\x01%&\n\r\n\x05\x04\x03\x02\x01\x08\x12\x04\xdb\x01\'E\n\x0e\n\x06\x04\x03\x02\x01\x08\x11\x12\x04\xdb\x01(D\n=\n\x04\x04\x03\x02\x02\x12\x04\xde\x01\x02$\x1a/ Any features defined in the specific edition.\n\n\r\n\x05\x04\x03\x02\x02\x04\x12\x04\xde\x01\x02\n\n\r\n\x05\x04\x03\x02\x02\x06\x12\x04\xde\x01\x0b\x15\n\r\n\x05\x04\x03\x02\x02\x01\x12\x04\xde\x01\x16\x1e\n\r\n\x05\x04\x03\x02\x02\x03\x12\x04\xde\x01!#\n@\n\x04\x04\x03\x04\x00\x12\x06\xe1\x01\x02\xe5\x01\x03\x1a0 The verification state of the extension range.\n\n\r\n\x05\x04\x03\x04\x00\x01\x12\x04\xe1\x01\x07\x18\nC\n\x06\x04\x03\x04\x00\x02\x00\x12\x04\xe3\x01\x04\x14\x1a3 All the extensions of the range must be declared.\n\n\x0f\n\x07\x04\x03\x04\x00\x02\x00\x01\x12\x04\xe3\x01\x04\x0f\n\x0f\n\x07\x04\x03\x04\x00\x02\x00\x02\x12\x04\xe3\x01\x12\x13\n\x0e\n\x06\x04\x03\x04\x00\x02\x01\x12\x04\xe4\x01\x04\x13\n\x0f\n\x07\x04\x03\x04\x00\x02\x01\x01\x12\x04\xe4\x01\x04\x0e\n\x0f\n\x07\x04\x03\x04\x00\x02\x01\x02\x12\x04\xe4\x01\x11\x12\n\x8e\x01\n\x04\x04\x03\x02\x03\x12\x06\xea\x01\x02\xeb\x01;\x1a~ The verification state of the range.\n TODO: flip the default to DECLARATION once all empty ranges\n are marked as UNVERIFIED.\n\n\r\n\x05\x04\x03\x02\x03\x04\x12\x04\xea\x01\x02\n\n\r\n\x05\x04\x03\x02\x03\x06\x12\x04\xea\x01\x0b\x1c\n\r\n\x05\x04\x03\x02\x03\x01\x12\x04\xea\x01\x1d)\n\r\n\x05\x04\x03\x02\x03\x03\x12\x04\xea\x01,-\n\r\n\x05\x04\x03\x02\x03\x08\x12\x04\xeb\x01\x06:\n\r\n\x05\x04\x03\x02\x03\x07\x12\x04\xeb\x01\x11\x1b\n\x0e\n\x06\x04\x03\x02\x03\x08\x11\x12\x04\xeb\x01\x1d9\nZ\n\x03\x04\x03\x05\x12\x04\xee\x01\x02\x19\x1aM Clients can define custom options in extensions of this message. See above.\n\n\x0c\n\x04\x04\x03\x05\x00\x12\x04\xee\x01\r\x18\n\r\n\x05\x04\x03\x05\x00\x01\x12\x04\xee\x01\r\x11\n\r\n\x05\x04\x03\x05\x00\x02\x12\x04\xee\x01\x15\x18\n3\n\x02\x04\x04\x12\x06\xf2\x01\x00\xda\x02\x01\x1a% Describes a field within a message.\n\n\x0b\n\x03\x04\x04\x01\x12\x04\xf2\x01\x08\x1c\n\x0e\n\x04\x04\x04\x04\x00\x12\x06\xf3\x01\x02\x93\x02\x03\n\r\n\x05\x04\x04\x04\x00\x01\x12\x04\xf3\x01\x07\x0b\nS\n\x06\x04\x04\x04\x00\x02\x00\x12\x04\xf6\x01\x04\x14\x1aC 0 is reserved for errors.\n Order is weird for historical reasons.\n\n\x0f\n\x07\x04\x04\x04\x00\x02\x00\x01\x12\x04\xf6\x01\x04\x0f\n\x0f\n\x07\x04\x04\x04\x00\x02\x00\x02\x12\x04\xf6\x01\x12\x13\n\x0e\n\x06\x04\x04\x04\x00\x02\x01\x12\x04\xf7\x01\x04\x13\n\x0f\n\x07\x04\x04\x04\x00\x02\x01\x01\x12\x04\xf7\x01\x04\x0e\n\x0f\n\x07\x04\x04\x04\x00\x02\x01\x02\x12\x04\xf7\x01\x11\x12\nw\n\x06\x04\x04\x04\x00\x02\x02\x12\x04\xfa\x01\x04\x13\x1ag Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if\n negative values are likely.\n\n\x0f\n\x07\x04\x04\x04\x00\x02\x02\x01\x12\x04\xfa\x01\x04\x0e\n\x0f\n\x07\x04\x04\x04\x00\x02\x02\x02\x12\x04\xfa\x01\x11\x12\n\x0e\n\x06\x04\x04\x04\x00\x02\x03\x12\x04\xfb\x01\x04\x14\n\x0f\n\x07\x04\x04\x04\x00\x02\x03\x01\x12\x04\xfb\x01\x04\x0f\n\x0f\n\x07\x04\x04\x04\x00\x02\x03\x02\x12\x04\xfb\x01\x12\x13\nw\n\x06\x04\x04\x04\x00\x02\x04\x12\x04\xfe\x01\x04\x13\x1ag Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if\n negative values are likely.\n\n\x0f\n\x07\x04\x04\x04\x00\x02\x04\x01\x12\x04\xfe\x01\x04\x0e\n\x0f\n\x07\x04\x04\x04\x00\x02\x04\x02\x12\x04\xfe\x01\x11\x12\n\x0e\n\x06\x04\x04\x04\x00\x02\x05\x12\x04\xff\x01\x04\x15\n\x0f\n\x07\x04\x04\x04\x00\x02\x05\x01\x12\x04\xff\x01\x04\x10\n\x0f\n\x07\x04\x04\x04\x00\x02\x05\x02\x12\x04\xff\x01\x13\x14\n\x0e\n\x06\x04\x04\x04\x00\x02\x06\x12\x04\x80\x02\x04\x15\n\x0f\n\x07\x04\x04\x04\x00\x02\x06\x01\x12\x04\x80\x02\x04\x10\n\x0f\n\x07\x04\x04\x04\x00\x02\x06\x02\x12\x04\x80\x02\x13\x14\n\x0e\n\x06\x04\x04\x04\x00\x02\x07\x12\x04\x81\x02\x04\x12\n\x0f\n\x07\x04\x04\x04\x00\x02\x07\x01\x12\x04\x81\x02\x04\r\n\x0f\n\x07\x04\x04\x04\x00\x02\x07\x02\x12\x04\x81\x02\x10\x11\n\x0e\n\x06\x04\x04\x04\x00\x02\x08\x12\x04\x82\x02\x04\x14\n\x0f\n\x07\x04\x04\x04\x00\x02\x08\x01\x12\x04\x82\x02\x04\x0f\n\x0f\n\x07\x04\x04\x04\x00\x02\x08\x02\x12\x04\x82\x02\x12\x13\n\xc6\x02\n\x06\x04\x04\x04\x00\x02\t\x12\x04\x88\x02\x04\x14\x1a\xb5\x02 Tag-delimited aggregate.\n Group type is deprecated and not supported after google.protobuf. However, Proto3\n implementations should still be able to parse the group wire format and\n treat group fields as unknown fields. In Editions, the group wire format\n can be enabled via the `message_encoding` feature.\n\n\x0f\n\x07\x04\x04\x04\x00\x02\t\x01\x12\x04\x88\x02\x04\x0e\n\x0f\n\x07\x04\x04\x04\x00\x02\t\x02\x12\x04\x88\x02\x11\x13\n-\n\x06\x04\x04\x04\x00\x02\n\x12\x04\x89\x02\x04\x16\"\x1d Length-delimited aggregate.\n\n\x0f\n\x07\x04\x04\x04\x00\x02\n\x01\x12\x04\x89\x02\x04\x10\n\x0f\n\x07\x04\x04\x04\x00\x02\n\x02\x12\x04\x89\x02\x13\x15\n#\n\x06\x04\x04\x04\x00\x02\x0b\x12\x04\x8c\x02\x04\x14\x1a\x13 New in version 2.\n\n\x0f\n\x07\x04\x04\x04\x00\x02\x0b\x01\x12\x04\x8c\x02\x04\x0e\n\x0f\n\x07\x04\x04\x04\x00\x02\x0b\x02\x12\x04\x8c\x02\x11\x13\n\x0e\n\x06\x04\x04\x04\x00\x02\x0c\x12\x04\x8d\x02\x04\x15\n\x0f\n\x07\x04\x04\x04\x00\x02\x0c\x01\x12\x04\x8d\x02\x04\x0f\n\x0f\n\x07\x04\x04\x04\x00\x02\x0c\x02\x12\x04\x8d\x02\x12\x14\n\x0e\n\x06\x04\x04\x04\x00\x02\r\x12\x04\x8e\x02\x04\x13\n\x0f\n\x07\x04\x04\x04\x00\x02\r\x01\x12\x04\x8e\x02\x04\r\n\x0f\n\x07\x04\x04\x04\x00\x02\r\x02\x12\x04\x8e\x02\x10\x12\n\x0e\n\x06\x04\x04\x04\x00\x02\x0e\x12\x04\x8f\x02\x04\x17\n\x0f\n\x07\x04\x04\x04\x00\x02\x0e\x01\x12\x04\x8f\x02\x04\x11\n\x0f\n\x07\x04\x04\x04\x00\x02\x0e\x02\x12\x04\x8f\x02\x14\x16\n\x0e\n\x06\x04\x04\x04\x00\x02\x0f\x12\x04\x90\x02\x04\x17\n\x0f\n\x07\x04\x04\x04\x00\x02\x0f\x01\x12\x04\x90\x02\x04\x11\n\x0f\n\x07\x04\x04\x04\x00\x02\x0f\x02\x12\x04\x90\x02\x14\x16\n\'\n\x06\x04\x04\x04\x00\x02\x10\x12\x04\x91\x02\x04\x15\"\x17 Uses ZigZag encoding.\n\n\x0f\n\x07\x04\x04\x04\x00\x02\x10\x01\x12\x04\x91\x02\x04\x0f\n\x0f\n\x07\x04\x04\x04\x00\x02\x10\x02\x12\x04\x91\x02\x12\x14\n\'\n\x06\x04\x04\x04\x00\x02\x11\x12\x04\x92\x02\x04\x15\"\x17 Uses ZigZag encoding.\n\n\x0f\n\x07\x04\x04\x04\x00\x02\x11\x01\x12\x04\x92\x02\x04\x0f\n\x0f\n\x07\x04\x04\x04\x00\x02\x11\x02\x12\x04\x92\x02\x12\x14\n\x0e\n\x04\x04\x04\x04\x01\x12\x06\x95\x02\x02\x9d\x02\x03\n\r\n\x05\x04\x04\x04\x01\x01\x12\x04\x95\x02\x07\x0c\n*\n\x06\x04\x04\x04\x01\x02\x00\x12\x04\x97\x02\x04\x17\x1a\x1a 0 is reserved for errors\n\n\x0f\n\x07\x04\x04\x04\x01\x02\x00\x01\x12\x04\x97\x02\x04\x12\n\x0f\n\x07\x04\x04\x04\x01\x02\x00\x02\x12\x04\x97\x02\x15\x16\n\x0e\n\x06\x04\x04\x04\x01\x02\x01\x12\x04\x98\x02\x04\x17\n\x0f\n\x07\x04\x04\x04\x01\x02\x01\x01\x12\x04\x98\x02\x04\x12\n\x0f\n\x07\x04\x04\x04\x01\x02\x01\x02\x12\x04\x98\x02\x15\x16\n\xcc\x01\n\x06\x04\x04\x04\x01\x02\x02\x12\x04\x9c\x02\x04\x17\x1a\xbb\x01 The required label is only allowed in google.protobuf. In proto3 and Editions\n it\'s explicitly prohibited. In Editions, the `field_presence` feature\n can be used to get this behavior.\n\n\x0f\n\x07\x04\x04\x04\x01\x02\x02\x01\x12\x04\x9c\x02\x04\x12\n\x0f\n\x07\x04\x04\x04\x01\x02\x02\x02\x12\x04\x9c\x02\x15\x16\n\x0c\n\x04\x04\x04\x02\x00\x12\x04\x9f\x02\x02\x1b\n\r\n\x05\x04\x04\x02\x00\x04\x12\x04\x9f\x02\x02\n\n\r\n\x05\x04\x04\x02\x00\x05\x12\x04\x9f\x02\x0b\x11\n\r\n\x05\x04\x04\x02\x00\x01\x12\x04\x9f\x02\x12\x16\n\r\n\x05\x04\x04\x02\x00\x03\x12\x04\x9f\x02\x19\x1a\n\x0c\n\x04\x04\x04\x02\x01\x12\x04\xa0\x02\x02\x1c\n\r\n\x05\x04\x04\x02\x01\x04\x12\x04\xa0\x02\x02\n\n\r\n\x05\x04\x04\x02\x01\x05\x12\x04\xa0\x02\x0b\x10\n\r\n\x05\x04\x04\x02\x01\x01\x12\x04\xa0\x02\x11\x17\n\r\n\x05\x04\x04\x02\x01\x03\x12\x04\xa0\x02\x1a\x1b\n\x0c\n\x04\x04\x04\x02\x02\x12\x04\xa1\x02\x02\x1b\n\r\n\x05\x04\x04\x02\x02\x04\x12\x04\xa1\x02\x02\n\n\r\n\x05\x04\x04\x02\x02\x06\x12\x04\xa1\x02\x0b\x10\n\r\n\x05\x04\x04\x02\x02\x01\x12\x04\xa1\x02\x11\x16\n\r\n\x05\x04\x04\x02\x02\x03\x12\x04\xa1\x02\x19\x1a\n\x9c\x01\n\x04\x04\x04\x02\x03\x12\x04\xa5\x02\x02\x19\x1a\x8d\x01 If type_name is set, this need not be set. If both this and type_name\n are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP.\n\n\r\n\x05\x04\x04\x02\x03\x04\x12\x04\xa5\x02\x02\n\n\r\n\x05\x04\x04\x02\x03\x06\x12\x04\xa5\x02\x0b\x0f\n\r\n\x05\x04\x04\x02\x03\x01\x12\x04\xa5\x02\x10\x14\n\r\n\x05\x04\x04\x02\x03\x03\x12\x04\xa5\x02\x17\x18\n\xb7\x02\n\x04\x04\x04\x02\x04\x12\x04\xac\x02\x02 \x1a\xa8\x02 For message and enum types, this is the name of the type. If the name\n starts with a \'.\', it is fully-qualified. Otherwise, C++-like scoping\n rules are used to find the type (i.e. first the nested types within this\n message are searched, then within the parent, on up to the root\n namespace).\n\n\r\n\x05\x04\x04\x02\x04\x04\x12\x04\xac\x02\x02\n\n\r\n\x05\x04\x04\x02\x04\x05\x12\x04\xac\x02\x0b\x11\n\r\n\x05\x04\x04\x02\x04\x01\x12\x04\xac\x02\x12\x1b\n\r\n\x05\x04\x04\x02\x04\x03\x12\x04\xac\x02\x1e\x1f\n~\n\x04\x04\x04\x02\x05\x12\x04\xb0\x02\x02\x1f\x1ap For extensions, this is the name of the type being extended. It is\n resolved in the same manner as type_name.\n\n\r\n\x05\x04\x04\x02\x05\x04\x12\x04\xb0\x02\x02\n\n\r\n\x05\x04\x04\x02\x05\x05\x12\x04\xb0\x02\x0b\x11\n\r\n\x05\x04\x04\x02\x05\x01\x12\x04\xb0\x02\x12\x1a\n\r\n\x05\x04\x04\x02\x05\x03\x12\x04\xb0\x02\x1d\x1e\n\x91\x02\n\x04\x04\x04\x02\x06\x12\x04\xb6\x02\x02$\x1a\x82\x02 For numeric types, contains the original text representation of the value.\n For booleans, \"true\" or \"false\".\n For strings, contains the default text contents (not escaped in any way).\n For bytes, contains the C escaped value. All bytes >= 128 are escaped.\n\n\r\n\x05\x04\x04\x02\x06\x04\x12\x04\xb6\x02\x02\n\n\r\n\x05\x04\x04\x02\x06\x05\x12\x04\xb6\x02\x0b\x11\n\r\n\x05\x04\x04\x02\x06\x01\x12\x04\xb6\x02\x12\x1f\n\r\n\x05\x04\x04\x02\x06\x03\x12\x04\xb6\x02\"#\n\x84\x01\n\x04\x04\x04\x02\x07\x12\x04\xba\x02\x02!\x1av If set, gives the index of a oneof in the containing type\'s oneof_decl\n list. This field is a member of that oneof.\n\n\r\n\x05\x04\x04\x02\x07\x04\x12\x04\xba\x02\x02\n\n\r\n\x05\x04\x04\x02\x07\x05\x12\x04\xba\x02\x0b\x10\n\r\n\x05\x04\x04\x02\x07\x01\x12\x04\xba\x02\x11\x1c\n\r\n\x05\x04\x04\x02\x07\x03\x12\x04\xba\x02\x1f \n\xfa\x01\n\x04\x04\x04\x02\x08\x12\x04\xc0\x02\x02!\x1a\xeb\x01 JSON name of this field. The value is set by protocol compiler. If the\n user has set a \"json_name\" option on this field, that option\'s value\n will be used. Otherwise, it\'s deduced from the field\'s name by converting\n it to camelCase.\n\n\r\n\x05\x04\x04\x02\x08\x04\x12\x04\xc0\x02\x02\n\n\r\n\x05\x04\x04\x02\x08\x05\x12\x04\xc0\x02\x0b\x11\n\r\n\x05\x04\x04\x02\x08\x01\x12\x04\xc0\x02\x12\x1b\n\r\n\x05\x04\x04\x02\x08\x03\x12\x04\xc0\x02\x1e \n\x0c\n\x04\x04\x04\x02\t\x12\x04\xc2\x02\x02$\n\r\n\x05\x04\x04\x02\t\x04\x12\x04\xc2\x02\x02\n\n\r\n\x05\x04\x04\x02\t\x06\x12\x04\xc2\x02\x0b\x17\n\r\n\x05\x04\x04\x02\t\x01\x12\x04\xc2\x02\x18\x1f\n\r\n\x05\x04\x04\x02\t\x03\x12\x04\xc2\x02\"#\n\xb0\t\n\x04\x04\x04\x02\n\x12\x04\xd9\x02\x02%\x1a\xa1\t If true, this is a proto3 \"optional\". When a proto3 field is optional, it\n tracks presence regardless of field type.\n\n When proto3_optional is true, this field must belong to a oneof to signal\n to old proto3 clients that presence is tracked for this field. This oneof\n is known as a \"synthetic\" oneof, and this field must be its sole member\n (each proto3 optional field gets its own synthetic oneof). Synthetic oneofs\n exist in the descriptor only, and do not generate any API. Synthetic oneofs\n must be ordered after all \"real\" oneofs.\n\n For message fields, proto3_optional doesn\'t create any semantic change,\n since non-repeated message fields always track presence. However it still\n indicates the semantic detail of whether the user wrote \"optional\" or not.\n This can be useful for round-tripping the .proto file. For consistency we\n give message fields a synthetic oneof also, even though it is not required\n to track presence. This is especially important because the parser can\'t\n tell if a field is a message or an enum, so it must always create a\n synthetic oneof.\n\n Proto2 optional fields do not set this flag, because they already indicate\n optional with `LABEL_OPTIONAL`.\n\n\r\n\x05\x04\x04\x02\n\x04\x12\x04\xd9\x02\x02\n\n\r\n\x05\x04\x04\x02\n\x05\x12\x04\xd9\x02\x0b\x0f\n\r\n\x05\x04\x04\x02\n\x01\x12\x04\xd9\x02\x10\x1f\n\r\n\x05\x04\x04\x02\n\x03\x12\x04\xd9\x02\"$\n\"\n\x02\x04\x05\x12\x06\xdd\x02\x00\xe0\x02\x01\x1a\x14 Describes a oneof.\n\n\x0b\n\x03\x04\x05\x01\x12\x04\xdd\x02\x08\x1c\n\x0c\n\x04\x04\x05\x02\x00\x12\x04\xde\x02\x02\x1b\n\r\n\x05\x04\x05\x02\x00\x04\x12\x04\xde\x02\x02\n\n\r\n\x05\x04\x05\x02\x00\x05\x12\x04\xde\x02\x0b\x11\n\r\n\x05\x04\x05\x02\x00\x01\x12\x04\xde\x02\x12\x16\n\r\n\x05\x04\x05\x02\x00\x03\x12\x04\xde\x02\x19\x1a\n\x0c\n\x04\x04\x05\x02\x01\x12\x04\xdf\x02\x02$\n\r\n\x05\x04\x05\x02\x01\x04\x12\x04\xdf\x02\x02\n\n\r\n\x05\x04\x05\x02\x01\x06\x12\x04\xdf\x02\x0b\x17\n\r\n\x05\x04\x05\x02\x01\x01\x12\x04\xdf\x02\x18\x1f\n\r\n\x05\x04\x05\x02\x01\x03\x12\x04\xdf\x02\"#\n\'\n\x02\x04\x06\x12\x06\xe3\x02\x00\x80\x03\x01\x1a\x19 Describes an enum type.\n\n\x0b\n\x03\x04\x06\x01\x12\x04\xe3\x02\x08\x1b\n\x0c\n\x04\x04\x06\x02\x00\x12\x04\xe4\x02\x02\x1b\n\r\n\x05\x04\x06\x02\x00\x04\x12\x04\xe4\x02\x02\n\n\r\n\x05\x04\x06\x02\x00\x05\x12\x04\xe4\x02\x0b\x11\n\r\n\x05\x04\x06\x02\x00\x01\x12\x04\xe4\x02\x12\x16\n\r\n\x05\x04\x06\x02\x00\x03\x12\x04\xe4\x02\x19\x1a\n\x0c\n\x04\x04\x06\x02\x01\x12\x04\xe6\x02\x02.\n\r\n\x05\x04\x06\x02\x01\x04\x12\x04\xe6\x02\x02\n\n\r\n\x05\x04\x06\x02\x01\x06\x12\x04\xe6\x02\x0b#\n\r\n\x05\x04\x06\x02\x01\x01\x12\x04\xe6\x02$)\n\r\n\x05\x04\x06\x02\x01\x03\x12\x04\xe6\x02,-\n\x0c\n\x04\x04\x06\x02\x02\x12\x04\xe8\x02\x02#\n\r\n\x05\x04\x06\x02\x02\x04\x12\x04\xe8\x02\x02\n\n\r\n\x05\x04\x06\x02\x02\x06\x12\x04\xe8\x02\x0b\x16\n\r\n\x05\x04\x06\x02\x02\x01\x12\x04\xe8\x02\x17\x1e\n\r\n\x05\x04\x06\x02\x02\x03\x12\x04\xe8\x02!\"\n\xaf\x02\n\x04\x04\x06\x03\x00\x12\x06\xf0\x02\x02\xf3\x02\x03\x1a\x9e\x02 Range of reserved numeric values. Reserved values may not be used by\n entries in the same enum. Reserved ranges may not overlap.\n\n Note that this is distinct from DescriptorProto.ReservedRange in that it\n is inclusive such that it can appropriately represent the entire int32\n domain.\n\n\r\n\x05\x04\x06\x03\x00\x01\x12\x04\xf0\x02\n\x1b\n\x1c\n\x06\x04\x06\x03\x00\x02\x00\x12\x04\xf1\x02\x04\x1d\"\x0c Inclusive.\n\n\x0f\n\x07\x04\x06\x03\x00\x02\x00\x04\x12\x04\xf1\x02\x04\x0c\n\x0f\n\x07\x04\x06\x03\x00\x02\x00\x05\x12\x04\xf1\x02\r\x12\n\x0f\n\x07\x04\x06\x03\x00\x02\x00\x01\x12\x04\xf1\x02\x13\x18\n\x0f\n\x07\x04\x06\x03\x00\x02\x00\x03\x12\x04\xf1\x02\x1b\x1c\n\x1c\n\x06\x04\x06\x03\x00\x02\x01\x12\x04\xf2\x02\x04\x1b\"\x0c Inclusive.\n\n\x0f\n\x07\x04\x06\x03\x00\x02\x01\x04\x12\x04\xf2\x02\x04\x0c\n\x0f\n\x07\x04\x06\x03\x00\x02\x01\x05\x12\x04\xf2\x02\r\x12\n\x0f\n\x07\x04\x06\x03\x00\x02\x01\x01\x12\x04\xf2\x02\x13\x16\n\x0f\n\x07\x04\x06\x03\x00\x02\x01\x03\x12\x04\xf2\x02\x19\x1a\n\xaa\x01\n\x04\x04\x06\x02\x03\x12\x04\xf8\x02\x020\x1a\x9b\x01 Range of reserved numeric values. Reserved numeric values may not be used\n by enum values in the same enum declaration. Reserved ranges may not\n overlap.\n\n\r\n\x05\x04\x06\x02\x03\x04\x12\x04\xf8\x02\x02\n\n\r\n\x05\x04\x06\x02\x03\x06\x12\x04\xf8\x02\x0b\x1c\n\r\n\x05\x04\x06\x02\x03\x01\x12\x04\xf8\x02\x1d+\n\r\n\x05\x04\x06\x02\x03\x03\x12\x04\xf8\x02./\nl\n\x04\x04\x06\x02\x04\x12\x04\xfc\x02\x02$\x1a^ Reserved enum value names, which may not be reused. A given name may only\n be reserved once.\n\n\r\n\x05\x04\x06\x02\x04\x04\x12\x04\xfc\x02\x02\n\n\r\n\x05\x04\x06\x02\x04\x05\x12\x04\xfc\x02\x0b\x11\n\r\n\x05\x04\x06\x02\x04\x01\x12\x04\xfc\x02\x12\x1f\n\r\n\x05\x04\x06\x02\x04\x03\x12\x04\xfc\x02\"#\nC\n\x04\x04\x06\x02\x05\x12\x04\xff\x02\x02+\x1a5 Support for `export` and `local` keywords on enums.\n\n\r\n\x05\x04\x06\x02\x05\x04\x12\x04\xff\x02\x02\n\n\r\n\x05\x04\x06\x02\x05\x06\x12\x04\xff\x02\x0b\x1b\n\r\n\x05\x04\x06\x02\x05\x01\x12\x04\xff\x02\x1c&\n\r\n\x05\x04\x06\x02\x05\x03\x12\x04\xff\x02)*\n1\n\x02\x04\x07\x12\x06\x83\x03\x00\x88\x03\x01\x1a# Describes a value within an enum.\n\n\x0b\n\x03\x04\x07\x01\x12\x04\x83\x03\x08 \n\x0c\n\x04\x04\x07\x02\x00\x12\x04\x84\x03\x02\x1b\n\r\n\x05\x04\x07\x02\x00\x04\x12\x04\x84\x03\x02\n\n\r\n\x05\x04\x07\x02\x00\x05\x12\x04\x84\x03\x0b\x11\n\r\n\x05\x04\x07\x02\x00\x01\x12\x04\x84\x03\x12\x16\n\r\n\x05\x04\x07\x02\x00\x03\x12\x04\x84\x03\x19\x1a\n\x0c\n\x04\x04\x07\x02\x01\x12\x04\x85\x03\x02\x1c\n\r\n\x05\x04\x07\x02\x01\x04\x12\x04\x85\x03\x02\n\n\r\n\x05\x04\x07\x02\x01\x05\x12\x04\x85\x03\x0b\x10\n\r\n\x05\x04\x07\x02\x01\x01\x12\x04\x85\x03\x11\x17\n\r\n\x05\x04\x07\x02\x01\x03\x12\x04\x85\x03\x1a\x1b\n\x0c\n\x04\x04\x07\x02\x02\x12\x04\x87\x03\x02(\n\r\n\x05\x04\x07\x02\x02\x04\x12\x04\x87\x03\x02\n\n\r\n\x05\x04\x07\x02\x02\x06\x12\x04\x87\x03\x0b\x1b\n\r\n\x05\x04\x07\x02\x02\x01\x12\x04\x87\x03\x1c#\n\r\n\x05\x04\x07\x02\x02\x03\x12\x04\x87\x03&\'\n$\n\x02\x04\x08\x12\x06\x8b\x03\x00\x90\x03\x01\x1a\x16 Describes a service.\n\n\x0b\n\x03\x04\x08\x01\x12\x04\x8b\x03\x08\x1e\n\x0c\n\x04\x04\x08\x02\x00\x12\x04\x8c\x03\x02\x1b\n\r\n\x05\x04\x08\x02\x00\x04\x12\x04\x8c\x03\x02\n\n\r\n\x05\x04\x08\x02\x00\x05\x12\x04\x8c\x03\x0b\x11\n\r\n\x05\x04\x08\x02\x00\x01\x12\x04\x8c\x03\x12\x16\n\r\n\x05\x04\x08\x02\x00\x03\x12\x04\x8c\x03\x19\x1a\n\x0c\n\x04\x04\x08\x02\x01\x12\x04\x8d\x03\x02,\n\r\n\x05\x04\x08\x02\x01\x04\x12\x04\x8d\x03\x02\n\n\r\n\x05\x04\x08\x02\x01\x06\x12\x04\x8d\x03\x0b \n\r\n\x05\x04\x08\x02\x01\x01\x12\x04\x8d\x03!\'\n\r\n\x05\x04\x08\x02\x01\x03\x12\x04\x8d\x03*+\n\x0c\n\x04\x04\x08\x02\x02\x12\x04\x8f\x03\x02&\n\r\n\x05\x04\x08\x02\x02\x04\x12\x04\x8f\x03\x02\n\n\r\n\x05\x04\x08\x02\x02\x06\x12\x04\x8f\x03\x0b\x19\n\r\n\x05\x04\x08\x02\x02\x01\x12\x04\x8f\x03\x1a!\n\r\n\x05\x04\x08\x02\x02\x03\x12\x04\x8f\x03$%\n0\n\x02\x04\t\x12\x06\x93\x03\x00\xa1\x03\x01\x1a\" Describes a method of a service.\n\n\x0b\n\x03\x04\t\x01\x12\x04\x93\x03\x08\x1d\n\x0c\n\x04\x04\t\x02\x00\x12\x04\x94\x03\x02\x1b\n\r\n\x05\x04\t\x02\x00\x04\x12\x04\x94\x03\x02\n\n\r\n\x05\x04\t\x02\x00\x05\x12\x04\x94\x03\x0b\x11\n\r\n\x05\x04\t\x02\x00\x01\x12\x04\x94\x03\x12\x16\n\r\n\x05\x04\t\x02\x00\x03\x12\x04\x94\x03\x19\x1a\n\x97\x01\n\x04\x04\t\x02\x01\x12\x04\x98\x03\x02!\x1a\x88\x01 Input and output type names. These are resolved in the same way as\n FieldDescriptorProto.type_name, but must refer to a message type.\n\n\r\n\x05\x04\t\x02\x01\x04\x12\x04\x98\x03\x02\n\n\r\n\x05\x04\t\x02\x01\x05\x12\x04\x98\x03\x0b\x11\n\r\n\x05\x04\t\x02\x01\x01\x12\x04\x98\x03\x12\x1c\n\r\n\x05\x04\t\x02\x01\x03\x12\x04\x98\x03\x1f \n\x0c\n\x04\x04\t\x02\x02\x12\x04\x99\x03\x02\"\n\r\n\x05\x04\t\x02\x02\x04\x12\x04\x99\x03\x02\n\n\r\n\x05\x04\t\x02\x02\x05\x12\x04\x99\x03\x0b\x11\n\r\n\x05\x04\t\x02\x02\x01\x12\x04\x99\x03\x12\x1d\n\r\n\x05\x04\t\x02\x02\x03\x12\x04\x99\x03 !\n\x0c\n\x04\x04\t\x02\x03\x12\x04\x9b\x03\x02%\n\r\n\x05\x04\t\x02\x03\x04\x12\x04\x9b\x03\x02\n\n\r\n\x05\x04\t\x02\x03\x06\x12\x04\x9b\x03\x0b\x18\n\r\n\x05\x04\t\x02\x03\x01\x12\x04\x9b\x03\x19 \n\r\n\x05\x04\t\x02\x03\x03\x12\x04\x9b\x03#$\nE\n\x04\x04\t\x02\x04\x12\x04\x9e\x03\x027\x1a7 Identifies if client streams multiple client messages\n\n\r\n\x05\x04\t\x02\x04\x04\x12\x04\x9e\x03\x02\n\n\r\n\x05\x04\t\x02\x04\x05\x12\x04\x9e\x03\x0b\x0f\n\r\n\x05\x04\t\x02\x04\x01\x12\x04\x9e\x03\x10 \n\r\n\x05\x04\t\x02\x04\x03\x12\x04\x9e\x03#$\n\r\n\x05\x04\t\x02\x04\x08\x12\x04\x9e\x03%6\n\r\n\x05\x04\t\x02\x04\x07\x12\x04\x9e\x0305\nE\n\x04\x04\t\x02\x05\x12\x04\xa0\x03\x027\x1a7 Identifies if server streams multiple server messages\n\n\r\n\x05\x04\t\x02\x05\x04\x12\x04\xa0\x03\x02\n\n\r\n\x05\x04\t\x02\x05\x05\x12\x04\xa0\x03\x0b\x0f\n\r\n\x05\x04\t\x02\x05\x01\x12\x04\xa0\x03\x10 \n\r\n\x05\x04\t\x02\x05\x03\x12\x04\xa0\x03#$\n\r\n\x05\x04\t\x02\x05\x08\x12\x04\xa0\x03%6\n\r\n\x05\x04\t\x02\x05\x07\x12\x04\xa0\x0305\n\xaf\x0e\n\x02\x04\n\x12\x06\xc3\x03\x00\xc2\x04\x012N ===================================================================\n Options\n2\xd0\r Each of the definitions above may have \"options\" attached. These are\n just annotations which may cause code to be generated slightly differently\n or may contain hints for code that manipulates protocol messages.\n\n Clients may define custom options as extensions of the *Options messages.\n These extensions may not yet be known at parsing time, so the parser cannot\n store the values in them. Instead it stores them in a field in the *Options\n message called uninterpreted_option. This field must have the same name\n across all *Options messages. We then use this field to populate the\n extensions when we build a descriptor, at which point all protos have been\n parsed and so all extensions are known.\n\n Extension numbers for custom options may be chosen as follows:\n * For options which will only be used within a single application or\n organization, or for experimental options, use field numbers 50000\n through 99999. It is up to you to ensure that you do not use the\n same number for multiple options.\n * For options which will be published and used publicly by multiple\n independent entities, e-mail protobuf-global-extension-registry@google.com\n to reserve extension numbers. Simply provide your project name (e.g.\n Objective-C plugin) and your project website (if available) -- there\'s no\n need to explain how you intend to use them. Usually you only need one\n extension number. You can declare multiple options with only one extension\n number by putting them in a sub-message. See the Custom Options section of\n the docs for examples:\n https://developers.google.com/protocol-buffers/docs/proto#options\n If this turns out to be popular, a web service will be set up\n to automatically assign option numbers.\n\n\x0b\n\x03\x04\n\x01\x12\x04\xc3\x03\x08\x13\n\xf4\x01\n\x04\x04\n\x02\x00\x12\x04\xc9\x03\x02#\x1a\xe5\x01 Sets the Java package where classes generated from this .proto will be\n placed. By default, the proto package is used, but this is often\n inappropriate because proto packages do not normally start with backwards\n domain names.\n\n\r\n\x05\x04\n\x02\x00\x04\x12\x04\xc9\x03\x02\n\n\r\n\x05\x04\n\x02\x00\x05\x12\x04\xc9\x03\x0b\x11\n\r\n\x05\x04\n\x02\x00\x01\x12\x04\xc9\x03\x12\x1e\n\r\n\x05\x04\n\x02\x00\x03\x12\x04\xc9\x03!\"\n\xf1\x02\n\x04\x04\n\x02\x01\x12\x04\xd0\x03\x02+\x1a\xe2\x02 Controls the name of the wrapper Java class generated for the .proto file.\n That class will always contain the .proto file\'s getDescriptor() method as\n well as any top-level extensions defined in the .proto file.\n If java_multiple_files is disabled, then all the other classes from the\n .proto file will be nested inside the single wrapper outer class.\n\n\r\n\x05\x04\n\x02\x01\x04\x12\x04\xd0\x03\x02\n\n\r\n\x05\x04\n\x02\x01\x05\x12\x04\xd0\x03\x0b\x11\n\r\n\x05\x04\n\x02\x01\x01\x12\x04\xd0\x03\x12&\n\r\n\x05\x04\n\x02\x01\x03\x12\x04\xd0\x03)*\n\xa6\x03\n\x04\x04\n\x02\x02\x12\x04\xd8\x03\x02;\x1a\x97\x03 If enabled, then the Java code generator will generate a separate .java\n file for each top-level message, enum, and service defined in the .proto\n file. Thus, these types will *not* be nested inside the wrapper class\n named by java_outer_classname. However, the wrapper class will still be\n generated to contain the file\'s getDescriptor() method as well as any\n top-level extensions defined in the file.\n\n\r\n\x05\x04\n\x02\x02\x04\x12\x04\xd8\x03\x02\n\n\r\n\x05\x04\n\x02\x02\x05\x12\x04\xd8\x03\x0b\x0f\n\r\n\x05\x04\n\x02\x02\x01\x12\x04\xd8\x03\x10#\n\r\n\x05\x04\n\x02\x02\x03\x12\x04\xd8\x03&(\n\r\n\x05\x04\n\x02\x02\x08\x12\x04\xd8\x03):\n\r\n\x05\x04\n\x02\x02\x07\x12\x04\xd8\x0349\n)\n\x04\x04\n\x02\x03\x12\x04\xdb\x03\x02E\x1a\x1b This option does nothing.\n\n\r\n\x05\x04\n\x02\x03\x04\x12\x04\xdb\x03\x02\n\n\r\n\x05\x04\n\x02\x03\x05\x12\x04\xdb\x03\x0b\x0f\n\r\n\x05\x04\n\x02\x03\x01\x12\x04\xdb\x03\x10-\n\r\n\x05\x04\n\x02\x03\x03\x12\x04\xdb\x0302\n\r\n\x05\x04\n\x02\x03\x08\x12\x04\xdb\x033D\n\x0e\n\x06\x04\n\x02\x03\x08\x03\x12\x04\xdb\x034C\n\xcf\x03\n\x04\x04\n\x02\x04\x12\x04\xe7\x03\x02>\x1a\xc0\x03 A proto2 file can set this to true to opt in to UTF-8 checking for Java,\n which will throw an exception if invalid UTF-8 is parsed from the wire or\n assigned to a string field.\n\n TODO: clarify exactly what kinds of field types this option\n applies to, and update these docs accordingly.\n\n Proto3 files already perform these checks. Setting the option explicitly to\n false has no effect: it cannot be used to opt proto3 files out of UTF-8\n checks.\n\n\r\n\x05\x04\n\x02\x04\x04\x12\x04\xe7\x03\x02\n\n\r\n\x05\x04\n\x02\x04\x05\x12\x04\xe7\x03\x0b\x0f\n\r\n\x05\x04\n\x02\x04\x01\x12\x04\xe7\x03\x10&\n\r\n\x05\x04\n\x02\x04\x03\x12\x04\xe7\x03)+\n\r\n\x05\x04\n\x02\x04\x08\x12\x04\xe7\x03,=\n\r\n\x05\x04\n\x02\x04\x07\x12\x04\xe7\x037<\nL\n\x04\x04\n\x04\x00\x12\x06\xea\x03\x02\xef\x03\x03\x1a< Generated classes can be optimized for speed or code size.\n\n\r\n\x05\x04\n\x04\x00\x01\x12\x04\xea\x03\x07\x13\nD\n\x06\x04\n\x04\x00\x02\x00\x12\x04\xeb\x03\x04\x0e\"4 Generate complete code for parsing, serialization,\n\n\x0f\n\x07\x04\n\x04\x00\x02\x00\x01\x12\x04\xeb\x03\x04\t\n\x0f\n\x07\x04\n\x04\x00\x02\x00\x02\x12\x04\xeb\x03\x0c\r\nG\n\x06\x04\n\x04\x00\x02\x01\x12\x04\xed\x03\x04\x12\x1a\x06 etc.\n\"/ Use ReflectionOps to implement these methods.\n\n\x0f\n\x07\x04\n\x04\x00\x02\x01\x01\x12\x04\xed\x03\x04\r\n\x0f\n\x07\x04\n\x04\x00\x02\x01\x02\x12\x04\xed\x03\x10\x11\nG\n\x06\x04\n\x04\x00\x02\x02\x12\x04\xee\x03\x04\x15\"7 Generate code using MessageLite and the lite runtime.\n\n\x0f\n\x07\x04\n\x04\x00\x02\x02\x01\x12\x04\xee\x03\x04\x10\n\x0f\n\x07\x04\n\x04\x00\x02\x02\x02\x12\x04\xee\x03\x13\x14\n\x0c\n\x04\x04\n\x02\x05\x12\x04\xf0\x03\x02;\n\r\n\x05\x04\n\x02\x05\x04\x12\x04\xf0\x03\x02\n\n\r\n\x05\x04\n\x02\x05\x06\x12\x04\xf0\x03\x0b\x17\n\r\n\x05\x04\n\x02\x05\x01\x12\x04\xf0\x03\x18$\n\r\n\x05\x04\n\x02\x05\x03\x12\x04\xf0\x03\'(\n\r\n\x05\x04\n\x02\x05\x08\x12\x04\xf0\x03):\n\r\n\x05\x04\n\x02\x05\x07\x12\x04\xf0\x0349\n\xe2\x02\n\x04\x04\n\x02\x06\x12\x04\xf7\x03\x02\"\x1a\xd3\x02 Sets the Go package where structs generated from this .proto will be\n placed. If omitted, the Go package will be derived from the following:\n - The basename of the package import path, if provided.\n - Otherwise, the package statement in the .proto file, if present.\n - Otherwise, the basename of the .proto file, without extension.\n\n\r\n\x05\x04\n\x02\x06\x04\x12\x04\xf7\x03\x02\n\n\r\n\x05\x04\n\x02\x06\x05\x12\x04\xf7\x03\x0b\x11\n\r\n\x05\x04\n\x02\x06\x01\x12\x04\xf7\x03\x12\x1c\n\r\n\x05\x04\n\x02\x06\x03\x12\x04\xf7\x03\x1f!\n\xd4\x04\n\x04\x04\n\x02\x07\x12\x04\x83\x04\x02;\x1a\xc5\x04 Should generic services be generated in each language? \"Generic\" services\n are not specific to any particular RPC system. They are generated by the\n main code generators in each language (without additional plugins).\n Generic services were the only kind of service generation supported by\n early versions of google.protobuf.\n\n Generic services are now considered deprecated in favor of using plugins\n that generate code specific to your particular RPC system. Therefore,\n these default to false. Old code which depends on generic services should\n explicitly set them to true.\n\n\r\n\x05\x04\n\x02\x07\x04\x12\x04\x83\x04\x02\n\n\r\n\x05\x04\n\x02\x07\x05\x12\x04\x83\x04\x0b\x0f\n\r\n\x05\x04\n\x02\x07\x01\x12\x04\x83\x04\x10#\n\r\n\x05\x04\n\x02\x07\x03\x12\x04\x83\x04&(\n\r\n\x05\x04\n\x02\x07\x08\x12\x04\x83\x04):\n\r\n\x05\x04\n\x02\x07\x07\x12\x04\x83\x0449\n\x0c\n\x04\x04\n\x02\x08\x12\x04\x84\x04\x02=\n\r\n\x05\x04\n\x02\x08\x04\x12\x04\x84\x04\x02\n\n\r\n\x05\x04\n\x02\x08\x05\x12\x04\x84\x04\x0b\x0f\n\r\n\x05\x04\n\x02\x08\x01\x12\x04\x84\x04\x10%\n\r\n\x05\x04\n\x02\x08\x03\x12\x04\x84\x04(*\n\r\n\x05\x04\n\x02\x08\x08\x12\x04\x84\x04+<\n\r\n\x05\x04\n\x02\x08\x07\x12\x04\x84\x046;\n\x0c\n\x04\x04\n\x02\t\x12\x04\x85\x04\x02;\n\r\n\x05\x04\n\x02\t\x04\x12\x04\x85\x04\x02\n\n\r\n\x05\x04\n\x02\t\x05\x12\x04\x85\x04\x0b\x0f\n\r\n\x05\x04\n\x02\t\x01\x12\x04\x85\x04\x10#\n\r\n\x05\x04\n\x02\t\x03\x12\x04\x85\x04&(\n\r\n\x05\x04\n\x02\t\x08\x12\x04\x85\x04):\n\r\n\x05\x04\n\x02\t\x07\x12\x04\x85\x0449\n+\n\x03\x04\n\t\x12\x04\x86\x04\x02\x0e\"\x1e removed php_generic_services\n\n\x0c\n\x04\x04\n\t\x00\x12\x04\x86\x04\x0b\r\n\r\n\x05\x04\n\t\x00\x01\x12\x04\x86\x04\x0b\r\n\r\n\x05\x04\n\t\x00\x02\x12\x04\x86\x04\x0b\r\n\x0b\n\x03\x04\n\n\x12\x04\x87\x04\x02\"\n\x0c\n\x04\x04\n\n\x00\x12\x04\x87\x04\x0b!\n\xf3\x01\n\x04\x04\n\x02\n\x12\x04\x8d\x04\x022\x1a\xe4\x01 Is this file deprecated?\n Depending on the target platform, this can emit Deprecated annotations\n for everything in the file, or it will be completely ignored; in the very\n least, this is a formalization for deprecating files.\n\n\r\n\x05\x04\n\x02\n\x04\x12\x04\x8d\x04\x02\n\n\r\n\x05\x04\n\x02\n\x05\x12\x04\x8d\x04\x0b\x0f\n\r\n\x05\x04\n\x02\n\x01\x12\x04\x8d\x04\x10\x1a\n\r\n\x05\x04\n\x02\n\x03\x12\x04\x8d\x04\x1d\x1f\n\r\n\x05\x04\n\x02\n\x08\x12\x04\x8d\x04 1\n\r\n\x05\x04\n\x02\n\x07\x12\x04\x8d\x04+0\n\x7f\n\x04\x04\n\x02\x0b\x12\x04\x91\x04\x027\x1aq Enables the use of arenas for the proto messages in this file. This applies\n only to generated classes for C++.\n\n\r\n\x05\x04\n\x02\x0b\x04\x12\x04\x91\x04\x02\n\n\r\n\x05\x04\n\x02\x0b\x05\x12\x04\x91\x04\x0b\x0f\n\r\n\x05\x04\n\x02\x0b\x01\x12\x04\x91\x04\x10 \n\r\n\x05\x04\n\x02\x0b\x03\x12\x04\x91\x04#%\n\r\n\x05\x04\n\x02\x0b\x08\x12\x04\x91\x04&6\n\r\n\x05\x04\n\x02\x0b\x07\x12\x04\x91\x0415\n\x92\x01\n\x04\x04\n\x02\x0c\x12\x04\x95\x04\x02)\x1a\x83\x01 Sets the objective c class prefix which is prepended to all objective c\n generated classes from this .proto. There is no default.\n\n\r\n\x05\x04\n\x02\x0c\x04\x12\x04\x95\x04\x02\n\n\r\n\x05\x04\n\x02\x0c\x05\x12\x04\x95\x04\x0b\x11\n\r\n\x05\x04\n\x02\x0c\x01\x12\x04\x95\x04\x12#\n\r\n\x05\x04\n\x02\x0c\x03\x12\x04\x95\x04&(\nI\n\x04\x04\n\x02\r\x12\x04\x98\x04\x02(\x1a; Namespace for generated classes; defaults to the package.\n\n\r\n\x05\x04\n\x02\r\x04\x12\x04\x98\x04\x02\n\n\r\n\x05\x04\n\x02\r\x05\x12\x04\x98\x04\x0b\x11\n\r\n\x05\x04\n\x02\r\x01\x12\x04\x98\x04\x12\"\n\r\n\x05\x04\n\x02\r\x03\x12\x04\x98\x04%\'\n\x91\x02\n\x04\x04\n\x02\x0e\x12\x04\x9e\x04\x02$\x1a\x82\x02 By default Swift generators will take the proto package and CamelCase it\n replacing \'.\' with underscore and use that to prefix the types/symbols\n defined. When this options is provided, they will use this value instead\n to prefix the types/symbols defined.\n\n\r\n\x05\x04\n\x02\x0e\x04\x12\x04\x9e\x04\x02\n\n\r\n\x05\x04\n\x02\x0e\x05\x12\x04\x9e\x04\x0b\x11\n\r\n\x05\x04\n\x02\x0e\x01\x12\x04\x9e\x04\x12\x1e\n\r\n\x05\x04\n\x02\x0e\x03\x12\x04\x9e\x04!#\n~\n\x04\x04\n\x02\x0f\x12\x04\xa2\x04\x02(\x1ap Sets the php class prefix which is prepended to all php generated classes\n from this .proto. Default is empty.\n\n\r\n\x05\x04\n\x02\x0f\x04\x12\x04\xa2\x04\x02\n\n\r\n\x05\x04\n\x02\x0f\x05\x12\x04\xa2\x04\x0b\x11\n\r\n\x05\x04\n\x02\x0f\x01\x12\x04\xa2\x04\x12\"\n\r\n\x05\x04\n\x02\x0f\x03\x12\x04\xa2\x04%\'\n\xbe\x01\n\x04\x04\n\x02\x10\x12\x04\xa7\x04\x02%\x1a\xaf\x01 Use this option to change the namespace of php generated classes. Default\n is empty. When this option is empty, the package name will be used for\n determining the namespace.\n\n\r\n\x05\x04\n\x02\x10\x04\x12\x04\xa7\x04\x02\n\n\r\n\x05\x04\n\x02\x10\x05\x12\x04\xa7\x04\x0b\x11\n\r\n\x05\x04\n\x02\x10\x01\x12\x04\xa7\x04\x12\x1f\n\r\n\x05\x04\n\x02\x10\x03\x12\x04\xa7\x04\"$\n\xca\x01\n\x04\x04\n\x02\x11\x12\x04\xac\x04\x02.\x1a\xbb\x01 Use this option to change the namespace of php generated metadata classes.\n Default is empty. When this option is empty, the proto file name will be\n used for determining the namespace.\n\n\r\n\x05\x04\n\x02\x11\x04\x12\x04\xac\x04\x02\n\n\r\n\x05\x04\n\x02\x11\x05\x12\x04\xac\x04\x0b\x11\n\r\n\x05\x04\n\x02\x11\x01\x12\x04\xac\x04\x12(\n\r\n\x05\x04\n\x02\x11\x03\x12\x04\xac\x04+-\n\xc2\x01\n\x04\x04\n\x02\x12\x12\x04\xb1\x04\x02$\x1a\xb3\x01 Use this option to change the package of ruby generated classes. Default\n is empty. When this option is not set, the package name will be used for\n determining the ruby package.\n\n\r\n\x05\x04\n\x02\x12\x04\x12\x04\xb1\x04\x02\n\n\r\n\x05\x04\n\x02\x12\x05\x12\x04\xb1\x04\x0b\x11\n\r\n\x05\x04\n\x02\x12\x01\x12\x04\xb1\x04\x12\x1e\n\r\n\x05\x04\n\x02\x12\x03\x12\x04\xb1\x04!#\n\x91\x02\n\x04\x04\n\x02\x13\x12\x04\xb7\x04\x02$\x1a\x82\x02 Any features defined in the specific edition.\n WARNING: This field should only be used by protobuf plugins or special\n cases like the proto compiler. Other uses are discouraged and\n developers should rely on the protoreflect APIs for their client language.\n\n\r\n\x05\x04\n\x02\x13\x04\x12\x04\xb7\x04\x02\n\n\r\n\x05\x04\n\x02\x13\x06\x12\x04\xb7\x04\x0b\x15\n\r\n\x05\x04\n\x02\x13\x01\x12\x04\xb7\x04\x16\x1e\n\r\n\x05\x04\n\x02\x13\x03\x12\x04\xb7\x04!#\n|\n\x04\x04\n\x02\x14\x12\x04\xbb\x04\x02:\x1an The parser stores options it doesn\'t recognize here.\n See the documentation for the \"Options\" section above.\n\n\r\n\x05\x04\n\x02\x14\x04\x12\x04\xbb\x04\x02\n\n\r\n\x05\x04\n\x02\x14\x06\x12\x04\xbb\x04\x0b\x1e\n\r\n\x05\x04\n\x02\x14\x01\x12\x04\xbb\x04\x1f3\n\r\n\x05\x04\n\x02\x14\x03\x12\x04\xbb\x0469\n\x87\x01\n\x03\x04\n\x05\x12\x04\xbf\x04\x02\x19\x1az Clients can define custom options in extensions of this message.\n See the documentation for the \"Options\" section above.\n\n\x0c\n\x04\x04\n\x05\x00\x12\x04\xbf\x04\r\x18\n\r\n\x05\x04\n\x05\x00\x01\x12\x04\xbf\x04\r\x11\n\r\n\x05\x04\n\x05\x00\x02\x12\x04\xbf\x04\x15\x18\n\x0b\n\x03\x04\n\t\x12\x04\xc1\x04\x02\x0e\n\x0c\n\x04\x04\n\t\x01\x12\x04\xc1\x04\x0b\r\n\r\n\x05\x04\n\t\x01\x01\x12\x04\xc1\x04\x0b\r\n\r\n\x05\x04\n\t\x01\x02\x12\x04\xc1\x04\x0b\r\n\x0c\n\x02\x04\x0b\x12\x06\xc4\x04\x00\x97\x05\x01\n\x0b\n\x03\x04\x0b\x01\x12\x04\xc4\x04\x08\x16\n\xd8\x05\n\x04\x04\x0b\x02\x00\x12\x04\xd7\x04\x02>\x1a\xc9\x05 Set true to use the old proto1 MessageSet wire format for extensions.\n This is provided for backwards-compatibility with the MessageSet wire\n format. You should not use this for any other reason: It\'s less\n efficient, has fewer features, and is more complicated.\n\n The message must be defined exactly as follows:\n message Foo {\n option message_set_wire_format = true;\n extensions 4 to max;\n }\n Note that the message cannot have any defined fields; MessageSets only\n have extensions.\n\n All extensions of your type must be singular messages; e.g. they cannot\n be int32s, enums, or repeated messages.\n\n Because this is an option, the above two restrictions are not enforced by\n the protocol compiler.\n\n\r\n\x05\x04\x0b\x02\x00\x04\x12\x04\xd7\x04\x02\n\n\r\n\x05\x04\x0b\x02\x00\x05\x12\x04\xd7\x04\x0b\x0f\n\r\n\x05\x04\x0b\x02\x00\x01\x12\x04\xd7\x04\x10\'\n\r\n\x05\x04\x0b\x02\x00\x03\x12\x04\xd7\x04*+\n\r\n\x05\x04\x0b\x02\x00\x08\x12\x04\xd7\x04,=\n\r\n\x05\x04\x0b\x02\x00\x07\x12\x04\xd7\x047<\n\xeb\x01\n\x04\x04\x0b\x02\x01\x12\x04\xdc\x04\x02F\x1a\xdc\x01 Disables the generation of the standard \"descriptor()\" accessor, which can\n conflict with a field of the same name. This is meant to make migration\n from proto1 easier; new code should avoid fields named \"descriptor\".\n\n\r\n\x05\x04\x0b\x02\x01\x04\x12\x04\xdc\x04\x02\n\n\r\n\x05\x04\x0b\x02\x01\x05\x12\x04\xdc\x04\x0b\x0f\n\r\n\x05\x04\x0b\x02\x01\x01\x12\x04\xdc\x04\x10/\n\r\n\x05\x04\x0b\x02\x01\x03\x12\x04\xdc\x0423\n\r\n\x05\x04\x0b\x02\x01\x08\x12\x04\xdc\x044E\n\r\n\x05\x04\x0b\x02\x01\x07\x12\x04\xdc\x04?D\n\xee\x01\n\x04\x04\x0b\x02\x02\x12\x04\xe2\x04\x021\x1a\xdf\x01 Is this message deprecated?\n Depending on the target platform, this can emit Deprecated annotations\n for the message, or it will be completely ignored; in the very least,\n this is a formalization for deprecating messages.\n\n\r\n\x05\x04\x0b\x02\x02\x04\x12\x04\xe2\x04\x02\n\n\r\n\x05\x04\x0b\x02\x02\x05\x12\x04\xe2\x04\x0b\x0f\n\r\n\x05\x04\x0b\x02\x02\x01\x12\x04\xe2\x04\x10\x1a\n\r\n\x05\x04\x0b\x02\x02\x03\x12\x04\xe2\x04\x1d\x1e\n\r\n\x05\x04\x0b\x02\x02\x08\x12\x04\xe2\x04\x1f0\n\r\n\x05\x04\x0b\x02\x02\x07\x12\x04\xe2\x04*/\n\x0b\n\x03\x04\x0b\t\x12\x04\xe4\x04\x02\x13\n\x0c\n\x04\x04\x0b\t\x00\x12\x04\xe4\x04\x0b\x0c\n\r\n\x05\x04\x0b\t\x00\x01\x12\x04\xe4\x04\x0b\x0c\n\r\n\x05\x04\x0b\t\x00\x02\x12\x04\xe4\x04\x0b\x0c\n\x0c\n\x04\x04\x0b\t\x01\x12\x04\xe4\x04\x0e\x0f\n\r\n\x05\x04\x0b\t\x01\x01\x12\x04\xe4\x04\x0e\x0f\n\r\n\x05\x04\x0b\t\x01\x02\x12\x04\xe4\x04\x0e\x0f\n\x0c\n\x04\x04\x0b\t\x02\x12\x04\xe4\x04\x11\x12\n\r\n\x05\x04\x0b\t\x02\x01\x12\x04\xe4\x04\x11\x12\n\r\n\x05\x04\x0b\t\x02\x02\x12\x04\xe4\x04\x11\x12\n\xa0\x06\n\x04\x04\x0b\x02\x03\x12\x04\xfb\x04\x02\x1e\x1a\x91\x06 Whether the message is an automatically generated map entry type for the\n maps field.\n\n For maps fields:\n map<KeyType, ValueType> map_field = 1;\n The parsed descriptor looks like:\n message MapFieldEntry {\n option map_entry = true;\n optional KeyType key = 1;\n optional ValueType value = 2;\n }\n repeated MapFieldEntry map_field = 1;\n\n Implementations may choose not to generate the map_entry=true message, but\n use a native map in the target language to hold the keys and values.\n The reflection APIs in such implementations still need to work as\n if the field is a repeated message field.\n\n NOTE: Do not set the option in .proto files. Always use the maps syntax\n instead. The option should only be implicitly set by the proto compiler\n parser.\n\n\r\n\x05\x04\x0b\x02\x03\x04\x12\x04\xfb\x04\x02\n\n\r\n\x05\x04\x0b\x02\x03\x05\x12\x04\xfb\x04\x0b\x0f\n\r\n\x05\x04\x0b\x02\x03\x01\x12\x04\xfb\x04\x10\x19\n\r\n\x05\x04\x0b\x02\x03\x03\x12\x04\xfb\x04\x1c\x1d\n$\n\x03\x04\x0b\t\x12\x04\xfd\x04\x02\r\"\x17 javalite_serializable\n\n\x0c\n\x04\x04\x0b\t\x03\x12\x04\xfd\x04\x0b\x0c\n\r\n\x05\x04\x0b\t\x03\x01\x12\x04\xfd\x04\x0b\x0c\n\r\n\x05\x04\x0b\t\x03\x02\x12\x04\xfd\x04\x0b\x0c\n\x1f\n\x03\x04\x0b\t\x12\x04\xfe\x04\x02\r\"\x12 javanano_as_lite\n\n\x0c\n\x04\x04\x0b\t\x04\x12\x04\xfe\x04\x0b\x0c\n\r\n\x05\x04\x0b\t\x04\x01\x12\x04\xfe\x04\x0b\x0c\n\r\n\x05\x04\x0b\t\x04\x02\x12\x04\xfe\x04\x0b\x0c\n\xdd\x03\n\x04\x04\x0b\x02\x04\x12\x04\x8a\x05\x02P\x1a\xce\x03 Enable the legacy handling of JSON field name conflicts. This lowercases\n and strips underscored from the fields before comparison in proto3 only.\n The new behavior takes `json_name` into account and applies to proto2 as\n well.\n\n This should only be used as a temporary measure against broken builds due\n to the change in behavior for JSON field name conflicts.\n\n TODO This is legacy behavior we plan to remove once downstream\n teams have had time to migrate.\n\n\r\n\x05\x04\x0b\x02\x04\x04\x12\x04\x8a\x05\x02\n\n\r\n\x05\x04\x0b\x02\x04\x05\x12\x04\x8a\x05\x0b\x0f\n\r\n\x05\x04\x0b\x02\x04\x01\x12\x04\x8a\x05\x106\n\r\n\x05\x04\x0b\x02\x04\x03\x12\x04\x8a\x059;\n\r\n\x05\x04\x0b\x02\x04\x08\x12\x04\x8a\x05<O\n\x0e\n\x06\x04\x0b\x02\x04\x08\x03\x12\x04\x8a\x05=N\n\x91\x02\n\x04\x04\x0b\x02\x05\x12\x04\x90\x05\x02$\x1a\x82\x02 Any features defined in the specific edition.\n WARNING: This field should only be used by protobuf plugins or special\n cases like the proto compiler. Other uses are discouraged and\n developers should rely on the protoreflect APIs for their client language.\n\n\r\n\x05\x04\x0b\x02\x05\x04\x12\x04\x90\x05\x02\n\n\r\n\x05\x04\x0b\x02\x05\x06\x12\x04\x90\x05\x0b\x15\n\r\n\x05\x04\x0b\x02\x05\x01\x12\x04\x90\x05\x16\x1e\n\r\n\x05\x04\x0b\x02\x05\x03\x12\x04\x90\x05!#\nO\n\x04\x04\x0b\x02\x06\x12\x04\x93\x05\x02:\x1aA The parser stores options it doesn\'t recognize here. See above.\n\n\r\n\x05\x04\x0b\x02\x06\x04\x12\x04\x93\x05\x02\n\n\r\n\x05\x04\x0b\x02\x06\x06\x12\x04\x93\x05\x0b\x1e\n\r\n\x05\x04\x0b\x02\x06\x01\x12\x04\x93\x05\x1f3\n\r\n\x05\x04\x0b\x02\x06\x03\x12\x04\x93\x0569\nZ\n\x03\x04\x0b\x05\x12\x04\x96\x05\x02\x19\x1aM Clients can define custom options in extensions of this message. See above.\n\n\x0c\n\x04\x04\x0b\x05\x00\x12\x04\x96\x05\r\x18\n\r\n\x05\x04\x0b\x05\x00\x01\x12\x04\x96\x05\r\x11\n\r\n\x05\x04\x0b\x05\x00\x02\x12\x04\x96\x05\x15\x18\n\x0c\n\x02\x04\x0c\x12\x06\x99\x05\x00\xbf\x06\x01\n\x0b\n\x03\x04\x0c\x01\x12\x04\x99\x05\x08\x14\n\xc2\x03\n\x04\x04\x0c\x02\x00\x12\x04\xa1\x05\x02E\x1a\xb3\x03 NOTE: ctype is deprecated. Use `features.(pb.cpp).string_type` instead.\n The ctype option instructs the C++ code generator to use a different\n representation of the field than it normally would. See the specific\n options below. This option is only implemented to support use of\n [ctype=CORD] and [ctype=STRING] (the default) on non-repeated fields of\n type \"bytes\" in the open source release.\n TODO: make ctype actually deprecated.\n\n\r\n\x05\x04\x0c\x02\x00\x04\x12\x04\xa1\x05\x02\n\n\r\n\x05\x04\x0c\x02\x00\x06\x12\x04\xa1\x05\x0b\x10\n\r\n\x05\x04\x0c\x02\x00\x01\x12\x04\xa1\x05\x11\x16\n\r\n\x05\x04\x0c\x02\x00\x03\x12\x04\xa1\x05\x19\x1a\n\r\n\x05\x04\x0c\x02\x00\x08\x12\x04\xa1\x05\x1bD\n\r\n\x05\x04\x0c\x02\x00\x07\x12\x04\xa1\x05=C\n\x0e\n\x04\x04\x0c\x04\x00\x12\x06\xa2\x05\x02\xaf\x05\x03\n\r\n\x05\x04\x0c\x04\x00\x01\x12\x04\xa2\x05\x07\x0c\n\x1f\n\x06\x04\x0c\x04\x00\x02\x00\x12\x04\xa4\x05\x04\x0f\x1a\x0f Default mode.\n\n\x0f\n\x07\x04\x0c\x04\x00\x02\x00\x01\x12\x04\xa4\x05\x04\n\n\x0f\n\x07\x04\x0c\x04\x00\x02\x00\x02\x12\x04\xa4\x05\r\x0e\n\x96\x03\n\x06\x04\x0c\x04\x00\x02\x01\x12\x04\xac\x05\x04\r\x1a\x85\x03 The option [ctype=CORD] may be applied to a non-repeated field of type\n \"bytes\". It indicates that in C++, the data should be stored in a Cord\n instead of a string. For very large strings, this may reduce memory\n fragmentation. It may also allow better performance when parsing from a\n Cord, or when parsing with aliasing enabled, as the parsed Cord may then\n alias the original buffer.\n\n\x0f\n\x07\x04\x0c\x04\x00\x02\x01\x01\x12\x04\xac\x05\x04\x08\n\x0f\n\x07\x04\x0c\x04\x00\x02\x01\x02\x12\x04\xac\x05\x0b\x0c\n\x0e\n\x06\x04\x0c\x04\x00\x02\x02\x12\x04\xae\x05\x04\x15\n\x0f\n\x07\x04\x0c\x04\x00\x02\x02\x01\x12\x04\xae\x05\x04\x10\n\x0f\n\x07\x04\x0c\x04\x00\x02\x02\x02\x12\x04\xae\x05\x13\x14\n\xd3\x03\n\x04\x04\x0c\x02\x01\x12\x04\xb7\x05\x02\x1b\x1a\xc4\x03 The packed option can be enabled for repeated primitive fields to enable\n a more efficient representation on the wire. Rather than repeatedly\n writing the tag and type for each element, the entire array is encoded as\n a single length-delimited blob. In proto3, only explicit setting it to\n false will avoid using packed encoding. This option is prohibited in\n Editions, but the `repeated_field_encoding` feature can be used to control\n the behavior.\n\n\r\n\x05\x04\x0c\x02\x01\x04\x12\x04\xb7\x05\x02\n\n\r\n\x05\x04\x0c\x02\x01\x05\x12\x04\xb7\x05\x0b\x0f\n\r\n\x05\x04\x0c\x02\x01\x01\x12\x04\xb7\x05\x10\x16\n\r\n\x05\x04\x0c\x02\x01\x03\x12\x04\xb7\x05\x19\x1a\n\x9a\x05\n\x04\x04\x0c\x02\x02\x12\x04\xc4\x05\x023\x1a\x8b\x05 The jstype option determines the JavaScript type used for values of the\n field. The option is permitted only for 64 bit integral and fixed types\n (int64, uint64, sint64, fixed64, sfixed64). A field with jstype JS_STRING\n is represented as JavaScript string, which avoids loss of precision that\n can happen when a large value is converted to a floating point JavaScript.\n Specifying JS_NUMBER for the jstype causes the generated JavaScript code to\n use the JavaScript \"number\" type. The behavior of the default option\n JS_NORMAL is implementation dependent.\n\n This option is an enum to permit additional types to be added, e.g.\n goog.math.Integer.\n\n\r\n\x05\x04\x0c\x02\x02\x04\x12\x04\xc4\x05\x02\n\n\r\n\x05\x04\x0c\x02\x02\x06\x12\x04\xc4\x05\x0b\x11\n\r\n\x05\x04\x0c\x02\x02\x01\x12\x04\xc4\x05\x12\x18\n\r\n\x05\x04\x0c\x02\x02\x03\x12\x04\xc4\x05\x1b\x1c\n\r\n\x05\x04\x0c\x02\x02\x08\x12\x04\xc4\x05\x1d2\n\r\n\x05\x04\x0c\x02\x02\x07\x12\x04\xc4\x05(1\n\x0e\n\x04\x04\x0c\x04\x01\x12\x06\xc5\x05\x02\xce\x05\x03\n\r\n\x05\x04\x0c\x04\x01\x01\x12\x04\xc5\x05\x07\r\n\'\n\x06\x04\x0c\x04\x01\x02\x00\x12\x04\xc7\x05\x04\x12\x1a\x17 Use the default type.\n\n\x0f\n\x07\x04\x0c\x04\x01\x02\x00\x01\x12\x04\xc7\x05\x04\r\n\x0f\n\x07\x04\x0c\x04\x01\x02\x00\x02\x12\x04\xc7\x05\x10\x11\n)\n\x06\x04\x0c\x04\x01\x02\x01\x12\x04\xca\x05\x04\x12\x1a\x19 Use JavaScript strings.\n\n\x0f\n\x07\x04\x0c\x04\x01\x02\x01\x01\x12\x04\xca\x05\x04\r\n\x0f\n\x07\x04\x0c\x04\x01\x02\x01\x02\x12\x04\xca\x05\x10\x11\n)\n\x06\x04\x0c\x04\x01\x02\x02\x12\x04\xcd\x05\x04\x12\x1a\x19 Use JavaScript numbers.\n\n\x0f\n\x07\x04\x0c\x04\x01\x02\x02\x01\x12\x04\xcd\x05\x04\r\n\x0f\n\x07\x04\x0c\x04\x01\x02\x02\x02\x12\x04\xcd\x05\x10\x11\n\x99\n\n\x04\x04\x0c\x02\x03\x12\x04\xe6\x05\x02+\x1a\x8a\n Should this field be parsed lazily? Lazy applies only to message-type\n fields. It means that when the outer message is initially parsed, the\n inner message\'s contents will not be parsed but instead stored in encoded\n form. The inner message will actually be parsed when it is first accessed.\n\n This is only a hint. Implementations are free to choose whether to use\n eager or lazy parsing regardless of the value of this option. However,\n setting this option true suggests that the protocol author believes that\n using lazy parsing on this field is worth the additional bookkeeping\n overhead typically needed to implement it.\n\n This option does not affect the public interface of any generated code;\n all method signatures remain the same. Furthermore, thread-safety of the\n interface is not affected by this option; const methods remain safe to\n call from multiple threads concurrently, while non-const methods continue\n to require exclusive access.\n\n Note that lazy message fields are still eagerly verified to check\n ill-formed wireformat or missing required fields. Calling IsInitialized()\n on the outer message would fail if the inner message has missing required\n fields. Failed verification would result in parsing failure (except when\n uninitialized messages are acceptable).\n\n\r\n\x05\x04\x0c\x02\x03\x04\x12\x04\xe6\x05\x02\n\n\r\n\x05\x04\x0c\x02\x03\x05\x12\x04\xe6\x05\x0b\x0f\n\r\n\x05\x04\x0c\x02\x03\x01\x12\x04\xe6\x05\x10\x14\n\r\n\x05\x04\x0c\x02\x03\x03\x12\x04\xe6\x05\x17\x18\n\r\n\x05\x04\x0c\x02\x03\x08\x12\x04\xe6\x05\x19*\n\r\n\x05\x04\x0c\x02\x03\x07\x12\x04\xe6\x05$)\n\xaf\x01\n\x04\x04\x0c\x02\x04\x12\x04\xeb\x05\x027\x1a\xa0\x01 unverified_lazy does no correctness checks on the byte stream. This should\n only be used where lazy with verification is prohibitive for performance\n reasons.\n\n\r\n\x05\x04\x0c\x02\x04\x04\x12\x04\xeb\x05\x02\n\n\r\n\x05\x04\x0c\x02\x04\x05\x12\x04\xeb\x05\x0b\x0f\n\r\n\x05\x04\x0c\x02\x04\x01\x12\x04\xeb\x05\x10\x1f\n\r\n\x05\x04\x0c\x02\x04\x03\x12\x04\xeb\x05\"$\n\r\n\x05\x04\x0c\x02\x04\x08\x12\x04\xeb\x05%6\n\r\n\x05\x04\x0c\x02\x04\x07\x12\x04\xeb\x0505\n\xe8\x01\n\x04\x04\x0c\x02\x05\x12\x04\xf1\x05\x021\x1a\xd9\x01 Is this field deprecated?\n Depending on the target platform, this can emit Deprecated annotations\n for accessors, or it will be completely ignored; in the very least, this\n is a formalization for deprecating fields.\n\n\r\n\x05\x04\x0c\x02\x05\x04\x12\x04\xf1\x05\x02\n\n\r\n\x05\x04\x0c\x02\x05\x05\x12\x04\xf1\x05\x0b\x0f\n\r\n\x05\x04\x0c\x02\x05\x01\x12\x04\xf1\x05\x10\x1a\n\r\n\x05\x04\x0c\x02\x05\x03\x12\x04\xf1\x05\x1d\x1e\n\r\n\x05\x04\x0c\x02\x05\x08\x12\x04\xf1\x05\x1f0\n\r\n\x05\x04\x0c\x02\x05\x07\x12\x04\xf1\x05*/\n?\n\x04\x04\x0c\x02\x06\x12\x04\xf4\x05\x02,\x1a1 For Google-internal migration only. Do not use.\n\n\r\n\x05\x04\x0c\x02\x06\x04\x12\x04\xf4\x05\x02\n\n\r\n\x05\x04\x0c\x02\x06\x05\x12\x04\xf4\x05\x0b\x0f\n\r\n\x05\x04\x0c\x02\x06\x01\x12\x04\xf4\x05\x10\x14\n\r\n\x05\x04\x0c\x02\x06\x03\x12\x04\xf4\x05\x17\x19\n\r\n\x05\x04\x0c\x02\x06\x08\x12\x04\xf4\x05\x1a+\n\r\n\x05\x04\x0c\x02\x06\x07\x12\x04\xf4\x05%*\n\x97\x01\n\x04\x04\x0c\x02\x07\x12\x04\xf8\x05\x024\x1a\x88\x01 Indicate that the field value should not be printed out when using debug\n formats, e.g. when the field contains sensitive credentials.\n\n\r\n\x05\x04\x0c\x02\x07\x04\x12\x04\xf8\x05\x02\n\n\r\n\x05\x04\x0c\x02\x07\x05\x12\x04\xf8\x05\x0b\x0f\n\r\n\x05\x04\x0c\x02\x07\x01\x12\x04\xf8\x05\x10\x1c\n\r\n\x05\x04\x0c\x02\x07\x03\x12\x04\xf8\x05\x1f!\n\r\n\x05\x04\x0c\x02\x07\x08\x12\x04\xf8\x05\"3\n\r\n\x05\x04\x0c\x02\x07\x07\x12\x04\xf8\x05-2\nY\n\x04\x04\x0c\x04\x02\x12\x06\xfb\x05\x02\xff\x05\x03\x1aI If set to RETENTION_SOURCE, the option will be omitted from the binary.\n\n\r\n\x05\x04\x0c\x04\x02\x01\x12\x04\xfb\x05\x07\x16\n\x0e\n\x06\x04\x0c\x04\x02\x02\x00\x12\x04\xfc\x05\x04\x1a\n\x0f\n\x07\x04\x0c\x04\x02\x02\x00\x01\x12\x04\xfc\x05\x04\x15\n\x0f\n\x07\x04\x0c\x04\x02\x02\x00\x02\x12\x04\xfc\x05\x18\x19\n\x0e\n\x06\x04\x0c\x04\x02\x02\x01\x12\x04\xfd\x05\x04\x1a\n\x0f\n\x07\x04\x0c\x04\x02\x02\x01\x01\x12\x04\xfd\x05\x04\x15\n\x0f\n\x07\x04\x0c\x04\x02\x02\x01\x02\x12\x04\xfd\x05\x18\x19\n\x0e\n\x06\x04\x0c\x04\x02\x02\x02\x12\x04\xfe\x05\x04\x19\n\x0f\n\x07\x04\x0c\x04\x02\x02\x02\x01\x12\x04\xfe\x05\x04\x14\n\x0f\n\x07\x04\x0c\x04\x02\x02\x02\x02\x12\x04\xfe\x05\x17\x18\n\x0c\n\x04\x04\x0c\x02\x08\x12\x04\x81\x06\x02*\n\r\n\x05\x04\x0c\x02\x08\x04\x12\x04\x81\x06\x02\n\n\r\n\x05\x04\x0c\x02\x08\x06\x12\x04\x81\x06\x0b\x1a\n\r\n\x05\x04\x0c\x02\x08\x01\x12\x04\x81\x06\x1b$\n\r\n\x05\x04\x0c\x02\x08\x03\x12\x04\x81\x06\')\n\xc3\x01\n\x04\x04\x0c\x04\x03\x12\x06\x86\x06\x02\x91\x06\x03\x1a\xb2\x01 This indicates the types of entities that the field may apply to when used\n as an option. If it is unset, then the field may be freely used as an\n option on any kind of entity.\n\n\r\n\x05\x04\x0c\x04\x03\x01\x12\x04\x86\x06\x07\x17\n\x0e\n\x06\x04\x0c\x04\x03\x02\x00\x12\x04\x87\x06\x04\x1c\n\x0f\n\x07\x04\x0c\x04\x03\x02\x00\x01\x12\x04\x87\x06\x04\x17\n\x0f\n\x07\x04\x0c\x04\x03\x02\x00\x02\x12\x04\x87\x06\x1a\x1b\n\x0e\n\x06\x04\x0c\x04\x03\x02\x01\x12\x04\x88\x06\x04\x19\n\x0f\n\x07\x04\x0c\x04\x03\x02\x01\x01\x12\x04\x88\x06\x04\x14\n\x0f\n\x07\x04\x0c\x04\x03\x02\x01\x02\x12\x04\x88\x06\x17\x18\n\x0e\n\x06\x04\x0c\x04\x03\x02\x02\x12\x04\x89\x06\x04$\n\x0f\n\x07\x04\x0c\x04\x03\x02\x02\x01\x12\x04\x89\x06\x04\x1f\n\x0f\n\x07\x04\x0c\x04\x03\x02\x02\x02\x12\x04\x89\x06\"#\n\x0e\n\x06\x04\x0c\x04\x03\x02\x03\x12\x04\x8a\x06\x04\x1c\n\x0f\n\x07\x04\x0c\x04\x03\x02\x03\x01\x12\x04\x8a\x06\x04\x17\n\x0f\n\x07\x04\x0c\x04\x03\x02\x03\x02\x12\x04\x8a\x06\x1a\x1b\n\x0e\n\x06\x04\x0c\x04\x03\x02\x04\x12\x04\x8b\x06\x04\x1a\n\x0f\n\x07\x04\x0c\x04\x03\x02\x04\x01\x12\x04\x8b\x06\x04\x15\n\x0f\n\x07\x04\x0c\x04\x03\x02\x04\x02\x12\x04\x8b\x06\x18\x19\n\x0e\n\x06\x04\x0c\x04\x03\x02\x05\x12\x04\x8c\x06\x04\x1a\n\x0f\n\x07\x04\x0c\x04\x03\x02\x05\x01\x12\x04\x8c\x06\x04\x15\n\x0f\n\x07\x04\x0c\x04\x03\x02\x05\x02\x12\x04\x8c\x06\x18\x19\n\x0e\n\x06\x04\x0c\x04\x03\x02\x06\x12\x04\x8d\x06\x04\x19\n\x0f\n\x07\x04\x0c\x04\x03\x02\x06\x01\x12\x04\x8d\x06\x04\x14\n\x0f\n\x07\x04\x0c\x04\x03\x02\x06\x02\x12\x04\x8d\x06\x17\x18\n\x0e\n\x06\x04\x0c\x04\x03\x02\x07\x12\x04\x8e\x06\x04\x1f\n\x0f\n\x07\x04\x0c\x04\x03\x02\x07\x01\x12\x04\x8e\x06\x04\x1a\n\x0f\n\x07\x04\x0c\x04\x03\x02\x07\x02\x12\x04\x8e\x06\x1d\x1e\n\x0e\n\x06\x04\x0c\x04\x03\x02\x08\x12\x04\x8f\x06\x04\x1c\n\x0f\n\x07\x04\x0c\x04\x03\x02\x08\x01\x12\x04\x8f\x06\x04\x17\n\x0f\n\x07\x04\x0c\x04\x03\x02\x08\x02\x12\x04\x8f\x06\x1a\x1b\n\x0e\n\x06\x04\x0c\x04\x03\x02\t\x12\x04\x90\x06\x04\x1b\n\x0f\n\x07\x04\x0c\x04\x03\x02\t\x01\x12\x04\x90\x06\x04\x16\n\x0f\n\x07\x04\x0c\x04\x03\x02\t\x02\x12\x04\x90\x06\x19\x1a\n\x0c\n\x04\x04\x0c\x02\t\x12\x04\x93\x06\x02)\n\r\n\x05\x04\x0c\x02\t\x04\x12\x04\x93\x06\x02\n\n\r\n\x05\x04\x0c\x02\t\x06\x12\x04\x93\x06\x0b\x1b\n\r\n\x05\x04\x0c\x02\t\x01\x12\x04\x93\x06\x1c#\n\r\n\x05\x04\x0c\x02\t\x03\x12\x04\x93\x06&(\n\x0e\n\x04\x04\x0c\x03\x00\x12\x06\x95\x06\x02\x98\x06\x03\n\r\n\x05\x04\x0c\x03\x00\x01\x12\x04\x95\x06\n\x18\n\x0e\n\x06\x04\x0c\x03\x00\x02\x00\x12\x04\x96\x06\x04!\n\x0f\n\x07\x04\x0c\x03\x00\x02\x00\x04\x12\x04\x96\x06\x04\x0c\n\x0f\n\x07\x04\x0c\x03\x00\x02\x00\x06\x12\x04\x96\x06\r\x14\n\x0f\n\x07\x04\x0c\x03\x00\x02\x00\x01\x12\x04\x96\x06\x15\x1c\n\x0f\n\x07\x04\x0c\x03\x00\x02\x00\x03\x12\x04\x96\x06\x1f \n\"\n\x06\x04\x0c\x03\x00\x02\x01\x12\x04\x97\x06\x04\x1e\"\x12 Textproto value.\n\n\x0f\n\x07\x04\x0c\x03\x00\x02\x01\x04\x12\x04\x97\x06\x04\x0c\n\x0f\n\x07\x04\x0c\x03\x00\x02\x01\x05\x12\x04\x97\x06\r\x13\n\x0f\n\x07\x04\x0c\x03\x00\x02\x01\x01\x12\x04\x97\x06\x14\x19\n\x0f\n\x07\x04\x0c\x03\x00\x02\x01\x03\x12\x04\x97\x06\x1c\x1d\n\x0c\n\x04\x04\x0c\x02\n\x12\x04\x99\x06\x020\n\r\n\x05\x04\x0c\x02\n\x04\x12\x04\x99\x06\x02\n\n\r\n\x05\x04\x0c\x02\n\x06\x12\x04\x99\x06\x0b\x19\n\r\n\x05\x04\x0c\x02\n\x01\x12\x04\x99\x06\x1a*\n\r\n\x05\x04\x0c\x02\n\x03\x12\x04\x99\x06-/\n\x91\x02\n\x04\x04\x0c\x02\x0b\x12\x04\x9f\x06\x02$\x1a\x82\x02 Any features defined in the specific edition.\n WARNING: This field should only be used by protobuf plugins or special\n cases like the proto compiler. Other uses are discouraged and\n developers should rely on the protoreflect APIs for their client language.\n\n\r\n\x05\x04\x0c\x02\x0b\x04\x12\x04\x9f\x06\x02\n\n\r\n\x05\x04\x0c\x02\x0b\x06\x12\x04\x9f\x06\x0b\x15\n\r\n\x05\x04\x0c\x02\x0b\x01\x12\x04\x9f\x06\x16\x1e\n\r\n\x05\x04\x0c\x02\x0b\x03\x12\x04\x9f\x06!#\nD\n\x04\x04\x0c\x03\x01\x12\x06\xa2\x06\x02\xb4\x06\x03\x1a4 Information about the support window of a feature.\n\n\r\n\x05\x04\x0c\x03\x01\x01\x12\x04\xa2\x06\n\x18\n\xd4\x01\n\x06\x04\x0c\x03\x01\x02\x00\x12\x04\xa6\x06\x04,\x1a\xc3\x01 The edition that this feature was first available in. In editions\n earlier than this one, the default assigned to EDITION_LEGACY will be\n used, and proto files will not be able to override it.\n\n\x0f\n\x07\x04\x0c\x03\x01\x02\x00\x04\x12\x04\xa6\x06\x04\x0c\n\x0f\n\x07\x04\x0c\x03\x01\x02\x00\x06\x12\x04\xa6\x06\r\x14\n\x0f\n\x07\x04\x0c\x03\x01\x02\x00\x01\x12\x04\xa6\x06\x15\'\n\x0f\n\x07\x04\x0c\x03\x01\x02\x00\x03\x12\x04\xa6\x06*+\nw\n\x06\x04\x0c\x03\x01\x02\x01\x12\x04\xaa\x06\x04,\x1ag The edition this feature becomes deprecated in. Using this after this\n edition may trigger warnings.\n\n\x0f\n\x07\x04\x0c\x03\x01\x02\x01\x04\x12\x04\xaa\x06\x04\x0c\n\x0f\n\x07\x04\x0c\x03\x01\x02\x01\x06\x12\x04\xaa\x06\r\x14\n\x0f\n\x07\x04\x0c\x03\x01\x02\x01\x01\x12\x04\xaa\x06\x15\'\n\x0f\n\x07\x04\x0c\x03\x01\x02\x01\x03\x12\x04\xaa\x06*+\nv\n\x06\x04\x0c\x03\x01\x02\x02\x12\x04\xae\x06\x04,\x1af The deprecation warning text if this feature is used after the edition it\n was marked deprecated in.\n\n\x0f\n\x07\x04\x0c\x03\x01\x02\x02\x04\x12\x04\xae\x06\x04\x0c\n\x0f\n\x07\x04\x0c\x03\x01\x02\x02\x05\x12\x04\xae\x06\r\x13\n\x0f\n\x07\x04\x0c\x03\x01\x02\x02\x01\x12\x04\xae\x06\x14\'\n\x0f\n\x07\x04\x0c\x03\x01\x02\x02\x03\x12\x04\xae\x06*+\n\xbe\x01\n\x06\x04\x0c\x03\x01\x02\x03\x12\x04\xb3\x06\x04)\x1a\xad\x01 The edition this feature is no longer available in. In editions after\n this one, the last default assigned will be used, and proto files will\n not be able to override it.\n\n\x0f\n\x07\x04\x0c\x03\x01\x02\x03\x04\x12\x04\xb3\x06\x04\x0c\n\x0f\n\x07\x04\x0c\x03\x01\x02\x03\x06\x12\x04\xb3\x06\r\x14\n\x0f\n\x07\x04\x0c\x03\x01\x02\x03\x01\x12\x04\xb3\x06\x15$\n\x0f\n\x07\x04\x0c\x03\x01\x02\x03\x03\x12\x04\xb3\x06\'(\n\x0c\n\x04\x04\x0c\x02\x0c\x12\x04\xb5\x06\x02/\n\r\n\x05\x04\x0c\x02\x0c\x04\x12\x04\xb5\x06\x02\n\n\r\n\x05\x04\x0c\x02\x0c\x06\x12\x04\xb5\x06\x0b\x19\n\r\n\x05\x04\x0c\x02\x0c\x01\x12\x04\xb5\x06\x1a)\n\r\n\x05\x04\x0c\x02\x0c\x03\x12\x04\xb5\x06,.\nO\n\x04\x04\x0c\x02\r\x12\x04\xb8\x06\x02:\x1aA The parser stores options it doesn\'t recognize here. See above.\n\n\r\n\x05\x04\x0c\x02\r\x04\x12\x04\xb8\x06\x02\n\n\r\n\x05\x04\x0c\x02\r\x06\x12\x04\xb8\x06\x0b\x1e\n\r\n\x05\x04\x0c\x02\r\x01\x12\x04\xb8\x06\x1f3\n\r\n\x05\x04\x0c\x02\r\x03\x12\x04\xb8\x0669\nZ\n\x03\x04\x0c\x05\x12\x04\xbb\x06\x02\x19\x1aM Clients can define custom options in extensions of this message. See above.\n\n\x0c\n\x04\x04\x0c\x05\x00\x12\x04\xbb\x06\r\x18\n\r\n\x05\x04\x0c\x05\x00\x01\x12\x04\xbb\x06\r\x11\n\r\n\x05\x04\x0c\x05\x00\x02\x12\x04\xbb\x06\x15\x18\n\x1c\n\x03\x04\x0c\t\x12\x04\xbd\x06\x02\r\"\x0f removed jtype\n\n\x0c\n\x04\x04\x0c\t\x00\x12\x04\xbd\x06\x0b\x0c\n\r\n\x05\x04\x0c\t\x00\x01\x12\x04\xbd\x06\x0b\x0c\n\r\n\x05\x04\x0c\t\x00\x02\x12\x04\xbd\x06\x0b\x0c\n9\n\x03\x04\x0c\t\x12\x04\xbe\x06\x02\x0e\", reserve target, target_obsolete_do_not_use\n\n\x0c\n\x04\x04\x0c\t\x01\x12\x04\xbe\x06\x0b\r\n\r\n\x05\x04\x0c\t\x01\x01\x12\x04\xbe\x06\x0b\r\n\r\n\x05\x04\x0c\t\x01\x02\x12\x04\xbe\x06\x0b\r\n\x0c\n\x02\x04\r\x12\x06\xc1\x06\x00\xcd\x06\x01\n\x0b\n\x03\x04\r\x01\x12\x04\xc1\x06\x08\x14\n\x91\x02\n\x04\x04\r\x02\x00\x12\x04\xc6\x06\x02#\x1a\x82\x02 Any features defined in the specific edition.\n WARNING: This field should only be used by protobuf plugins or special\n cases like the proto compiler. Other uses are discouraged and\n developers should rely on the protoreflect APIs for their client language.\n\n\r\n\x05\x04\r\x02\x00\x04\x12\x04\xc6\x06\x02\n\n\r\n\x05\x04\r\x02\x00\x06\x12\x04\xc6\x06\x0b\x15\n\r\n\x05\x04\r\x02\x00\x01\x12\x04\xc6\x06\x16\x1e\n\r\n\x05\x04\r\x02\x00\x03\x12\x04\xc6\x06!\"\nO\n\x04\x04\r\x02\x01\x12\x04\xc9\x06\x02:\x1aA The parser stores options it doesn\'t recognize here. See above.\n\n\r\n\x05\x04\r\x02\x01\x04\x12\x04\xc9\x06\x02\n\n\r\n\x05\x04\r\x02\x01\x06\x12\x04\xc9\x06\x0b\x1e\n\r\n\x05\x04\r\x02\x01\x01\x12\x04\xc9\x06\x1f3\n\r\n\x05\x04\r\x02\x01\x03\x12\x04\xc9\x0669\nZ\n\x03\x04\r\x05\x12\x04\xcc\x06\x02\x19\x1aM Clients can define custom options in extensions of this message. See above.\n\n\x0c\n\x04\x04\r\x05\x00\x12\x04\xcc\x06\r\x18\n\r\n\x05\x04\r\x05\x00\x01\x12\x04\xcc\x06\r\x11\n\r\n\x05\x04\r\x05\x00\x02\x12\x04\xcc\x06\x15\x18\n\x0c\n\x02\x04\x0e\x12\x06\xcf\x06\x00\xf0\x06\x01\n\x0b\n\x03\x04\x0e\x01\x12\x04\xcf\x06\x08\x13\n`\n\x04\x04\x0e\x02\x00\x12\x04\xd3\x06\x02 \x1aR Set this option to true to allow mapping different tag names to the same\n value.\n\n\r\n\x05\x04\x0e\x02\x00\x04\x12\x04\xd3\x06\x02\n\n\r\n\x05\x04\x0e\x02\x00\x05\x12\x04\xd3\x06\x0b\x0f\n\r\n\x05\x04\x0e\x02\x00\x01\x12\x04\xd3\x06\x10\x1b\n\r\n\x05\x04\x0e\x02\x00\x03\x12\x04\xd3\x06\x1e\x1f\n\xe5\x01\n\x04\x04\x0e\x02\x01\x12\x04\xd9\x06\x021\x1a\xd6\x01 Is this enum deprecated?\n Depending on the target platform, this can emit Deprecated annotations\n for the enum, or it will be completely ignored; in the very least, this\n is a formalization for deprecating enums.\n\n\r\n\x05\x04\x0e\x02\x01\x04\x12\x04\xd9\x06\x02\n\n\r\n\x05\x04\x0e\x02\x01\x05\x12\x04\xd9\x06\x0b\x0f\n\r\n\x05\x04\x0e\x02\x01\x01\x12\x04\xd9\x06\x10\x1a\n\r\n\x05\x04\x0e\x02\x01\x03\x12\x04\xd9\x06\x1d\x1e\n\r\n\x05\x04\x0e\x02\x01\x08\x12\x04\xd9\x06\x1f0\n\r\n\x05\x04\x0e\x02\x01\x07\x12\x04\xd9\x06*/\n\x1f\n\x03\x04\x0e\t\x12\x04\xdb\x06\x02\r\"\x12 javanano_as_lite\n\n\x0c\n\x04\x04\x0e\t\x00\x12\x04\xdb\x06\x0b\x0c\n\r\n\x05\x04\x0e\t\x00\x01\x12\x04\xdb\x06\x0b\x0c\n\r\n\x05\x04\x0e\t\x00\x02\x12\x04\xdb\x06\x0b\x0c\n\xc8\x02\n\x04\x04\x0e\x02\x02\x12\x04\xe3\x06\x02O\x1a\xb9\x02 Enable the legacy handling of JSON field name conflicts. This lowercases\n and strips underscored from the fields before comparison in proto3 only.\n The new behavior takes `json_name` into account and applies to proto2 as\n well.\n TODO Remove this legacy behavior once downstream teams have\n had time to migrate.\n\n\r\n\x05\x04\x0e\x02\x02\x04\x12\x04\xe3\x06\x02\n\n\r\n\x05\x04\x0e\x02\x02\x05\x12\x04\xe3\x06\x0b\x0f\n\r\n\x05\x04\x0e\x02\x02\x01\x12\x04\xe3\x06\x106\n\r\n\x05\x04\x0e\x02\x02\x03\x12\x04\xe3\x069:\n\r\n\x05\x04\x0e\x02\x02\x08\x12\x04\xe3\x06;N\n\x0e\n\x06\x04\x0e\x02\x02\x08\x03\x12\x04\xe3\x06<M\n\x91\x02\n\x04\x04\x0e\x02\x03\x12\x04\xe9\x06\x02#\x1a\x82\x02 Any features defined in the specific edition.\n WARNING: This field should only be used by protobuf plugins or special\n cases like the proto compiler. Other uses are discouraged and\n developers should rely on the protoreflect APIs for their client language.\n\n\r\n\x05\x04\x0e\x02\x03\x04\x12\x04\xe9\x06\x02\n\n\r\n\x05\x04\x0e\x02\x03\x06\x12\x04\xe9\x06\x0b\x15\n\r\n\x05\x04\x0e\x02\x03\x01\x12\x04\xe9\x06\x16\x1e\n\r\n\x05\x04\x0e\x02\x03\x03\x12\x04\xe9\x06!\"\nO\n\x04\x04\x0e\x02\x04\x12\x04\xec\x06\x02:\x1aA The parser stores options it doesn\'t recognize here. See above.\n\n\r\n\x05\x04\x0e\x02\x04\x04\x12\x04\xec\x06\x02\n\n\r\n\x05\x04\x0e\x02\x04\x06\x12\x04\xec\x06\x0b\x1e\n\r\n\x05\x04\x0e\x02\x04\x01\x12\x04\xec\x06\x1f3\n\r\n\x05\x04\x0e\x02\x04\x03\x12\x04\xec\x0669\nZ\n\x03\x04\x0e\x05\x12\x04\xef\x06\x02\x19\x1aM Clients can define custom options in extensions of this message. See above.\n\n\x0c\n\x04\x04\x0e\x05\x00\x12\x04\xef\x06\r\x18\n\r\n\x05\x04\x0e\x05\x00\x01\x12\x04\xef\x06\r\x11\n\r\n\x05\x04\x0e\x05\x00\x02\x12\x04\xef\x06\x15\x18\n\x0c\n\x02\x04\x0f\x12\x06\xf2\x06\x00\x8c\x07\x01\n\x0b\n\x03\x04\x0f\x01\x12\x04\xf2\x06\x08\x18\n\xf7\x01\n\x04\x04\x0f\x02\x00\x12\x04\xf7\x06\x021\x1a\xe8\x01 Is this enum value deprecated?\n Depending on the target platform, this can emit Deprecated annotations\n for the enum value, or it will be completely ignored; in the very least,\n this is a formalization for deprecating enum values.\n\n\r\n\x05\x04\x0f\x02\x00\x04\x12\x04\xf7\x06\x02\n\n\r\n\x05\x04\x0f\x02\x00\x05\x12\x04\xf7\x06\x0b\x0f\n\r\n\x05\x04\x0f\x02\x00\x01\x12\x04\xf7\x06\x10\x1a\n\r\n\x05\x04\x0f\x02\x00\x03\x12\x04\xf7\x06\x1d\x1e\n\r\n\x05\x04\x0f\x02\x00\x08\x12\x04\xf7\x06\x1f0\n\r\n\x05\x04\x0f\x02\x00\x07\x12\x04\xf7\x06*/\n\x91\x02\n\x04\x04\x0f\x02\x01\x12\x04\xfd\x06\x02#\x1a\x82\x02 Any features defined in the specific edition.\n WARNING: This field should only be used by protobuf plugins or special\n cases like the proto compiler. Other uses are discouraged and\n developers should rely on the protoreflect APIs for their client language.\n\n\r\n\x05\x04\x0f\x02\x01\x04\x12\x04\xfd\x06\x02\n\n\r\n\x05\x04\x0f\x02\x01\x06\x12\x04\xfd\x06\x0b\x15\n\r\n\x05\x04\x0f\x02\x01\x01\x12\x04\xfd\x06\x16\x1e\n\r\n\x05\x04\x0f\x02\x01\x03\x12\x04\xfd\x06!\"\n\xae\x01\n\x04\x04\x0f\x02\x02\x12\x04\x82\x07\x023\x1a\x9f\x01 Indicate that fields annotated with this enum value should not be printed\n out when using debug formats, e.g. when the field contains sensitive\n credentials.\n\n\r\n\x05\x04\x0f\x02\x02\x04\x12\x04\x82\x07\x02\n\n\r\n\x05\x04\x0f\x02\x02\x05\x12\x04\x82\x07\x0b\x0f\n\r\n\x05\x04\x0f\x02\x02\x01\x12\x04\x82\x07\x10\x1c\n\r\n\x05\x04\x0f\x02\x02\x03\x12\x04\x82\x07\x1f \n\r\n\x05\x04\x0f\x02\x02\x08\x12\x04\x82\x07!2\n\r\n\x05\x04\x0f\x02\x02\x07\x12\x04\x82\x07,1\nH\n\x04\x04\x0f\x02\x03\x12\x04\x85\x07\x02;\x1a: Information about the support window of a feature value.\n\n\r\n\x05\x04\x0f\x02\x03\x04\x12\x04\x85\x07\x02\n\n\r\n\x05\x04\x0f\x02\x03\x06\x12\x04\x85\x07\x0b&\n\r\n\x05\x04\x0f\x02\x03\x01\x12\x04\x85\x07\'6\n\r\n\x05\x04\x0f\x02\x03\x03\x12\x04\x85\x079:\nO\n\x04\x04\x0f\x02\x04\x12\x04\x88\x07\x02:\x1aA The parser stores options it doesn\'t recognize here. See above.\n\n\r\n\x05\x04\x0f\x02\x04\x04\x12\x04\x88\x07\x02\n\n\r\n\x05\x04\x0f\x02\x04\x06\x12\x04\x88\x07\x0b\x1e\n\r\n\x05\x04\x0f\x02\x04\x01\x12\x04\x88\x07\x1f3\n\r\n\x05\x04\x0f\x02\x04\x03\x12\x04\x88\x0769\nZ\n\x03\x04\x0f\x05\x12\x04\x8b\x07\x02\x19\x1aM Clients can define custom options in extensions of this message. See above.\n\n\x0c\n\x04\x04\x0f\x05\x00\x12\x04\x8b\x07\r\x18\n\r\n\x05\x04\x0f\x05\x00\x01\x12\x04\x8b\x07\r\x11\n\r\n\x05\x04\x0f\x05\x00\x02\x12\x04\x8b\x07\x15\x18\n\x0c\n\x02\x04\x10\x12\x06\x8e\x07\x00\xa6\x07\x01\n\x0b\n\x03\x04\x10\x01\x12\x04\x8e\x07\x08\x16\n\x91\x02\n\x04\x04\x10\x02\x00\x12\x04\x94\x07\x02$\x1a\x82\x02 Any features defined in the specific edition.\n WARNING: This field should only be used by protobuf plugins or special\n cases like the proto compiler. Other uses are discouraged and\n developers should rely on the protoreflect APIs for their client language.\n\n\r\n\x05\x04\x10\x02\x00\x04\x12\x04\x94\x07\x02\n\n\r\n\x05\x04\x10\x02\x00\x06\x12\x04\x94\x07\x0b\x15\n\r\n\x05\x04\x10\x02\x00\x01\x12\x04\x94\x07\x16\x1e\n\r\n\x05\x04\x10\x02\x00\x03\x12\x04\x94\x07!#\n\xd9\x03\n\x04\x04\x10\x02\x01\x12\x04\x9f\x07\x022\x1a\xdf\x01 Is this service deprecated?\n Depending on the target platform, this can emit Deprecated annotations\n for the service, or it will be completely ignored; in the very least,\n this is a formalization for deprecating services.\n2\xe8\x01 Note: Field numbers 1 through 32 are reserved for Google\'s internal RPC\n framework. We apologize for hoarding these numbers to ourselves, but\n we were already using them long before we decided to release Protocol\n Buffers.\n\n\r\n\x05\x04\x10\x02\x01\x04\x12\x04\x9f\x07\x02\n\n\r\n\x05\x04\x10\x02\x01\x05\x12\x04\x9f\x07\x0b\x0f\n\r\n\x05\x04\x10\x02\x01\x01\x12\x04\x9f\x07\x10\x1a\n\r\n\x05\x04\x10\x02\x01\x03\x12\x04\x9f\x07\x1d\x1f\n\r\n\x05\x04\x10\x02\x01\x08\x12\x04\x9f\x07 1\n\r\n\x05\x04\x10\x02\x01\x07\x12\x04\x9f\x07+0\nO\n\x04\x04\x10\x02\x02\x12\x04\xa2\x07\x02:\x1aA The parser stores options it doesn\'t recognize here. See above.\n\n\r\n\x05\x04\x10\x02\x02\x04\x12\x04\xa2\x07\x02\n\n\r\n\x05\x04\x10\x02\x02\x06\x12\x04\xa2\x07\x0b\x1e\n\r\n\x05\x04\x10\x02\x02\x01\x12\x04\xa2\x07\x1f3\n\r\n\x05\x04\x10\x02\x02\x03\x12\x04\xa2\x0769\nZ\n\x03\x04\x10\x05\x12\x04\xa5\x07\x02\x19\x1aM Clients can define custom options in extensions of this message. See above.\n\n\x0c\n\x04\x04\x10\x05\x00\x12\x04\xa5\x07\r\x18\n\r\n\x05\x04\x10\x05\x00\x01\x12\x04\xa5\x07\r\x11\n\r\n\x05\x04\x10\x05\x00\x02\x12\x04\xa5\x07\x15\x18\n\x0c\n\x02\x04\x11\x12\x06\xa8\x07\x00\xcb\x07\x01\n\x0b\n\x03\x04\x11\x01\x12\x04\xa8\x07\x08\x15\n\xd6\x03\n\x04\x04\x11\x02\x00\x12\x04\xb3\x07\x022\x1a\xdc\x01 Is this method deprecated?\n Depending on the target platform, this can emit Deprecated annotations\n for the method, or it will be completely ignored; in the very least,\n this is a formalization for deprecating methods.\n2\xe8\x01 Note: Field numbers 1 through 32 are reserved for Google\'s internal RPC\n framework. We apologize for hoarding these numbers to ourselves, but\n we were already using them long before we decided to release Protocol\n Buffers.\n\n\r\n\x05\x04\x11\x02\x00\x04\x12\x04\xb3\x07\x02\n\n\r\n\x05\x04\x11\x02\x00\x05\x12\x04\xb3\x07\x0b\x0f\n\r\n\x05\x04\x11\x02\x00\x01\x12\x04\xb3\x07\x10\x1a\n\r\n\x05\x04\x11\x02\x00\x03\x12\x04\xb3\x07\x1d\x1f\n\r\n\x05\x04\x11\x02\x00\x08\x12\x04\xb3\x07 1\n\r\n\x05\x04\x11\x02\x00\x07\x12\x04\xb3\x07+0\n\xf0\x01\n\x04\x04\x11\x04\x00\x12\x06\xb8\x07\x02\xbc\x07\x03\x1a\xdf\x01 Is this method side-effect-free (or safe in HTTP parlance), or idempotent,\n or neither? HTTP based RPC implementation may choose GET verb for safe\n methods, and PUT verb for idempotent methods instead of the default POST.\n\n\r\n\x05\x04\x11\x04\x00\x01\x12\x04\xb8\x07\x07\x17\n\x0e\n\x06\x04\x11\x04\x00\x02\x00\x12\x04\xb9\x07\x04\x1c\n\x0f\n\x07\x04\x11\x04\x00\x02\x00\x01\x12\x04\xb9\x07\x04\x17\n\x0f\n\x07\x04\x11\x04\x00\x02\x00\x02\x12\x04\xb9\x07\x1a\x1b\n$\n\x06\x04\x11\x04\x00\x02\x01\x12\x04\xba\x07\x04\x18\"\x14 implies idempotent\n\n\x0f\n\x07\x04\x11\x04\x00\x02\x01\x01\x12\x04\xba\x07\x04\x13\n\x0f\n\x07\x04\x11\x04\x00\x02\x01\x02\x12\x04\xba\x07\x16\x17\n7\n\x06\x04\x11\x04\x00\x02\x02\x12\x04\xbb\x07\x04\x13\"\' idempotent, but may have side effects\n\n\x0f\n\x07\x04\x11\x04\x00\x02\x02\x01\x12\x04\xbb\x07\x04\x0e\n\x0f\n\x07\x04\x11\x04\x00\x02\x02\x02\x12\x04\xbb\x07\x11\x12\n\x0e\n\x04\x04\x11\x02\x01\x12\x06\xbd\x07\x02\xbe\x07&\n\r\n\x05\x04\x11\x02\x01\x04\x12\x04\xbd\x07\x02\n\n\r\n\x05\x04\x11\x02\x01\x06\x12\x04\xbd\x07\x0b\x1b\n\r\n\x05\x04\x11\x02\x01\x01\x12\x04\xbd\x07\x1c-\n\r\n\x05\x04\x11\x02\x01\x03\x12\x04\xbd\x0702\n\r\n\x05\x04\x11\x02\x01\x08\x12\x04\xbe\x07\x06%\n\r\n\x05\x04\x11\x02\x01\x07\x12\x04\xbe\x07\x11$\n\x91\x02\n\x04\x04\x11\x02\x02\x12\x04\xc4\x07\x02$\x1a\x82\x02 Any features defined in the specific edition.\n WARNING: This field should only be used by protobuf plugins or special\n cases like the proto compiler. Other uses are discouraged and\n developers should rely on the protoreflect APIs for their client language.\n\n\r\n\x05\x04\x11\x02\x02\x04\x12\x04\xc4\x07\x02\n\n\r\n\x05\x04\x11\x02\x02\x06\x12\x04\xc4\x07\x0b\x15\n\r\n\x05\x04\x11\x02\x02\x01\x12\x04\xc4\x07\x16\x1e\n\r\n\x05\x04\x11\x02\x02\x03\x12\x04\xc4\x07!#\nO\n\x04\x04\x11\x02\x03\x12\x04\xc7\x07\x02:\x1aA The parser stores options it doesn\'t recognize here. See above.\n\n\r\n\x05\x04\x11\x02\x03\x04\x12\x04\xc7\x07\x02\n\n\r\n\x05\x04\x11\x02\x03\x06\x12\x04\xc7\x07\x0b\x1e\n\r\n\x05\x04\x11\x02\x03\x01\x12\x04\xc7\x07\x1f3\n\r\n\x05\x04\x11\x02\x03\x03\x12\x04\xc7\x0769\nZ\n\x03\x04\x11\x05\x12\x04\xca\x07\x02\x19\x1aM Clients can define custom options in extensions of this message. See above.\n\n\x0c\n\x04\x04\x11\x05\x00\x12\x04\xca\x07\r\x18\n\r\n\x05\x04\x11\x05\x00\x01\x12\x04\xca\x07\r\x11\n\r\n\x05\x04\x11\x05\x00\x02\x12\x04\xca\x07\x15\x18\n\x8b\x03\n\x02\x04\x12\x12\x06\xd3\x07\x00\xe7\x07\x01\x1a\xfc\x02 A message representing a option the parser does not recognize. This only\n appears in options protos created by the compiler::Parser class.\n DescriptorPool resolves these when building Descriptor objects. Therefore,\n options protos in descriptor objects (e.g. returned by Descriptor::options(),\n or produced by Descriptor::CopyTo()) will never have UninterpretedOptions\n in them.\n\n\x0b\n\x03\x04\x12\x01\x12\x04\xd3\x07\x08\x1b\n\xcb\x02\n\x04\x04\x12\x03\x00\x12\x06\xd9\x07\x02\xdc\x07\x03\x1a\xba\x02 The name of the uninterpreted option. Each string represents a segment in\n a dot-separated name. is_extension is true iff a segment represents an\n extension (denoted with parentheses in options specs in .proto files).\n E.g.,{ [\"foo\", false], [\"bar.baz\", true], [\"moo\", false] } represents\n \"foo.(bar.baz).moo\".\n\n\r\n\x05\x04\x12\x03\x00\x01\x12\x04\xd9\x07\n\x12\n\x0e\n\x06\x04\x12\x03\x00\x02\x00\x12\x04\xda\x07\x04\"\n\x0f\n\x07\x04\x12\x03\x00\x02\x00\x04\x12\x04\xda\x07\x04\x0c\n\x0f\n\x07\x04\x12\x03\x00\x02\x00\x05\x12\x04\xda\x07\r\x13\n\x0f\n\x07\x04\x12\x03\x00\x02\x00\x01\x12\x04\xda\x07\x14\x1d\n\x0f\n\x07\x04\x12\x03\x00\x02\x00\x03\x12\x04\xda\x07 !\n\x0e\n\x06\x04\x12\x03\x00\x02\x01\x12\x04\xdb\x07\x04#\n\x0f\n\x07\x04\x12\x03\x00\x02\x01\x04\x12\x04\xdb\x07\x04\x0c\n\x0f\n\x07\x04\x12\x03\x00\x02\x01\x05\x12\x04\xdb\x07\r\x11\n\x0f\n\x07\x04\x12\x03\x00\x02\x01\x01\x12\x04\xdb\x07\x12\x1e\n\x0f\n\x07\x04\x12\x03\x00\x02\x01\x03\x12\x04\xdb\x07!\"\n\x0c\n\x04\x04\x12\x02\x00\x12\x04\xdd\x07\x02\x1d\n\r\n\x05\x04\x12\x02\x00\x04\x12\x04\xdd\x07\x02\n\n\r\n\x05\x04\x12\x02\x00\x06\x12\x04\xdd\x07\x0b\x13\n\r\n\x05\x04\x12\x02\x00\x01\x12\x04\xdd\x07\x14\x18\n\r\n\x05\x04\x12\x02\x00\x03\x12\x04\xdd\x07\x1b\x1c\n\x9c\x01\n\x04\x04\x12\x02\x01\x12\x04\xe1\x07\x02\'\x1a\x8d\x01 The value of the uninterpreted option, in whatever type the tokenizer\n identified it as during parsing. Exactly one of these should be set.\n\n\r\n\x05\x04\x12\x02\x01\x04\x12\x04\xe1\x07\x02\n\n\r\n\x05\x04\x12\x02\x01\x05\x12\x04\xe1\x07\x0b\x11\n\r\n\x05\x04\x12\x02\x01\x01\x12\x04\xe1\x07\x12\"\n\r\n\x05\x04\x12\x02\x01\x03\x12\x04\xe1\x07%&\n\x0c\n\x04\x04\x12\x02\x02\x12\x04\xe2\x07\x02)\n\r\n\x05\x04\x12\x02\x02\x04\x12\x04\xe2\x07\x02\n\n\r\n\x05\x04\x12\x02\x02\x05\x12\x04\xe2\x07\x0b\x11\n\r\n\x05\x04\x12\x02\x02\x01\x12\x04\xe2\x07\x12$\n\r\n\x05\x04\x12\x02\x02\x03\x12\x04\xe2\x07\'(\n\x0c\n\x04\x04\x12\x02\x03\x12\x04\xe3\x07\x02(\n\r\n\x05\x04\x12\x02\x03\x04\x12\x04\xe3\x07\x02\n\n\r\n\x05\x04\x12\x02\x03\x05\x12\x04\xe3\x07\x0b\x10\n\r\n\x05\x04\x12\x02\x03\x01\x12\x04\xe3\x07\x11#\n\r\n\x05\x04\x12\x02\x03\x03\x12\x04\xe3\x07&\'\n\x0c\n\x04\x04\x12\x02\x04\x12\x04\xe4\x07\x02#\n\r\n\x05\x04\x12\x02\x04\x04\x12\x04\xe4\x07\x02\n\n\r\n\x05\x04\x12\x02\x04\x05\x12\x04\xe4\x07\x0b\x11\n\r\n\x05\x04\x12\x02\x04\x01\x12\x04\xe4\x07\x12\x1e\n\r\n\x05\x04\x12\x02\x04\x03\x12\x04\xe4\x07!\"\n\x0c\n\x04\x04\x12\x02\x05\x12\x04\xe5\x07\x02\"\n\r\n\x05\x04\x12\x02\x05\x04\x12\x04\xe5\x07\x02\n\n\r\n\x05\x04\x12\x02\x05\x05\x12\x04\xe5\x07\x0b\x10\n\r\n\x05\x04\x12\x02\x05\x01\x12\x04\xe5\x07\x11\x1d\n\r\n\x05\x04\x12\x02\x05\x03\x12\x04\xe5\x07 !\n\x0c\n\x04\x04\x12\x02\x06\x12\x04\xe6\x07\x02&\n\r\n\x05\x04\x12\x02\x06\x04\x12\x04\xe6\x07\x02\n\n\r\n\x05\x04\x12\x02\x06\x05\x12\x04\xe6\x07\x0b\x11\n\r\n\x05\x04\x12\x02\x06\x01\x12\x04\xe6\x07\x12!\n\r\n\x05\x04\x12\x02\x06\x03\x12\x04\xe6\x07$%\n\xdb\x03\n\x02\x04\x13\x12\x06\xf2\x07\x00\xa8\t\x01\x1a\xfb\x02 TODO Enums in C++ gencode (and potentially other languages) are\n not well scoped. This means that each of the feature enums below can clash\n with each other. The short names we\'ve chosen maximize call-site\n readability, but leave us very open to this scenario. A future feature will\n be designed and implemented to handle this, hopefully before we ever hit a\n conflict here.\n2O ===================================================================\n Features\n\n\x0b\n\x03\x04\x13\x01\x12\x04\xf2\x07\x08\x12\n\x0e\n\x04\x04\x13\x04\x00\x12\x06\xf3\x07\x02\xf8\x07\x03\n\r\n\x05\x04\x13\x04\x00\x01\x12\x04\xf3\x07\x07\x14\n\x0e\n\x06\x04\x13\x04\x00\x02\x00\x12\x04\xf4\x07\x04\x1f\n\x0f\n\x07\x04\x13\x04\x00\x02\x00\x01\x12\x04\xf4\x07\x04\x1a\n\x0f\n\x07\x04\x13\x04\x00\x02\x00\x02\x12\x04\xf4\x07\x1d\x1e\n\x0e\n\x06\x04\x13\x04\x00\x02\x01\x12\x04\xf5\x07\x04\x11\n\x0f\n\x07\x04\x13\x04\x00\x02\x01\x01\x12\x04\xf5\x07\x04\x0c\n\x0f\n\x07\x04\x13\x04\x00\x02\x01\x02\x12\x04\xf5\x07\x0f\x10\n\x0e\n\x06\x04\x13\x04\x00\x02\x02\x12\x04\xf6\x07\x04\x11\n\x0f\n\x07\x04\x13\x04\x00\x02\x02\x01\x12\x04\xf6\x07\x04\x0c\n\x0f\n\x07\x04\x13\x04\x00\x02\x02\x02\x12\x04\xf6\x07\x0f\x10\n\x0e\n\x06\x04\x13\x04\x00\x02\x03\x12\x04\xf7\x07\x04\x18\n\x0f\n\x07\x04\x13\x04\x00\x02\x03\x01\x12\x04\xf7\x07\x04\x13\n\x0f\n\x07\x04\x13\x04\x00\x02\x03\x02\x12\x04\xf7\x07\x16\x17\n\x0e\n\x04\x04\x13\x02\x00\x12\x06\xf9\x07\x02\x83\x08\x04\n\r\n\x05\x04\x13\x02\x00\x04\x12\x04\xf9\x07\x02\n\n\r\n\x05\x04\x13\x02\x00\x06\x12\x04\xf9\x07\x0b\x18\n\r\n\x05\x04\x13\x02\x00\x01\x12\x04\xf9\x07\x19\'\n\r\n\x05\x04\x13\x02\x00\x03\x12\x04\xf9\x07*+\n\x0f\n\x05\x04\x13\x02\x00\x08\x12\x06\xf9\x07,\x83\x08\x03\n\x0e\n\x06\x04\x13\x02\x00\x08\x11\x12\x04\xfa\x07\x04!\n\x0f\n\x07\x04\x13\x02\x00\x08\x13\x00\x12\x04\xfb\x07\x04\x1f\n\x0f\n\x07\x04\x13\x02\x00\x08\x13\x01\x12\x04\xfc\x07\x04\x1e\n\x10\n\x06\x04\x13\x02\x00\x08\x16\x12\x06\xfd\x07\x04\xff\x07\x05\n\x0f\n\x07\x04\x13\x02\x00\x08\x14\x00\x12\x04\x80\x08\x04E\n\x0f\n\x07\x04\x13\x02\x00\x08\x14\x01\x12\x04\x81\x08\x04E\n\x0f\n\x07\x04\x13\x02\x00\x08\x14\x02\x12\x04\x82\x08\x04C\n\x0e\n\x04\x04\x13\x04\x01\x12\x06\x85\x08\x02\x89\x08\x03\n\r\n\x05\x04\x13\x04\x01\x01\x12\x04\x85\x08\x07\x0f\n\x0e\n\x06\x04\x13\x04\x01\x02\x00\x12\x04\x86\x08\x04\x1a\n\x0f\n\x07\x04\x13\x04\x01\x02\x00\x01\x12\x04\x86\x08\x04\x15\n\x0f\n\x07\x04\x13\x04\x01\x02\x00\x02\x12\x04\x86\x08\x18\x19\n\x0e\n\x06\x04\x13\x04\x01\x02\x01\x12\x04\x87\x08\x04\r\n\x0f\n\x07\x04\x13\x04\x01\x02\x01\x01\x12\x04\x87\x08\x04\x08\n\x0f\n\x07\x04\x13\x04\x01\x02\x01\x02\x12\x04\x87\x08\x0b\x0c\n\x0e\n\x06\x04\x13\x04\x01\x02\x02\x12\x04\x88\x08\x04\x0f\n\x0f\n\x07\x04\x13\x04\x01\x02\x02\x01\x12\x04\x88\x08\x04\n\n\x0f\n\x07\x04\x13\x04\x01\x02\x02\x02\x12\x04\x88\x08\r\x0e\n\x0e\n\x04\x04\x13\x02\x01\x12\x06\x8a\x08\x02\x93\x08\x04\n\r\n\x05\x04\x13\x02\x01\x04\x12\x04\x8a\x08\x02\n\n\r\n\x05\x04\x13\x02\x01\x06\x12\x04\x8a\x08\x0b\x13\n\r\n\x05\x04\x13\x02\x01\x01\x12\x04\x8a\x08\x14\x1d\n\r\n\x05\x04\x13\x02\x01\x03\x12\x04\x8a\x08 !\n\x0f\n\x05\x04\x13\x02\x01\x08\x12\x06\x8a\x08\"\x93\x08\x03\n\x0e\n\x06\x04\x13\x02\x01\x08\x11\x12\x04\x8b\x08\x04!\n\x0f\n\x07\x04\x13\x02\x01\x08\x13\x00\x12\x04\x8c\x08\x04\x1e\n\x0f\n\x07\x04\x13\x02\x01\x08\x13\x01\x12\x04\x8d\x08\x04\x1e\n\x10\n\x06\x04\x13\x02\x01\x08\x16\x12\x06\x8e\x08\x04\x90\x08\x05\n\x0f\n\x07\x04\x13\x02\x01\x08\x14\x00\x12\x04\x91\x08\x04C\n\x0f\n\x07\x04\x13\x02\x01\x08\x14\x01\x12\x04\x92\x08\x04A\n\x0e\n\x04\x04\x13\x04\x02\x12\x06\x95\x08\x02\x99\x08\x03\n\r\n\x05\x04\x13\x04\x02\x01\x12\x04\x95\x08\x07\x1c\n\x0e\n\x06\x04\x13\x04\x02\x02\x00\x12\x04\x96\x08\x04(\n\x0f\n\x07\x04\x13\x04\x02\x02\x00\x01\x12\x04\x96\x08\x04#\n\x0f\n\x07\x04\x13\x04\x02\x02\x00\x02\x12\x04\x96\x08&\'\n\x0e\n\x06\x04\x13\x04\x02\x02\x01\x12\x04\x97\x08\x04\x0f\n\x0f\n\x07\x04\x13\x04\x02\x02\x01\x01\x12\x04\x97\x08\x04\n\n\x0f\n\x07\x04\x13\x04\x02\x02\x01\x02\x12\x04\x97\x08\r\x0e\n\x0e\n\x06\x04\x13\x04\x02\x02\x02\x12\x04\x98\x08\x04\x11\n\x0f\n\x07\x04\x13\x04\x02\x02\x02\x01\x12\x04\x98\x08\x04\x0c\n\x0f\n\x07\x04\x13\x04\x02\x02\x02\x02\x12\x04\x98\x08\x0f\x10\n\x0e\n\x04\x04\x13\x02\x02\x12\x06\x9a\x08\x02\xa3\x08\x04\n\r\n\x05\x04\x13\x02\x02\x04\x12\x04\x9a\x08\x02\n\n\r\n\x05\x04\x13\x02\x02\x06\x12\x04\x9a\x08\x0b \n\r\n\x05\x04\x13\x02\x02\x01\x12\x04\x9a\x08!8\n\r\n\x05\x04\x13\x02\x02\x03\x12\x04\x9a\x08;<\n\x0f\n\x05\x04\x13\x02\x02\x08\x12\x06\x9a\x08=\xa3\x08\x03\n\x0e\n\x06\x04\x13\x02\x02\x08\x11\x12\x04\x9b\x08\x04!\n\x0f\n\x07\x04\x13\x02\x02\x08\x13\x00\x12\x04\x9c\x08\x04\x1f\n\x0f\n\x07\x04\x13\x02\x02\x08\x13\x01\x12\x04\x9d\x08\x04\x1e\n\x10\n\x06\x04\x13\x02\x02\x08\x16\x12\x06\x9e\x08\x04\xa0\x08\x05\n\x0f\n\x07\x04\x13\x02\x02\x08\x14\x00\x12\x04\xa1\x08\x04E\n\x0f\n\x07\x04\x13\x02\x02\x08\x14\x01\x12\x04\xa2\x08\x04C\n\x0e\n\x04\x04\x13\x04\x03\x12\x06\xa5\x08\x02\xaa\x08\x03\n\r\n\x05\x04\x13\x04\x03\x01\x12\x04\xa5\x08\x07\x15\n\x0e\n\x06\x04\x13\x04\x03\x02\x00\x12\x04\xa6\x08\x04 \n\x0f\n\x07\x04\x13\x04\x03\x02\x00\x01\x12\x04\xa6\x08\x04\x1b\n\x0f\n\x07\x04\x13\x04\x03\x02\x00\x02\x12\x04\xa6\x08\x1e\x1f\n\x0e\n\x06\x04\x13\x04\x03\x02\x01\x12\x04\xa7\x08\x04\x0f\n\x0f\n\x07\x04\x13\x04\x03\x02\x01\x01\x12\x04\xa7\x08\x04\n\n\x0f\n\x07\x04\x13\x04\x03\x02\x01\x02\x12\x04\xa7\x08\r\x0e\n\x0e\n\x06\x04\x13\x04\x03\x02\x02\x12\x04\xa8\x08\x04\r\n\x0f\n\x07\x04\x13\x04\x03\x02\x02\x01\x12\x04\xa8\x08\x04\x08\n\x0f\n\x07\x04\x13\x04\x03\x02\x02\x02\x12\x04\xa8\x08\x0b\x0c\n\r\n\x05\x04\x13\x04\x03\x04\x12\x04\xa9\x08\x04\x0f\n\x0e\n\x06\x04\x13\x04\x03\x04\x00\x12\x04\xa9\x08\r\x0e\n\x0f\n\x07\x04\x13\x04\x03\x04\x00\x01\x12\x04\xa9\x08\r\x0e\n\x0f\n\x07\x04\x13\x04\x03\x04\x00\x02\x12\x04\xa9\x08\r\x0e\n\x0e\n\x04\x04\x13\x02\x03\x12\x06\xab\x08\x02\xb4\x08\x04\n\r\n\x05\x04\x13\x02\x03\x04\x12\x04\xab\x08\x02\n\n\r\n\x05\x04\x13\x02\x03\x06\x12\x04\xab\x08\x0b\x19\n\r\n\x05\x04\x13\x02\x03\x01\x12\x04\xab\x08\x1a)\n\r\n\x05\x04\x13\x02\x03\x03\x12\x04\xab\x08,-\n\x0f\n\x05\x04\x13\x02\x03\x08\x12\x06\xab\x08.\xb4\x08\x03\n\x0e\n\x06\x04\x13\x02\x03\x08\x11\x12\x04\xac\x08\x04!\n\x0f\n\x07\x04\x13\x02\x03\x08\x13\x00\x12\x04\xad\x08\x04\x1f\n\x0f\n\x07\x04\x13\x02\x03\x08\x13\x01\x12\x04\xae\x08\x04\x1e\n\x10\n\x06\x04\x13\x02\x03\x08\x16\x12\x06\xaf\x08\x04\xb1\x08\x05\n\x0f\n\x07\x04\x13\x02\x03\x08\x14\x00\x12\x04\xb2\x08\x04A\n\x0f\n\x07\x04\x13\x02\x03\x08\x14\x01\x12\x04\xb3\x08\x04C\n\x0e\n\x04\x04\x13\x04\x04\x12\x06\xb6\x08\x02\xba\x08\x03\n\r\n\x05\x04\x13\x04\x04\x01\x12\x04\xb6\x08\x07\x16\n\x0e\n\x06\x04\x13\x04\x04\x02\x00\x12\x04\xb7\x08\x04!\n\x0f\n\x07\x04\x13\x04\x04\x02\x00\x01\x12\x04\xb7\x08\x04\x1c\n\x0f\n\x07\x04\x13\x04\x04\x02\x00\x02\x12\x04\xb7\x08\x1f \n\x0e\n\x06\x04\x13\x04\x04\x02\x01\x12\x04\xb8\x08\x04\x18\n\x0f\n\x07\x04\x13\x04\x04\x02\x01\x01\x12\x04\xb8\x08\x04\x13\n\x0f\n\x07\x04\x13\x04\x04\x02\x01\x02\x12\x04\xb8\x08\x16\x17\n\x0e\n\x06\x04\x13\x04\x04\x02\x02\x12\x04\xb9\x08\x04\x12\n\x0f\n\x07\x04\x13\x04\x04\x02\x02\x01\x12\x04\xb9\x08\x04\r\n\x0f\n\x07\x04\x13\x04\x04\x02\x02\x02\x12\x04\xb9\x08\x10\x11\n\x0e\n\x04\x04\x13\x02\x04\x12\x06\xbb\x08\x02\xc3\x08\x04\n\r\n\x05\x04\x13\x02\x04\x04\x12\x04\xbb\x08\x02\n\n\r\n\x05\x04\x13\x02\x04\x06\x12\x04\xbb\x08\x0b\x1a\n\r\n\x05\x04\x13\x02\x04\x01\x12\x04\xbb\x08\x1b+\n\r\n\x05\x04\x13\x02\x04\x03\x12\x04\xbb\x08./\n\x0f\n\x05\x04\x13\x02\x04\x08\x12\x06\xbb\x080\xc3\x08\x03\n\x0e\n\x06\x04\x13\x02\x04\x08\x11\x12\x04\xbc\x08\x04!\n\x0f\n\x07\x04\x13\x02\x04\x08\x13\x00\x12\x04\xbd\x08\x04\x1f\n\x0f\n\x07\x04\x13\x02\x04\x08\x13\x01\x12\x04\xbe\x08\x04\x1e\n\x10\n\x06\x04\x13\x02\x04\x08\x16\x12\x06\xbf\x08\x04\xc1\x08\x05\n\x0f\n\x07\x04\x13\x02\x04\x08\x14\x00\x12\x04\xc2\x08\x04L\n\x0e\n\x04\x04\x13\x04\x05\x12\x06\xc5\x08\x02\xc9\x08\x03\n\r\n\x05\x04\x13\x04\x05\x01\x12\x04\xc5\x08\x07\x11\n\x0e\n\x06\x04\x13\x04\x05\x02\x00\x12\x04\xc6\x08\x04\x1c\n\x0f\n\x07\x04\x13\x04\x05\x02\x00\x01\x12\x04\xc6\x08\x04\x17\n\x0f\n\x07\x04\x13\x04\x05\x02\x00\x02\x12\x04\xc6\x08\x1a\x1b\n\x0e\n\x06\x04\x13\x04\x05\x02\x01\x12\x04\xc7\x08\x04\x0e\n\x0f\n\x07\x04\x13\x04\x05\x02\x01\x01\x12\x04\xc7\x08\x04\t\n\x0f\n\x07\x04\x13\x04\x05\x02\x01\x02\x12\x04\xc7\x08\x0c\r\n\x0e\n\x06\x04\x13\x04\x05\x02\x02\x12\x04\xc8\x08\x04\x1b\n\x0f\n\x07\x04\x13\x04\x05\x02\x02\x01\x12\x04\xc8\x08\x04\x16\n\x0f\n\x07\x04\x13\x04\x05\x02\x02\x02\x12\x04\xc8\x08\x19\x1a\n\x0e\n\x04\x04\x13\x02\x05\x12\x06\xca\x08\x02\xd4\x08\x04\n\r\n\x05\x04\x13\x02\x05\x04\x12\x04\xca\x08\x02\n\n\r\n\x05\x04\x13\x02\x05\x06\x12\x04\xca\x08\x0b\x15\n\r\n\x05\x04\x13\x02\x05\x01\x12\x04\xca\x08\x16!\n\r\n\x05\x04\x13\x02\x05\x03\x12\x04\xca\x08$%\n\x0f\n\x05\x04\x13\x02\x05\x08\x12\x06\xca\x08&\xd4\x08\x03\n\x0e\n\x06\x04\x13\x02\x05\x08\x11\x12\x04\xcb\x08\x04!\n\x0f\n\x07\x04\x13\x02\x05\x08\x13\x00\x12\x04\xcc\x08\x04!\n\x0f\n\x07\x04\x13\x02\x05\x08\x13\x01\x12\x04\xcd\x08\x04\x1e\n\x0f\n\x07\x04\x13\x02\x05\x08\x13\x02\x12\x04\xce\x08\x04\x1e\n\x10\n\x06\x04\x13\x02\x05\x08\x16\x12\x06\xcf\x08\x04\xd1\x08\x05\n\x0f\n\x07\x04\x13\x02\x05\x08\x14\x00\x12\x04\xd2\x08\x04O\n\x0f\n\x07\x04\x13\x02\x05\x08\x14\x01\x12\x04\xd3\x08\x04B\n\x0e\n\x04\x04\x13\x04\x06\x12\x06\xd6\x08\x02\xda\x08\x03\n\r\n\x05\x04\x13\x04\x06\x01\x12\x04\xd6\x08\x07\x19\n\x0e\n\x06\x04\x13\x04\x06\x02\x00\x12\x04\xd7\x08\x04%\n\x0f\n\x07\x04\x13\x04\x06\x02\x00\x01\x12\x04\xd7\x08\x04 \n\x0f\n\x07\x04\x13\x04\x06\x02\x00\x02\x12\x04\xd7\x08#$\n\x0e\n\x06\x04\x13\x04\x06\x02\x01\x12\x04\xd8\x08\x04\x12\n\x0f\n\x07\x04\x13\x04\x06\x02\x01\x01\x12\x04\xd8\x08\x04\r\n\x0f\n\x07\x04\x13\x04\x06\x02\x01\x02\x12\x04\xd8\x08\x10\x11\n\x0e\n\x06\x04\x13\x04\x06\x02\x02\x12\x04\xd9\x08\x04\x15\n\x0f\n\x07\x04\x13\x04\x06\x02\x02\x01\x12\x04\xd9\x08\x04\x10\n\x0f\n\x07\x04\x13\x04\x06\x02\x02\x02\x12\x04\xd9\x08\x13\x14\n\x0e\n\x04\x04\x13\x02\x06\x12\x06\xdb\x08\x02\xeb\x08\x04\n\r\n\x05\x04\x13\x02\x06\x04\x12\x04\xdb\x08\x02\n\n\r\n\x05\x04\x13\x02\x06\x06\x12\x04\xdb\x08\x0b\x1d\n\r\n\x05\x04\x13\x02\x06\x01\x12\x04\xdb\x08\x1e2\n\r\n\x05\x04\x13\x02\x06\x03\x12\x04\xdb\x0856\n\x0f\n\x05\x04\x13\x02\x06\x08\x12\x06\xdb\x087\xeb\x08\x03\n\x0e\n\x06\x04\x13\x02\x06\x08\x11\x12\x04\xdc\x08\x04 \n\x0f\n\x07\x04\x13\x02\x06\x08\x13\x00\x12\x04\xdd\x08\x04\x1e\n\x0f\n\x07\x04\x13\x02\x06\x08\x13\x01\x12\x04\xde\x08\x04)\n\x0f\n\x07\x04\x13\x02\x06\x08\x13\x02\x12\x04\xdf\x08\x04!\n\x0f\n\x07\x04\x13\x02\x06\x08\x13\x03\x12\x04\xe0\x08\x04\x1f\n\x0f\n\x07\x04\x13\x02\x06\x08\x13\x04\x12\x04\xe1\x08\x04\x1f\n\x0f\n\x07\x04\x13\x02\x06\x08\x13\x05\x12\x04\xe2\x08\x04\x1e\n\x0f\n\x07\x04\x13\x02\x06\x08\x13\x06\x12\x04\xe3\x08\x04$\n\x0f\n\x07\x04\x13\x02\x06\x08\x13\x07\x12\x04\xe4\x08\x04!\n\x0f\n\x07\x04\x13\x02\x06\x08\x13\x08\x12\x04\xe5\x08\x04 \n\x10\n\x06\x04\x13\x02\x06\x08\x16\x12\x06\xe6\x08\x04\xe8\x08\x05\n\x0f\n\x07\x04\x13\x02\x06\x08\x14\x00\x12\x04\xe9\x08\x04I\n\x0f\n\x07\x04\x13\x02\x06\x08\x14\x01\x12\x04\xea\x08\x04D\n\x0e\n\x04\x04\x13\x03\x00\x12\x06\xed\x08\x02\x80\t\x03\n\r\n\x05\x04\x13\x03\x00\x01\x12\x04\xed\x08\n\x1b\n\x10\n\x06\x04\x13\x03\x00\x04\x00\x12\x06\xee\x08\x04\xfe\x08\x05\n\x0f\n\x07\x04\x13\x03\x00\x04\x00\x01\x12\x04\xee\x08\t \n\x10\n\x08\x04\x13\x03\x00\x04\x00\x02\x00\x12\x04\xef\x08\x06,\n\x11\n\t\x04\x13\x03\x00\x04\x00\x02\x00\x01\x12\x04\xef\x08\x06\'\n\x11\n\t\x04\x13\x03\x00\x04\x00\x02\x00\x02\x12\x04\xef\x08*+\nN\n\x08\x04\x13\x03\x00\x04\x00\x02\x01\x12\x04\xf2\x08\x06\x15\x1a< Default pre-EDITION_2024, all UNSET visibility are export.\n\n\x11\n\t\x04\x13\x03\x00\x04\x00\x02\x01\x01\x12\x04\xf2\x08\x06\x10\n\x11\n\t\x04\x13\x03\x00\x04\x00\x02\x01\x02\x12\x04\xf2\x08\x13\x14\nU\n\x08\x04\x13\x03\x00\x04\x00\x02\x02\x12\x04\xf5\x08\x06\x1b\x1aC All top-level symbols default to export, nested default to local.\n\n\x11\n\t\x04\x13\x03\x00\x04\x00\x02\x02\x01\x12\x04\xf5\x08\x06\x16\n\x11\n\t\x04\x13\x03\x00\x04\x00\x02\x02\x02\x12\x04\xf5\x08\x19\x1a\n1\n\x08\x04\x13\x03\x00\x04\x00\x02\x03\x12\x04\xf8\x08\x06\x14\x1a\x1f All symbols default to local.\n\n\x11\n\t\x04\x13\x03\x00\x04\x00\x02\x03\x01\x12\x04\xf8\x08\x06\x0f\n\x11\n\t\x04\x13\x03\x00\x04\x00\x02\x03\x02\x12\x04\xf8\x08\x12\x13\n\xc9\x01\n\x08\x04\x13\x03\x00\x04\x00\x02\x04\x12\x04\xfd\x08\x06\x11\x1a\xb6\x01 All symbols local by default. Nested types cannot be exported.\n With special case caveat for message { enum {} reserved 1 to max; }\n This is the recommended setting for new protos.\n\n\x11\n\t\x04\x13\x03\x00\x04\x00\x02\x04\x01\x12\x04\xfd\x08\x06\x0c\n\x11\n\t\x04\x13\x03\x00\x04\x00\x02\x04\x02\x12\x04\xfd\x08\x0f\x10\n\r\n\x05\x04\x13\x03\x00\t\x12\x04\xff\x08\x04\x16\n\x0e\n\x06\x04\x13\x03\x00\t\x00\x12\x04\xff\x08\r\x15\n\x0f\n\x07\x04\x13\x03\x00\t\x00\x01\x12\x04\xff\x08\r\x0e\n\x0f\n\x07\x04\x13\x03\x00\t\x00\x02\x12\x04\xff\x08\x12\x15\n\x0e\n\x04\x04\x13\x02\x07\x12\x06\x81\t\x02\x8a\t\x08\n\r\n\x05\x04\x13\x02\x07\x04\x12\x04\x81\t\x02\n\n\r\n\x05\x04\x13\x02\x07\x06\x12\x04\x81\t\x0b4\n\r\n\x05\x04\x13\x02\x07\x01\x12\x04\x81\t5N\n\r\n\x05\x04\x13\x02\x07\x03\x12\x04\x82\t\x06\x07\n\x0f\n\x05\x04\x13\x02\x07\x08\x12\x06\x82\t\x08\x8a\t\x07\n\x0e\n\x06\x04\x13\x02\x07\x08\x11\x12\x04\x83\t\x08$\n\x0f\n\x07\x04\x13\x02\x07\x08\x13\x00\x12\x04\x84\t\x08\"\n\x10\n\x06\x04\x13\x02\x07\x08\x16\x12\x06\x85\t\x08\x87\t\t\n\x0f\n\x07\x04\x13\x02\x07\x08\x14\x00\x12\x04\x88\t\x08K\n\x0f\n\x07\x04\x13\x02\x07\x08\x14\x01\x12\x04\x89\t\x08O\n\x0b\n\x03\x04\x13\t\x12\x04\x8c\t\x02\x0f\n\x0c\n\x04\x04\x13\t\x00\x12\x04\x8c\t\x0b\x0e\n\r\n\x05\x04\x13\t\x00\x01\x12\x04\x8c\t\x0b\x0e\n\r\n\x05\x04\x13\t\x00\x02\x12\x04\x8c\t\x0b\x0e\n\r\n\x03\x04\x13\x05\x12\x06\x8e\t\x02\xa4\t\x04\n\x0c\n\x04\x04\x13\x05\x00\x12\x04\x8e\t\r\x19\n\r\n\x05\x04\x13\x05\x00\x01\x12\x04\x8e\t\r\x11\n\r\n\x05\x04\x13\x05\x00\x02\x12\x04\x8e\t\x15\x19\n#\n\x03\x04\x13\x05\x12\x04\xa6\t\x02\x1a\"\x16 For internal testing\n\n\x0c\n\x04\x04\x13\x05\x01\x12\x04\xa6\t\r\x19\n\r\n\x05\x04\x13\x05\x01\x01\x12\x04\xa6\t\r\x11\n\r\n\x05\x04\x13\x05\x01\x02\x12\x04\xa6\t\x15\x19\n:\n\x03\x04\x13\x05\x12\x04\xa7\t\x02\x13\"- for https://github.com/bufbuild/protobuf-es\n\n\x0c\n\x04\x04\x13\x05\x02\x12\x04\xa7\t\r\x12\n\r\n\x05\x04\x13\x05\x02\x01\x12\x04\xa7\t\r\x12\n\r\n\x05\x04\x13\x05\x02\x02\x12\x04\xa7\t\r\x12\n\xac\x02\n\x02\x04\x14\x12\x06\xae\t\x00\xc8\t\x01\x1a\x9d\x02 A compiled specification for the defaults of a set of features. These\n messages are generated from FeatureSet extensions and can be used to seed\n feature resolution. The resolution with this object becomes a simple search\n for the closest matching edition, followed by proto merges.\n\n\x0b\n\x03\x04\x14\x01\x12\x04\xae\t\x08\x1a\n\xb0\x02\n\x04\x04\x14\x03\x00\x12\x06\xb3\t\x02\xbe\t\x03\x1a\x9f\x02 A map from every known edition with a unique set of defaults to its\n defaults. Not all editions may be contained here. For a given edition,\n the defaults at the closest matching edition ordered at or before it should\n be used. This field must be in strict ascending order by edition.\n\n\r\n\x05\x04\x14\x03\x00\x01\x12\x04\xb3\t\n\"\n\x0e\n\x06\x04\x14\x03\x00\x02\x00\x12\x04\xb4\t\x04!\n\x0f\n\x07\x04\x14\x03\x00\x02\x00\x04\x12\x04\xb4\t\x04\x0c\n\x0f\n\x07\x04\x14\x03\x00\x02\x00\x06\x12\x04\xb4\t\r\x14\n\x0f\n\x07\x04\x14\x03\x00\x02\x00\x01\x12\x04\xb4\t\x15\x1c\n\x0f\n\x07\x04\x14\x03\x00\x02\x00\x03\x12\x04\xb4\t\x1f \nN\n\x06\x04\x14\x03\x00\x02\x01\x12\x04\xb7\t\x041\x1a> Defaults of features that can be overridden in this edition.\n\n\x0f\n\x07\x04\x14\x03\x00\x02\x01\x04\x12\x04\xb7\t\x04\x0c\n\x0f\n\x07\x04\x14\x03\x00\x02\x01\x06\x12\x04\xb7\t\r\x17\n\x0f\n\x07\x04\x14\x03\x00\x02\x01\x01\x12\x04\xb7\t\x18,\n\x0f\n\x07\x04\x14\x03\x00\x02\x01\x03\x12\x04\xb7\t/0\nP\n\x06\x04\x14\x03\x00\x02\x02\x12\x04\xba\t\x04+\x1a@ Defaults of features that can\'t be overridden in this edition.\n\n\x0f\n\x07\x04\x14\x03\x00\x02\x02\x04\x12\x04\xba\t\x04\x0c\n\x0f\n\x07\x04\x14\x03\x00\x02\x02\x06\x12\x04\xba\t\r\x17\n\x0f\n\x07\x04\x14\x03\x00\x02\x02\x01\x12\x04\xba\t\x18&\n\x0f\n\x07\x04\x14\x03\x00\x02\x02\x03\x12\x04\xba\t)*\n\r\n\x05\x04\x14\x03\x00\t\x12\x04\xbc\t\x04\x12\n\x0e\n\x06\x04\x14\x03\x00\t\x00\x12\x04\xbc\t\r\x0e\n\x0f\n\x07\x04\x14\x03\x00\t\x00\x01\x12\x04\xbc\t\r\x0e\n\x0f\n\x07\x04\x14\x03\x00\t\x00\x02\x12\x04\xbc\t\r\x0e\n\x0e\n\x06\x04\x14\x03\x00\t\x01\x12\x04\xbc\t\x10\x11\n\x0f\n\x07\x04\x14\x03\x00\t\x01\x01\x12\x04\xbc\t\x10\x11\n\x0f\n\x07\x04\x14\x03\x00\t\x01\x02\x12\x04\xbc\t\x10\x11\n\r\n\x05\x04\x14\x03\x00\n\x12\x04\xbd\t\x04\x18\n\x0e\n\x06\x04\x14\x03\x00\n\x00\x12\x04\xbd\t\r\x17\n\x0c\n\x04\x04\x14\x02\x00\x12\x04\xbf\t\x021\n\r\n\x05\x04\x14\x02\x00\x04\x12\x04\xbf\t\x02\n\n\r\n\x05\x04\x14\x02\x00\x06\x12\x04\xbf\t\x0b#\n\r\n\x05\x04\x14\x02\x00\x01\x12\x04\xbf\t$,\n\r\n\x05\x04\x14\x02\x00\x03\x12\x04\xbf\t/0\n\x82\x01\n\x04\x04\x14\x02\x01\x12\x04\xc3\t\x02\'\x1at The minimum supported edition (inclusive) when this was constructed.\n Editions before this will not have defaults.\n\n\r\n\x05\x04\x14\x02\x01\x04\x12\x04\xc3\t\x02\n\n\r\n\x05\x04\x14\x02\x01\x06\x12\x04\xc3\t\x0b\x12\n\r\n\x05\x04\x14\x02\x01\x01\x12\x04\xc3\t\x13\"\n\r\n\x05\x04\x14\x02\x01\x03\x12\x04\xc3\t%&\n\x86\x01\n\x04\x04\x14\x02\x02\x12\x04\xc7\t\x02\'\x1ax The maximum known edition (inclusive) when this was constructed. Editions\n after this will not have reliable defaults.\n\n\r\n\x05\x04\x14\x02\x02\x04\x12\x04\xc7\t\x02\n\n\r\n\x05\x04\x14\x02\x02\x06\x12\x04\xc7\t\x0b\x12\n\r\n\x05\x04\x14\x02\x02\x01\x12\x04\xc7\t\x13\"\n\r\n\x05\x04\x14\x02\x02\x03\x12\x04\xc7\t%&\n\xda\x01\n\x02\x04\x15\x12\x06\xcf\t\x00\xd7\n\x01\x1aj Encapsulates information about the original source file from which a\n FileDescriptorProto was generated.\n2` ===================================================================\n Optional source code info\n\n\x0b\n\x03\x04\x15\x01\x12\x04\xcf\t\x08\x16\n\x82\x11\n\x04\x04\x15\x02\x00\x12\x04\xfb\t\x02!\x1a\xf3\x10 A Location identifies a piece of source code in a .proto file which\n corresponds to a particular definition. This information is intended\n to be useful to IDEs, code indexers, documentation generators, and similar\n tools.\n\n For example, say we have a file like:\n message Foo {\n optional string foo = 1;\n }\n Let\'s look at just the field definition:\n optional string foo = 1;\n ^ ^^ ^^ ^ ^^^\n a bc de f ghi\n We have the following locations:\n span path represents\n [a,i) [ 4, 0, 2, 0 ] The whole field definition.\n [a,b) [ 4, 0, 2, 0, 4 ] The label (optional).\n [c,d) [ 4, 0, 2, 0, 5 ] The type (string).\n [e,f) [ 4, 0, 2, 0, 1 ] The name (foo).\n [g,h) [ 4, 0, 2, 0, 3 ] The number (1).\n\n Notes:\n - A location may refer to a repeated field itself (i.e. not to any\n particular index within it). This is used whenever a set of elements are\n logically enclosed in a single code segment. For example, an entire\n extend block (possibly containing multiple extension definitions) will\n have an outer location whose path refers to the \"extensions\" repeated\n field without an index.\n - Multiple locations may have the same path. This happens when a single\n logical declaration is spread out across multiple places. The most\n obvious example is the \"extend\" block again -- there may be multiple\n extend blocks in the same scope, each of which will have the same path.\n - A location\'s span is not always a subset of its parent\'s span. For\n example, the \"extendee\" of an extension declaration appears at the\n beginning of the \"extend\" block and is shared by all extensions within\n the block.\n - Just because a location\'s span is a subset of some other location\'s span\n does not mean that it is a descendant. For example, a \"group\" defines\n both a type and a field in a single declaration. Thus, the locations\n corresponding to the type and field and their components will overlap.\n - Code which tries to interpret locations should probably be designed to\n ignore those that it doesn\'t understand, as more types of locations could\n be recorded in the future.\n\n\r\n\x05\x04\x15\x02\x00\x04\x12\x04\xfb\t\x02\n\n\r\n\x05\x04\x15\x02\x00\x06\x12\x04\xfb\t\x0b\x13\n\r\n\x05\x04\x15\x02\x00\x01\x12\x04\xfb\t\x14\x1c\n\r\n\x05\x04\x15\x02\x00\x03\x12\x04\xfb\t\x1f \n\x0e\n\x04\x04\x15\x03\x00\x12\x06\xfc\t\x02\xcf\n\x03\n\r\n\x05\x04\x15\x03\x00\x01\x12\x04\xfc\t\n\x12\n\x8a\x07\n\x06\x04\x15\x03\x00\x02\x00\x12\x04\x94\n\x04,\x1a\xf9\x06 Identifies which part of the FileDescriptorProto was defined at this\n location.\n\n Each element is a field number or an index. They form a path from\n the root FileDescriptorProto to the place where the definition appears.\n For example, this path:\n [ 4, 3, 2, 7, 1 ]\n refers to:\n file.message_type(3) // 4, 3\n .field(7) // 2, 7\n .name() // 1\n This is because FileDescriptorProto.message_type has field number 4:\n repeated DescriptorProto message_type = 4;\n and DescriptorProto.field has field number 2:\n repeated FieldDescriptorProto field = 2;\n and FieldDescriptorProto.name has field number 1:\n optional string name = 1;\n\n Thus, the above path gives the location of a field name. If we removed\n the last element:\n [ 4, 3, 2, 7 ]\n this path refers to the whole field declaration (from the beginning\n of the label to the terminating semicolon).\n\n\x0f\n\x07\x04\x15\x03\x00\x02\x00\x04\x12\x04\x94\n\x04\x0c\n\x0f\n\x07\x04\x15\x03\x00\x02\x00\x05\x12\x04\x94\n\r\x12\n\x0f\n\x07\x04\x15\x03\x00\x02\x00\x01\x12\x04\x94\n\x13\x17\n\x0f\n\x07\x04\x15\x03\x00\x02\x00\x03\x12\x04\x94\n\x1a\x1b\n\x0f\n\x07\x04\x15\x03\x00\x02\x00\x08\x12\x04\x94\n\x1c+\n\x10\n\x08\x04\x15\x03\x00\x02\x00\x08\x02\x12\x04\x94\n\x1d*\n\xd2\x02\n\x06\x04\x15\x03\x00\x02\x01\x12\x04\x9b\n\x04,\x1a\xc1\x02 Always has exactly three or four elements: start line, start column,\n end line (optional, otherwise assumed same as start line), end column.\n These are packed into a single field for efficiency. Note that line\n and column numbers are zero-based -- typically you will want to add\n 1 to each before displaying to a user.\n\n\x0f\n\x07\x04\x15\x03\x00\x02\x01\x04\x12\x04\x9b\n\x04\x0c\n\x0f\n\x07\x04\x15\x03\x00\x02\x01\x05\x12\x04\x9b\n\r\x12\n\x0f\n\x07\x04\x15\x03\x00\x02\x01\x01\x12\x04\x9b\n\x13\x17\n\x0f\n\x07\x04\x15\x03\x00\x02\x01\x03\x12\x04\x9b\n\x1a\x1b\n\x0f\n\x07\x04\x15\x03\x00\x02\x01\x08\x12\x04\x9b\n\x1c+\n\x10\n\x08\x04\x15\x03\x00\x02\x01\x08\x02\x12\x04\x9b\n\x1d*\n\xa5\x0c\n\x06\x04\x15\x03\x00\x02\x02\x12\x04\xcc\n\x04)\x1a\x94\x0c If this SourceCodeInfo represents a complete declaration, these are any\n comments appearing before and after the declaration which appear to be\n attached to the declaration.\n\n A series of line comments appearing on consecutive lines, with no other\n tokens appearing on those lines, will be treated as a single comment.\n\n leading_detached_comments will keep paragraphs of comments that appear\n before (but not connected to) the current element. Each paragraph,\n separated by empty lines, will be one comment element in the repeated\n field.\n\n Only the comment content is provided; comment markers (e.g. //) are\n stripped out. For block comments, leading whitespace and an asterisk\n will be stripped from the beginning of each line other than the first.\n Newlines are included in the output.\n\n Examples:\n\n optional int32 foo = 1; // Comment attached to foo.\n // Comment attached to bar.\n optional int32 bar = 2;\n\n optional string baz = 3;\n // Comment attached to baz.\n // Another line attached to baz.\n\n // Comment attached to moo.\n //\n // Another line attached to moo.\n optional double moo = 4;\n\n // Detached comment for corge. This is not leading or trailing comments\n // to moo or corge because there are blank lines separating it from\n // both.\n\n // Detached comment for corge paragraph 2.\n\n optional string corge = 5;\n /* Block comment attached\n * to corge. Leading asterisks\n * will be removed. */\n /* Block comment attached to\n * grault. */\n optional int32 grault = 6;\n\n // ignored detached comments.\n\n\x0f\n\x07\x04\x15\x03\x00\x02\x02\x04\x12\x04\xcc\n\x04\x0c\n\x0f\n\x07\x04\x15\x03\x00\x02\x02\x05\x12\x04\xcc\n\r\x13\n\x0f\n\x07\x04\x15\x03\x00\x02\x02\x01\x12\x04\xcc\n\x14$\n\x0f\n\x07\x04\x15\x03\x00\x02\x02\x03\x12\x04\xcc\n\'(\n\x0e\n\x06\x04\x15\x03\x00\x02\x03\x12\x04\xcd\n\x04*\n\x0f\n\x07\x04\x15\x03\x00\x02\x03\x04\x12\x04\xcd\n\x04\x0c\n\x0f\n\x07\x04\x15\x03\x00\x02\x03\x05\x12\x04\xcd\n\r\x13\n\x0f\n\x07\x04\x15\x03\x00\x02\x03\x01\x12\x04\xcd\n\x14%\n\x0f\n\x07\x04\x15\x03\x00\x02\x03\x03\x12\x04\xcd\n()\n\x0e\n\x06\x04\x15\x03\x00\x02\x04\x12\x04\xce\n\x042\n\x0f\n\x07\x04\x15\x03\x00\x02\x04\x04\x12\x04\xce\n\x04\x0c\n\x0f\n\x07\x04\x15\x03\x00\x02\x04\x05\x12\x04\xce\n\r\x13\n\x0f\n\x07\x04\x15\x03\x00\x02\x04\x01\x12\x04\xce\n\x14-\n\x0f\n\x07\x04\x15\x03\x00\x02\x04\x03\x12\x04\xce\n01\n(\n\x03\x04\x15\x05\x12\x06\xd2\n\x02\xd6\n\x05\x1a\x19 Extensions for tooling.\n\n\x0c\n\x04\x04\x15\x05\x00\x12\x04\xd2\n\r\x16\n\r\n\x05\x04\x15\x05\x00\x01\x12\x04\xd2\n\r\x16\n\r\n\x05\x04\x15\x05\x00\x02\x12\x04\xd2\n\r\x16\n\xee\x01\n\x02\x04\x16\x12\x06\xdc\n\x00\xfd\n\x01\x1a\xdf\x01 Describes the relationship between generated code and its original source\n file. A GeneratedCodeInfo message is associated with only one generated\n source file, but may contain references to different source .proto files.\n\n\x0b\n\x03\x04\x16\x01\x12\x04\xdc\n\x08\x19\nx\n\x04\x04\x16\x02\x00\x12\x04\xdf\n\x02%\x1aj An Annotation connects some span of text in generated code to an element\n of its generating .proto file.\n\n\r\n\x05\x04\x16\x02\x00\x04\x12\x04\xdf\n\x02\n\n\r\n\x05\x04\x16\x02\x00\x06\x12\x04\xdf\n\x0b\x15\n\r\n\x05\x04\x16\x02\x00\x01\x12\x04\xdf\n\x16 \n\r\n\x05\x04\x16\x02\x00\x03\x12\x04\xdf\n#$\n\x0e\n\x04\x04\x16\x03\x00\x12\x06\xe0\n\x02\xfc\n\x03\n\r\n\x05\x04\x16\x03\x00\x01\x12\x04\xe0\n\n\x14\n\x8f\x01\n\x06\x04\x16\x03\x00\x02\x00\x12\x04\xe3\n\x04,\x1a\x7f Identifies the element in the original source .proto file. This field\n is formatted the same as SourceCodeInfo.Location.path.\n\n\x0f\n\x07\x04\x16\x03\x00\x02\x00\x04\x12\x04\xe3\n\x04\x0c\n\x0f\n\x07\x04\x16\x03\x00\x02\x00\x05\x12\x04\xe3\n\r\x12\n\x0f\n\x07\x04\x16\x03\x00\x02\x00\x01\x12\x04\xe3\n\x13\x17\n\x0f\n\x07\x04\x16\x03\x00\x02\x00\x03\x12\x04\xe3\n\x1a\x1b\n\x0f\n\x07\x04\x16\x03\x00\x02\x00\x08\x12\x04\xe3\n\x1c+\n\x10\n\x08\x04\x16\x03\x00\x02\x00\x08\x02\x12\x04\xe3\n\x1d*\nO\n\x06\x04\x16\x03\x00\x02\x01\x12\x04\xe6\n\x04$\x1a? Identifies the filesystem path to the original source .proto.\n\n\x0f\n\x07\x04\x16\x03\x00\x02\x01\x04\x12\x04\xe6\n\x04\x0c\n\x0f\n\x07\x04\x16\x03\x00\x02\x01\x05\x12\x04\xe6\n\r\x13\n\x0f\n\x07\x04\x16\x03\x00\x02\x01\x01\x12\x04\xe6\n\x14\x1f\n\x0f\n\x07\x04\x16\x03\x00\x02\x01\x03\x12\x04\xe6\n\"#\nw\n\x06\x04\x16\x03\x00\x02\x02\x12\x04\xea\n\x04\x1d\x1ag Identifies the starting offset in bytes in the generated code\n that relates to the identified object.\n\n\x0f\n\x07\x04\x16\x03\x00\x02\x02\x04\x12\x04\xea\n\x04\x0c\n\x0f\n\x07\x04\x16\x03\x00\x02\x02\x05\x12\x04\xea\n\r\x12\n\x0f\n\x07\x04\x16\x03\x00\x02\x02\x01\x12\x04\xea\n\x13\x18\n\x0f\n\x07\x04\x16\x03\x00\x02\x02\x03\x12\x04\xea\n\x1b\x1c\n\xdb\x01\n\x06\x04\x16\x03\x00\x02\x03\x12\x04\xef\n\x04\x1b\x1a\xca\x01 Identifies the ending offset in bytes in the generated code that\n relates to the identified object. The end offset should be one past\n the last relevant byte (so the length of the text = end - begin).\n\n\x0f\n\x07\x04\x16\x03\x00\x02\x03\x04\x12\x04\xef\n\x04\x0c\n\x0f\n\x07\x04\x16\x03\x00\x02\x03\x05\x12\x04\xef\n\r\x12\n\x0f\n\x07\x04\x16\x03\x00\x02\x03\x01\x12\x04\xef\n\x13\x16\n\x0f\n\x07\x04\x16\x03\x00\x02\x03\x03\x12\x04\xef\n\x19\x1a\nj\n\x06\x04\x16\x03\x00\x04\x00\x12\x06\xf3\n\x04\xfa\n\x05\x1aX Represents the identified object\'s effect on the element in the original\n .proto file.\n\n\x0f\n\x07\x04\x16\x03\x00\x04\x00\x01\x12\x04\xf3\n\t\x11\nF\n\x08\x04\x16\x03\x00\x04\x00\x02\x00\x12\x04\xf5\n\x06\x0f\x1a4 There is no effect or the effect is indescribable.\n\n\x11\n\t\x04\x16\x03\x00\x04\x00\x02\x00\x01\x12\x04\xf5\n\x06\n\n\x11\n\t\x04\x16\x03\x00\x04\x00\x02\x00\x02\x12\x04\xf5\n\r\x0e\n<\n\x08\x04\x16\x03\x00\x04\x00\x02\x01\x12\x04\xf7\n\x06\x0e\x1a* The element is set or otherwise mutated.\n\n\x11\n\t\x04\x16\x03\x00\x04\x00\x02\x01\x01\x12\x04\xf7\n\x06\t\n\x11\n\t\x04\x16\x03\x00\x04\x00\x02\x01\x02\x12\x04\xf7\n\x0c\r\n8\n\x08\x04\x16\x03\x00\x04\x00\x02\x02\x12\x04\xf9\n\x06\x10\x1a& An alias to the element is returned.\n\n\x11\n\t\x04\x16\x03\x00\x04\x00\x02\x02\x01\x12\x04\xf9\n\x06\x0b\n\x11\n\t\x04\x16\x03\x00\x04\x00\x02\x02\x02\x12\x04\xf9\n\x0e\x0f\n\x0e\n\x06\x04\x16\x03\x00\x02\x04\x12\x04\xfb\n\x04#\n\x0f\n\x07\x04\x16\x03\x00\x02\x04\x04\x12\x04\xfb\n\x04\x0c\n\x0f\n\x07\x04\x16\x03\x00\x02\x04\x06\x12\x04\xfb\n\r\x15\n\x0f\n\x07\x04\x16\x03\x00\x02\x04\x01\x12\x04\xfb\n\x16\x1e\n\x0f\n\x07\x04\x16\x03\x00\x02\x04\x03\x12\x04\xfb\n!\"\n\xd8\x02\n\x02\x05\x01\x12\x06\x84\x0b\x00\x88\x0b\x01\x1a\xc9\x02 Describes the \'visibility\' of a symbol with respect to the proto import\n system. Symbols can only be imported when the visibility rules do not prevent\n it (ex: local symbols cannot be imported). Visibility modifiers can only set\n on `message` and `enum` as they are the only types available to be referenced\n from other files.\n\n\x0b\n\x03\x05\x01\x01\x12\x04\x84\x0b\x05\x15\n\x0c\n\x04\x05\x01\x02\x00\x12\x04\x85\x0b\x02\x17\n\r\n\x05\x05\x01\x02\x00\x01\x12\x04\x85\x0b\x02\x12\n\r\n\x05\x05\x01\x02\x00\x02\x12\x04\x85\x0b\x15\x16\n\x0c\n\x04\x05\x01\x02\x01\x12\x04\x86\x0b\x02\x17\n\r\n\x05\x05\x01\x02\x01\x01\x12\x04\x86\x0b\x02\x12\n\r\n\x05\x05\x01\x02\x01\x02\x12\x04\x86\x0b\x15\x16\n\x0c\n\x04\x05\x01\x02\x02\x12\x04\x87\x0b\x02\x18\n\r\n\x05\x05\x01\x02\x02\x01\x12\x04\x87\x0b\x02\x13\n\r\n\x05\x05\x01\x02\x02\x02\x12\x04\x87\x0b\x16\x17\n\xd7%\n\x1egoogle/protobuf/duration.proto\x12\x0fgoogle.protobuf\":\n\x08Duration\x12\x18\n\x07seconds\x18\x01 \x01(\x03R\x07seconds\x12\x14\n\x05nanos\x18\x02 \x01(\x05R\x05nanosB\x83\x01\n\x13com.google.protobufB\rDurationProtoP\x01Z1google.golang.org/protobuf/types/known/durationpb\xf8\x01\x01\xa2\x02\x03GPB\xaa\x02\x1eGoogle.Protobuf.WellKnownTypesJ\xd9#\n\x06\x12\x04\x1e\x00r\x01\n\xcc\x0c\n\x01\x0c\x12\x03\x1e\x00\x122\xc1\x0c Protocol Buffers - Google\'s data interchange format\n Copyright 2008 Google Inc. All rights reserved.\n https://developers.google.com/protocol-buffers/\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are\n met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above\n copyright notice, this list of conditions and the following disclaimer\n in the documentation and/or other materials provided with the\n distribution.\n * Neither the name of Google Inc. nor the names of its\n contributors may be used to endorse or promote products derived from\n this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n\x08\n\x01\x02\x12\x03 \x00\x18\n\x08\n\x01\x08\x12\x03\"\x00\x1f\n\t\n\x02\x08\x1f\x12\x03\"\x00\x1f\n\x08\n\x01\x08\x12\x03#\x00H\n\t\n\x02\x08\x0b\x12\x03#\x00H\n\x08\n\x01\x08\x12\x03$\x00,\n\t\n\x02\x08\x01\x12\x03$\x00,\n\x08\n\x01\x08\x12\x03%\x00.\n\t\n\x02\x08\x08\x12\x03%\x00.\n\x08\n\x01\x08\x12\x03&\x00\"\n\t\n\x02\x08\n\x12\x03&\x00\"\n\x08\n\x01\x08\x12\x03\'\x00!\n\t\n\x02\x08$\x12\x03\'\x00!\n\x08\n\x01\x08\x12\x03(\x00;\n\t\n\x02\x08%\x12\x03(\x00;\n\x9d\x10\n\x02\x04\x00\x12\x04e\x00r\x01\x1a\x90\x10 A Duration represents a signed, fixed-length span of time represented\n as a count of seconds and fractions of seconds at nanosecond\n resolution. It is independent of any calendar and concepts like \"day\"\n or \"month\". It is related to Timestamp in that the difference between\n two Timestamp values is a Duration and it can be added or subtracted\n from a Timestamp. Range is approximately +-10,000 years.\n\n # Examples\n\n Example 1: Compute Duration from two Timestamps in pseudo code.\n\n Timestamp start = ...;\n Timestamp end = ...;\n Duration duration = ...;\n\n duration.seconds = end.seconds - start.seconds;\n duration.nanos = end.nanos - start.nanos;\n\n if (duration.seconds < 0 && duration.nanos > 0) {\n duration.seconds += 1;\n duration.nanos -= 1000000000;\n } else if (duration.seconds > 0 && duration.nanos < 0) {\n duration.seconds -= 1;\n duration.nanos += 1000000000;\n }\n\n Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.\n\n Timestamp start = ...;\n Duration duration = ...;\n Timestamp end = ...;\n\n end.seconds = start.seconds + duration.seconds;\n end.nanos = start.nanos + duration.nanos;\n\n if (end.nanos < 0) {\n end.seconds -= 1;\n end.nanos += 1000000000;\n } else if (end.nanos >= 1000000000) {\n end.seconds += 1;\n end.nanos -= 1000000000;\n }\n\n Example 3: Compute Duration from datetime.timedelta in Python.\n\n td = datetime.timedelta(days=3, minutes=10)\n duration = Duration()\n duration.FromTimedelta(td)\n\n # JSON Mapping\n\n In JSON format, the Duration type is encoded as a string rather than an\n object, where the string ends in the suffix \"s\" (indicating seconds) and\n is preceded by the number of seconds, with nanoseconds expressed as\n fractional seconds. For example, 3 seconds with 0 nanoseconds should be\n encoded in JSON format as \"3s\", while 3 seconds and 1 nanosecond should\n be expressed in JSON format as \"3.000000001s\", and 3 seconds and 1\n microsecond should be expressed in JSON format as \"3.000001s\".\n\n\n\n\n\x03\x04\x00\x01\x12\x03e\x08\x10\n\xdc\x01\n\x04\x04\x00\x02\x00\x12\x03i\x02\x14\x1a\xce\x01 Signed seconds of the span of time. Must be from -315,576,000,000\n to +315,576,000,000 inclusive. Note: these bounds are computed from:\n 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\n\n\x0c\n\x05\x04\x00\x02\x00\x05\x12\x03i\x02\x07\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03i\x08\x0f\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03i\x12\x13\n\x83\x03\n\x04\x04\x00\x02\x01\x12\x03q\x02\x12\x1a\xf5\x02 Signed fractions of a second at nanosecond resolution of the span\n of time. Durations less than one second are represented with a 0\n `seconds` field and a positive or negative `nanos` field. For durations\n of one second or more, a non-zero value for the `nanos` field must be\n of the same sign as the `seconds` field. Must be from -999,999,999\n to +999,999,999 inclusive.\n\n\x0c\n\x05\x04\x00\x02\x01\x05\x12\x03q\x02\x07\n\x0c\n\x05\x04\x00\x02\x01\x01\x12\x03q\x08\r\n\x0c\n\x05\x04\x00\x02\x01\x03\x12\x03q\x10\x11b\x06proto3\n\x8a=\n google/protobuf/field_mask.proto\x12\x0fgoogle.protobuf\"!\n\tFieldMask\x12\x14\n\x05paths\x18\x01 \x03(\tR\x05pathsB\x85\x01\n\x13com.google.protobufB\x0eFieldMaskProtoP\x01Z2google.golang.org/protobuf/types/known/fieldmaskpb\xf8\x01\x01\xa2\x02\x03GPB\xaa\x02\x1eGoogle.Protobuf.WellKnownTypesJ\xa1;\n\x07\x12\x05\x1e\x00\xf4\x01\x01\n\xcc\x0c\n\x01\x0c\x12\x03\x1e\x00\x122\xc1\x0c Protocol Buffers - Google\'s data interchange format\n Copyright 2008 Google Inc. All rights reserved.\n https://developers.google.com/protocol-buffers/\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are\n met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above\n copyright notice, this list of conditions and the following disclaimer\n in the documentation and/or other materials provided with the\n distribution.\n * Neither the name of Google Inc. nor the names of its\n contributors may be used to endorse or promote products derived from\n this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n\x08\n\x01\x02\x12\x03 \x00\x18\n\x08\n\x01\x08\x12\x03\"\x00,\n\t\n\x02\x08\x01\x12\x03\"\x00,\n\x08\n\x01\x08\x12\x03#\x00/\n\t\n\x02\x08\x08\x12\x03#\x00/\n\x08\n\x01\x08\x12\x03$\x00\"\n\t\n\x02\x08\n\x12\x03$\x00\"\n\x08\n\x01\x08\x12\x03%\x00!\n\t\n\x02\x08$\x12\x03%\x00!\n\x08\n\x01\x08\x12\x03&\x00;\n\t\n\x02\x08%\x12\x03&\x00;\n\x08\n\x01\x08\x12\x03\'\x00I\n\t\n\x02\x08\x0b\x12\x03\'\x00I\n\x08\n\x01\x08\x12\x03(\x00\x1f\n\t\n\x02\x08\x1f\x12\x03(\x00\x1f\n\xb2,\n\x02\x04\x00\x12\x06\xf1\x01\x00\xf4\x01\x01\x1a\xa3, `FieldMask` represents a set of symbolic field paths, for example:\n\n paths: \"f.a\"\n paths: \"f.b.d\"\n\n Here `f` represents a field in some root message, `a` and `b`\n fields in the message found in `f`, and `d` a field found in the\n message in `f.b`.\n\n Field masks are used to specify a subset of fields that should be\n returned by a get operation or modified by an update operation.\n Field masks also have a custom JSON encoding (see below).\n\n # Field Masks in Projections\n\n When used in the context of a projection, a response message or\n sub-message is filtered by the API to only contain those fields as\n specified in the mask. For example, if the mask in the previous\n example is applied to a response message as follows:\n\n f {\n a : 22\n b {\n d : 1\n x : 2\n }\n y : 13\n }\n z: 8\n\n The result will not contain specific values for fields x,y and z\n (their value will be set to the default, and omitted in proto text\n output):\n\n\n f {\n a : 22\n b {\n d : 1\n }\n }\n\n A repeated field is not allowed except at the last position of a\n paths string.\n\n If a FieldMask object is not present in a get operation, the\n operation applies to all fields (as if a FieldMask of all fields\n had been specified).\n\n Note that a field mask does not necessarily apply to the\n top-level response message. In case of a REST get operation, the\n field mask applies directly to the response, but in case of a REST\n list operation, the mask instead applies to each individual message\n in the returned resource list. In case of a REST custom method,\n other definitions may be used. Where the mask applies will be\n clearly documented together with its declaration in the API. In\n any case, the effect on the returned resource/resources is required\n behavior for APIs.\n\n # Field Masks in Update Operations\n\n A field mask in update operations specifies which fields of the\n targeted resource are going to be updated. The API is required\n to only change the values of the fields as specified in the mask\n and leave the others untouched. If a resource is passed in to\n describe the updated values, the API ignores the values of all\n fields not covered by the mask.\n\n If a repeated field is specified for an update operation, new values will\n be appended to the existing repeated field in the target resource. Note that\n a repeated field is only allowed in the last position of a `paths` string.\n\n If a sub-message is specified in the last position of the field mask for an\n update operation, then new value will be merged into the existing sub-message\n in the target resource.\n\n For example, given the target message:\n\n f {\n b {\n d: 1\n x: 2\n }\n c: [1]\n }\n\n And an update message:\n\n f {\n b {\n d: 10\n }\n c: [2]\n }\n\n then if the field mask is:\n\n paths: [\"f.b\", \"f.c\"]\n\n then the result will be:\n\n f {\n b {\n d: 10\n x: 2\n }\n c: [1, 2]\n }\n\n An implementation may provide options to override this default behavior for\n repeated and message fields.\n\n In order to reset a field\'s value to the default, the field must\n be in the mask and set to the default value in the provided resource.\n Hence, in order to reset all fields of a resource, provide a default\n instance of the resource and set all fields in the mask, or do\n not provide a mask as described below.\n\n If a field mask is not present on update, the operation applies to\n all fields (as if a field mask of all fields has been specified).\n Note that in the presence of schema evolution, this may mean that\n fields the client does not know and has therefore not filled into\n the request will be reset to their default. If this is unwanted\n behavior, a specific service may require a client to always specify\n a field mask, producing an error if not.\n\n As with get operations, the location of the resource which\n describes the updated values in the request message depends on the\n operation kind. In any case, the effect of the field mask is\n required to be honored by the API.\n\n ## Considerations for HTTP REST\n\n The HTTP kind of an update operation which uses a field mask must\n be set to PATCH instead of PUT in order to satisfy HTTP semantics\n (PUT must only be used for full updates).\n\n # JSON Encoding of Field Masks\n\n In JSON, a field mask is encoded as a single string where paths are\n separated by a comma. Fields name in each path are converted\n to/from lower-camel naming conventions.\n\n As an example, consider the following message declarations:\n\n message Profile {\n User user = 1;\n Photo photo = 2;\n }\n message User {\n string display_name = 1;\n string address = 2;\n }\n\n In proto a field mask for `Profile` may look as such:\n\n mask {\n paths: \"user.display_name\"\n paths: \"photo\"\n }\n\n In JSON, the same mask is represented as below:\n\n {\n mask: \"user.displayName,photo\"\n }\n\n # Field Masks and Oneof Fields\n\n Field masks treat fields in oneofs just as regular fields. Consider the\n following message:\n\n message SampleMessage {\n oneof test_oneof {\n string name = 4;\n SubMessage sub_message = 9;\n }\n }\n\n The field mask can be:\n\n mask {\n paths: \"name\"\n }\n\n Or:\n\n mask {\n paths: \"sub_message\"\n }\n\n Note that oneof type names (\"test_oneof\" in this case) cannot be used in\n paths.\n\n ## Field Mask Verification\n\n The implementation of any API method which has a FieldMask type field in the\n request should verify the included field paths, and return an\n `INVALID_ARGUMENT` error if any path is unmappable.\n\n\x0b\n\x03\x04\x00\x01\x12\x04\xf1\x01\x08\x11\n,\n\x04\x04\x00\x02\x00\x12\x04\xf3\x01\x02\x1c\x1a\x1e The set of field mask paths.\n\n\r\n\x05\x04\x00\x02\x00\x04\x12\x04\xf3\x01\x02\n\n\r\n\x05\x04\x00\x02\x00\x05\x12\x04\xf3\x01\x0b\x11\n\r\n\x05\x04\x00\x02\x00\x01\x12\x04\xf3\x01\x12\x17\n\r\n\x05\x04\x00\x02\x00\x03\x12\x04\xf3\x01\x1a\x1bb\x06proto3\n\xc31\n\x1fgoogle/protobuf/timestamp.proto\x12\x0fgoogle.protobuf\";\n\tTimestamp\x12\x18\n\x07seconds\x18\x01 \x01(\x03R\x07seconds\x12\x14\n\x05nanos\x18\x02 \x01(\x05R\x05nanosB\x85\x01\n\x13com.google.protobufB\x0eTimestampProtoP\x01Z2google.golang.org/protobuf/types/known/timestamppb\xf8\x01\x01\xa2\x02\x03GPB\xaa\x02\x1eGoogle.Protobuf.WellKnownTypesJ\xc1/\n\x07\x12\x05\x1e\x00\x8f\x01\x01\n\xcc\x0c\n\x01\x0c\x12\x03\x1e\x00\x122\xc1\x0c Protocol Buffers - Google\'s data interchange format\n Copyright 2008 Google Inc. All rights reserved.\n https://developers.google.com/protocol-buffers/\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are\n met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above\n copyright notice, this list of conditions and the following disclaimer\n in the documentation and/or other materials provided with the\n distribution.\n * Neither the name of Google Inc. nor the names of its\n contributors may be used to endorse or promote products derived from\n this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n\x08\n\x01\x02\x12\x03 \x00\x18\n\x08\n\x01\x08\x12\x03\"\x00\x1f\n\t\n\x02\x08\x1f\x12\x03\"\x00\x1f\n\x08\n\x01\x08\x12\x03#\x00I\n\t\n\x02\x08\x0b\x12\x03#\x00I\n\x08\n\x01\x08\x12\x03$\x00,\n\t\n\x02\x08\x01\x12\x03$\x00,\n\x08\n\x01\x08\x12\x03%\x00/\n\t\n\x02\x08\x08\x12\x03%\x00/\n\x08\n\x01\x08\x12\x03&\x00\"\n\t\n\x02\x08\n\x12\x03&\x00\"\n\x08\n\x01\x08\x12\x03\'\x00!\n\t\n\x02\x08$\x12\x03\'\x00!\n\x08\n\x01\x08\x12\x03(\x00;\n\t\n\x02\x08%\x12\x03(\x00;\n\xda\x1d\n\x02\x04\x00\x12\x06\x84\x01\x00\x8f\x01\x01\x1a\xcb\x1d A Timestamp represents a point in time independent of any time zone or local\n calendar, encoded as a count of seconds and fractions of seconds at\n nanosecond resolution. The count is relative to an epoch at UTC midnight on\n January 1, 1970, in the proleptic Gregorian calendar which extends the\n Gregorian calendar backwards to year one.\n\n All minutes are 60 seconds long. Leap seconds are \"smeared\" so that no leap\n second table is needed for interpretation, using a [24-hour linear\n smear](https://developers.google.com/time/smear).\n\n The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By\n restricting to that range, we ensure that we can convert to and from [RFC\n 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.\n\n # Examples\n\n Example 1: Compute Timestamp from POSIX `time()`.\n\n Timestamp timestamp;\n timestamp.set_seconds(time(NULL));\n timestamp.set_nanos(0);\n\n Example 2: Compute Timestamp from POSIX `gettimeofday()`.\n\n struct timeval tv;\n gettimeofday(&tv, NULL);\n\n Timestamp timestamp;\n timestamp.set_seconds(tv.tv_sec);\n timestamp.set_nanos(tv.tv_usec * 1000);\n\n Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.\n\n FILETIME ft;\n GetSystemTimeAsFileTime(&ft);\n UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;\n\n // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z\n // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.\n Timestamp timestamp;\n timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));\n timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));\n\n Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.\n\n long millis = System.currentTimeMillis();\n\n Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)\n .setNanos((int) ((millis % 1000) * 1000000)).build();\n\n Example 5: Compute Timestamp from Java `Instant.now()`.\n\n Instant now = Instant.now();\n\n Timestamp timestamp =\n Timestamp.newBuilder().setSeconds(now.getEpochSecond())\n .setNanos(now.getNano()).build();\n\n Example 6: Compute Timestamp from current time in Python.\n\n timestamp = Timestamp()\n timestamp.GetCurrentTime()\n\n # JSON Mapping\n\n In JSON format, the Timestamp type is encoded as a string in the\n [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the\n format is \"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z\"\n where {year} is always expressed using four digits while {month}, {day},\n {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional\n seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),\n are optional. The \"Z\" suffix indicates the timezone (\"UTC\"); the timezone\n is required. A proto3 JSON serializer should always use UTC (as indicated by\n \"Z\") when printing the Timestamp type and a proto3 JSON parser should be\n able to accept both UTC and other timezones (as indicated by an offset).\n\n For example, \"2017-01-15T01:30:15.01Z\" encodes 15.01 seconds past\n 01:30 UTC on January 15, 2017.\n\n In JavaScript, one can convert a Date object to this format using the\n standard\n [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)\n method. In Python, a standard `datetime.datetime` object can be converted\n to this format using\n [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with\n the time format spec \'%Y-%m-%dT%H:%M:%S.%fZ\'. Likewise, in Java, one can use\n the Joda Time\'s [`ISODateTimeFormat.dateTime()`](\n http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()\n ) to obtain a formatter capable of generating timestamps in this format.\n\n\n\x0b\n\x03\x04\x00\x01\x12\x04\x84\x01\x08\x11\n\x9d\x01\n\x04\x04\x00\x02\x00\x12\x04\x88\x01\x02\x14\x1a\x8e\x01 Represents seconds of UTC time since Unix epoch\n 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to\n 9999-12-31T23:59:59Z inclusive.\n\n\r\n\x05\x04\x00\x02\x00\x05\x12\x04\x88\x01\x02\x07\n\r\n\x05\x04\x00\x02\x00\x01\x12\x04\x88\x01\x08\x0f\n\r\n\x05\x04\x00\x02\x00\x03\x12\x04\x88\x01\x12\x13\n\xe5\x01\n\x04\x04\x00\x02\x01\x12\x04\x8e\x01\x02\x12\x1a\xd6\x01 Non-negative fractions of a second at nanosecond resolution. Negative\n second values with fractions must still have non-negative nanos values\n that count forward in time. Must be from 0 to 999,999,999\n inclusive.\n\n\r\n\x05\x04\x00\x02\x01\x05\x12\x04\x8e\x01\x02\x07\n\r\n\x05\x04\x00\x02\x01\x01\x12\x04\x8e\x01\x08\r\n\r\n\x05\x04\x00\x02\x01\x03\x12\x04\x8e\x01\x10\x11b\x06proto3\n\xbe\x88\x0c\n\x1bbuf/validate/validate.proto\x12\x0cbuf.validate\x1a google/protobuf/descriptor.proto\x1a\x1egoogle/protobuf/duration.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"P\n\x04Rule\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x18\n\x07message\x18\x02 \x01(\tR\x07message\x12\x1e\n\nexpression\x18\x03 \x01(\tR\nexpression\"\xa1\x01\n\x0cMessageRules\x12%\n\x0ecel_expression\x18\x05 \x03(\tR\rcelExpression\x12$\n\x03cel\x18\x03 \x03(\x0b2\x12.buf.validate.RuleR\x03cel\x124\n\x05oneof\x18\x04 \x03(\x0b2\x1e.buf.validate.MessageOneofRuleR\x05oneofJ\x04\x08\x01\x10\x02R\x08disabled\"F\n\x10MessageOneofRule\x12\x16\n\x06fields\x18\x01 \x03(\tR\x06fields\x12\x1a\n\x08required\x18\x02 \x01(\x08R\x08required\"(\n\nOneofRules\x12\x1a\n\x08required\x18\x01 \x01(\x08R\x08required\"\xe3\n\n\nFieldRules\x12%\n\x0ecel_expression\x18\x1d \x03(\tR\rcelExpression\x12$\n\x03cel\x18\x17 \x03(\x0b2\x12.buf.validate.RuleR\x03cel\x12\x1a\n\x08required\x18\x19 \x01(\x08R\x08required\x12,\n\x06ignore\x18\x1b \x01(\x0e2\x14.buf.validate.IgnoreR\x06ignore\x120\n\x05float\x18\x01 \x01(\x0b2\x18.buf.validate.FloatRulesH\x00R\x05float\x123\n\x06double\x18\x02 \x01(\x0b2\x19.buf.validate.DoubleRulesH\x00R\x06double\x120\n\x05int32\x18\x03 \x01(\x0b2\x18.buf.validate.Int32RulesH\x00R\x05int32\x120\n\x05int64\x18\x04 \x01(\x0b2\x18.buf.validate.Int64RulesH\x00R\x05int64\x123\n\x06uint32\x18\x05 \x01(\x0b2\x19.buf.validate.UInt32RulesH\x00R\x06uint32\x123\n\x06uint64\x18\x06 \x01(\x0b2\x19.buf.validate.UInt64RulesH\x00R\x06uint64\x123\n\x06sint32\x18\x07 \x01(\x0b2\x19.buf.validate.SInt32RulesH\x00R\x06sint32\x123\n\x06sint64\x18\x08 \x01(\x0b2\x19.buf.validate.SInt64RulesH\x00R\x06sint64\x126\n\x07fixed32\x18\t \x01(\x0b2\x1a.buf.validate.Fixed32RulesH\x00R\x07fixed32\x126\n\x07fixed64\x18\n \x01(\x0b2\x1a.buf.validate.Fixed64RulesH\x00R\x07fixed64\x129\n\x08sfixed32\x18\x0b \x01(\x0b2\x1b.buf.validate.SFixed32RulesH\x00R\x08sfixed32\x129\n\x08sfixed64\x18\x0c \x01(\x0b2\x1b.buf.validate.SFixed64RulesH\x00R\x08sfixed64\x12-\n\x04bool\x18\r \x01(\x0b2\x17.buf.validate.BoolRulesH\x00R\x04bool\x123\n\x06string\x18\x0e \x01(\x0b2\x19.buf.validate.StringRulesH\x00R\x06string\x120\n\x05bytes\x18\x0f \x01(\x0b2\x18.buf.validate.BytesRulesH\x00R\x05bytes\x12-\n\x04enum\x18\x10 \x01(\x0b2\x17.buf.validate.EnumRulesH\x00R\x04enum\x129\n\x08repeated\x18\x12 \x01(\x0b2\x1b.buf.validate.RepeatedRulesH\x00R\x08repeated\x12*\n\x03map\x18\x13 \x01(\x0b2\x16.buf.validate.MapRulesH\x00R\x03map\x12*\n\x03any\x18\x14 \x01(\x0b2\x16.buf.validate.AnyRulesH\x00R\x03any\x129\n\x08duration\x18\x15 \x01(\x0b2\x1b.buf.validate.DurationRulesH\x00R\x08duration\x12=\n\nfield_mask\x18\x1c \x01(\x0b2\x1c.buf.validate.FieldMaskRulesH\x00R\tfieldMask\x12<\n\ttimestamp\x18\x16 \x01(\x0b2\x1c.buf.validate.TimestampRulesH\x00R\ttimestampB\x06\n\x04typeJ\x04\x08\x18\x10\x19J\x04\x08\x1a\x10\x1bR\x07skippedR\x0cignore_empty\"Z\n\x0fPredefinedRules\x12$\n\x03cel\x18\x01 \x03(\x0b2\x12.buf.validate.RuleR\x03celJ\x04\x08\x18\x10\x19J\x04\x08\x1a\x10\x1bR\x07skippedR\x0cignore_empty\"\xae\x17\n\nFloatRules\x12\x84\x01\n\x05const\x18\x01 \x01(\x02Bn\xc2Hk\ni\n\x0bfloat.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05const\x12\x9d\x01\n\x02lt\x18\x02 \x01(\x02B\x8a\x01\xc2H\x86\x01\n\x83\x01\n\x08float.lt\x1aw!has(rules.gte) && !has(rules.gt) && (this.isNan() || this >= rules.lt)? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xae\x01\n\x03lte\x18\x03 \x01(\x02B\x99\x01\xc2H\x95\x01\n\x92\x01\n\tfloat.lte\x1a\x84\x01!has(rules.gte) && !has(rules.gt) && (this.isNan() || this > rules.lte)? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xd4\x07\n\x02gt\x18\x04 \x01(\x02B\xc1\x07\xc2H\xbd\x07\n\x86\x01\n\x08float.gt\x1az!has(rules.lt) && !has(rules.lte) && (this.isNan() || this <= rules.gt)? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xbd\x01\n\x0bfloat.gt_lt\x1a\xad\x01has(rules.lt) && rules.lt >= rules.gt && (this.isNan() || this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc7\x01\n\x15float.gt_lt_exclusive\x1a\xad\x01has(rules.lt) && rules.lt < rules.gt && (this.isNan() || (rules.lt <= this && this <= rules.gt))? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xcd\x01\n\x0cfloat.gt_lte\x1a\xbc\x01has(rules.lte) && rules.lte >= rules.gt && (this.isNan() || this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xd7\x01\n\x16float.gt_lte_exclusive\x1a\xbc\x01has(rules.lte) && rules.lte < rules.gt && (this.isNan() || (rules.lte < this && this <= rules.gt))? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xa1\x08\n\x03gte\x18\x05 \x01(\x02B\x8c\x08\xc2H\x88\x08\n\x95\x01\n\tfloat.gte\x1a\x87\x01!has(rules.lt) && !has(rules.lte) && (this.isNan() || this < rules.gte)? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xcc\x01\n\x0cfloat.gte_lt\x1a\xbb\x01has(rules.lt) && rules.lt >= rules.gte && (this.isNan() || this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd6\x01\n\x16float.gte_lt_exclusive\x1a\xbb\x01has(rules.lt) && rules.lt < rules.gte && (this.isNan() || (rules.lt <= this && this < rules.gte))? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xdc\x01\n\rfloat.gte_lte\x1a\xca\x01has(rules.lte) && rules.lte >= rules.gte && (this.isNan() || this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xe6\x01\n\x17float.gte_lte_exclusive\x1a\xca\x01has(rules.lte) && rules.lte < rules.gte && (this.isNan() || (rules.lte < this && this < rules.gte))? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12}\n\x02in\x18\x06 \x03(\x02Bm\xc2Hj\nh\n\x08float.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12w\n\x06not_in\x18\x07 \x03(\x02B`\xc2H]\n[\n\x0cfloat.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12w\n\x06finite\x18\x08 \x01(\x08B_\xc2H\\\nZ\n\x0cfloat.finite\x1aJrules.finite ? (this.isNan() || this.isInf() ? \'must be finite\' : \'\') : \'\'R\x06finite\x124\n\x07example\x18\t \x03(\x02B\x1a\xc2H\x17\n\x15\n\rfloat.example\x1a\x04trueR\x07example*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02B\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\xc0\x17\n\x0bDoubleRules\x12\x85\x01\n\x05const\x18\x01 \x01(\x01Bo\xc2Hl\nj\n\x0cdouble.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05const\x12\x9e\x01\n\x02lt\x18\x02 \x01(\x01B\x8b\x01\xc2H\x87\x01\n\x84\x01\n\tdouble.lt\x1aw!has(rules.gte) && !has(rules.gt) && (this.isNan() || this >= rules.lt)? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xaf\x01\n\x03lte\x18\x03 \x01(\x01B\x9a\x01\xc2H\x96\x01\n\x93\x01\n\ndouble.lte\x1a\x84\x01!has(rules.gte) && !has(rules.gt) && (this.isNan() || this > rules.lte)? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xd9\x07\n\x02gt\x18\x04 \x01(\x01B\xc6\x07\xc2H\xc2\x07\n\x87\x01\n\tdouble.gt\x1az!has(rules.lt) && !has(rules.lte) && (this.isNan() || this <= rules.gt)? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xbe\x01\n\x0cdouble.gt_lt\x1a\xad\x01has(rules.lt) && rules.lt >= rules.gt && (this.isNan() || this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc8\x01\n\x16double.gt_lt_exclusive\x1a\xad\x01has(rules.lt) && rules.lt < rules.gt && (this.isNan() || (rules.lt <= this && this <= rules.gt))? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xce\x01\n\rdouble.gt_lte\x1a\xbc\x01has(rules.lte) && rules.lte >= rules.gt && (this.isNan() || this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xd8\x01\n\x17double.gt_lte_exclusive\x1a\xbc\x01has(rules.lte) && rules.lte < rules.gt && (this.isNan() || (rules.lte < this && this <= rules.gt))? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xa6\x08\n\x03gte\x18\x05 \x01(\x01B\x91\x08\xc2H\x8d\x08\n\x96\x01\n\ndouble.gte\x1a\x87\x01!has(rules.lt) && !has(rules.lte) && (this.isNan() || this < rules.gte)? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xcd\x01\n\rdouble.gte_lt\x1a\xbb\x01has(rules.lt) && rules.lt >= rules.gte && (this.isNan() || this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd7\x01\n\x17double.gte_lt_exclusive\x1a\xbb\x01has(rules.lt) && rules.lt < rules.gte && (this.isNan() || (rules.lt <= this && this < rules.gte))? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xdd\x01\n\x0edouble.gte_lte\x1a\xca\x01has(rules.lte) && rules.lte >= rules.gte && (this.isNan() || this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xe7\x01\n\x18double.gte_lte_exclusive\x1a\xca\x01has(rules.lte) && rules.lte < rules.gte && (this.isNan() || (rules.lte < this && this < rules.gte))? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12~\n\x02in\x18\x06 \x03(\x01Bn\xc2Hk\ni\n\tdouble.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12x\n\x06not_in\x18\x07 \x03(\x01Ba\xc2H^\n\\\n\rdouble.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12x\n\x06finite\x18\x08 \x01(\x08B`\xc2H]\n[\n\rdouble.finite\x1aJrules.finite ? (this.isNan() || this.isInf() ? \'must be finite\' : \'\') : \'\'R\x06finite\x125\n\x07example\x18\t \x03(\x01B\x1b\xc2H\x18\n\x16\n\x0edouble.example\x1a\x04trueR\x07example*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02B\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\xde\x14\n\nInt32Rules\x12\x84\x01\n\x05const\x18\x01 \x01(\x05Bn\xc2Hk\ni\n\x0bint32.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05const\x12\x88\x01\n\x02lt\x18\x02 \x01(\x05Bv\xc2Hs\nq\n\x08int32.lt\x1ae!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\x9a\x01\n\x03lte\x18\x03 \x01(\x05B\x85\x01\xc2H\x81\x01\n\x7f\n\tint32.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xfd\x06\n\x02gt\x18\x04 \x01(\x05B\xea\x06\xc2H\xe6\x06\nt\n\x08int32.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xad\x01\n\x0bint32.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb5\x01\n\x15int32.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbd\x01\n\x0cint32.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc5\x01\n\x16int32.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xca\x07\n\x03gte\x18\x05 \x01(\x05B\xb5\x07\xc2H\xb1\x07\n\x82\x01\n\tint32.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xbc\x01\n\x0cint32.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc4\x01\n\x16int32.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcc\x01\n\rint32.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd4\x01\n\x17int32.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12}\n\x02in\x18\x06 \x03(\x05Bm\xc2Hj\nh\n\x08int32.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12w\n\x06not_in\x18\x07 \x03(\x05B`\xc2H]\n[\n\x0cint32.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x124\n\x07example\x18\x08 \x03(\x05B\x1a\xc2H\x17\n\x15\n\rint32.example\x1a\x04trueR\x07example*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02B\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\xde\x14\n\nInt64Rules\x12\x84\x01\n\x05const\x18\x01 \x01(\x03Bn\xc2Hk\ni\n\x0bint64.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05const\x12\x88\x01\n\x02lt\x18\x02 \x01(\x03Bv\xc2Hs\nq\n\x08int64.lt\x1ae!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\x9a\x01\n\x03lte\x18\x03 \x01(\x03B\x85\x01\xc2H\x81\x01\n\x7f\n\tint64.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xfd\x06\n\x02gt\x18\x04 \x01(\x03B\xea\x06\xc2H\xe6\x06\nt\n\x08int64.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xad\x01\n\x0bint64.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb5\x01\n\x15int64.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbd\x01\n\x0cint64.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc5\x01\n\x16int64.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xca\x07\n\x03gte\x18\x05 \x01(\x03B\xb5\x07\xc2H\xb1\x07\n\x82\x01\n\tint64.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xbc\x01\n\x0cint64.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc4\x01\n\x16int64.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcc\x01\n\rint64.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd4\x01\n\x17int64.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12}\n\x02in\x18\x06 \x03(\x03Bm\xc2Hj\nh\n\x08int64.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12w\n\x06not_in\x18\x07 \x03(\x03B`\xc2H]\n[\n\x0cint64.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x124\n\x07example\x18\t \x03(\x03B\x1a\xc2H\x17\n\x15\n\rint64.example\x1a\x04trueR\x07example*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02B\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\xf0\x14\n\x0bUInt32Rules\x12\x85\x01\n\x05const\x18\x01 \x01(\rBo\xc2Hl\nj\n\x0cuint32.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05const\x12\x89\x01\n\x02lt\x18\x02 \x01(\rBw\xc2Ht\nr\n\tuint32.lt\x1ae!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\x9c\x01\n\x03lte\x18\x03 \x01(\rB\x87\x01\xc2H\x83\x01\n\x80\x01\n\nuint32.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\x82\x07\n\x02gt\x18\x04 \x01(\rB\xef\x06\xc2H\xeb\x06\nu\n\tuint32.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xae\x01\n\x0cuint32.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb6\x01\n\x16uint32.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbe\x01\n\ruint32.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc6\x01\n\x17uint32.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xcf\x07\n\x03gte\x18\x05 \x01(\rB\xba\x07\xc2H\xb6\x07\n\x83\x01\n\nuint32.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xbd\x01\n\ruint32.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc5\x01\n\x17uint32.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcd\x01\n\x0euint32.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd5\x01\n\x18uint32.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12~\n\x02in\x18\x06 \x03(\rBn\xc2Hk\ni\n\tuint32.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12x\n\x06not_in\x18\x07 \x03(\rBa\xc2H^\n\\\n\ruint32.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x125\n\x07example\x18\x08 \x03(\rB\x1b\xc2H\x18\n\x16\n\x0euint32.example\x1a\x04trueR\x07example*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02B\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\xf0\x14\n\x0bUInt64Rules\x12\x85\x01\n\x05const\x18\x01 \x01(\x04Bo\xc2Hl\nj\n\x0cuint64.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05const\x12\x89\x01\n\x02lt\x18\x02 \x01(\x04Bw\xc2Ht\nr\n\tuint64.lt\x1ae!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\x9c\x01\n\x03lte\x18\x03 \x01(\x04B\x87\x01\xc2H\x83\x01\n\x80\x01\n\nuint64.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\x82\x07\n\x02gt\x18\x04 \x01(\x04B\xef\x06\xc2H\xeb\x06\nu\n\tuint64.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xae\x01\n\x0cuint64.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb6\x01\n\x16uint64.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbe\x01\n\ruint64.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc6\x01\n\x17uint64.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xcf\x07\n\x03gte\x18\x05 \x01(\x04B\xba\x07\xc2H\xb6\x07\n\x83\x01\n\nuint64.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xbd\x01\n\ruint64.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc5\x01\n\x17uint64.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcd\x01\n\x0euint64.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd5\x01\n\x18uint64.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12~\n\x02in\x18\x06 \x03(\x04Bn\xc2Hk\ni\n\tuint64.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12x\n\x06not_in\x18\x07 \x03(\x04Ba\xc2H^\n\\\n\ruint64.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x125\n\x07example\x18\x08 \x03(\x04B\x1b\xc2H\x18\n\x16\n\x0euint64.example\x1a\x04trueR\x07example*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02B\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\xf0\x14\n\x0bSInt32Rules\x12\x85\x01\n\x05const\x18\x01 \x01(\x11Bo\xc2Hl\nj\n\x0csint32.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05const\x12\x89\x01\n\x02lt\x18\x02 \x01(\x11Bw\xc2Ht\nr\n\tsint32.lt\x1ae!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\x9c\x01\n\x03lte\x18\x03 \x01(\x11B\x87\x01\xc2H\x83\x01\n\x80\x01\n\nsint32.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\x82\x07\n\x02gt\x18\x04 \x01(\x11B\xef\x06\xc2H\xeb\x06\nu\n\tsint32.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xae\x01\n\x0csint32.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb6\x01\n\x16sint32.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbe\x01\n\rsint32.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc6\x01\n\x17sint32.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xcf\x07\n\x03gte\x18\x05 \x01(\x11B\xba\x07\xc2H\xb6\x07\n\x83\x01\n\nsint32.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xbd\x01\n\rsint32.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc5\x01\n\x17sint32.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcd\x01\n\x0esint32.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd5\x01\n\x18sint32.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12~\n\x02in\x18\x06 \x03(\x11Bn\xc2Hk\ni\n\tsint32.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12x\n\x06not_in\x18\x07 \x03(\x11Ba\xc2H^\n\\\n\rsint32.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x125\n\x07example\x18\x08 \x03(\x11B\x1b\xc2H\x18\n\x16\n\x0esint32.example\x1a\x04trueR\x07example*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02B\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\xf0\x14\n\x0bSInt64Rules\x12\x85\x01\n\x05const\x18\x01 \x01(\x12Bo\xc2Hl\nj\n\x0csint64.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05const\x12\x89\x01\n\x02lt\x18\x02 \x01(\x12Bw\xc2Ht\nr\n\tsint64.lt\x1ae!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\x9c\x01\n\x03lte\x18\x03 \x01(\x12B\x87\x01\xc2H\x83\x01\n\x80\x01\n\nsint64.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\x82\x07\n\x02gt\x18\x04 \x01(\x12B\xef\x06\xc2H\xeb\x06\nu\n\tsint64.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xae\x01\n\x0csint64.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb6\x01\n\x16sint64.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbe\x01\n\rsint64.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc6\x01\n\x17sint64.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xcf\x07\n\x03gte\x18\x05 \x01(\x12B\xba\x07\xc2H\xb6\x07\n\x83\x01\n\nsint64.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xbd\x01\n\rsint64.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc5\x01\n\x17sint64.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcd\x01\n\x0esint64.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd5\x01\n\x18sint64.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12~\n\x02in\x18\x06 \x03(\x12Bn\xc2Hk\ni\n\tsint64.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12x\n\x06not_in\x18\x07 \x03(\x12Ba\xc2H^\n\\\n\rsint64.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x125\n\x07example\x18\x08 \x03(\x12B\x1b\xc2H\x18\n\x16\n\x0esint64.example\x1a\x04trueR\x07example*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02B\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\x81\x15\n\x0cFixed32Rules\x12\x86\x01\n\x05const\x18\x01 \x01(\x07Bp\xc2Hm\nk\n\rfixed32.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05const\x12\x8a\x01\n\x02lt\x18\x02 \x01(\x07Bx\xc2Hu\ns\n\nfixed32.lt\x1ae!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\x9d\x01\n\x03lte\x18\x03 \x01(\x07B\x88\x01\xc2H\x84\x01\n\x81\x01\n\x0bfixed32.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\x87\x07\n\x02gt\x18\x04 \x01(\x07B\xf4\x06\xc2H\xf0\x06\nv\n\nfixed32.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xaf\x01\n\rfixed32.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb7\x01\n\x17fixed32.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbf\x01\n\x0efixed32.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc7\x01\n\x18fixed32.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xd4\x07\n\x03gte\x18\x05 \x01(\x07B\xbf\x07\xc2H\xbb\x07\n\x84\x01\n\x0bfixed32.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xbe\x01\n\x0efixed32.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc6\x01\n\x18fixed32.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xce\x01\n\x0ffixed32.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd6\x01\n\x19fixed32.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x7f\n\x02in\x18\x06 \x03(\x07Bo\xc2Hl\nj\n\nfixed32.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12y\n\x06not_in\x18\x07 \x03(\x07Bb\xc2H_\n]\n\x0efixed32.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x126\n\x07example\x18\x08 \x03(\x07B\x1c\xc2H\x19\n\x17\n\x0ffixed32.example\x1a\x04trueR\x07example*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02B\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\x81\x15\n\x0cFixed64Rules\x12\x86\x01\n\x05const\x18\x01 \x01(\x06Bp\xc2Hm\nk\n\rfixed64.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05const\x12\x8a\x01\n\x02lt\x18\x02 \x01(\x06Bx\xc2Hu\ns\n\nfixed64.lt\x1ae!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\x9d\x01\n\x03lte\x18\x03 \x01(\x06B\x88\x01\xc2H\x84\x01\n\x81\x01\n\x0bfixed64.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\x87\x07\n\x02gt\x18\x04 \x01(\x06B\xf4\x06\xc2H\xf0\x06\nv\n\nfixed64.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xaf\x01\n\rfixed64.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb7\x01\n\x17fixed64.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbf\x01\n\x0efixed64.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc7\x01\n\x18fixed64.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xd4\x07\n\x03gte\x18\x05 \x01(\x06B\xbf\x07\xc2H\xbb\x07\n\x84\x01\n\x0bfixed64.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xbe\x01\n\x0efixed64.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc6\x01\n\x18fixed64.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xce\x01\n\x0ffixed64.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd6\x01\n\x19fixed64.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x7f\n\x02in\x18\x06 \x03(\x06Bo\xc2Hl\nj\n\nfixed64.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12y\n\x06not_in\x18\x07 \x03(\x06Bb\xc2H_\n]\n\x0efixed64.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x126\n\x07example\x18\x08 \x03(\x06B\x1c\xc2H\x19\n\x17\n\x0ffixed64.example\x1a\x04trueR\x07example*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02B\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\x93\x15\n\rSFixed32Rules\x12\x87\x01\n\x05const\x18\x01 \x01(\x0fBq\xc2Hn\nl\n\x0esfixed32.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05const\x12\x8b\x01\n\x02lt\x18\x02 \x01(\x0fBy\xc2Hv\nt\n\x0bsfixed32.lt\x1ae!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\x9e\x01\n\x03lte\x18\x03 \x01(\x0fB\x89\x01\xc2H\x85\x01\n\x82\x01\n\x0csfixed32.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\x8c\x07\n\x02gt\x18\x04 \x01(\x0fB\xf9\x06\xc2H\xf5\x06\nw\n\x0bsfixed32.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xb0\x01\n\x0esfixed32.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb8\x01\n\x18sfixed32.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc0\x01\n\x0fsfixed32.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc8\x01\n\x19sfixed32.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xd9\x07\n\x03gte\x18\x05 \x01(\x0fB\xc4\x07\xc2H\xc0\x07\n\x85\x01\n\x0csfixed32.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xbf\x01\n\x0fsfixed32.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc7\x01\n\x19sfixed32.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcf\x01\n\x10sfixed32.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd7\x01\n\x1asfixed32.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x80\x01\n\x02in\x18\x06 \x03(\x0fBp\xc2Hm\nk\n\x0bsfixed32.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12z\n\x06not_in\x18\x07 \x03(\x0fBc\xc2H`\n^\n\x0fsfixed32.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x127\n\x07example\x18\x08 \x03(\x0fB\x1d\xc2H\x1a\n\x18\n\x10sfixed32.example\x1a\x04trueR\x07example*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02B\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\x93\x15\n\rSFixed64Rules\x12\x87\x01\n\x05const\x18\x01 \x01(\x10Bq\xc2Hn\nl\n\x0esfixed64.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05const\x12\x8b\x01\n\x02lt\x18\x02 \x01(\x10By\xc2Hv\nt\n\x0bsfixed64.lt\x1ae!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\x9e\x01\n\x03lte\x18\x03 \x01(\x10B\x89\x01\xc2H\x85\x01\n\x82\x01\n\x0csfixed64.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\x8c\x07\n\x02gt\x18\x04 \x01(\x10B\xf9\x06\xc2H\xf5\x06\nw\n\x0bsfixed64.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xb0\x01\n\x0esfixed64.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb8\x01\n\x18sfixed64.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc0\x01\n\x0fsfixed64.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc8\x01\n\x19sfixed64.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xd9\x07\n\x03gte\x18\x05 \x01(\x10B\xc4\x07\xc2H\xc0\x07\n\x85\x01\n\x0csfixed64.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xbf\x01\n\x0fsfixed64.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc7\x01\n\x19sfixed64.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcf\x01\n\x10sfixed64.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd7\x01\n\x1asfixed64.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x80\x01\n\x02in\x18\x06 \x03(\x10Bp\xc2Hm\nk\n\x0bsfixed64.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12z\n\x06not_in\x18\x07 \x03(\x10Bc\xc2H`\n^\n\x0fsfixed64.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x127\n\x07example\x18\x08 \x03(\x10B\x1d\xc2H\x1a\n\x18\n\x10sfixed64.example\x1a\x04trueR\x07example*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02B\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\xd1\x01\n\tBoolRules\x12\x83\x01\n\x05const\x18\x01 \x01(\x08Bm\xc2Hj\nh\n\nbool.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05const\x123\n\x07example\x18\x02 \x03(\x08B\x19\xc2H\x16\n\x14\n\x0cbool.example\x1a\x04trueR\x07example*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\xcf?\n\x0bStringRules\x12\x87\x01\n\x05const\x18\x01 \x01(\tBq\xc2Hn\nl\n\x0cstring.const\x1a\\this != getField(rules, \'const\') ? \'must equal `%s`\'.format([getField(rules, \'const\')]) : \'\'R\x05const\x12v\n\x03len\x18\x13 \x01(\x04Bd\xc2Ha\n_\n\nstring.len\x1aQuint(this.size()) != rules.len ? \'must be %s characters\'.format([rules.len]) : \'\'R\x03len\x12\x91\x01\n\x07min_len\x18\x02 \x01(\x04Bx\xc2Hu\ns\n\x0estring.min_len\x1aauint(this.size()) < rules.min_len ? \'must be at least %s characters\'.format([rules.min_len]) : \'\'R\x06minLen\x12\x90\x01\n\x07max_len\x18\x03 \x01(\x04Bw\xc2Ht\nr\n\x0estring.max_len\x1a`uint(this.size()) > rules.max_len ? \'must be at most %s characters\'.format([rules.max_len]) : \'\'R\x06maxLen\x12\x95\x01\n\tlen_bytes\x18\x14 \x01(\x04Bx\xc2Hu\ns\n\x10string.len_bytes\x1a_uint(bytes(this).size()) != rules.len_bytes ? \'must be %s bytes\'.format([rules.len_bytes]) : \'\'R\x08lenBytes\x12\x9e\x01\n\tmin_bytes\x18\x04 \x01(\x04B\x80\x01\xc2H}\n{\n\x10string.min_bytes\x1aguint(bytes(this).size()) < rules.min_bytes ? \'must be at least %s bytes\'.format([rules.min_bytes]) : \'\'R\x08minBytes\x12\x9c\x01\n\tmax_bytes\x18\x05 \x01(\x04B\x7f\xc2H|\nz\n\x10string.max_bytes\x1afuint(bytes(this).size()) > rules.max_bytes ? \'must be at most %s bytes\'.format([rules.max_bytes]) : \'\'R\x08maxBytes\x12\x90\x01\n\x07pattern\x18\x06 \x01(\tBv\xc2Hs\nq\n\x0estring.pattern\x1a_!this.matches(rules.pattern) ? \'does not match regex pattern `%s`\'.format([rules.pattern]) : \'\'R\x07pattern\x12\x86\x01\n\x06prefix\x18\x07 \x01(\tBn\xc2Hk\ni\n\rstring.prefix\x1aX!this.startsWith(rules.prefix) ? \'does not have prefix `%s`\'.format([rules.prefix]) : \'\'R\x06prefix\x12\x84\x01\n\x06suffix\x18\x08 \x01(\tBl\xc2Hi\ng\n\rstring.suffix\x1aV!this.endsWith(rules.suffix) ? \'does not have suffix `%s`\'.format([rules.suffix]) : \'\'R\x06suffix\x12\x94\x01\n\x08contains\x18\t \x01(\tBx\xc2Hu\ns\n\x0fstring.contains\x1a`!this.contains(rules.contains) ? \'does not contain substring `%s`\'.format([rules.contains]) : \'\'R\x08contains\x12\x9e\x01\n\x0cnot_contains\x18\x17 \x01(\tB{\xc2Hx\nv\n\x13string.not_contains\x1a_this.contains(rules.not_contains) ? \'contains substring `%s`\'.format([rules.not_contains]) : \'\'R\x0bnotContains\x12~\n\x02in\x18\n \x03(\tBn\xc2Hk\ni\n\tstring.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12x\n\x06not_in\x18\x0b \x03(\tBa\xc2H^\n\\\n\rstring.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\xe0\x01\n\x05email\x18\x0c \x01(\x08B\xc7\x01\xc2H\xc3\x01\n[\n\x0cstring.email\x12\x1dmust be a valid email address\x1a,!rules.email || this == \'\' || this.isEmail()\nd\n\x12string.email_empty\x122value is empty, which is not a valid email address\x1a\x1a!rules.email || this != \'\'H\x00R\x05email\x12\xeb\x01\n\x08hostname\x18\r \x01(\x08B\xcc\x01\xc2H\xc8\x01\n_\n\x0fstring.hostname\x12\x18must be a valid hostname\x1a2!rules.hostname || this == \'\' || this.isHostname()\ne\n\x15string.hostname_empty\x12-value is empty, which is not a valid hostname\x1a\x1d!rules.hostname || this != \'\'H\x00R\x08hostname\x12\xc5\x01\n\x02ip\x18\x0e \x01(\x08B\xb2\x01\xc2H\xae\x01\nO\n\tstring.ip\x12\x1amust be a valid IP address\x1a&!rules.ip || this == \'\' || this.isIp()\n[\n\x0fstring.ip_empty\x12/value is empty, which is not a valid IP address\x1a\x17!rules.ip || this != \'\'H\x00R\x02ip\x12\xd6\x01\n\x04ipv4\x18\x0f \x01(\x08B\xbf\x01\xc2H\xbb\x01\nV\n\x0bstring.ipv4\x12\x1cmust be a valid IPv4 address\x1a)!rules.ipv4 || this == \'\' || this.isIp(4)\na\n\x11string.ipv4_empty\x121value is empty, which is not a valid IPv4 address\x1a\x19!rules.ipv4 || this != \'\'H\x00R\x04ipv4\x12\xd6\x01\n\x04ipv6\x18\x10 \x01(\x08B\xbf\x01\xc2H\xbb\x01\nV\n\x0bstring.ipv6\x12\x1cmust be a valid IPv6 address\x1a)!rules.ipv6 || this == \'\' || this.isIp(6)\na\n\x11string.ipv6_empty\x121value is empty, which is not a valid IPv6 address\x1a\x19!rules.ipv6 || this != \'\'H\x00R\x04ipv6\x12\xbe\x01\n\x03uri\x18\x11 \x01(\x08B\xa9\x01\xc2H\xa5\x01\nK\n\nstring.uri\x12\x13must be a valid URI\x1a(!rules.uri || this == \'\' || this.isUri()\nV\n\x10string.uri_empty\x12(value is empty, which is not a valid URI\x1a\x18!rules.uri || this != \'\'H\x00R\x03uri\x12r\n\x07uri_ref\x18\x12 \x01(\x08BW\xc2HT\nR\n\x0estring.uri_ref\x12\x1dmust be a valid URI Reference\x1a!!rules.uri_ref || this.isUriRef()H\x00R\x06uriRef\x12\x92\x02\n\x07address\x18\x15 \x01(\x08B\xf5\x01\xc2H\xf1\x01\n{\n\x0estring.address\x12\'must be a valid hostname, or ip address\x1a@!rules.address || this == \'\' || this.isHostname() || this.isIp()\nr\n\x14string.address_empty\x12<value is empty, which is not a valid hostname, or ip address\x1a\x1c!rules.address || this != \'\'H\x00R\x07address\x12\x98\x02\n\x04uuid\x18\x16 \x01(\x08B\x81\x02\xc2H\xfd\x01\n\x9f\x01\n\x0bstring.uuid\x12\x14must be a valid UUID\x1az!rules.uuid || this == \'\' || this.matches(\'^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$\')\nY\n\x11string.uuid_empty\x12)value is empty, which is not a valid UUID\x1a\x19!rules.uuid || this != \'\'H\x00R\x04uuid\x12\xf1\x01\n\x05tuuid\x18! \x01(\x08B\xd8\x01\xc2H\xd4\x01\nm\n\x0cstring.tuuid\x12\x1cmust be a valid trimmed UUID\x1a?!rules.tuuid || this == \'\' || this.matches(\'^[0-9a-fA-F]{32}$\')\nc\n\x12string.tuuid_empty\x121value is empty, which is not a valid trimmed UUID\x1a\x1a!rules.tuuid || this != \'\'H\x00R\x05tuuid\x12\xa1\x02\n\x11ip_with_prefixlen\x18\x1a \x01(\x08B\xf2\x01\xc2H\xee\x01\nr\n\x18string.ip_with_prefixlen\x12\x19must be a valid IP prefix\x1a;!rules.ip_with_prefixlen || this == \'\' || this.isIpPrefix()\nx\n\x1estring.ip_with_prefixlen_empty\x12.value is empty, which is not a valid IP prefix\x1a&!rules.ip_with_prefixlen || this != \'\'H\x00R\x0fipWithPrefixlen\x12\xdc\x02\n\x13ipv4_with_prefixlen\x18\x1b \x01(\x08B\xa9\x02\xc2H\xa5\x02\n\x8d\x01\n\x1astring.ipv4_with_prefixlen\x12/must be a valid IPv4 address with prefix length\x1a>!rules.ipv4_with_prefixlen || this == \'\' || this.isIpPrefix(4)\n\x92\x01\n string.ipv4_with_prefixlen_empty\x12Dvalue is empty, which is not a valid IPv4 address with prefix length\x1a(!rules.ipv4_with_prefixlen || this != \'\'H\x00R\x11ipv4WithPrefixlen\x12\xdc\x02\n\x13ipv6_with_prefixlen\x18\x1c \x01(\x08B\xa9\x02\xc2H\xa5\x02\n\x8d\x01\n\x1astring.ipv6_with_prefixlen\x12/must be a valid IPv6 address with prefix length\x1a>!rules.ipv6_with_prefixlen || this == \'\' || this.isIpPrefix(6)\n\x92\x01\n string.ipv6_with_prefixlen_empty\x12Dvalue is empty, which is not a valid IPv6 address with prefix length\x1a(!rules.ipv6_with_prefixlen || this != \'\'H\x00R\x11ipv6WithPrefixlen\x12\xf6\x01\n\tip_prefix\x18\x1d \x01(\x08B\xd6\x01\xc2H\xd2\x01\nf\n\x10string.ip_prefix\x12\x19must be a valid IP prefix\x1a7!rules.ip_prefix || this == \'\' || this.isIpPrefix(true)\nh\n\x16string.ip_prefix_empty\x12.value is empty, which is not a valid IP prefix\x1a\x1e!rules.ip_prefix || this != \'\'H\x00R\x08ipPrefix\x12\x89\x02\n\x0bipv4_prefix\x18\x1e \x01(\x08B\xe5\x01\xc2H\xe1\x01\no\n\x12string.ipv4_prefix\x12\x1bmust be a valid IPv4 prefix\x1a<!rules.ipv4_prefix || this == \'\' || this.isIpPrefix(4, true)\nn\n\x18string.ipv4_prefix_empty\x120value is empty, which is not a valid IPv4 prefix\x1a !rules.ipv4_prefix || this != \'\'H\x00R\nipv4Prefix\x12\x89\x02\n\x0bipv6_prefix\x18\x1f \x01(\x08B\xe5\x01\xc2H\xe1\x01\no\n\x12string.ipv6_prefix\x12\x1bmust be a valid IPv6 prefix\x1a<!rules.ipv6_prefix || this == \'\' || this.isIpPrefix(6, true)\nn\n\x18string.ipv6_prefix_empty\x120value is empty, which is not a valid IPv6 prefix\x1a !rules.ipv6_prefix || this != \'\'H\x00R\nipv6Prefix\x12\xbc\x02\n\rhost_and_port\x18 \x01(\x08B\x95\x02\xc2H\x91\x02\n\x93\x01\n\x14string.host_and_port\x12;must be a valid host (hostname or IP address) and port pair\x1a>!rules.host_and_port || this == \'\' || this.isHostAndPort(true)\ny\n\x1astring.host_and_port_empty\x127value is empty, which is not a valid host and port pair\x1a\"!rules.host_and_port || this != \'\'H\x00R\x0bhostAndPort\x12\xf4\x01\n\x04ulid\x18# \x01(\x08B\xdd\x01\xc2H\xd9\x01\n|\n\x0bstring.ulid\x12\x14must be a valid ULID\x1aW!rules.ulid || this == \'\' || this.matches(\'^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$\')\nY\n\x11string.ulid_empty\x12)value is empty, which is not a valid ULID\x1a\x19!rules.ulid || this != \'\'H\x00R\x04ulid\x12\xe1\x02\n\x0cprotobuf_fqn\x18% \x01(\x08B\xbb\x02\xc2H\xb7\x02\n\xaf\x01\n\x13string.protobuf_fqn\x12-must be a valid fully-qualified Protobuf name\x1ai!rules.protobuf_fqn || this == \'\' || this.matches(\'^[A-Za-z_][A-Za-z_0-9]*(\\\\.[A-Za-z_][A-Za-z_0-9]*)*$\')\n\x82\x01\n\x19string.protobuf_fqn_empty\x12Bvalue is empty, which is not a valid fully-qualified Protobuf name\x1a!!rules.protobuf_fqn || this != \'\'H\x00R\x0bprotobufFqn\x12\xa1\x03\n\x10protobuf_dot_fqn\x18& \x01(\x08B\xf4\x02\xc2H\xf0\x02\n\xcd\x01\n\x17string.protobuf_dot_fqn\x12@must be a valid fully-qualified Protobuf name with a leading dot\x1ap!rules.protobuf_dot_fqn || this == \'\' || this.matches(\'^\\\\.[A-Za-z_][A-Za-z_0-9]*(\\\\.[A-Za-z_][A-Za-z_0-9]*)*$\')\n\x9d\x01\n\x1dstring.protobuf_dot_fqn_empty\x12Uvalue is empty, which is not a valid fully-qualified Protobuf name with a leading dot\x1a%!rules.protobuf_dot_fqn || this != \'\'H\x00R\x0eprotobufDotFqn\x12\xac\x05\n\x10well_known_regex\x18\x18 \x01(\x0e2\x18.buf.validate.KnownRegexB\xe5\x04\xc2H\xe1\x04\n\xea\x01\n#string.well_known_regex.header_name\x12 must be a valid HTTP header name\x1a\xa0\x01rules.well_known_regex != 1 || this == \'\' || this.matches(!has(rules.strict) || rules.strict ?\'^:?[0-9a-zA-Z!#$%&\\\'*+-.^_|~\\x60]+$\' :\'^[^\\u0000\\u000A\\u000D]+$\')\n\x8d\x01\n)string.well_known_regex.header_name_empty\x125value is empty, which is not a valid HTTP header name\x1a)rules.well_known_regex != 1 || this != \'\'\n\xe1\x01\n$string.well_known_regex.header_value\x12!must be a valid HTTP header value\x1a\x95\x01rules.well_known_regex != 2 || this.matches(!has(rules.strict) || rules.strict ?\'^[^\\u0000-\\u0008\\u000A-\\u001F\\u007F]*$\' :\'^[^\\u0000\\u000A\\u000D]*$\')H\x00R\x0ewellKnownRegex\x12\x16\n\x06strict\x18\x19 \x01(\x08R\x06strict\x125\n\x07example\x18\" \x03(\tB\x1b\xc2H\x18\n\x16\n\x0estring.example\x1a\x04trueR\x07example*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02B\x0c\n\nwell_known\"\xca\x12\n\nBytesRules\x12\x81\x01\n\x05const\x18\x01 \x01(\x0cBk\xc2Hh\nf\n\x0bbytes.const\x1aWthis != getField(rules, \'const\') ? \'must be %x\'.format([getField(rules, \'const\')]) : \'\'R\x05const\x12p\n\x03len\x18\r \x01(\x04B^\xc2H[\nY\n\tbytes.len\x1aLuint(this.size()) != rules.len ? \'must be %s bytes\'.format([rules.len]) : \'\'R\x03len\x12\x8b\x01\n\x07min_len\x18\x02 \x01(\x04Br\xc2Ho\nm\n\rbytes.min_len\x1a\\uint(this.size()) < rules.min_len ? \'must be at least %s bytes\'.format([rules.min_len]) : \'\'R\x06minLen\x12\x8a\x01\n\x07max_len\x18\x03 \x01(\x04Bq\xc2Hn\nl\n\rbytes.max_len\x1a[uint(this.size()) > rules.max_len ? \'must be at most %s bytes\'.format([rules.max_len]) : \'\'R\x06maxLen\x12\x93\x01\n\x07pattern\x18\x04 \x01(\tBy\xc2Hv\nt\n\rbytes.pattern\x1ac!string(this).matches(rules.pattern) ? \'must match regex pattern `%s`\'.format([rules.pattern]) : \'\'R\x07pattern\x12\x83\x01\n\x06prefix\x18\x05 \x01(\x0cBk\xc2Hh\nf\n\x0cbytes.prefix\x1aV!this.startsWith(rules.prefix) ? \'does not have prefix %x\'.format([rules.prefix]) : \'\'R\x06prefix\x12\x81\x01\n\x06suffix\x18\x06 \x01(\x0cBi\xc2Hf\nd\n\x0cbytes.suffix\x1aT!this.endsWith(rules.suffix) ? \'does not have suffix %x\'.format([rules.suffix]) : \'\'R\x06suffix\x12\x87\x01\n\x08contains\x18\x07 \x01(\x0cBk\xc2Hh\nf\n\x0ebytes.contains\x1aT!this.contains(rules.contains) ? \'does not contain %x\'.format([rules.contains]) : \'\'R\x08contains\x12\xa5\x01\n\x02in\x18\x08 \x03(\x0cB\x94\x01\xc2H\x90\x01\n\x8d\x01\n\x08bytes.in\x1a\x80\x01getField(rules, \'in\').size() > 0 && !(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12w\n\x06not_in\x18\t \x03(\x0cB`\xc2H]\n[\n\x0cbytes.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\xe9\x01\n\x02ip\x18\n \x01(\x08B\xd6\x01\xc2H\xd2\x01\nn\n\x08bytes.ip\x12\x1amust be a valid IP address\x1aF!rules.ip || this.size() == 0 || this.size() == 4 || this.size() == 16\n`\n\x0ebytes.ip_empty\x12/value is empty, which is not a valid IP address\x1a\x1d!rules.ip || this.size() != 0H\x00R\x02ip\x12\xe4\x01\n\x04ipv4\x18\x0b \x01(\x08B\xcd\x01\xc2H\xc9\x01\n_\n\nbytes.ipv4\x12\x1cmust be a valid IPv4 address\x1a3!rules.ipv4 || this.size() == 0 || this.size() == 4\nf\n\x10bytes.ipv4_empty\x121value is empty, which is not a valid IPv4 address\x1a\x1f!rules.ipv4 || this.size() != 0H\x00R\x04ipv4\x12\xe5\x01\n\x04ipv6\x18\x0c \x01(\x08B\xce\x01\xc2H\xca\x01\n`\n\nbytes.ipv6\x12\x1cmust be a valid IPv6 address\x1a4!rules.ipv6 || this.size() == 0 || this.size() == 16\nf\n\x10bytes.ipv6_empty\x121value is empty, which is not a valid IPv6 address\x1a\x1f!rules.ipv6 || this.size() != 0H\x00R\x04ipv6\x12\xd5\x01\n\x04uuid\x18\x0f \x01(\x08B\xbe\x01\xc2H\xba\x01\nX\n\nbytes.uuid\x12\x14must be a valid UUID\x1a4!rules.uuid || this.size() == 0 || this.size() == 16\n^\n\x10bytes.uuid_empty\x12)value is empty, which is not a valid UUID\x1a\x1f!rules.uuid || this.size() != 0H\x00R\x04uuid\x124\n\x07example\x18\x0e \x03(\x0cB\x1a\xc2H\x17\n\x15\n\rbytes.example\x1a\x04trueR\x07example*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02B\x0c\n\nwell_known\"\xea\x03\n\tEnumRules\x12\x83\x01\n\x05const\x18\x01 \x01(\x05Bm\xc2Hj\nh\n\nenum.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05const\x12!\n\x0cdefined_only\x18\x02 \x01(\x08R\x0bdefinedOnly\x12|\n\x02in\x18\x03 \x03(\x05Bl\xc2Hi\ng\n\x07enum.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12v\n\x06not_in\x18\x04 \x03(\x05B_\xc2H\\\nZ\n\x0benum.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x123\n\x07example\x18\x05 \x03(\x05B\x19\xc2H\x16\n\x14\n\x0cenum.example\x1a\x04trueR\x07example*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\x90\x04\n\rRepeatedRules\x12\xa0\x01\n\tmin_items\x18\x01 \x01(\x04B\x82\x01\xc2H\x7f\n}\n\x12repeated.min_items\x1aguint(this.size()) < rules.min_items ? \'must contain at least %d item(s)\'.format([rules.min_items]) : \'\'R\x08minItems\x12\xa6\x01\n\tmax_items\x18\x02 \x01(\x04B\x88\x01\xc2H\x84\x01\n\x81\x01\n\x12repeated.max_items\x1akuint(this.size()) > rules.max_items ? \'must contain no more than %s item(s)\'.format([rules.max_items]) : \'\'R\x08maxItems\x12x\n\x06unique\x18\x03 \x01(\x08B`\xc2H]\n[\n\x0frepeated.unique\x12(repeated value must contain unique items\x1a\x1e!rules.unique || this.unique()R\x06unique\x12.\n\x05items\x18\x04 \x01(\x0b2\x18.buf.validate.FieldRulesR\x05items*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\xac\x03\n\x08MapRules\x12\x99\x01\n\tmin_pairs\x18\x01 \x01(\x04B|\xc2Hy\nw\n\rmap.min_pairs\x1afuint(this.size()) < rules.min_pairs ? \'map must be at least %d entries\'.format([rules.min_pairs]) : \'\'R\x08minPairs\x12\x98\x01\n\tmax_pairs\x18\x02 \x01(\x04B{\xc2Hx\nv\n\rmap.max_pairs\x1aeuint(this.size()) > rules.max_pairs ? \'map must be at most %d entries\'.format([rules.max_pairs]) : \'\'R\x08maxPairs\x12,\n\x04keys\x18\x04 \x01(\x0b2\x18.buf.validate.FieldRulesR\x04keys\x120\n\x06values\x18\x05 \x01(\x0b2\x18.buf.validate.FieldRulesR\x06values*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"1\n\x08AnyRules\x12\x0e\n\x02in\x18\x02 \x03(\tR\x02in\x12\x15\n\x06not_in\x18\x03 \x03(\tR\x05notIn\"\xec\x16\n\rDurationRules\x12\xa2\x01\n\x05const\x18\x02 \x01(\x0b2\x19.google.protobuf.DurationBq\xc2Hn\nl\n\x0eduration.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05const\x12\xa6\x01\n\x02lt\x18\x03 \x01(\x0b2\x19.google.protobuf.DurationBy\xc2Hv\nt\n\x0bduration.lt\x1ae!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xb9\x01\n\x03lte\x18\x04 \x01(\x0b2\x19.google.protobuf.DurationB\x89\x01\xc2H\x85\x01\n\x82\x01\n\x0cduration.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xa7\x07\n\x02gt\x18\x05 \x01(\x0b2\x19.google.protobuf.DurationB\xf9\x06\xc2H\xf5\x06\nw\n\x0bduration.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xb0\x01\n\x0eduration.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb8\x01\n\x18duration.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc0\x01\n\x0fduration.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc8\x01\n\x19duration.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xf4\x07\n\x03gte\x18\x06 \x01(\x0b2\x19.google.protobuf.DurationB\xc4\x07\xc2H\xc0\x07\n\x85\x01\n\x0cduration.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xbf\x01\n\x0fduration.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc7\x01\n\x19duration.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcf\x01\n\x10duration.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd7\x01\n\x1aduration.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x9b\x01\n\x02in\x18\x07 \x03(\x0b2\x19.google.protobuf.DurationBp\xc2Hm\nk\n\x0bduration.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12\x95\x01\n\x06not_in\x18\x08 \x03(\x0b2\x19.google.protobuf.DurationBc\xc2H`\n^\n\x0fduration.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12R\n\x07example\x18\t \x03(\x0b2\x19.google.protobuf.DurationB\x1d\xc2H\x1a\n\x18\n\x10duration.example\x1a\x04trueR\x07example*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02B\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\x86\x06\n\x0eFieldMaskRules\x12\xc0\x01\n\x05const\x18\x01 \x01(\x0b2\x1a.google.protobuf.FieldMaskB\x8d\x01\xc2H\x89\x01\n\x86\x01\n\x10field_mask.const\x1arthis.paths != getField(rules, \'const\').paths ? \'must equal paths %s\'.format([getField(rules, \'const\').paths]) : \'\'R\x05const\x12\xd7\x01\n\x02in\x18\x02 \x03(\tB\xc6\x01\xc2H\xc2\x01\n\xbf\x01\n\rfield_mask.in\x1a\xad\x01!this.paths.all(p, p in getField(rules, \'in\') || getField(rules, \'in\').exists(f, p.startsWith(f+\'.\'))) ? \'must only contain paths in %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12\xf4\x01\n\x06not_in\x18\x03 \x03(\tB\xdc\x01\xc2H\xd8\x01\n\xd5\x01\n\x11field_mask.not_in\x1a\xbf\x01!this.paths.all(p, !(p in getField(rules, \'not_in\') || getField(rules, \'not_in\').exists(f, p.startsWith(f+\'.\')))) ? \'must not contain any paths in %s\'.format([getField(rules, \'not_in\')]) : \'\'R\x05notIn\x12U\n\x07example\x18\x04 \x03(\x0b2\x1a.google.protobuf.FieldMaskB\x1f\xc2H\x1c\n\x1a\n\x12field_mask.example\x1a\x04trueR\x07example*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\xe8\x17\n\x0eTimestampRules\x12\xa4\x01\n\x05const\x18\x02 \x01(\x0b2\x1a.google.protobuf.TimestampBr\xc2Ho\nm\n\x0ftimestamp.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05const\x12\xa8\x01\n\x02lt\x18\x03 \x01(\x0b2\x1a.google.protobuf.TimestampBz\xc2Hw\nu\n\x0ctimestamp.lt\x1ae!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xbb\x01\n\x03lte\x18\x04 \x01(\x0b2\x1a.google.protobuf.TimestampB\x8a\x01\xc2H\x86\x01\n\x83\x01\n\rtimestamp.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12m\n\x06lt_now\x18\x07 \x01(\x08BT\xc2HQ\nO\n\x10timestamp.lt_now\x1a;(rules.lt_now && this > now) ? \'must be less than now\' : \'\'H\x00R\x05ltNow\x12\xad\x07\n\x02gt\x18\x05 \x01(\x0b2\x1a.google.protobuf.TimestampB\xfe\x06\xc2H\xfa\x06\nx\n\x0ctimestamp.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xb1\x01\n\x0ftimestamp.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb9\x01\n\x19timestamp.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc1\x01\n\x10timestamp.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc9\x01\n\x1atimestamp.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xfa\x07\n\x03gte\x18\x06 \x01(\x0b2\x1a.google.protobuf.TimestampB\xc9\x07\xc2H\xc5\x07\n\x86\x01\n\rtimestamp.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc0\x01\n\x10timestamp.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc8\x01\n\x1atimestamp.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd0\x01\n\x11timestamp.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd8\x01\n\x1btimestamp.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12p\n\x06gt_now\x18\x08 \x01(\x08BW\xc2HT\nR\n\x10timestamp.gt_now\x1a>(rules.gt_now && this < now) ? \'must be greater than now\' : \'\'H\x01R\x05gtNow\x12\xb9\x01\n\x06within\x18\t \x01(\x0b2\x19.google.protobuf.DurationB\x85\x01\xc2H\x81\x01\n\x7f\n\x10timestamp.within\x1akthis < now-rules.within || this > now+rules.within ? \'must be within %s of now\'.format([rules.within]) : \'\'R\x06within\x12T\n\x07example\x18\n \x03(\x0b2\x1a.google.protobuf.TimestampB\x1e\xc2H\x1b\n\x19\n\x11timestamp.example\x1a\x04trueR\x07example*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02B\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"E\n\nViolations\x127\n\nviolations\x18\x01 \x03(\x0b2\x17.buf.validate.ViolationR\nviolations\"\xc5\x01\n\tViolation\x12-\n\x05field\x18\x05 \x01(\x0b2\x17.buf.validate.FieldPathR\x05field\x12+\n\x04rule\x18\x06 \x01(\x0b2\x17.buf.validate.FieldPathR\x04rule\x12\x17\n\x07rule_id\x18\x02 \x01(\tR\x06ruleId\x12\x18\n\x07message\x18\x03 \x01(\tR\x07message\x12\x17\n\x07for_key\x18\x04 \x01(\x08R\x06forKeyJ\x04\x08\x01\x10\x02R\nfield_path\"G\n\tFieldPath\x12:\n\x08elements\x18\x01 \x03(\x0b2\x1e.buf.validate.FieldPathElementR\x08elements\"\xcc\x03\n\x10FieldPathElement\x12!\n\x0cfield_number\x18\x01 \x01(\x05R\x0bfieldNumber\x12\x1d\n\nfield_name\x18\x02 \x01(\tR\tfieldName\x12I\n\nfield_type\x18\x03 \x01(\x0e2*.google.protobuf.FieldDescriptorProto.TypeR\tfieldType\x12E\n\x08key_type\x18\x04 \x01(\x0e2*.google.protobuf.FieldDescriptorProto.TypeR\x07keyType\x12I\n\nvalue_type\x18\x05 \x01(\x0e2*.google.protobuf.FieldDescriptorProto.TypeR\tvalueType\x12\x16\n\x05index\x18\x06 \x01(\x04H\x00R\x05index\x12\x1b\n\x08bool_key\x18\x07 \x01(\x08H\x00R\x07boolKey\x12\x19\n\x07int_key\x18\x08 \x01(\x03H\x00R\x06intKey\x12\x1b\n\x08uint_key\x18\t \x01(\x04H\x00R\x07uintKey\x12\x1f\n\nstring_key\x18\n \x01(\tH\x00R\tstringKeyB\x0b\n\tsubscript*\xa1\x01\n\x06Ignore\x12\x16\n\x12IGNORE_UNSPECIFIED\x10\x00\x12\x18\n\x14IGNORE_IF_ZERO_VALUE\x10\x01\x12\x11\n\rIGNORE_ALWAYS\x10\x03\"\x04\x08\x02\x10\x02*\x0cIGNORE_EMPTY*\x0eIGNORE_DEFAULT*\x17IGNORE_IF_DEFAULT_VALUE*\x15IGNORE_IF_UNPOPULATED*n\n\nKnownRegex\x12\x1b\n\x17KNOWN_REGEX_UNSPECIFIED\x10\x00\x12 \n\x1cKNOWN_REGEX_HTTP_HEADER_NAME\x10\x01\x12!\n\x1dKNOWN_REGEX_HTTP_HEADER_VALUE\x10\x02:V\n\x07message\x12\x1f.google.protobuf.MessageOptions\x18\x87\t \x01(\x0b2\x1a.buf.validate.MessageRulesR\x07message:N\n\x05oneof\x12\x1d.google.protobuf.OneofOptions\x18\x87\t \x01(\x0b2\x18.buf.validate.OneofRulesR\x05oneof:N\n\x05field\x12\x1d.google.protobuf.FieldOptions\x18\x87\t \x01(\x0b2\x18.buf.validate.FieldRulesR\x05field:]\n\npredefined\x12\x1d.google.protobuf.FieldOptions\x18\x88\t \x01(\x0b2\x1d.buf.validate.PredefinedRulesR\npredefinedBn\n\x12build.buf.validateB\rValidateProtoP\x01ZGbuf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go/buf/validateJ\xf0\xd7\x08\n\x07\x12\x05\x0e\x00\x8f(\x01\n\xce\x04\n\x01\x0c\x12\x03\x0e\x00\x122\xc3\x04 Copyright 2023-2026 Buf Technologies, Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n\xeb\x0b\n\x01\x02\x12\x03,\x00\x15\x1a\xe0\x0b [Protovalidate](https://protovalidate.com/) is the semantic validation library for Protobuf.\n It provides standard annotations to validate common rules on messages and fields, as well as the ability to use [CEL](https://cel.dev) to write custom rules.\n It\'s the next generation of [protoc-gen-validate](https://github.com/bufbuild/protoc-gen-validate).\n\n This package provides the options, messages, and enums that power Protovalidate.\n Apply its options to messages, fields, and oneofs in your Protobuf schemas to add validation rules:\n\n ```proto\n message User {\n string id = 1 [(buf.validate.field).string.uuid = true];\n string first_name = 2 [(buf.validate.field).string.max_len = 64];\n string last_name = 3 [(buf.validate.field).string.max_len = 64];\n\n option (buf.validate.message).cel = {\n id: \"first_name_requires_last_name\"\n message: \"last_name must be present if first_name is present\"\n expression: \"!has(this.first_name) || has(this.last_name)\"\n };\n }\n ```\n\n These rules are enforced at runtime by language-specific libraries.\n See the [developer quickstart](https://protovalidate.com/quickstart/) to get started, or go directly to the runtime library for your language:\n [Go](https://github.com/bufbuild/protovalidate-go),\n [JavaScript/TypeScript](https://github.com/bufbuild/protovalidate-es),\n [Java](https://github.com/bufbuild/protovalidate-java),\n [Python](https://github.com/bufbuild/protovalidate-python),\n or [C++](https://github.com/bufbuild/protovalidate-cc).\n\n\t\n\x02\x03\x00\x12\x03.\x00*\n\t\n\x02\x03\x01\x12\x03/\x00(\n\t\n\x02\x03\x02\x12\x030\x00*\n\t\n\x02\x03\x03\x12\x031\x00)\n\x08\n\x01\x08\x12\x033\x00^\n\t\n\x02\x08\x0b\x12\x033\x00^\n\x08\n\x01\x08\x12\x034\x00\"\n\t\n\x02\x08\n\x12\x034\x00\"\n\x08\n\x01\x08\x12\x035\x00.\n\t\n\x02\x08\x08\x12\x035\x00.\n\x08\n\x01\x08\x12\x036\x00+\n\t\n\x02\x08\x01\x12\x036\x00+\n\x80\x02\n\x01\x07\x12\x04<\x00@\x01\x1a\xf4\x01 MessageOptions is an extension to google.protobuf.MessageOptions. It allows\n the addition of validation rules at the message level. These rules can be\n applied to incoming messages to ensure they meet certain criteria before\n being processed.\n\n\x86\x01\n\x02\x07\x00\x12\x03?\x02\'\x1a{ Rules specify the validations to be performed on this message. By default,\n no validation is performed against a message.\n\n\n\n\x03\x07\x00\x02\x12\x03<\x07%\n\n\n\x03\x07\x00\x04\x12\x03?\x02\n\n\n\n\x03\x07\x00\x06\x12\x03?\x0b\x17\n\n\n\x03\x07\x00\x01\x12\x03?\x18\x1f\n\n\n\x03\x07\x00\x03\x12\x03?\"&\n\xf2\x01\n\x01\x07\x12\x04F\x00J\x01\x1a\xe6\x01 OneofOptions is an extension to google.protobuf.OneofOptions. It allows\n the addition of validation rules on a oneof. These rules can be\n applied to incoming messages to ensure they meet certain criteria before\n being processed.\n\n\x82\x01\n\x02\x07\x01\x12\x03I\x02#\x1aw Rules specify the validations to be performed on this oneof. By default,\n no validation is performed against a oneof.\n\n\n\n\x03\x07\x01\x02\x12\x03F\x07#\n\n\n\x03\x07\x01\x04\x12\x03I\x02\n\n\n\n\x03\x07\x01\x06\x12\x03I\x0b\x15\n\n\n\x03\x07\x01\x01\x12\x03I\x16\x1b\n\n\n\x03\x07\x01\x03\x12\x03I\x1e\"\n\xfa\x01\n\x01\x07\x12\x04P\x00f\x01\x1a\xee\x01 FieldOptions is an extension to google.protobuf.FieldOptions. It allows\n the addition of validation rules at the field level. These rules can be\n applied to incoming messages to ensure they meet certain criteria before\n being processed.\n\n\x82\x01\n\x02\x07\x02\x12\x03S\x02#\x1aw Rules specify the validations to be performed on this field. By default,\n no validation is performed against a field.\n\n\n\n\x03\x07\x02\x02\x12\x03P\x07#\n\n\n\x03\x07\x02\x04\x12\x03S\x02\n\n\n\n\x03\x07\x02\x06\x12\x03S\x0b\x15\n\n\n\x03\x07\x02\x01\x12\x03S\x16\x1b\n\n\n\x03\x07\x02\x03\x12\x03S\x1e\"\n\xcb\x03\n\x02\x07\x03\x12\x03e\x02-\x1a\xbf\x03 Specifies predefined rules. When extending a standard rule message,\n this adds additional CEL expressions that apply when the extension is used.\n\n ```proto\n extend buf.validate.Int32Rules {\n bool is_zero = 1001 [(buf.validate.predefined).cel = {\n id: \"int32.is_zero\",\n message: \"must be zero\",\n expression: \"!rule || this == 0\",\n }];\n }\n\n message Foo {\n int32 reserved = 1 [(buf.validate.field).int32.(is_zero) = true];\n }\n ```\n\n\n\n\x03\x07\x03\x02\x12\x03P\x07#\n\n\n\x03\x07\x03\x04\x12\x03e\x02\n\n\n\n\x03\x07\x03\x06\x12\x03e\x0b\x1a\n\n\n\x03\x07\x03\x01\x12\x03e\x1b%\n\n\n\x03\x07\x03\x03\x12\x03e(,\n\x81\x04\n\x02\x04\x00\x12\x05w\x00\x87\x01\x01\x1a\xf3\x03 `Rule` represents a validation rule written in the Common Expression\n Language (CEL) syntax. Each Rule includes a unique identifier, an\n optional error message, and the CEL expression to evaluate. For more\n information, [see our documentation](https://buf.build/docs/protovalidate/schemas/custom-rules/).\n\n ```proto\n message Foo {\n option (buf.validate.message).cel = {\n id: \"foo.bar\"\n message: \"bar must be greater than 0\"\n expression: \"this.bar > 0\"\n };\n int32 bar = 1;\n }\n ```\n\n\n\n\x03\x04\x00\x01\x12\x03w\x08\x0c\n\xa9\x01\n\x04\x04\x00\x02\x00\x12\x03z\x02\x19\x1a\x9b\x01 `id` is a string that serves as a machine-readable name for this Rule.\n It should be unique within its scope, which could be either a message or a field.\n\n\x0c\n\x05\x04\x00\x02\x00\x04\x12\x03z\x02\n\n\x0c\n\x05\x04\x00\x02\x00\x05\x12\x03z\x0b\x11\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03z\x12\x14\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03z\x17\x18\n\x83\x02\n\x04\x04\x00\x02\x01\x12\x04\x80\x01\x02\x1e\x1a\xf4\x01 `message` is an optional field that provides a human-readable error message\n for this Rule when the CEL expression evaluates to false. If a\n non-empty message is provided, any strings resulting from the CEL\n expression evaluation are ignored.\n\n\r\n\x05\x04\x00\x02\x01\x04\x12\x04\x80\x01\x02\n\n\r\n\x05\x04\x00\x02\x01\x05\x12\x04\x80\x01\x0b\x11\n\r\n\x05\x04\x00\x02\x01\x01\x12\x04\x80\x01\x12\x19\n\r\n\x05\x04\x00\x02\x01\x03\x12\x04\x80\x01\x1c\x1d\n\xa2\x02\n\x04\x04\x00\x02\x02\x12\x04\x86\x01\x02!\x1a\x93\x02 `expression` is the actual CEL expression that will be evaluated for\n validation. This string must resolve to either a boolean or a string\n value. If the expression evaluates to false or a non-empty string, the\n validation is considered failed, and the message is rejected.\n\n\r\n\x05\x04\x00\x02\x02\x04\x12\x04\x86\x01\x02\n\n\r\n\x05\x04\x00\x02\x02\x05\x12\x04\x86\x01\x0b\x11\n\r\n\x05\x04\x00\x02\x02\x01\x12\x04\x86\x01\x12\x1c\n\r\n\x05\x04\x00\x02\x02\x03\x12\x04\x86\x01\x1f \n\xdc\x01\n\x02\x04\x01\x12\x06\x8b\x01\x00\xd7\x01\x01\x1a\xcd\x01 MessageRules represents validation rules that are applied to the entire message.\n It includes disabling options and a list of Rule messages representing Common Expression Language (CEL) validation rules.\n\n\x0b\n\x03\x04\x01\x01\x12\x04\x8b\x01\x08\x14\n\xd4\x06\n\x04\x04\x01\x02\x00\x12\x04\x9e\x01\x02%\x1a\xc5\x06 `cel_expression` is a repeated field CEL expressions. Each expression specifies a validation\n rule to be applied to this message. These rules are written in Common Expression Language (CEL) syntax.\n\n This is a simplified form of the `cel` Rule field, where only `expression` is set. This allows for\n simpler syntax when defining CEL Rules where `id` and `message` derived from the `expression`. `id` will\n be same as the `expression`.\n\n For more information, [see our documentation](https://buf.build/docs/protovalidate/schemas/custom-rules/).\n\n ```proto\n message MyMessage {\n // The field `foo` must be greater than 42.\n option (buf.validate.message).cel_expression = \"this.foo > 42\";\n // The field `foo` must be less than 84.\n option (buf.validate.message).cel_expression = \"this.foo < 84\";\n optional int32 foo = 1;\n }\n ```\n\n\r\n\x05\x04\x01\x02\x00\x04\x12\x04\x9e\x01\x02\n\n\r\n\x05\x04\x01\x02\x00\x05\x12\x04\x9e\x01\x0b\x11\n\r\n\x05\x04\x01\x02\x00\x01\x12\x04\x9e\x01\x12 \n\r\n\x05\x04\x01\x02\x00\x03\x12\x04\x9e\x01#$\n\xb8\x04\n\x04\x04\x01\x02\x01\x12\x04\xaf\x01\x02\x18\x1a\xa9\x04 `cel` is a repeated field of type Rule. Each Rule specifies a validation rule to be applied to this message.\n These rules are written in Common Expression Language (CEL) syntax. For more information,\n [see our documentation](https://buf.build/docs/protovalidate/schemas/custom-rules/).\n\n\n ```proto\n message MyMessage {\n // The field `foo` must be greater than 42.\n option (buf.validate.message).cel = {\n id: \"my_message.value\",\n message: \"must be greater than 42\",\n expression: \"this.foo > 42\",\n };\n optional int32 foo = 1;\n }\n ```\n\n\r\n\x05\x04\x01\x02\x01\x04\x12\x04\xaf\x01\x02\n\n\r\n\x05\x04\x01\x02\x01\x06\x12\x04\xaf\x01\x0b\x0f\n\r\n\x05\x04\x01\x02\x01\x01\x12\x04\xaf\x01\x10\x13\n\r\n\x05\x04\x01\x02\x01\x03\x12\x04\xaf\x01\x16\x17\n\xc9\x0e\n\x04\x04\x01\x02\x02\x12\x04\xd3\x01\x02&\x1a\xba\x0e `oneof` is a repeated field of type MessageOneofRule that specifies a list of fields\n of which at most one can be present. If `required` is also specified, then exactly one\n of the specified fields _must_ be present.\n\n This will enforce oneof-like constraints with a few features not provided by\n actual Protobuf oneof declarations:\n 1. Repeated and map fields are allowed in this validation. In a Protobuf oneof,\n only scalar fields are allowed.\n 2. Fields with implicit presence are allowed. In a Protobuf oneof, all member\n fields have explicit presence. This means that, for the purpose of determining\n how many fields are set, explicitly setting such a field to its zero value is\n effectively the same as not setting it at all.\n 3. This will always generate validation errors for a message unmarshalled from\n serialized data that sets more than one field. With a Protobuf oneof, when\n multiple fields are present in the serialized form, earlier values are usually\n silently ignored when unmarshalling, with only the last field being set when\n unmarshalling completes.\n\n Note that adding a field to a `oneof` will also set the IGNORE_IF_ZERO_VALUE on the fields. This means\n only the field that is set will be validated and the unset fields are not validated according to the field rules.\n This behavior can be overridden by setting `ignore` against a field.\n\n ```proto\n message MyMessage {\n // Only one of `field1` or `field2` _can_ be present in this message.\n option (buf.validate.message).oneof = { fields: [\"field1\", \"field2\"] };\n // Exactly one of `field3` or `field4` _must_ be present in this message.\n option (buf.validate.message).oneof = { fields: [\"field3\", \"field4\"], required: true };\n string field1 = 1;\n bytes field2 = 2;\n bool field3 = 3;\n int32 field4 = 4;\n }\n ```\n\n\r\n\x05\x04\x01\x02\x02\x04\x12\x04\xd3\x01\x02\n\n\r\n\x05\x04\x01\x02\x02\x06\x12\x04\xd3\x01\x0b\x1b\n\r\n\x05\x04\x01\x02\x02\x01\x12\x04\xd3\x01\x1c!\n\r\n\x05\x04\x01\x02\x02\x03\x12\x04\xd3\x01$%\n\x0b\n\x03\x04\x01\t\x12\x04\xd5\x01\x02\r\n\x0c\n\x04\x04\x01\t\x00\x12\x04\xd5\x01\x0b\x0c\n\r\n\x05\x04\x01\t\x00\x01\x12\x04\xd5\x01\x0b\x0c\n\r\n\x05\x04\x01\t\x00\x02\x12\x04\xd5\x01\x0b\x0c\n\x0b\n\x03\x04\x01\n\x12\x04\xd6\x01\x02\x16\n\x0c\n\x04\x04\x01\n\x00\x12\x04\xd6\x01\x0b\x15\n\x0c\n\x02\x04\x02\x12\x06\xd9\x01\x00\xe0\x01\x01\n\x0b\n\x03\x04\x02\x01\x12\x04\xd9\x01\x08\x18\n\xb9\x01\n\x04\x04\x02\x02\x00\x12\x04\xdd\x01\x02\x1d\x1a\xaa\x01 A list of field names to include in the oneof. All field names must be\n defined in the message. At least one field must be specified, and\n duplicates are not permitted.\n\n\r\n\x05\x04\x02\x02\x00\x04\x12\x04\xdd\x01\x02\n\n\r\n\x05\x04\x02\x02\x00\x05\x12\x04\xdd\x01\x0b\x11\n\r\n\x05\x04\x02\x02\x00\x01\x12\x04\xdd\x01\x12\x18\n\r\n\x05\x04\x02\x02\x00\x03\x12\x04\xdd\x01\x1b\x1c\nC\n\x04\x04\x02\x02\x01\x12\x04\xdf\x01\x02\x1d\x1a5 If true, one of the fields specified _must_ be set.\n\n\r\n\x05\x04\x02\x02\x01\x04\x12\x04\xdf\x01\x02\n\n\r\n\x05\x04\x02\x02\x01\x05\x12\x04\xdf\x01\x0b\x0f\n\r\n\x05\x04\x02\x02\x01\x01\x12\x04\xdf\x01\x10\x18\n\r\n\x05\x04\x02\x02\x01\x03\x12\x04\xdf\x01\x1b\x1c\nv\n\x02\x04\x03\x12\x06\xe4\x01\x00\xf6\x01\x01\x1ah The `OneofRules` message type enables you to manage rules for\n oneof fields in your protobuf messages.\n\n\x0b\n\x03\x04\x03\x01\x12\x04\xe4\x01\x08\x12\n\xdd\x04\n\x04\x04\x03\x02\x00\x12\x04\xf5\x01\x02\x1d\x1a\xce\x04 If `required` is true, exactly one field of the oneof must be set. A\n validation error is returned if no fields in the oneof are set. Further rules\n should be placed on the fields themselves to ensure they are valid values,\n such as `min_len` or `gt`.\n\n ```proto\n message MyMessage {\n oneof value {\n // Either `a` or `b` must be set. If `a` is set, it must also be\n // non-empty; whereas if `b` is set, it can still be an empty string.\n option (buf.validate.oneof).required = true;\n string a = 1 [(buf.validate.field).string.min_len = 1];\n string b = 2;\n }\n }\n ```\n\n\r\n\x05\x04\x03\x02\x00\x04\x12\x04\xf5\x01\x02\n\n\r\n\x05\x04\x03\x02\x00\x05\x12\x04\xf5\x01\x0b\x0f\n\r\n\x05\x04\x03\x02\x00\x01\x12\x04\xf5\x01\x10\x18\n\r\n\x05\x04\x03\x02\x00\x03\x12\x04\xf5\x01\x1b\x1c\n\xa0\x01\n\x02\x04\x04\x12\x06\xfa\x01\x00\x81\x03\x01\x1a\x91\x01 FieldRules encapsulates the rules for each type of field. Depending on\n the field, the correct set should be used to ensure proper validations.\n\n\x0b\n\x03\x04\x04\x01\x12\x04\xfa\x01\x08\x12\n\xda\x05\n\x04\x04\x04\x02\x00\x12\x04\x8a\x02\x02&\x1a\xcb\x05 `cel_expression` is a repeated field CEL expressions. Each expression specifies a validation\n rule to be applied to this message. These rules are written in Common Expression Language (CEL) syntax.\n\n This is a simplified form of the `cel` Rule field, where only `expression` is set. This allows for\n simpler syntax when defining CEL Rules where `id` and `message` derived from the `expression`. `id` will\n be same as the `expression`.\n\n For more information, [see our documentation](https://buf.build/docs/protovalidate/schemas/custom-rules/).\n\n ```proto\n message MyMessage {\n // The field `value` must be greater than 42.\n optional int32 value = 1 [(buf.validate.field).cel_expression = \"this > 42\"];\n }\n ```\n\n\r\n\x05\x04\x04\x02\x00\x04\x12\x04\x8a\x02\x02\n\n\r\n\x05\x04\x04\x02\x00\x05\x12\x04\x8a\x02\x0b\x11\n\r\n\x05\x04\x04\x02\x00\x01\x12\x04\x8a\x02\x12 \n\r\n\x05\x04\x04\x02\x00\x03\x12\x04\x8a\x02#%\n\xec\x03\n\x04\x04\x04\x02\x01\x12\x04\x99\x02\x02\x19\x1a\xdd\x03 `cel` is a repeated field used to represent a textual expression\n in the Common Expression Language (CEL) syntax. For more information,\n [see our documentation](https://buf.build/docs/protovalidate/schemas/custom-rules/).\n\n ```proto\n message MyMessage {\n // The field `value` must be greater than 42.\n optional int32 value = 1 [(buf.validate.field).cel = {\n id: \"my_message.value\",\n message: \"must be greater than 42\",\n expression: \"this > 42\",\n }];\n }\n ```\n\n\r\n\x05\x04\x04\x02\x01\x04\x12\x04\x99\x02\x02\n\n\r\n\x05\x04\x04\x02\x01\x06\x12\x04\x99\x02\x0b\x0f\n\r\n\x05\x04\x04\x02\x01\x01\x12\x04\x99\x02\x10\x13\n\r\n\x05\x04\x04\x02\x01\x03\x12\x04\x99\x02\x16\x18\n\xe1\x0e\n\x04\x04\x04\x02\x02\x12\x04\xd2\x02\x02\x1e\x1a\xd2\x0e If `required` is true, the field must be set. A validation error is returned\n if the field is not set.\n\n ```proto\n syntax=\"proto3\";\n\n message FieldsWithPresence {\n // Requires any string to be set, including the empty string.\n optional string link = 1 [\n (buf.validate.field).required = true\n ];\n // Requires true or false to be set.\n optional bool disabled = 2 [\n (buf.validate.field).required = true\n ];\n // Requires a message to be set, including the empty message.\n SomeMessage msg = 4 [\n (buf.validate.field).required = true\n ];\n }\n ```\n\n All fields in the example above track presence. By default, Protovalidate\n ignores rules on those fields if no value is set. `required` ensures that\n the fields are set and valid.\n\n Fields that don\'t track presence are always validated by Protovalidate,\n whether they are set or not. It is not necessary to add `required`. It\n can be added to indicate that the field cannot be the zero value.\n\n ```proto\n syntax=\"proto3\";\n\n message FieldsWithoutPresence {\n // `string.email` always applies, even to an empty string.\n string link = 1 [\n (buf.validate.field).string.email = true\n ];\n // `repeated.min_items` always applies, even to an empty list.\n repeated string labels = 2 [\n (buf.validate.field).repeated.min_items = 1\n ];\n // `required`, for fields that don\'t track presence, indicates\n // the value of the field can\'t be the zero value.\n int32 zero_value_not_allowed = 3 [\n (buf.validate.field).required = true\n ];\n }\n ```\n\n To learn which fields track presence, see the\n [Field Presence cheat sheet](https://protobuf.dev/programming-guides/field_presence/#cheat).\n\n Note: While field rules can be applied to repeated items, map keys, and map\n values, the elements are always considered to be set. Consequently,\n specifying `repeated.items.required` is redundant.\n\n\r\n\x05\x04\x04\x02\x02\x04\x12\x04\xd2\x02\x02\n\n\r\n\x05\x04\x04\x02\x02\x05\x12\x04\xd2\x02\x0b\x0f\n\r\n\x05\x04\x04\x02\x02\x01\x12\x04\xd2\x02\x10\x18\n\r\n\x05\x04\x04\x02\x02\x03\x12\x04\xd2\x02\x1b\x1d\n\xf6\x02\n\x04\x04\x04\x02\x03\x12\x04\xdf\x02\x02\x1e\x1a\xe7\x02 Ignore validation rules on the field if its value matches the specified\n criteria. See the `Ignore` enum for details.\n\n ```proto\n message UpdateRequest {\n // The uri rule only applies if the field is not an empty string.\n string url = 1 [\n (buf.validate.field).ignore = IGNORE_IF_ZERO_VALUE,\n (buf.validate.field).string.uri = true\n ];\n }\n ```\n\n\r\n\x05\x04\x04\x02\x03\x04\x12\x04\xdf\x02\x02\n\n\r\n\x05\x04\x04\x02\x03\x06\x12\x04\xdf\x02\x0b\x11\n\r\n\x05\x04\x04\x02\x03\x01\x12\x04\xdf\x02\x12\x18\n\r\n\x05\x04\x04\x02\x03\x03\x12\x04\xdf\x02\x1b\x1d\n\x0e\n\x04\x04\x04\x08\x00\x12\x06\xe1\x02\x02\xfd\x02\x03\n\r\n\x05\x04\x04\x08\x00\x01\x12\x04\xe1\x02\x08\x0c\n\"\n\x04\x04\x04\x02\x04\x12\x04\xe3\x02\x04\x19\x1a\x14 Scalar Field Types\n\n\r\n\x05\x04\x04\x02\x04\x06\x12\x04\xe3\x02\x04\x0e\n\r\n\x05\x04\x04\x02\x04\x01\x12\x04\xe3\x02\x0f\x14\n\r\n\x05\x04\x04\x02\x04\x03\x12\x04\xe3\x02\x17\x18\n\x0c\n\x04\x04\x04\x02\x05\x12\x04\xe4\x02\x04\x1b\n\r\n\x05\x04\x04\x02\x05\x06\x12\x04\xe4\x02\x04\x0f\n\r\n\x05\x04\x04\x02\x05\x01\x12\x04\xe4\x02\x10\x16\n\r\n\x05\x04\x04\x02\x05\x03\x12\x04\xe4\x02\x19\x1a\n\x0c\n\x04\x04\x04\x02\x06\x12\x04\xe5\x02\x04\x19\n\r\n\x05\x04\x04\x02\x06\x06\x12\x04\xe5\x02\x04\x0e\n\r\n\x05\x04\x04\x02\x06\x01\x12\x04\xe5\x02\x0f\x14\n\r\n\x05\x04\x04\x02\x06\x03\x12\x04\xe5\x02\x17\x18\n\x0c\n\x04\x04\x04\x02\x07\x12\x04\xe6\x02\x04\x19\n\r\n\x05\x04\x04\x02\x07\x06\x12\x04\xe6\x02\x04\x0e\n\r\n\x05\x04\x04\x02\x07\x01\x12\x04\xe6\x02\x0f\x14\n\r\n\x05\x04\x04\x02\x07\x03\x12\x04\xe6\x02\x17\x18\n\x0c\n\x04\x04\x04\x02\x08\x12\x04\xe7\x02\x04\x1b\n\r\n\x05\x04\x04\x02\x08\x06\x12\x04\xe7\x02\x04\x0f\n\r\n\x05\x04\x04\x02\x08\x01\x12\x04\xe7\x02\x10\x16\n\r\n\x05\x04\x04\x02\x08\x03\x12\x04\xe7\x02\x19\x1a\n\x0c\n\x04\x04\x04\x02\t\x12\x04\xe8\x02\x04\x1b\n\r\n\x05\x04\x04\x02\t\x06\x12\x04\xe8\x02\x04\x0f\n\r\n\x05\x04\x04\x02\t\x01\x12\x04\xe8\x02\x10\x16\n\r\n\x05\x04\x04\x02\t\x03\x12\x04\xe8\x02\x19\x1a\n\x0c\n\x04\x04\x04\x02\n\x12\x04\xe9\x02\x04\x1b\n\r\n\x05\x04\x04\x02\n\x06\x12\x04\xe9\x02\x04\x0f\n\r\n\x05\x04\x04\x02\n\x01\x12\x04\xe9\x02\x10\x16\n\r\n\x05\x04\x04\x02\n\x03\x12\x04\xe9\x02\x19\x1a\n\x0c\n\x04\x04\x04\x02\x0b\x12\x04\xea\x02\x04\x1b\n\r\n\x05\x04\x04\x02\x0b\x06\x12\x04\xea\x02\x04\x0f\n\r\n\x05\x04\x04\x02\x0b\x01\x12\x04\xea\x02\x10\x16\n\r\n\x05\x04\x04\x02\x0b\x03\x12\x04\xea\x02\x19\x1a\n\x0c\n\x04\x04\x04\x02\x0c\x12\x04\xeb\x02\x04\x1d\n\r\n\x05\x04\x04\x02\x0c\x06\x12\x04\xeb\x02\x04\x10\n\r\n\x05\x04\x04\x02\x0c\x01\x12\x04\xeb\x02\x11\x18\n\r\n\x05\x04\x04\x02\x0c\x03\x12\x04\xeb\x02\x1b\x1c\n\x0c\n\x04\x04\x04\x02\r\x12\x04\xec\x02\x04\x1e\n\r\n\x05\x04\x04\x02\r\x06\x12\x04\xec\x02\x04\x10\n\r\n\x05\x04\x04\x02\r\x01\x12\x04\xec\x02\x11\x18\n\r\n\x05\x04\x04\x02\r\x03\x12\x04\xec\x02\x1b\x1d\n\x0c\n\x04\x04\x04\x02\x0e\x12\x04\xed\x02\x04 \n\r\n\x05\x04\x04\x02\x0e\x06\x12\x04\xed\x02\x04\x11\n\r\n\x05\x04\x04\x02\x0e\x01\x12\x04\xed\x02\x12\x1a\n\r\n\x05\x04\x04\x02\x0e\x03\x12\x04\xed\x02\x1d\x1f\n\x0c\n\x04\x04\x04\x02\x0f\x12\x04\xee\x02\x04 \n\r\n\x05\x04\x04\x02\x0f\x06\x12\x04\xee\x02\x04\x11\n\r\n\x05\x04\x04\x02\x0f\x01\x12\x04\xee\x02\x12\x1a\n\r\n\x05\x04\x04\x02\x0f\x03\x12\x04\xee\x02\x1d\x1f\n\x0c\n\x04\x04\x04\x02\x10\x12\x04\xef\x02\x04\x18\n\r\n\x05\x04\x04\x02\x10\x06\x12\x04\xef\x02\x04\r\n\r\n\x05\x04\x04\x02\x10\x01\x12\x04\xef\x02\x0e\x12\n\r\n\x05\x04\x04\x02\x10\x03\x12\x04\xef\x02\x15\x17\n\x0c\n\x04\x04\x04\x02\x11\x12\x04\xf0\x02\x04\x1c\n\r\n\x05\x04\x04\x02\x11\x06\x12\x04\xf0\x02\x04\x0f\n\r\n\x05\x04\x04\x02\x11\x01\x12\x04\xf0\x02\x10\x16\n\r\n\x05\x04\x04\x02\x11\x03\x12\x04\xf0\x02\x19\x1b\n\x0c\n\x04\x04\x04\x02\x12\x12\x04\xf1\x02\x04\x1a\n\r\n\x05\x04\x04\x02\x12\x06\x12\x04\xf1\x02\x04\x0e\n\r\n\x05\x04\x04\x02\x12\x01\x12\x04\xf1\x02\x0f\x14\n\r\n\x05\x04\x04\x02\x12\x03\x12\x04\xf1\x02\x17\x19\n#\n\x04\x04\x04\x02\x13\x12\x04\xf4\x02\x04\x18\x1a\x15 Complex Field Types\n\n\r\n\x05\x04\x04\x02\x13\x06\x12\x04\xf4\x02\x04\r\n\r\n\x05\x04\x04\x02\x13\x01\x12\x04\xf4\x02\x0e\x12\n\r\n\x05\x04\x04\x02\x13\x03\x12\x04\xf4\x02\x15\x17\n\x0c\n\x04\x04\x04\x02\x14\x12\x04\xf5\x02\x04 \n\r\n\x05\x04\x04\x02\x14\x06\x12\x04\xf5\x02\x04\x11\n\r\n\x05\x04\x04\x02\x14\x01\x12\x04\xf5\x02\x12\x1a\n\r\n\x05\x04\x04\x02\x14\x03\x12\x04\xf5\x02\x1d\x1f\n\x0c\n\x04\x04\x04\x02\x15\x12\x04\xf6\x02\x04\x16\n\r\n\x05\x04\x04\x02\x15\x06\x12\x04\xf6\x02\x04\x0c\n\r\n\x05\x04\x04\x02\x15\x01\x12\x04\xf6\x02\r\x10\n\r\n\x05\x04\x04\x02\x15\x03\x12\x04\xf6\x02\x13\x15\n&\n\x04\x04\x04\x02\x16\x12\x04\xf9\x02\x04\x16\x1a\x18 Well-Known Field Types\n\n\r\n\x05\x04\x04\x02\x16\x06\x12\x04\xf9\x02\x04\x0c\n\r\n\x05\x04\x04\x02\x16\x01\x12\x04\xf9\x02\r\x10\n\r\n\x05\x04\x04\x02\x16\x03\x12\x04\xf9\x02\x13\x15\n\x0c\n\x04\x04\x04\x02\x17\x12\x04\xfa\x02\x04 \n\r\n\x05\x04\x04\x02\x17\x06\x12\x04\xfa\x02\x04\x11\n\r\n\x05\x04\x04\x02\x17\x01\x12\x04\xfa\x02\x12\x1a\n\r\n\x05\x04\x04\x02\x17\x03\x12\x04\xfa\x02\x1d\x1f\n\x0c\n\x04\x04\x04\x02\x18\x12\x04\xfb\x02\x04#\n\r\n\x05\x04\x04\x02\x18\x06\x12\x04\xfb\x02\x04\x12\n\r\n\x05\x04\x04\x02\x18\x01\x12\x04\xfb\x02\x13\x1d\n\r\n\x05\x04\x04\x02\x18\x03\x12\x04\xfb\x02 \"\n\x0c\n\x04\x04\x04\x02\x19\x12\x04\xfc\x02\x04\"\n\r\n\x05\x04\x04\x02\x19\x06\x12\x04\xfc\x02\x04\x12\n\r\n\x05\x04\x04\x02\x19\x01\x12\x04\xfc\x02\x13\x1c\n\r\n\x05\x04\x04\x02\x19\x03\x12\x04\xfc\x02\x1f!\n\x0b\n\x03\x04\x04\t\x12\x04\xff\x02\x02\x12\n\x0c\n\x04\x04\x04\t\x00\x12\x04\xff\x02\x0b\r\n\r\n\x05\x04\x04\t\x00\x01\x12\x04\xff\x02\x0b\r\n\r\n\x05\x04\x04\t\x00\x02\x12\x04\xff\x02\x0b\r\n\x0c\n\x04\x04\x04\t\x01\x12\x04\xff\x02\x0f\x11\n\r\n\x05\x04\x04\t\x01\x01\x12\x04\xff\x02\x0f\x11\n\r\n\x05\x04\x04\t\x01\x02\x12\x04\xff\x02\x0f\x11\n\x0b\n\x03\x04\x04\n\x12\x04\x80\x03\x02%\n\x0c\n\x04\x04\x04\n\x00\x12\x04\x80\x03\x0b\x14\n\x0c\n\x04\x04\x04\n\x01\x12\x04\x80\x03\x16$\n[\n\x02\x04\x05\x12\x06\x85\x03\x00\x98\x03\x01\x1aM PredefinedRules are custom rules that can be re-used with\n multiple fields.\n\n\x0b\n\x03\x04\x05\x01\x12\x04\x85\x03\x08\x17\n\xf5\x03\n\x04\x04\x05\x02\x00\x12\x04\x94\x03\x02\x18\x1a\xe6\x03 `cel` is a repeated field used to represent a textual expression\n in the Common Expression Language (CEL) syntax. For more information,\n [see our documentation](https://buf.build/docs/protovalidate/schemas/predefined-rules/).\n\n ```proto\n message MyMessage {\n // The field `value` must be greater than 42.\n optional int32 value = 1 [(buf.validate.predefined).cel = {\n id: \"my_message.value\",\n message: \"must be greater than 42\",\n expression: \"this > 42\",\n }];\n }\n ```\n\n\r\n\x05\x04\x05\x02\x00\x04\x12\x04\x94\x03\x02\n\n\r\n\x05\x04\x05\x02\x00\x06\x12\x04\x94\x03\x0b\x0f\n\r\n\x05\x04\x05\x02\x00\x01\x12\x04\x94\x03\x10\x13\n\r\n\x05\x04\x05\x02\x00\x03\x12\x04\x94\x03\x16\x17\n\x0b\n\x03\x04\x05\t\x12\x04\x96\x03\x02\x12\n\x0c\n\x04\x04\x05\t\x00\x12\x04\x96\x03\x0b\r\n\r\n\x05\x04\x05\t\x00\x01\x12\x04\x96\x03\x0b\r\n\r\n\x05\x04\x05\t\x00\x02\x12\x04\x96\x03\x0b\r\n\x0c\n\x04\x04\x05\t\x01\x12\x04\x96\x03\x0f\x11\n\r\n\x05\x04\x05\t\x01\x01\x12\x04\x96\x03\x0f\x11\n\r\n\x05\x04\x05\t\x01\x02\x12\x04\x96\x03\x0f\x11\n\x0b\n\x03\x04\x05\n\x12\x04\x97\x03\x02%\n\x0c\n\x04\x04\x05\n\x00\x12\x04\x97\x03\x0b\x14\n\x0c\n\x04\x04\x05\n\x01\x12\x04\x97\x03\x16$\n\x82\x01\n\x02\x05\x00\x12\x06\x9c\x03\x00\xf4\x03\x01\x1at Specifies how `FieldRules.ignore` behaves, depending on the field\'s value, and\n whether the field tracks presence.\n\n\x0b\n\x03\x05\x00\x01\x12\x04\x9c\x03\x05\x0b\n\x94\n\n\x04\x05\x00\x02\x00\x12\x04\xd0\x03\x02\x19\x1a\x85\n Ignore rules if the field tracks presence and is unset. This is the default\n behavior.\n\n In proto3, only message fields, members of a Protobuf `oneof`, and fields\n with the `optional` label track presence. Consequently, the following fields\n are always validated, whether a value is set or not:\n\n ```proto\n syntax=\"proto3\";\n\n message RulesApply {\n string email = 1 [\n (buf.validate.field).string.email = true\n ];\n int32 age = 2 [\n (buf.validate.field).int32.gt = 0\n ];\n repeated string labels = 3 [\n (buf.validate.field).repeated.min_items = 1\n ];\n }\n ```\n\n In contrast, the following fields track presence, and are only validated if\n a value is set:\n\n ```proto\n syntax=\"proto3\";\n\n message RulesApplyIfSet {\n optional string email = 1 [\n (buf.validate.field).string.email = true\n ];\n oneof ref {\n string reference = 2 [\n (buf.validate.field).string.uuid = true\n ];\n string name = 3 [\n (buf.validate.field).string.min_len = 4\n ];\n }\n SomeMessage msg = 4 [\n (buf.validate.field).cel = {/* ... */}\n ];\n }\n ```\n\n To ensure that such a field is set, add the `required` rule.\n\n To learn which fields track presence, see the\n [Field Presence cheat sheet](https://protobuf.dev/programming-guides/field_presence/#cheat).\n\n\r\n\x05\x05\x00\x02\x00\x01\x12\x04\xd0\x03\x02\x14\n\r\n\x05\x05\x00\x02\x00\x02\x12\x04\xd0\x03\x17\x18\n\xc9\x05\n\x04\x05\x00\x02\x01\x12\x04\xe0\x03\x02\x1b\x1a\xba\x05 Ignore rules if the field is unset, or set to the zero value.\n\n The zero value depends on the field type:\n - For strings, the zero value is the empty string.\n - For bytes, the zero value is empty bytes.\n - For bool, the zero value is false.\n - For numeric types, the zero value is zero.\n - For enums, the zero value is the first defined enum value.\n - For repeated fields, the zero is an empty list.\n - For map fields, the zero is an empty map.\n - For message fields, absence of the message (typically a null-value) is considered zero value.\n\n For fields that track presence (e.g. adding the `optional` label in proto3),\n this a no-op and behavior is the same as the default `IGNORE_UNSPECIFIED`.\n\n\r\n\x05\x05\x00\x02\x01\x01\x12\x04\xe0\x03\x02\x16\n\r\n\x05\x05\x00\x02\x01\x02\x12\x04\xe0\x03\x19\x1a\n\x99\x03\n\x04\x05\x00\x02\x02\x12\x04\xf0\x03\x02\x14\x1a\x8a\x03 Always ignore rules, including the `required` rule.\n\n This is useful for ignoring the rules of a referenced message, or to\n temporarily ignore rules during development.\n\n ```proto\n message MyMessage {\n // The field\'s rules will always be ignored, including any validations\n // on value\'s fields.\n MyOtherMessage value = 1 [\n (buf.validate.field).ignore = IGNORE_ALWAYS\n ];\n }\n ```\n\n\r\n\x05\x05\x00\x02\x02\x01\x12\x04\xf0\x03\x02\x0f\n\r\n\x05\x05\x00\x02\x02\x02\x12\x04\xf0\x03\x12\x13\n\x0b\n\x03\x05\x00\x04\x12\x04\xf2\x03\x02\r\n\x0c\n\x04\x05\x00\x04\x00\x12\x04\xf2\x03\x0b\x0c\n\r\n\x05\x05\x00\x04\x00\x01\x12\x04\xf2\x03\x0b\x0c\n\r\n\x05\x05\x00\x04\x00\x02\x12\x04\xf2\x03\x0b\x0c\n\x0b\n\x03\x05\x00\x05\x12\x04\xf3\x03\x02`\n\x0c\n\x04\x05\x00\x05\x00\x12\x04\xf3\x03\x0b\x19\n\x0c\n\x04\x05\x00\x05\x01\x12\x04\xf3\x03\x1b+\n\x0c\n\x04\x05\x00\x05\x02\x12\x04\xf3\x03-F\n\x0c\n\x04\x05\x00\x05\x03\x12\x04\xf3\x03H_\n\xa0\x01\n\x02\x04\x06\x12\x06\xf8\x03\x00\xcd\x05\x01\x1a\x91\x01 FloatRules describes the rules applied to `float` values. These\n rules may also be applied to the `google.protobuf.FloatValue` Well-Known-Type.\n\n\x0b\n\x03\x04\x06\x01\x12\x04\xf8\x03\x08\x12\n\x9b\x02\n\x04\x04\x06\x02\x00\x12\x06\x82\x04\x02\x85\x04\x05\x1a\x8a\x02 `const` requires the field value to exactly match the specified value. If\n the field value doesn\'t match, an error message is generated.\n\n ```proto\n message MyFloat {\n // value must equal 42.0\n float value = 1 [(buf.validate.field).float.const = 42.0];\n }\n ```\n\n\r\n\x05\x04\x06\x02\x00\x04\x12\x04\x82\x04\x02\n\n\r\n\x05\x04\x06\x02\x00\x05\x12\x04\x82\x04\x0b\x10\n\r\n\x05\x04\x06\x02\x00\x01\x12\x04\x82\x04\x11\x16\n\r\n\x05\x04\x06\x02\x00\x03\x12\x04\x82\x04\x19\x1a\n\x0f\n\x05\x04\x06\x02\x00\x08\x12\x06\x82\x04\x1b\x85\x04\x04\n\x13\n\t\x04\x06\x02\x00\x08\x88\t\x01\x00\x12\x06\x82\x04\x1c\x85\x04\x03\n\x0e\n\x04\x04\x06\x08\x00\x12\x06\x87\x04\x02\xa9\x04\x03\n\r\n\x05\x04\x06\x08\x00\x01\x12\x04\x87\x04\x08\x11\n\xc8\x02\n\x04\x04\x06\x02\x01\x12\x06\x92\x04\x04\x97\x04\x07\x1a\xb7\x02 `lt` requires the field value to be less than the specified value (field <\n value). If the field value is equal to or greater than the specified value,\n an error message is generated.\n\n ```proto\n message MyFloat {\n // must be less than 10.0\n float value = 1 [(buf.validate.field).float.lt = 10.0];\n }\n ```\n\n\r\n\x05\x04\x06\x02\x01\x05\x12\x04\x92\x04\x04\t\n\r\n\x05\x04\x06\x02\x01\x01\x12\x04\x92\x04\n\x0c\n\r\n\x05\x04\x06\x02\x01\x03\x12\x04\x92\x04\x0f\x10\n\x0f\n\x05\x04\x06\x02\x01\x08\x12\x06\x92\x04\x11\x97\x04\x06\n\x13\n\t\x04\x06\x02\x01\x08\x88\t\x01\x00\x12\x06\x92\x04\x12\x97\x04\x05\n\xd7\x02\n\x04\x04\x06\x02\x02\x12\x06\xa3\x04\x04\xa8\x04\x07\x1a\xc6\x02 `lte` requires the field value to be less than or equal to the specified\n value (field <= value). If the field value is greater than the specified\n value, an error message is generated.\n\n ```proto\n message MyFloat {\n // must be less than or equal to 10.0\n float value = 1 [(buf.validate.field).float.lte = 10.0];\n }\n ```\n\n\r\n\x05\x04\x06\x02\x02\x05\x12\x04\xa3\x04\x04\t\n\r\n\x05\x04\x06\x02\x02\x01\x12\x04\xa3\x04\n\r\n\r\n\x05\x04\x06\x02\x02\x03\x12\x04\xa3\x04\x10\x11\n\x0f\n\x05\x04\x06\x02\x02\x08\x12\x06\xa3\x04\x12\xa8\x04\x06\n\x13\n\t\x04\x06\x02\x02\x08\x88\t\x01\x00\x12\x06\xa3\x04\x13\xa8\x04\x05\n\x0e\n\x04\x04\x06\x08\x01\x12\x06\xab\x04\x02\x91\x05\x03\n\r\n\x05\x04\x06\x08\x01\x01\x12\x04\xab\x04\x08\x14\n\x80\x06\n\x04\x04\x06\x02\x03\x12\x06\xbe\x04\x04\xdd\x04\x06\x1a\xef\x05 `gt` requires the field value to be greater than the specified value\n (exclusive). If the value of `gt` is larger than a specified `lt` or\n `lte`, the range is reversed, and the field value must be outside the\n specified range. If the field value doesn\'t meet the required conditions,\n an error message is generated.\n\n ```proto\n message MyFloat {\n // must be greater than 5.0 [float.gt]\n float value = 1 [(buf.validate.field).float.gt = 5.0];\n\n // must be greater than 5 and less than 10.0 [float.gt_lt]\n float other_value = 2 [(buf.validate.field).float = { gt: 5.0, lt: 10.0 }];\n\n // must be greater than 10 or less than 5.0 [float.gt_lt_exclusive]\n float another_value = 3 [(buf.validate.field).float = { gt: 10.0, lt: 5.0 }];\n }\n ```\n\n\r\n\x05\x04\x06\x02\x03\x05\x12\x04\xbe\x04\x04\t\n\r\n\x05\x04\x06\x02\x03\x01\x12\x04\xbe\x04\n\x0c\n\r\n\x05\x04\x06\x02\x03\x03\x12\x04\xbe\x04\x0f\x10\n\x0f\n\x05\x04\x06\x02\x03\x08\x12\x06\xbe\x04\x11\xdd\x04\x05\n\x13\n\t\x04\x06\x02\x03\x08\x88\t\x01\x00\x12\x06\xbf\x04\x06\xc4\x04\x07\n\x13\n\t\x04\x06\x02\x03\x08\x88\t\x01\x01\x12\x06\xc5\x04\x06\xca\x04\x07\n\x13\n\t\x04\x06\x02\x03\x08\x88\t\x01\x02\x12\x06\xcb\x04\x06\xd0\x04\x07\n\x13\n\t\x04\x06\x02\x03\x08\x88\t\x01\x03\x12\x06\xd1\x04\x06\xd6\x04\x07\n\x13\n\t\x04\x06\x02\x03\x08\x88\t\x01\x04\x12\x06\xd7\x04\x06\xdc\x04\x07\n\xbc\x06\n\x04\x04\x06\x02\x04\x12\x06\xf1\x04\x04\x90\x05\x06\x1a\xab\x06 `gte` requires the field value to be greater than or equal to the specified\n value (exclusive). If the value of `gte` is larger than a specified `lt`\n or `lte`, the range is reversed, and the field value must be outside the\n specified range. If the field value doesn\'t meet the required conditions,\n an error message is generated.\n\n ```proto\n message MyFloat {\n // must be greater than or equal to 5.0 [float.gte]\n float value = 1 [(buf.validate.field).float.gte = 5.0];\n\n // must be greater than or equal to 5.0 and less than 10.0 [float.gte_lt]\n float other_value = 2 [(buf.validate.field).float = { gte: 5.0, lt: 10.0 }];\n\n // must be greater than or equal to 10.0 or less than 5.0 [float.gte_lt_exclusive]\n float another_value = 3 [(buf.validate.field).float = { gte: 10.0, lt: 5.0 }];\n }\n ```\n\n\r\n\x05\x04\x06\x02\x04\x05\x12\x04\xf1\x04\x04\t\n\r\n\x05\x04\x06\x02\x04\x01\x12\x04\xf1\x04\n\r\n\r\n\x05\x04\x06\x02\x04\x03\x12\x04\xf1\x04\x10\x11\n\x0f\n\x05\x04\x06\x02\x04\x08\x12\x06\xf1\x04\x12\x90\x05\x05\n\x13\n\t\x04\x06\x02\x04\x08\x88\t\x01\x00\x12\x06\xf2\x04\x06\xf7\x04\x07\n\x13\n\t\x04\x06\x02\x04\x08\x88\t\x01\x01\x12\x06\xf8\x04\x06\xfd\x04\x07\n\x13\n\t\x04\x06\x02\x04\x08\x88\t\x01\x02\x12\x06\xfe\x04\x06\x83\x05\x07\n\x13\n\t\x04\x06\x02\x04\x08\x88\t\x01\x03\x12\x06\x84\x05\x06\x89\x05\x07\n\x13\n\t\x04\x06\x02\x04\x08\x88\t\x01\x04\x12\x06\x8a\x05\x06\x8f\x05\x07\n\xca\x02\n\x04\x04\x06\x02\x05\x12\x06\x9d\x05\x02\xa0\x05\x05\x1a\xb9\x02 `in` requires the field value to be equal to one of the specified values.\n If the field value isn\'t one of the specified values, an error message\n is generated.\n\n ```proto\n message MyFloat {\n // must be in list [1.0, 2.0, 3.0]\n float value = 1 [(buf.validate.field).float = { in: [1.0, 2.0, 3.0] }];\n }\n ```\n\n\r\n\x05\x04\x06\x02\x05\x04\x12\x04\x9d\x05\x02\n\n\r\n\x05\x04\x06\x02\x05\x05\x12\x04\x9d\x05\x0b\x10\n\r\n\x05\x04\x06\x02\x05\x01\x12\x04\x9d\x05\x11\x13\n\r\n\x05\x04\x06\x02\x05\x03\x12\x04\x9d\x05\x16\x17\n\x0f\n\x05\x04\x06\x02\x05\x08\x12\x06\x9d\x05\x18\xa0\x05\x04\n\x13\n\t\x04\x06\x02\x05\x08\x88\t\x01\x00\x12\x06\x9d\x05\x19\xa0\x05\x03\n\xdd\x02\n\x04\x04\x06\x02\x06\x12\x06\xac\x05\x02\xaf\x05\x05\x1a\xcc\x02 `not_in` requires the field value to not be equal to any of the specified\n values. If the field value is one of the specified values, an error\n message is generated.\n\n ```proto\n message MyFloat {\n // value must not be in list [1.0, 2.0, 3.0]\n float value = 1 [(buf.validate.field).float = { not_in: [1.0, 2.0, 3.0] }];\n }\n ```\n\n\r\n\x05\x04\x06\x02\x06\x04\x12\x04\xac\x05\x02\n\n\r\n\x05\x04\x06\x02\x06\x05\x12\x04\xac\x05\x0b\x10\n\r\n\x05\x04\x06\x02\x06\x01\x12\x04\xac\x05\x11\x17\n\r\n\x05\x04\x06\x02\x06\x03\x12\x04\xac\x05\x1a\x1b\n\x0f\n\x05\x04\x06\x02\x06\x08\x12\x06\xac\x05\x1c\xaf\x05\x04\n\x13\n\t\x04\x06\x02\x06\x08\x88\t\x01\x00\x12\x06\xac\x05\x1d\xaf\x05\x03\n\x88\x01\n\x04\x04\x06\x02\x07\x12\x06\xb3\x05\x02\xb6\x05\x05\x1ax `finite` requires the field value to be finite. If the field value is\n infinite or NaN, an error message is generated.\n\n\r\n\x05\x04\x06\x02\x07\x04\x12\x04\xb3\x05\x02\n\n\r\n\x05\x04\x06\x02\x07\x05\x12\x04\xb3\x05\x0b\x0f\n\r\n\x05\x04\x06\x02\x07\x01\x12\x04\xb3\x05\x10\x16\n\r\n\x05\x04\x06\x02\x07\x03\x12\x04\xb3\x05\x19\x1a\n\x0f\n\x05\x04\x06\x02\x07\x08\x12\x06\xb3\x05\x1b\xb6\x05\x04\n\x13\n\t\x04\x06\x02\x07\x08\x88\t\x01\x00\x12\x06\xb3\x05\x1c\xb6\x05\x03\n\x86\x03\n\x04\x04\x06\x02\x08\x12\x06\xc4\x05\x02\xc7\x05\x05\x1a\xf5\x02 `example` specifies values that the field may have. These values SHOULD\n conform to other rules. `example` values will not impact validation\n but may be used as helpful guidance on how to populate the given field.\n\n ```proto\n message MyFloat {\n float value = 1 [\n (buf.validate.field).float.example = 1.0,\n (buf.validate.field).float.example = inf\n ];\n }\n ```\n\n\r\n\x05\x04\x06\x02\x08\x04\x12\x04\xc4\x05\x02\n\n\r\n\x05\x04\x06\x02\x08\x05\x12\x04\xc4\x05\x0b\x10\n\r\n\x05\x04\x06\x02\x08\x01\x12\x04\xc4\x05\x11\x18\n\r\n\x05\x04\x06\x02\x08\x03\x12\x04\xc4\x05\x1b\x1c\n\x0f\n\x05\x04\x06\x02\x08\x08\x12\x06\xc4\x05\x1d\xc7\x05\x04\n\x13\n\t\x04\x06\x02\x08\x08\x88\t\x01\x00\x12\x06\xc4\x05\x1e\xc7\x05\x03\n\xb8\x01\n\x03\x04\x06\x05\x12\x04\xcc\x05\x02\x19\x1a\xaa\x01 Extension fields that have the (buf.validate.predefined) option set\n will be treated as predefined field rules.\n See https://protovalidate.com/schemas/predefined-rules/\n\n\x0c\n\x04\x04\x06\x05\x00\x12\x04\xcc\x05\r\x18\n\r\n\x05\x04\x06\x05\x00\x01\x12\x04\xcc\x05\r\x11\n\r\n\x05\x04\x06\x05\x00\x02\x12\x04\xcc\x05\x15\x18\n\xa3\x01\n\x02\x04\x07\x12\x06\xd1\x05\x00\xa3\x07\x01\x1a\x94\x01 DoubleRules describes the rules applied to `double` values. These\n rules may also be applied to the `google.protobuf.DoubleValue` Well-Known-Type.\n\n\x0b\n\x03\x04\x07\x01\x12\x04\xd1\x05\x08\x13\n\x9e\x02\n\x04\x04\x07\x02\x00\x12\x06\xdb\x05\x02\xde\x05\x05\x1a\x8d\x02 `const` requires the field value to exactly match the specified value. If\n the field value doesn\'t match, an error message is generated.\n\n ```proto\n message MyDouble {\n // value must equal 42.0\n double value = 1 [(buf.validate.field).double.const = 42.0];\n }\n ```\n\n\r\n\x05\x04\x07\x02\x00\x04\x12\x04\xdb\x05\x02\n\n\r\n\x05\x04\x07\x02\x00\x05\x12\x04\xdb\x05\x0b\x11\n\r\n\x05\x04\x07\x02\x00\x01\x12\x04\xdb\x05\x12\x17\n\r\n\x05\x04\x07\x02\x00\x03\x12\x04\xdb\x05\x1a\x1b\n\x0f\n\x05\x04\x07\x02\x00\x08\x12\x06\xdb\x05\x1c\xde\x05\x04\n\x13\n\t\x04\x07\x02\x00\x08\x88\t\x01\x00\x12\x06\xdb\x05\x1d\xde\x05\x03\n\x0e\n\x04\x04\x07\x08\x00\x12\x06\xdf\x05\x02\x81\x06\x03\n\r\n\x05\x04\x07\x08\x00\x01\x12\x04\xdf\x05\x08\x11\n\xcb\x02\n\x04\x04\x07\x02\x01\x12\x06\xea\x05\x04\xef\x05\x07\x1a\xba\x02 `lt` requires the field value to be less than the specified value (field <\n value). If the field value is equal to or greater than the specified\n value, an error message is generated.\n\n ```proto\n message MyDouble {\n // must be less than 10.0\n double value = 1 [(buf.validate.field).double.lt = 10.0];\n }\n ```\n\n\r\n\x05\x04\x07\x02\x01\x05\x12\x04\xea\x05\x04\n\n\r\n\x05\x04\x07\x02\x01\x01\x12\x04\xea\x05\x0b\r\n\r\n\x05\x04\x07\x02\x01\x03\x12\x04\xea\x05\x10\x11\n\x0f\n\x05\x04\x07\x02\x01\x08\x12\x06\xea\x05\x12\xef\x05\x06\n\x13\n\t\x04\x07\x02\x01\x08\x88\t\x01\x00\x12\x06\xea\x05\x13\xef\x05\x05\n\xda\x02\n\x04\x04\x07\x02\x02\x12\x06\xfb\x05\x04\x80\x06\x07\x1a\xc9\x02 `lte` requires the field value to be less than or equal to the specified value\n (field <= value). If the field value is greater than the specified value,\n an error message is generated.\n\n ```proto\n message MyDouble {\n // must be less than or equal to 10.0\n double value = 1 [(buf.validate.field).double.lte = 10.0];\n }\n ```\n\n\r\n\x05\x04\x07\x02\x02\x05\x12\x04\xfb\x05\x04\n\n\r\n\x05\x04\x07\x02\x02\x01\x12\x04\xfb\x05\x0b\x0e\n\r\n\x05\x04\x07\x02\x02\x03\x12\x04\xfb\x05\x11\x12\n\x0f\n\x05\x04\x07\x02\x02\x08\x12\x06\xfb\x05\x13\x80\x06\x06\n\x13\n\t\x04\x07\x02\x02\x08\x88\t\x01\x00\x12\x06\xfb\x05\x14\x80\x06\x05\n\x0e\n\x04\x04\x07\x08\x01\x12\x06\x82\x06\x02\xe8\x06\x03\n\r\n\x05\x04\x07\x08\x01\x01\x12\x04\x82\x06\x08\x14\n\x8a\x06\n\x04\x04\x07\x02\x03\x12\x06\x95\x06\x04\xb4\x06\x06\x1a\xf9\x05 `gt` requires the field value to be greater than the specified value\n (exclusive). If the value of `gt` is larger than a specified `lt` or `lte`,\n the range is reversed, and the field value must be outside the specified\n range. If the field value doesn\'t meet the required conditions, an error\n message is generated.\n\n ```proto\n message MyDouble {\n // must be greater than 5.0 [double.gt]\n double value = 1 [(buf.validate.field).double.gt = 5.0];\n\n // must be greater than 5 and less than 10.0 [double.gt_lt]\n double other_value = 2 [(buf.validate.field).double = { gt: 5.0, lt: 10.0 }];\n\n // must be greater than 10 or less than 5.0 [double.gt_lt_exclusive]\n double another_value = 3 [(buf.validate.field).double = { gt: 10.0, lt: 5.0 }];\n }\n ```\n\n\r\n\x05\x04\x07\x02\x03\x05\x12\x04\x95\x06\x04\n\n\r\n\x05\x04\x07\x02\x03\x01\x12\x04\x95\x06\x0b\r\n\r\n\x05\x04\x07\x02\x03\x03\x12\x04\x95\x06\x10\x11\n\x0f\n\x05\x04\x07\x02\x03\x08\x12\x06\x95\x06\x12\xb4\x06\x05\n\x13\n\t\x04\x07\x02\x03\x08\x88\t\x01\x00\x12\x06\x96\x06\x06\x9b\x06\x07\n\x13\n\t\x04\x07\x02\x03\x08\x88\t\x01\x01\x12\x06\x9c\x06\x06\xa1\x06\x07\n\x13\n\t\x04\x07\x02\x03\x08\x88\t\x01\x02\x12\x06\xa2\x06\x06\xa7\x06\x07\n\x13\n\t\x04\x07\x02\x03\x08\x88\t\x01\x03\x12\x06\xa8\x06\x06\xad\x06\x07\n\x13\n\t\x04\x07\x02\x03\x08\x88\t\x01\x04\x12\x06\xae\x06\x06\xb3\x06\x07\n\xc6\x06\n\x04\x04\x07\x02\x04\x12\x06\xc8\x06\x04\xe7\x06\x06\x1a\xb5\x06 `gte` requires the field value to be greater than or equal to the specified\n value (exclusive). If the value of `gte` is larger than a specified `lt` or\n `lte`, the range is reversed, and the field value must be outside the\n specified range. If the field value doesn\'t meet the required conditions,\n an error message is generated.\n\n ```proto\n message MyDouble {\n // must be greater than or equal to 5.0 [double.gte]\n double value = 1 [(buf.validate.field).double.gte = 5.0];\n\n // must be greater than or equal to 5.0 and less than 10.0 [double.gte_lt]\n double other_value = 2 [(buf.validate.field).double = { gte: 5.0, lt: 10.0 }];\n\n // must be greater than or equal to 10.0 or less than 5.0 [double.gte_lt_exclusive]\n double another_value = 3 [(buf.validate.field).double = { gte: 10.0, lt: 5.0 }];\n }\n ```\n\n\r\n\x05\x04\x07\x02\x04\x05\x12\x04\xc8\x06\x04\n\n\r\n\x05\x04\x07\x02\x04\x01\x12\x04\xc8\x06\x0b\x0e\n\r\n\x05\x04\x07\x02\x04\x03\x12\x04\xc8\x06\x11\x12\n\x0f\n\x05\x04\x07\x02\x04\x08\x12\x06\xc8\x06\x13\xe7\x06\x05\n\x13\n\t\x04\x07\x02\x04\x08\x88\t\x01\x00\x12\x06\xc9\x06\x06\xce\x06\x07\n\x13\n\t\x04\x07\x02\x04\x08\x88\t\x01\x01\x12\x06\xcf\x06\x06\xd4\x06\x07\n\x13\n\t\x04\x07\x02\x04\x08\x88\t\x01\x02\x12\x06\xd5\x06\x06\xda\x06\x07\n\x13\n\t\x04\x07\x02\x04\x08\x88\t\x01\x03\x12\x06\xdb\x06\x06\xe0\x06\x07\n\x13\n\t\x04\x07\x02\x04\x08\x88\t\x01\x04\x12\x06\xe1\x06\x06\xe6\x06\x07\n\xcd\x02\n\x04\x04\x07\x02\x05\x12\x06\xf3\x06\x02\xf6\x06\x05\x1a\xbc\x02 `in` requires the field value to be equal to one of the specified values.\n If the field value isn\'t one of the specified values, an error message is\n generated.\n\n ```proto\n message MyDouble {\n // must be in list [1.0, 2.0, 3.0]\n double value = 1 [(buf.validate.field).double = { in: [1.0, 2.0, 3.0] }];\n }\n ```\n\n\r\n\x05\x04\x07\x02\x05\x04\x12\x04\xf3\x06\x02\n\n\r\n\x05\x04\x07\x02\x05\x05\x12\x04\xf3\x06\x0b\x11\n\r\n\x05\x04\x07\x02\x05\x01\x12\x04\xf3\x06\x12\x14\n\r\n\x05\x04\x07\x02\x05\x03\x12\x04\xf3\x06\x17\x18\n\x0f\n\x05\x04\x07\x02\x05\x08\x12\x06\xf3\x06\x19\xf6\x06\x04\n\x13\n\t\x04\x07\x02\x05\x08\x88\t\x01\x00\x12\x06\xf3\x06\x1a\xf6\x06\x03\n\xe0\x02\n\x04\x04\x07\x02\x06\x12\x06\x82\x07\x02\x85\x07\x05\x1a\xcf\x02 `not_in` requires the field value to not be equal to any of the specified\n values. If the field value is one of the specified values, an error\n message is generated.\n\n ```proto\n message MyDouble {\n // value must not be in list [1.0, 2.0, 3.0]\n double value = 1 [(buf.validate.field).double = { not_in: [1.0, 2.0, 3.0] }];\n }\n ```\n\n\r\n\x05\x04\x07\x02\x06\x04\x12\x04\x82\x07\x02\n\n\r\n\x05\x04\x07\x02\x06\x05\x12\x04\x82\x07\x0b\x11\n\r\n\x05\x04\x07\x02\x06\x01\x12\x04\x82\x07\x12\x18\n\r\n\x05\x04\x07\x02\x06\x03\x12\x04\x82\x07\x1b\x1c\n\x0f\n\x05\x04\x07\x02\x06\x08\x12\x06\x82\x07\x1d\x85\x07\x04\n\x13\n\t\x04\x07\x02\x06\x08\x88\t\x01\x00\x12\x06\x82\x07\x1e\x85\x07\x03\n\x88\x01\n\x04\x04\x07\x02\x07\x12\x06\x89\x07\x02\x8c\x07\x05\x1ax `finite` requires the field value to be finite. If the field value is\n infinite or NaN, an error message is generated.\n\n\r\n\x05\x04\x07\x02\x07\x04\x12\x04\x89\x07\x02\n\n\r\n\x05\x04\x07\x02\x07\x05\x12\x04\x89\x07\x0b\x0f\n\r\n\x05\x04\x07\x02\x07\x01\x12\x04\x89\x07\x10\x16\n\r\n\x05\x04\x07\x02\x07\x03\x12\x04\x89\x07\x19\x1a\n\x0f\n\x05\x04\x07\x02\x07\x08\x12\x06\x89\x07\x1b\x8c\x07\x04\n\x13\n\t\x04\x07\x02\x07\x08\x88\t\x01\x00\x12\x06\x89\x07\x1c\x8c\x07\x03\n\x8a\x03\n\x04\x04\x07\x02\x08\x12\x06\x9a\x07\x02\x9d\x07\x05\x1a\xf9\x02 `example` specifies values that the field may have. These values SHOULD\n conform to other rules. `example` values will not impact validation\n but may be used as helpful guidance on how to populate the given field.\n\n ```proto\n message MyDouble {\n double value = 1 [\n (buf.validate.field).double.example = 1.0,\n (buf.validate.field).double.example = inf\n ];\n }\n ```\n\n\r\n\x05\x04\x07\x02\x08\x04\x12\x04\x9a\x07\x02\n\n\r\n\x05\x04\x07\x02\x08\x05\x12\x04\x9a\x07\x0b\x11\n\r\n\x05\x04\x07\x02\x08\x01\x12\x04\x9a\x07\x12\x19\n\r\n\x05\x04\x07\x02\x08\x03\x12\x04\x9a\x07\x1c\x1d\n\x0f\n\x05\x04\x07\x02\x08\x08\x12\x06\x9a\x07\x1e\x9d\x07\x04\n\x13\n\t\x04\x07\x02\x08\x08\x88\t\x01\x00\x12\x06\x9a\x07\x1f\x9d\x07\x03\n\xb8\x01\n\x03\x04\x07\x05\x12\x04\xa2\x07\x02\x19\x1a\xaa\x01 Extension fields that have the (buf.validate.predefined) option set\n will be treated as predefined field rules.\n See https://protovalidate.com/schemas/predefined-rules/\n\n\x0c\n\x04\x04\x07\x05\x00\x12\x04\xa2\x07\r\x18\n\r\n\x05\x04\x07\x05\x00\x01\x12\x04\xa2\x07\r\x11\n\r\n\x05\x04\x07\x05\x00\x02\x12\x04\xa2\x07\x15\x18\n\xa0\x01\n\x02\x04\x08\x12\x06\xa7\x07\x00\xf3\x08\x01\x1a\x91\x01 Int32Rules describes the rules applied to `int32` values. These\n rules may also be applied to the `google.protobuf.Int32Value` Well-Known-Type.\n\n\x0b\n\x03\x04\x08\x01\x12\x04\xa7\x07\x08\x12\n\x97\x02\n\x04\x04\x08\x02\x00\x12\x06\xb1\x07\x02\xb4\x07\x05\x1a\x86\x02 `const` requires the field value to exactly match the specified value. If\n the field value doesn\'t match, an error message is generated.\n\n ```proto\n message MyInt32 {\n // value must equal 42\n int32 value = 1 [(buf.validate.field).int32.const = 42];\n }\n ```\n\n\r\n\x05\x04\x08\x02\x00\x04\x12\x04\xb1\x07\x02\n\n\r\n\x05\x04\x08\x02\x00\x05\x12\x04\xb1\x07\x0b\x10\n\r\n\x05\x04\x08\x02\x00\x01\x12\x04\xb1\x07\x11\x16\n\r\n\x05\x04\x08\x02\x00\x03\x12\x04\xb1\x07\x19\x1a\n\x0f\n\x05\x04\x08\x02\x00\x08\x12\x06\xb1\x07\x1b\xb4\x07\x04\n\x13\n\t\x04\x08\x02\x00\x08\x88\t\x01\x00\x12\x06\xb1\x07\x1c\xb4\x07\x03\n\x0e\n\x04\x04\x08\x08\x00\x12\x06\xb5\x07\x02\xd7\x07\x03\n\r\n\x05\x04\x08\x08\x00\x01\x12\x04\xb5\x07\x08\x11\n\xc4\x02\n\x04\x04\x08\x02\x01\x12\x06\xc0\x07\x04\xc5\x07\x07\x1a\xb3\x02 `lt` requires the field value to be less than the specified value (field\n < value). If the field value is equal to or greater than the specified\n value, an error message is generated.\n\n ```proto\n message MyInt32 {\n // must be less than 10\n int32 value = 1 [(buf.validate.field).int32.lt = 10];\n }\n ```\n\n\r\n\x05\x04\x08\x02\x01\x05\x12\x04\xc0\x07\x04\t\n\r\n\x05\x04\x08\x02\x01\x01\x12\x04\xc0\x07\n\x0c\n\r\n\x05\x04\x08\x02\x01\x03\x12\x04\xc0\x07\x0f\x10\n\x0f\n\x05\x04\x08\x02\x01\x08\x12\x06\xc0\x07\x11\xc5\x07\x06\n\x13\n\t\x04\x08\x02\x01\x08\x88\t\x01\x00\x12\x06\xc0\x07\x12\xc5\x07\x05\n\xd3\x02\n\x04\x04\x08\x02\x02\x12\x06\xd1\x07\x04\xd6\x07\x07\x1a\xc2\x02 `lte` requires the field value to be less than or equal to the specified\n value (field <= value). If the field value is greater than the specified\n value, an error message is generated.\n\n ```proto\n message MyInt32 {\n // must be less than or equal to 10\n int32 value = 1 [(buf.validate.field).int32.lte = 10];\n }\n ```\n\n\r\n\x05\x04\x08\x02\x02\x05\x12\x04\xd1\x07\x04\t\n\r\n\x05\x04\x08\x02\x02\x01\x12\x04\xd1\x07\n\r\n\r\n\x05\x04\x08\x02\x02\x03\x12\x04\xd1\x07\x10\x11\n\x0f\n\x05\x04\x08\x02\x02\x08\x12\x06\xd1\x07\x12\xd6\x07\x06\n\x13\n\t\x04\x08\x02\x02\x08\x88\t\x01\x00\x12\x06\xd1\x07\x13\xd6\x07\x05\n\x0e\n\x04\x04\x08\x08\x01\x12\x06\xd8\x07\x02\xbe\x08\x03\n\r\n\x05\x04\x08\x08\x01\x01\x12\x04\xd8\x07\x08\x14\n\xf0\x05\n\x04\x04\x08\x02\x03\x12\x06\xeb\x07\x04\x8a\x08\x06\x1a\xdf\x05 `gt` requires the field value to be greater than the specified value\n (exclusive). If the value of `gt` is larger than a specified `lt` or\n `lte`, the range is reversed, and the field value must be outside the\n specified range. If the field value doesn\'t meet the required conditions,\n an error message is generated.\n\n ```proto\n message MyInt32 {\n // must be greater than 5 [int32.gt]\n int32 value = 1 [(buf.validate.field).int32.gt = 5];\n\n // must be greater than 5 and less than 10 [int32.gt_lt]\n int32 other_value = 2 [(buf.validate.field).int32 = { gt: 5, lt: 10 }];\n\n // must be greater than 10 or less than 5 [int32.gt_lt_exclusive]\n int32 another_value = 3 [(buf.validate.field).int32 = { gt: 10, lt: 5 }];\n }\n ```\n\n\r\n\x05\x04\x08\x02\x03\x05\x12\x04\xeb\x07\x04\t\n\r\n\x05\x04\x08\x02\x03\x01\x12\x04\xeb\x07\n\x0c\n\r\n\x05\x04\x08\x02\x03\x03\x12\x04\xeb\x07\x0f\x10\n\x0f\n\x05\x04\x08\x02\x03\x08\x12\x06\xeb\x07\x11\x8a\x08\x05\n\x13\n\t\x04\x08\x02\x03\x08\x88\t\x01\x00\x12\x06\xec\x07\x06\xf1\x07\x07\n\x13\n\t\x04\x08\x02\x03\x08\x88\t\x01\x01\x12\x06\xf2\x07\x06\xf7\x07\x07\n\x13\n\t\x04\x08\x02\x03\x08\x88\t\x01\x02\x12\x06\xf8\x07\x06\xfd\x07\x07\n\x13\n\t\x04\x08\x02\x03\x08\x88\t\x01\x03\x12\x06\xfe\x07\x06\x83\x08\x07\n\x13\n\t\x04\x08\x02\x03\x08\x88\t\x01\x04\x12\x06\x84\x08\x06\x89\x08\x07\n\xa8\x06\n\x04\x04\x08\x02\x04\x12\x06\x9e\x08\x04\xbd\x08\x06\x1a\x97\x06 `gte` requires the field value to be greater than or equal to the specified value\n (exclusive). If the value of `gte` is larger than a specified `lt` or\n `lte`, the range is reversed, and the field value must be outside the\n specified range. If the field value doesn\'t meet the required conditions,\n an error message is generated.\n\n ```proto\n message MyInt32 {\n // must be greater than or equal to 5 [int32.gte]\n int32 value = 1 [(buf.validate.field).int32.gte = 5];\n\n // must be greater than or equal to 5 and less than 10 [int32.gte_lt]\n int32 other_value = 2 [(buf.validate.field).int32 = { gte: 5, lt: 10 }];\n\n // must be greater than or equal to 10 or less than 5 [int32.gte_lt_exclusive]\n int32 another_value = 3 [(buf.validate.field).int32 = { gte: 10, lt: 5 }];\n }\n ```\n\n\r\n\x05\x04\x08\x02\x04\x05\x12\x04\x9e\x08\x04\t\n\r\n\x05\x04\x08\x02\x04\x01\x12\x04\x9e\x08\n\r\n\r\n\x05\x04\x08\x02\x04\x03\x12\x04\x9e\x08\x10\x11\n\x0f\n\x05\x04\x08\x02\x04\x08\x12\x06\x9e\x08\x12\xbd\x08\x05\n\x13\n\t\x04\x08\x02\x04\x08\x88\t\x01\x00\x12\x06\x9f\x08\x06\xa4\x08\x07\n\x13\n\t\x04\x08\x02\x04\x08\x88\t\x01\x01\x12\x06\xa5\x08\x06\xaa\x08\x07\n\x13\n\t\x04\x08\x02\x04\x08\x88\t\x01\x02\x12\x06\xab\x08\x06\xb0\x08\x07\n\x13\n\t\x04\x08\x02\x04\x08\x88\t\x01\x03\x12\x06\xb1\x08\x06\xb6\x08\x07\n\x13\n\t\x04\x08\x02\x04\x08\x88\t\x01\x04\x12\x06\xb7\x08\x06\xbc\x08\x07\n\xbe\x02\n\x04\x04\x08\x02\x05\x12\x06\xca\x08\x02\xcd\x08\x05\x1a\xad\x02 `in` requires the field value to be equal to one of the specified values.\n If the field value isn\'t one of the specified values, an error message is\n generated.\n\n ```proto\n message MyInt32 {\n // must be in list [1, 2, 3]\n int32 value = 1 [(buf.validate.field).int32 = { in: [1, 2, 3] }];\n }\n ```\n\n\r\n\x05\x04\x08\x02\x05\x04\x12\x04\xca\x08\x02\n\n\r\n\x05\x04\x08\x02\x05\x05\x12\x04\xca\x08\x0b\x10\n\r\n\x05\x04\x08\x02\x05\x01\x12\x04\xca\x08\x11\x13\n\r\n\x05\x04\x08\x02\x05\x03\x12\x04\xca\x08\x16\x17\n\x0f\n\x05\x04\x08\x02\x05\x08\x12\x06\xca\x08\x18\xcd\x08\x04\n\x13\n\t\x04\x08\x02\x05\x08\x88\t\x01\x00\x12\x06\xca\x08\x19\xcd\x08\x03\n\xd1\x02\n\x04\x04\x08\x02\x06\x12\x06\xd9\x08\x02\xdc\x08\x05\x1a\xc0\x02 `not_in` requires the field value to not be equal to any of the specified\n values. If the field value is one of the specified values, an error message\n is generated.\n\n ```proto\n message MyInt32 {\n // value must not be in list [1, 2, 3]\n int32 value = 1 [(buf.validate.field).int32 = { not_in: [1, 2, 3] }];\n }\n ```\n\n\r\n\x05\x04\x08\x02\x06\x04\x12\x04\xd9\x08\x02\n\n\r\n\x05\x04\x08\x02\x06\x05\x12\x04\xd9\x08\x0b\x10\n\r\n\x05\x04\x08\x02\x06\x01\x12\x04\xd9\x08\x11\x17\n\r\n\x05\x04\x08\x02\x06\x03\x12\x04\xd9\x08\x1a\x1b\n\x0f\n\x05\x04\x08\x02\x06\x08\x12\x06\xd9\x08\x1c\xdc\x08\x04\n\x13\n\t\x04\x08\x02\x06\x08\x88\t\x01\x00\x12\x06\xd9\x08\x1d\xdc\x08\x03\n\x84\x03\n\x04\x04\x08\x02\x07\x12\x06\xea\x08\x02\xed\x08\x05\x1a\xf3\x02 `example` specifies values that the field may have. These values SHOULD\n conform to other rules. `example` values will not impact validation\n but may be used as helpful guidance on how to populate the given field.\n\n ```proto\n message MyInt32 {\n int32 value = 1 [\n (buf.validate.field).int32.example = 1,\n (buf.validate.field).int32.example = -10\n ];\n }\n ```\n\n\r\n\x05\x04\x08\x02\x07\x04\x12\x04\xea\x08\x02\n\n\r\n\x05\x04\x08\x02\x07\x05\x12\x04\xea\x08\x0b\x10\n\r\n\x05\x04\x08\x02\x07\x01\x12\x04\xea\x08\x11\x18\n\r\n\x05\x04\x08\x02\x07\x03\x12\x04\xea\x08\x1b\x1c\n\x0f\n\x05\x04\x08\x02\x07\x08\x12\x06\xea\x08\x1d\xed\x08\x04\n\x13\n\t\x04\x08\x02\x07\x08\x88\t\x01\x00\x12\x06\xea\x08\x1e\xed\x08\x03\n\xb8\x01\n\x03\x04\x08\x05\x12\x04\xf2\x08\x02\x19\x1a\xaa\x01 Extension fields that have the (buf.validate.predefined) option set\n will be treated as predefined field rules.\n See https://protovalidate.com/schemas/predefined-rules/\n\n\x0c\n\x04\x04\x08\x05\x00\x12\x04\xf2\x08\r\x18\n\r\n\x05\x04\x08\x05\x00\x01\x12\x04\xf2\x08\r\x11\n\r\n\x05\x04\x08\x05\x00\x02\x12\x04\xf2\x08\x15\x18\n\xa0\x01\n\x02\x04\t\x12\x06\xf7\x08\x00\xc3\n\x01\x1a\x91\x01 Int64Rules describes the rules applied to `int64` values. These\n rules may also be applied to the `google.protobuf.Int64Value` Well-Known-Type.\n\n\x0b\n\x03\x04\t\x01\x12\x04\xf7\x08\x08\x12\n\x97\x02\n\x04\x04\t\x02\x00\x12\x06\x81\t\x02\x84\t\x05\x1a\x86\x02 `const` requires the field value to exactly match the specified value. If\n the field value doesn\'t match, an error message is generated.\n\n ```proto\n message MyInt64 {\n // value must equal 42\n int64 value = 1 [(buf.validate.field).int64.const = 42];\n }\n ```\n\n\r\n\x05\x04\t\x02\x00\x04\x12\x04\x81\t\x02\n\n\r\n\x05\x04\t\x02\x00\x05\x12\x04\x81\t\x0b\x10\n\r\n\x05\x04\t\x02\x00\x01\x12\x04\x81\t\x11\x16\n\r\n\x05\x04\t\x02\x00\x03\x12\x04\x81\t\x19\x1a\n\x0f\n\x05\x04\t\x02\x00\x08\x12\x06\x81\t\x1b\x84\t\x04\n\x13\n\t\x04\t\x02\x00\x08\x88\t\x01\x00\x12\x06\x81\t\x1c\x84\t\x03\n\x0e\n\x04\x04\t\x08\x00\x12\x06\x85\t\x02\xa7\t\x03\n\r\n\x05\x04\t\x08\x00\x01\x12\x04\x85\t\x08\x11\n\xc4\x02\n\x04\x04\t\x02\x01\x12\x06\x90\t\x04\x95\t\x07\x1a\xb3\x02 `lt` requires the field value to be less than the specified value (field <\n value). If the field value is equal to or greater than the specified value,\n an error message is generated.\n\n ```proto\n message MyInt64 {\n // must be less than 10\n int64 value = 1 [(buf.validate.field).int64.lt = 10];\n }\n ```\n\n\r\n\x05\x04\t\x02\x01\x05\x12\x04\x90\t\x04\t\n\r\n\x05\x04\t\x02\x01\x01\x12\x04\x90\t\n\x0c\n\r\n\x05\x04\t\x02\x01\x03\x12\x04\x90\t\x0f\x10\n\x0f\n\x05\x04\t\x02\x01\x08\x12\x06\x90\t\x11\x95\t\x06\n\x13\n\t\x04\t\x02\x01\x08\x88\t\x01\x00\x12\x06\x90\t\x12\x95\t\x05\n\xd3\x02\n\x04\x04\t\x02\x02\x12\x06\xa1\t\x04\xa6\t\x07\x1a\xc2\x02 `lte` requires the field value to be less than or equal to the specified\n value (field <= value). If the field value is greater than the specified\n value, an error message is generated.\n\n ```proto\n message MyInt64 {\n // must be less than or equal to 10\n int64 value = 1 [(buf.validate.field).int64.lte = 10];\n }\n ```\n\n\r\n\x05\x04\t\x02\x02\x05\x12\x04\xa1\t\x04\t\n\r\n\x05\x04\t\x02\x02\x01\x12\x04\xa1\t\n\r\n\r\n\x05\x04\t\x02\x02\x03\x12\x04\xa1\t\x10\x11\n\x0f\n\x05\x04\t\x02\x02\x08\x12\x06\xa1\t\x12\xa6\t\x06\n\x13\n\t\x04\t\x02\x02\x08\x88\t\x01\x00\x12\x06\xa1\t\x13\xa6\t\x05\n\x0e\n\x04\x04\t\x08\x01\x12\x06\xa8\t\x02\x8e\n\x03\n\r\n\x05\x04\t\x08\x01\x01\x12\x04\xa8\t\x08\x14\n\xf0\x05\n\x04\x04\t\x02\x03\x12\x06\xbb\t\x04\xda\t\x06\x1a\xdf\x05 `gt` requires the field value to be greater than the specified value\n (exclusive). If the value of `gt` is larger than a specified `lt` or\n `lte`, the range is reversed, and the field value must be outside the\n specified range. If the field value doesn\'t meet the required conditions,\n an error message is generated.\n\n ```proto\n message MyInt64 {\n // must be greater than 5 [int64.gt]\n int64 value = 1 [(buf.validate.field).int64.gt = 5];\n\n // must be greater than 5 and less than 10 [int64.gt_lt]\n int64 other_value = 2 [(buf.validate.field).int64 = { gt: 5, lt: 10 }];\n\n // must be greater than 10 or less than 5 [int64.gt_lt_exclusive]\n int64 another_value = 3 [(buf.validate.field).int64 = { gt: 10, lt: 5 }];\n }\n ```\n\n\r\n\x05\x04\t\x02\x03\x05\x12\x04\xbb\t\x04\t\n\r\n\x05\x04\t\x02\x03\x01\x12\x04\xbb\t\n\x0c\n\r\n\x05\x04\t\x02\x03\x03\x12\x04\xbb\t\x0f\x10\n\x0f\n\x05\x04\t\x02\x03\x08\x12\x06\xbb\t\x11\xda\t\x05\n\x13\n\t\x04\t\x02\x03\x08\x88\t\x01\x00\x12\x06\xbc\t\x06\xc1\t\x07\n\x13\n\t\x04\t\x02\x03\x08\x88\t\x01\x01\x12\x06\xc2\t\x06\xc7\t\x07\n\x13\n\t\x04\t\x02\x03\x08\x88\t\x01\x02\x12\x06\xc8\t\x06\xcd\t\x07\n\x13\n\t\x04\t\x02\x03\x08\x88\t\x01\x03\x12\x06\xce\t\x06\xd3\t\x07\n\x13\n\t\x04\t\x02\x03\x08\x88\t\x01\x04\x12\x06\xd4\t\x06\xd9\t\x07\n\xa8\x06\n\x04\x04\t\x02\x04\x12\x06\xee\t\x04\x8d\n\x06\x1a\x97\x06 `gte` requires the field value to be greater than or equal to the specified\n value (exclusive). If the value of `gte` is larger than a specified `lt`\n or `lte`, the range is reversed, and the field value must be outside the\n specified range. If the field value doesn\'t meet the required conditions,\n an error message is generated.\n\n ```proto\n message MyInt64 {\n // must be greater than or equal to 5 [int64.gte]\n int64 value = 1 [(buf.validate.field).int64.gte = 5];\n\n // must be greater than or equal to 5 and less than 10 [int64.gte_lt]\n int64 other_value = 2 [(buf.validate.field).int64 = { gte: 5, lt: 10 }];\n\n // must be greater than or equal to 10 or less than 5 [int64.gte_lt_exclusive]\n int64 another_value = 3 [(buf.validate.field).int64 = { gte: 10, lt: 5 }];\n }\n ```\n\n\r\n\x05\x04\t\x02\x04\x05\x12\x04\xee\t\x04\t\n\r\n\x05\x04\t\x02\x04\x01\x12\x04\xee\t\n\r\n\r\n\x05\x04\t\x02\x04\x03\x12\x04\xee\t\x10\x11\n\x0f\n\x05\x04\t\x02\x04\x08\x12\x06\xee\t\x12\x8d\n\x05\n\x13\n\t\x04\t\x02\x04\x08\x88\t\x01\x00\x12\x06\xef\t\x06\xf4\t\x07\n\x13\n\t\x04\t\x02\x04\x08\x88\t\x01\x01\x12\x06\xf5\t\x06\xfa\t\x07\n\x13\n\t\x04\t\x02\x04\x08\x88\t\x01\x02\x12\x06\xfb\t\x06\x80\n\x07\n\x13\n\t\x04\t\x02\x04\x08\x88\t\x01\x03\x12\x06\x81\n\x06\x86\n\x07\n\x13\n\t\x04\t\x02\x04\x08\x88\t\x01\x04\x12\x06\x87\n\x06\x8c\n\x07\n\xbe\x02\n\x04\x04\t\x02\x05\x12\x06\x9a\n\x02\x9d\n\x05\x1a\xad\x02 `in` requires the field value to be equal to one of the specified values.\n If the field value isn\'t one of the specified values, an error message is\n generated.\n\n ```proto\n message MyInt64 {\n // must be in list [1, 2, 3]\n int64 value = 1 [(buf.validate.field).int64 = { in: [1, 2, 3] }];\n }\n ```\n\n\r\n\x05\x04\t\x02\x05\x04\x12\x04\x9a\n\x02\n\n\r\n\x05\x04\t\x02\x05\x05\x12\x04\x9a\n\x0b\x10\n\r\n\x05\x04\t\x02\x05\x01\x12\x04\x9a\n\x11\x13\n\r\n\x05\x04\t\x02\x05\x03\x12\x04\x9a\n\x16\x17\n\x0f\n\x05\x04\t\x02\x05\x08\x12\x06\x9a\n\x18\x9d\n\x04\n\x13\n\t\x04\t\x02\x05\x08\x88\t\x01\x00\x12\x06\x9a\n\x19\x9d\n\x03\n\xd1\x02\n\x04\x04\t\x02\x06\x12\x06\xa9\n\x02\xac\n\x05\x1a\xc0\x02 `not_in` requires the field value to not be equal to any of the specified\n values. If the field value is one of the specified values, an error\n message is generated.\n\n ```proto\n message MyInt64 {\n // value must not be in list [1, 2, 3]\n int64 value = 1 [(buf.validate.field).int64 = { not_in: [1, 2, 3] }];\n }\n ```\n\n\r\n\x05\x04\t\x02\x06\x04\x12\x04\xa9\n\x02\n\n\r\n\x05\x04\t\x02\x06\x05\x12\x04\xa9\n\x0b\x10\n\r\n\x05\x04\t\x02\x06\x01\x12\x04\xa9\n\x11\x17\n\r\n\x05\x04\t\x02\x06\x03\x12\x04\xa9\n\x1a\x1b\n\x0f\n\x05\x04\t\x02\x06\x08\x12\x06\xa9\n\x1c\xac\n\x04\n\x13\n\t\x04\t\x02\x06\x08\x88\t\x01\x00\x12\x06\xa9\n\x1d\xac\n\x03\n\x84\x03\n\x04\x04\t\x02\x07\x12\x06\xba\n\x02\xbd\n\x05\x1a\xf3\x02 `example` specifies values that the field may have. These values SHOULD\n conform to other rules. `example` values will not impact validation\n but may be used as helpful guidance on how to populate the given field.\n\n ```proto\n message MyInt64 {\n int64 value = 1 [\n (buf.validate.field).int64.example = 1,\n (buf.validate.field).int64.example = -10\n ];\n }\n ```\n\n\r\n\x05\x04\t\x02\x07\x04\x12\x04\xba\n\x02\n\n\r\n\x05\x04\t\x02\x07\x05\x12\x04\xba\n\x0b\x10\n\r\n\x05\x04\t\x02\x07\x01\x12\x04\xba\n\x11\x18\n\r\n\x05\x04\t\x02\x07\x03\x12\x04\xba\n\x1b\x1c\n\x0f\n\x05\x04\t\x02\x07\x08\x12\x06\xba\n\x1d\xbd\n\x04\n\x13\n\t\x04\t\x02\x07\x08\x88\t\x01\x00\x12\x06\xba\n\x1e\xbd\n\x03\n\xb8\x01\n\x03\x04\t\x05\x12\x04\xc2\n\x02\x19\x1a\xaa\x01 Extension fields that have the (buf.validate.predefined) option set\n will be treated as predefined field rules.\n See https://protovalidate.com/schemas/predefined-rules/\n\n\x0c\n\x04\x04\t\x05\x00\x12\x04\xc2\n\r\x18\n\r\n\x05\x04\t\x05\x00\x01\x12\x04\xc2\n\r\x11\n\r\n\x05\x04\t\x05\x00\x02\x12\x04\xc2\n\x15\x18\n\xa3\x01\n\x02\x04\n\x12\x06\xc7\n\x00\x93\x0c\x01\x1a\x94\x01 UInt32Rules describes the rules applied to `uint32` values. These\n rules may also be applied to the `google.protobuf.UInt32Value` Well-Known-Type.\n\n\x0b\n\x03\x04\n\x01\x12\x04\xc7\n\x08\x13\n\x9a\x02\n\x04\x04\n\x02\x00\x12\x06\xd1\n\x02\xd4\n\x05\x1a\x89\x02 `const` requires the field value to exactly match the specified value. If\n the field value doesn\'t match, an error message is generated.\n\n ```proto\n message MyUInt32 {\n // value must equal 42\n uint32 value = 1 [(buf.validate.field).uint32.const = 42];\n }\n ```\n\n\r\n\x05\x04\n\x02\x00\x04\x12\x04\xd1\n\x02\n\n\r\n\x05\x04\n\x02\x00\x05\x12\x04\xd1\n\x0b\x11\n\r\n\x05\x04\n\x02\x00\x01\x12\x04\xd1\n\x12\x17\n\r\n\x05\x04\n\x02\x00\x03\x12\x04\xd1\n\x1a\x1b\n\x0f\n\x05\x04\n\x02\x00\x08\x12\x06\xd1\n\x1c\xd4\n\x04\n\x13\n\t\x04\n\x02\x00\x08\x88\t\x01\x00\x12\x06\xd1\n\x1d\xd4\n\x03\n\x0e\n\x04\x04\n\x08\x00\x12\x06\xd5\n\x02\xf7\n\x03\n\r\n\x05\x04\n\x08\x00\x01\x12\x04\xd5\n\x08\x11\n\xc7\x02\n\x04\x04\n\x02\x01\x12\x06\xe0\n\x04\xe5\n\x07\x1a\xb6\x02 `lt` requires the field value to be less than the specified value (field <\n value). If the field value is equal to or greater than the specified value,\n an error message is generated.\n\n ```proto\n message MyUInt32 {\n // must be less than 10\n uint32 value = 1 [(buf.validate.field).uint32.lt = 10];\n }\n ```\n\n\r\n\x05\x04\n\x02\x01\x05\x12\x04\xe0\n\x04\n\n\r\n\x05\x04\n\x02\x01\x01\x12\x04\xe0\n\x0b\r\n\r\n\x05\x04\n\x02\x01\x03\x12\x04\xe0\n\x10\x11\n\x0f\n\x05\x04\n\x02\x01\x08\x12\x06\xe0\n\x12\xe5\n\x06\n\x13\n\t\x04\n\x02\x01\x08\x88\t\x01\x00\x12\x06\xe0\n\x13\xe5\n\x05\n\xd6\x02\n\x04\x04\n\x02\x02\x12\x06\xf1\n\x04\xf6\n\x07\x1a\xc5\x02 `lte` requires the field value to be less than or equal to the specified\n value (field <= value). If the field value is greater than the specified\n value, an error message is generated.\n\n ```proto\n message MyUInt32 {\n // must be less than or equal to 10\n uint32 value = 1 [(buf.validate.field).uint32.lte = 10];\n }\n ```\n\n\r\n\x05\x04\n\x02\x02\x05\x12\x04\xf1\n\x04\n\n\r\n\x05\x04\n\x02\x02\x01\x12\x04\xf1\n\x0b\x0e\n\r\n\x05\x04\n\x02\x02\x03\x12\x04\xf1\n\x11\x12\n\x0f\n\x05\x04\n\x02\x02\x08\x12\x06\xf1\n\x13\xf6\n\x06\n\x13\n\t\x04\n\x02\x02\x08\x88\t\x01\x00\x12\x06\xf1\n\x14\xf6\n\x05\n\x0e\n\x04\x04\n\x08\x01\x12\x06\xf8\n\x02\xde\x0b\x03\n\r\n\x05\x04\n\x08\x01\x01\x12\x04\xf8\n\x08\x14\n\xfa\x05\n\x04\x04\n\x02\x03\x12\x06\x8b\x0b\x04\xaa\x0b\x06\x1a\xe9\x05 `gt` requires the field value to be greater than the specified value\n (exclusive). If the value of `gt` is larger than a specified `lt` or\n `lte`, the range is reversed, and the field value must be outside the\n specified range. If the field value doesn\'t meet the required conditions,\n an error message is generated.\n\n ```proto\n message MyUInt32 {\n // must be greater than 5 [uint32.gt]\n uint32 value = 1 [(buf.validate.field).uint32.gt = 5];\n\n // must be greater than 5 and less than 10 [uint32.gt_lt]\n uint32 other_value = 2 [(buf.validate.field).uint32 = { gt: 5, lt: 10 }];\n\n // must be greater than 10 or less than 5 [uint32.gt_lt_exclusive]\n uint32 another_value = 3 [(buf.validate.field).uint32 = { gt: 10, lt: 5 }];\n }\n ```\n\n\r\n\x05\x04\n\x02\x03\x05\x12\x04\x8b\x0b\x04\n\n\r\n\x05\x04\n\x02\x03\x01\x12\x04\x8b\x0b\x0b\r\n\r\n\x05\x04\n\x02\x03\x03\x12\x04\x8b\x0b\x10\x11\n\x0f\n\x05\x04\n\x02\x03\x08\x12\x06\x8b\x0b\x12\xaa\x0b\x05\n\x13\n\t\x04\n\x02\x03\x08\x88\t\x01\x00\x12\x06\x8c\x0b\x06\x91\x0b\x07\n\x13\n\t\x04\n\x02\x03\x08\x88\t\x01\x01\x12\x06\x92\x0b\x06\x97\x0b\x07\n\x13\n\t\x04\n\x02\x03\x08\x88\t\x01\x02\x12\x06\x98\x0b\x06\x9d\x0b\x07\n\x13\n\t\x04\n\x02\x03\x08\x88\t\x01\x03\x12\x06\x9e\x0b\x06\xa3\x0b\x07\n\x13\n\t\x04\n\x02\x03\x08\x88\t\x01\x04\x12\x06\xa4\x0b\x06\xa9\x0b\x07\n\xb2\x06\n\x04\x04\n\x02\x04\x12\x06\xbe\x0b\x04\xdd\x0b\x06\x1a\xa1\x06 `gte` requires the field value to be greater than or equal to the specified\n value (exclusive). If the value of `gte` is larger than a specified `lt`\n or `lte`, the range is reversed, and the field value must be outside the\n specified range. If the field value doesn\'t meet the required conditions,\n an error message is generated.\n\n ```proto\n message MyUInt32 {\n // must be greater than or equal to 5 [uint32.gte]\n uint32 value = 1 [(buf.validate.field).uint32.gte = 5];\n\n // must be greater than or equal to 5 and less than 10 [uint32.gte_lt]\n uint32 other_value = 2 [(buf.validate.field).uint32 = { gte: 5, lt: 10 }];\n\n // must be greater than or equal to 10 or less than 5 [uint32.gte_lt_exclusive]\n uint32 another_value = 3 [(buf.validate.field).uint32 = { gte: 10, lt: 5 }];\n }\n ```\n\n\r\n\x05\x04\n\x02\x04\x05\x12\x04\xbe\x0b\x04\n\n\r\n\x05\x04\n\x02\x04\x01\x12\x04\xbe\x0b\x0b\x0e\n\r\n\x05\x04\n\x02\x04\x03\x12\x04\xbe\x0b\x11\x12\n\x0f\n\x05\x04\n\x02\x04\x08\x12\x06\xbe\x0b\x13\xdd\x0b\x05\n\x13\n\t\x04\n\x02\x04\x08\x88\t\x01\x00\x12\x06\xbf\x0b\x06\xc4\x0b\x07\n\x13\n\t\x04\n\x02\x04\x08\x88\t\x01\x01\x12\x06\xc5\x0b\x06\xca\x0b\x07\n\x13\n\t\x04\n\x02\x04\x08\x88\t\x01\x02\x12\x06\xcb\x0b\x06\xd0\x0b\x07\n\x13\n\t\x04\n\x02\x04\x08\x88\t\x01\x03\x12\x06\xd1\x0b\x06\xd6\x0b\x07\n\x13\n\t\x04\n\x02\x04\x08\x88\t\x01\x04\x12\x06\xd7\x0b\x06\xdc\x0b\x07\n\xc1\x02\n\x04\x04\n\x02\x05\x12\x06\xea\x0b\x02\xed\x0b\x05\x1a\xb0\x02 `in` requires the field value to be equal to one of the specified values.\n If the field value isn\'t one of the specified values, an error message is\n generated.\n\n ```proto\n message MyUInt32 {\n // must be in list [1, 2, 3]\n uint32 value = 1 [(buf.validate.field).uint32 = { in: [1, 2, 3] }];\n }\n ```\n\n\r\n\x05\x04\n\x02\x05\x04\x12\x04\xea\x0b\x02\n\n\r\n\x05\x04\n\x02\x05\x05\x12\x04\xea\x0b\x0b\x11\n\r\n\x05\x04\n\x02\x05\x01\x12\x04\xea\x0b\x12\x14\n\r\n\x05\x04\n\x02\x05\x03\x12\x04\xea\x0b\x17\x18\n\x0f\n\x05\x04\n\x02\x05\x08\x12\x06\xea\x0b\x19\xed\x0b\x04\n\x13\n\t\x04\n\x02\x05\x08\x88\t\x01\x00\x12\x06\xea\x0b\x1a\xed\x0b\x03\n\xd4\x02\n\x04\x04\n\x02\x06\x12\x06\xf9\x0b\x02\xfc\x0b\x05\x1a\xc3\x02 `not_in` requires the field value to not be equal to any of the specified\n values. If the field value is one of the specified values, an error\n message is generated.\n\n ```proto\n message MyUInt32 {\n // value must not be in list [1, 2, 3]\n uint32 value = 1 [(buf.validate.field).uint32 = { not_in: [1, 2, 3] }];\n }\n ```\n\n\r\n\x05\x04\n\x02\x06\x04\x12\x04\xf9\x0b\x02\n\n\r\n\x05\x04\n\x02\x06\x05\x12\x04\xf9\x0b\x0b\x11\n\r\n\x05\x04\n\x02\x06\x01\x12\x04\xf9\x0b\x12\x18\n\r\n\x05\x04\n\x02\x06\x03\x12\x04\xf9\x0b\x1b\x1c\n\x0f\n\x05\x04\n\x02\x06\x08\x12\x06\xf9\x0b\x1d\xfc\x0b\x04\n\x13\n\t\x04\n\x02\x06\x08\x88\t\x01\x00\x12\x06\xf9\x0b\x1e\xfc\x0b\x03\n\x87\x03\n\x04\x04\n\x02\x07\x12\x06\x8a\x0c\x02\x8d\x0c\x05\x1a\xf6\x02 `example` specifies values that the field may have. These values SHOULD\n conform to other rules. `example` values will not impact validation\n but may be used as helpful guidance on how to populate the given field.\n\n ```proto\n message MyUInt32 {\n uint32 value = 1 [\n (buf.validate.field).uint32.example = 1,\n (buf.validate.field).uint32.example = 10\n ];\n }\n ```\n\n\r\n\x05\x04\n\x02\x07\x04\x12\x04\x8a\x0c\x02\n\n\r\n\x05\x04\n\x02\x07\x05\x12\x04\x8a\x0c\x0b\x11\n\r\n\x05\x04\n\x02\x07\x01\x12\x04\x8a\x0c\x12\x19\n\r\n\x05\x04\n\x02\x07\x03\x12\x04\x8a\x0c\x1c\x1d\n\x0f\n\x05\x04\n\x02\x07\x08\x12\x06\x8a\x0c\x1e\x8d\x0c\x04\n\x13\n\t\x04\n\x02\x07\x08\x88\t\x01\x00\x12\x06\x8a\x0c\x1f\x8d\x0c\x03\n\xb8\x01\n\x03\x04\n\x05\x12\x04\x92\x0c\x02\x19\x1a\xaa\x01 Extension fields that have the (buf.validate.predefined) option set\n will be treated as predefined field rules.\n See https://protovalidate.com/schemas/predefined-rules/\n\n\x0c\n\x04\x04\n\x05\x00\x12\x04\x92\x0c\r\x18\n\r\n\x05\x04\n\x05\x00\x01\x12\x04\x92\x0c\r\x11\n\r\n\x05\x04\n\x05\x00\x02\x12\x04\x92\x0c\x15\x18\n\xa3\x01\n\x02\x04\x0b\x12\x06\x97\x0c\x00\xe2\r\x01\x1a\x94\x01 UInt64Rules describes the rules applied to `uint64` values. These\n rules may also be applied to the `google.protobuf.UInt64Value` Well-Known-Type.\n\n\x0b\n\x03\x04\x0b\x01\x12\x04\x97\x0c\x08\x13\n\x9a\x02\n\x04\x04\x0b\x02\x00\x12\x06\xa1\x0c\x02\xa4\x0c\x05\x1a\x89\x02 `const` requires the field value to exactly match the specified value. If\n the field value doesn\'t match, an error message is generated.\n\n ```proto\n message MyUInt64 {\n // value must equal 42\n uint64 value = 1 [(buf.validate.field).uint64.const = 42];\n }\n ```\n\n\r\n\x05\x04\x0b\x02\x00\x04\x12\x04\xa1\x0c\x02\n\n\r\n\x05\x04\x0b\x02\x00\x05\x12\x04\xa1\x0c\x0b\x11\n\r\n\x05\x04\x0b\x02\x00\x01\x12\x04\xa1\x0c\x12\x17\n\r\n\x05\x04\x0b\x02\x00\x03\x12\x04\xa1\x0c\x1a\x1b\n\x0f\n\x05\x04\x0b\x02\x00\x08\x12\x06\xa1\x0c\x1c\xa4\x0c\x04\n\x13\n\t\x04\x0b\x02\x00\x08\x88\t\x01\x00\x12\x06\xa1\x0c\x1d\xa4\x0c\x03\n\x0e\n\x04\x04\x0b\x08\x00\x12\x06\xa5\x0c\x02\xc7\x0c\x03\n\r\n\x05\x04\x0b\x08\x00\x01\x12\x04\xa5\x0c\x08\x11\n\xc7\x02\n\x04\x04\x0b\x02\x01\x12\x06\xb0\x0c\x04\xb5\x0c\x07\x1a\xb6\x02 `lt` requires the field value to be less than the specified value (field <\n value). If the field value is equal to or greater than the specified value,\n an error message is generated.\n\n ```proto\n message MyUInt64 {\n // must be less than 10\n uint64 value = 1 [(buf.validate.field).uint64.lt = 10];\n }\n ```\n\n\r\n\x05\x04\x0b\x02\x01\x05\x12\x04\xb0\x0c\x04\n\n\r\n\x05\x04\x0b\x02\x01\x01\x12\x04\xb0\x0c\x0b\r\n\r\n\x05\x04\x0b\x02\x01\x03\x12\x04\xb0\x0c\x10\x11\n\x0f\n\x05\x04\x0b\x02\x01\x08\x12\x06\xb0\x0c\x12\xb5\x0c\x06\n\x13\n\t\x04\x0b\x02\x01\x08\x88\t\x01\x00\x12\x06\xb0\x0c\x13\xb5\x0c\x05\n\xd6\x02\n\x04\x04\x0b\x02\x02\x12\x06\xc1\x0c\x04\xc6\x0c\x07\x1a\xc5\x02 `lte` requires the field value to be less than or equal to the specified\n value (field <= value). If the field value is greater than the specified\n value, an error message is generated.\n\n ```proto\n message MyUInt64 {\n // must be less than or equal to 10\n uint64 value = 1 [(buf.validate.field).uint64.lte = 10];\n }\n ```\n\n\r\n\x05\x04\x0b\x02\x02\x05\x12\x04\xc1\x0c\x04\n\n\r\n\x05\x04\x0b\x02\x02\x01\x12\x04\xc1\x0c\x0b\x0e\n\r\n\x05\x04\x0b\x02\x02\x03\x12\x04\xc1\x0c\x11\x12\n\x0f\n\x05\x04\x0b\x02\x02\x08\x12\x06\xc1\x0c\x13\xc6\x0c\x06\n\x13\n\t\x04\x0b\x02\x02\x08\x88\t\x01\x00\x12\x06\xc1\x0c\x14\xc6\x0c\x05\n\x0e\n\x04\x04\x0b\x08\x01\x12\x06\xc8\x0c\x02\xae\r\x03\n\r\n\x05\x04\x0b\x08\x01\x01\x12\x04\xc8\x0c\x08\x14\n\xfa\x05\n\x04\x04\x0b\x02\x03\x12\x06\xdb\x0c\x04\xfa\x0c\x06\x1a\xe9\x05 `gt` requires the field value to be greater than the specified value\n (exclusive). If the value of `gt` is larger than a specified `lt` or\n `lte`, the range is reversed, and the field value must be outside the\n specified range. If the field value doesn\'t meet the required conditions,\n an error message is generated.\n\n ```proto\n message MyUInt64 {\n // must be greater than 5 [uint64.gt]\n uint64 value = 1 [(buf.validate.field).uint64.gt = 5];\n\n // must be greater than 5 and less than 10 [uint64.gt_lt]\n uint64 other_value = 2 [(buf.validate.field).uint64 = { gt: 5, lt: 10 }];\n\n // must be greater than 10 or less than 5 [uint64.gt_lt_exclusive]\n uint64 another_value = 3 [(buf.validate.field).uint64 = { gt: 10, lt: 5 }];\n }\n ```\n\n\r\n\x05\x04\x0b\x02\x03\x05\x12\x04\xdb\x0c\x04\n\n\r\n\x05\x04\x0b\x02\x03\x01\x12\x04\xdb\x0c\x0b\r\n\r\n\x05\x04\x0b\x02\x03\x03\x12\x04\xdb\x0c\x10\x11\n\x0f\n\x05\x04\x0b\x02\x03\x08\x12\x06\xdb\x0c\x12\xfa\x0c\x05\n\x13\n\t\x04\x0b\x02\x03\x08\x88\t\x01\x00\x12\x06\xdc\x0c\x06\xe1\x0c\x07\n\x13\n\t\x04\x0b\x02\x03\x08\x88\t\x01\x01\x12\x06\xe2\x0c\x06\xe7\x0c\x07\n\x13\n\t\x04\x0b\x02\x03\x08\x88\t\x01\x02\x12\x06\xe8\x0c\x06\xed\x0c\x07\n\x13\n\t\x04\x0b\x02\x03\x08\x88\t\x01\x03\x12\x06\xee\x0c\x06\xf3\x0c\x07\n\x13\n\t\x04\x0b\x02\x03\x08\x88\t\x01\x04\x12\x06\xf4\x0c\x06\xf9\x0c\x07\n\xb2\x06\n\x04\x04\x0b\x02\x04\x12\x06\x8e\r\x04\xad\r\x06\x1a\xa1\x06 `gte` requires the field value to be greater than or equal to the specified\n value (exclusive). If the value of `gte` is larger than a specified `lt`\n or `lte`, the range is reversed, and the field value must be outside the\n specified range. If the field value doesn\'t meet the required conditions,\n an error message is generated.\n\n ```proto\n message MyUInt64 {\n // must be greater than or equal to 5 [uint64.gte]\n uint64 value = 1 [(buf.validate.field).uint64.gte = 5];\n\n // must be greater than or equal to 5 and less than 10 [uint64.gte_lt]\n uint64 other_value = 2 [(buf.validate.field).uint64 = { gte: 5, lt: 10 }];\n\n // must be greater than or equal to 10 or less than 5 [uint64.gte_lt_exclusive]\n uint64 another_value = 3 [(buf.validate.field).uint64 = { gte: 10, lt: 5 }];\n }\n ```\n\n\r\n\x05\x04\x0b\x02\x04\x05\x12\x04\x8e\r\x04\n\n\r\n\x05\x04\x0b\x02\x04\x01\x12\x04\x8e\r\x0b\x0e\n\r\n\x05\x04\x0b\x02\x04\x03\x12\x04\x8e\r\x11\x12\n\x0f\n\x05\x04\x0b\x02\x04\x08\x12\x06\x8e\r\x13\xad\r\x05\n\x13\n\t\x04\x0b\x02\x04\x08\x88\t\x01\x00\x12\x06\x8f\r\x06\x94\r\x07\n\x13\n\t\x04\x0b\x02\x04\x08\x88\t\x01\x01\x12\x06\x95\r\x06\x9a\r\x07\n\x13\n\t\x04\x0b\x02\x04\x08\x88\t\x01\x02\x12\x06\x9b\r\x06\xa0\r\x07\n\x13\n\t\x04\x0b\x02\x04\x08\x88\t\x01\x03\x12\x06\xa1\r\x06\xa6\r\x07\n\x13\n\t\x04\x0b\x02\x04\x08\x88\t\x01\x04\x12\x06\xa7\r\x06\xac\r\x07\n\xc1\x02\n\x04\x04\x0b\x02\x05\x12\x06\xb9\r\x02\xbc\r\x05\x1a\xb0\x02 `in` requires the field value to be equal to one of the specified values.\n If the field value isn\'t one of the specified values, an error message is\n generated.\n\n ```proto\n message MyUInt64 {\n // must be in list [1, 2, 3]\n uint64 value = 1 [(buf.validate.field).uint64 = { in: [1, 2, 3] }];\n }\n ```\n\n\r\n\x05\x04\x0b\x02\x05\x04\x12\x04\xb9\r\x02\n\n\r\n\x05\x04\x0b\x02\x05\x05\x12\x04\xb9\r\x0b\x11\n\r\n\x05\x04\x0b\x02\x05\x01\x12\x04\xb9\r\x12\x14\n\r\n\x05\x04\x0b\x02\x05\x03\x12\x04\xb9\r\x17\x18\n\x0f\n\x05\x04\x0b\x02\x05\x08\x12\x06\xb9\r\x19\xbc\r\x04\n\x13\n\t\x04\x0b\x02\x05\x08\x88\t\x01\x00\x12\x06\xb9\r\x1a\xbc\r\x03\n\xd4\x02\n\x04\x04\x0b\x02\x06\x12\x06\xc8\r\x02\xcb\r\x05\x1a\xc3\x02 `not_in` requires the field value to not be equal to any of the specified\n values. If the field value is one of the specified values, an error\n message is generated.\n\n ```proto\n message MyUInt64 {\n // value must not be in list [1, 2, 3]\n uint64 value = 1 [(buf.validate.field).uint64 = { not_in: [1, 2, 3] }];\n }\n ```\n\n\r\n\x05\x04\x0b\x02\x06\x04\x12\x04\xc8\r\x02\n\n\r\n\x05\x04\x0b\x02\x06\x05\x12\x04\xc8\r\x0b\x11\n\r\n\x05\x04\x0b\x02\x06\x01\x12\x04\xc8\r\x12\x18\n\r\n\x05\x04\x0b\x02\x06\x03\x12\x04\xc8\r\x1b\x1c\n\x0f\n\x05\x04\x0b\x02\x06\x08\x12\x06\xc8\r\x1d\xcb\r\x04\n\x13\n\t\x04\x0b\x02\x06\x08\x88\t\x01\x00\x12\x06\xc8\r\x1e\xcb\r\x03\n\x87\x03\n\x04\x04\x0b\x02\x07\x12\x06\xd9\r\x02\xdc\r\x05\x1a\xf6\x02 `example` specifies values that the field may have. These values SHOULD\n conform to other rules. `example` values will not impact validation\n but may be used as helpful guidance on how to populate the given field.\n\n ```proto\n message MyUInt64 {\n uint64 value = 1 [\n (buf.validate.field).uint64.example = 1,\n (buf.validate.field).uint64.example = 10\n ];\n }\n ```\n\n\r\n\x05\x04\x0b\x02\x07\x04\x12\x04\xd9\r\x02\n\n\r\n\x05\x04\x0b\x02\x07\x05\x12\x04\xd9\r\x0b\x11\n\r\n\x05\x04\x0b\x02\x07\x01\x12\x04\xd9\r\x12\x19\n\r\n\x05\x04\x0b\x02\x07\x03\x12\x04\xd9\r\x1c\x1d\n\x0f\n\x05\x04\x0b\x02\x07\x08\x12\x06\xd9\r\x1e\xdc\r\x04\n\x13\n\t\x04\x0b\x02\x07\x08\x88\t\x01\x00\x12\x06\xd9\r\x1f\xdc\r\x03\n\xb8\x01\n\x03\x04\x0b\x05\x12\x04\xe1\r\x02\x19\x1a\xaa\x01 Extension fields that have the (buf.validate.predefined) option set\n will be treated as predefined field rules.\n See https://protovalidate.com/schemas/predefined-rules/\n\n\x0c\n\x04\x04\x0b\x05\x00\x12\x04\xe1\r\r\x18\n\r\n\x05\x04\x0b\x05\x00\x01\x12\x04\xe1\r\r\x11\n\r\n\x05\x04\x0b\x05\x00\x02\x12\x04\xe1\r\x15\x18\nK\n\x02\x04\x0c\x12\x06\xe5\r\x00\xb1\x0f\x01\x1a= SInt32Rules describes the rules applied to `sint32` values.\n\n\x0b\n\x03\x04\x0c\x01\x12\x04\xe5\r\x08\x13\n\x9a\x02\n\x04\x04\x0c\x02\x00\x12\x06\xef\r\x02\xf2\r\x05\x1a\x89\x02 `const` requires the field value to exactly match the specified value. If\n the field value doesn\'t match, an error message is generated.\n\n ```proto\n message MySInt32 {\n // value must equal 42\n sint32 value = 1 [(buf.validate.field).sint32.const = 42];\n }\n ```\n\n\r\n\x05\x04\x0c\x02\x00\x04\x12\x04\xef\r\x02\n\n\r\n\x05\x04\x0c\x02\x00\x05\x12\x04\xef\r\x0b\x11\n\r\n\x05\x04\x0c\x02\x00\x01\x12\x04\xef\r\x12\x17\n\r\n\x05\x04\x0c\x02\x00\x03\x12\x04\xef\r\x1a\x1b\n\x0f\n\x05\x04\x0c\x02\x00\x08\x12\x06\xef\r\x1c\xf2\r\x04\n\x13\n\t\x04\x0c\x02\x00\x08\x88\t\x01\x00\x12\x06\xef\r\x1d\xf2\r\x03\n\x0e\n\x04\x04\x0c\x08\x00\x12\x06\xf3\r\x02\x95\x0e\x03\n\r\n\x05\x04\x0c\x08\x00\x01\x12\x04\xf3\r\x08\x11\n\xc7\x02\n\x04\x04\x0c\x02\x01\x12\x06\xfe\r\x04\x83\x0e\x07\x1a\xb6\x02 `lt` requires the field value to be less than the specified value (field\n < value). If the field value is equal to or greater than the specified\n value, an error message is generated.\n\n ```proto\n message MySInt32 {\n // must be less than 10\n sint32 value = 1 [(buf.validate.field).sint32.lt = 10];\n }\n ```\n\n\r\n\x05\x04\x0c\x02\x01\x05\x12\x04\xfe\r\x04\n\n\r\n\x05\x04\x0c\x02\x01\x01\x12\x04\xfe\r\x0b\r\n\r\n\x05\x04\x0c\x02\x01\x03\x12\x04\xfe\r\x10\x11\n\x0f\n\x05\x04\x0c\x02\x01\x08\x12\x06\xfe\r\x12\x83\x0e\x06\n\x13\n\t\x04\x0c\x02\x01\x08\x88\t\x01\x00\x12\x06\xfe\r\x13\x83\x0e\x05\n\xd6\x02\n\x04\x04\x0c\x02\x02\x12\x06\x8f\x0e\x04\x94\x0e\x07\x1a\xc5\x02 `lte` requires the field value to be less than or equal to the specified\n value (field <= value). If the field value is greater than the specified\n value, an error message is generated.\n\n ```proto\n message MySInt32 {\n // must be less than or equal to 10\n sint32 value = 1 [(buf.validate.field).sint32.lte = 10];\n }\n ```\n\n\r\n\x05\x04\x0c\x02\x02\x05\x12\x04\x8f\x0e\x04\n\n\r\n\x05\x04\x0c\x02\x02\x01\x12\x04\x8f\x0e\x0b\x0e\n\r\n\x05\x04\x0c\x02\x02\x03\x12\x04\x8f\x0e\x11\x12\n\x0f\n\x05\x04\x0c\x02\x02\x08\x12\x06\x8f\x0e\x13\x94\x0e\x06\n\x13\n\t\x04\x0c\x02\x02\x08\x88\t\x01\x00\x12\x06\x8f\x0e\x14\x94\x0e\x05\n\x0e\n\x04\x04\x0c\x08\x01\x12\x06\x96\x0e\x02\xfc\x0e\x03\n\r\n\x05\x04\x0c\x08\x01\x01\x12\x04\x96\x0e\x08\x14\n\xfa\x05\n\x04\x04\x0c\x02\x03\x12\x06\xa9\x0e\x04\xc8\x0e\x06\x1a\xe9\x05 `gt` requires the field value to be greater than the specified value\n (exclusive). If the value of `gt` is larger than a specified `lt` or\n `lte`, the range is reversed, and the field value must be outside the\n specified range. If the field value doesn\'t meet the required conditions,\n an error message is generated.\n\n ```proto\n message MySInt32 {\n // must be greater than 5 [sint32.gt]\n sint32 value = 1 [(buf.validate.field).sint32.gt = 5];\n\n // must be greater than 5 and less than 10 [sint32.gt_lt]\n sint32 other_value = 2 [(buf.validate.field).sint32 = { gt: 5, lt: 10 }];\n\n // must be greater than 10 or less than 5 [sint32.gt_lt_exclusive]\n sint32 another_value = 3 [(buf.validate.field).sint32 = { gt: 10, lt: 5 }];\n }\n ```\n\n\r\n\x05\x04\x0c\x02\x03\x05\x12\x04\xa9\x0e\x04\n\n\r\n\x05\x04\x0c\x02\x03\x01\x12\x04\xa9\x0e\x0b\r\n\r\n\x05\x04\x0c\x02\x03\x03\x12\x04\xa9\x0e\x10\x11\n\x0f\n\x05\x04\x0c\x02\x03\x08\x12\x06\xa9\x0e\x12\xc8\x0e\x05\n\x13\n\t\x04\x0c\x02\x03\x08\x88\t\x01\x00\x12\x06\xaa\x0e\x06\xaf\x0e\x07\n\x13\n\t\x04\x0c\x02\x03\x08\x88\t\x01\x01\x12\x06\xb0\x0e\x06\xb5\x0e\x07\n\x13\n\t\x04\x0c\x02\x03\x08\x88\t\x01\x02\x12\x06\xb6\x0e\x06\xbb\x0e\x07\n\x13\n\t\x04\x0c\x02\x03\x08\x88\t\x01\x03\x12\x06\xbc\x0e\x06\xc1\x0e\x07\n\x13\n\t\x04\x0c\x02\x03\x08\x88\t\x01\x04\x12\x06\xc2\x0e\x06\xc7\x0e\x07\n\xac\x06\n\x04\x04\x0c\x02\x04\x12\x06\xdc\x0e\x04\xfb\x0e\x06\x1a\x9b\x06 `gte` requires the field value to be greater than or equal to the specified\n value (exclusive). If the value of `gte` is larger than a specified `lt`\n or `lte`, the range is reversed, and the field value must be outside the\n specified range. If the field value doesn\'t meet the required conditions,\n an error message is generated.\n\n ```proto\n message MySInt32 {\n // must be greater than or equal to 5 [sint32.gte]\n sint32 value = 1 [(buf.validate.field).sint32.gte = 5];\n\n // must be greater than or equal to 5 and less than 10 [sint32.gte_lt]\n sint32 other_value = 2 [(buf.validate.field).sint32 = { gte: 5, lt: 10 }];\n\n // must be greater than or equal to 10 or less than 5 [sint32.gte_lt_exclusive]\n sint32 another_value = 3 [(buf.validate.field).sint32 = { gte: 10, lt: 5 }];\n }\n ```\n\n\r\n\x05\x04\x0c\x02\x04\x05\x12\x04\xdc\x0e\x04\n\n\r\n\x05\x04\x0c\x02\x04\x01\x12\x04\xdc\x0e\x0b\x0e\n\r\n\x05\x04\x0c\x02\x04\x03\x12\x04\xdc\x0e\x11\x12\n\x0f\n\x05\x04\x0c\x02\x04\x08\x12\x06\xdc\x0e\x13\xfb\x0e\x05\n\x13\n\t\x04\x0c\x02\x04\x08\x88\t\x01\x00\x12\x06\xdd\x0e\x06\xe2\x0e\x07\n\x13\n\t\x04\x0c\x02\x04\x08\x88\t\x01\x01\x12\x06\xe3\x0e\x06\xe8\x0e\x07\n\x13\n\t\x04\x0c\x02\x04\x08\x88\t\x01\x02\x12\x06\xe9\x0e\x06\xee\x0e\x07\n\x13\n\t\x04\x0c\x02\x04\x08\x88\t\x01\x03\x12\x06\xef\x0e\x06\xf4\x0e\x07\n\x13\n\t\x04\x0c\x02\x04\x08\x88\t\x01\x04\x12\x06\xf5\x0e\x06\xfa\x0e\x07\n\xc1\x02\n\x04\x04\x0c\x02\x05\x12\x06\x88\x0f\x02\x8b\x0f\x05\x1a\xb0\x02 `in` requires the field value to be equal to one of the specified values.\n If the field value isn\'t one of the specified values, an error message is\n generated.\n\n ```proto\n message MySInt32 {\n // must be in list [1, 2, 3]\n sint32 value = 1 [(buf.validate.field).sint32 = { in: [1, 2, 3] }];\n }\n ```\n\n\r\n\x05\x04\x0c\x02\x05\x04\x12\x04\x88\x0f\x02\n\n\r\n\x05\x04\x0c\x02\x05\x05\x12\x04\x88\x0f\x0b\x11\n\r\n\x05\x04\x0c\x02\x05\x01\x12\x04\x88\x0f\x12\x14\n\r\n\x05\x04\x0c\x02\x05\x03\x12\x04\x88\x0f\x17\x18\n\x0f\n\x05\x04\x0c\x02\x05\x08\x12\x06\x88\x0f\x19\x8b\x0f\x04\n\x13\n\t\x04\x0c\x02\x05\x08\x88\t\x01\x00\x12\x06\x88\x0f\x1a\x8b\x0f\x03\n\xd4\x02\n\x04\x04\x0c\x02\x06\x12\x06\x97\x0f\x02\x9a\x0f\x05\x1a\xc3\x02 `not_in` requires the field value to not be equal to any of the specified\n values. If the field value is one of the specified values, an error\n message is generated.\n\n ```proto\n message MySInt32 {\n // value must not be in list [1, 2, 3]\n sint32 value = 1 [(buf.validate.field).sint32 = { not_in: [1, 2, 3] }];\n }\n ```\n\n\r\n\x05\x04\x0c\x02\x06\x04\x12\x04\x97\x0f\x02\n\n\r\n\x05\x04\x0c\x02\x06\x05\x12\x04\x97\x0f\x0b\x11\n\r\n\x05\x04\x0c\x02\x06\x01\x12\x04\x97\x0f\x12\x18\n\r\n\x05\x04\x0c\x02\x06\x03\x12\x04\x97\x0f\x1b\x1c\n\x0f\n\x05\x04\x0c\x02\x06\x08\x12\x06\x97\x0f\x1d\x9a\x0f\x04\n\x13\n\t\x04\x0c\x02\x06\x08\x88\t\x01\x00\x12\x06\x97\x0f\x1e\x9a\x0f\x03\n\x88\x03\n\x04\x04\x0c\x02\x07\x12\x06\xa8\x0f\x02\xab\x0f\x05\x1a\xf7\x02 `example` specifies values that the field may have. These values SHOULD\n conform to other rules. `example` values will not impact validation\n but may be used as helpful guidance on how to populate the given field.\n\n ```proto\n message MySInt32 {\n sint32 value = 1 [\n (buf.validate.field).sint32.example = 1,\n (buf.validate.field).sint32.example = -10\n ];\n }\n ```\n\n\r\n\x05\x04\x0c\x02\x07\x04\x12\x04\xa8\x0f\x02\n\n\r\n\x05\x04\x0c\x02\x07\x05\x12\x04\xa8\x0f\x0b\x11\n\r\n\x05\x04\x0c\x02\x07\x01\x12\x04\xa8\x0f\x12\x19\n\r\n\x05\x04\x0c\x02\x07\x03\x12\x04\xa8\x0f\x1c\x1d\n\x0f\n\x05\x04\x0c\x02\x07\x08\x12\x06\xa8\x0f\x1e\xab\x0f\x04\n\x13\n\t\x04\x0c\x02\x07\x08\x88\t\x01\x00\x12\x06\xa8\x0f\x1f\xab\x0f\x03\n\xb8\x01\n\x03\x04\x0c\x05\x12\x04\xb0\x0f\x02\x19\x1a\xaa\x01 Extension fields that have the (buf.validate.predefined) option set\n will be treated as predefined field rules.\n See https://protovalidate.com/schemas/predefined-rules/\n\n\x0c\n\x04\x04\x0c\x05\x00\x12\x04\xb0\x0f\r\x18\n\r\n\x05\x04\x0c\x05\x00\x01\x12\x04\xb0\x0f\r\x11\n\r\n\x05\x04\x0c\x05\x00\x02\x12\x04\xb0\x0f\x15\x18\nK\n\x02\x04\r\x12\x06\xb4\x0f\x00\x80\x11\x01\x1a= SInt64Rules describes the rules applied to `sint64` values.\n\n\x0b\n\x03\x04\r\x01\x12\x04\xb4\x0f\x08\x13\n\x9a\x02\n\x04\x04\r\x02\x00\x12\x06\xbe\x0f\x02\xc1\x0f\x05\x1a\x89\x02 `const` requires the field value to exactly match the specified value. If\n the field value doesn\'t match, an error message is generated.\n\n ```proto\n message MySInt64 {\n // value must equal 42\n sint64 value = 1 [(buf.validate.field).sint64.const = 42];\n }\n ```\n\n\r\n\x05\x04\r\x02\x00\x04\x12\x04\xbe\x0f\x02\n\n\r\n\x05\x04\r\x02\x00\x05\x12\x04\xbe\x0f\x0b\x11\n\r\n\x05\x04\r\x02\x00\x01\x12\x04\xbe\x0f\x12\x17\n\r\n\x05\x04\r\x02\x00\x03\x12\x04\xbe\x0f\x1a\x1b\n\x0f\n\x05\x04\r\x02\x00\x08\x12\x06\xbe\x0f\x1c\xc1\x0f\x04\n\x13\n\t\x04\r\x02\x00\x08\x88\t\x01\x00\x12\x06\xbe\x0f\x1d\xc1\x0f\x03\n\x0e\n\x04\x04\r\x08\x00\x12\x06\xc2\x0f\x02\xe4\x0f\x03\n\r\n\x05\x04\r\x08\x00\x01\x12\x04\xc2\x0f\x08\x11\n\xc7\x02\n\x04\x04\r\x02\x01\x12\x06\xcd\x0f\x04\xd2\x0f\x07\x1a\xb6\x02 `lt` requires the field value to be less than the specified value (field\n < value). If the field value is equal to or greater than the specified\n value, an error message is generated.\n\n ```proto\n message MySInt64 {\n // must be less than 10\n sint64 value = 1 [(buf.validate.field).sint64.lt = 10];\n }\n ```\n\n\r\n\x05\x04\r\x02\x01\x05\x12\x04\xcd\x0f\x04\n\n\r\n\x05\x04\r\x02\x01\x01\x12\x04\xcd\x0f\x0b\r\n\r\n\x05\x04\r\x02\x01\x03\x12\x04\xcd\x0f\x10\x11\n\x0f\n\x05\x04\r\x02\x01\x08\x12\x06\xcd\x0f\x12\xd2\x0f\x06\n\x13\n\t\x04\r\x02\x01\x08\x88\t\x01\x00\x12\x06\xcd\x0f\x13\xd2\x0f\x05\n\xd6\x02\n\x04\x04\r\x02\x02\x12\x06\xde\x0f\x04\xe3\x0f\x07\x1a\xc5\x02 `lte` requires the field value to be less than or equal to the specified\n value (field <= value). If the field value is greater than the specified\n value, an error message is generated.\n\n ```proto\n message MySInt64 {\n // must be less than or equal to 10\n sint64 value = 1 [(buf.validate.field).sint64.lte = 10];\n }\n ```\n\n\r\n\x05\x04\r\x02\x02\x05\x12\x04\xde\x0f\x04\n\n\r\n\x05\x04\r\x02\x02\x01\x12\x04\xde\x0f\x0b\x0e\n\r\n\x05\x04\r\x02\x02\x03\x12\x04\xde\x0f\x11\x12\n\x0f\n\x05\x04\r\x02\x02\x08\x12\x06\xde\x0f\x13\xe3\x0f\x06\n\x13\n\t\x04\r\x02\x02\x08\x88\t\x01\x00\x12\x06\xde\x0f\x14\xe3\x0f\x05\n\x0e\n\x04\x04\r\x08\x01\x12\x06\xe5\x0f\x02\xcb\x10\x03\n\r\n\x05\x04\r\x08\x01\x01\x12\x04\xe5\x0f\x08\x14\n\xfa\x05\n\x04\x04\r\x02\x03\x12\x06\xf8\x0f\x04\x97\x10\x06\x1a\xe9\x05 `gt` requires the field value to be greater than the specified value\n (exclusive). If the value of `gt` is larger than a specified `lt` or\n `lte`, the range is reversed, and the field value must be outside the\n specified range. If the field value doesn\'t meet the required conditions,\n an error message is generated.\n\n ```proto\n message MySInt64 {\n // must be greater than 5 [sint64.gt]\n sint64 value = 1 [(buf.validate.field).sint64.gt = 5];\n\n // must be greater than 5 and less than 10 [sint64.gt_lt]\n sint64 other_value = 2 [(buf.validate.field).sint64 = { gt: 5, lt: 10 }];\n\n // must be greater than 10 or less than 5 [sint64.gt_lt_exclusive]\n sint64 another_value = 3 [(buf.validate.field).sint64 = { gt: 10, lt: 5 }];\n }\n ```\n\n\r\n\x05\x04\r\x02\x03\x05\x12\x04\xf8\x0f\x04\n\n\r\n\x05\x04\r\x02\x03\x01\x12\x04\xf8\x0f\x0b\r\n\r\n\x05\x04\r\x02\x03\x03\x12\x04\xf8\x0f\x10\x11\n\x0f\n\x05\x04\r\x02\x03\x08\x12\x06\xf8\x0f\x12\x97\x10\x05\n\x13\n\t\x04\r\x02\x03\x08\x88\t\x01\x00\x12\x06\xf9\x0f\x06\xfe\x0f\x07\n\x13\n\t\x04\r\x02\x03\x08\x88\t\x01\x01\x12\x06\xff\x0f\x06\x84\x10\x07\n\x13\n\t\x04\r\x02\x03\x08\x88\t\x01\x02\x12\x06\x85\x10\x06\x8a\x10\x07\n\x13\n\t\x04\r\x02\x03\x08\x88\t\x01\x03\x12\x06\x8b\x10\x06\x90\x10\x07\n\x13\n\t\x04\r\x02\x03\x08\x88\t\x01\x04\x12\x06\x91\x10\x06\x96\x10\x07\n\xb2\x06\n\x04\x04\r\x02\x04\x12\x06\xab\x10\x04\xca\x10\x06\x1a\xa1\x06 `gte` requires the field value to be greater than or equal to the specified\n value (exclusive). If the value of `gte` is larger than a specified `lt`\n or `lte`, the range is reversed, and the field value must be outside the\n specified range. If the field value doesn\'t meet the required conditions,\n an error message is generated.\n\n ```proto\n message MySInt64 {\n // must be greater than or equal to 5 [sint64.gte]\n sint64 value = 1 [(buf.validate.field).sint64.gte = 5];\n\n // must be greater than or equal to 5 and less than 10 [sint64.gte_lt]\n sint64 other_value = 2 [(buf.validate.field).sint64 = { gte: 5, lt: 10 }];\n\n // must be greater than or equal to 10 or less than 5 [sint64.gte_lt_exclusive]\n sint64 another_value = 3 [(buf.validate.field).sint64 = { gte: 10, lt: 5 }];\n }\n ```\n\n\r\n\x05\x04\r\x02\x04\x05\x12\x04\xab\x10\x04\n\n\r\n\x05\x04\r\x02\x04\x01\x12\x04\xab\x10\x0b\x0e\n\r\n\x05\x04\r\x02\x04\x03\x12\x04\xab\x10\x11\x12\n\x0f\n\x05\x04\r\x02\x04\x08\x12\x06\xab\x10\x13\xca\x10\x05\n\x13\n\t\x04\r\x02\x04\x08\x88\t\x01\x00\x12\x06\xac\x10\x06\xb1\x10\x07\n\x13\n\t\x04\r\x02\x04\x08\x88\t\x01\x01\x12\x06\xb2\x10\x06\xb7\x10\x07\n\x13\n\t\x04\r\x02\x04\x08\x88\t\x01\x02\x12\x06\xb8\x10\x06\xbd\x10\x07\n\x13\n\t\x04\r\x02\x04\x08\x88\t\x01\x03\x12\x06\xbe\x10\x06\xc3\x10\x07\n\x13\n\t\x04\r\x02\x04\x08\x88\t\x01\x04\x12\x06\xc4\x10\x06\xc9\x10\x07\n\xc1\x02\n\x04\x04\r\x02\x05\x12\x06\xd7\x10\x02\xda\x10\x05\x1a\xb0\x02 `in` requires the field value to be equal to one of the specified values.\n If the field value isn\'t one of the specified values, an error message\n is generated.\n\n ```proto\n message MySInt64 {\n // must be in list [1, 2, 3]\n sint64 value = 1 [(buf.validate.field).sint64 = { in: [1, 2, 3] }];\n }\n ```\n\n\r\n\x05\x04\r\x02\x05\x04\x12\x04\xd7\x10\x02\n\n\r\n\x05\x04\r\x02\x05\x05\x12\x04\xd7\x10\x0b\x11\n\r\n\x05\x04\r\x02\x05\x01\x12\x04\xd7\x10\x12\x14\n\r\n\x05\x04\r\x02\x05\x03\x12\x04\xd7\x10\x17\x18\n\x0f\n\x05\x04\r\x02\x05\x08\x12\x06\xd7\x10\x19\xda\x10\x04\n\x13\n\t\x04\r\x02\x05\x08\x88\t\x01\x00\x12\x06\xd7\x10\x1a\xda\x10\x03\n\xd4\x02\n\x04\x04\r\x02\x06\x12\x06\xe6\x10\x02\xe9\x10\x05\x1a\xc3\x02 `not_in` requires the field value to not be equal to any of the specified\n values. If the field value is one of the specified values, an error\n message is generated.\n\n ```proto\n message MySInt64 {\n // value must not be in list [1, 2, 3]\n sint64 value = 1 [(buf.validate.field).sint64 = { not_in: [1, 2, 3] }];\n }\n ```\n\n\r\n\x05\x04\r\x02\x06\x04\x12\x04\xe6\x10\x02\n\n\r\n\x05\x04\r\x02\x06\x05\x12\x04\xe6\x10\x0b\x11\n\r\n\x05\x04\r\x02\x06\x01\x12\x04\xe6\x10\x12\x18\n\r\n\x05\x04\r\x02\x06\x03\x12\x04\xe6\x10\x1b\x1c\n\x0f\n\x05\x04\r\x02\x06\x08\x12\x06\xe6\x10\x1d\xe9\x10\x04\n\x13\n\t\x04\r\x02\x06\x08\x88\t\x01\x00\x12\x06\xe6\x10\x1e\xe9\x10\x03\n\x88\x03\n\x04\x04\r\x02\x07\x12\x06\xf7\x10\x02\xfa\x10\x05\x1a\xf7\x02 `example` specifies values that the field may have. These values SHOULD\n conform to other rules. `example` values will not impact validation\n but may be used as helpful guidance on how to populate the given field.\n\n ```proto\n message MySInt64 {\n sint64 value = 1 [\n (buf.validate.field).sint64.example = 1,\n (buf.validate.field).sint64.example = -10\n ];\n }\n ```\n\n\r\n\x05\x04\r\x02\x07\x04\x12\x04\xf7\x10\x02\n\n\r\n\x05\x04\r\x02\x07\x05\x12\x04\xf7\x10\x0b\x11\n\r\n\x05\x04\r\x02\x07\x01\x12\x04\xf7\x10\x12\x19\n\r\n\x05\x04\r\x02\x07\x03\x12\x04\xf7\x10\x1c\x1d\n\x0f\n\x05\x04\r\x02\x07\x08\x12\x06\xf7\x10\x1e\xfa\x10\x04\n\x13\n\t\x04\r\x02\x07\x08\x88\t\x01\x00\x12\x06\xf7\x10\x1f\xfa\x10\x03\n\xb8\x01\n\x03\x04\r\x05\x12\x04\xff\x10\x02\x19\x1a\xaa\x01 Extension fields that have the (buf.validate.predefined) option set\n will be treated as predefined field rules.\n See https://protovalidate.com/schemas/predefined-rules/\n\n\x0c\n\x04\x04\r\x05\x00\x12\x04\xff\x10\r\x18\n\r\n\x05\x04\r\x05\x00\x01\x12\x04\xff\x10\r\x11\n\r\n\x05\x04\r\x05\x00\x02\x12\x04\xff\x10\x15\x18\nM\n\x02\x04\x0e\x12\x06\x83\x11\x00\xcf\x12\x01\x1a? Fixed32Rules describes the rules applied to `fixed32` values.\n\n\x0b\n\x03\x04\x0e\x01\x12\x04\x83\x11\x08\x14\n\x9d\x02\n\x04\x04\x0e\x02\x00\x12\x06\x8d\x11\x02\x90\x11\x05\x1a\x8c\x02 `const` requires the field value to exactly match the specified value.\n If the field value doesn\'t match, an error message is generated.\n\n ```proto\n message MyFixed32 {\n // value must equal 42\n fixed32 value = 1 [(buf.validate.field).fixed32.const = 42];\n }\n ```\n\n\r\n\x05\x04\x0e\x02\x00\x04\x12\x04\x8d\x11\x02\n\n\r\n\x05\x04\x0e\x02\x00\x05\x12\x04\x8d\x11\x0b\x12\n\r\n\x05\x04\x0e\x02\x00\x01\x12\x04\x8d\x11\x13\x18\n\r\n\x05\x04\x0e\x02\x00\x03\x12\x04\x8d\x11\x1b\x1c\n\x0f\n\x05\x04\x0e\x02\x00\x08\x12\x06\x8d\x11\x1d\x90\x11\x04\n\x13\n\t\x04\x0e\x02\x00\x08\x88\t\x01\x00\x12\x06\x8d\x11\x1e\x90\x11\x03\n\x0e\n\x04\x04\x0e\x08\x00\x12\x06\x91\x11\x02\xb3\x11\x03\n\r\n\x05\x04\x0e\x08\x00\x01\x12\x04\x91\x11\x08\x11\n\xca\x02\n\x04\x04\x0e\x02\x01\x12\x06\x9c\x11\x04\xa1\x11\x07\x1a\xb9\x02 `lt` requires the field value to be less than the specified value (field <\n value). If the field value is equal to or greater than the specified value,\n an error message is generated.\n\n ```proto\n message MyFixed32 {\n // must be less than 10\n fixed32 value = 1 [(buf.validate.field).fixed32.lt = 10];\n }\n ```\n\n\r\n\x05\x04\x0e\x02\x01\x05\x12\x04\x9c\x11\x04\x0b\n\r\n\x05\x04\x0e\x02\x01\x01\x12\x04\x9c\x11\x0c\x0e\n\r\n\x05\x04\x0e\x02\x01\x03\x12\x04\x9c\x11\x11\x12\n\x0f\n\x05\x04\x0e\x02\x01\x08\x12\x06\x9c\x11\x13\xa1\x11\x06\n\x13\n\t\x04\x0e\x02\x01\x08\x88\t\x01\x00\x12\x06\x9c\x11\x14\xa1\x11\x05\n\xd9\x02\n\x04\x04\x0e\x02\x02\x12\x06\xad\x11\x04\xb2\x11\x07\x1a\xc8\x02 `lte` requires the field value to be less than or equal to the specified\n value (field <= value). If the field value is greater than the specified\n value, an error message is generated.\n\n ```proto\n message MyFixed32 {\n // must be less than or equal to 10\n fixed32 value = 1 [(buf.validate.field).fixed32.lte = 10];\n }\n ```\n\n\r\n\x05\x04\x0e\x02\x02\x05\x12\x04\xad\x11\x04\x0b\n\r\n\x05\x04\x0e\x02\x02\x01\x12\x04\xad\x11\x0c\x0f\n\r\n\x05\x04\x0e\x02\x02\x03\x12\x04\xad\x11\x12\x13\n\x0f\n\x05\x04\x0e\x02\x02\x08\x12\x06\xad\x11\x14\xb2\x11\x06\n\x13\n\t\x04\x0e\x02\x02\x08\x88\t\x01\x00\x12\x06\xad\x11\x15\xb2\x11\x05\n\x0e\n\x04\x04\x0e\x08\x01\x12\x06\xb4\x11\x02\x9a\x12\x03\n\r\n\x05\x04\x0e\x08\x01\x01\x12\x04\xb4\x11\x08\x14\n\x84\x06\n\x04\x04\x0e\x02\x03\x12\x06\xc7\x11\x04\xe6\x11\x06\x1a\xf3\x05 `gt` requires the field value to be greater than the specified value\n (exclusive). If the value of `gt` is larger than a specified `lt` or\n `lte`, the range is reversed, and the field value must be outside the\n specified range. If the field value doesn\'t meet the required conditions,\n an error message is generated.\n\n ```proto\n message MyFixed32 {\n // must be greater than 5 [fixed32.gt]\n fixed32 value = 1 [(buf.validate.field).fixed32.gt = 5];\n\n // must be greater than 5 and less than 10 [fixed32.gt_lt]\n fixed32 other_value = 2 [(buf.validate.field).fixed32 = { gt: 5, lt: 10 }];\n\n // must be greater than 10 or less than 5 [fixed32.gt_lt_exclusive]\n fixed32 another_value = 3 [(buf.validate.field).fixed32 = { gt: 10, lt: 5 }];\n }\n ```\n\n\r\n\x05\x04\x0e\x02\x03\x05\x12\x04\xc7\x11\x04\x0b\n\r\n\x05\x04\x0e\x02\x03\x01\x12\x04\xc7\x11\x0c\x0e\n\r\n\x05\x04\x0e\x02\x03\x03\x12\x04\xc7\x11\x11\x12\n\x0f\n\x05\x04\x0e\x02\x03\x08\x12\x06\xc7\x11\x13\xe6\x11\x05\n\x13\n\t\x04\x0e\x02\x03\x08\x88\t\x01\x00\x12\x06\xc8\x11\x06\xcd\x11\x07\n\x13\n\t\x04\x0e\x02\x03\x08\x88\t\x01\x01\x12\x06\xce\x11\x06\xd3\x11\x07\n\x13\n\t\x04\x0e\x02\x03\x08\x88\t\x01\x02\x12\x06\xd4\x11\x06\xd9\x11\x07\n\x13\n\t\x04\x0e\x02\x03\x08\x88\t\x01\x03\x12\x06\xda\x11\x06\xdf\x11\x07\n\x13\n\t\x04\x0e\x02\x03\x08\x88\t\x01\x04\x12\x06\xe0\x11\x06\xe5\x11\x07\n\xbc\x06\n\x04\x04\x0e\x02\x04\x12\x06\xfa\x11\x04\x99\x12\x06\x1a\xab\x06 `gte` requires the field value to be greater than or equal to the specified\n value (exclusive). If the value of `gte` is larger than a specified `lt`\n or `lte`, the range is reversed, and the field value must be outside the\n specified range. If the field value doesn\'t meet the required conditions,\n an error message is generated.\n\n ```proto\n message MyFixed32 {\n // must be greater than or equal to 5 [fixed32.gte]\n fixed32 value = 1 [(buf.validate.field).fixed32.gte = 5];\n\n // must be greater than or equal to 5 and less than 10 [fixed32.gte_lt]\n fixed32 other_value = 2 [(buf.validate.field).fixed32 = { gte: 5, lt: 10 }];\n\n // must be greater than or equal to 10 or less than 5 [fixed32.gte_lt_exclusive]\n fixed32 another_value = 3 [(buf.validate.field).fixed32 = { gte: 10, lt: 5 }];\n }\n ```\n\n\r\n\x05\x04\x0e\x02\x04\x05\x12\x04\xfa\x11\x04\x0b\n\r\n\x05\x04\x0e\x02\x04\x01\x12\x04\xfa\x11\x0c\x0f\n\r\n\x05\x04\x0e\x02\x04\x03\x12\x04\xfa\x11\x12\x13\n\x0f\n\x05\x04\x0e\x02\x04\x08\x12\x06\xfa\x11\x14\x99\x12\x05\n\x13\n\t\x04\x0e\x02\x04\x08\x88\t\x01\x00\x12\x06\xfb\x11\x06\x80\x12\x07\n\x13\n\t\x04\x0e\x02\x04\x08\x88\t\x01\x01\x12\x06\x81\x12\x06\x86\x12\x07\n\x13\n\t\x04\x0e\x02\x04\x08\x88\t\x01\x02\x12\x06\x87\x12\x06\x8c\x12\x07\n\x13\n\t\x04\x0e\x02\x04\x08\x88\t\x01\x03\x12\x06\x8d\x12\x06\x92\x12\x07\n\x13\n\t\x04\x0e\x02\x04\x08\x88\t\x01\x04\x12\x06\x93\x12\x06\x98\x12\x07\n\xc4\x02\n\x04\x04\x0e\x02\x05\x12\x06\xa6\x12\x02\xa9\x12\x05\x1a\xb3\x02 `in` requires the field value to be equal to one of the specified values.\n If the field value isn\'t one of the specified values, an error message\n is generated.\n\n ```proto\n message MyFixed32 {\n // must be in list [1, 2, 3]\n fixed32 value = 1 [(buf.validate.field).fixed32 = { in: [1, 2, 3] }];\n }\n ```\n\n\r\n\x05\x04\x0e\x02\x05\x04\x12\x04\xa6\x12\x02\n\n\r\n\x05\x04\x0e\x02\x05\x05\x12\x04\xa6\x12\x0b\x12\n\r\n\x05\x04\x0e\x02\x05\x01\x12\x04\xa6\x12\x13\x15\n\r\n\x05\x04\x0e\x02\x05\x03\x12\x04\xa6\x12\x18\x19\n\x0f\n\x05\x04\x0e\x02\x05\x08\x12\x06\xa6\x12\x1a\xa9\x12\x04\n\x13\n\t\x04\x0e\x02\x05\x08\x88\t\x01\x00\x12\x06\xa6\x12\x1b\xa9\x12\x03\n\xd7\x02\n\x04\x04\x0e\x02\x06\x12\x06\xb5\x12\x02\xb8\x12\x05\x1a\xc6\x02 `not_in` requires the field value to not be equal to any of the specified\n values. If the field value is one of the specified values, an error\n message is generated.\n\n ```proto\n message MyFixed32 {\n // value must not be in list [1, 2, 3]\n fixed32 value = 1 [(buf.validate.field).fixed32 = { not_in: [1, 2, 3] }];\n }\n ```\n\n\r\n\x05\x04\x0e\x02\x06\x04\x12\x04\xb5\x12\x02\n\n\r\n\x05\x04\x0e\x02\x06\x05\x12\x04\xb5\x12\x0b\x12\n\r\n\x05\x04\x0e\x02\x06\x01\x12\x04\xb5\x12\x13\x19\n\r\n\x05\x04\x0e\x02\x06\x03\x12\x04\xb5\x12\x1c\x1d\n\x0f\n\x05\x04\x0e\x02\x06\x08\x12\x06\xb5\x12\x1e\xb8\x12\x04\n\x13\n\t\x04\x0e\x02\x06\x08\x88\t\x01\x00\x12\x06\xb5\x12\x1f\xb8\x12\x03\n\x8a\x03\n\x04\x04\x0e\x02\x07\x12\x06\xc6\x12\x02\xc9\x12\x05\x1a\xf9\x02 `example` specifies values that the field may have. These values SHOULD\n conform to other rules. `example` values will not impact validation\n but may be used as helpful guidance on how to populate the given field.\n\n ```proto\n message MyFixed32 {\n fixed32 value = 1 [\n (buf.validate.field).fixed32.example = 1,\n (buf.validate.field).fixed32.example = 2\n ];\n }\n ```\n\n\r\n\x05\x04\x0e\x02\x07\x04\x12\x04\xc6\x12\x02\n\n\r\n\x05\x04\x0e\x02\x07\x05\x12\x04\xc6\x12\x0b\x12\n\r\n\x05\x04\x0e\x02\x07\x01\x12\x04\xc6\x12\x13\x1a\n\r\n\x05\x04\x0e\x02\x07\x03\x12\x04\xc6\x12\x1d\x1e\n\x0f\n\x05\x04\x0e\x02\x07\x08\x12\x06\xc6\x12\x1f\xc9\x12\x04\n\x13\n\t\x04\x0e\x02\x07\x08\x88\t\x01\x00\x12\x06\xc6\x12 \xc9\x12\x03\n\xb8\x01\n\x03\x04\x0e\x05\x12\x04\xce\x12\x02\x19\x1a\xaa\x01 Extension fields that have the (buf.validate.predefined) option set\n will be treated as predefined field rules.\n See https://protovalidate.com/schemas/predefined-rules/\n\n\x0c\n\x04\x04\x0e\x05\x00\x12\x04\xce\x12\r\x18\n\r\n\x05\x04\x0e\x05\x00\x01\x12\x04\xce\x12\r\x11\n\r\n\x05\x04\x0e\x05\x00\x02\x12\x04\xce\x12\x15\x18\nM\n\x02\x04\x0f\x12\x06\xd2\x12\x00\x9e\x14\x01\x1a? Fixed64Rules describes the rules applied to `fixed64` values.\n\n\x0b\n\x03\x04\x0f\x01\x12\x04\xd2\x12\x08\x14\n\x9d\x02\n\x04\x04\x0f\x02\x00\x12\x06\xdc\x12\x02\xdf\x12\x05\x1a\x8c\x02 `const` requires the field value to exactly match the specified value. If\n the field value doesn\'t match, an error message is generated.\n\n ```proto\n message MyFixed64 {\n // value must equal 42\n fixed64 value = 1 [(buf.validate.field).fixed64.const = 42];\n }\n ```\n\n\r\n\x05\x04\x0f\x02\x00\x04\x12\x04\xdc\x12\x02\n\n\r\n\x05\x04\x0f\x02\x00\x05\x12\x04\xdc\x12\x0b\x12\n\r\n\x05\x04\x0f\x02\x00\x01\x12\x04\xdc\x12\x13\x18\n\r\n\x05\x04\x0f\x02\x00\x03\x12\x04\xdc\x12\x1b\x1c\n\x0f\n\x05\x04\x0f\x02\x00\x08\x12\x06\xdc\x12\x1d\xdf\x12\x04\n\x13\n\t\x04\x0f\x02\x00\x08\x88\t\x01\x00\x12\x06\xdc\x12\x1e\xdf\x12\x03\n\x0e\n\x04\x04\x0f\x08\x00\x12\x06\xe0\x12\x02\x82\x13\x03\n\r\n\x05\x04\x0f\x08\x00\x01\x12\x04\xe0\x12\x08\x11\n\xca\x02\n\x04\x04\x0f\x02\x01\x12\x06\xeb\x12\x04\xf0\x12\x07\x1a\xb9\x02 `lt` requires the field value to be less than the specified value (field <\n value). If the field value is equal to or greater than the specified value,\n an error message is generated.\n\n ```proto\n message MyFixed64 {\n // must be less than 10\n fixed64 value = 1 [(buf.validate.field).fixed64.lt = 10];\n }\n ```\n\n\r\n\x05\x04\x0f\x02\x01\x05\x12\x04\xeb\x12\x04\x0b\n\r\n\x05\x04\x0f\x02\x01\x01\x12\x04\xeb\x12\x0c\x0e\n\r\n\x05\x04\x0f\x02\x01\x03\x12\x04\xeb\x12\x11\x12\n\x0f\n\x05\x04\x0f\x02\x01\x08\x12\x06\xeb\x12\x13\xf0\x12\x06\n\x13\n\t\x04\x0f\x02\x01\x08\x88\t\x01\x00\x12\x06\xeb\x12\x14\xf0\x12\x05\n\xd9\x02\n\x04\x04\x0f\x02\x02\x12\x06\xfc\x12\x04\x81\x13\x07\x1a\xc8\x02 `lte` requires the field value to be less than or equal to the specified\n value (field <= value). If the field value is greater than the specified\n value, an error message is generated.\n\n ```proto\n message MyFixed64 {\n // must be less than or equal to 10\n fixed64 value = 1 [(buf.validate.field).fixed64.lte = 10];\n }\n ```\n\n\r\n\x05\x04\x0f\x02\x02\x05\x12\x04\xfc\x12\x04\x0b\n\r\n\x05\x04\x0f\x02\x02\x01\x12\x04\xfc\x12\x0c\x0f\n\r\n\x05\x04\x0f\x02\x02\x03\x12\x04\xfc\x12\x12\x13\n\x0f\n\x05\x04\x0f\x02\x02\x08\x12\x06\xfc\x12\x14\x81\x13\x06\n\x13\n\t\x04\x0f\x02\x02\x08\x88\t\x01\x00\x12\x06\xfc\x12\x15\x81\x13\x05\n\x0e\n\x04\x04\x0f\x08\x01\x12\x06\x83\x13\x02\xe9\x13\x03\n\r\n\x05\x04\x0f\x08\x01\x01\x12\x04\x83\x13\x08\x14\n\x84\x06\n\x04\x04\x0f\x02\x03\x12\x06\x96\x13\x04\xb5\x13\x06\x1a\xf3\x05 `gt` requires the field value to be greater than the specified value\n (exclusive). If the value of `gt` is larger than a specified `lt` or\n `lte`, the range is reversed, and the field value must be outside the\n specified range. If the field value doesn\'t meet the required conditions,\n an error message is generated.\n\n ```proto\n message MyFixed64 {\n // must be greater than 5 [fixed64.gt]\n fixed64 value = 1 [(buf.validate.field).fixed64.gt = 5];\n\n // must be greater than 5 and less than 10 [fixed64.gt_lt]\n fixed64 other_value = 2 [(buf.validate.field).fixed64 = { gt: 5, lt: 10 }];\n\n // must be greater than 10 or less than 5 [fixed64.gt_lt_exclusive]\n fixed64 another_value = 3 [(buf.validate.field).fixed64 = { gt: 10, lt: 5 }];\n }\n ```\n\n\r\n\x05\x04\x0f\x02\x03\x05\x12\x04\x96\x13\x04\x0b\n\r\n\x05\x04\x0f\x02\x03\x01\x12\x04\x96\x13\x0c\x0e\n\r\n\x05\x04\x0f\x02\x03\x03\x12\x04\x96\x13\x11\x12\n\x0f\n\x05\x04\x0f\x02\x03\x08\x12\x06\x96\x13\x13\xb5\x13\x05\n\x13\n\t\x04\x0f\x02\x03\x08\x88\t\x01\x00\x12\x06\x97\x13\x06\x9c\x13\x07\n\x13\n\t\x04\x0f\x02\x03\x08\x88\t\x01\x01\x12\x06\x9d\x13\x06\xa2\x13\x07\n\x13\n\t\x04\x0f\x02\x03\x08\x88\t\x01\x02\x12\x06\xa3\x13\x06\xa8\x13\x07\n\x13\n\t\x04\x0f\x02\x03\x08\x88\t\x01\x03\x12\x06\xa9\x13\x06\xae\x13\x07\n\x13\n\t\x04\x0f\x02\x03\x08\x88\t\x01\x04\x12\x06\xaf\x13\x06\xb4\x13\x07\n\xbc\x06\n\x04\x04\x0f\x02\x04\x12\x06\xc9\x13\x04\xe8\x13\x06\x1a\xab\x06 `gte` requires the field value to be greater than or equal to the specified\n value (exclusive). If the value of `gte` is larger than a specified `lt`\n or `lte`, the range is reversed, and the field value must be outside the\n specified range. If the field value doesn\'t meet the required conditions,\n an error message is generated.\n\n ```proto\n message MyFixed64 {\n // must be greater than or equal to 5 [fixed64.gte]\n fixed64 value = 1 [(buf.validate.field).fixed64.gte = 5];\n\n // must be greater than or equal to 5 and less than 10 [fixed64.gte_lt]\n fixed64 other_value = 2 [(buf.validate.field).fixed64 = { gte: 5, lt: 10 }];\n\n // must be greater than or equal to 10 or less than 5 [fixed64.gte_lt_exclusive]\n fixed64 another_value = 3 [(buf.validate.field).fixed64 = { gte: 10, lt: 5 }];\n }\n ```\n\n\r\n\x05\x04\x0f\x02\x04\x05\x12\x04\xc9\x13\x04\x0b\n\r\n\x05\x04\x0f\x02\x04\x01\x12\x04\xc9\x13\x0c\x0f\n\r\n\x05\x04\x0f\x02\x04\x03\x12\x04\xc9\x13\x12\x13\n\x0f\n\x05\x04\x0f\x02\x04\x08\x12\x06\xc9\x13\x14\xe8\x13\x05\n\x13\n\t\x04\x0f\x02\x04\x08\x88\t\x01\x00\x12\x06\xca\x13\x06\xcf\x13\x07\n\x13\n\t\x04\x0f\x02\x04\x08\x88\t\x01\x01\x12\x06\xd0\x13\x06\xd5\x13\x07\n\x13\n\t\x04\x0f\x02\x04\x08\x88\t\x01\x02\x12\x06\xd6\x13\x06\xdb\x13\x07\n\x13\n\t\x04\x0f\x02\x04\x08\x88\t\x01\x03\x12\x06\xdc\x13\x06\xe1\x13\x07\n\x13\n\t\x04\x0f\x02\x04\x08\x88\t\x01\x04\x12\x06\xe2\x13\x06\xe7\x13\x07\n\xc4\x02\n\x04\x04\x0f\x02\x05\x12\x06\xf5\x13\x02\xf8\x13\x05\x1a\xb3\x02 `in` requires the field value to be equal to one of the specified values.\n If the field value isn\'t one of the specified values, an error message is\n generated.\n\n ```proto\n message MyFixed64 {\n // must be in list [1, 2, 3]\n fixed64 value = 1 [(buf.validate.field).fixed64 = { in: [1, 2, 3] }];\n }\n ```\n\n\r\n\x05\x04\x0f\x02\x05\x04\x12\x04\xf5\x13\x02\n\n\r\n\x05\x04\x0f\x02\x05\x05\x12\x04\xf5\x13\x0b\x12\n\r\n\x05\x04\x0f\x02\x05\x01\x12\x04\xf5\x13\x13\x15\n\r\n\x05\x04\x0f\x02\x05\x03\x12\x04\xf5\x13\x18\x19\n\x0f\n\x05\x04\x0f\x02\x05\x08\x12\x06\xf5\x13\x1a\xf8\x13\x04\n\x13\n\t\x04\x0f\x02\x05\x08\x88\t\x01\x00\x12\x06\xf5\x13\x1b\xf8\x13\x03\n\xd7\x02\n\x04\x04\x0f\x02\x06\x12\x06\x84\x14\x02\x87\x14\x05\x1a\xc6\x02 `not_in` requires the field value to not be equal to any of the specified\n values. If the field value is one of the specified values, an error\n message is generated.\n\n ```proto\n message MyFixed64 {\n // value must not be in list [1, 2, 3]\n fixed64 value = 1 [(buf.validate.field).fixed64 = { not_in: [1, 2, 3] }];\n }\n ```\n\n\r\n\x05\x04\x0f\x02\x06\x04\x12\x04\x84\x14\x02\n\n\r\n\x05\x04\x0f\x02\x06\x05\x12\x04\x84\x14\x0b\x12\n\r\n\x05\x04\x0f\x02\x06\x01\x12\x04\x84\x14\x13\x19\n\r\n\x05\x04\x0f\x02\x06\x03\x12\x04\x84\x14\x1c\x1d\n\x0f\n\x05\x04\x0f\x02\x06\x08\x12\x06\x84\x14\x1e\x87\x14\x04\n\x13\n\t\x04\x0f\x02\x06\x08\x88\t\x01\x00\x12\x06\x84\x14\x1f\x87\x14\x03\n\x8a\x03\n\x04\x04\x0f\x02\x07\x12\x06\x95\x14\x02\x98\x14\x05\x1a\xf9\x02 `example` specifies values that the field may have. These values SHOULD\n conform to other rules. `example` values will not impact validation\n but may be used as helpful guidance on how to populate the given field.\n\n ```proto\n message MyFixed64 {\n fixed64 value = 1 [\n (buf.validate.field).fixed64.example = 1,\n (buf.validate.field).fixed64.example = 2\n ];\n }\n ```\n\n\r\n\x05\x04\x0f\x02\x07\x04\x12\x04\x95\x14\x02\n\n\r\n\x05\x04\x0f\x02\x07\x05\x12\x04\x95\x14\x0b\x12\n\r\n\x05\x04\x0f\x02\x07\x01\x12\x04\x95\x14\x13\x1a\n\r\n\x05\x04\x0f\x02\x07\x03\x12\x04\x95\x14\x1d\x1e\n\x0f\n\x05\x04\x0f\x02\x07\x08\x12\x06\x95\x14\x1f\x98\x14\x04\n\x13\n\t\x04\x0f\x02\x07\x08\x88\t\x01\x00\x12\x06\x95\x14 \x98\x14\x03\n\xb8\x01\n\x03\x04\x0f\x05\x12\x04\x9d\x14\x02\x19\x1a\xaa\x01 Extension fields that have the (buf.validate.predefined) option set\n will be treated as predefined field rules.\n See https://protovalidate.com/schemas/predefined-rules/\n\n\x0c\n\x04\x04\x0f\x05\x00\x12\x04\x9d\x14\r\x18\n\r\n\x05\x04\x0f\x05\x00\x01\x12\x04\x9d\x14\r\x11\n\r\n\x05\x04\x0f\x05\x00\x02\x12\x04\x9d\x14\x15\x18\nN\n\x02\x04\x10\x12\x06\xa1\x14\x00\xed\x15\x01\x1a@ SFixed32Rules describes the rules applied to `fixed32` values.\n\n\x0b\n\x03\x04\x10\x01\x12\x04\xa1\x14\x08\x15\n\xa0\x02\n\x04\x04\x10\x02\x00\x12\x06\xab\x14\x02\xae\x14\x05\x1a\x8f\x02 `const` requires the field value to exactly match the specified value. If\n the field value doesn\'t match, an error message is generated.\n\n ```proto\n message MySFixed32 {\n // value must equal 42\n sfixed32 value = 1 [(buf.validate.field).sfixed32.const = 42];\n }\n ```\n\n\r\n\x05\x04\x10\x02\x00\x04\x12\x04\xab\x14\x02\n\n\r\n\x05\x04\x10\x02\x00\x05\x12\x04\xab\x14\x0b\x13\n\r\n\x05\x04\x10\x02\x00\x01\x12\x04\xab\x14\x14\x19\n\r\n\x05\x04\x10\x02\x00\x03\x12\x04\xab\x14\x1c\x1d\n\x0f\n\x05\x04\x10\x02\x00\x08\x12\x06\xab\x14\x1e\xae\x14\x04\n\x13\n\t\x04\x10\x02\x00\x08\x88\t\x01\x00\x12\x06\xab\x14\x1f\xae\x14\x03\n\x0e\n\x04\x04\x10\x08\x00\x12\x06\xaf\x14\x02\xd1\x14\x03\n\r\n\x05\x04\x10\x08\x00\x01\x12\x04\xaf\x14\x08\x11\n\xcd\x02\n\x04\x04\x10\x02\x01\x12\x06\xba\x14\x04\xbf\x14\x07\x1a\xbc\x02 `lt` requires the field value to be less than the specified value (field <\n value). If the field value is equal to or greater than the specified value,\n an error message is generated.\n\n ```proto\n message MySFixed32 {\n // must be less than 10\n sfixed32 value = 1 [(buf.validate.field).sfixed32.lt = 10];\n }\n ```\n\n\r\n\x05\x04\x10\x02\x01\x05\x12\x04\xba\x14\x04\x0c\n\r\n\x05\x04\x10\x02\x01\x01\x12\x04\xba\x14\r\x0f\n\r\n\x05\x04\x10\x02\x01\x03\x12\x04\xba\x14\x12\x13\n\x0f\n\x05\x04\x10\x02\x01\x08\x12\x06\xba\x14\x14\xbf\x14\x06\n\x13\n\t\x04\x10\x02\x01\x08\x88\t\x01\x00\x12\x06\xba\x14\x15\xbf\x14\x05\n\xdc\x02\n\x04\x04\x10\x02\x02\x12\x06\xcb\x14\x04\xd0\x14\x07\x1a\xcb\x02 `lte` requires the field value to be less than or equal to the specified\n value (field <= value). If the field value is greater than the specified\n value, an error message is generated.\n\n ```proto\n message MySFixed32 {\n // must be less than or equal to 10\n sfixed32 value = 1 [(buf.validate.field).sfixed32.lte = 10];\n }\n ```\n\n\r\n\x05\x04\x10\x02\x02\x05\x12\x04\xcb\x14\x04\x0c\n\r\n\x05\x04\x10\x02\x02\x01\x12\x04\xcb\x14\r\x10\n\r\n\x05\x04\x10\x02\x02\x03\x12\x04\xcb\x14\x13\x14\n\x0f\n\x05\x04\x10\x02\x02\x08\x12\x06\xcb\x14\x15\xd0\x14\x06\n\x13\n\t\x04\x10\x02\x02\x08\x88\t\x01\x00\x12\x06\xcb\x14\x16\xd0\x14\x05\n\x0e\n\x04\x04\x10\x08\x01\x12\x06\xd2\x14\x02\xb8\x15\x03\n\r\n\x05\x04\x10\x08\x01\x01\x12\x04\xd2\x14\x08\x14\n\x8e\x06\n\x04\x04\x10\x02\x03\x12\x06\xe5\x14\x04\x84\x15\x06\x1a\xfd\x05 `gt` requires the field value to be greater than the specified value\n (exclusive). If the value of `gt` is larger than a specified `lt` or\n `lte`, the range is reversed, and the field value must be outside the\n specified range. If the field value doesn\'t meet the required conditions,\n an error message is generated.\n\n ```proto\n message MySFixed32 {\n // must be greater than 5 [sfixed32.gt]\n sfixed32 value = 1 [(buf.validate.field).sfixed32.gt = 5];\n\n // must be greater than 5 and less than 10 [sfixed32.gt_lt]\n sfixed32 other_value = 2 [(buf.validate.field).sfixed32 = { gt: 5, lt: 10 }];\n\n // must be greater than 10 or less than 5 [sfixed32.gt_lt_exclusive]\n sfixed32 another_value = 3 [(buf.validate.field).sfixed32 = { gt: 10, lt: 5 }];\n }\n ```\n\n\r\n\x05\x04\x10\x02\x03\x05\x12\x04\xe5\x14\x04\x0c\n\r\n\x05\x04\x10\x02\x03\x01\x12\x04\xe5\x14\r\x0f\n\r\n\x05\x04\x10\x02\x03\x03\x12\x04\xe5\x14\x12\x13\n\x0f\n\x05\x04\x10\x02\x03\x08\x12\x06\xe5\x14\x14\x84\x15\x05\n\x13\n\t\x04\x10\x02\x03\x08\x88\t\x01\x00\x12\x06\xe6\x14\x06\xeb\x14\x07\n\x13\n\t\x04\x10\x02\x03\x08\x88\t\x01\x01\x12\x06\xec\x14\x06\xf1\x14\x07\n\x13\n\t\x04\x10\x02\x03\x08\x88\t\x01\x02\x12\x06\xf2\x14\x06\xf7\x14\x07\n\x13\n\t\x04\x10\x02\x03\x08\x88\t\x01\x03\x12\x06\xf8\x14\x06\xfd\x14\x07\n\x13\n\t\x04\x10\x02\x03\x08\x88\t\x01\x04\x12\x06\xfe\x14\x06\x83\x15\x07\n\xc6\x06\n\x04\x04\x10\x02\x04\x12\x06\x98\x15\x04\xb7\x15\x06\x1a\xb5\x06 `gte` requires the field value to be greater than or equal to the specified\n value (exclusive). If the value of `gte` is larger than a specified `lt`\n or `lte`, the range is reversed, and the field value must be outside the\n specified range. If the field value doesn\'t meet the required conditions,\n an error message is generated.\n\n ```proto\n message MySFixed32 {\n // must be greater than or equal to 5 [sfixed32.gte]\n sfixed32 value = 1 [(buf.validate.field).sfixed32.gte = 5];\n\n // must be greater than or equal to 5 and less than 10 [sfixed32.gte_lt]\n sfixed32 other_value = 2 [(buf.validate.field).sfixed32 = { gte: 5, lt: 10 }];\n\n // must be greater than or equal to 10 or less than 5 [sfixed32.gte_lt_exclusive]\n sfixed32 another_value = 3 [(buf.validate.field).sfixed32 = { gte: 10, lt: 5 }];\n }\n ```\n\n\r\n\x05\x04\x10\x02\x04\x05\x12\x04\x98\x15\x04\x0c\n\r\n\x05\x04\x10\x02\x04\x01\x12\x04\x98\x15\r\x10\n\r\n\x05\x04\x10\x02\x04\x03\x12\x04\x98\x15\x13\x14\n\x0f\n\x05\x04\x10\x02\x04\x08\x12\x06\x98\x15\x15\xb7\x15\x05\n\x13\n\t\x04\x10\x02\x04\x08\x88\t\x01\x00\x12\x06\x99\x15\x06\x9e\x15\x07\n\x13\n\t\x04\x10\x02\x04\x08\x88\t\x01\x01\x12\x06\x9f\x15\x06\xa4\x15\x07\n\x13\n\t\x04\x10\x02\x04\x08\x88\t\x01\x02\x12\x06\xa5\x15\x06\xaa\x15\x07\n\x13\n\t\x04\x10\x02\x04\x08\x88\t\x01\x03\x12\x06\xab\x15\x06\xb0\x15\x07\n\x13\n\t\x04\x10\x02\x04\x08\x88\t\x01\x04\x12\x06\xb1\x15\x06\xb6\x15\x07\n\xc7\x02\n\x04\x04\x10\x02\x05\x12\x06\xc4\x15\x02\xc7\x15\x05\x1a\xb6\x02 `in` requires the field value to be equal to one of the specified values.\n If the field value isn\'t one of the specified values, an error message is\n generated.\n\n ```proto\n message MySFixed32 {\n // must be in list [1, 2, 3]\n sfixed32 value = 1 [(buf.validate.field).sfixed32 = { in: [1, 2, 3] }];\n }\n ```\n\n\r\n\x05\x04\x10\x02\x05\x04\x12\x04\xc4\x15\x02\n\n\r\n\x05\x04\x10\x02\x05\x05\x12\x04\xc4\x15\x0b\x13\n\r\n\x05\x04\x10\x02\x05\x01\x12\x04\xc4\x15\x14\x16\n\r\n\x05\x04\x10\x02\x05\x03\x12\x04\xc4\x15\x19\x1a\n\x0f\n\x05\x04\x10\x02\x05\x08\x12\x06\xc4\x15\x1b\xc7\x15\x04\n\x13\n\t\x04\x10\x02\x05\x08\x88\t\x01\x00\x12\x06\xc4\x15\x1c\xc7\x15\x03\n\xda\x02\n\x04\x04\x10\x02\x06\x12\x06\xd3\x15\x02\xd6\x15\x05\x1a\xc9\x02 `not_in` requires the field value to not be equal to any of the specified\n values. If the field value is one of the specified values, an error\n message is generated.\n\n ```proto\n message MySFixed32 {\n // value must not be in list [1, 2, 3]\n sfixed32 value = 1 [(buf.validate.field).sfixed32 = { not_in: [1, 2, 3] }];\n }\n ```\n\n\r\n\x05\x04\x10\x02\x06\x04\x12\x04\xd3\x15\x02\n\n\r\n\x05\x04\x10\x02\x06\x05\x12\x04\xd3\x15\x0b\x13\n\r\n\x05\x04\x10\x02\x06\x01\x12\x04\xd3\x15\x14\x1a\n\r\n\x05\x04\x10\x02\x06\x03\x12\x04\xd3\x15\x1d\x1e\n\x0f\n\x05\x04\x10\x02\x06\x08\x12\x06\xd3\x15\x1f\xd6\x15\x04\n\x13\n\t\x04\x10\x02\x06\x08\x88\t\x01\x00\x12\x06\xd3\x15 \xd6\x15\x03\n\x8e\x03\n\x04\x04\x10\x02\x07\x12\x06\xe4\x15\x02\xe7\x15\x05\x1a\xfd\x02 `example` specifies values that the field may have. These values SHOULD\n conform to other rules. `example` values will not impact validation\n but may be used as helpful guidance on how to populate the given field.\n\n ```proto\n message MySFixed32 {\n sfixed32 value = 1 [\n (buf.validate.field).sfixed32.example = 1,\n (buf.validate.field).sfixed32.example = 2\n ];\n }\n ```\n\n\r\n\x05\x04\x10\x02\x07\x04\x12\x04\xe4\x15\x02\n\n\r\n\x05\x04\x10\x02\x07\x05\x12\x04\xe4\x15\x0b\x13\n\r\n\x05\x04\x10\x02\x07\x01\x12\x04\xe4\x15\x14\x1b\n\r\n\x05\x04\x10\x02\x07\x03\x12\x04\xe4\x15\x1e\x1f\n\x0f\n\x05\x04\x10\x02\x07\x08\x12\x06\xe4\x15 \xe7\x15\x04\n\x13\n\t\x04\x10\x02\x07\x08\x88\t\x01\x00\x12\x06\xe4\x15!\xe7\x15\x03\n\xb8\x01\n\x03\x04\x10\x05\x12\x04\xec\x15\x02\x19\x1a\xaa\x01 Extension fields that have the (buf.validate.predefined) option set\n will be treated as predefined field rules.\n See https://protovalidate.com/schemas/predefined-rules/\n\n\x0c\n\x04\x04\x10\x05\x00\x12\x04\xec\x15\r\x18\n\r\n\x05\x04\x10\x05\x00\x01\x12\x04\xec\x15\r\x11\n\r\n\x05\x04\x10\x05\x00\x02\x12\x04\xec\x15\x15\x18\nN\n\x02\x04\x11\x12\x06\xf0\x15\x00\xbc\x17\x01\x1a@ SFixed64Rules describes the rules applied to `fixed64` values.\n\n\x0b\n\x03\x04\x11\x01\x12\x04\xf0\x15\x08\x15\n\xa0\x02\n\x04\x04\x11\x02\x00\x12\x06\xfa\x15\x02\xfd\x15\x05\x1a\x8f\x02 `const` requires the field value to exactly match the specified value. If\n the field value doesn\'t match, an error message is generated.\n\n ```proto\n message MySFixed64 {\n // value must equal 42\n sfixed64 value = 1 [(buf.validate.field).sfixed64.const = 42];\n }\n ```\n\n\r\n\x05\x04\x11\x02\x00\x04\x12\x04\xfa\x15\x02\n\n\r\n\x05\x04\x11\x02\x00\x05\x12\x04\xfa\x15\x0b\x13\n\r\n\x05\x04\x11\x02\x00\x01\x12\x04\xfa\x15\x14\x19\n\r\n\x05\x04\x11\x02\x00\x03\x12\x04\xfa\x15\x1c\x1d\n\x0f\n\x05\x04\x11\x02\x00\x08\x12\x06\xfa\x15\x1e\xfd\x15\x04\n\x13\n\t\x04\x11\x02\x00\x08\x88\t\x01\x00\x12\x06\xfa\x15\x1f\xfd\x15\x03\n\x0e\n\x04\x04\x11\x08\x00\x12\x06\xfe\x15\x02\xa0\x16\x03\n\r\n\x05\x04\x11\x08\x00\x01\x12\x04\xfe\x15\x08\x11\n\xcd\x02\n\x04\x04\x11\x02\x01\x12\x06\x89\x16\x04\x8e\x16\x07\x1a\xbc\x02 `lt` requires the field value to be less than the specified value (field <\n value). If the field value is equal to or greater than the specified value,\n an error message is generated.\n\n ```proto\n message MySFixed64 {\n // must be less than 10\n sfixed64 value = 1 [(buf.validate.field).sfixed64.lt = 10];\n }\n ```\n\n\r\n\x05\x04\x11\x02\x01\x05\x12\x04\x89\x16\x04\x0c\n\r\n\x05\x04\x11\x02\x01\x01\x12\x04\x89\x16\r\x0f\n\r\n\x05\x04\x11\x02\x01\x03\x12\x04\x89\x16\x12\x13\n\x0f\n\x05\x04\x11\x02\x01\x08\x12\x06\x89\x16\x14\x8e\x16\x06\n\x13\n\t\x04\x11\x02\x01\x08\x88\t\x01\x00\x12\x06\x89\x16\x15\x8e\x16\x05\n\xdc\x02\n\x04\x04\x11\x02\x02\x12\x06\x9a\x16\x04\x9f\x16\x07\x1a\xcb\x02 `lte` requires the field value to be less than or equal to the specified\n value (field <= value). If the field value is greater than the specified\n value, an error message is generated.\n\n ```proto\n message MySFixed64 {\n // must be less than or equal to 10\n sfixed64 value = 1 [(buf.validate.field).sfixed64.lte = 10];\n }\n ```\n\n\r\n\x05\x04\x11\x02\x02\x05\x12\x04\x9a\x16\x04\x0c\n\r\n\x05\x04\x11\x02\x02\x01\x12\x04\x9a\x16\r\x10\n\r\n\x05\x04\x11\x02\x02\x03\x12\x04\x9a\x16\x13\x14\n\x0f\n\x05\x04\x11\x02\x02\x08\x12\x06\x9a\x16\x15\x9f\x16\x06\n\x13\n\t\x04\x11\x02\x02\x08\x88\t\x01\x00\x12\x06\x9a\x16\x16\x9f\x16\x05\n\x0e\n\x04\x04\x11\x08\x01\x12\x06\xa1\x16\x02\x87\x17\x03\n\r\n\x05\x04\x11\x08\x01\x01\x12\x04\xa1\x16\x08\x14\n\x8e\x06\n\x04\x04\x11\x02\x03\x12\x06\xb4\x16\x04\xd3\x16\x06\x1a\xfd\x05 `gt` requires the field value to be greater than the specified value\n (exclusive). If the value of `gt` is larger than a specified `lt` or\n `lte`, the range is reversed, and the field value must be outside the\n specified range. If the field value doesn\'t meet the required conditions,\n an error message is generated.\n\n ```proto\n message MySFixed64 {\n // must be greater than 5 [sfixed64.gt]\n sfixed64 value = 1 [(buf.validate.field).sfixed64.gt = 5];\n\n // must be greater than 5 and less than 10 [sfixed64.gt_lt]\n sfixed64 other_value = 2 [(buf.validate.field).sfixed64 = { gt: 5, lt: 10 }];\n\n // must be greater than 10 or less than 5 [sfixed64.gt_lt_exclusive]\n sfixed64 another_value = 3 [(buf.validate.field).sfixed64 = { gt: 10, lt: 5 }];\n }\n ```\n\n\r\n\x05\x04\x11\x02\x03\x05\x12\x04\xb4\x16\x04\x0c\n\r\n\x05\x04\x11\x02\x03\x01\x12\x04\xb4\x16\r\x0f\n\r\n\x05\x04\x11\x02\x03\x03\x12\x04\xb4\x16\x12\x13\n\x0f\n\x05\x04\x11\x02\x03\x08\x12\x06\xb4\x16\x14\xd3\x16\x05\n\x13\n\t\x04\x11\x02\x03\x08\x88\t\x01\x00\x12\x06\xb5\x16\x06\xba\x16\x07\n\x13\n\t\x04\x11\x02\x03\x08\x88\t\x01\x01\x12\x06\xbb\x16\x06\xc0\x16\x07\n\x13\n\t\x04\x11\x02\x03\x08\x88\t\x01\x02\x12\x06\xc1\x16\x06\xc6\x16\x07\n\x13\n\t\x04\x11\x02\x03\x08\x88\t\x01\x03\x12\x06\xc7\x16\x06\xcc\x16\x07\n\x13\n\t\x04\x11\x02\x03\x08\x88\t\x01\x04\x12\x06\xcd\x16\x06\xd2\x16\x07\n\xc6\x06\n\x04\x04\x11\x02\x04\x12\x06\xe7\x16\x04\x86\x17\x06\x1a\xb5\x06 `gte` requires the field value to be greater than or equal to the specified\n value (exclusive). If the value of `gte` is larger than a specified `lt`\n or `lte`, the range is reversed, and the field value must be outside the\n specified range. If the field value doesn\'t meet the required conditions,\n an error message is generated.\n\n ```proto\n message MySFixed64 {\n // must be greater than or equal to 5 [sfixed64.gte]\n sfixed64 value = 1 [(buf.validate.field).sfixed64.gte = 5];\n\n // must be greater than or equal to 5 and less than 10 [sfixed64.gte_lt]\n sfixed64 other_value = 2 [(buf.validate.field).sfixed64 = { gte: 5, lt: 10 }];\n\n // must be greater than or equal to 10 or less than 5 [sfixed64.gte_lt_exclusive]\n sfixed64 another_value = 3 [(buf.validate.field).sfixed64 = { gte: 10, lt: 5 }];\n }\n ```\n\n\r\n\x05\x04\x11\x02\x04\x05\x12\x04\xe7\x16\x04\x0c\n\r\n\x05\x04\x11\x02\x04\x01\x12\x04\xe7\x16\r\x10\n\r\n\x05\x04\x11\x02\x04\x03\x12\x04\xe7\x16\x13\x14\n\x0f\n\x05\x04\x11\x02\x04\x08\x12\x06\xe7\x16\x15\x86\x17\x05\n\x13\n\t\x04\x11\x02\x04\x08\x88\t\x01\x00\x12\x06\xe8\x16\x06\xed\x16\x07\n\x13\n\t\x04\x11\x02\x04\x08\x88\t\x01\x01\x12\x06\xee\x16\x06\xf3\x16\x07\n\x13\n\t\x04\x11\x02\x04\x08\x88\t\x01\x02\x12\x06\xf4\x16\x06\xf9\x16\x07\n\x13\n\t\x04\x11\x02\x04\x08\x88\t\x01\x03\x12\x06\xfa\x16\x06\xff\x16\x07\n\x13\n\t\x04\x11\x02\x04\x08\x88\t\x01\x04\x12\x06\x80\x17\x06\x85\x17\x07\n\xc7\x02\n\x04\x04\x11\x02\x05\x12\x06\x93\x17\x02\x96\x17\x05\x1a\xb6\x02 `in` requires the field value to be equal to one of the specified values.\n If the field value isn\'t one of the specified values, an error message is\n generated.\n\n ```proto\n message MySFixed64 {\n // must be in list [1, 2, 3]\n sfixed64 value = 1 [(buf.validate.field).sfixed64 = { in: [1, 2, 3] }];\n }\n ```\n\n\r\n\x05\x04\x11\x02\x05\x04\x12\x04\x93\x17\x02\n\n\r\n\x05\x04\x11\x02\x05\x05\x12\x04\x93\x17\x0b\x13\n\r\n\x05\x04\x11\x02\x05\x01\x12\x04\x93\x17\x14\x16\n\r\n\x05\x04\x11\x02\x05\x03\x12\x04\x93\x17\x19\x1a\n\x0f\n\x05\x04\x11\x02\x05\x08\x12\x06\x93\x17\x1b\x96\x17\x04\n\x13\n\t\x04\x11\x02\x05\x08\x88\t\x01\x00\x12\x06\x93\x17\x1c\x96\x17\x03\n\xda\x02\n\x04\x04\x11\x02\x06\x12\x06\xa2\x17\x02\xa5\x17\x05\x1a\xc9\x02 `not_in` requires the field value to not be equal to any of the specified\n values. If the field value is one of the specified values, an error\n message is generated.\n\n ```proto\n message MySFixed64 {\n // value must not be in list [1, 2, 3]\n sfixed64 value = 1 [(buf.validate.field).sfixed64 = { not_in: [1, 2, 3] }];\n }\n ```\n\n\r\n\x05\x04\x11\x02\x06\x04\x12\x04\xa2\x17\x02\n\n\r\n\x05\x04\x11\x02\x06\x05\x12\x04\xa2\x17\x0b\x13\n\r\n\x05\x04\x11\x02\x06\x01\x12\x04\xa2\x17\x14\x1a\n\r\n\x05\x04\x11\x02\x06\x03\x12\x04\xa2\x17\x1d\x1e\n\x0f\n\x05\x04\x11\x02\x06\x08\x12\x06\xa2\x17\x1f\xa5\x17\x04\n\x13\n\t\x04\x11\x02\x06\x08\x88\t\x01\x00\x12\x06\xa2\x17 \xa5\x17\x03\n\x8e\x03\n\x04\x04\x11\x02\x07\x12\x06\xb3\x17\x02\xb6\x17\x05\x1a\xfd\x02 `example` specifies values that the field may have. These values SHOULD\n conform to other rules. `example` values will not impact validation\n but may be used as helpful guidance on how to populate the given field.\n\n ```proto\n message MySFixed64 {\n sfixed64 value = 1 [\n (buf.validate.field).sfixed64.example = 1,\n (buf.validate.field).sfixed64.example = 2\n ];\n }\n ```\n\n\r\n\x05\x04\x11\x02\x07\x04\x12\x04\xb3\x17\x02\n\n\r\n\x05\x04\x11\x02\x07\x05\x12\x04\xb3\x17\x0b\x13\n\r\n\x05\x04\x11\x02\x07\x01\x12\x04\xb3\x17\x14\x1b\n\r\n\x05\x04\x11\x02\x07\x03\x12\x04\xb3\x17\x1e\x1f\n\x0f\n\x05\x04\x11\x02\x07\x08\x12\x06\xb3\x17 \xb6\x17\x04\n\x13\n\t\x04\x11\x02\x07\x08\x88\t\x01\x00\x12\x06\xb3\x17!\xb6\x17\x03\n\xb8\x01\n\x03\x04\x11\x05\x12\x04\xbb\x17\x02\x19\x1a\xaa\x01 Extension fields that have the (buf.validate.predefined) option set\n will be treated as predefined field rules.\n See https://protovalidate.com/schemas/predefined-rules/\n\n\x0c\n\x04\x04\x11\x05\x00\x12\x04\xbb\x17\r\x18\n\r\n\x05\x04\x11\x05\x00\x01\x12\x04\xbb\x17\r\x11\n\r\n\x05\x04\x11\x05\x00\x02\x12\x04\xbb\x17\x15\x18\n\x9d\x01\n\x02\x04\x12\x12\x06\xc0\x17\x00\xe4\x17\x01\x1a\x8e\x01 BoolRules describes the rules applied to `bool` values. These rules\n may also be applied to the `google.protobuf.BoolValue` Well-Known-Type.\n\n\x0b\n\x03\x04\x12\x01\x12\x04\xc0\x17\x08\x11\n\xa0\x02\n\x04\x04\x12\x02\x00\x12\x06\xca\x17\x02\xcd\x17\x05\x1a\x8f\x02 `const` requires the field value to exactly match the specified boolean value.\n If the field value doesn\'t match, an error message is generated.\n\n ```proto\n message MyBool {\n // value must equal true\n bool value = 1 [(buf.validate.field).bool.const = true];\n }\n ```\n\n\r\n\x05\x04\x12\x02\x00\x04\x12\x04\xca\x17\x02\n\n\r\n\x05\x04\x12\x02\x00\x05\x12\x04\xca\x17\x0b\x0f\n\r\n\x05\x04\x12\x02\x00\x01\x12\x04\xca\x17\x10\x15\n\r\n\x05\x04\x12\x02\x00\x03\x12\x04\xca\x17\x18\x19\n\x0f\n\x05\x04\x12\x02\x00\x08\x12\x06\xca\x17\x1a\xcd\x17\x04\n\x13\n\t\x04\x12\x02\x00\x08\x88\t\x01\x00\x12\x06\xca\x17\x1b\xcd\x17\x03\n\x85\x03\n\x04\x04\x12\x02\x01\x12\x06\xdb\x17\x02\xde\x17\x05\x1a\xf4\x02 `example` specifies values that the field may have. These values SHOULD\n conform to other rules. `example` values will not impact validation\n but may be used as helpful guidance on how to populate the given field.\n\n ```proto\n message MyBool {\n bool value = 1 [\n (buf.validate.field).bool.example = true,\n (buf.validate.field).bool.example = false\n ];\n }\n ```\n\n\r\n\x05\x04\x12\x02\x01\x04\x12\x04\xdb\x17\x02\n\n\r\n\x05\x04\x12\x02\x01\x05\x12\x04\xdb\x17\x0b\x0f\n\r\n\x05\x04\x12\x02\x01\x01\x12\x04\xdb\x17\x10\x17\n\r\n\x05\x04\x12\x02\x01\x03\x12\x04\xdb\x17\x1a\x1b\n\x0f\n\x05\x04\x12\x02\x01\x08\x12\x06\xdb\x17\x1c\xde\x17\x04\n\x13\n\t\x04\x12\x02\x01\x08\x88\t\x01\x00\x12\x06\xdb\x17\x1d\xde\x17\x03\n\xb8\x01\n\x03\x04\x12\x05\x12\x04\xe3\x17\x02\x19\x1a\xaa\x01 Extension fields that have the (buf.validate.predefined) option set\n will be treated as predefined field rules.\n See https://protovalidate.com/schemas/predefined-rules/\n\n\x0c\n\x04\x04\x12\x05\x00\x12\x04\xe3\x17\r\x18\n\r\n\x05\x04\x12\x05\x00\x01\x12\x04\xe3\x17\r\x11\n\r\n\x05\x04\x12\x05\x00\x02\x12\x04\xe3\x17\x15\x18\n\xa2\x01\n\x02\x04\x13\x12\x06\xe8\x17\x00\xac\x1e\x01\x1a\x93\x01 StringRules describes the rules applied to `string` values These\n rules may also be applied to the `google.protobuf.StringValue` Well-Known-Type.\n\n\x0b\n\x03\x04\x13\x01\x12\x04\xe8\x17\x08\x13\n\xa4\x02\n\x04\x04\x13\x02\x00\x12\x06\xf2\x17\x02\xf5\x17\x05\x1a\x93\x02 `const` requires the field value to exactly match the specified value. If\n the field value doesn\'t match, an error message is generated.\n\n ```proto\n message MyString {\n // value must equal `hello`\n string value = 1 [(buf.validate.field).string.const = \"hello\"];\n }\n ```\n\n\r\n\x05\x04\x13\x02\x00\x04\x12\x04\xf2\x17\x02\n\n\r\n\x05\x04\x13\x02\x00\x05\x12\x04\xf2\x17\x0b\x11\n\r\n\x05\x04\x13\x02\x00\x01\x12\x04\xf2\x17\x12\x17\n\r\n\x05\x04\x13\x02\x00\x03\x12\x04\xf2\x17\x1a\x1b\n\x0f\n\x05\x04\x13\x02\x00\x08\x12\x06\xf2\x17\x1c\xf5\x17\x04\n\x13\n\t\x04\x13\x02\x00\x08\x88\t\x01\x00\x12\x06\xf2\x17\x1d\xf5\x17\x03\n\x9b\x03\n\x04\x04\x13\x02\x01\x12\x06\x82\x18\x02\x85\x18\x05\x1a\x8a\x03 `len` dictates that the field value must have the specified\n number of characters (Unicode code points), which may differ from the number\n of bytes in the string. If the field value does not meet the specified\n length, an error message will be generated.\n\n ```proto\n message MyString {\n // value length must be 5 characters\n string value = 1 [(buf.validate.field).string.len = 5];\n }\n ```\n\n\r\n\x05\x04\x13\x02\x01\x04\x12\x04\x82\x18\x02\n\n\r\n\x05\x04\x13\x02\x01\x05\x12\x04\x82\x18\x0b\x11\n\r\n\x05\x04\x13\x02\x01\x01\x12\x04\x82\x18\x12\x15\n\r\n\x05\x04\x13\x02\x01\x03\x12\x04\x82\x18\x18\x1a\n\x0f\n\x05\x04\x13\x02\x01\x08\x12\x06\x82\x18\x1b\x85\x18\x04\n\x13\n\t\x04\x13\x02\x01\x08\x88\t\x01\x00\x12\x06\x82\x18\x1c\x85\x18\x03\n\xad\x03\n\x04\x04\x13\x02\x02\x12\x06\x92\x18\x02\x95\x18\x05\x1a\x9c\x03 `min_len` specifies that the field value must have at least the specified\n number of characters (Unicode code points), which may differ from the number\n of bytes in the string. If the field value contains fewer characters, an error\n message will be generated.\n\n ```proto\n message MyString {\n // value length must be at least 3 characters\n string value = 1 [(buf.validate.field).string.min_len = 3];\n }\n ```\n\n\r\n\x05\x04\x13\x02\x02\x04\x12\x04\x92\x18\x02\n\n\r\n\x05\x04\x13\x02\x02\x05\x12\x04\x92\x18\x0b\x11\n\r\n\x05\x04\x13\x02\x02\x01\x12\x04\x92\x18\x12\x19\n\r\n\x05\x04\x13\x02\x02\x03\x12\x04\x92\x18\x1c\x1d\n\x0f\n\x05\x04\x13\x02\x02\x08\x12\x06\x92\x18\x1e\x95\x18\x04\n\x13\n\t\x04\x13\x02\x02\x08\x88\t\x01\x00\x12\x06\x92\x18\x1f\x95\x18\x03\n\xb1\x03\n\x04\x04\x13\x02\x03\x12\x06\xa2\x18\x02\xa5\x18\x05\x1a\xa0\x03 `max_len` specifies that the field value must have no more than the specified\n number of characters (Unicode code points), which may differ from the\n number of bytes in the string. If the field value contains more characters,\n an error message will be generated.\n\n ```proto\n message MyString {\n // value length must be at most 10 characters\n string value = 1 [(buf.validate.field).string.max_len = 10];\n }\n ```\n\n\r\n\x05\x04\x13\x02\x03\x04\x12\x04\xa2\x18\x02\n\n\r\n\x05\x04\x13\x02\x03\x05\x12\x04\xa2\x18\x0b\x11\n\r\n\x05\x04\x13\x02\x03\x01\x12\x04\xa2\x18\x12\x19\n\r\n\x05\x04\x13\x02\x03\x03\x12\x04\xa2\x18\x1c\x1d\n\x0f\n\x05\x04\x13\x02\x03\x08\x12\x06\xa2\x18\x1e\xa5\x18\x04\n\x13\n\t\x04\x13\x02\x03\x08\x88\t\x01\x00\x12\x06\xa2\x18\x1f\xa5\x18\x03\n\xd7\x02\n\x04\x04\x13\x02\x04\x12\x06\xb1\x18\x02\xb4\x18\x05\x1a\xc6\x02 `len_bytes` dictates that the field value must have the specified number of\n bytes. If the field value does not match the specified length in bytes,\n an error message will be generated.\n\n ```proto\n message MyString {\n // value length must be 6 bytes\n string value = 1 [(buf.validate.field).string.len_bytes = 6];\n }\n ```\n\n\r\n\x05\x04\x13\x02\x04\x04\x12\x04\xb1\x18\x02\n\n\r\n\x05\x04\x13\x02\x04\x05\x12\x04\xb1\x18\x0b\x11\n\r\n\x05\x04\x13\x02\x04\x01\x12\x04\xb1\x18\x12\x1b\n\r\n\x05\x04\x13\x02\x04\x03\x12\x04\xb1\x18\x1e \n\x0f\n\x05\x04\x13\x02\x04\x08\x12\x06\xb1\x18!\xb4\x18\x04\n\x13\n\t\x04\x13\x02\x04\x08\x88\t\x01\x00\x12\x06\xb1\x18\"\xb4\x18\x03\n\xd3\x02\n\x04\x04\x13\x02\x05\x12\x06\xc1\x18\x02\xc4\x18\x05\x1a\xc2\x02 `min_bytes` specifies that the field value must have at least the specified\n number of bytes. If the field value contains fewer bytes, an error message\n will be generated.\n\n ```proto\n message MyString {\n // value length must be at least 4 bytes\n string value = 1 [(buf.validate.field).string.min_bytes = 4];\n }\n\n ```\n\n\r\n\x05\x04\x13\x02\x05\x04\x12\x04\xc1\x18\x02\n\n\r\n\x05\x04\x13\x02\x05\x05\x12\x04\xc1\x18\x0b\x11\n\r\n\x05\x04\x13\x02\x05\x01\x12\x04\xc1\x18\x12\x1b\n\r\n\x05\x04\x13\x02\x05\x03\x12\x04\xc1\x18\x1e\x1f\n\x0f\n\x05\x04\x13\x02\x05\x08\x12\x06\xc1\x18 \xc4\x18\x04\n\x13\n\t\x04\x13\x02\x05\x08\x88\t\x01\x00\x12\x06\xc1\x18!\xc4\x18\x03\n\xd4\x02\n\x04\x04\x13\x02\x06\x12\x06\xd0\x18\x02\xd3\x18\x05\x1a\xc3\x02 `max_bytes` specifies that the field value must have no more than the\n specified number of bytes. If the field value contains more bytes, an\n error message will be generated.\n\n ```proto\n message MyString {\n // value length must be at most 8 bytes\n string value = 1 [(buf.validate.field).string.max_bytes = 8];\n }\n ```\n\n\r\n\x05\x04\x13\x02\x06\x04\x12\x04\xd0\x18\x02\n\n\r\n\x05\x04\x13\x02\x06\x05\x12\x04\xd0\x18\x0b\x11\n\r\n\x05\x04\x13\x02\x06\x01\x12\x04\xd0\x18\x12\x1b\n\r\n\x05\x04\x13\x02\x06\x03\x12\x04\xd0\x18\x1e\x1f\n\x0f\n\x05\x04\x13\x02\x06\x08\x12\x06\xd0\x18 \xd3\x18\x04\n\x13\n\t\x04\x13\x02\x06\x08\x88\t\x01\x00\x12\x06\xd0\x18!\xd3\x18\x03\n\xb5\x03\n\x04\x04\x13\x02\x07\x12\x06\xe0\x18\x02\xe3\x18\x05\x1a\xa4\x03 `pattern` specifies that the field value must match the specified\n regular expression (RE2 syntax), with the expression provided without any\n delimiters. If the field value doesn\'t match the regular expression, an\n error message will be generated.\n\n ```proto\n message MyString {\n // value does not match regex pattern `^[a-zA-Z]//$`\n string value = 1 [(buf.validate.field).string.pattern = \"^[a-zA-Z]//$\"];\n }\n ```\n\n\r\n\x05\x04\x13\x02\x07\x04\x12\x04\xe0\x18\x02\n\n\r\n\x05\x04\x13\x02\x07\x05\x12\x04\xe0\x18\x0b\x11\n\r\n\x05\x04\x13\x02\x07\x01\x12\x04\xe0\x18\x12\x19\n\r\n\x05\x04\x13\x02\x07\x03\x12\x04\xe0\x18\x1c\x1d\n\x0f\n\x05\x04\x13\x02\x07\x08\x12\x06\xe0\x18\x1e\xe3\x18\x04\n\x13\n\t\x04\x13\x02\x07\x08\x88\t\x01\x00\x12\x06\xe0\x18\x1f\xe3\x18\x03\n\xef\x02\n\x04\x04\x13\x02\x08\x12\x06\xf0\x18\x02\xf3\x18\x05\x1a\xde\x02 `prefix` specifies that the field value must have the\n specified substring at the beginning of the string. If the field value\n doesn\'t start with the specified prefix, an error message will be\n generated.\n\n ```proto\n message MyString {\n // value does not have prefix `pre`\n string value = 1 [(buf.validate.field).string.prefix = \"pre\"];\n }\n ```\n\n\r\n\x05\x04\x13\x02\x08\x04\x12\x04\xf0\x18\x02\n\n\r\n\x05\x04\x13\x02\x08\x05\x12\x04\xf0\x18\x0b\x11\n\r\n\x05\x04\x13\x02\x08\x01\x12\x04\xf0\x18\x12\x18\n\r\n\x05\x04\x13\x02\x08\x03\x12\x04\xf0\x18\x1b\x1c\n\x0f\n\x05\x04\x13\x02\x08\x08\x12\x06\xf0\x18\x1d\xf3\x18\x04\n\x13\n\t\x04\x13\x02\x08\x08\x88\t\x01\x00\x12\x06\xf0\x18\x1e\xf3\x18\x03\n\xe8\x02\n\x04\x04\x13\x02\t\x12\x06\xff\x18\x02\x82\x19\x05\x1a\xd7\x02 `suffix` specifies that the field value must have the\n specified substring at the end of the string. If the field value doesn\'t\n end with the specified suffix, an error message will be generated.\n\n ```proto\n message MyString {\n // value does not have suffix `post`\n string value = 1 [(buf.validate.field).string.suffix = \"post\"];\n }\n ```\n\n\r\n\x05\x04\x13\x02\t\x04\x12\x04\xff\x18\x02\n\n\r\n\x05\x04\x13\x02\t\x05\x12\x04\xff\x18\x0b\x11\n\r\n\x05\x04\x13\x02\t\x01\x12\x04\xff\x18\x12\x18\n\r\n\x05\x04\x13\x02\t\x03\x12\x04\xff\x18\x1b\x1c\n\x0f\n\x05\x04\x13\x02\t\x08\x12\x06\xff\x18\x1d\x82\x19\x04\n\x13\n\t\x04\x13\x02\t\x08\x88\t\x01\x00\x12\x06\xff\x18\x1e\x82\x19\x03\n\xf7\x02\n\x04\x04\x13\x02\n\x12\x06\x8e\x19\x02\x91\x19\x05\x1a\xe6\x02 `contains` specifies that the field value must have the\n specified substring anywhere in the string. If the field value doesn\'t\n contain the specified substring, an error message will be generated.\n\n ```proto\n message MyString {\n // value does not contain substring `inside`.\n string value = 1 [(buf.validate.field).string.contains = \"inside\"];\n }\n ```\n\n\r\n\x05\x04\x13\x02\n\x04\x12\x04\x8e\x19\x02\n\n\r\n\x05\x04\x13\x02\n\x05\x12\x04\x8e\x19\x0b\x11\n\r\n\x05\x04\x13\x02\n\x01\x12\x04\x8e\x19\x12\x1a\n\r\n\x05\x04\x13\x02\n\x03\x12\x04\x8e\x19\x1d\x1e\n\x0f\n\x05\x04\x13\x02\n\x08\x12\x06\x8e\x19\x1f\x91\x19\x04\n\x13\n\t\x04\x13\x02\n\x08\x88\t\x01\x00\x12\x06\x8e\x19 \x91\x19\x03\n\xf4\x02\n\x04\x04\x13\x02\x0b\x12\x06\x9d\x19\x02\xa0\x19\x05\x1a\xe3\x02 `not_contains` specifies that the field value must not have the\n specified substring anywhere in the string. If the field value contains\n the specified substring, an error message will be generated.\n\n ```proto\n message MyString {\n // value contains substring `inside`.\n string value = 1 [(buf.validate.field).string.not_contains = \"inside\"];\n }\n ```\n\n\r\n\x05\x04\x13\x02\x0b\x04\x12\x04\x9d\x19\x02\n\n\r\n\x05\x04\x13\x02\x0b\x05\x12\x04\x9d\x19\x0b\x11\n\r\n\x05\x04\x13\x02\x0b\x01\x12\x04\x9d\x19\x12\x1e\n\r\n\x05\x04\x13\x02\x0b\x03\x12\x04\x9d\x19!#\n\x0f\n\x05\x04\x13\x02\x0b\x08\x12\x06\x9d\x19$\xa0\x19\x04\n\x13\n\t\x04\x13\x02\x0b\x08\x88\t\x01\x00\x12\x06\x9d\x19%\xa0\x19\x03\n\xe2\x02\n\x04\x04\x13\x02\x0c\x12\x06\xac\x19\x02\xaf\x19\x05\x1a\xd1\x02 `in` specifies that the field value must be equal to one of the specified\n values. If the field value isn\'t one of the specified values, an error\n message will be generated.\n\n ```proto\n message MyString {\n // must be in list [\"apple\", \"banana\"]\n string value = 1 [(buf.validate.field).string = { in: [\"apple\", \"banana\"] }];\n }\n ```\n\n\r\n\x05\x04\x13\x02\x0c\x04\x12\x04\xac\x19\x02\n\n\r\n\x05\x04\x13\x02\x0c\x05\x12\x04\xac\x19\x0b\x11\n\r\n\x05\x04\x13\x02\x0c\x01\x12\x04\xac\x19\x12\x14\n\r\n\x05\x04\x13\x02\x0c\x03\x12\x04\xac\x19\x17\x19\n\x0f\n\x05\x04\x13\x02\x0c\x08\x12\x06\xac\x19\x1a\xaf\x19\x04\n\x13\n\t\x04\x13\x02\x0c\x08\x88\t\x01\x00\x12\x06\xac\x19\x1b\xaf\x19\x03\n\xf2\x02\n\x04\x04\x13\x02\r\x12\x06\xba\x19\x02\xbd\x19\x05\x1a\xe1\x02 `not_in` specifies that the field value cannot be equal to any\n of the specified values. If the field value is one of the specified values,\n an error message will be generated.\n ```proto\n message MyString {\n // value must not be in list [\"orange\", \"grape\"]\n string value = 1 [(buf.validate.field).string = { not_in: [\"orange\", \"grape\"] }];\n }\n ```\n\n\r\n\x05\x04\x13\x02\r\x04\x12\x04\xba\x19\x02\n\n\r\n\x05\x04\x13\x02\r\x05\x12\x04\xba\x19\x0b\x11\n\r\n\x05\x04\x13\x02\r\x01\x12\x04\xba\x19\x12\x18\n\r\n\x05\x04\x13\x02\r\x03\x12\x04\xba\x19\x1b\x1d\n\x0f\n\x05\x04\x13\x02\r\x08\x12\x06\xba\x19\x1e\xbd\x19\x04\n\x13\n\t\x04\x13\x02\r\x08\x88\t\x01\x00\x12\x06\xba\x19\x1f\xbd\x19\x03\n[\n\x04\x04\x13\x08\x00\x12\x06\xc1\x19\x02\x87\x1e\x03\x1aK `WellKnown` rules provide advanced rules against common string\n patterns.\n\n\r\n\x05\x04\x13\x08\x00\x01\x12\x04\xc1\x19\x08\x12\n\xc3\x05\n\x04\x04\x13\x02\x0e\x12\x06\xd2\x19\x04\xdd\x19\x06\x1a\xb2\x05 `email` specifies that the field value must be a valid email address, for\n example \"foo@example.com\".\n\n Conforms to the definition for a valid email address from the [HTML standard](https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address).\n Note that this standard willfully deviates from [RFC 5322](https://datatracker.ietf.org/doc/html/rfc5322),\n which allows many unexpected forms of email addresses and will easily match\n a typographical error.\n\n If the field value isn\'t a valid email address, an error message will be generated.\n\n ```proto\n message MyString {\n // must be a valid email address\n string value = 1 [(buf.validate.field).string.email = true];\n }\n ```\n\n\r\n\x05\x04\x13\x02\x0e\x05\x12\x04\xd2\x19\x04\x08\n\r\n\x05\x04\x13\x02\x0e\x01\x12\x04\xd2\x19\t\x0e\n\r\n\x05\x04\x13\x02\x0e\x03\x12\x04\xd2\x19\x11\x13\n\x0f\n\x05\x04\x13\x02\x0e\x08\x12\x06\xd2\x19\x14\xdd\x19\x05\n\x13\n\t\x04\x13\x02\x0e\x08\x88\t\x01\x00\x12\x06\xd3\x19\x06\xd7\x19\x07\n\x13\n\t\x04\x13\x02\x0e\x08\x88\t\x01\x01\x12\x06\xd8\x19\x06\xdc\x19\x07\n\x8f\x06\n\x04\x04\x13\x02\x0f\x12\x06\xf2\x19\x04\xfd\x19\x06\x1a\xfe\x05 `hostname` specifies that the field value must be a valid hostname, for\n example \"foo.example.com\".\n\n A valid hostname follows the rules below:\n - The name consists of one or more labels, separated by a dot (\".\").\n - Each label can be 1 to 63 alphanumeric characters.\n - A label can contain hyphens (\"-\"), but must not start or end with a hyphen.\n - The right-most label must not be digits only.\n - The name can have a trailing dot\xe2\x80\x94for example, \"foo.example.com.\".\n - The name can be 253 characters at most, excluding the optional trailing dot.\n\n If the field value isn\'t a valid hostname, an error message will be generated.\n\n ```proto\n message MyString {\n // must be a valid hostname\n string value = 1 [(buf.validate.field).string.hostname = true];\n }\n ```\n\n\r\n\x05\x04\x13\x02\x0f\x05\x12\x04\xf2\x19\x04\x08\n\r\n\x05\x04\x13\x02\x0f\x01\x12\x04\xf2\x19\t\x11\n\r\n\x05\x04\x13\x02\x0f\x03\x12\x04\xf2\x19\x14\x16\n\x0f\n\x05\x04\x13\x02\x0f\x08\x12\x06\xf2\x19\x17\xfd\x19\x05\n\x13\n\t\x04\x13\x02\x0f\x08\x88\t\x01\x00\x12\x06\xf3\x19\x06\xf7\x19\x07\n\x13\n\t\x04\x13\x02\x0f\x08\x88\t\x01\x01\x12\x06\xf8\x19\x06\xfc\x19\x07\n\xc3\x05\n\x04\x04\x13\x02\x10\x12\x06\x91\x1a\x04\x9c\x1a\x06\x1a\xb2\x05 `ip` specifies that the field value must be a valid IP (v4 or v6) address.\n\n IPv4 addresses are expected in the dotted decimal format\xe2\x80\x94for example, \"192.168.5.21\".\n IPv6 addresses are expected in their text representation\xe2\x80\x94for example, \"::1\",\n or \"2001:0DB8:ABCD:0012::0\".\n\n Both formats are well-defined in the internet standard [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986).\n Zone identifiers for IPv6 addresses (for example, \"fe80::a%en1\") are supported.\n\n If the field value isn\'t a valid IP address, an error message will be\n generated.\n\n ```proto\n message MyString {\n // must be a valid IP address\n string value = 1 [(buf.validate.field).string.ip = true];\n }\n ```\n\n\r\n\x05\x04\x13\x02\x10\x05\x12\x04\x91\x1a\x04\x08\n\r\n\x05\x04\x13\x02\x10\x01\x12\x04\x91\x1a\t\x0b\n\r\n\x05\x04\x13\x02\x10\x03\x12\x04\x91\x1a\x0e\x10\n\x0f\n\x05\x04\x13\x02\x10\x08\x12\x06\x91\x1a\x11\x9c\x1a\x05\n\x13\n\t\x04\x13\x02\x10\x08\x88\t\x01\x00\x12\x06\x92\x1a\x06\x96\x1a\x07\n\x13\n\t\x04\x13\x02\x10\x08\x88\t\x01\x01\x12\x06\x97\x1a\x06\x9b\x1a\x07\n\xd1\x02\n\x04\x04\x13\x02\x11\x12\x06\xa8\x1a\x04\xb3\x1a\x06\x1a\xc0\x02 `ipv4` specifies that the field value must be a valid IPv4 address\xe2\x80\x94for\n example \"192.168.5.21\". If the field value isn\'t a valid IPv4 address, an\n error message will be generated.\n\n ```proto\n message MyString {\n // must be a valid IPv4 address\n string value = 1 [(buf.validate.field).string.ipv4 = true];\n }\n ```\n\n\r\n\x05\x04\x13\x02\x11\x05\x12\x04\xa8\x1a\x04\x08\n\r\n\x05\x04\x13\x02\x11\x01\x12\x04\xa8\x1a\t\r\n\r\n\x05\x04\x13\x02\x11\x03\x12\x04\xa8\x1a\x10\x12\n\x0f\n\x05\x04\x13\x02\x11\x08\x12\x06\xa8\x1a\x13\xb3\x1a\x05\n\x13\n\t\x04\x13\x02\x11\x08\x88\t\x01\x00\x12\x06\xa9\x1a\x06\xad\x1a\x07\n\x13\n\t\x04\x13\x02\x11\x08\x88\t\x01\x01\x12\x06\xae\x1a\x06\xb2\x1a\x07\n\xf6\x02\n\x04\x04\x13\x02\x12\x12\x06\xbf\x1a\x04\xca\x1a\x06\x1a\xe5\x02 `ipv6` specifies that the field value must be a valid IPv6 address\xe2\x80\x94for\n example \"::1\", or \"d7a:115c:a1e0:ab12:4843:cd96:626b:430b\". If the field\n value is not a valid IPv6 address, an error message will be generated.\n\n ```proto\n message MyString {\n // must be a valid IPv6 address\n string value = 1 [(buf.validate.field).string.ipv6 = true];\n }\n ```\n\n\r\n\x05\x04\x13\x02\x12\x05\x12\x04\xbf\x1a\x04\x08\n\r\n\x05\x04\x13\x02\x12\x01\x12\x04\xbf\x1a\t\r\n\r\n\x05\x04\x13\x02\x12\x03\x12\x04\xbf\x1a\x10\x12\n\x0f\n\x05\x04\x13\x02\x12\x08\x12\x06\xbf\x1a\x13\xca\x1a\x05\n\x13\n\t\x04\x13\x02\x12\x08\x88\t\x01\x00\x12\x06\xc0\x1a\x06\xc4\x1a\x07\n\x13\n\t\x04\x13\x02\x12\x08\x88\t\x01\x01\x12\x06\xc5\x1a\x06\xc9\x1a\x07\n\xac\x04\n\x04\x04\x13\x02\x13\x12\x06\xda\x1a\x04\xe5\x1a\x06\x1a\x9b\x04 `uri` specifies that the field value must be a valid URI, for example\n \"https://example.com/foo/bar?baz=quux#frag\".\n\n URI is defined in the internet standard [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986).\n Zone Identifiers in IPv6 address literals are supported ([RFC 6874](https://datatracker.ietf.org/doc/html/rfc6874)).\n\n If the field value isn\'t a valid URI, an error message will be generated.\n\n ```proto\n message MyString {\n // must be a valid URI\n string value = 1 [(buf.validate.field).string.uri = true];\n }\n ```\n\n\r\n\x05\x04\x13\x02\x13\x05\x12\x04\xda\x1a\x04\x08\n\r\n\x05\x04\x13\x02\x13\x01\x12\x04\xda\x1a\t\x0c\n\r\n\x05\x04\x13\x02\x13\x03\x12\x04\xda\x1a\x0f\x11\n\x0f\n\x05\x04\x13\x02\x13\x08\x12\x06\xda\x1a\x12\xe5\x1a\x05\n\x13\n\t\x04\x13\x02\x13\x08\x88\t\x01\x00\x12\x06\xdb\x1a\x06\xdf\x1a\x07\n\x13\n\t\x04\x13\x02\x13\x08\x88\t\x01\x01\x12\x06\xe0\x1a\x06\xe4\x1a\x07\n\xba\x05\n\x04\x04\x13\x02\x14\x12\x06\xf8\x1a\x04\xfc\x1a\x07\x1a\xa9\x05 `uri_ref` specifies that the field value must be a valid URI Reference\xe2\x80\x94either\n a URI such as \"https://example.com/foo/bar?baz=quux#frag\", or a Relative\n Reference such as \"./foo/bar?query\".\n\n URI, URI Reference, and Relative Reference are defined in the internet\n standard [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986). Zone\n Identifiers in IPv6 address literals are supported ([RFC 6874](https://datatracker.ietf.org/doc/html/rfc6874)).\n\n If the field value isn\'t a valid URI Reference, an error message will be\n generated.\n\n ```proto\n message MyString {\n // must be a valid URI Reference\n string value = 1 [(buf.validate.field).string.uri_ref = true];\n }\n ```\n\n\r\n\x05\x04\x13\x02\x14\x05\x12\x04\xf8\x1a\x04\x08\n\r\n\x05\x04\x13\x02\x14\x01\x12\x04\xf8\x1a\t\x10\n\r\n\x05\x04\x13\x02\x14\x03\x12\x04\xf8\x1a\x13\x15\n\x0f\n\x05\x04\x13\x02\x14\x08\x12\x06\xf8\x1a\x16\xfc\x1a\x06\n\x13\n\t\x04\x13\x02\x14\x08\x88\t\x01\x00\x12\x06\xf8\x1a\x17\xfc\x1a\x05\n\xb1\x03\n\x04\x04\x13\x02\x15\x12\x06\x89\x1b\x04\x94\x1b\x06\x1a\xa0\x03 `address` specifies that the field value must be either a valid hostname\n (for example, \"example.com\"), or a valid IP (v4 or v6) address (for example,\n \"192.168.0.1\", or \"::1\"). If the field value isn\'t a valid hostname or IP,\n an error message will be generated.\n\n ```proto\n message MyString {\n // must be a valid hostname, or ip address\n string value = 1 [(buf.validate.field).string.address = true];\n }\n ```\n\n\r\n\x05\x04\x13\x02\x15\x05\x12\x04\x89\x1b\x04\x08\n\r\n\x05\x04\x13\x02\x15\x01\x12\x04\x89\x1b\t\x10\n\r\n\x05\x04\x13\x02\x15\x03\x12\x04\x89\x1b\x13\x15\n\x0f\n\x05\x04\x13\x02\x15\x08\x12\x06\x89\x1b\x16\x94\x1b\x05\n\x13\n\t\x04\x13\x02\x15\x08\x88\t\x01\x00\x12\x06\x8a\x1b\x06\x8e\x1b\x07\n\x13\n\t\x04\x13\x02\x15\x08\x88\t\x01\x01\x12\x06\x8f\x1b\x06\x93\x1b\x07\n\xf2\x02\n\x04\x04\x13\x02\x16\x12\x06\xa0\x1b\x04\xab\x1b\x06\x1a\xe1\x02 `uuid` specifies that the field value must be a valid UUID as defined by\n [RFC 4122](https://datatracker.ietf.org/doc/html/rfc4122#section-4.1.2). If the\n field value isn\'t a valid UUID, an error message will be generated.\n\n ```proto\n message MyString {\n // must be a valid UUID\n string value = 1 [(buf.validate.field).string.uuid = true];\n }\n ```\n\n\r\n\x05\x04\x13\x02\x16\x05\x12\x04\xa0\x1b\x04\x08\n\r\n\x05\x04\x13\x02\x16\x01\x12\x04\xa0\x1b\t\r\n\r\n\x05\x04\x13\x02\x16\x03\x12\x04\xa0\x1b\x10\x12\n\x0f\n\x05\x04\x13\x02\x16\x08\x12\x06\xa0\x1b\x13\xab\x1b\x05\n\x13\n\t\x04\x13\x02\x16\x08\x88\t\x01\x00\x12\x06\xa1\x1b\x06\xa5\x1b\x07\n\x13\n\t\x04\x13\x02\x16\x08\x88\t\x01\x01\x12\x06\xa6\x1b\x06\xaa\x1b\x07\n\xb3\x03\n\x04\x04\x13\x02\x17\x12\x06\xb8\x1b\x04\xc3\x1b\x06\x1a\xa2\x03 `tuuid` (trimmed UUID) specifies that the field value must be a valid UUID as\n defined by [RFC 4122](https://datatracker.ietf.org/doc/html/rfc4122#section-4.1.2) with all dashes\n omitted. If the field value isn\'t a valid UUID without dashes, an error message\n will be generated.\n\n ```proto\n message MyString {\n // must be a valid trimmed UUID\n string value = 1 [(buf.validate.field).string.tuuid = true];\n }\n ```\n\n\r\n\x05\x04\x13\x02\x17\x05\x12\x04\xb8\x1b\x04\x08\n\r\n\x05\x04\x13\x02\x17\x01\x12\x04\xb8\x1b\t\x0e\n\r\n\x05\x04\x13\x02\x17\x03\x12\x04\xb8\x1b\x11\x13\n\x0f\n\x05\x04\x13\x02\x17\x08\x12\x06\xb8\x1b\x14\xc3\x1b\x05\n\x13\n\t\x04\x13\x02\x17\x08\x88\t\x01\x00\x12\x06\xb9\x1b\x06\xbd\x1b\x07\n\x13\n\t\x04\x13\x02\x17\x08\x88\t\x01\x01\x12\x06\xbe\x1b\x06\xc2\x1b\x07\n\xbf\x03\n\x04\x04\x13\x02\x18\x12\x06\xd0\x1b\x04\xdb\x1b\x06\x1a\xae\x03 `ip_with_prefixlen` specifies that the field value must be a valid IP\n (v4 or v6) address with prefix length\xe2\x80\x94for example, \"192.168.5.21/16\" or\n \"2001:0DB8:ABCD:0012::F1/64\". If the field value isn\'t a valid IP with\n prefix length, an error message will be generated.\n\n ```proto\n message MyString {\n // must be a valid IP with prefix length\n string value = 1 [(buf.validate.field).string.ip_with_prefixlen = true];\n }\n ```\n\n\r\n\x05\x04\x13\x02\x18\x05\x12\x04\xd0\x1b\x04\x08\n\r\n\x05\x04\x13\x02\x18\x01\x12\x04\xd0\x1b\t\x1a\n\r\n\x05\x04\x13\x02\x18\x03\x12\x04\xd0\x1b\x1d\x1f\n\x0f\n\x05\x04\x13\x02\x18\x08\x12\x06\xd0\x1b \xdb\x1b\x05\n\x13\n\t\x04\x13\x02\x18\x08\x88\t\x01\x00\x12\x06\xd1\x1b\x06\xd5\x1b\x07\n\x13\n\t\x04\x13\x02\x18\x08\x88\t\x01\x01\x12\x06\xd6\x1b\x06\xda\x1b\x07\n\xae\x03\n\x04\x04\x13\x02\x19\x12\x06\xe8\x1b\x04\xf3\x1b\x06\x1a\x9d\x03 `ipv4_with_prefixlen` specifies that the field value must be a valid\n IPv4 address with prefix length\xe2\x80\x94for example, \"192.168.5.21/16\". If the\n field value isn\'t a valid IPv4 address with prefix length, an error\n message will be generated.\n\n ```proto\n message MyString {\n // must be a valid IPv4 address with prefix length\n string value = 1 [(buf.validate.field).string.ipv4_with_prefixlen = true];\n }\n ```\n\n\r\n\x05\x04\x13\x02\x19\x05\x12\x04\xe8\x1b\x04\x08\n\r\n\x05\x04\x13\x02\x19\x01\x12\x04\xe8\x1b\t\x1c\n\r\n\x05\x04\x13\x02\x19\x03\x12\x04\xe8\x1b\x1f!\n\x0f\n\x05\x04\x13\x02\x19\x08\x12\x06\xe8\x1b\"\xf3\x1b\x05\n\x13\n\t\x04\x13\x02\x19\x08\x88\t\x01\x00\x12\x06\xe9\x1b\x06\xed\x1b\x07\n\x13\n\t\x04\x13\x02\x19\x08\x88\t\x01\x01\x12\x06\xee\x1b\x06\xf2\x1b\x07\n\xb5\x03\n\x04\x04\x13\x02\x1a\x12\x06\x80\x1c\x04\x8b\x1c\x06\x1a\xa4\x03 `ipv6_with_prefixlen` specifies that the field value must be a valid\n IPv6 address with prefix length\xe2\x80\x94for example, \"2001:0DB8:ABCD:0012::F1/64\".\n If the field value is not a valid IPv6 address with prefix length,\n an error message will be generated.\n\n ```proto\n message MyString {\n // must be a valid IPv6 address prefix length\n string value = 1 [(buf.validate.field).string.ipv6_with_prefixlen = true];\n }\n ```\n\n\r\n\x05\x04\x13\x02\x1a\x05\x12\x04\x80\x1c\x04\x08\n\r\n\x05\x04\x13\x02\x1a\x01\x12\x04\x80\x1c\t\x1c\n\r\n\x05\x04\x13\x02\x1a\x03\x12\x04\x80\x1c\x1f!\n\x0f\n\x05\x04\x13\x02\x1a\x08\x12\x06\x80\x1c\"\x8b\x1c\x05\n\x13\n\t\x04\x13\x02\x1a\x08\x88\t\x01\x00\x12\x06\x81\x1c\x06\x85\x1c\x07\n\x13\n\t\x04\x13\x02\x1a\x08\x88\t\x01\x01\x12\x06\x86\x1c\x06\x8a\x1c\x07\n\xbe\x04\n\x04\x04\x13\x02\x1b\x12\x06\x9d\x1c\x04\xa8\x1c\x06\x1a\xad\x04 `ip_prefix` specifies that the field value must be a valid IP (v4 or v6)\n prefix\xe2\x80\x94for example, \"192.168.0.0/16\" or \"2001:0DB8:ABCD:0012::0/64\".\n\n The prefix must have all zeros for the unmasked bits. For example,\n \"2001:0DB8:ABCD:0012::0/64\" designates the left-most 64 bits for the\n prefix, and the remaining 64 bits must be zero.\n\n If the field value isn\'t a valid IP prefix, an error message will be\n generated.\n\n ```proto\n message MyString {\n // must be a valid IP prefix\n string value = 1 [(buf.validate.field).string.ip_prefix = true];\n }\n ```\n\n\r\n\x05\x04\x13\x02\x1b\x05\x12\x04\x9d\x1c\x04\x08\n\r\n\x05\x04\x13\x02\x1b\x01\x12\x04\x9d\x1c\t\x12\n\r\n\x05\x04\x13\x02\x1b\x03\x12\x04\x9d\x1c\x15\x17\n\x0f\n\x05\x04\x13\x02\x1b\x08\x12\x06\x9d\x1c\x18\xa8\x1c\x05\n\x13\n\t\x04\x13\x02\x1b\x08\x88\t\x01\x00\x12\x06\x9e\x1c\x06\xa2\x1c\x07\n\x13\n\t\x04\x13\x02\x1b\x08\x88\t\x01\x01\x12\x06\xa3\x1c\x06\xa7\x1c\x07\n\x91\x04\n\x04\x04\x13\x02\x1c\x12\x06\xba\x1c\x04\xc5\x1c\x06\x1a\x80\x04 `ipv4_prefix` specifies that the field value must be a valid IPv4\n prefix, for example \"192.168.0.0/16\".\n\n The prefix must have all zeros for the unmasked bits. For example,\n \"192.168.0.0/16\" designates the left-most 16 bits for the prefix,\n and the remaining 16 bits must be zero.\n\n If the field value isn\'t a valid IPv4 prefix, an error message\n will be generated.\n\n ```proto\n message MyString {\n // must be a valid IPv4 prefix\n string value = 1 [(buf.validate.field).string.ipv4_prefix = true];\n }\n ```\n\n\r\n\x05\x04\x13\x02\x1c\x05\x12\x04\xba\x1c\x04\x08\n\r\n\x05\x04\x13\x02\x1c\x01\x12\x04\xba\x1c\t\x14\n\r\n\x05\x04\x13\x02\x1c\x03\x12\x04\xba\x1c\x17\x19\n\x0f\n\x05\x04\x13\x02\x1c\x08\x12\x06\xba\x1c\x1a\xc5\x1c\x05\n\x13\n\t\x04\x13\x02\x1c\x08\x88\t\x01\x00\x12\x06\xbb\x1c\x06\xbf\x1c\x07\n\x13\n\t\x04\x13\x02\x1c\x08\x88\t\x01\x01\x12\x06\xc0\x1c\x06\xc4\x1c\x07\n\xaa\x04\n\x04\x04\x13\x02\x1d\x12\x06\xd7\x1c\x04\xe2\x1c\x06\x1a\x99\x04 `ipv6_prefix` specifies that the field value must be a valid IPv6 prefix\xe2\x80\x94for\n example, \"2001:0DB8:ABCD:0012::0/64\".\n\n The prefix must have all zeros for the unmasked bits. For example,\n \"2001:0DB8:ABCD:0012::0/64\" designates the left-most 64 bits for the\n prefix, and the remaining 64 bits must be zero.\n\n If the field value is not a valid IPv6 prefix, an error message will be\n generated.\n\n ```proto\n message MyString {\n // must be a valid IPv6 prefix\n string value = 1 [(buf.validate.field).string.ipv6_prefix = true];\n }\n ```\n\n\r\n\x05\x04\x13\x02\x1d\x05\x12\x04\xd7\x1c\x04\x08\n\r\n\x05\x04\x13\x02\x1d\x01\x12\x04\xd7\x1c\t\x14\n\r\n\x05\x04\x13\x02\x1d\x03\x12\x04\xd7\x1c\x17\x19\n\x0f\n\x05\x04\x13\x02\x1d\x08\x12\x06\xd7\x1c\x1a\xe2\x1c\x05\n\x13\n\t\x04\x13\x02\x1d\x08\x88\t\x01\x00\x12\x06\xd8\x1c\x06\xdc\x1c\x07\n\x13\n\t\x04\x13\x02\x1d\x08\x88\t\x01\x01\x12\x06\xdd\x1c\x06\xe1\x1c\x07\n\xe5\x03\n\x04\x04\x13\x02\x1e\x12\x06\xee\x1c\x04\xf9\x1c\x06\x1a\xd4\x03 `host_and_port` specifies that the field value must be a valid host/port\n pair\xe2\x80\x94for example, \"example.com:8080\".\n\n The host can be one of:\n - An IPv4 address in dotted decimal format\xe2\x80\x94for example, \"192.168.5.21\".\n - An IPv6 address enclosed in square brackets\xe2\x80\x94for example, \"[2001:0DB8:ABCD:0012::F1]\".\n - A hostname\xe2\x80\x94for example, \"example.com\".\n\n The port is separated by a colon. It must be non-empty, with a decimal number\n in the range of 0-65535, inclusive.\n\n\r\n\x05\x04\x13\x02\x1e\x05\x12\x04\xee\x1c\x04\x08\n\r\n\x05\x04\x13\x02\x1e\x01\x12\x04\xee\x1c\t\x16\n\r\n\x05\x04\x13\x02\x1e\x03\x12\x04\xee\x1c\x19\x1b\n\x0f\n\x05\x04\x13\x02\x1e\x08\x12\x06\xee\x1c\x1c\xf9\x1c\x05\n\x13\n\t\x04\x13\x02\x1e\x08\x88\t\x01\x00\x12\x06\xef\x1c\x06\xf3\x1c\x07\n\x13\n\t\x04\x13\x02\x1e\x08\x88\t\x01\x01\x12\x06\xf4\x1c\x06\xf8\x1c\x07\n\x9c\x03\n\x04\x04\x13\x02\x1f\x12\x06\x85\x1d\x04\x90\x1d\x06\x1a\x8b\x03 `ulid` specifies that the field value must be a valid ULID (Universally Unique\n Lexicographically Sortable Identifier) as defined by the [ULID specification](https://github.com/ulid/spec).\n If the field value isn\'t a valid ULID, an error message will be generated.\n\n ```proto\n message MyString {\n // must be a valid ULID\n string value = 1 [(buf.validate.field).string.ulid = true];\n }\n ```\n\n\r\n\x05\x04\x13\x02\x1f\x05\x12\x04\x85\x1d\x04\x08\n\r\n\x05\x04\x13\x02\x1f\x01\x12\x04\x85\x1d\t\r\n\r\n\x05\x04\x13\x02\x1f\x03\x12\x04\x85\x1d\x10\x12\n\x0f\n\x05\x04\x13\x02\x1f\x08\x12\x06\x85\x1d\x13\x90\x1d\x05\n\x13\n\t\x04\x13\x02\x1f\x08\x88\t\x01\x00\x12\x06\x86\x1d\x06\x8a\x1d\x07\n\x13\n\t\x04\x13\x02\x1f\x08\x88\t\x01\x01\x12\x06\x8b\x1d\x06\x8f\x1d\x07\n\xa2\x08\n\x04\x04\x13\x02 \x12\x06\xa9\x1d\x04\xb4\x1d\x06\x1a\x91\x08 `protobuf_fqn` specifies that the field value must be a valid fully-qualified\n Protobuf name as defined by the [Protobuf Language Specification](https://protobuf.com/docs/language-spec).\n\n A fully-qualified Protobuf name is a dot-separated list of Protobuf identifiers,\n where each identifier starts with a letter or underscore and is followed by zero or\n more letters, underscores, or digits.\n\n Examples: \"buf.validate\", \"google.protobuf.Timestamp\", \"my_package.MyMessage\".\n\n Note: historically, fully-qualified Protobuf names were represented with a leading\n dot (for example, \".buf.validate.StringRules\"). Modern Protobuf does not use the\n leading dot, and most fully-qualified names are represented without it. Use\n `protobuf_dot_fqn` if a leading dot is required.\n\n If the field value isn\'t a valid fully-qualified Protobuf name, an error message\n will be generated.\n\n ```proto\n message MyString {\n // value must be a valid fully-qualified Protobuf name\n string value = 1 [(buf.validate.field).string.protobuf_fqn = true];\n }\n ```\n\n\r\n\x05\x04\x13\x02 \x05\x12\x04\xa9\x1d\x04\x08\n\r\n\x05\x04\x13\x02 \x01\x12\x04\xa9\x1d\t\x15\n\r\n\x05\x04\x13\x02 \x03\x12\x04\xa9\x1d\x18\x1a\n\x0f\n\x05\x04\x13\x02 \x08\x12\x06\xa9\x1d\x1b\xb4\x1d\x05\n\x13\n\t\x04\x13\x02 \x08\x88\t\x01\x00\x12\x06\xaa\x1d\x06\xae\x1d\x07\n\x13\n\t\x04\x13\x02 \x08\x88\t\x01\x01\x12\x06\xaf\x1d\x06\xb3\x1d\x07\n\x8c\t\n\x04\x04\x13\x02!\x12\x06\xcf\x1d\x04\xda\x1d\x06\x1a\xfb\x08 `protobuf_dot_fqn` specifies that the field value must be a valid fully-qualified\n Protobuf name with a leading dot, as defined by the\n [Protobuf Language Specification](https://protobuf.com/docs/language-spec).\n\n A fully-qualified Protobuf name with a leading dot is a dot followed by a\n dot-separated list of Protobuf identifiers, where each identifier starts with a\n letter or underscore and is followed by zero or more letters, underscores, or\n digits.\n\n Examples: \".buf.validate\", \".google.protobuf.Timestamp\", \".my_package.MyMessage\".\n\n Note: this is the historical representation of fully-qualified Protobuf names,\n where a leading dot denotes an absolute reference. Modern Protobuf does not use\n the leading dot, and most fully-qualified names are represented without it. Most\n users will want to use `protobuf_fqn` instead.\n\n If the field value isn\'t a valid fully-qualified Protobuf name with a leading dot,\n an error message will be generated.\n\n ```proto\n message MyString {\n // value must be a valid fully-qualified Protobuf name with a leading dot\n string value = 1 [(buf.validate.field).string.protobuf_dot_fqn = true];\n }\n ```\n\n\r\n\x05\x04\x13\x02!\x05\x12\x04\xcf\x1d\x04\x08\n\r\n\x05\x04\x13\x02!\x01\x12\x04\xcf\x1d\t\x19\n\r\n\x05\x04\x13\x02!\x03\x12\x04\xcf\x1d\x1c\x1e\n\x0f\n\x05\x04\x13\x02!\x08\x12\x06\xcf\x1d\x1f\xda\x1d\x05\n\x13\n\t\x04\x13\x02!\x08\x88\t\x01\x00\x12\x06\xd0\x1d\x06\xd4\x1d\x07\n\x13\n\t\x04\x13\x02!\x08\x88\t\x01\x01\x12\x06\xd5\x1d\x06\xd9\x1d\x07\n\xec\x07\n\x04\x04\x13\x02\"\x12\x06\xf0\x1d\x04\x86\x1e\x06\x1a\xdb\x07 `well_known_regex` specifies a common well-known pattern\n defined as a regex. If the field value doesn\'t match the well-known\n regex, an error message will be generated.\n\n ```proto\n message MyString {\n // must be a valid HTTP header value\n string value = 1 [(buf.validate.field).string.well_known_regex = KNOWN_REGEX_HTTP_HEADER_VALUE];\n }\n ```\n\n #### KnownRegex\n\n `well_known_regex` contains some well-known patterns.\n\n | Name | Number | Description |\n |-------------------------------|--------|-------------------------------------------|\n | KNOWN_REGEX_UNSPECIFIED | 0 | |\n | KNOWN_REGEX_HTTP_HEADER_NAME | 1 | HTTP header name as defined by [RFC 7230](https://datatracker.ietf.org/doc/html/rfc7230#section-3.2) |\n | KNOWN_REGEX_HTTP_HEADER_VALUE | 2 | HTTP header value as defined by [RFC 7230](https://datatracker.ietf.org/doc/html/rfc7230#section-3.2.4) |\n\n\r\n\x05\x04\x13\x02\"\x06\x12\x04\xf0\x1d\x04\x0e\n\r\n\x05\x04\x13\x02\"\x01\x12\x04\xf0\x1d\x0f\x1f\n\r\n\x05\x04\x13\x02\"\x03\x12\x04\xf0\x1d\"$\n\x0f\n\x05\x04\x13\x02\"\x08\x12\x06\xf0\x1d%\x86\x1e\x05\n\x13\n\t\x04\x13\x02\"\x08\x88\t\x01\x00\x12\x06\xf1\x1d\x06\xf8\x1d\x07\n\x13\n\t\x04\x13\x02\"\x08\x88\t\x01\x01\x12\x06\xf9\x1d\x06\xfd\x1d\x07\n\x13\n\t\x04\x13\x02\"\x08\x88\t\x01\x02\x12\x06\xfe\x1d\x06\x85\x1e\x07\n\xd2\x04\n\x04\x04\x13\x02#\x12\x04\x95\x1e\x02\x1c\x1a\xc3\x04 This applies to regexes `HTTP_HEADER_NAME` and `HTTP_HEADER_VALUE` to\n enable strict header validation. By default, this is true, and HTTP header\n validations are [RFC-compliant](https://datatracker.ietf.org/doc/html/rfc7230#section-3). Setting to false will enable looser\n validations that only disallow `\\r\\n\\0` characters, which can be used to\n bypass header matching rules.\n\n ```proto\n message MyString {\n // The field `value` must have be a valid HTTP headers, but not enforced with strict rules.\n string value = 1 [(buf.validate.field).string.strict = false];\n }\n ```\n\n\r\n\x05\x04\x13\x02#\x04\x12\x04\x95\x1e\x02\n\n\r\n\x05\x04\x13\x02#\x05\x12\x04\x95\x1e\x0b\x0f\n\r\n\x05\x04\x13\x02#\x01\x12\x04\x95\x1e\x10\x16\n\r\n\x05\x04\x13\x02#\x03\x12\x04\x95\x1e\x19\x1b\n\x92\x03\n\x04\x04\x13\x02$\x12\x06\xa3\x1e\x02\xa6\x1e\x05\x1a\x81\x03 `example` specifies values that the field may have. These values SHOULD\n conform to other rules. `example` values will not impact validation\n but may be used as helpful guidance on how to populate the given field.\n\n ```proto\n message MyString {\n string value = 1 [\n (buf.validate.field).string.example = \"hello\",\n (buf.validate.field).string.example = \"world\"\n ];\n }\n ```\n\n\r\n\x05\x04\x13\x02$\x04\x12\x04\xa3\x1e\x02\n\n\r\n\x05\x04\x13\x02$\x05\x12\x04\xa3\x1e\x0b\x11\n\r\n\x05\x04\x13\x02$\x01\x12\x04\xa3\x1e\x12\x19\n\r\n\x05\x04\x13\x02$\x03\x12\x04\xa3\x1e\x1c\x1e\n\x0f\n\x05\x04\x13\x02$\x08\x12\x06\xa3\x1e\x1f\xa6\x1e\x04\n\x13\n\t\x04\x13\x02$\x08\x88\t\x01\x00\x12\x06\xa3\x1e \xa6\x1e\x03\n\xb8\x01\n\x03\x04\x13\x05\x12\x04\xab\x1e\x02\x19\x1a\xaa\x01 Extension fields that have the (buf.validate.predefined) option set\n will be treated as predefined field rules.\n See https://protovalidate.com/schemas/predefined-rules/\n\n\x0c\n\x04\x04\x13\x05\x00\x12\x04\xab\x1e\r\x18\n\r\n\x05\x04\x13\x05\x00\x01\x12\x04\xab\x1e\r\x11\n\r\n\x05\x04\x13\x05\x00\x02\x12\x04\xab\x1e\x15\x18\n=\n\x02\x05\x01\x12\x06\xaf\x1e\x00\xb7\x1e\x01\x1a/ KnownRegex contains some well-known patterns.\n\n\x0b\n\x03\x05\x01\x01\x12\x04\xaf\x1e\x05\x0f\n\x0c\n\x04\x05\x01\x02\x00\x12\x04\xb0\x1e\x02\x1e\n\r\n\x05\x05\x01\x02\x00\x01\x12\x04\xb0\x1e\x02\x19\n\r\n\x05\x05\x01\x02\x00\x02\x12\x04\xb0\x1e\x1c\x1d\nu\n\x04\x05\x01\x02\x01\x12\x04\xb3\x1e\x02#\x1ag HTTP header name as defined by [RFC 7230](https://datatracker.ietf.org/doc/html/rfc7230#section-3.2).\n\n\r\n\x05\x05\x01\x02\x01\x01\x12\x04\xb3\x1e\x02\x1e\n\r\n\x05\x05\x01\x02\x01\x02\x12\x04\xb3\x1e!\"\nx\n\x04\x05\x01\x02\x02\x12\x04\xb6\x1e\x02$\x1aj HTTP header value as defined by [RFC 7230](https://datatracker.ietf.org/doc/html/rfc7230#section-3.2.4).\n\n\r\n\x05\x05\x01\x02\x02\x01\x12\x04\xb6\x1e\x02\x1f\n\r\n\x05\x05\x01\x02\x02\x02\x12\x04\xb6\x1e\"#\n\x9f\x01\n\x02\x04\x14\x12\x06\xbb\x1e\x00\xc5 \x01\x1a\x90\x01 BytesRules describe the rules applied to `bytes` values. These rules\n may also be applied to the `google.protobuf.BytesValue` Well-Known-Type.\n\n\x0b\n\x03\x04\x14\x01\x12\x04\xbb\x1e\x08\x12\n\xb4\x02\n\x04\x04\x14\x02\x00\x12\x06\xc5\x1e\x02\xc8\x1e\x05\x1a\xa3\x02 `const` requires the field value to exactly match the specified bytes\n value. If the field value doesn\'t match, an error message is generated.\n\n ```proto\n message MyBytes {\n // must be \"\\x01\\x02\\x03\\x04\"\n bytes value = 1 [(buf.validate.field).bytes.const = \"\\x01\\x02\\x03\\x04\"];\n }\n ```\n\n\r\n\x05\x04\x14\x02\x00\x04\x12\x04\xc5\x1e\x02\n\n\r\n\x05\x04\x14\x02\x00\x05\x12\x04\xc5\x1e\x0b\x10\n\r\n\x05\x04\x14\x02\x00\x01\x12\x04\xc5\x1e\x11\x16\n\r\n\x05\x04\x14\x02\x00\x03\x12\x04\xc5\x1e\x19\x1a\n\x0f\n\x05\x04\x14\x02\x00\x08\x12\x06\xc5\x1e\x1b\xc8\x1e\x04\n\x13\n\t\x04\x14\x02\x00\x08\x88\t\x01\x00\x12\x06\xc5\x1e\x1c\xc8\x1e\x03\n\xa6\x02\n\x04\x04\x14\x02\x01\x12\x06\xd3\x1e\x02\xd6\x1e\x05\x1a\x95\x02 `len` requires the field value to have the specified length in bytes.\n If the field value doesn\'t match, an error message is generated.\n\n ```proto\n message MyBytes {\n // value length must be 4 bytes.\n optional bytes value = 1 [(buf.validate.field).bytes.len = 4];\n }\n ```\n\n\r\n\x05\x04\x14\x02\x01\x04\x12\x04\xd3\x1e\x02\n\n\r\n\x05\x04\x14\x02\x01\x05\x12\x04\xd3\x1e\x0b\x11\n\r\n\x05\x04\x14\x02\x01\x01\x12\x04\xd3\x1e\x12\x15\n\r\n\x05\x04\x14\x02\x01\x03\x12\x04\xd3\x1e\x18\x1a\n\x0f\n\x05\x04\x14\x02\x01\x08\x12\x06\xd3\x1e\x1b\xd6\x1e\x04\n\x13\n\t\x04\x14\x02\x01\x08\x88\t\x01\x00\x12\x06\xd3\x1e\x1c\xd6\x1e\x03\n\xd8\x02\n\x04\x04\x14\x02\x02\x12\x06\xe2\x1e\x02\xe5\x1e\x05\x1a\xc7\x02 `min_len` requires the field value to have at least the specified minimum\n length in bytes.\n If the field value doesn\'t meet the requirement, an error message is generated.\n\n ```proto\n message MyBytes {\n // value length must be at least 2 bytes.\n optional bytes value = 1 [(buf.validate.field).bytes.min_len = 2];\n }\n ```\n\n\r\n\x05\x04\x14\x02\x02\x04\x12\x04\xe2\x1e\x02\n\n\r\n\x05\x04\x14\x02\x02\x05\x12\x04\xe2\x1e\x0b\x11\n\r\n\x05\x04\x14\x02\x02\x01\x12\x04\xe2\x1e\x12\x19\n\r\n\x05\x04\x14\x02\x02\x03\x12\x04\xe2\x1e\x1c\x1d\n\x0f\n\x05\x04\x14\x02\x02\x08\x12\x06\xe2\x1e\x1e\xe5\x1e\x04\n\x13\n\t\x04\x14\x02\x02\x08\x88\t\x01\x00\x12\x06\xe2\x1e\x1f\xe5\x1e\x03\n\xc4\x02\n\x04\x04\x14\x02\x03\x12\x06\xf1\x1e\x02\xf4\x1e\x05\x1a\xb3\x02 `max_len` requires the field value to have at most the specified maximum\n length in bytes.\n If the field value exceeds the requirement, an error message is generated.\n\n ```proto\n message MyBytes {\n // must be at most 6 bytes.\n optional bytes value = 1 [(buf.validate.field).bytes.max_len = 6];\n }\n ```\n\n\r\n\x05\x04\x14\x02\x03\x04\x12\x04\xf1\x1e\x02\n\n\r\n\x05\x04\x14\x02\x03\x05\x12\x04\xf1\x1e\x0b\x11\n\r\n\x05\x04\x14\x02\x03\x01\x12\x04\xf1\x1e\x12\x19\n\r\n\x05\x04\x14\x02\x03\x03\x12\x04\xf1\x1e\x1c\x1d\n\x0f\n\x05\x04\x14\x02\x03\x08\x12\x06\xf1\x1e\x1e\xf4\x1e\x04\n\x13\n\t\x04\x14\x02\x03\x08\x88\t\x01\x00\x12\x06\xf1\x1e\x1f\xf4\x1e\x03\n\xf6\x03\n\x04\x04\x14\x02\x04\x12\x06\x82\x1f\x02\x85\x1f\x05\x1a\xe5\x03 `pattern` requires the field value to match the specified regular\n expression ([RE2 syntax](https://github.com/google/re2/wiki/Syntax)).\n The value of the field must be valid UTF-8 or validation will fail with a\n runtime error.\n If the field value doesn\'t match the pattern, an error message is generated.\n\n ```proto\n message MyBytes {\n // value must match regex pattern \"^[a-zA-Z0-9]+$\".\n optional bytes value = 1 [(buf.validate.field).bytes.pattern = \"^[a-zA-Z0-9]+$\"];\n }\n ```\n\n\r\n\x05\x04\x14\x02\x04\x04\x12\x04\x82\x1f\x02\n\n\r\n\x05\x04\x14\x02\x04\x05\x12\x04\x82\x1f\x0b\x11\n\r\n\x05\x04\x14\x02\x04\x01\x12\x04\x82\x1f\x12\x19\n\r\n\x05\x04\x14\x02\x04\x03\x12\x04\x82\x1f\x1c\x1d\n\x0f\n\x05\x04\x14\x02\x04\x08\x12\x06\x82\x1f\x1e\x85\x1f\x04\n\x13\n\t\x04\x14\x02\x04\x08\x88\t\x01\x00\x12\x06\x82\x1f\x1f\x85\x1f\x03\n\xe0\x02\n\x04\x04\x14\x02\x05\x12\x06\x91\x1f\x02\x94\x1f\x05\x1a\xcf\x02 `prefix` requires the field value to have the specified bytes at the\n beginning of the string.\n If the field value doesn\'t meet the requirement, an error message is generated.\n\n ```proto\n message MyBytes {\n // value does not have prefix \\x01\\x02\n optional bytes value = 1 [(buf.validate.field).bytes.prefix = \"\\x01\\x02\"];\n }\n ```\n\n\r\n\x05\x04\x14\x02\x05\x04\x12\x04\x91\x1f\x02\n\n\r\n\x05\x04\x14\x02\x05\x05\x12\x04\x91\x1f\x0b\x10\n\r\n\x05\x04\x14\x02\x05\x01\x12\x04\x91\x1f\x11\x17\n\r\n\x05\x04\x14\x02\x05\x03\x12\x04\x91\x1f\x1a\x1b\n\x0f\n\x05\x04\x14\x02\x05\x08\x12\x06\x91\x1f\x1c\x94\x1f\x04\n\x13\n\t\x04\x14\x02\x05\x08\x88\t\x01\x00\x12\x06\x91\x1f\x1d\x94\x1f\x03\n\xda\x02\n\x04\x04\x14\x02\x06\x12\x06\xa0\x1f\x02\xa3\x1f\x05\x1a\xc9\x02 `suffix` requires the field value to have the specified bytes at the end\n of the string.\n If the field value doesn\'t meet the requirement, an error message is generated.\n\n ```proto\n message MyBytes {\n // value does not have suffix \\x03\\x04\n optional bytes value = 1 [(buf.validate.field).bytes.suffix = \"\\x03\\x04\"];\n }\n ```\n\n\r\n\x05\x04\x14\x02\x06\x04\x12\x04\xa0\x1f\x02\n\n\r\n\x05\x04\x14\x02\x06\x05\x12\x04\xa0\x1f\x0b\x10\n\r\n\x05\x04\x14\x02\x06\x01\x12\x04\xa0\x1f\x11\x17\n\r\n\x05\x04\x14\x02\x06\x03\x12\x04\xa0\x1f\x1a\x1b\n\x0f\n\x05\x04\x14\x02\x06\x08\x12\x06\xa0\x1f\x1c\xa3\x1f\x04\n\x13\n\t\x04\x14\x02\x06\x08\x88\t\x01\x00\x12\x06\xa0\x1f\x1d\xa3\x1f\x03\n\xd8\x02\n\x04\x04\x14\x02\x07\x12\x06\xaf\x1f\x02\xb2\x1f\x05\x1a\xc7\x02 `contains` requires the field value to have the specified bytes anywhere in\n the string.\n If the field value doesn\'t meet the requirement, an error message is generated.\n\n ```proto\n message MyBytes {\n // value does not contain \\x02\\x03\n optional bytes value = 1 [(buf.validate.field).bytes.contains = \"\\x02\\x03\"];\n }\n ```\n\n\r\n\x05\x04\x14\x02\x07\x04\x12\x04\xaf\x1f\x02\n\n\r\n\x05\x04\x14\x02\x07\x05\x12\x04\xaf\x1f\x0b\x10\n\r\n\x05\x04\x14\x02\x07\x01\x12\x04\xaf\x1f\x11\x19\n\r\n\x05\x04\x14\x02\x07\x03\x12\x04\xaf\x1f\x1c\x1d\n\x0f\n\x05\x04\x14\x02\x07\x08\x12\x06\xaf\x1f\x1e\xb2\x1f\x04\n\x13\n\t\x04\x14\x02\x07\x08\x88\t\x01\x00\x12\x06\xaf\x1f\x1f\xb2\x1f\x03\n\x83\x03\n\x04\x04\x14\x02\x08\x12\x06\xbe\x1f\x02\xc1\x1f\x05\x1a\xf2\x02 `in` requires the field value to be equal to one of the specified\n values. If the field value doesn\'t match any of the specified values, an\n error message is generated.\n\n ```proto\n message MyBytes {\n // value must in [\"\\x01\\x02\", \"\\x02\\x03\", \"\\x03\\x04\"]\n optional bytes value = 1 [(buf.validate.field).bytes = { in: [\"\\x01\\x02\", \"\\x02\\x03\", \"\\x03\\x04\"] }];\n }\n ```\n\n\r\n\x05\x04\x14\x02\x08\x04\x12\x04\xbe\x1f\x02\n\n\r\n\x05\x04\x14\x02\x08\x05\x12\x04\xbe\x1f\x0b\x10\n\r\n\x05\x04\x14\x02\x08\x01\x12\x04\xbe\x1f\x11\x13\n\r\n\x05\x04\x14\x02\x08\x03\x12\x04\xbe\x1f\x16\x17\n\x0f\n\x05\x04\x14\x02\x08\x08\x12\x06\xbe\x1f\x18\xc1\x1f\x04\n\x13\n\t\x04\x14\x02\x08\x08\x88\t\x01\x00\x12\x06\xbe\x1f\x19\xc1\x1f\x03\n\x8e\x03\n\x04\x04\x14\x02\t\x12\x06\xce\x1f\x02\xd1\x1f\x05\x1a\xfd\x02 `not_in` requires the field value to be not equal to any of the specified\n values.\n If the field value matches any of the specified values, an error message is\n generated.\n\n ```proto\n message MyBytes {\n // value must not in [\"\\x01\\x02\", \"\\x02\\x03\", \"\\x03\\x04\"]\n optional bytes value = 1 [(buf.validate.field).bytes = { not_in: [\"\\x01\\x02\", \"\\x02\\x03\", \"\\x03\\x04\"] }];\n }\n ```\n\n\r\n\x05\x04\x14\x02\t\x04\x12\x04\xce\x1f\x02\n\n\r\n\x05\x04\x14\x02\t\x05\x12\x04\xce\x1f\x0b\x10\n\r\n\x05\x04\x14\x02\t\x01\x12\x04\xce\x1f\x11\x17\n\r\n\x05\x04\x14\x02\t\x03\x12\x04\xce\x1f\x1a\x1b\n\x0f\n\x05\x04\x14\x02\t\x08\x12\x06\xce\x1f\x1c\xd1\x1f\x04\n\x13\n\t\x04\x14\x02\t\x08\x88\t\x01\x00\x12\x06\xce\x1f\x1d\xd1\x1f\x03\nV\n\x04\x04\x14\x08\x00\x12\x06\xd5\x1f\x02\xae \x03\x1aF WellKnown rules provide advanced rules against common byte\n patterns\n\n\r\n\x05\x04\x14\x08\x00\x01\x12\x04\xd5\x1f\x08\x12\n\xbd\x02\n\x04\x04\x14\x02\n\x12\x06\xdf\x1f\x04\xea\x1f\x06\x1a\xac\x02 `ip` ensures that the field `value` is a valid IP address (v4 or v6) in byte format.\n If the field value doesn\'t meet this rule, an error message is generated.\n\n ```proto\n message MyBytes {\n // must be a valid IP address\n optional bytes value = 1 [(buf.validate.field).bytes.ip = true];\n }\n ```\n\n\r\n\x05\x04\x14\x02\n\x05\x12\x04\xdf\x1f\x04\x08\n\r\n\x05\x04\x14\x02\n\x01\x12\x04\xdf\x1f\t\x0b\n\r\n\x05\x04\x14\x02\n\x03\x12\x04\xdf\x1f\x0e\x10\n\x0f\n\x05\x04\x14\x02\n\x08\x12\x06\xdf\x1f\x11\xea\x1f\x05\n\x13\n\t\x04\x14\x02\n\x08\x88\t\x01\x00\x12\x06\xe0\x1f\x06\xe4\x1f\x07\n\x13\n\t\x04\x14\x02\n\x08\x88\t\x01\x01\x12\x06\xe5\x1f\x06\xe9\x1f\x07\n\xba\x02\n\x04\x04\x14\x02\x0b\x12\x06\xf5\x1f\x04\x80 \x06\x1a\xa9\x02 `ipv4` ensures that the field `value` is a valid IPv4 address in byte format.\n If the field value doesn\'t meet this rule, an error message is generated.\n\n ```proto\n message MyBytes {\n // must be a valid IPv4 address\n optional bytes value = 1 [(buf.validate.field).bytes.ipv4 = true];\n }\n ```\n\n\r\n\x05\x04\x14\x02\x0b\x05\x12\x04\xf5\x1f\x04\x08\n\r\n\x05\x04\x14\x02\x0b\x01\x12\x04\xf5\x1f\t\r\n\r\n\x05\x04\x14\x02\x0b\x03\x12\x04\xf5\x1f\x10\x12\n\x0f\n\x05\x04\x14\x02\x0b\x08\x12\x06\xf5\x1f\x13\x80 \x05\n\x13\n\t\x04\x14\x02\x0b\x08\x88\t\x01\x00\x12\x06\xf6\x1f\x06\xfa\x1f\x07\n\x13\n\t\x04\x14\x02\x0b\x08\x88\t\x01\x01\x12\x06\xfb\x1f\x06\xff\x1f\x07\n\xb9\x02\n\x04\x04\x14\x02\x0c\x12\x06\x8a \x04\x95 \x06\x1a\xa8\x02 `ipv6` ensures that the field `value` is a valid IPv6 address in byte format.\n If the field value doesn\'t meet this rule, an error message is generated.\n ```proto\n message MyBytes {\n // must be a valid IPv6 address\n optional bytes value = 1 [(buf.validate.field).bytes.ipv6 = true];\n }\n ```\n\n\r\n\x05\x04\x14\x02\x0c\x05\x12\x04\x8a \x04\x08\n\r\n\x05\x04\x14\x02\x0c\x01\x12\x04\x8a \t\r\n\r\n\x05\x04\x14\x02\x0c\x03\x12\x04\x8a \x10\x12\n\x0f\n\x05\x04\x14\x02\x0c\x08\x12\x06\x8a \x13\x95 \x05\n\x13\n\t\x04\x14\x02\x0c\x08\x88\t\x01\x00\x12\x06\x8b \x06\x8f \x07\n\x13\n\t\x04\x14\x02\x0c\x08\x88\t\x01\x01\x12\x06\x90 \x06\x94 \x07\n\xbb\x03\n\x04\x04\x14\x02\r\x12\x06\xa2 \x04\xad \x06\x1a\xaa\x03 `uuid` ensures that the field value encodes 128-bit UUID data as defined\n by [RFC 4122](https://datatracker.ietf.org/doc/html/rfc4122#section-4.1.2).\n The field must contain exactly 16 bytes representing the UUID. If the\n field value isn\'t a valid UUID, an error message will be generated.\n\n ```proto\n message MyBytes {\n // must be a valid UUID\n optional bytes value = 1 [(buf.validate.field).bytes.uuid = true];\n }\n ```\n\n\r\n\x05\x04\x14\x02\r\x05\x12\x04\xa2 \x04\x08\n\r\n\x05\x04\x14\x02\r\x01\x12\x04\xa2 \t\r\n\r\n\x05\x04\x14\x02\r\x03\x12\x04\xa2 \x10\x12\n\x0f\n\x05\x04\x14\x02\r\x08\x12\x06\xa2 \x13\xad \x05\n\x13\n\t\x04\x14\x02\r\x08\x88\t\x01\x00\x12\x06\xa3 \x06\xa7 \x07\n\x13\n\t\x04\x14\x02\r\x08\x88\t\x01\x01\x12\x06\xa8 \x06\xac \x07\n\x94\x03\n\x04\x04\x14\x02\x0e\x12\x06\xbc \x02\xbf \x05\x1a\x83\x03 `example` specifies values that the field may have. These values SHOULD\n conform to other rules. `example` values will not impact validation\n but may be used as helpful guidance on how to populate the given field.\n\n ```proto\n message MyBytes {\n bytes value = 1 [\n (buf.validate.field).bytes.example = \"\\x01\\x02\",\n (buf.validate.field).bytes.example = \"\\x02\\x03\"\n ];\n }\n ```\n\n\r\n\x05\x04\x14\x02\x0e\x04\x12\x04\xbc \x02\n\n\r\n\x05\x04\x14\x02\x0e\x05\x12\x04\xbc \x0b\x10\n\r\n\x05\x04\x14\x02\x0e\x01\x12\x04\xbc \x11\x18\n\r\n\x05\x04\x14\x02\x0e\x03\x12\x04\xbc \x1b\x1d\n\x0f\n\x05\x04\x14\x02\x0e\x08\x12\x06\xbc \x1e\xbf \x04\n\x13\n\t\x04\x14\x02\x0e\x08\x88\t\x01\x00\x12\x06\xbc \x1f\xbf \x03\n\xb8\x01\n\x03\x04\x14\x05\x12\x04\xc4 \x02\x19\x1a\xaa\x01 Extension fields that have the (buf.validate.predefined) option set\n will be treated as predefined field rules.\n See https://protovalidate.com/schemas/predefined-rules/\n\n\x0c\n\x04\x04\x14\x05\x00\x12\x04\xc4 \r\x18\n\r\n\x05\x04\x14\x05\x00\x01\x12\x04\xc4 \r\x11\n\r\n\x05\x04\x14\x05\x00\x02\x12\x04\xc4 \x15\x18\nF\n\x02\x04\x15\x12\x06\xc8 \x00\xb3!\x01\x1a8 EnumRules describe the rules applied to `enum` values.\n\n\x0b\n\x03\x04\x15\x01\x12\x04\xc8 \x08\x11\n\x98\x03\n\x04\x04\x15\x02\x00\x12\x06\xd8 \x02\xdb \x05\x1a\x87\x03 `const` requires the field value to exactly match the specified enum value.\n If the field value doesn\'t match, an error message is generated.\n\n ```proto\n enum MyEnum {\n MY_ENUM_UNSPECIFIED = 0;\n MY_ENUM_VALUE1 = 1;\n MY_ENUM_VALUE2 = 2;\n }\n\n message MyMessage {\n // The field `value` must be exactly MY_ENUM_VALUE1.\n MyEnum value = 1 [(buf.validate.field).enum.const = 1];\n }\n ```\n\n\r\n\x05\x04\x15\x02\x00\x04\x12\x04\xd8 \x02\n\n\r\n\x05\x04\x15\x02\x00\x05\x12\x04\xd8 \x0b\x10\n\r\n\x05\x04\x15\x02\x00\x01\x12\x04\xd8 \x11\x16\n\r\n\x05\x04\x15\x02\x00\x03\x12\x04\xd8 \x19\x1a\n\x0f\n\x05\x04\x15\x02\x00\x08\x12\x06\xd8 \x1b\xdb \x04\n\x13\n\t\x04\x15\x02\x00\x08\x88\t\x01\x00\x12\x06\xd8 \x1c\xdb \x03\n\x8d\x03\n\x04\x04\x15\x02\x01\x12\x04\xec \x02!\x1a\xfe\x02 `defined_only` requires the field value to be one of the defined values for\n this enum, failing on any undefined value.\n\n ```proto\n enum MyEnum {\n MY_ENUM_UNSPECIFIED = 0;\n MY_ENUM_VALUE1 = 1;\n MY_ENUM_VALUE2 = 2;\n }\n\n message MyMessage {\n // The field `value` must be a defined value of MyEnum.\n MyEnum value = 1 [(buf.validate.field).enum.defined_only = true];\n }\n ```\n\n\r\n\x05\x04\x15\x02\x01\x04\x12\x04\xec \x02\n\n\r\n\x05\x04\x15\x02\x01\x05\x12\x04\xec \x0b\x0f\n\r\n\x05\x04\x15\x02\x01\x01\x12\x04\xec \x10\x1c\n\r\n\x05\x04\x15\x02\x01\x03\x12\x04\xec \x1f \n\xcc\x03\n\x04\x04\x15\x02\x02\x12\x06\xfe \x02\x81!\x05\x1a\xbb\x03 `in` requires the field value to be equal to one of the\n specified enum values. If the field value doesn\'t match any of the\n specified values, an error message is generated.\n\n ```proto\n enum MyEnum {\n MY_ENUM_UNSPECIFIED = 0;\n MY_ENUM_VALUE1 = 1;\n MY_ENUM_VALUE2 = 2;\n }\n\n message MyMessage {\n // The field `value` must be equal to one of the specified values.\n MyEnum value = 1 [(buf.validate.field).enum = { in: [1, 2]}];\n }\n ```\n\n\r\n\x05\x04\x15\x02\x02\x04\x12\x04\xfe \x02\n\n\r\n\x05\x04\x15\x02\x02\x05\x12\x04\xfe \x0b\x10\n\r\n\x05\x04\x15\x02\x02\x01\x12\x04\xfe \x11\x13\n\r\n\x05\x04\x15\x02\x02\x03\x12\x04\xfe \x16\x17\n\x0f\n\x05\x04\x15\x02\x02\x08\x12\x06\xfe \x18\x81!\x04\n\x13\n\t\x04\x15\x02\x02\x08\x88\t\x01\x00\x12\x06\xfe \x19\x81!\x03\n\xd6\x03\n\x04\x04\x15\x02\x03\x12\x06\x93!\x02\x96!\x05\x1a\xc5\x03 `not_in` requires the field value to be not equal to any of the\n specified enum values. If the field value matches one of the specified\n values, an error message is generated.\n\n ```proto\n enum MyEnum {\n MY_ENUM_UNSPECIFIED = 0;\n MY_ENUM_VALUE1 = 1;\n MY_ENUM_VALUE2 = 2;\n }\n\n message MyMessage {\n // The field `value` must not be equal to any of the specified values.\n MyEnum value = 1 [(buf.validate.field).enum = { not_in: [1, 2]}];\n }\n ```\n\n\r\n\x05\x04\x15\x02\x03\x04\x12\x04\x93!\x02\n\n\r\n\x05\x04\x15\x02\x03\x05\x12\x04\x93!\x0b\x10\n\r\n\x05\x04\x15\x02\x03\x01\x12\x04\x93!\x11\x17\n\r\n\x05\x04\x15\x02\x03\x03\x12\x04\x93!\x1a\x1b\n\x0f\n\x05\x04\x15\x02\x03\x08\x12\x06\x93!\x1c\x96!\x04\n\x13\n\t\x04\x15\x02\x03\x08\x88\t\x01\x00\x12\x06\x93!\x1d\x96!\x03\n\xe0\x03\n\x04\x04\x15\x02\x04\x12\x06\xaa!\x02\xad!\x05\x1a\xcf\x03 `example` specifies values that the field may have. These values SHOULD\n conform to other rules. `example` values will not impact validation\n but may be used as helpful guidance on how to populate the given field.\n\n ```proto\n enum MyEnum {\n MY_ENUM_UNSPECIFIED = 0;\n MY_ENUM_VALUE1 = 1;\n MY_ENUM_VALUE2 = 2;\n }\n\n message MyMessage {\n MyEnum value = 1 [\n (buf.validate.field).enum.example = 1,\n (buf.validate.field).enum.example = 2\n ];\n }\n ```\n\n\r\n\x05\x04\x15\x02\x04\x04\x12\x04\xaa!\x02\n\n\r\n\x05\x04\x15\x02\x04\x05\x12\x04\xaa!\x0b\x10\n\r\n\x05\x04\x15\x02\x04\x01\x12\x04\xaa!\x11\x18\n\r\n\x05\x04\x15\x02\x04\x03\x12\x04\xaa!\x1b\x1c\n\x0f\n\x05\x04\x15\x02\x04\x08\x12\x06\xaa!\x1d\xad!\x04\n\x13\n\t\x04\x15\x02\x04\x08\x88\t\x01\x00\x12\x06\xaa!\x1e\xad!\x03\n\xb8\x01\n\x03\x04\x15\x05\x12\x04\xb2!\x02\x19\x1a\xaa\x01 Extension fields that have the (buf.validate.predefined) option set\n will be treated as predefined field rules.\n See https://protovalidate.com/schemas/predefined-rules/\n\n\x0c\n\x04\x04\x15\x05\x00\x12\x04\xb2!\r\x18\n\r\n\x05\x04\x15\x05\x00\x01\x12\x04\xb2!\r\x11\n\r\n\x05\x04\x15\x05\x00\x02\x12\x04\xb2!\x15\x18\nN\n\x02\x04\x16\x12\x06\xb6!\x00\xff!\x01\x1a@ RepeatedRules describe the rules applied to `repeated` values.\n\n\x0b\n\x03\x04\x16\x01\x12\x04\xb6!\x08\x15\n\xe1\x02\n\x04\x04\x16\x02\x00\x12\x06\xc2!\x02\xc5!\x05\x1a\xd0\x02 `min_items` requires that this field must contain at least the specified\n minimum number of items.\n\n Note that `min_items = 1` is equivalent to setting a field as `required`.\n\n ```proto\n message MyRepeated {\n // value must contain at least 2 items\n repeated string value = 1 [(buf.validate.field).repeated.min_items = 2];\n }\n ```\n\n\r\n\x05\x04\x16\x02\x00\x04\x12\x04\xc2!\x02\n\n\r\n\x05\x04\x16\x02\x00\x05\x12\x04\xc2!\x0b\x11\n\r\n\x05\x04\x16\x02\x00\x01\x12\x04\xc2!\x12\x1b\n\r\n\x05\x04\x16\x02\x00\x03\x12\x04\xc2!\x1e\x1f\n\x0f\n\x05\x04\x16\x02\x00\x08\x12\x06\xc2! \xc5!\x04\n\x13\n\t\x04\x16\x02\x00\x08\x88\t\x01\x00\x12\x06\xc2!!\xc5!\x03\n\xbd\x03\n\x04\x04\x16\x02\x01\x12\x06\xd2!\x02\xd5!\x05\x1a\xac\x03 `max_items` denotes that this field must not exceed a\n certain number of items as the upper limit. If the field contains more\n items than specified, an error message will be generated, requiring the\n field to maintain no more than the specified number of items.\n\n ```proto\n message MyRepeated {\n // value must contain no more than 3 item(s)\n repeated string value = 1 [(buf.validate.field).repeated.max_items = 3];\n }\n ```\n\n\r\n\x05\x04\x16\x02\x01\x04\x12\x04\xd2!\x02\n\n\r\n\x05\x04\x16\x02\x01\x05\x12\x04\xd2!\x0b\x11\n\r\n\x05\x04\x16\x02\x01\x01\x12\x04\xd2!\x12\x1b\n\r\n\x05\x04\x16\x02\x01\x03\x12\x04\xd2!\x1e\x1f\n\x0f\n\x05\x04\x16\x02\x01\x08\x12\x06\xd2! \xd5!\x04\n\x13\n\t\x04\x16\x02\x01\x08\x88\t\x01\x00\x12\x06\xd2!!\xd5!\x03\n\xde\x02\n\x04\x04\x16\x02\x02\x12\x06\xe1!\x02\xe5!\x05\x1a\xcd\x02 `unique` indicates that all elements in this field must\n be unique. This rule is strictly applicable to scalar and enum\n types, with message types not being supported.\n\n ```proto\n message MyRepeated {\n // repeated value must contain unique items\n repeated string value = 1 [(buf.validate.field).repeated.unique = true];\n }\n ```\n\n\r\n\x05\x04\x16\x02\x02\x04\x12\x04\xe1!\x02\n\n\r\n\x05\x04\x16\x02\x02\x05\x12\x04\xe1!\x0b\x0f\n\r\n\x05\x04\x16\x02\x02\x01\x12\x04\xe1!\x10\x16\n\r\n\x05\x04\x16\x02\x02\x03\x12\x04\xe1!\x19\x1a\n\x0f\n\x05\x04\x16\x02\x02\x08\x12\x06\xe1!\x1b\xe5!\x04\n\x13\n\t\x04\x16\x02\x02\x08\x88\t\x01\x00\x12\x06\xe1!\x1c\xe5!\x03\n\x86\x04\n\x04\x04\x16\x02\x03\x12\x04\xf9!\x02 \x1a\xf7\x03 `items` details the rules to be applied to each item\n in the field. Even for repeated message fields, validation is executed\n against each item unless `ignore` is specified.\n\n ```proto\n message MyRepeated {\n // The items in the field `value` must follow the specified rules.\n repeated string value = 1 [(buf.validate.field).repeated.items = {\n string: {\n min_len: 3\n max_len: 10\n }\n }];\n }\n ```\n\n Note that the `required` rule does not apply. Repeated items\n cannot be unset.\n\n\r\n\x05\x04\x16\x02\x03\x04\x12\x04\xf9!\x02\n\n\r\n\x05\x04\x16\x02\x03\x06\x12\x04\xf9!\x0b\x15\n\r\n\x05\x04\x16\x02\x03\x01\x12\x04\xf9!\x16\x1b\n\r\n\x05\x04\x16\x02\x03\x03\x12\x04\xf9!\x1e\x1f\n\xb8\x01\n\x03\x04\x16\x05\x12\x04\xfe!\x02\x19\x1a\xaa\x01 Extension fields that have the (buf.validate.predefined) option set\n will be treated as predefined field rules.\n See https://protovalidate.com/schemas/predefined-rules/\n\n\x0c\n\x04\x04\x16\x05\x00\x12\x04\xfe!\r\x18\n\r\n\x05\x04\x16\x05\x00\x01\x12\x04\xfe!\r\x11\n\r\n\x05\x04\x16\x05\x00\x02\x12\x04\xfe!\x15\x18\nD\n\x02\x04\x17\x12\x06\x82\"\x00\xc6\"\x01\x1a6 MapRules describe the rules applied to `map` values.\n\n\x0b\n\x03\x04\x17\x01\x12\x04\x82\"\x08\x10\n\xcf\x02\n\x04\x04\x17\x02\x00\x12\x06\x8c\"\x02\x8f\"\x05\x1a\xbe\x02 Specifies the minimum number of key-value pairs allowed. If the field has\n fewer key-value pairs than specified, an error message is generated.\n\n ```proto\n message MyMap {\n // The field `value` must have at least 2 key-value pairs.\n map<string, string> value = 1 [(buf.validate.field).map.min_pairs = 2];\n }\n ```\n\n\r\n\x05\x04\x17\x02\x00\x04\x12\x04\x8c\"\x02\n\n\r\n\x05\x04\x17\x02\x00\x05\x12\x04\x8c\"\x0b\x11\n\r\n\x05\x04\x17\x02\x00\x01\x12\x04\x8c\"\x12\x1b\n\r\n\x05\x04\x17\x02\x00\x03\x12\x04\x8c\"\x1e\x1f\n\x0f\n\x05\x04\x17\x02\x00\x08\x12\x06\x8c\" \x8f\"\x04\n\x13\n\t\x04\x17\x02\x00\x08\x88\t\x01\x00\x12\x06\x8c\"!\x8f\"\x03\n\xcd\x02\n\x04\x04\x17\x02\x01\x12\x06\x9a\"\x02\x9d\"\x05\x1a\xbc\x02 Specifies the maximum number of key-value pairs allowed. If the field has\n more key-value pairs than specified, an error message is generated.\n\n ```proto\n message MyMap {\n // The field `value` must have at most 3 key-value pairs.\n map<string, string> value = 1 [(buf.validate.field).map.max_pairs = 3];\n }\n ```\n\n\r\n\x05\x04\x17\x02\x01\x04\x12\x04\x9a\"\x02\n\n\r\n\x05\x04\x17\x02\x01\x05\x12\x04\x9a\"\x0b\x11\n\r\n\x05\x04\x17\x02\x01\x01\x12\x04\x9a\"\x12\x1b\n\r\n\x05\x04\x17\x02\x01\x03\x12\x04\x9a\"\x1e\x1f\n\x0f\n\x05\x04\x17\x02\x01\x08\x12\x06\x9a\" \x9d\"\x04\n\x13\n\t\x04\x17\x02\x01\x08\x88\t\x01\x00\x12\x06\x9a\"!\x9d\"\x03\n\x85\x03\n\x04\x04\x17\x02\x02\x12\x04\xae\"\x02\x1f\x1a\xf6\x02 Specifies the rules to be applied to each key in the field.\n\n ```proto\n message MyMap {\n // The keys in the field `value` must follow the specified rules.\n map<string, string> value = 1 [(buf.validate.field).map.keys = {\n string: {\n min_len: 3\n max_len: 10\n }\n }];\n }\n ```\n\n Note that the `required` rule does not apply. Map keys cannot be unset.\n\n\r\n\x05\x04\x17\x02\x02\x04\x12\x04\xae\"\x02\n\n\r\n\x05\x04\x17\x02\x02\x06\x12\x04\xae\"\x0b\x15\n\r\n\x05\x04\x17\x02\x02\x01\x12\x04\xae\"\x16\x1a\n\r\n\x05\x04\x17\x02\x02\x03\x12\x04\xae\"\x1d\x1e\n\xf2\x03\n\x04\x04\x17\x02\x03\x12\x04\xc0\"\x02!\x1a\xe3\x03 Specifies the rules to be applied to the value of each key in the\n field. Message values will still have their validations evaluated unless\n `ignore` is specified.\n\n ```proto\n message MyMap {\n // The values in the field `value` must follow the specified rules.\n map<string, string> value = 1 [(buf.validate.field).map.values = {\n string: {\n min_len: 5\n max_len: 20\n }\n }];\n }\n ```\n Note that the `required` rule does not apply. Map values cannot be unset.\n\n\r\n\x05\x04\x17\x02\x03\x04\x12\x04\xc0\"\x02\n\n\r\n\x05\x04\x17\x02\x03\x06\x12\x04\xc0\"\x0b\x15\n\r\n\x05\x04\x17\x02\x03\x01\x12\x04\xc0\"\x16\x1c\n\r\n\x05\x04\x17\x02\x03\x03\x12\x04\xc0\"\x1f \n\xb8\x01\n\x03\x04\x17\x05\x12\x04\xc5\"\x02\x19\x1a\xaa\x01 Extension fields that have the (buf.validate.predefined) option set\n will be treated as predefined field rules.\n See https://protovalidate.com/schemas/predefined-rules/\n\n\x0c\n\x04\x04\x17\x05\x00\x12\x04\xc5\"\r\x18\n\r\n\x05\x04\x17\x05\x00\x01\x12\x04\xc5\"\r\x11\n\r\n\x05\x04\x17\x05\x00\x02\x12\x04\xc5\"\x15\x18\ni\n\x02\x04\x18\x12\x06\xc9\"\x00\xe3\"\x01\x1a[ AnyRules describe rules applied exclusively to the `google.protobuf.Any` well-known type.\n\n\x0b\n\x03\x04\x18\x01\x12\x04\xc9\"\x08\x10\n\xbd\x03\n\x04\x04\x18\x02\x00\x12\x04\xd6\"\x02\x19\x1a\xae\x03 `in` requires the field\'s `type_url` to be equal to one of the\n specified values. If it doesn\'t match any of the specified values, an error\n message is generated.\n\n ```proto\n message MyAny {\n // The `value` field must have a `type_url` equal to one of the specified values.\n google.protobuf.Any value = 1 [(buf.validate.field).any = {\n in: [\"type.googleapis.com/MyType1\", \"type.googleapis.com/MyType2\"]\n }];\n }\n ```\n\n\r\n\x05\x04\x18\x02\x00\x04\x12\x04\xd6\"\x02\n\n\r\n\x05\x04\x18\x02\x00\x05\x12\x04\xd6\"\x0b\x11\n\r\n\x05\x04\x18\x02\x00\x01\x12\x04\xd6\"\x12\x14\n\r\n\x05\x04\x18\x02\x00\x03\x12\x04\xd6\"\x17\x18\n\xd1\x03\n\x04\x04\x18\x02\x01\x12\x04\xe2\"\x02\x1d\x1a\xc2\x03 `not_in` requires the field\'s type_url to be not equal to any of the specified values. If it matches any of the specified values, an error message is generated.\n\n ```proto\n message MyAny {\n // The `value` field must not have a `type_url` equal to any of the specified values.\n google.protobuf.Any value = 1 [(buf.validate.field).any = {\n not_in: [\"type.googleapis.com/ForbiddenType1\", \"type.googleapis.com/ForbiddenType2\"]\n }];\n }\n ```\n\n\r\n\x05\x04\x18\x02\x01\x04\x12\x04\xe2\"\x02\n\n\r\n\x05\x04\x18\x02\x01\x05\x12\x04\xe2\"\x0b\x11\n\r\n\x05\x04\x18\x02\x01\x01\x12\x04\xe2\"\x12\x18\n\r\n\x05\x04\x18\x02\x01\x03\x12\x04\xe2\"\x1b\x1c\nw\n\x02\x04\x19\x12\x06\xe6\"\x00\xb8$\x01\x1ai DurationRules describe the rules applied exclusively to the `google.protobuf.Duration` well-known type.\n\n\x0b\n\x03\x04\x19\x01\x12\x04\xe6\"\x08\x15\n\x80\x03\n\x04\x04\x19\x02\x00\x12\x06\xf1\"\x02\xf4\"\x05\x1a\xef\x02 `const` dictates that the field must match the specified value of the `google.protobuf.Duration` type exactly.\n If the field\'s value deviates from the specified value, an error message\n will be generated.\n\n ```proto\n message MyDuration {\n // value must equal 5s\n google.protobuf.Duration value = 1 [(buf.validate.field).duration.const = { seconds: 5 }];\n }\n ```\n\n\r\n\x05\x04\x19\x02\x00\x04\x12\x04\xf1\"\x02\n\n\r\n\x05\x04\x19\x02\x00\x06\x12\x04\xf1\"\x0b#\n\r\n\x05\x04\x19\x02\x00\x01\x12\x04\xf1\"$)\n\r\n\x05\x04\x19\x02\x00\x03\x12\x04\xf1\",-\n\x0f\n\x05\x04\x19\x02\x00\x08\x12\x06\xf1\".\xf4\"\x04\n\x13\n\t\x04\x19\x02\x00\x08\x88\t\x01\x00\x12\x06\xf1\"/\xf4\"\x03\n\x0e\n\x04\x04\x19\x08\x00\x12\x06\xf5\"\x02\x97#\x03\n\r\n\x05\x04\x19\x08\x00\x01\x12\x04\xf5\"\x08\x11\n\x95\x03\n\x04\x04\x19\x02\x01\x12\x06\x80#\x04\x85#\x07\x1a\x84\x03 `lt` stipulates that the field must be less than the specified value of the `google.protobuf.Duration` type,\n exclusive. If the field\'s value is greater than or equal to the specified\n value, an error message will be generated.\n\n ```proto\n message MyDuration {\n // must be less than 5s\n google.protobuf.Duration value = 1 [(buf.validate.field).duration.lt = { seconds: 5 }];\n }\n ```\n\n\r\n\x05\x04\x19\x02\x01\x06\x12\x04\x80#\x04\x1c\n\r\n\x05\x04\x19\x02\x01\x01\x12\x04\x80#\x1d\x1f\n\r\n\x05\x04\x19\x02\x01\x03\x12\x04\x80#\"#\n\x0f\n\x05\x04\x19\x02\x01\x08\x12\x06\x80#$\x85#\x06\n\x13\n\t\x04\x19\x02\x01\x08\x88\t\x01\x00\x12\x06\x80#%\x85#\x05\n\xa4\x03\n\x04\x04\x19\x02\x02\x12\x06\x91#\x04\x96#\x07\x1a\x93\x03 `lte` indicates that the field must be less than or equal to the specified\n value of the `google.protobuf.Duration` type, inclusive. If the field\'s value is greater than the specified value,\n an error message will be generated.\n\n ```proto\n message MyDuration {\n // must be less than or equal to 10s\n google.protobuf.Duration value = 1 [(buf.validate.field).duration.lte = { seconds: 10 }];\n }\n ```\n\n\r\n\x05\x04\x19\x02\x02\x06\x12\x04\x91#\x04\x1c\n\r\n\x05\x04\x19\x02\x02\x01\x12\x04\x91#\x1d \n\r\n\x05\x04\x19\x02\x02\x03\x12\x04\x91##$\n\x0f\n\x05\x04\x19\x02\x02\x08\x12\x06\x91#%\x96#\x06\n\x13\n\t\x04\x19\x02\x02\x08\x88\t\x01\x00\x12\x06\x91#&\x96#\x05\n\x0e\n\x04\x04\x19\x08\x01\x12\x06\x98#\x02\xfe#\x03\n\r\n\x05\x04\x19\x08\x01\x01\x12\x04\x98#\x08\x14\n\xa8\x07\n\x04\x04\x19\x02\x03\x12\x06\xab#\x04\xca#\x06\x1a\x97\x07 `gt` requires the duration field value to be greater than the specified\n value (exclusive). If the value of `gt` is larger than a specified `lt`\n or `lte`, the range is reversed, and the field value must be outside the\n specified range. If the field value doesn\'t meet the required conditions,\n an error message is generated.\n\n ```proto\n message MyDuration {\n // duration must be greater than 5s [duration.gt]\n google.protobuf.Duration value = 1 [(buf.validate.field).duration.gt = { seconds: 5 }];\n\n // duration must be greater than 5s and less than 10s [duration.gt_lt]\n google.protobuf.Duration another_value = 2 [(buf.validate.field).duration = { gt: { seconds: 5 }, lt: { seconds: 10 } }];\n\n // duration must be greater than 10s or less than 5s [duration.gt_lt_exclusive]\n google.protobuf.Duration other_value = 3 [(buf.validate.field).duration = { gt: { seconds: 10 }, lt: { seconds: 5 } }];\n }\n ```\n\n\r\n\x05\x04\x19\x02\x03\x06\x12\x04\xab#\x04\x1c\n\r\n\x05\x04\x19\x02\x03\x01\x12\x04\xab#\x1d\x1f\n\r\n\x05\x04\x19\x02\x03\x03\x12\x04\xab#\"#\n\x0f\n\x05\x04\x19\x02\x03\x08\x12\x06\xab#$\xca#\x05\n\x13\n\t\x04\x19\x02\x03\x08\x88\t\x01\x00\x12\x06\xac#\x06\xb1#\x07\n\x13\n\t\x04\x19\x02\x03\x08\x88\t\x01\x01\x12\x06\xb2#\x06\xb7#\x07\n\x13\n\t\x04\x19\x02\x03\x08\x88\t\x01\x02\x12\x06\xb8#\x06\xbd#\x07\n\x13\n\t\x04\x19\x02\x03\x08\x88\t\x01\x03\x12\x06\xbe#\x06\xc3#\x07\n\x13\n\t\x04\x19\x02\x03\x08\x88\t\x01\x04\x12\x06\xc4#\x06\xc9#\x07\n\xda\x07\n\x04\x04\x19\x02\x04\x12\x06\xde#\x04\xfd#\x06\x1a\xc9\x07 `gte` requires the duration field value to be greater than or equal to the\n specified value (exclusive). If the value of `gte` is larger than a\n specified `lt` or `lte`, the range is reversed, and the field value must\n be outside the specified range. If the field value doesn\'t meet the\n required conditions, an error message is generated.\n\n ```proto\n message MyDuration {\n // duration must be greater than or equal to 5s [duration.gte]\n google.protobuf.Duration value = 1 [(buf.validate.field).duration.gte = { seconds: 5 }];\n\n // duration must be greater than or equal to 5s and less than 10s [duration.gte_lt]\n google.protobuf.Duration another_value = 2 [(buf.validate.field).duration = { gte: { seconds: 5 }, lt: { seconds: 10 } }];\n\n // duration must be greater than or equal to 10s or less than 5s [duration.gte_lt_exclusive]\n google.protobuf.Duration other_value = 3 [(buf.validate.field).duration = { gte: { seconds: 10 }, lt: { seconds: 5 } }];\n }\n ```\n\n\r\n\x05\x04\x19\x02\x04\x06\x12\x04\xde#\x04\x1c\n\r\n\x05\x04\x19\x02\x04\x01\x12\x04\xde#\x1d \n\r\n\x05\x04\x19\x02\x04\x03\x12\x04\xde##$\n\x0f\n\x05\x04\x19\x02\x04\x08\x12\x06\xde#%\xfd#\x05\n\x13\n\t\x04\x19\x02\x04\x08\x88\t\x01\x00\x12\x06\xdf#\x06\xe4#\x07\n\x13\n\t\x04\x19\x02\x04\x08\x88\t\x01\x01\x12\x06\xe5#\x06\xea#\x07\n\x13\n\t\x04\x19\x02\x04\x08\x88\t\x01\x02\x12\x06\xeb#\x06\xf0#\x07\n\x13\n\t\x04\x19\x02\x04\x08\x88\t\x01\x03\x12\x06\xf1#\x06\xf6#\x07\n\x13\n\t\x04\x19\x02\x04\x08\x88\t\x01\x04\x12\x06\xf7#\x06\xfc#\x07\n\xc7\x03\n\x04\x04\x19\x02\x05\x12\x06\x8c$\x02\x8f$\x05\x1a\xb6\x03 `in` asserts that the field must be equal to one of the specified values of the `google.protobuf.Duration` type.\n If the field\'s value doesn\'t correspond to any of the specified values,\n an error message will be generated.\n\n ```proto\n message MyDuration {\n // must be in list [1s, 2s, 3s]\n google.protobuf.Duration value = 1 [(buf.validate.field).duration = {\n in: [{ seconds: 1 }, { seconds: 2 }, { seconds: 3 }]\n }];\n }\n ```\n\n\r\n\x05\x04\x19\x02\x05\x04\x12\x04\x8c$\x02\n\n\r\n\x05\x04\x19\x02\x05\x06\x12\x04\x8c$\x0b#\n\r\n\x05\x04\x19\x02\x05\x01\x12\x04\x8c$$&\n\r\n\x05\x04\x19\x02\x05\x03\x12\x04\x8c$)*\n\x0f\n\x05\x04\x19\x02\x05\x08\x12\x06\x8c$+\x8f$\x04\n\x13\n\t\x04\x19\x02\x05\x08\x88\t\x01\x00\x12\x06\x8c$,\x8f$\x03\n\xc8\x03\n\x04\x04\x19\x02\x06\x12\x06\x9e$\x02\xa1$\x05\x1a\xb7\x03 `not_in` denotes that the field must not be equal to\n any of the specified values of the `google.protobuf.Duration` type.\n If the field\'s value matches any of these values, an error message will be\n generated.\n\n ```proto\n message MyDuration {\n // value must not be in list [1s, 2s, 3s]\n google.protobuf.Duration value = 1 [(buf.validate.field).duration = {\n not_in: [{ seconds: 1 }, { seconds: 2 }, { seconds: 3 }]\n }];\n }\n ```\n\n\r\n\x05\x04\x19\x02\x06\x04\x12\x04\x9e$\x02\n\n\r\n\x05\x04\x19\x02\x06\x06\x12\x04\x9e$\x0b#\n\r\n\x05\x04\x19\x02\x06\x01\x12\x04\x9e$$*\n\r\n\x05\x04\x19\x02\x06\x03\x12\x04\x9e$-.\n\x0f\n\x05\x04\x19\x02\x06\x08\x12\x06\x9e$/\xa1$\x04\n\x13\n\t\x04\x19\x02\x06\x08\x88\t\x01\x00\x12\x06\x9e$0\xa1$\x03\n\xb8\x03\n\x04\x04\x19\x02\x07\x12\x06\xaf$\x02\xb2$\x05\x1a\xa7\x03 `example` specifies values that the field may have. These values SHOULD\n conform to other rules. `example` values will not impact validation\n but may be used as helpful guidance on how to populate the given field.\n\n ```proto\n message MyDuration {\n google.protobuf.Duration value = 1 [\n (buf.validate.field).duration.example = { seconds: 1 },\n (buf.validate.field).duration.example = { seconds: 2 }\n ];\n }\n ```\n\n\r\n\x05\x04\x19\x02\x07\x04\x12\x04\xaf$\x02\n\n\r\n\x05\x04\x19\x02\x07\x06\x12\x04\xaf$\x0b#\n\r\n\x05\x04\x19\x02\x07\x01\x12\x04\xaf$$+\n\r\n\x05\x04\x19\x02\x07\x03\x12\x04\xaf$./\n\x0f\n\x05\x04\x19\x02\x07\x08\x12\x06\xaf$0\xb2$\x04\n\x13\n\t\x04\x19\x02\x07\x08\x88\t\x01\x00\x12\x06\xaf$1\xb2$\x03\n\xb8\x01\n\x03\x04\x19\x05\x12\x04\xb7$\x02\x19\x1a\xaa\x01 Extension fields that have the (buf.validate.predefined) option set\n will be treated as predefined field rules.\n See https://protovalidate.com/schemas/predefined-rules/\n\n\x0c\n\x04\x04\x19\x05\x00\x12\x04\xb7$\r\x18\n\r\n\x05\x04\x19\x05\x00\x01\x12\x04\xb7$\r\x11\n\r\n\x05\x04\x19\x05\x00\x02\x12\x04\xb7$\x15\x18\nu\n\x02\x04\x1a\x12\x06\xbb$\x00\x88%\x01\x1ag FieldMaskRules describe rules applied exclusively to the `google.protobuf.FieldMask` well-known type.\n\n\x0b\n\x03\x04\x1a\x01\x12\x04\xbb$\x08\x16\n\x94\x03\n\x04\x04\x1a\x02\x00\x12\x06\xc8$\x02\xcb$\x05\x1a\x83\x03 `const` dictates that the field must match the specified value of the `google.protobuf.FieldMask` type exactly.\n If the field\'s value deviates from the specified value, an error message\n will be generated.\n\n ```proto\n message MyFieldMask {\n // value must equal [\"a\"]\n google.protobuf.FieldMask value = 1 [(buf.validate.field).field_mask.const = {\n paths: [\"a\"]\n }];\n }\n ```\n\n\r\n\x05\x04\x1a\x02\x00\x04\x12\x04\xc8$\x02\n\n\r\n\x05\x04\x1a\x02\x00\x06\x12\x04\xc8$\x0b$\n\r\n\x05\x04\x1a\x02\x00\x01\x12\x04\xc8$%*\n\r\n\x05\x04\x1a\x02\x00\x03\x12\x04\xc8$-.\n\x0f\n\x05\x04\x1a\x02\x00\x08\x12\x06\xc8$/\xcb$\x04\n\x13\n\t\x04\x1a\x02\x00\x08\x88\t\x01\x00\x12\x06\xc8$0\xcb$\x03\n\xf8\x03\n\x04\x04\x1a\x02\x01\x12\x06\xdb$\x02\xde$\x05\x1a\xe7\x03 `in` requires the field value to only contain paths matching specified\n values or their subpaths.\n If any of the field value\'s paths doesn\'t match the rule,\n an error message is generated.\n See: https://protobuf.dev/reference/protobuf/google.protobuf/#field-mask\n\n ```proto\n message MyFieldMask {\n // The `value` FieldMask must only contain paths listed in `in`.\n google.protobuf.FieldMask value = 1 [(buf.validate.field).field_mask = {\n in: [\"a\", \"b\", \"c.a\"]\n }];\n }\n ```\n\n\r\n\x05\x04\x1a\x02\x01\x04\x12\x04\xdb$\x02\n\n\r\n\x05\x04\x1a\x02\x01\x05\x12\x04\xdb$\x0b\x11\n\r\n\x05\x04\x1a\x02\x01\x01\x12\x04\xdb$\x12\x14\n\r\n\x05\x04\x1a\x02\x01\x03\x12\x04\xdb$\x17\x18\n\x0f\n\x05\x04\x1a\x02\x01\x08\x12\x06\xdb$\x19\xde$\x04\n\x13\n\t\x04\x1a\x02\x01\x08\x88\t\x01\x00\x12\x06\xdb$\x1a\xde$\x03\n\x8d\x04\n\x04\x04\x1a\x02\x02\x12\x06\xee$\x02\xf1$\x05\x1a\xfc\x03 `not_in` requires the field value to not contain paths matching specified\n values or their subpaths.\n If any of the field value\'s paths matches the rule,\n an error message is generated.\n See: https://protobuf.dev/reference/protobuf/google.protobuf/#field-mask\n\n ```proto\n message MyFieldMask {\n // The `value` FieldMask shall not contain paths listed in `not_in`.\n google.protobuf.FieldMask value = 1 [(buf.validate.field).field_mask = {\n not_in: [\"forbidden\", \"immutable\", \"c.a\"]\n }];\n }\n ```\n\n\r\n\x05\x04\x1a\x02\x02\x04\x12\x04\xee$\x02\n\n\r\n\x05\x04\x1a\x02\x02\x05\x12\x04\xee$\x0b\x11\n\r\n\x05\x04\x1a\x02\x02\x01\x12\x04\xee$\x12\x18\n\r\n\x05\x04\x1a\x02\x02\x03\x12\x04\xee$\x1b\x1c\n\x0f\n\x05\x04\x1a\x02\x02\x08\x12\x06\xee$\x1d\xf1$\x04\n\x13\n\t\x04\x1a\x02\x02\x08\x88\t\x01\x00\x12\x06\xee$\x1e\xf1$\x03\n\xce\x03\n\x04\x04\x1a\x02\x03\x12\x06\xff$\x02\x82%\x05\x1a\xbd\x03 `example` specifies values that the field may have. These values SHOULD\n conform to other rules. `example` values will not impact validation\n but may be used as helpful guidance on how to populate the given field.\n\n ```proto\n message MyFieldMask {\n google.protobuf.FieldMask value = 1 [\n (buf.validate.field).field_mask.example = { paths: [\"a\", \"b\"] },\n (buf.validate.field).field_mask.example = { paths: [\"c.a\", \"d\"] }\n ];\n }\n ```\n\n\r\n\x05\x04\x1a\x02\x03\x04\x12\x04\xff$\x02\n\n\r\n\x05\x04\x1a\x02\x03\x06\x12\x04\xff$\x0b$\n\r\n\x05\x04\x1a\x02\x03\x01\x12\x04\xff$%,\n\r\n\x05\x04\x1a\x02\x03\x03\x12\x04\xff$/0\n\x0f\n\x05\x04\x1a\x02\x03\x08\x12\x06\xff$1\x82%\x04\n\x13\n\t\x04\x1a\x02\x03\x08\x88\t\x01\x00\x12\x06\xff$2\x82%\x03\n\xb8\x01\n\x03\x04\x1a\x05\x12\x04\x87%\x02\x19\x1a\xaa\x01 Extension fields that have the (buf.validate.predefined) option set\n will be treated as predefined field rules.\n See https://protovalidate.com/schemas/predefined-rules/\n\n\x0c\n\x04\x04\x1a\x05\x00\x12\x04\x87%\r\x18\n\r\n\x05\x04\x1a\x05\x00\x01\x12\x04\x87%\r\x11\n\r\n\x05\x04\x1a\x05\x00\x02\x12\x04\x87%\x15\x18\ny\n\x02\x04\x1b\x12\x06\x8b%\x00\xdb&\x01\x1ak TimestampRules describe the rules applied exclusively to the `google.protobuf.Timestamp` well-known type.\n\n\x0b\n\x03\x04\x1b\x01\x12\x04\x8b%\x08\x16\n\xad\x03\n\x04\x04\x1b\x02\x00\x12\x06\x94%\x02\x97%\x05\x1a\x9c\x03 `const` dictates that this field, of the `google.protobuf.Timestamp` type, must exactly match the specified value. If the field value doesn\'t correspond to the specified timestamp, an error message will be generated.\n\n ```proto\n message MyTimestamp {\n // value must equal 2023-05-03T10:00:00Z\n google.protobuf.Timestamp created_at = 1 [(buf.validate.field).timestamp.const = {seconds: 1727998800}];\n }\n ```\n\n\r\n\x05\x04\x1b\x02\x00\x04\x12\x04\x94%\x02\n\n\r\n\x05\x04\x1b\x02\x00\x06\x12\x04\x94%\x0b$\n\r\n\x05\x04\x1b\x02\x00\x01\x12\x04\x94%%*\n\r\n\x05\x04\x1b\x02\x00\x03\x12\x04\x94%-.\n\x0f\n\x05\x04\x1b\x02\x00\x08\x12\x06\x94%/\x97%\x04\n\x13\n\t\x04\x1b\x02\x00\x08\x88\t\x01\x00\x12\x06\x94%0\x97%\x03\n\x0e\n\x04\x04\x1b\x08\x00\x12\x06\x98%\x02\xc3%\x03\n\r\n\x05\x04\x1b\x08\x00\x01\x12\x04\x98%\x08\x11\n\x9f\x03\n\x04\x04\x1b\x02\x01\x12\x06\xa1%\x04\xa6%\x07\x1a\x8e\x03 `lt` requires the timestamp field value to be less than the specified value (field < value). If the field value doesn\'t meet the required conditions, an error message is generated.\n\n ```proto\n message MyTimestamp {\n // timestamp must be less than \'2023-01-01T00:00:00Z\' [timestamp.lt]\n google.protobuf.Timestamp value = 1 [(buf.validate.field).timestamp.lt = { seconds: 1672444800 }];\n }\n ```\n\n\r\n\x05\x04\x1b\x02\x01\x06\x12\x04\xa1%\x04\x1d\n\r\n\x05\x04\x1b\x02\x01\x01\x12\x04\xa1%\x1e \n\r\n\x05\x04\x1b\x02\x01\x03\x12\x04\xa1%#$\n\x0f\n\x05\x04\x1b\x02\x01\x08\x12\x06\xa1%%\xa6%\x06\n\x13\n\t\x04\x1b\x02\x01\x08\x88\t\x01\x00\x12\x06\xa1%&\xa6%\x05\n\xbb\x03\n\x04\x04\x1b\x02\x02\x12\x06\xb0%\x04\xb5%\x07\x1a\xaa\x03 `lte` requires the timestamp field value to be less than or equal to the specified value (field <= value). If the field value doesn\'t meet the required conditions, an error message is generated.\n\n ```proto\n message MyTimestamp {\n // timestamp must be less than or equal to \'2023-05-14T00:00:00Z\' [timestamp.lte]\n google.protobuf.Timestamp value = 1 [(buf.validate.field).timestamp.lte = { seconds: 1678867200 }];\n }\n ```\n\n\r\n\x05\x04\x1b\x02\x02\x06\x12\x04\xb0%\x04\x1d\n\r\n\x05\x04\x1b\x02\x02\x01\x12\x04\xb0%\x1e!\n\r\n\x05\x04\x1b\x02\x02\x03\x12\x04\xb0%$%\n\x0f\n\x05\x04\x1b\x02\x02\x08\x12\x06\xb0%&\xb5%\x06\n\x13\n\t\x04\x1b\x02\x02\x08\x88\t\x01\x00\x12\x06\xb0%\'\xb5%\x05\n\xd6\x02\n\x04\x04\x1b\x02\x03\x12\x06\xbf%\x04\xc2%\x07\x1a\xc5\x02 `lt_now` specifies that this field, of the `google.protobuf.Timestamp` type, must be less than the current time. `lt_now` can only be used with the `within` rule.\n\n ```proto\n message MyTimestamp {\n // must be less than now\n google.protobuf.Timestamp created_at = 1 [(buf.validate.field).timestamp.lt_now = true];\n }\n ```\n\n\r\n\x05\x04\x1b\x02\x03\x05\x12\x04\xbf%\x04\x08\n\r\n\x05\x04\x1b\x02\x03\x01\x12\x04\xbf%\t\x0f\n\r\n\x05\x04\x1b\x02\x03\x03\x12\x04\xbf%\x12\x13\n\x0f\n\x05\x04\x1b\x02\x03\x08\x12\x06\xbf%\x14\xc2%\x06\n\x13\n\t\x04\x1b\x02\x03\x08\x88\t\x01\x00\x12\x06\xbf%\x15\xc2%\x05\n\x0e\n\x04\x04\x1b\x08\x01\x12\x06\xc4%\x02\xb7&\x03\n\r\n\x05\x04\x1b\x08\x01\x01\x12\x04\xc4%\x08\x14\n\xc3\x08\n\x04\x04\x1b\x02\x04\x12\x06\xd7%\x04\xf6%\x06\x1a\xb2\x08 `gt` requires the timestamp field value to be greater than the specified\n value (exclusive). If the value of `gt` is larger than a specified `lt`\n or `lte`, the range is reversed, and the field value must be outside the\n specified range. If the field value doesn\'t meet the required conditions,\n an error message is generated.\n\n ```proto\n message MyTimestamp {\n // timestamp must be greater than \'2023-01-01T00:00:00Z\' [timestamp.gt]\n google.protobuf.Timestamp value = 1 [(buf.validate.field).timestamp.gt = { seconds: 1672444800 }];\n\n // timestamp must be greater than \'2023-01-01T00:00:00Z\' and less than \'2023-01-02T00:00:00Z\' [timestamp.gt_lt]\n google.protobuf.Timestamp another_value = 2 [(buf.validate.field).timestamp = { gt: { seconds: 1672444800 }, lt: { seconds: 1672531200 } }];\n\n // timestamp must be greater than \'2023-01-02T00:00:00Z\' or less than \'2023-01-01T00:00:00Z\' [timestamp.gt_lt_exclusive]\n google.protobuf.Timestamp other_value = 3 [(buf.validate.field).timestamp = { gt: { seconds: 1672531200 }, lt: { seconds: 1672444800 } }];\n }\n ```\n\n\r\n\x05\x04\x1b\x02\x04\x06\x12\x04\xd7%\x04\x1d\n\r\n\x05\x04\x1b\x02\x04\x01\x12\x04\xd7%\x1e \n\r\n\x05\x04\x1b\x02\x04\x03\x12\x04\xd7%#$\n\x0f\n\x05\x04\x1b\x02\x04\x08\x12\x06\xd7%%\xf6%\x05\n\x13\n\t\x04\x1b\x02\x04\x08\x88\t\x01\x00\x12\x06\xd8%\x06\xdd%\x07\n\x13\n\t\x04\x1b\x02\x04\x08\x88\t\x01\x01\x12\x06\xde%\x06\xe3%\x07\n\x13\n\t\x04\x1b\x02\x04\x08\x88\t\x01\x02\x12\x06\xe4%\x06\xe9%\x07\n\x13\n\t\x04\x1b\x02\x04\x08\x88\t\x01\x03\x12\x06\xea%\x06\xef%\x07\n\x13\n\t\x04\x1b\x02\x04\x08\x88\t\x01\x04\x12\x06\xf0%\x06\xf5%\x07\n\xfb\x08\n\x04\x04\x1b\x02\x05\x12\x06\x8a&\x04\xa9&\x06\x1a\xea\x08 `gte` requires the timestamp field value to be greater than or equal to the\n specified value (exclusive). If the value of `gte` is larger than a\n specified `lt` or `lte`, the range is reversed, and the field value\n must be outside the specified range. If the field value doesn\'t meet\n the required conditions, an error message is generated.\n\n ```proto\n message MyTimestamp {\n // timestamp must be greater than or equal to \'2023-01-01T00:00:00Z\' [timestamp.gte]\n google.protobuf.Timestamp value = 1 [(buf.validate.field).timestamp.gte = { seconds: 1672444800 }];\n\n // timestamp must be greater than or equal to \'2023-01-01T00:00:00Z\' and less than \'2023-01-02T00:00:00Z\' [timestamp.gte_lt]\n google.protobuf.Timestamp another_value = 2 [(buf.validate.field).timestamp = { gte: { seconds: 1672444800 }, lt: { seconds: 1672531200 } }];\n\n // timestamp must be greater than or equal to \'2023-01-02T00:00:00Z\' or less than \'2023-01-01T00:00:00Z\' [timestamp.gte_lt_exclusive]\n google.protobuf.Timestamp other_value = 3 [(buf.validate.field).timestamp = { gte: { seconds: 1672531200 }, lt: { seconds: 1672444800 } }];\n }\n ```\n\n\r\n\x05\x04\x1b\x02\x05\x06\x12\x04\x8a&\x04\x1d\n\r\n\x05\x04\x1b\x02\x05\x01\x12\x04\x8a&\x1e!\n\r\n\x05\x04\x1b\x02\x05\x03\x12\x04\x8a&$%\n\x0f\n\x05\x04\x1b\x02\x05\x08\x12\x06\x8a&&\xa9&\x05\n\x13\n\t\x04\x1b\x02\x05\x08\x88\t\x01\x00\x12\x06\x8b&\x06\x90&\x07\n\x13\n\t\x04\x1b\x02\x05\x08\x88\t\x01\x01\x12\x06\x91&\x06\x96&\x07\n\x13\n\t\x04\x1b\x02\x05\x08\x88\t\x01\x02\x12\x06\x97&\x06\x9c&\x07\n\x13\n\t\x04\x1b\x02\x05\x08\x88\t\x01\x03\x12\x06\x9d&\x06\xa2&\x07\n\x13\n\t\x04\x1b\x02\x05\x08\x88\t\x01\x04\x12\x06\xa3&\x06\xa8&\x07\n\xdd\x02\n\x04\x04\x1b\x02\x06\x12\x06\xb3&\x04\xb6&\x07\x1a\xcc\x02 `gt_now` specifies that this field, of the `google.protobuf.Timestamp` type, must be greater than the current time. `gt_now` can only be used with the `within` rule.\n\n ```proto\n message MyTimestamp {\n // must be greater than now\n google.protobuf.Timestamp created_at = 1 [(buf.validate.field).timestamp.gt_now = true];\n }\n ```\n\n\r\n\x05\x04\x1b\x02\x06\x05\x12\x04\xb3&\x04\x08\n\r\n\x05\x04\x1b\x02\x06\x01\x12\x04\xb3&\t\x0f\n\r\n\x05\x04\x1b\x02\x06\x03\x12\x04\xb3&\x12\x13\n\x0f\n\x05\x04\x1b\x02\x06\x08\x12\x06\xb3&\x14\xb6&\x06\n\x13\n\t\x04\x1b\x02\x06\x08\x88\t\x01\x00\x12\x06\xb3&\x15\xb6&\x05\n\x9b\x03\n\x04\x04\x1b\x02\x07\x12\x06\xc1&\x02\xc4&\x05\x1a\x8a\x03 `within` specifies that this field, of the `google.protobuf.Timestamp` type, must be within the specified duration of the current time. If the field value isn\'t within the duration, an error message is generated.\n\n ```proto\n message MyTimestamp {\n // must be within 1 hour of now\n google.protobuf.Timestamp created_at = 1 [(buf.validate.field).timestamp.within = {seconds: 3600}];\n }\n ```\n\n\r\n\x05\x04\x1b\x02\x07\x04\x12\x04\xc1&\x02\n\n\r\n\x05\x04\x1b\x02\x07\x06\x12\x04\xc1&\x0b#\n\r\n\x05\x04\x1b\x02\x07\x01\x12\x04\xc1&$*\n\r\n\x05\x04\x1b\x02\x07\x03\x12\x04\xc1&-.\n\x0f\n\x05\x04\x1b\x02\x07\x08\x12\x06\xc1&/\xc4&\x04\n\x13\n\t\x04\x1b\x02\x07\x08\x88\t\x01\x00\x12\x06\xc1&0\xc4&\x03\n\xce\x03\n\x04\x04\x1b\x02\x08\x12\x06\xd2&\x02\xd5&\x05\x1a\xbd\x03 `example` specifies values that the field may have. These values SHOULD\n conform to other rules. `example` values will not impact validation\n but may be used as helpful guidance on how to populate the given field.\n\n ```proto\n message MyTimestamp {\n google.protobuf.Timestamp value = 1 [\n (buf.validate.field).timestamp.example = { seconds: 1672444800 },\n (buf.validate.field).timestamp.example = { seconds: 1672531200 }\n ];\n }\n ```\n\n\r\n\x05\x04\x1b\x02\x08\x04\x12\x04\xd2&\x02\n\n\r\n\x05\x04\x1b\x02\x08\x06\x12\x04\xd2&\x0b$\n\r\n\x05\x04\x1b\x02\x08\x01\x12\x04\xd2&%,\n\r\n\x05\x04\x1b\x02\x08\x03\x12\x04\xd2&/1\n\x0f\n\x05\x04\x1b\x02\x08\x08\x12\x06\xd2&2\xd5&\x04\n\x13\n\t\x04\x1b\x02\x08\x08\x88\t\x01\x00\x12\x06\xd2&3\xd5&\x03\n\xb8\x01\n\x03\x04\x1b\x05\x12\x04\xda&\x02\x19\x1a\xaa\x01 Extension fields that have the (buf.validate.predefined) option set\n will be treated as predefined field rules.\n See https://protovalidate.com/schemas/predefined-rules/\n\n\x0c\n\x04\x04\x1b\x05\x00\x12\x04\xda&\r\x18\n\r\n\x05\x04\x1b\x05\x00\x01\x12\x04\xda&\r\x11\n\r\n\x05\x04\x1b\x05\x00\x02\x12\x04\xda&\x15\x18\n\x92\x02\n\x02\x04\x1c\x12\x06\xe0&\x00\xe3&\x01\x1a\x83\x02 `Violations` is a collection of `Violation` messages. This message type is returned by\n Protovalidate when a proto message fails to meet the requirements set by the `Rule` validation rules.\n Each individual violation is represented by a `Violation` message.\n\n\x0b\n\x03\x04\x1c\x01\x12\x04\xe0&\x08\x12\n\x85\x01\n\x04\x04\x1c\x02\x00\x12\x04\xe2&\x02$\x1aw `violations` is a repeated field that contains all the `Violation` messages corresponding to the violations detected.\n\n\r\n\x05\x04\x1c\x02\x00\x04\x12\x04\xe2&\x02\n\n\r\n\x05\x04\x1c\x02\x00\x06\x12\x04\xe2&\x0b\x14\n\r\n\x05\x04\x1c\x02\x00\x01\x12\x04\xe2&\x15\x1f\n\r\n\x05\x04\x1c\x02\x00\x03\x12\x04\xe2&\"#\n\xd8\x07\n\x02\x04\x1d\x12\x06\x90\'\x00\xd1\'\x01\x1a\xc9\x07 `Violation` represents a single instance where a validation rule, expressed\n as a `Rule`, was not met. It provides information about the field that\n caused the violation, the specific rule that wasn\'t fulfilled, and a\n human-readable error message.\n\n For example, consider the following message:\n\n ```proto\n message User {\n int32 age = 1 [(buf.validate.field).cel = {\n id: \"user.age\",\n expression: \"this < 18 ? \'User must be at least 18 years old\' : \'\'\",\n }];\n }\n ```\n\n It could produce the following violation:\n\n ```json\n {\n \"ruleId\": \"user.age\",\n \"message\": \"User must be at least 18 years old\",\n \"field\": {\n \"elements\": [\n {\n \"fieldNumber\": 1,\n \"fieldName\": \"age\",\n \"fieldType\": \"TYPE_INT32\"\n }\n ]\n },\n \"rule\": {\n \"elements\": [\n {\n \"fieldNumber\": 23,\n \"fieldName\": \"cel\",\n \"fieldType\": \"TYPE_MESSAGE\",\n \"index\": \"0\"\n }\n ]\n }\n }\n ```\n\n\x0b\n\x03\x04\x1d\x01\x12\x04\x90\'\x08\x11\n\x93\x04\n\x04\x04\x1d\x02\x00\x12\x04\xa4\'\x02\x1f\x1a\x84\x04 `field` is a machine-readable path to the field that failed validation.\n This could be a nested field, in which case the path will include all the parent fields leading to the actual field that caused the violation.\n\n For example, consider the following message:\n\n ```proto\n message Message {\n bool a = 1 [(buf.validate.field).required = true];\n }\n ```\n\n It could produce the following violation:\n\n ```textproto\n violation {\n field { element { field_number: 1, field_name: \"a\", field_type: 8 } }\n ...\n }\n ```\n\n\r\n\x05\x04\x1d\x02\x00\x04\x12\x04\xa4\'\x02\n\n\r\n\x05\x04\x1d\x02\x00\x06\x12\x04\xa4\'\x0b\x14\n\r\n\x05\x04\x1d\x02\x00\x01\x12\x04\xa4\'\x15\x1a\n\r\n\x05\x04\x1d\x02\x00\x03\x12\x04\xa4\'\x1d\x1e\n\xaf\x06\n\x04\x04\x1d\x02\x01\x12\x04\xc2\'\x02\x1e\x1a\xa0\x06 `rule` is a machine-readable path that points to the specific rule that failed validation.\n This will be a nested field starting from the FieldRules of the field that failed validation.\n For custom rules, this will provide the path of the rule, e.g. `cel[0]`.\n\n For example, consider the following message:\n\n ```proto\n message Message {\n bool a = 1 [(buf.validate.field).required = true];\n bool b = 2 [(buf.validate.field).cel = {\n id: \"custom_rule\",\n expression: \"!this ? \'b must be true\': \'\'\"\n }];\n }\n ```\n\n It could produce the following violations:\n\n ```textproto\n violation {\n rule { element { field_number: 25, field_name: \"required\", field_type: 8 } }\n ...\n }\n violation {\n rule { element { field_number: 23, field_name: \"cel\", field_type: 11, index: 0 } }\n ...\n }\n ```\n\n\r\n\x05\x04\x1d\x02\x01\x04\x12\x04\xc2\'\x02\n\n\r\n\x05\x04\x1d\x02\x01\x06\x12\x04\xc2\'\x0b\x14\n\r\n\x05\x04\x1d\x02\x01\x01\x12\x04\xc2\'\x15\x19\n\r\n\x05\x04\x1d\x02\x01\x03\x12\x04\xc2\'\x1c\x1d\n\xcc\x01\n\x04\x04\x1d\x02\x02\x12\x04\xc6\'\x02\x1e\x1a\xbd\x01 `rule_id` is the unique identifier of the `Rule` that was not fulfilled.\n This is the same `id` that was specified in the `Rule` message, allowing easy tracing of which rule was violated.\n\n\r\n\x05\x04\x1d\x02\x02\x04\x12\x04\xc6\'\x02\n\n\r\n\x05\x04\x1d\x02\x02\x05\x12\x04\xc6\'\x0b\x11\n\r\n\x05\x04\x1d\x02\x02\x01\x12\x04\xc6\'\x12\x19\n\r\n\x05\x04\x1d\x02\x02\x03\x12\x04\xc6\'\x1c\x1d\n\xf4\x01\n\x04\x04\x1d\x02\x03\x12\x04\xca\'\x02\x1e\x1a\xe5\x01 `message` is a human-readable error message that describes the nature of the violation.\n This can be the default error message from the violated `Rule`, or it can be a custom message that gives more context about the violation.\n\n\r\n\x05\x04\x1d\x02\x03\x04\x12\x04\xca\'\x02\n\n\r\n\x05\x04\x1d\x02\x03\x05\x12\x04\xca\'\x0b\x11\n\r\n\x05\x04\x1d\x02\x03\x01\x12\x04\xca\'\x12\x19\n\r\n\x05\x04\x1d\x02\x03\x03\x12\x04\xca\'\x1c\x1d\ng\n\x04\x04\x1d\x02\x04\x12\x04\xcd\'\x02\x1c\x1aY `for_key` indicates whether the violation was caused by a map key, rather than a value.\n\n\r\n\x05\x04\x1d\x02\x04\x04\x12\x04\xcd\'\x02\n\n\r\n\x05\x04\x1d\x02\x04\x05\x12\x04\xcd\'\x0b\x0f\n\r\n\x05\x04\x1d\x02\x04\x01\x12\x04\xcd\'\x10\x17\n\r\n\x05\x04\x1d\x02\x04\x03\x12\x04\xcd\'\x1a\x1b\n\x0b\n\x03\x04\x1d\t\x12\x04\xcf\'\x02\r\n\x0c\n\x04\x04\x1d\t\x00\x12\x04\xcf\'\x0b\x0c\n\r\n\x05\x04\x1d\t\x00\x01\x12\x04\xcf\'\x0b\x0c\n\r\n\x05\x04\x1d\t\x00\x02\x12\x04\xcf\'\x0b\x0c\n\x0b\n\x03\x04\x1d\n\x12\x04\xd0\'\x02\x18\n\x0c\n\x04\x04\x1d\n\x00\x12\x04\xd0\'\x0b\x17\n\x8e\x02\n\x02\x04\x1e\x12\x06\xd7\'\x00\xda\'\x01\x1a\xff\x01 `FieldPath` provides a path to a nested protobuf field.\n\n This message provides enough information to render a dotted field path even without protobuf descriptors.\n It also provides enough information to resolve a nested field through unknown wire data.\n\n\x0b\n\x03\x04\x1e\x01\x12\x04\xd7\'\x08\x11\nl\n\x04\x04\x1e\x02\x00\x12\x04\xd9\'\x02)\x1a^ `elements` contains each element of the path, starting from the root and recursing downward.\n\n\r\n\x05\x04\x1e\x02\x00\x04\x12\x04\xd9\'\x02\n\n\r\n\x05\x04\x1e\x02\x00\x06\x12\x04\xd9\'\x0b\x1b\n\r\n\x05\x04\x1e\x02\x00\x01\x12\x04\xd9\'\x1c$\n\r\n\x05\x04\x1e\x02\x00\x03\x12\x04\xd9\'\'(\n\xab\x03\n\x02\x04\x1f\x12\x06\xe1\'\x00\x8f(\x01\x1a\x9c\x03 `FieldPathElement` provides enough information to nest through a single protobuf field.\n\n If the selected field is a map or repeated field, the `subscript` value selects a specific element from it.\n A path that refers to a value nested under a map key or repeated field index will have a `subscript` value.\n The `field_type` field allows unambiguous resolution of a field even if descriptors are not available.\n\n\x0b\n\x03\x04\x1f\x01\x12\x04\xe1\'\x08\x18\nO\n\x04\x04\x1f\x02\x00\x12\x04\xe3\'\x02\"\x1aA `field_number` is the field number this path element refers to.\n\n\r\n\x05\x04\x1f\x02\x00\x04\x12\x04\xe3\'\x02\n\n\r\n\x05\x04\x1f\x02\x00\x05\x12\x04\xe3\'\x0b\x10\n\r\n\x05\x04\x1f\x02\x00\x01\x12\x04\xe3\'\x11\x1d\n\r\n\x05\x04\x1f\x02\x00\x03\x12\x04\xe3\' !\n\xaa\x01\n\x04\x04\x1f\x02\x01\x12\x04\xe7\'\x02!\x1a\x9b\x01 `field_name` contains the field name this path element refers to.\n This can be used to display a human-readable path even if the field number is unknown.\n\n\r\n\x05\x04\x1f\x02\x01\x04\x12\x04\xe7\'\x02\n\n\r\n\x05\x04\x1f\x02\x01\x05\x12\x04\xe7\'\x0b\x11\n\r\n\x05\x04\x1f\x02\x01\x01\x12\x04\xe7\'\x12\x1c\n\r\n\x05\x04\x1f\x02\x01\x03\x12\x04\xe7\'\x1f \n\xc0\x04\n\x04\x04\x1f\x02\x02\x12\x04\xf3\'\x02D\x1a\xb1\x04 `field_type` specifies the type of this field. When using reflection, this value is not needed.\n\n This value is provided to make it possible to traverse unknown fields through wire data.\n When traversing wire data, be mindful of both packed[1] and delimited[2] encoding schemes.\n\n [1]: https://protobuf.dev/programming-guides/encoding/#packed\n [2]: https://protobuf.dev/programming-guides/encoding/#groups\n\n N.B.: Although groups are deprecated, the corresponding delimited encoding scheme is not, and\n can be explicitly used in Protocol Buffers 2023 Edition.\n\n\r\n\x05\x04\x1f\x02\x02\x04\x12\x04\xf3\'\x02\n\n\r\n\x05\x04\x1f\x02\x02\x06\x12\x04\xf3\'\x0b4\n\r\n\x05\x04\x1f\x02\x02\x01\x12\x04\xf3\'5?\n\r\n\x05\x04\x1f\x02\x02\x03\x12\x04\xf3\'BC\n\xe4\x01\n\x04\x04\x1f\x02\x03\x12\x04\xf8\'\x02B\x1a\xd5\x01 `key_type` specifies the map key type of this field. This value is useful when traversing\n unknown fields through wire data: specifically, it allows handling the differences between\n different integer encodings.\n\n\r\n\x05\x04\x1f\x02\x03\x04\x12\x04\xf8\'\x02\n\n\r\n\x05\x04\x1f\x02\x03\x06\x12\x04\xf8\'\x0b4\n\r\n\x05\x04\x1f\x02\x03\x01\x12\x04\xf8\'5=\n\r\n\x05\x04\x1f\x02\x03\x03\x12\x04\xf8\'@A\n\x9d\x01\n\x04\x04\x1f\x02\x04\x12\x04\xfc\'\x02D\x1a\x8e\x01 `value_type` specifies map value type of this field. This is useful if you want to display a\n value inside unknown fields through wire data.\n\n\r\n\x05\x04\x1f\x02\x04\x04\x12\x04\xfc\'\x02\n\n\r\n\x05\x04\x1f\x02\x04\x06\x12\x04\xfc\'\x0b4\n\r\n\x05\x04\x1f\x02\x04\x01\x12\x04\xfc\'5?\n\r\n\x05\x04\x1f\x02\x04\x03\x12\x04\xfc\'BC\n|\n\x04\x04\x1f\x08\x00\x12\x06\xff\'\x02\x8e(\x03\x1al `subscript` contains a repeated index or map key, if this path element nests into a repeated or map field.\n\n\r\n\x05\x04\x1f\x08\x00\x01\x12\x04\xff\'\x08\x11\nH\n\x04\x04\x1f\x02\x05\x12\x04\x81(\x04\x15\x1a: `index` specifies a 0-based index into a repeated field.\n\n\r\n\x05\x04\x1f\x02\x05\x05\x12\x04\x81(\x04\n\n\r\n\x05\x04\x1f\x02\x05\x01\x12\x04\x81(\x0b\x10\n\r\n\x05\x04\x1f\x02\x05\x03\x12\x04\x81(\x13\x14\n<\n\x04\x04\x1f\x02\x06\x12\x04\x84(\x04\x16\x1a. `bool_key` specifies a map key of type bool.\n\n\r\n\x05\x04\x1f\x02\x06\x05\x12\x04\x84(\x04\x08\n\r\n\x05\x04\x1f\x02\x06\x01\x12\x04\x84(\t\x11\n\r\n\x05\x04\x1f\x02\x06\x03\x12\x04\x84(\x14\x15\ni\n\x04\x04\x1f\x02\x07\x12\x04\x87(\x04\x16\x1a[ `int_key` specifies a map key of type int32, int64, sint32, sint64, sfixed32 or sfixed64.\n\n\r\n\x05\x04\x1f\x02\x07\x05\x12\x04\x87(\x04\t\n\r\n\x05\x04\x1f\x02\x07\x01\x12\x04\x87(\n\x11\n\r\n\x05\x04\x1f\x02\x07\x03\x12\x04\x87(\x14\x15\nZ\n\x04\x04\x1f\x02\x08\x12\x04\x8a(\x04\x18\x1aL `uint_key` specifies a map key of type uint32, uint64, fixed32 or fixed64.\n\n\r\n\x05\x04\x1f\x02\x08\x05\x12\x04\x8a(\x04\n\n\r\n\x05\x04\x1f\x02\x08\x01\x12\x04\x8a(\x0b\x13\n\r\n\x05\x04\x1f\x02\x08\x03\x12\x04\x8a(\x16\x17\n@\n\x04\x04\x1f\x02\t\x12\x04\x8d(\x04\x1b\x1a2 `string_key` specifies a map key of type string.\n\n\r\n\x05\x04\x1f\x02\t\x05\x12\x04\x8d(\x04\n\n\r\n\x05\x04\x1f\x02\t\x01\x12\x04\x8d(\x0b\x15\n\r\n\x05\x04\x1f\x02\t\x03\x12\x04\x8d(\x18\x1a\n\xff\x11\n\x1bgoogle/protobuf/empty.proto\x12\x0fgoogle.protobuf\"\x07\n\x05EmptyB}\n\x13com.google.protobufB\nEmptyProtoP\x01Z.google.golang.org/protobuf/types/known/emptypb\xf8\x01\x01\xa2\x02\x03GPB\xaa\x02\x1eGoogle.Protobuf.WellKnownTypesJ\xbe\x10\n\x06\x12\x04\x1e\x002\x10\n\xcc\x0c\n\x01\x0c\x12\x03\x1e\x00\x122\xc1\x0c Protocol Buffers - Google\'s data interchange format\n Copyright 2008 Google Inc. All rights reserved.\n https://developers.google.com/protocol-buffers/\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are\n met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above\n copyright notice, this list of conditions and the following disclaimer\n in the documentation and/or other materials provided with the\n distribution.\n * Neither the name of Google Inc. nor the names of its\n contributors may be used to endorse or promote products derived from\n this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n\x08\n\x01\x02\x12\x03 \x00\x18\n\x08\n\x01\x08\x12\x03\"\x00E\n\t\n\x02\x08\x0b\x12\x03\"\x00E\n\x08\n\x01\x08\x12\x03#\x00,\n\t\n\x02\x08\x01\x12\x03#\x00,\n\x08\n\x01\x08\x12\x03$\x00+\n\t\n\x02\x08\x08\x12\x03$\x00+\n\x08\n\x01\x08\x12\x03%\x00\"\n\t\n\x02\x08\n\x12\x03%\x00\"\n\x08\n\x01\x08\x12\x03&\x00!\n\t\n\x02\x08$\x12\x03&\x00!\n\x08\n\x01\x08\x12\x03\'\x00;\n\t\n\x02\x08%\x12\x03\'\x00;\n\x08\n\x01\x08\x12\x03(\x00\x1f\n\t\n\x02\x08\x1f\x12\x03(\x00\x1f\n\xbb\x02\n\x02\x04\x00\x12\x032\x00\x10\x1a\xaf\x02 A generic empty message that you can re-use to avoid defining duplicated\n empty messages in your APIs. A typical example is to use it as the request\n or the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\n\n\n\n\x03\x04\x00\x01\x12\x032\x08\rb\x06proto3\n\xa4N\n(nvidia/nemo/relay/worker/v1/common.proto\x12\x1bnvidia.nemo.relay.worker.v1\x1a\x1bbuf/validate/validate.proto\"r\n\x10ProtocolIdentity\x126\n\x04name\x18\x01 \x01(\tB\"\xbaH\x1fr\x1d\n\x1bnvidia.nemo.relay.worker.v1R\x04name\x12&\n\x07version\x18\x02 \x01(\tB\x0c\xbaH\tr\x07\n\x051.0.0R\x07version\"c\n\x0bCredentials\x12,\n\ractivation_id\x18\x01 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0cactivationId\x12&\n\nauth_token\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\tauthToken\".\n\tJsonValue\x12!\n\x04json\x18\x01 \x01(\x0cB\r\xbaH\nz\x08\x10\x01\x18\xff\xff\xff\xff\x07R\x04json\"\xbc\x01\n\nJsonObject\x12K\n\x06fields\x18\x01 \x03(\x0b23.nvidia.nemo.relay.worker.v1.JsonObject.FieldsEntryR\x06fields\x1aa\n\x0bFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12<\n\x05value\x18\x02 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueR\x05value:\x028\x01\"K\n\tJsonArray\x12>\n\x06values\x18\x01 \x03(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueR\x06values\"$\n\nStringList\x12\x16\n\x06values\x18\x01 \x03(\tR\x06values\"L\n\nDataSchema\x12\x1b\n\x04name\x18\x01 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x04name\x12!\n\x07version\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x07version\"\x90\x02\n\x0bWorkerError\x12\x1b\n\x04code\x18\x01 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x04code\x12\x18\n\x07message\x18\x02 \x01(\tR\x07message\x12\x1c\n\tretryable\x18\x03 \x01(\x08R\tretryable\x12J\n\x1adownstream_continuation_id\x18\x04 \x01(\tB\x07\xbaH\x04r\x02\x10\x01H\x00R\x18downstreamContinuationId\x88\x01\x01\x121\n\x0bhttp_status\x18\x05 \x01(\rB\x0b\xbaH\x08*\x06\x18\xd7\x04(\x90\x03H\x01R\nhttpStatus\x88\x01\x01B\x1d\n\x1b_downstream_continuation_idB\x0e\n\x0c_http_status*\xd3\x07\n\x13RegistrationSurface\x12$\n REGISTRATION_SURFACE_UNSPECIFIED\x10\x00\x12#\n\x1fREGISTRATION_SURFACE_SUBSCRIBER\x10\x01\x120\n,REGISTRATION_SURFACE_EVENT_METADATA_INJECTOR\x10\x02\x128\n4REGISTRATION_SURFACE_TOOL_SANITIZE_REQUEST_GUARDRAIL\x10\n\x129\n5REGISTRATION_SURFACE_TOOL_SANITIZE_RESPONSE_GUARDRAIL\x10\x0b\x12=\n9REGISTRATION_SURFACE_TOOL_CONDITIONAL_EXECUTION_GUARDRAIL\x10\x0c\x12/\n+REGISTRATION_SURFACE_TOOL_REQUEST_INTERCEPT\x10\r\x121\n-REGISTRATION_SURFACE_TOOL_EXECUTION_INTERCEPT\x10\x0e\x127\n3REGISTRATION_SURFACE_LLM_SANITIZE_REQUEST_GUARDRAIL\x10\x14\x128\n4REGISTRATION_SURFACE_LLM_SANITIZE_RESPONSE_GUARDRAIL\x10\x15\x12<\n8REGISTRATION_SURFACE_LLM_CONDITIONAL_EXECUTION_GUARDRAIL\x10\x16\x12.\n*REGISTRATION_SURFACE_LLM_REQUEST_INTERCEPT\x10\x17\x120\n,REGISTRATION_SURFACE_LLM_EXECUTION_INTERCEPT\x10\x18\x127\n3REGISTRATION_SURFACE_LLM_STREAM_EXECUTION_INTERCEPT\x10\x19\x120\n,REGISTRATION_SURFACE_MARK_SANITIZE_GUARDRAIL\x10\x1e\x127\n3REGISTRATION_SURFACE_SCOPE_SANITIZE_START_GUARDRAIL\x10\x1f\x125\n1REGISTRATION_SURFACE_SCOPE_SANITIZE_END_GUARDRAIL\x10 \x129\n5REGISTRATION_SURFACE_CONDITIONAL_MIDDLEWARE_GUARDRAIL\x10(*\xae\x02\n\tScopeType\x12\x1a\n\x16SCOPE_TYPE_UNSPECIFIED\x10\x00\x12\x14\n\x10SCOPE_TYPE_AGENT\x10\x01\x12\x17\n\x13SCOPE_TYPE_FUNCTION\x10\x02\x12\x13\n\x0fSCOPE_TYPE_TOOL\x10\x03\x12\x12\n\x0eSCOPE_TYPE_LLM\x10\x04\x12\x18\n\x14SCOPE_TYPE_RETRIEVER\x10\x05\x12\x17\n\x13SCOPE_TYPE_EMBEDDER\x10\x06\x12\x17\n\x13SCOPE_TYPE_RERANKER\x10\x07\x12\x18\n\x14SCOPE_TYPE_GUARDRAIL\x10\x08\x12\x18\n\x14SCOPE_TYPE_EVALUATOR\x10\t\x12\x15\n\x11SCOPE_TYPE_CUSTOM\x10\n\x12\x16\n\x12SCOPE_TYPE_UNKNOWN\x10\x0b*\xa1\x01\n\x0bLogSeverity\x12\x1c\n\x18LOG_SEVERITY_UNSPECIFIED\x10\x00\x12\x16\n\x12LOG_SEVERITY_TRACE\x10\x01\x12\x16\n\x12LOG_SEVERITY_DEBUG\x10\x02\x12\x15\n\x11LOG_SEVERITY_INFO\x10\x03\x12\x15\n\x11LOG_SEVERITY_WARN\x10\x04\x12\x16\n\x12LOG_SEVERITY_ERROR\x10\x05J\xee:\n\x07\x12\x05\x05\x00\xa5\x01\x01\n\xeb\x01\n\x01\x0c\x12\x03\x05\x00\x122\x88\x01 SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n SPDX-License-Identifier: Apache-2.0\n2V Defines shared identities, credentials, lossless application JSON, and worker enums.\n\n\x08\n\x01\x02\x12\x03\x07\x00$\n\t\n\x02\x03\x00\x12\x03\t\x00%\nv\n\x02\x04\x00\x12\x04\x0c\x00\x11\x01\x1aj Protocol name nvidia.nemo.relay.worker.v1, contract version 1.0.0. Package/SDK releases are independent.\n\n\n\n\x03\x04\x00\x01\x12\x03\x0c\x08\x18\nM\n\x04\x04\x00\x02\x00\x12\x03\x0e\x02Y\x1a@ Exact worker protocol identifier: nvidia.nemo.relay.worker.v1.\n\n\x0c\n\x05\x04\x00\x02\x00\x05\x12\x03\x0e\x02\x08\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03\x0e\t\r\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03\x0e\x10\x11\n\x0c\n\x05\x04\x00\x02\x00\x08\x12\x03\x0e\x12X\n\x0f\n\x08\x04\x00\x02\x00\x08\x87\t\x0e\x12\x03\x0e\x13W\n@\n\x04\x04\x00\x02\x01\x12\x03\x10\x02F\x1a3 Exact semantic contract version, initially 1.0.0.\n\n\x0c\n\x05\x04\x00\x02\x01\x05\x12\x03\x10\x02\x08\n\x0c\n\x05\x04\x00\x02\x01\x01\x12\x03\x10\t\x10\n\x0c\n\x05\x04\x00\x02\x01\x03\x12\x03\x10\x13\x14\n\x0c\n\x05\x04\x00\x02\x01\x08\x12\x03\x10\x15E\n\x0f\n\x08\x04\x00\x02\x01\x08\x87\t\x0e\x12\x03\x10\x16D\nY\n\x02\x04\x01\x12\x04\x14\x00\x19\x01\x1aM Required on authenticated requests. Both strings must match the activation.\n\n\n\n\x03\x04\x01\x01\x12\x03\x14\x08\x13\n\\\n\x04\x04\x01\x02\x00\x12\x03\x16\x02H\x1aO Host-issued activation identity; the token is valid only for this activation.\n\n\x0c\n\x05\x04\x01\x02\x00\x05\x12\x03\x16\x02\x08\n\x0c\n\x05\x04\x01\x02\x00\x01\x12\x03\x16\t\x16\n\x0c\n\x05\x04\x01\x02\x00\x03\x12\x03\x16\x19\x1a\n\x0c\n\x05\x04\x01\x02\x00\x08\x12\x03\x16\x1bG\n\x0f\n\x08\x04\x01\x02\x00\x08\x87\t\x0e\x12\x03\x16\x1cF\nW\n\x04\x04\x01\x02\x01\x12\x03\x18\x02E\x1aJ Host-issued secret token; never expose it in logs or callback arguments.\n\n\x0c\n\x05\x04\x01\x02\x01\x05\x12\x03\x18\x02\x08\n\x0c\n\x05\x04\x01\x02\x01\x01\x12\x03\x18\t\x13\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x03\x18\x16\x17\n\x0c\n\x05\x04\x01\x02\x01\x08\x12\x03\x18\x18D\n\x0f\n\x08\x04\x01\x02\x01\x08\x87\t\x0e\x12\x03\x18\x19C\n\xee\x01\n\x02\x04\x02\x12\x04\x1e\x00%\x01\x1a\xe1\x01 Exactly one UTF-8 RFC 8259 value, without NaN/Infinity or trailing content.\n Required payloads must contain bytes, including the bytes \"null\" for JSON null.\n Numbers are never converted through google.protobuf.Value/double.\n\n\n\n\x03\x04\x02\x01\x12\x03\x1e\x08\x11\n\x7f\n\x04\x04\x02\x02\x00\x12\x04!\x02$\x05\x1aq UTF-8 bytes containing exactly one RFC 8259 value; preserve integer precision and reject\n non-finite constants.\n\n\x0c\n\x05\x04\x02\x02\x00\x05\x12\x03!\x02\x07\n\x0c\n\x05\x04\x02\x02\x00\x01\x12\x03!\x08\x0c\n\x0c\n\x05\x04\x02\x02\x00\x03\x12\x03!\x0f\x10\n\r\n\x05\x04\x02\x02\x00\x08\x12\x04!\x11$\x04\n\x10\n\x08\x04\x02\x02\x00\x08\x87\t\x0f\x12\x04!\x12$\x03\nY\n\x02\x04\x03\x12\x04(\x00+\x01\x1aM Open object with structurally enforced string keys; each value is required.\n\n\n\n\x03\x04\x03\x01\x12\x03(\x08\x12\nQ\n\x04\x04\x03\x02\x00\x12\x03*\x02$\x1aD Object entries with string keys and required lossless JSON values.\n\n\x0c\n\x05\x04\x03\x02\x00\x06\x12\x03*\x02\x18\n\x0c\n\x05\x04\x03\x02\x00\x01\x12\x03*\x19\x1f\n\x0c\n\x05\x04\x03\x02\x00\x03\x12\x03*\"#\nS\n\x02\x04\x04\x12\x04.\x001\x01\x1aG Presence-bearing lists preserve None versus Some([]) in runtime DTOs.\n\n\n\n\x03\x04\x04\x01\x12\x03.\x08\x11\nb\n\x04\x04\x04\x02\x00\x12\x030\x02 \x1aU Ordered elements; a present empty wrapper preserves an explicitly empty collection.\n\n\x0c\n\x05\x04\x04\x02\x00\x04\x12\x030\x02\n\n\x0c\n\x05\x04\x04\x02\x00\x06\x12\x030\x0b\x14\n\x0c\n\x05\x04\x04\x02\x00\x01\x12\x030\x15\x1b\n\x0c\n\x05\x04\x04\x02\x00\x03\x12\x030\x1e\x1f\nV\n\x02\x04\x05\x12\x044\x007\x01\x1aJ Presence-bearing string list; a present empty list differs from absence.\n\n\n\n\x03\x04\x05\x01\x12\x034\x08\x12\nb\n\x04\x04\x05\x02\x00\x12\x036\x02\x1d\x1aU Ordered elements; a present empty wrapper preserves an explicitly empty collection.\n\n\x0c\n\x05\x04\x05\x02\x00\x04\x12\x036\x02\n\n\x0c\n\x05\x04\x05\x02\x00\x05\x12\x036\x0b\x11\n\x0c\n\x05\x04\x05\x02\x00\x01\x12\x036\x12\x18\n\x0c\n\x05\x04\x05\x02\x00\x03\x12\x036\x1b\x1c\nW\n\x02\x04\x06\x12\x04:\x00?\x01\x1aK Application-owned schema identity; its version is not the worker version.\n\n\n\n\x03\x04\x06\x01\x12\x03:\x08\x12\n]\n\x04\x04\x06\x02\x00\x12\x03<\x02?\x1aP Nonempty application data-schema identity, independent of the worker contract.\n\n\x0c\n\x05\x04\x06\x02\x00\x05\x12\x03<\x02\x08\n\x0c\n\x05\x04\x06\x02\x00\x01\x12\x03<\t\r\n\x0c\n\x05\x04\x06\x02\x00\x03\x12\x03<\x10\x11\n\x0c\n\x05\x04\x06\x02\x00\x08\x12\x03<\x12>\n\x0f\n\x08\x04\x06\x02\x00\x08\x87\t\x0e\x12\x03<\x13=\ng\n\x04\x04\x06\x02\x01\x12\x03>\x02B\x1aZ Nonempty application schema version; it is not rewritten to the worker contract version.\n\n\x0c\n\x05\x04\x06\x02\x01\x05\x12\x03>\x02\x08\n\x0c\n\x05\x04\x06\x02\x01\x01\x12\x03>\t\x10\n\x0c\n\x05\x04\x06\x02\x01\x03\x12\x03>\x13\x14\n\x0c\n\x05\x04\x06\x02\x01\x08\x12\x03>\x15A\n\x0f\n\x08\x04\x06\x02\x01\x08\x87\t\x0e\x12\x03>\x16@\n\xa7\x01\n\x02\x04\x07\x12\x04C\x00Q\x01\x1a\x9a\x01 Domain failure, never combined with a success value. RPC admission/auth/shape\n failures use gRPC status. Retryable never authorizes replay of execution.\n\n\n\n\x03\x04\x07\x01\x12\x03C\x08\x13\n_\n\x04\x04\x07\x02\x00\x12\x03E\x02?\x1aR Stable machine-readable classification; text messages must not be used as codes.\n\n\x0c\n\x05\x04\x07\x02\x00\x05\x12\x03E\x02\x08\n\x0c\n\x05\x04\x07\x02\x00\x01\x12\x03E\t\r\n\x0c\n\x05\x04\x07\x02\x00\x03\x12\x03E\x10\x11\n\x0c\n\x05\x04\x07\x02\x00\x08\x12\x03E\x12>\n\x0f\n\x08\x04\x07\x02\x00\x08\x87\t\x0e\x12\x03E\x13=\n`\n\x04\x04\x07\x02\x01\x12\x03G\x02\x15\x1aS Human-readable description; consumers must not infer control flow from this text.\n\n\x0c\n\x05\x04\x07\x02\x01\x05\x12\x03G\x02\x08\n\x0c\n\x05\x04\x07\x02\x01\x01\x12\x03G\t\x10\n\x0c\n\x05\x04\x07\x02\x01\x03\x12\x03G\x13\x14\nk\n\x04\x04\x07\x02\x02\x12\x03I\x02\x15\x1a^ Advisory error property; it never authorizes replaying execution callbacks or continuations.\n\n\x0c\n\x05\x04\x07\x02\x02\x05\x12\x03I\x02\x06\n\x0c\n\x05\x04\x07\x02\x02\x01\x12\x03I\x07\x10\n\x0c\n\x05\x04\x07\x02\x02\x03\x12\x03I\x13\x14\nZ\n\x04\x04\x07\x02\x03\x12\x03K\x02^\x1aM Preserve only when propagating this invocation\'s original downstream error.\n\n\x0c\n\x05\x04\x07\x02\x03\x04\x12\x03K\x02\n\n\x0c\n\x05\x04\x07\x02\x03\x05\x12\x03K\x0b\x11\n\x0c\n\x05\x04\x07\x02\x03\x01\x12\x03K\x12,\n\x0c\n\x05\x04\x07\x02\x03\x03\x12\x03K/0\n\x0c\n\x05\x04\x07\x02\x03\x08\x12\x03K1]\n\x0f\n\x08\x04\x07\x02\x03\x08\x87\t\x0e\x12\x03K2\\\n]\n\x04\x04\x07\x02\x04\x12\x04M\x02P\x05\x1aO Optional upstream HTTP error status in 400..=599, independent of gRPC status.\n\n\x0c\n\x05\x04\x07\x02\x04\x04\x12\x03M\x02\n\n\x0c\n\x05\x04\x07\x02\x04\x05\x12\x03M\x0b\x11\n\x0c\n\x05\x04\x07\x02\x04\x01\x12\x03M\x12\x1d\n\x0c\n\x05\x04\x07\x02\x04\x03\x12\x03M !\n\r\n\x05\x04\x07\x02\x04\x08\x12\x04M\"P\x04\n\x10\n\x08\x04\x07\x02\x04\x08\x87\t\x05\x12\x04M#P\x03\n]\n\x02\x05\x00\x12\x04T\x00y\x01\x1aQ Closed registration surfaces; unspecified and unknown values cannot be invoked.\n\n\n\n\x03\x05\x00\x01\x12\x03T\x05\x18\n[\n\x04\x05\x00\x02\x00\x12\x03V\x02\'\x1aN No registration surface selected; invalid for registrations and invocations.\n\n\x0c\n\x05\x05\x00\x02\x00\x01\x12\x03V\x02\"\n\x0c\n\x05\x05\x00\x02\x00\x02\x12\x03V%&\nS\n\x04\x05\x00\x02\x01\x12\x03X\x02&\x1aF Observes an event and completes without returning a rewritten value.\n\n\x0c\n\x05\x05\x00\x02\x01\x01\x12\x03X\x02!\n\x0c\n\x05\x05\x00\x02\x01\x02\x12\x03X$%\nF\n\x04\x05\x00\x02\x02\x12\x03Z\x023\x1a9 Produces open metadata additions for an observed event.\n\n\x0c\n\x05\x05\x00\x02\x02\x01\x12\x03Z\x02.\n\x0c\n\x05\x05\x00\x02\x02\x02\x12\x03Z12\n@\n\x04\x05\x00\x02\x03\x12\x03\\\x02<\x1a3 Rewrites tool request arguments before execution.\n\n\x0c\n\x05\x05\x00\x02\x03\x01\x12\x03\\\x026\n\x0c\n\x05\x05\x00\x02\x03\x02\x12\x03\\9;\nD\n\x04\x05\x00\x02\x04\x12\x03^\x02=\x1a7 Rewrites the application tool result after execution.\n\n\x0c\n\x05\x05\x00\x02\x04\x01\x12\x03^\x027\n\x0c\n\x05\x05\x00\x02\x04\x02\x12\x03^:<\n<\n\x04\x05\x00\x02\x05\x12\x03`\x02A\x1a/ Allows or blocks execution of a tool request.\n\n\x0c\n\x05\x05\x00\x02\x05\x01\x12\x03`\x02;\n\x0c\n\x05\x05\x00\x02\x05\x02\x12\x03`>@\nL\n\x04\x05\x00\x02\x06\x12\x03b\x023\x1a? Rewrites a tool request within the ordered interceptor chain.\n\n\x0c\n\x05\x05\x00\x02\x06\x01\x12\x03b\x02-\n\x0c\n\x05\x05\x00\x02\x06\x02\x12\x03b02\nP\n\x04\x05\x00\x02\x07\x12\x03d\x025\x1aC Executes or delegates a managed tool call and may schedule marks.\n\n\x0c\n\x05\x05\x00\x02\x07\x01\x12\x03d\x02/\n\x0c\n\x05\x05\x00\x02\x07\x02\x12\x03d24\nG\n\x04\x05\x00\x02\x08\x12\x03f\x02;\x1a: Rewrites a provider LLM request using its codec context.\n\n\x0c\n\x05\x05\x00\x02\x08\x01\x12\x03f\x025\n\x0c\n\x05\x05\x00\x02\x08\x02\x12\x03f8:\nH\n\x04\x05\x00\x02\t\x12\x03h\x02<\x1a; Rewrites a provider LLM response using its codec context.\n\n\x0c\n\x05\x05\x00\x02\t\x01\x12\x03h\x026\n\x0c\n\x05\x05\x00\x02\t\x02\x12\x03h9;\n<\n\x04\x05\x00\x02\n\x12\x03j\x02@\x1a/ Allows or blocks execution of an LLM request.\n\n\x0c\n\x05\x05\x00\x02\n\x01\x12\x03j\x02:\n\x0c\n\x05\x05\x00\x02\n\x02\x12\x03j=?\n`\n\x04\x05\x00\x02\x0b\x12\x03l\x022\x1aS Rewrites a provider request or normalized annotation and may contribute evidence.\n\n\x0c\n\x05\x05\x00\x02\x0b\x01\x12\x03l\x02,\n\x0c\n\x05\x05\x00\x02\x0b\x02\x12\x03l/1\n]\n\x04\x05\x00\x02\x0c\x12\x03n\x024\x1aP Executes or delegates a unary LLM call with request and response codec access.\n\n\x0c\n\x05\x05\x00\x02\x0c\x01\x12\x03n\x02.\n\x0c\n\x05\x05\x00\x02\x0c\x02\x12\x03n13\nY\n\x04\x05\x00\x02\r\x12\x03p\x02;\x1aL Executes or delegates streaming LLM output with request-only codec access.\n\n\x0c\n\x05\x05\x00\x02\r\x01\x12\x03p\x025\n\x0c\n\x05\x05\x00\x02\r\x02\x12\x03p8:\nH\n\x04\x05\x00\x02\x0e\x12\x03r\x024\x1a; Replaces sanitizable fields of a mark before publication.\n\n\x0c\n\x05\x05\x00\x02\x0e\x01\x12\x03r\x02.\n\x0c\n\x05\x05\x00\x02\x0e\x02\x12\x03r13\nU\n\x04\x05\x00\x02\x0f\x12\x03t\x02;\x1aH Replaces sanitizable fields of a scope-start event before publication.\n\n\x0c\n\x05\x05\x00\x02\x0f\x01\x12\x03t\x025\n\x0c\n\x05\x05\x00\x02\x0f\x02\x12\x03t8:\nS\n\x04\x05\x00\x02\x10\x12\x03v\x029\x1aF Replaces sanitizable fields of a scope-end event before publication.\n\n\x0c\n\x05\x05\x00\x02\x10\x01\x12\x03v\x023\n\x0c\n\x05\x05\x00\x02\x10\x02\x12\x03v68\nV\n\x04\x05\x00\x02\x11\x12\x03x\x02=\x1aI Allows or blocks selected middleware registrations before they execute.\n\n\x0c\n\x05\x05\x00\x02\x11\x01\x12\x03x\x027\n\x0c\n\x05\x05\x00\x02\x11\x02\x12\x03x:<\n`\n\x02\x05\x01\x12\x05|\x00\x95\x01\x01\x1aS Recognized runtime scope types, including the explicit unknown-category fallback.\n\n\n\n\x03\x05\x01\x01\x12\x03|\x05\x0e\nY\n\x04\x05\x01\x02\x00\x12\x03~\x02\x1d\x1aL No value supplied; invalid where this contract requires an explicit value.\n\n\x0c\n\x05\x05\x01\x02\x00\x01\x12\x03~\x02\x18\n\x0c\n\x05\x05\x01\x02\x00\x02\x12\x03~\x1b\x1c\n&\n\x04\x05\x01\x02\x01\x12\x04\x80\x01\x02\x17\x1a\x18 A runtime agent scope.\n\n\r\n\x05\x05\x01\x02\x01\x01\x12\x04\x80\x01\x02\x12\n\r\n\x05\x05\x01\x02\x01\x02\x12\x04\x80\x01\x15\x16\n)\n\x04\x05\x01\x02\x02\x12\x04\x82\x01\x02\x1a\x1a\x1b A runtime function scope.\n\n\r\n\x05\x05\x01\x02\x02\x01\x12\x04\x82\x01\x02\x15\n\r\n\x05\x05\x01\x02\x02\x02\x12\x04\x82\x01\x18\x19\n%\n\x04\x05\x01\x02\x03\x12\x04\x84\x01\x02\x16\x1a\x17 A runtime tool scope.\n\n\r\n\x05\x05\x01\x02\x03\x01\x12\x04\x84\x01\x02\x11\n\r\n\x05\x05\x01\x02\x03\x02\x12\x04\x84\x01\x14\x15\n$\n\x04\x05\x01\x02\x04\x12\x04\x86\x01\x02\x15\x1a\x16 A runtime llm scope.\n\n\r\n\x05\x05\x01\x02\x04\x01\x12\x04\x86\x01\x02\x10\n\r\n\x05\x05\x01\x02\x04\x02\x12\x04\x86\x01\x13\x14\n*\n\x04\x05\x01\x02\x05\x12\x04\x88\x01\x02\x1b\x1a\x1c A runtime retriever scope.\n\n\r\n\x05\x05\x01\x02\x05\x01\x12\x04\x88\x01\x02\x16\n\r\n\x05\x05\x01\x02\x05\x02\x12\x04\x88\x01\x19\x1a\n)\n\x04\x05\x01\x02\x06\x12\x04\x8a\x01\x02\x1a\x1a\x1b A runtime embedder scope.\n\n\r\n\x05\x05\x01\x02\x06\x01\x12\x04\x8a\x01\x02\x15\n\r\n\x05\x05\x01\x02\x06\x02\x12\x04\x8a\x01\x18\x19\n)\n\x04\x05\x01\x02\x07\x12\x04\x8c\x01\x02\x1a\x1a\x1b A runtime reranker scope.\n\n\r\n\x05\x05\x01\x02\x07\x01\x12\x04\x8c\x01\x02\x15\n\r\n\x05\x05\x01\x02\x07\x02\x12\x04\x8c\x01\x18\x19\n*\n\x04\x05\x01\x02\x08\x12\x04\x8e\x01\x02\x1b\x1a\x1c A runtime guardrail scope.\n\n\r\n\x05\x05\x01\x02\x08\x01\x12\x04\x8e\x01\x02\x16\n\r\n\x05\x05\x01\x02\x08\x02\x12\x04\x8e\x01\x19\x1a\n*\n\x04\x05\x01\x02\t\x12\x04\x90\x01\x02\x1b\x1a\x1c A runtime evaluator scope.\n\n\r\n\x05\x05\x01\x02\t\x01\x12\x04\x90\x01\x02\x16\n\r\n\x05\x05\x01\x02\t\x02\x12\x04\x90\x01\x19\x1a\n3\n\x04\x05\x01\x02\n\x12\x04\x92\x01\x02\x19\x1a% Application-defined scope category.\n\n\r\n\x05\x05\x01\x02\n\x01\x12\x04\x92\x01\x02\x13\n\r\n\x05\x05\x01\x02\n\x02\x12\x04\x92\x01\x16\x18\nJ\n\x04\x05\x01\x02\x0b\x12\x04\x94\x01\x02\x1a\x1a< Explicit fallback for an unrecognized open event category.\n\n\r\n\x05\x05\x01\x02\x0b\x01\x12\x04\x94\x01\x02\x14\n\r\n\x05\x05\x01\x02\x0b\x02\x12\x04\x94\x01\x17\x19\nT\n\x02\x05\x02\x12\x06\x98\x01\x00\xa5\x01\x01\x1aF Log evidence severity; an unspecified submitted severity is invalid.\n\n\x0b\n\x03\x05\x02\x01\x12\x04\x98\x01\x05\x10\nZ\n\x04\x05\x02\x02\x00\x12\x04\x9a\x01\x02\x1f\x1aL No value supplied; invalid where this contract requires an explicit value.\n\n\r\n\x05\x05\x02\x02\x00\x01\x12\x04\x9a\x01\x02\x1a\n\r\n\x05\x05\x02\x02\x00\x02\x12\x04\x9a\x01\x1d\x1e\n(\n\x04\x05\x02\x02\x01\x12\x04\x9c\x01\x02\x19\x1a\x1a Detailed trace evidence.\n\n\r\n\x05\x05\x02\x02\x01\x01\x12\x04\x9c\x01\x02\x14\n\r\n\x05\x05\x02\x02\x01\x02\x12\x04\x9c\x01\x17\x18\n2\n\x04\x05\x02\x02\x02\x12\x04\x9e\x01\x02\x19\x1a$ Diagnostic evidence for debugging.\n\n\r\n\x05\x05\x02\x02\x02\x01\x12\x04\x9e\x01\x02\x14\n\r\n\x05\x05\x02\x02\x02\x02\x12\x04\x9e\x01\x17\x18\n\'\n\x04\x05\x02\x02\x03\x12\x04\xa0\x01\x02\x18\x1a\x19 Informational evidence.\n\n\r\n\x05\x05\x02\x02\x03\x01\x12\x04\xa0\x01\x02\x13\n\r\n\x05\x05\x02\x02\x03\x02\x12\x04\xa0\x01\x16\x17\nD\n\x04\x05\x02\x02\x04\x12\x04\xa2\x01\x02\x18\x1a6 Warning evidence without an implied failure outcome.\n\n\r\n\x05\x05\x02\x02\x04\x01\x12\x04\xa2\x01\x02\x13\n\r\n\x05\x05\x02\x02\x04\x02\x12\x04\xa2\x01\x16\x17\nJ\n\x04\x05\x02\x02\x05\x12\x04\xa4\x01\x02\x19\x1a< Error evidence; severity alone does not determine outcome.\n\n\r\n\x05\x05\x02\x02\x05\x01\x12\x04\xa4\x01\x02\x14\n\r\n\x05\x05\x02\x02\x05\x02\x12\x04\xa4\x01\x17\x18b\x06proto3\n\x9f\xdd\x02\n%nvidia/nemo/relay/worker/v1/llm.proto\x12\x1bnvidia.nemo.relay.worker.v1\x1a\x1bbuf/validate/validate.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a(nvidia/nemo/relay/worker/v1/common.proto\"\xa1\x01\n\nLlmRequest\x12I\n\x07headers\x18\x01 \x01(\x0b2\'.nvidia.nemo.relay.worker.v1.JsonObjectB\x06\xbaH\x03\xc8\x01\x01R\x07headers\x12H\n\x07content\x18\x02 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueB\x06\xbaH\x03\xc8\x01\x01R\x07content\"\xbf\x0b\n\x13AnnotatedLlmRequest\x12C\n\x08messages\x18\x01 \x03(\x0b2\'.nvidia.nemo.relay.worker.v1.LlmMessageR\x08messages\x12O\n\x0cinstructions\x18\x02 \x01(\x0b2+.nvidia.nemo.relay.worker.v1.MessageContentR\x0cinstructions\x12\x19\n\x05model\x18\x03 \x01(\tH\x00R\x05model\x88\x01\x01\x12E\n\x06params\x18\x04 \x01(\x0b2-.nvidia.nemo.relay.worker.v1.GenerationParamsR\x06params\x12E\n\x05tools\x18\x05 \x01(\x0b2/.nvidia.nemo.relay.worker.v1.ToolDefinitionListR\x05tools\x12H\n\x0btool_choice\x18\x06 \x01(\x0b2\'.nvidia.nemo.relay.worker.v1.ToolChoiceR\ntoolChoice\x12\x19\n\x05store\x18\x07 \x01(\x08H\x01R\x05store\x88\x01\x01\x125\n\x14previous_response_id\x18\x08 \x01(\tH\x02R\x12previousResponseId\x88\x01\x01\x12F\n\ntruncation\x18\t \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueR\ntruncation\x12D\n\treasoning\x18\n \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueR\treasoning\x12@\n\x07include\x18\x0b \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueR\x07include\x12\x17\n\x04user\x18\x0c \x01(\tH\x03R\x04user\x88\x01\x01\x12B\n\x08metadata\x18\r \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueR\x08metadata\x12&\n\x0cservice_tier\x18\x0e \x01(\tH\x04R\x0bserviceTier\x88\x01\x01\x123\n\x13parallel_tool_calls\x18\x0f \x01(\x08H\x05R\x11parallelToolCalls\x88\x01\x01\x12/\n\x11max_output_tokens\x18\x10 \x01(\x04H\x06R\x0fmaxOutputTokens\x88\x01\x01\x12)\n\x0emax_tool_calls\x18\x11 \x01(\x04H\x07R\x0cmaxToolCalls\x88\x01\x01\x12&\n\x0ctop_logprobs\x18\x12 \x01(\x04H\x08R\x0btopLogprobs\x88\x01\x01\x12\x1b\n\x06stream\x18\x13 \x01(\x08H\tR\x06stream\x88\x01\x01\x12I\n\x0capi_specific\x18\x14 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueR\x0bapiSpecific\x12Q\n\x05extra\x18\x15 \x03(\x0b2;.nvidia.nemo.relay.worker.v1.AnnotatedLlmRequest.ExtraEntryR\x05extra\x1a`\n\nExtraEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12<\n\x05value\x18\x02 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueR\x05value:\x028\x01B\x08\n\x06_modelB\x08\n\x06_storeB\x17\n\x15_previous_response_idB\x07\n\x05_userB\x0f\n\r_service_tierB\x16\n\x14_parallel_tool_callsB\x14\n\x12_max_output_tokensB\x11\n\x0f_max_tool_callsB\x0f\n\r_top_logprobsB\t\n\x07_stream\"\xc2\x05\n\nLlmMessage\x12C\n\x06system\x18\x01 \x01(\x0b2).nvidia.nemo.relay.worker.v1.NamedMessageH\x00R\x06system\x12?\n\x04user\x18\x02 \x01(\x0b2).nvidia.nemo.relay.worker.v1.NamedMessageH\x00R\x04user\x12I\n\tdeveloper\x18\x03 \x01(\x0b2).nvidia.nemo.relay.worker.v1.NamedMessageH\x00R\tdeveloper\x12M\n\tassistant\x18\x04 \x01(\x0b2-.nvidia.nemo.relay.worker.v1.AssistantMessageH\x00R\tassistant\x12>\n\x04tool\x18\x05 \x01(\x0b2(.nvidia.nemo.relay.worker.v1.ToolMessageH\x00R\x04tool\x12J\n\x08function\x18\x06 \x01(\x0b2,.nvidia.nemo.relay.worker.v1.FunctionMessageH\x00R\x08function\x12H\n\ttool_call\x18\x07 \x01(\x0b2).nvidia.nemo.relay.worker.v1.ToolCallItemH\x00R\x08toolCall\x12N\n\x0btool_result\x18\x08 \x01(\x0b2+.nvidia.nemo.relay.worker.v1.ToolResultItemH\x00R\ntoolResult\x12_\n\x0fprovider_native\x18\t \x01(\x0b24.nvidia.nemo.relay.worker.v1.ProviderNativeComponentH\x00R\x0eproviderNativeB\r\n\x04role\x12\x05\xbaH\x02\x08\x01\"\x7f\n\x0cNamedMessage\x12M\n\x07content\x18\x01 \x01(\x0b2+.nvidia.nemo.relay.worker.v1.MessageContentB\x06\xbaH\x03\xc8\x01\x01R\x07content\x12\x17\n\x04name\x18\x02 \x01(\tH\x00R\x04name\x88\x01\x01B\x07\n\x05_name\"\xc5\x01\n\x10AssistantMessage\x12E\n\x07content\x18\x01 \x01(\x0b2+.nvidia.nemo.relay.worker.v1.MessageContentR\x07content\x12H\n\ntool_calls\x18\x02 \x01(\x0b2).nvidia.nemo.relay.worker.v1.ToolCallListR\ttoolCalls\x12\x17\n\x04name\x18\x03 \x01(\tH\x00R\x04name\x88\x01\x01B\x07\n\x05_name\"~\n\x0bToolMessage\x12M\n\x07content\x18\x01 \x01(\x0b2+.nvidia.nemo.relay.worker.v1.MessageContentB\x06\xbaH\x03\xc8\x01\x01R\x07content\x12 \n\x0ctool_call_id\x18\x02 \x01(\tR\ntoolCallId\"P\n\x0fFunctionMessage\x12\x1d\n\x07content\x18\x01 \x01(\tH\x00R\x07content\x88\x01\x01\x12\x12\n\x04name\x18\x02 \x01(\tR\x04nameB\n\n\x08_content\"\xd3\x02\n\x0cToolCallItem\x12\x13\n\x02id\x18\x01 \x01(\tH\x00R\x02id\x88\x01\x01\x12\x17\n\x07call_id\x18\x02 \x01(\tR\x06callId\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12L\n\targuments\x18\x04 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueB\x06\xbaH\x03\xc8\x01\x01R\targuments\x12J\n\x05extra\x18\x05 \x03(\x0b24.nvidia.nemo.relay.worker.v1.ToolCallItem.ExtraEntryR\x05extra\x1a`\n\nExtraEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12<\n\x05value\x18\x02 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueR\x05value:\x028\x01B\x05\n\x03_id\"\xbd\x02\n\x0eToolResultItem\x12\x13\n\x02id\x18\x01 \x01(\tH\x00R\x02id\x88\x01\x01\x12\x17\n\x07call_id\x18\x02 \x01(\tR\x06callId\x12F\n\x06output\x18\x03 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueB\x06\xbaH\x03\xc8\x01\x01R\x06output\x12L\n\x05extra\x18\x04 \x03(\x0b26.nvidia.nemo.relay.worker.v1.ToolResultItem.ExtraEntryR\x05extra\x1a`\n\nExtraEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12<\n\x05value\x18\x02 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueR\x05value:\x028\x01B\x05\n\x03_id\"~\n\x0eMessageContent\x12\x14\n\x04text\x18\x01 \x01(\tH\x00R\x04text\x12D\n\x05parts\x18\x02 \x01(\x0b2,.nvidia.nemo.relay.worker.v1.ContentPartListH\x00R\x05partsB\x10\n\x07content\x12\x05\xbaH\x02\x08\x01\"S\n\x0fContentPartList\x12@\n\x06values\x18\x01 \x03(\x0b2(.nvidia.nemo.relay.worker.v1.ContentPartR\x06values\"\xd1\x05\n\x0bContentPart\x12B\n\x04text\x18\x01 \x01(\x0b2,.nvidia.nemo.relay.worker.v1.TextContentPartH\x00R\x04text\x12O\n\timage_url\x18\x02 \x01(\x0b20.nvidia.nemo.relay.worker.v1.ImageUrlContentPartH\x00R\x08imageUrl\x12D\n\x05image\x18\x03 \x01(\x0b2,.nvidia.nemo.relay.worker.v1.JsonContentPartH\x00R\x05image\x12D\n\x05audio\x18\x04 \x01(\x0b2,.nvidia.nemo.relay.worker.v1.JsonContentPartH\x00R\x05audio\x12B\n\x04file\x18\x05 \x01(\x0b2,.nvidia.nemo.relay.worker.v1.JsonContentPartH\x00R\x04file\x12H\n\x07refusal\x18\x06 \x01(\x0b2,.nvidia.nemo.relay.worker.v1.TextContentPartH\x00R\x07refusal\x12L\n\x08tool_use\x18\x07 \x01(\x0b2/.nvidia.nemo.relay.worker.v1.ToolUseContentPartH\x00R\x07toolUse\x12U\n\x0btool_result\x18\x08 \x01(\x0b22.nvidia.nemo.relay.worker.v1.ToolResultContentPartH\x00R\ntoolResult\x12_\n\x0fprovider_native\x18\t \x01(\x0b24.nvidia.nemo.relay.worker.v1.ProviderNativeComponentH\x00R\x0eproviderNativeB\r\n\x04part\x12\x05\xbaH\x02\x08\x01\"\xd6\x01\n\x0fTextContentPart\x12\x12\n\x04text\x18\x01 \x01(\tR\x04text\x12M\n\x05extra\x18\x02 \x03(\x0b27.nvidia.nemo.relay.worker.v1.TextContentPart.ExtraEntryR\x05extra\x1a`\n\nExtraEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12<\n\x05value\x18\x02 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueR\x05value:\x028\x01\"\x96\x02\n\x13ImageUrlContentPart\x12J\n\timage_url\x18\x01 \x01(\x0b2%.nvidia.nemo.relay.worker.v1.ImageUrlB\x06\xbaH\x03\xc8\x01\x01R\x08imageUrl\x12Q\n\x05extra\x18\x02 \x03(\x0b2;.nvidia.nemo.relay.worker.v1.ImageUrlContentPart.ExtraEntryR\x05extra\x1a`\n\nExtraEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12<\n\x05value\x18\x02 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueR\x05value:\x028\x01\"\x88\x02\n\x0fJsonContentPart\x12D\n\x05value\x18\x01 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueB\x06\xbaH\x03\xc8\x01\x01R\x05value\x12M\n\x05extra\x18\x02 \x03(\x0b27.nvidia.nemo.relay.worker.v1.JsonContentPart.ExtraEntryR\x05extra\x1a`\n\nExtraEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12<\n\x05value\x18\x02 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueR\x05value:\x028\x01\"\xb2\x02\n\x12ToolUseContentPart\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12D\n\x05input\x18\x03 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueB\x06\xbaH\x03\xc8\x01\x01R\x05input\x12P\n\x05extra\x18\x04 \x03(\x0b2:.nvidia.nemo.relay.worker.v1.ToolUseContentPart.ExtraEntryR\x05extra\x1a`\n\nExtraEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12<\n\x05value\x18\x02 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueR\x05value:\x028\x01\"\xe5\x02\n\x15ToolResultContentPart\x12\x1e\n\x0btool_use_id\x18\x01 \x01(\tR\ttoolUseId\x12H\n\x07content\x18\x02 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueB\x06\xbaH\x03\xc8\x01\x01R\x07content\x12\x1e\n\x08is_error\x18\x03 \x01(\x08H\x00R\x07isError\x88\x01\x01\x12S\n\x05extra\x18\x04 \x03(\x0b2=.nvidia.nemo.relay.worker.v1.ToolResultContentPart.ExtraEntryR\x05extra\x1a`\n\nExtraEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12<\n\x05value\x18\x02 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueR\x05value:\x028\x01B\x0b\n\t_is_error\"D\n\x08ImageUrl\x12\x10\n\x03url\x18\x01 \x01(\tR\x03url\x12\x1b\n\x06detail\x18\x02 \x01(\tH\x00R\x06detail\x88\x01\x01B\t\n\x07_detail\"\x86\x01\n\x08ToolCall\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x1b\n\tcall_type\x18\x02 \x01(\tR\x08callType\x12M\n\x08function\x18\x03 \x01(\x0b2).nvidia.nemo.relay.worker.v1.FunctionCallB\x06\xbaH\x03\xc8\x01\x01R\x08function\"M\n\x0cToolCallList\x12=\n\x06values\x18\x01 \x03(\x0b2%.nvidia.nemo.relay.worker.v1.ToolCallR\x06values\"@\n\x0cFunctionCall\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1c\n\targuments\x18\x02 \x01(\tR\targuments\"Y\n\x12ToolDefinitionList\x12C\n\x06values\x18\x01 \x03(\x0b2+.nvidia.nemo.relay.worker.v1.ToolDefinitionR\x06values\"\xd9\x01\n\x0eToolDefinition\x12Q\n\x08function\x18\x01 \x01(\x0b23.nvidia.nemo.relay.worker.v1.FunctionToolDefinitionH\x00R\x08function\x12_\n\x0fprovider_native\x18\x02 \x01(\x0b24.nvidia.nemo.relay.worker.v1.ProviderNativeComponentH\x00R\x0eproviderNativeB\x13\n\ndefinition\x12\x05\xbaH\x02\x08\x01\"\xa5\x02\n\x16FunctionToolDefinition\x12S\n\x08function\x18\x01 \x01(\x0b2/.nvidia.nemo.relay.worker.v1.FunctionDefinitionB\x06\xbaH\x03\xc8\x01\x01R\x08function\x12T\n\x05extra\x18\x02 \x03(\x0b2>.nvidia.nemo.relay.worker.v1.FunctionToolDefinition.ExtraEntryR\x05extra\x1a`\n\nExtraEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12<\n\x05value\x18\x02 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueR\x05value:\x028\x01\"\x83\x03\n\x12FunctionDefinition\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12%\n\x0bdescription\x18\x02 \x01(\tH\x00R\x0bdescription\x88\x01\x01\x12F\n\nparameters\x18\x03 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueR\nparameters\x12\x1b\n\x06strict\x18\x04 \x01(\x08H\x01R\x06strict\x88\x01\x01\x12P\n\x05extra\x18\x05 \x03(\x0b2:.nvidia.nemo.relay.worker.v1.FunctionDefinition.ExtraEntryR\x05extra\x1a`\n\nExtraEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12<\n\x05value\x18\x02 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueR\x05value:\x028\x01B\x0e\n\x0c_descriptionB\t\n\x07_strict\"\xdf\x02\n\nToolChoice\x12,\n\x04auto\x18\x01 \x01(\x0b2\x16.google.protobuf.EmptyH\x00R\x04auto\x12,\n\x04none\x18\x02 \x01(\x0b2\x16.google.protobuf.EmptyH\x00R\x04none\x124\n\x08required\x18\x03 \x01(\x0b2\x16.google.protobuf.EmptyH\x00R\x08required\x12M\n\x08specific\x18\x04 \x01(\x0b2/.nvidia.nemo.relay.worker.v1.ToolChoiceFunctionH\x00R\x08specific\x12_\n\x0fprovider_native\x18\x05 \x01(\x0b24.nvidia.nemo.relay.worker.v1.ProviderNativeComponentH\x00R\x0eproviderNativeB\x0f\n\x06choice\x12\x05\xbaH\x02\x08\x01\"\x8e\x01\n\x12ToolChoiceFunction\x12\x1f\n\x0bchoice_type\x18\x01 \x01(\tR\nchoiceType\x12W\n\x08function\x18\x02 \x01(\x0b23.nvidia.nemo.relay.worker.v1.ToolChoiceFunctionNameB\x06\xbaH\x03\xc8\x01\x01R\x08function\",\n\x16ToolChoiceFunctionName\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\"\xa1\x01\n\x17ProviderNativeComponent\x12#\n\x08provider\x18\x01 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x08provider\x12\x1b\n\x04kind\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x04kind\x12D\n\x05value\x18\x03 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueB\x06\xbaH\x03\xc8\x01\x01R\x05value\"\xef\x01\n\x10GenerationParams\x12.\n\x0btemperature\x18\x01 \x01(\x01B\x07\xbaH\x04\x12\x02@\x01H\x00R\x0btemperature\x88\x01\x01\x12\"\n\nmax_tokens\x18\x02 \x01(\x04H\x01R\tmaxTokens\x88\x01\x01\x12!\n\x05top_p\x18\x03 \x01(\x01B\x07\xbaH\x04\x12\x02@\x01H\x02R\x04topP\x88\x01\x01\x12;\n\x04stop\x18\x04 \x01(\x0b2\'.nvidia.nemo.relay.worker.v1.StringListR\x04stopB\x0e\n\x0c_temperatureB\r\n\x0b_max_tokensB\x08\n\x06_top_p\"\xe3\x05\n\x14AnnotatedLlmResponse\x12\x13\n\x02id\x18\x01 \x01(\tH\x00R\x02id\x88\x01\x01\x12\x19\n\x05model\x18\x02 \x01(\tH\x01R\x05model\x88\x01\x01\x12E\n\x07message\x18\x03 \x01(\x0b2+.nvidia.nemo.relay.worker.v1.MessageContentR\x07message\x12P\n\ntool_calls\x18\x04 \x01(\x0b21.nvidia.nemo.relay.worker.v1.ResponseToolCallListR\ttoolCalls\x12N\n\rfinish_reason\x18\x05 \x01(\x0b2).nvidia.nemo.relay.worker.v1.FinishReasonR\x0cfinishReason\x128\n\x05usage\x18\x06 \x01(\x0b2\".nvidia.nemo.relay.worker.v1.UsageR\x05usage\x12f\n\x14optimization_summary\x18\x07 \x01(\x0b23.nvidia.nemo.relay.worker.v1.LlmOptimizationSummaryR\x13optimizationSummary\x12I\n\x0capi_specific\x18\x08 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueR\x0bapiSpecific\x12R\n\x05extra\x18\t \x03(\x0b2<.nvidia.nemo.relay.worker.v1.AnnotatedLlmResponse.ExtraEntryR\x05extra\x1a`\n\nExtraEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12<\n\x05value\x18\x02 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueR\x05value:\x028\x01B\x05\n\x03_idB\x08\n\x06_model\"]\n\x14ResponseToolCallList\x12E\n\x06values\x18\x01 \x03(\x0b2-.nvidia.nemo.relay.worker.v1.ResponseToolCallR\x06values\"\x84\x01\n\x10ResponseToolCall\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12L\n\targuments\x18\x03 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueB\x06\xbaH\x03\xc8\x01\x01R\targuments\"\x99\x02\n\x0cFinishReason\x124\n\x08complete\x18\x01 \x01(\x0b2\x16.google.protobuf.EmptyH\x00R\x08complete\x120\n\x06length\x18\x02 \x01(\x0b2\x16.google.protobuf.EmptyH\x00R\x06length\x123\n\x08tool_use\x18\x03 \x01(\x0b2\x16.google.protobuf.EmptyH\x00R\x07toolUse\x12?\n\x0econtent_filter\x18\x04 \x01(\x0b2\x16.google.protobuf.EmptyH\x00R\rcontentFilter\x12\x1a\n\x07unknown\x18\x05 \x01(\tH\x00R\x07unknownB\x0f\n\x06reason\x12\x05\xbaH\x02\x08\x01\"\xb2\x05\n\x05Usage\x12(\n\rprompt_tokens\x18\x01 \x01(\x04H\x00R\x0cpromptTokens\x88\x01\x01\x120\n\x11completion_tokens\x18\x02 \x01(\x04H\x01R\x10completionTokens\x88\x01\x01\x12&\n\x0ctotal_tokens\x18\x03 \x01(\x04H\x02R\x0btotalTokens\x88\x01\x01\x12/\n\x11cache_read_tokens\x18\x04 \x01(\x04H\x03R\x0fcacheReadTokens\x88\x01\x01\x125\n\x12cache_write_tokens\x18\x05 \x01(\x04B\x02\x18\x01H\x04R\x10cacheWriteTokens\x88\x01\x01\x12:\n\x15cache_write_1h_tokens\x18\x06 \x01(\x04B\x02\x18\x01H\x05R\x12cacheWrite1hTokens\x88\x01\x01\x127\n\x15uncached_input_tokens\x18\x07 \x01(\x04H\x06R\x13uncachedInputTokens\x88\x01\x01\x12=\n\x04cost\x18\x08 \x01(\x0b2).nvidia.nemo.relay.worker.v1.CostEstimateR\x04cost\x12o\n\x18cache_write_token_counts\x18\t \x01(\x0b26.nvidia.nemo.relay.worker.v1.CacheWriteTokenCountsListR\x15cacheWriteTokenCountsB\x10\n\x0e_prompt_tokensB\x14\n\x12_completion_tokensB\x0f\n\r_total_tokensB\x14\n\x12_cache_read_tokensB\x15\n\x13_cache_write_tokensB\x18\n\x16_cache_write_1h_tokensB\x18\n\x16_uncached_input_tokens\"g\n\x19CacheWriteTokenCountsList\x12J\n\x06values\x18\x01 \x03(\x0b22.nvidia.nemo.relay.worker.v1.CacheWriteTokenCountsR\x06values\"r\n\x15CacheWriteTokenCounts\x12!\n\x05count\x18\x01 \x01(\x04B\x06\xbaH\x03\xc8\x01\x01H\x00R\x05count\x88\x01\x01\x12\x1f\n\x08duration\x18\x02 \x01(\x04H\x01R\x08duration\x88\x01\x01B\x08\n\x06_countB\x0b\n\t_duration\"\xfa\x04\n\x0cCostEstimate\x12\"\n\x05total\x18\x01 \x01(\x01B\x07\xbaH\x04\x12\x02@\x01H\x00R\x05total\x88\x01\x01\x12\x1a\n\x08currency\x18\x02 \x01(\tR\x08currency\x12\"\n\x05input\x18\x03 \x01(\x01B\x07\xbaH\x04\x12\x02@\x01H\x01R\x05input\x88\x01\x01\x12$\n\x06output\x18\x04 \x01(\x01B\x07\xbaH\x04\x12\x02@\x01H\x02R\x06output\x88\x01\x01\x12+\n\ncache_read\x18\x05 \x01(\x01B\x07\xbaH\x04\x12\x02@\x01H\x03R\tcacheRead\x88\x01\x01\x12-\n\x0bcache_write\x18\x06 \x01(\x01B\x07\xbaH\x04\x12\x02@\x01H\x04R\ncacheWrite\x88\x01\x01\x12K\n\x06source\x18\x07 \x01(\x0e2\'.nvidia.nemo.relay.worker.v1.CostSourceB\n\xbaH\x07\x82\x01\x04\x10\x01 \x00R\x06source\x12.\n\x10pricing_provider\x18\x08 \x01(\tH\x05R\x0fpricingProvider\x88\x01\x01\x12(\n\rpricing_model\x18\t \x01(\tH\x06R\x0cpricingModel\x88\x01\x01\x12\'\n\rpricing_as_of\x18\n \x01(\tH\x07R\x0bpricingAsOf\x88\x01\x01\x12*\n\x0epricing_source\x18\x0b \x01(\tH\x08R\rpricingSource\x88\x01\x01B\x08\n\x06_totalB\x08\n\x06_inputB\t\n\x07_outputB\r\n\x0b_cache_readB\x0e\n\x0c_cache_writeB\x13\n\x11_pricing_providerB\x10\n\x0e_pricing_modelB\x10\n\x0e_pricing_as_ofB\x11\n\x0f_pricing_source\"Z\n\x14LlmOptimizationModel\x12\x14\n\x05model\x18\x01 \x01(\tR\x05model\x12\x1f\n\x08provider\x18\x02 \x01(\tH\x00R\x08provider\x88\x01\x01B\x0b\n\t_provider\"\xc0\x01\n\x1eLlmOptimizationModelTransition\x12M\n\x08baseline\x18\x01 \x01(\x0b21.nvidia.nemo.relay.worker.v1.LlmOptimizationModelR\x08baseline\x12O\n\teffective\x18\x02 \x01(\x0b21.nvidia.nemo.relay.worker.v1.LlmOptimizationModelR\teffective\"\xe5\x02\n\x15LlmOptimizationTokens\x12(\n\rprompt_tokens\x18\x01 \x01(\x04H\x00R\x0cpromptTokens\x88\x01\x01\x120\n\x11completion_tokens\x18\x02 \x01(\x04H\x01R\x10completionTokens\x88\x01\x01\x12/\n\x11cache_read_tokens\x18\x03 \x01(\x04H\x02R\x0fcacheReadTokens\x88\x01\x01\x121\n\x12cache_write_tokens\x18\x04 \x01(\x04H\x03R\x10cacheWriteTokens\x88\x01\x01\x12&\n\x0ctotal_tokens\x18\x05 \x01(\x04H\x04R\x0btotalTokens\x88\x01\x01B\x10\n\x0e_prompt_tokensB\x14\n\x12_completion_tokensB\x14\n\x12_cache_read_tokensB\x15\n\x13_cache_write_tokensB\x0f\n\r_total_tokens\"\xc4\x03\n\x1aLlmOptimizationTokenImpact\x12N\n\x08baseline\x18\x01 \x01(\x0b22.nvidia.nemo.relay.worker.v1.LlmOptimizationTokensR\x08baseline\x12P\n\teffective\x18\x02 \x01(\x0b22.nvidia.nemo.relay.worker.v1.LlmOptimizationTokensR\teffective\x12H\n\x05saved\x18\x03 \x01(\x0b22.nvidia.nemo.relay.worker.v1.LlmOptimizationTokensR\x05saved\x12f\n\x07quality\x18\x04 \x01(\x0e2;.nvidia.nemo.relay.worker.v1.LlmOptimizationEvidenceQualityB\n\xbaH\x07\x82\x01\x04\x10\x01 \x00H\x00R\x07quality\x88\x01\x01\x120\n\x11estimation_method\x18\x05 \x01(\tH\x01R\x10estimationMethod\x88\x01\x01B\n\n\x08_qualityB\x14\n\x12_estimation_method\"\xe8\x06\n\x1bLlmOptimizationContribution\x12\x1d\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x02id\x88\x01\x01\x12\x1f\n\x08sequence\x18\x02 \x01(\x04H\x01R\x08sequence\x88\x01\x01\x12#\n\x08producer\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x08producer\x12\x1b\n\x04kind\x18\x04 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x04kind\x12\x18\n\x07applied\x18\x05 \x01(\x08R\x07applied\x12f\n\x10model_transition\x18\x06 \x01(\x0b2;.nvidia.nemo.relay.worker.v1.LlmOptimizationModelTransitionR\x0fmodelTransition\x12Z\n\x0ctoken_impact\x18\x07 \x01(\x0b27.nvidia.nemo.relay.worker.v1.LlmOptimizationTokenImpactR\x0btokenImpact\x12N\n\x0epayload_schema\x18\x08 \x01(\x0b2\'.nvidia.nemo.relay.worker.v1.DataSchemaR\rpayloadSchema\x12@\n\x07payload\x18\t \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueR\x07payload\x12Y\n\x05extra\x18\n \x03(\x0b2C.nvidia.nemo.relay.worker.v1.LlmOptimizationContribution.ExtraEntryR\x05extra\x1a`\n\nExtraEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12<\n\x05value\x18\x02 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueR\x05value:\x028\x01:\x85\x01\xbaH\x81\x01\x1a\x7f\n\x1boptimization.payload_schema\x120payload requires its application schema identity\x1a.!has(this.payload) || has(this.payload_schema)B\x05\n\x03_idB\x0b\n\t_sequence\"\xa1\x08\n\x16LlmOptimizationSummary\x12%\n\x0eschema_version\x18\x01 \x01(\tR\rschemaVersion\x12/\n\x13calculation_version\x18\x02 \x01(\tR\x12calculationVersion\x12]\n\x06status\x18\x03 \x01(\x0e29.nvidia.nemo.relay.worker.v1.LlmOptimizationSummaryStatusB\n\xbaH\x07\x82\x01\x04\x10\x01 \x00R\x06status\x12 \n\x0blimitations\x18\x04 \x03(\tR\x0blimitations\x12X\n\x0ebaseline_model\x18\x05 \x01(\x0b21.nvidia.nemo.relay.worker.v1.LlmOptimizationModelR\rbaselineModel\x12Z\n\x0feffective_model\x18\x06 \x01(\x0b21.nvidia.nemo.relay.worker.v1.LlmOptimizationModelR\x0eeffectiveModel\x12K\n\x0feffective_usage\x18\x07 \x01(\x0b2\".nvidia.nemo.relay.worker.v1.UsageR\x0eeffectiveUsage\x12I\n\x0ebaseline_usage\x18\x08 \x01(\x0b2\".nvidia.nemo.relay.worker.v1.UsageR\rbaselineUsage\x12]\n\x0ctokens_saved\x18\t \x01(\x0b22.nvidia.nemo.relay.worker.v1.LlmOptimizationTokensB\x06\xbaH\x03\xc8\x01\x01R\x0btokensSaved\x12N\n\rbaseline_cost\x18\n \x01(\x0b2).nvidia.nemo.relay.worker.v1.CostEstimateR\x0cbaselineCost\x12J\n\x0bactual_cost\x18\x0b \x01(\x0b2).nvidia.nemo.relay.worker.v1.CostEstimateR\nactualCost\x12>\n\x14estimated_cost_saved\x18\x0c \x01(\x01B\x07\xbaH\x04\x12\x02@\x01H\x00R\x12estimatedCostSaved\x88\x01\x01\x12\x1f\n\x08currency\x18\r \x01(\tH\x01R\x08currency\x88\x01\x01\x12^\n\rcontributions\x18\x0e \x03(\x0b28.nvidia.nemo.relay.worker.v1.LlmOptimizationContributionR\rcontributionsB\x17\n\x15_estimated_cost_savedB\x0b\n\t_currency*k\n\nCostSource\x12\x1b\n\x17COST_SOURCE_UNSPECIFIED\x10\x00\x12\x1d\n\x19COST_SOURCE_MODEL_PRICING\x10\x01\x12!\n\x1dCOST_SOURCE_PROVIDER_REPORTED\x10\x02*\xb4\x01\n\x1eLlmOptimizationEvidenceQuality\x121\n-LLM_OPTIMIZATION_EVIDENCE_QUALITY_UNSPECIFIED\x10\x00\x12.\n*LLM_OPTIMIZATION_EVIDENCE_QUALITY_OBSERVED\x10\x01\x12/\n+LLM_OPTIMIZATION_EVIDENCE_QUALITY_ESTIMATED\x10\x02*\xaa\x01\n\x1cLlmOptimizationSummaryStatus\x12/\n+LLM_OPTIMIZATION_SUMMARY_STATUS_UNSPECIFIED\x10\x00\x12,\n(LLM_OPTIMIZATION_SUMMARY_STATUS_COMPLETE\x10\x01\x12+\n\'LLM_OPTIMIZATION_SUMMARY_STATUS_PARTIAL\x10\x02J\xab\xea\x01\n\x07\x12\x05\x05\x00\xfb\x04\x01\n\xe7\x01\n\x01\x0c\x12\x03\x05\x00\x122\x88\x01 SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n SPDX-License-Identifier: Apache-2.0\n2R Defines normalized LLM, provider, multimodal, and optimization transport models.\n\n\x08\n\x01\x02\x12\x03\x07\x00$\n\t\n\x02\x03\x00\x12\x03\t\x00%\n\t\n\x02\x03\x01\x12\x03\n\x00%\n\t\n\x02\x03\x02\x12\x03\x0b\x002\nT\n\x02\x04\x00\x12\x04\x0e\x00\x13\x01\x1aH Headers and content are required; content remains provider-owned JSON.\n\n\n\n\x03\x04\x00\x01\x12\x03\x0e\x08\x12\n1\n\x04\x04\x00\x02\x00\x12\x03\x10\x02@\x1a$ Provider-specific request headers.\n\n\x0c\n\x05\x04\x00\x02\x00\x06\x12\x03\x10\x02\x0c\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03\x10\r\x14\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03\x10\x17\x18\n\x0c\n\x05\x04\x00\x02\x00\x08\x12\x03\x10\x19?\n\x0f\n\x08\x04\x00\x02\x00\x08\x87\t\x19\x12\x03\x10\x1a>\n.\n\x04\x04\x00\x02\x01\x12\x03\x12\x02?\x1a! Provider-specific request body.\n\n\x0c\n\x05\x04\x00\x02\x01\x06\x12\x03\x12\x02\x0b\n\x0c\n\x05\x04\x00\x02\x01\x01\x12\x03\x12\x0c\x13\n\x0c\n\x05\x04\x00\x02\x01\x03\x12\x03\x12\x16\x17\n\x0c\n\x05\x04\x00\x02\x01\x08\x12\x03\x12\x18>\n\x0f\n\x08\x04\x00\x02\x01\x08\x87\t\x19\x12\x03\x12\x19=\n`\n\x02\x04\x01\x12\x04\x16\x00B\x01\x1aT Normalized request structure with explicit provider-specific and extension fields.\n\n\n\n\x03\x04\x01\x01\x12\x03\x16\x08\x1b\n,\n\x04\x04\x01\x02\x00\x12\x03\x18\x02#\x1a\x1f Parsed conversation messages.\n\n\x0c\n\x05\x04\x01\x02\x00\x04\x12\x03\x18\x02\n\n\x0c\n\x05\x04\x01\x02\x00\x06\x12\x03\x18\x0b\x15\n\x0c\n\x05\x04\x01\x02\x00\x01\x12\x03\x18\x16\x1e\n\x0c\n\x05\x04\x01\x02\x00\x03\x12\x03\x18!\"\n\xa4\x01\n\x04\x04\x01\x02\x01\x12\x03\x1b\x02\"\x1a\x96\x01 Provider-level instructions that are not part of the conversation array. Anthropic encodes\n this as `system`; OpenAI Responses uses `instructions`.\n\n\x0c\n\x05\x04\x01\x02\x01\x06\x12\x03\x1b\x02\x10\n\x0c\n\x05\x04\x01\x02\x01\x01\x12\x03\x1b\x11\x1d\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x03\x1b !\nP\n\x04\x04\x01\x02\x02\x12\x03\x1d\x02\x1c\x1aC Model identifier (e.g., `\"gpt-4\"`, `\"claude-sonnet-4-20250514\"`).\n\n\x0c\n\x05\x04\x01\x02\x02\x04\x12\x03\x1d\x02\n\n\x0c\n\x05\x04\x01\x02\x02\x05\x12\x03\x1d\x0b\x11\n\x0c\n\x05\x04\x01\x02\x02\x01\x12\x03\x1d\x12\x17\n\x0c\n\x05\x04\x01\x02\x02\x03\x12\x03\x1d\x1a\x1b\n8\n\x04\x04\x01\x02\x03\x12\x03\x1f\x02\x1e\x1a+ Common generation parameters, normalized.\n\n\x0c\n\x05\x04\x01\x02\x03\x06\x12\x03\x1f\x02\x12\n\x0c\n\x05\x04\x01\x02\x03\x01\x12\x03\x1f\x13\x19\n\x0c\n\x05\x04\x01\x02\x03\x03\x12\x03\x1f\x1c\x1d\nJ\n\x04\x04\x01\x02\x04\x12\x03!\x02\x1f\x1a= Tool definitions (function schemas) available to the model.\n\n\x0c\n\x05\x04\x01\x02\x04\x06\x12\x03!\x02\x14\n\x0c\n\x05\x04\x01\x02\x04\x01\x12\x03!\x15\x1a\n\x0c\n\x05\x04\x01\x02\x04\x03\x12\x03!\x1d\x1e\n#\n\x04\x04\x01\x02\x05\x12\x03#\x02\x1d\x1a\x16 Tool choice control.\n\n\x0c\n\x05\x04\x01\x02\x05\x06\x12\x03#\x02\x0c\n\x0c\n\x05\x04\x01\x02\x05\x01\x12\x03#\r\x18\n\x0c\n\x05\x04\x01\x02\x05\x03\x12\x03#\x1b\x1c\nO\n\x04\x04\x01\x02\x06\x12\x03%\x02\x1a\x1aB OpenAI Responses: whether to persist response state server-side.\n\n\x0c\n\x05\x04\x01\x02\x06\x04\x12\x03%\x02\n\n\x0c\n\x05\x04\x01\x02\x06\x05\x12\x03%\x0b\x0f\n\x0c\n\x05\x04\x01\x02\x06\x01\x12\x03%\x10\x15\n\x0c\n\x05\x04\x01\x02\x06\x03\x12\x03%\x18\x19\nA\n\x04\x04\x01\x02\x07\x12\x03\'\x02+\x1a4 OpenAI Responses: prior response to continue from.\n\n\x0c\n\x05\x04\x01\x02\x07\x04\x12\x03\'\x02\n\n\x0c\n\x05\x04\x01\x02\x07\x05\x12\x03\'\x0b\x11\n\x0c\n\x05\x04\x01\x02\x07\x01\x12\x03\'\x12&\n\x0c\n\x05\x04\x01\x02\x07\x03\x12\x03\')*\n=\n\x04\x04\x01\x02\x08\x12\x03)\x02\x1b\x1a0 OpenAI Responses: context truncation behavior.\n\n\x0c\n\x05\x04\x01\x02\x08\x06\x12\x03)\x02\x0b\n\x0c\n\x05\x04\x01\x02\x08\x01\x12\x03)\x0c\x16\n\x0c\n\x05\x04\x01\x02\x08\x03\x12\x03)\x19\x1a\n@\n\x04\x04\x01\x02\t\x12\x03+\x02\x1b\x1a3 OpenAI Responses: reasoning configuration object.\n\n\x0c\n\x05\x04\x01\x02\t\x06\x12\x03+\x02\x0b\n\x0c\n\x05\x04\x01\x02\t\x01\x12\x03+\x0c\x15\n\x0c\n\x05\x04\x01\x02\t\x03\x12\x03+\x18\x1a\nR\n\x04\x04\x01\x02\n\x12\x03-\x02\x19\x1aE OpenAI Responses: include filter for additional output/state items.\n\n\x0c\n\x05\x04\x01\x02\n\x06\x12\x03-\x02\x0b\n\x0c\n\x05\x04\x01\x02\n\x01\x12\x03-\x0c\x13\n\x0c\n\x05\x04\x01\x02\n\x03\x12\x03-\x16\x18\n&\n\x04\x04\x01\x02\x0b\x12\x03/\x02\x1c\x1a\x19 OpenAI user identifier.\n\n\x0c\n\x05\x04\x01\x02\x0b\x04\x12\x03/\x02\n\n\x0c\n\x05\x04\x01\x02\x0b\x05\x12\x03/\x0b\x11\n\x0c\n\x05\x04\x01\x02\x0b\x01\x12\x03/\x12\x16\n\x0c\n\x05\x04\x01\x02\x0b\x03\x12\x03/\x19\x1b\n*\n\x04\x04\x01\x02\x0c\x12\x031\x02\x1a\x1a\x1d OpenAI metadata map/object.\n\n\x0c\n\x05\x04\x01\x02\x0c\x06\x12\x031\x02\x0b\n\x0c\n\x05\x04\x01\x02\x0c\x01\x12\x031\x0c\x14\n\x0c\n\x05\x04\x01\x02\x0c\x03\x12\x031\x17\x19\n.\n\x04\x04\x01\x02\r\x12\x033\x02$\x1a! OpenAI service tier preference.\n\n\x0c\n\x05\x04\x01\x02\r\x04\x12\x033\x02\n\n\x0c\n\x05\x04\x01\x02\r\x05\x12\x033\x0b\x11\n\x0c\n\x05\x04\x01\x02\r\x01\x12\x033\x12\x1e\n\x0c\n\x05\x04\x01\x02\r\x03\x12\x033!#\n.\n\x04\x04\x01\x02\x0e\x12\x035\x02)\x1a! OpenAI tool parallelism toggle.\n\n\x0c\n\x05\x04\x01\x02\x0e\x04\x12\x035\x02\n\n\x0c\n\x05\x04\x01\x02\x0e\x05\x12\x035\x0b\x0f\n\x0c\n\x05\x04\x01\x02\x0e\x01\x12\x035\x10#\n\x0c\n\x05\x04\x01\x02\x0e\x03\x12\x035&(\n7\n\x04\x04\x01\x02\x0f\x12\x037\x02)\x1a* OpenAI Responses max output token limit.\n\n\x0c\n\x05\x04\x01\x02\x0f\x04\x12\x037\x02\n\n\x0c\n\x05\x04\x01\x02\x0f\x05\x12\x037\x0b\x11\n\x0c\n\x05\x04\x01\x02\x0f\x01\x12\x037\x12#\n\x0c\n\x05\x04\x01\x02\x0f\x03\x12\x037&(\n/\n\x04\x04\x01\x02\x10\x12\x039\x02&\x1a\" OpenAI Responses max tool calls.\n\n\x0c\n\x05\x04\x01\x02\x10\x04\x12\x039\x02\n\n\x0c\n\x05\x04\x01\x02\x10\x05\x12\x039\x0b\x11\n\x0c\n\x05\x04\x01\x02\x10\x01\x12\x039\x12 \n\x0c\n\x05\x04\x01\x02\x10\x03\x12\x039#%\n+\n\x04\x04\x01\x02\x11\x12\x03;\x02$\x1a\x1e OpenAI logprob fanout count.\n\n\x0c\n\x05\x04\x01\x02\x11\x04\x12\x03;\x02\n\n\x0c\n\x05\x04\x01\x02\x11\x05\x12\x03;\x0b\x11\n\x0c\n\x05\x04\x01\x02\x11\x01\x12\x03;\x12\x1e\n\x0c\n\x05\x04\x01\x02\x11\x03\x12\x03;!#\n\'\n\x04\x04\x01\x02\x12\x12\x03=\x02\x1c\x1a\x1a OpenAI streaming toggle.\n\n\x0c\n\x05\x04\x01\x02\x12\x04\x12\x03=\x02\n\n\x0c\n\x05\x04\x01\x02\x12\x05\x12\x03=\x0b\x0f\n\x0c\n\x05\x04\x01\x02\x12\x01\x12\x03=\x10\x16\n\x0c\n\x05\x04\x01\x02\x12\x03\x12\x03=\x19\x1b\n_\n\x04\x04\x01\x02\x13\x12\x03?\x02\x1e\x1aR Codec-owned request data; preserved as JSON and validated by the selected codec.\n\n\x0c\n\x05\x04\x01\x02\x13\x06\x12\x03?\x02\x0b\n\x0c\n\x05\x04\x01\x02\x13\x01\x12\x03?\x0c\x18\n\x0c\n\x05\x04\x01\x02\x13\x03\x12\x03?\x1b\x1d\nF\n\x04\x04\x01\x02\x14\x12\x03A\x02$\x1a9 Unknown provider fields, excluding modeled field names.\n\n\x0c\n\x05\x04\x01\x02\x14\x06\x12\x03A\x02\x18\n\x0c\n\x05\x04\x01\x02\x14\x01\x12\x03A\x19\x1e\n\x0c\n\x05\x04\x01\x02\x14\x03\x12\x03A!#\nU\n\x02\x04\x02\x12\x04E\x00\\\x01\x1aI The role is the alternative; contradictory roles cannot be represented.\n\n\n\n\x03\x04\x02\x01\x12\x03E\x08\x12\n\\\n\x04\x04\x02\x08\x00\x12\x04G\x02[\x03\x1aN Exactly one recognized alternative is required when this message is present.\n\n\x0c\n\x05\x04\x02\x08\x00\x01\x12\x03G\x08\x0c\n\x0c\n\x05\x04\x02\x08\x00\x02\x12\x03H\x040\n\x0f\n\x08\x04\x02\x08\x00\x02\x87\t\x01\x12\x03H\x040\n@\n\x04\x04\x02\x02\x00\x12\x03J\x04\x1c\x1a3 System instruction message with required content.\n\n\x0c\n\x05\x04\x02\x02\x00\x06\x12\x03J\x04\x10\n\x0c\n\x05\x04\x02\x02\x00\x01\x12\x03J\x11\x17\n\x0c\n\x05\x04\x02\x02\x00\x03\x12\x03J\x1a\x1b\n8\n\x04\x04\x02\x02\x01\x12\x03L\x04\x1a\x1a+ User input message with required content.\n\n\x0c\n\x05\x04\x02\x02\x01\x06\x12\x03L\x04\x10\n\x0c\n\x05\x04\x02\x02\x01\x01\x12\x03L\x11\x15\n\x0c\n\x05\x04\x02\x02\x01\x03\x12\x03L\x18\x19\nC\n\x04\x04\x02\x02\x02\x12\x03N\x04\x1f\x1a6 Developer instruction message with required content.\n\n\x0c\n\x05\x04\x02\x02\x02\x06\x12\x03N\x04\x10\n\x0c\n\x05\x04\x02\x02\x02\x01\x12\x03N\x11\x1a\n\x0c\n\x05\x04\x02\x02\x02\x03\x12\x03N\x1d\x1e\nS\n\x04\x04\x02\x02\x03\x12\x03P\x04#\x1aF Assistant output with independently optional content and tool calls.\n\n\x0c\n\x05\x04\x02\x02\x03\x06\x12\x03P\x04\x14\n\x0c\n\x05\x04\x02\x02\x03\x01\x12\x03P\x15\x1e\n\x0c\n\x05\x04\x02\x02\x03\x03\x12\x03P!\"\nI\n\x04\x04\x02\x02\x04\x12\x03R\x04\x19\x1a< Tool result correlated to a provider-issued call identity.\n\n\x0c\n\x05\x04\x02\x02\x04\x06\x12\x03R\x04\x0f\n\x0c\n\x05\x04\x02\x02\x04\x01\x12\x03R\x10\x14\n\x0c\n\x05\x04\x02\x02\x04\x03\x12\x03R\x17\x18\nI\n\x04\x04\x02\x02\x05\x12\x03T\x04!\x1a< Legacy function-result message with nullable text content.\n\n\x0c\n\x05\x04\x02\x02\x05\x06\x12\x03T\x04\x13\n\x0c\n\x05\x04\x02\x02\x05\x01\x12\x03T\x14\x1c\n\x0c\n\x05\x04\x02\x02\x05\x03\x12\x03T\x1f \nM\n\x04\x04\x02\x02\x06\x12\x03V\x04\x1f\x1a@ Portable top-level tool-call item, including parsed arguments.\n\n\x0c\n\x05\x04\x02\x02\x06\x06\x12\x03V\x04\x10\n\x0c\n\x05\x04\x02\x02\x06\x01\x12\x03V\x11\x1a\n\x0c\n\x05\x04\x02\x02\x06\x03\x12\x03V\x1d\x1e\nV\n\x04\x04\x02\x02\x07\x12\x03X\x04#\x1aI Portable top-level tool-result item, including its open result payload.\n\n\x0c\n\x05\x04\x02\x02\x07\x06\x12\x03X\x04\x12\n\x0c\n\x05\x04\x02\x02\x07\x01\x12\x03X\x13\x1e\n\x0c\n\x05\x04\x02\x02\x07\x03\x12\x03X!\"\nj\n\x04\x04\x02\x02\x08\x12\x03Z\x040\x1a] Provider-owned component preserved with its provider, native discriminator, and JSON value.\n\n\x0c\n\x05\x04\x02\x02\x08\x06\x12\x03Z\x04\x1b\n\x0c\n\x05\x04\x02\x02\x08\x01\x12\x03Z\x1c+\n\x0c\n\x05\x04\x02\x02\x08\x03\x12\x03Z./\n`\n\x02\x04\x03\x12\x04_\x00d\x01\x1aT System, user, or developer message with required content and optional sender name.\n\n\n\n\x03\x04\x03\x01\x12\x03_\x08\x14\n]\n\x04\x04\x03\x02\x00\x12\x03a\x02D\x1aP Required system, user, or developer content, including explicit empty content.\n\n\x0c\n\x05\x04\x03\x02\x00\x06\x12\x03a\x02\x10\n\x0c\n\x05\x04\x03\x02\x00\x01\x12\x03a\x11\x18\n\x0c\n\x05\x04\x03\x02\x00\x03\x12\x03a\x1b\x1c\n\x0c\n\x05\x04\x03\x02\x00\x08\x12\x03a\x1dC\n\x0f\n\x08\x04\x03\x02\x00\x08\x87\t\x19\x12\x03a\x1eB\n=\n\x04\x04\x03\x02\x01\x12\x03c\x02\x1b\x1a0 Optional sender name supplied by the provider.\n\n\x0c\n\x05\x04\x03\x02\x01\x04\x12\x03c\x02\n\n\x0c\n\x05\x04\x03\x02\x01\x05\x12\x03c\x0b\x11\n\x0c\n\x05\x04\x03\x02\x01\x01\x12\x03c\x12\x16\n\x0c\n\x05\x04\x03\x02\x01\x03\x12\x03c\x19\x1a\nR\n\x02\x04\x04\x12\x04g\x00n\x01\x1aF Assistant output with independently optional content and tool calls.\n\n\n\n\x03\x04\x04\x01\x12\x03g\x08\x18\nX\n\x04\x04\x04\x02\x00\x12\x03i\x02\x1d\x1aK Optional assistant content; absence is allowed for tool-call-only output.\n\n\x0c\n\x05\x04\x04\x02\x00\x06\x12\x03i\x02\x10\n\x0c\n\x05\x04\x04\x02\x00\x01\x12\x03i\x11\x18\n\x0c\n\x05\x04\x04\x02\x00\x03\x12\x03i\x1b\x1c\n5\n\x04\x04\x04\x02\x01\x12\x03k\x02\x1e\x1a( Tool calls requested by the assistant.\n\n\x0c\n\x05\x04\x04\x02\x01\x06\x12\x03k\x02\x0e\n\x0c\n\x05\x04\x04\x02\x01\x01\x12\x03k\x0f\x19\n\x0c\n\x05\x04\x04\x02\x01\x03\x12\x03k\x1c\x1d\nG\n\x04\x04\x04\x02\x02\x12\x03m\x02\x1b\x1a: Optional assistant sender name supplied by the provider.\n\n\x0c\n\x05\x04\x04\x02\x02\x04\x12\x03m\x02\n\n\x0c\n\x05\x04\x04\x02\x02\x05\x12\x03m\x0b\x11\n\x0c\n\x05\x04\x04\x02\x02\x01\x12\x03m\x12\x16\n\x0c\n\x05\x04\x04\x02\x02\x03\x12\x03m\x19\x1a\nL\n\x02\x04\x05\x12\x04q\x00v\x01\x1a@ Tool result content correlated to a provider-issued tool call.\n\n\n\n\x03\x04\x05\x01\x12\x03q\x08\x13\nP\n\x04\x04\x05\x02\x00\x12\x03s\x02D\x1aC Required tool result content associated with the correlated call.\n\n\x0c\n\x05\x04\x05\x02\x00\x06\x12\x03s\x02\x10\n\x0c\n\x05\x04\x05\x02\x00\x01\x12\x03s\x11\x18\n\x0c\n\x05\x04\x05\x02\x00\x03\x12\x03s\x1b\x1c\n\x0c\n\x05\x04\x05\x02\x00\x08\x12\x03s\x1dC\n\x0f\n\x08\x04\x05\x02\x00\x08\x87\t\x19\x12\x03s\x1eB\nB\n\x04\x04\x05\x02\x01\x12\x03u\x02\x1a\x1a5 The ID of the tool call this result corresponds to.\n\n\x0c\n\x05\x04\x05\x02\x01\x05\x12\x03u\x02\x08\n\x0c\n\x05\x04\x05\x02\x01\x01\x12\x03u\t\x15\n\x0c\n\x05\x04\x05\x02\x01\x03\x12\x03u\x18\x19\na\n\x02\x04\x06\x12\x04y\x00~\x01\x1aU Legacy function result; absent content represents explicit null in the runtime DTO.\n\n\n\n\x03\x04\x06\x01\x12\x03y\x08\x17\nL\n\x04\x04\x06\x02\x00\x12\x03{\x02\x1e\x1a? Absence maps to the runtime\'s explicit null function content.\n\n\x0c\n\x05\x04\x06\x02\x00\x04\x12\x03{\x02\n\n\x0c\n\x05\x04\x06\x02\x00\x05\x12\x03{\x0b\x11\n\x0c\n\x05\x04\x06\x02\x00\x01\x12\x03{\x12\x19\n\x0c\n\x05\x04\x06\x02\x00\x03\x12\x03{\x1c\x1d\n\"\n\x04\x04\x06\x02\x01\x12\x03}\x02\x12\x1a\x15 Tool/function name.\n\n\x0c\n\x05\x04\x06\x02\x01\x05\x12\x03}\x02\x08\n\x0c\n\x05\x04\x06\x02\x01\x01\x12\x03}\t\r\n\x0c\n\x05\x04\x06\x02\x01\x03\x12\x03}\x10\x11\nQ\n\x02\x04\x07\x12\x06\x81\x01\x00\x8c\x01\x01\x1aC Portable top-level provider tool-call item with parsed arguments.\n\n\x0b\n\x03\x04\x07\x01\x12\x04\x81\x01\x08\x14\n*\n\x04\x04\x07\x02\x00\x12\x04\x83\x01\x02\x19\x1a\x1c Optional provider item ID.\n\n\r\n\x05\x04\x07\x02\x00\x04\x12\x04\x83\x01\x02\n\n\r\n\x05\x04\x07\x02\x00\x05\x12\x04\x83\x01\x0b\x11\n\r\n\x05\x04\x07\x02\x00\x01\x12\x04\x83\x01\x12\x14\n\r\n\x05\x04\x07\x02\x00\x03\x12\x04\x83\x01\x17\x18\n>\n\x04\x04\x07\x02\x01\x12\x04\x85\x01\x02\x15\x1a0 Provider call ID used to correlate the result.\n\n\r\n\x05\x04\x07\x02\x01\x05\x12\x04\x85\x01\x02\x08\n\r\n\x05\x04\x07\x02\x01\x01\x12\x04\x85\x01\t\x10\n\r\n\x05\x04\x07\x02\x01\x03\x12\x04\x85\x01\x13\x14\n#\n\x04\x04\x07\x02\x02\x12\x04\x87\x01\x02\x12\x1a\x15 Tool/function name.\n\n\r\n\x05\x04\x07\x02\x02\x05\x12\x04\x87\x01\x02\x08\n\r\n\x05\x04\x07\x02\x02\x01\x12\x04\x87\x01\t\r\n\r\n\x05\x04\x07\x02\x02\x03\x12\x04\x87\x01\x10\x11\n&\n\x04\x04\x07\x02\x03\x12\x04\x89\x01\x02A\x1a\x18 Parsed tool arguments.\n\n\r\n\x05\x04\x07\x02\x03\x06\x12\x04\x89\x01\x02\x0b\n\r\n\x05\x04\x07\x02\x03\x01\x12\x04\x89\x01\x0c\x15\n\r\n\x05\x04\x07\x02\x03\x03\x12\x04\x89\x01\x18\x19\n\r\n\x05\x04\x07\x02\x03\x08\x12\x04\x89\x01\x1a@\n\x10\n\x08\x04\x07\x02\x03\x08\x87\t\x19\x12\x04\x89\x01\x1b?\n;\n\x04\x04\x07\x02\x04\x12\x04\x8b\x01\x02#\x1a- Provider fields without portable semantics.\n\n\r\n\x05\x04\x07\x02\x04\x06\x12\x04\x8b\x01\x02\x18\n\r\n\x05\x04\x07\x02\x04\x01\x12\x04\x8b\x01\x19\x1e\n\r\n\x05\x04\x07\x02\x04\x03\x12\x04\x8b\x01!\"\nY\n\x02\x04\x08\x12\x06\x8f\x01\x00\x98\x01\x01\x1aK Portable top-level provider tool-result item with an open result payload.\n\n\x0b\n\x03\x04\x08\x01\x12\x04\x8f\x01\x08\x16\n*\n\x04\x04\x08\x02\x00\x12\x04\x91\x01\x02\x19\x1a\x1c Optional provider item ID.\n\n\r\n\x05\x04\x08\x02\x00\x04\x12\x04\x91\x01\x02\n\n\r\n\x05\x04\x08\x02\x00\x05\x12\x04\x91\x01\x0b\x11\n\r\n\x05\x04\x08\x02\x00\x01\x12\x04\x91\x01\x12\x14\n\r\n\x05\x04\x08\x02\x00\x03\x12\x04\x91\x01\x17\x18\n>\n\x04\x04\x08\x02\x01\x12\x04\x93\x01\x02\x15\x1a0 Provider call ID used to correlate the result.\n\n\r\n\x05\x04\x08\x02\x01\x05\x12\x04\x93\x01\x02\x08\n\r\n\x05\x04\x08\x02\x01\x01\x12\x04\x93\x01\t\x10\n\r\n\x05\x04\x08\x02\x01\x03\x12\x04\x93\x01\x13\x14\n(\n\x04\x04\x08\x02\x02\x12\x04\x95\x01\x02>\x1a\x1a Provider result payload.\n\n\r\n\x05\x04\x08\x02\x02\x06\x12\x04\x95\x01\x02\x0b\n\r\n\x05\x04\x08\x02\x02\x01\x12\x04\x95\x01\x0c\x12\n\r\n\x05\x04\x08\x02\x02\x03\x12\x04\x95\x01\x15\x16\n\r\n\x05\x04\x08\x02\x02\x08\x12\x04\x95\x01\x17=\n\x10\n\x08\x04\x08\x02\x02\x08\x87\t\x19\x12\x04\x95\x01\x18<\n;\n\x04\x04\x08\x02\x03\x12\x04\x97\x01\x02#\x1a- Provider fields without portable semantics.\n\n\r\n\x05\x04\x08\x02\x03\x06\x12\x04\x97\x01\x02\x18\n\r\n\x05\x04\x08\x02\x03\x01\x12\x04\x97\x01\x19\x1e\n\r\n\x05\x04\x08\x02\x03\x03\x12\x04\x97\x01!\"\n`\n\x02\x04\t\x12\x06\x9b\x01\x00\xa4\x01\x01\x1aR Selects plain text or a multimodal parts list, including explicit empty content.\n\n\x0b\n\x03\x04\t\x01\x12\x04\x9b\x01\x08\x16\n^\n\x04\x04\t\x08\x00\x12\x06\x9d\x01\x02\xa3\x01\x03\x1aN Exactly one recognized alternative is required when this message is present.\n\n\r\n\x05\x04\t\x08\x00\x01\x12\x04\x9d\x01\x08\x0f\n\r\n\x05\x04\t\x08\x00\x02\x12\x04\x9e\x01\x040\n\x10\n\x08\x04\t\x08\x00\x02\x87\t\x01\x12\x04\x9e\x01\x040\n^\n\x04\x04\t\x02\x00\x12\x04\xa0\x01\x04\x14\x1aP Plain text content; an explicitly empty string still selects this alternative.\n\n\r\n\x05\x04\t\x02\x00\x05\x12\x04\xa0\x01\x04\n\n\r\n\x05\x04\t\x02\x00\x01\x12\x04\xa0\x01\x0b\x0f\n\r\n\x05\x04\t\x02\x00\x03\x12\x04\xa0\x01\x12\x13\nj\n\x04\x04\t\x02\x01\x12\x04\xa2\x01\x04\x1e\x1a\\ Ordered multimodal parts; a present empty list differs from an absent content alternative.\n\n\r\n\x05\x04\t\x02\x01\x06\x12\x04\xa2\x01\x04\x13\n\r\n\x05\x04\t\x02\x01\x01\x12\x04\xa2\x01\x14\x19\n\r\n\x05\x04\t\x02\x01\x03\x12\x04\xa2\x01\x1c\x1d\n]\n\x02\x04\n\x12\x06\xa7\x01\x00\xaa\x01\x01\x1aO Ordered multimodal content; a present empty list remains an explicit variant.\n\n\x0b\n\x03\x04\n\x01\x12\x04\xa7\x01\x08\x17\nc\n\x04\x04\n\x02\x00\x12\x04\xa9\x01\x02\"\x1aU Ordered elements; a present empty wrapper preserves an explicitly empty collection.\n\n\r\n\x05\x04\n\x02\x00\x04\x12\x04\xa9\x01\x02\n\n\r\n\x05\x04\n\x02\x00\x06\x12\x04\xa9\x01\x0b\x16\n\r\n\x05\x04\n\x02\x00\x01\x12\x04\xa9\x01\x17\x1d\n\r\n\x05\x04\n\x02\x00\x03\x12\x04\xa9\x01 !\nW\n\x02\x04\x0b\x12\x06\xad\x01\x00\xc4\x01\x01\x1aI Selects a normalized content block or a lossless provider-native block.\n\n\x0b\n\x03\x04\x0b\x01\x12\x04\xad\x01\x08\x13\n^\n\x04\x04\x0b\x08\x00\x12\x06\xaf\x01\x02\xc3\x01\x03\x1aN Exactly one recognized alternative is required when this message is present.\n\n\r\n\x05\x04\x0b\x08\x00\x01\x12\x04\xaf\x01\x08\x0c\n\r\n\x05\x04\x0b\x08\x00\x02\x12\x04\xb0\x01\x040\n\x10\n\x08\x04\x0b\x08\x00\x02\x87\t\x01\x12\x04\xb0\x01\x040\n!\n\x04\x04\x0b\x02\x00\x12\x04\xb2\x01\x04\x1d\x1a\x13 The text content.\n\n\r\n\x05\x04\x0b\x02\x00\x06\x12\x04\xb2\x01\x04\x13\n\r\n\x05\x04\x0b\x02\x00\x01\x12\x04\xb2\x01\x14\x18\n\r\n\x05\x04\x0b\x02\x00\x03\x12\x04\xb2\x01\x1b\x1c\n\"\n\x04\x04\x0b\x02\x01\x12\x04\xb4\x01\x04&\x1a\x14 Image URL payload.\n\n\r\n\x05\x04\x0b\x02\x01\x06\x12\x04\xb4\x01\x04\x17\n\r\n\x05\x04\x0b\x02\x01\x01\x12\x04\xb4\x01\x18!\n\r\n\x05\x04\x0b\x02\x01\x03\x12\x04\xb4\x01$%\n3\n\x04\x04\x0b\x02\x02\x12\x04\xb6\x01\x04\x1e\x1a% Provider-neutral image data object.\n\n\r\n\x05\x04\x0b\x02\x02\x06\x12\x04\xb6\x01\x04\x13\n\r\n\x05\x04\x0b\x02\x02\x01\x12\x04\xb6\x01\x14\x19\n\r\n\x05\x04\x0b\x02\x02\x03\x12\x04\xb6\x01\x1c\x1d\n3\n\x04\x04\x0b\x02\x03\x12\x04\xb8\x01\x04\x1e\x1a% Provider-neutral audio data object.\n\n\r\n\x05\x04\x0b\x02\x03\x06\x12\x04\xb8\x01\x04\x13\n\r\n\x05\x04\x0b\x02\x03\x01\x12\x04\xb8\x01\x14\x19\n\r\n\x05\x04\x0b\x02\x03\x03\x12\x04\xb8\x01\x1c\x1d\n2\n\x04\x04\x0b\x02\x04\x12\x04\xba\x01\x04\x1d\x1a$ Provider-neutral file data object.\n\n\r\n\x05\x04\x0b\x02\x04\x06\x12\x04\xba\x01\x04\x13\n\r\n\x05\x04\x0b\x02\x04\x01\x12\x04\xba\x01\x14\x18\n\r\n\x05\x04\x0b\x02\x04\x03\x12\x04\xba\x01\x1b\x1c\n\x1d\n\x04\x04\x0b\x02\x05\x12\x04\xbc\x01\x04 \x1a\x0f Refusal text.\n\n\r\n\x05\x04\x0b\x02\x05\x06\x12\x04\xbc\x01\x04\x13\n\r\n\x05\x04\x0b\x02\x05\x01\x12\x04\xbc\x01\x14\x1b\n\r\n\x05\x04\x0b\x02\x05\x03\x12\x04\xbc\x01\x1e\x1f\nB\n\x04\x04\x0b\x02\x06\x12\x04\xbe\x01\x04$\x1a4 Tool invocation embedded in a content-block array.\n\n\r\n\x05\x04\x0b\x02\x06\x06\x12\x04\xbe\x01\x04\x16\n\r\n\x05\x04\x0b\x02\x06\x01\x12\x04\xbe\x01\x17\x1f\n\r\n\x05\x04\x0b\x02\x06\x03\x12\x04\xbe\x01\"#\nG\n\x04\x04\x0b\x02\x07\x12\x04\xc0\x01\x04*\x1a9 Tool result embedded in a provider content-block array.\n\n\r\n\x05\x04\x0b\x02\x07\x06\x12\x04\xc0\x01\x04\x19\n\r\n\x05\x04\x0b\x02\x07\x01\x12\x04\xc0\x01\x1a%\n\r\n\x05\x04\x0b\x02\x07\x03\x12\x04\xc0\x01()\nk\n\x04\x04\x0b\x02\x08\x12\x04\xc2\x01\x040\x1a] Provider-owned component preserved with its provider, native discriminator, and JSON value.\n\n\r\n\x05\x04\x0b\x02\x08\x06\x12\x04\xc2\x01\x04\x1b\n\r\n\x05\x04\x0b\x02\x08\x01\x12\x04\xc2\x01\x1c+\n\r\n\x05\x04\x0b\x02\x08\x03\x12\x04\xc2\x01./\nP\n\x02\x04\x0c\x12\x06\xc7\x01\x00\xcc\x01\x01\x1aB Text or refusal content with provider-specific extension fields.\n\n\x0b\n\x03\x04\x0c\x01\x12\x04\xc7\x01\x08\x17\n]\n\x04\x04\x0c\x02\x00\x12\x04\xc9\x01\x02\x12\x1aO Text or refusal content, according to the enclosing content-part alternative.\n\n\r\n\x05\x04\x0c\x02\x00\x05\x12\x04\xc9\x01\x02\x08\n\r\n\x05\x04\x0c\x02\x00\x01\x12\x04\xc9\x01\t\r\n\r\n\x05\x04\x0c\x02\x00\x03\x12\x04\xc9\x01\x10\x11\n;\n\x04\x04\x0c\x02\x01\x12\x04\xcb\x01\x02#\x1a- Provider fields without portable semantics.\n\n\r\n\x05\x04\x0c\x02\x01\x06\x12\x04\xcb\x01\x02\x18\n\r\n\x05\x04\x0c\x02\x01\x01\x12\x04\xcb\x01\x19\x1e\n\r\n\x05\x04\x0c\x02\x01\x03\x12\x04\xcb\x01!\"\nR\n\x02\x04\r\x12\x06\xcf\x01\x00\xd4\x01\x01\x1aD Image URL input with portable URL options and provider extensions.\n\n\x0b\n\x03\x04\r\x01\x12\x04\xcf\x01\x08\x1b\n\"\n\x04\x04\r\x02\x00\x12\x04\xd1\x01\x02@\x1a\x14 Image URL payload.\n\n\r\n\x05\x04\r\x02\x00\x06\x12\x04\xd1\x01\x02\n\n\r\n\x05\x04\r\x02\x00\x01\x12\x04\xd1\x01\x0b\x14\n\r\n\x05\x04\r\x02\x00\x03\x12\x04\xd1\x01\x17\x18\n\r\n\x05\x04\r\x02\x00\x08\x12\x04\xd1\x01\x19?\n\x10\n\x08\x04\r\x02\x00\x08\x87\t\x19\x12\x04\xd1\x01\x1a>\n;\n\x04\x04\r\x02\x01\x12\x04\xd3\x01\x02#\x1a- Provider fields without portable semantics.\n\n\r\n\x05\x04\r\x02\x01\x06\x12\x04\xd3\x01\x02\x18\n\r\n\x05\x04\r\x02\x01\x01\x12\x04\xd3\x01\x19\x1e\n\r\n\x05\x04\r\x02\x01\x03\x12\x04\xd3\x01!\"\nT\n\x02\x04\x0e\x12\x06\xd7\x01\x00\xdc\x01\x01\x1aF Provider-neutral image/audio/file payload with open provider fields.\n\n\x0b\n\x03\x04\x0e\x01\x12\x04\xd7\x01\x08\x17\nf\n\x04\x04\x0e\x02\x00\x12\x04\xd9\x01\x02=\x1aX Provider-neutral image, audio, or file JSON payload selected by the enclosing variant.\n\n\r\n\x05\x04\x0e\x02\x00\x06\x12\x04\xd9\x01\x02\x0b\n\r\n\x05\x04\x0e\x02\x00\x01\x12\x04\xd9\x01\x0c\x11\n\r\n\x05\x04\x0e\x02\x00\x03\x12\x04\xd9\x01\x14\x15\n\r\n\x05\x04\x0e\x02\x00\x08\x12\x04\xd9\x01\x16<\n\x10\n\x08\x04\x0e\x02\x00\x08\x87\t\x19\x12\x04\xd9\x01\x17;\n;\n\x04\x04\x0e\x02\x01\x12\x04\xdb\x01\x02#\x1a- Provider fields without portable semantics.\n\n\r\n\x05\x04\x0e\x02\x01\x06\x12\x04\xdb\x01\x02\x18\n\r\n\x05\x04\x0e\x02\x01\x01\x12\x04\xdb\x01\x19\x1e\n\r\n\x05\x04\x0e\x02\x01\x03\x12\x04\xdb\x01!\"\nK\n\x02\x04\x0f\x12\x06\xdf\x01\x00\xe8\x01\x01\x1a= Tool invocation embedded in a provider content-block array.\n\n\x0b\n\x03\x04\x0f\x01\x12\x04\xdf\x01\x08\x1a\n%\n\x04\x04\x0f\x02\x00\x12\x04\xe1\x01\x02\x10\x1a\x17 Tool call identifier.\n\n\r\n\x05\x04\x0f\x02\x00\x05\x12\x04\xe1\x01\x02\x08\n\r\n\x05\x04\x0f\x02\x00\x01\x12\x04\xe1\x01\t\x0b\n\r\n\x05\x04\x0f\x02\x00\x03\x12\x04\xe1\x01\x0e\x0f\n\x1a\n\x04\x04\x0f\x02\x01\x12\x04\xe3\x01\x02\x12\x1a\x0c Tool name.\n\n\r\n\x05\x04\x0f\x02\x01\x05\x12\x04\xe3\x01\x02\x08\n\r\n\x05\x04\x0f\x02\x01\x01\x12\x04\xe3\x01\t\r\n\r\n\x05\x04\x0f\x02\x01\x03\x12\x04\xe3\x01\x10\x11\n!\n\x04\x04\x0f\x02\x02\x12\x04\xe5\x01\x02=\x1a\x13 Parsed arguments.\n\n\r\n\x05\x04\x0f\x02\x02\x06\x12\x04\xe5\x01\x02\x0b\n\r\n\x05\x04\x0f\x02\x02\x01\x12\x04\xe5\x01\x0c\x11\n\r\n\x05\x04\x0f\x02\x02\x03\x12\x04\xe5\x01\x14\x15\n\r\n\x05\x04\x0f\x02\x02\x08\x12\x04\xe5\x01\x16<\n\x10\n\x08\x04\x0f\x02\x02\x08\x87\t\x19\x12\x04\xe5\x01\x17;\n;\n\x04\x04\x0f\x02\x03\x12\x04\xe7\x01\x02#\x1a- Provider fields without portable semantics.\n\n\r\n\x05\x04\x0f\x02\x03\x06\x12\x04\xe7\x01\x02\x18\n\r\n\x05\x04\x0f\x02\x03\x01\x12\x04\xe7\x01\x19\x1e\n\r\n\x05\x04\x0f\x02\x03\x03\x12\x04\xe7\x01!\"\nG\n\x02\x04\x10\x12\x06\xeb\x01\x00\xf4\x01\x01\x1a9 Tool result embedded in a provider content-block array.\n\n\x0b\n\x03\x04\x10\x01\x12\x04\xeb\x01\x08\x1d\n%\n\x04\x04\x10\x02\x00\x12\x04\xed\x01\x02\x19\x1a\x17 Tool call identifier.\n\n\r\n\x05\x04\x10\x02\x00\x05\x12\x04\xed\x01\x02\x08\n\r\n\x05\x04\x10\x02\x00\x01\x12\x04\xed\x01\t\x14\n\r\n\x05\x04\x10\x02\x00\x03\x12\x04\xed\x01\x17\x18\n$\n\x04\x04\x10\x02\x01\x12\x04\xef\x01\x02?\x1a\x16 Tool result payload.\n\n\r\n\x05\x04\x10\x02\x01\x06\x12\x04\xef\x01\x02\x0b\n\r\n\x05\x04\x10\x02\x01\x01\x12\x04\xef\x01\x0c\x13\n\r\n\x05\x04\x10\x02\x01\x03\x12\x04\xef\x01\x16\x17\n\r\n\x05\x04\x10\x02\x01\x08\x12\x04\xef\x01\x18>\n\x10\n\x08\x04\x10\x02\x01\x08\x87\t\x19\x12\x04\xef\x01\x19=\n(\n\x04\x04\x10\x02\x02\x12\x04\xf1\x01\x02\x1d\x1a\x1a Whether the tool failed.\n\n\r\n\x05\x04\x10\x02\x02\x04\x12\x04\xf1\x01\x02\n\n\r\n\x05\x04\x10\x02\x02\x05\x12\x04\xf1\x01\x0b\x0f\n\r\n\x05\x04\x10\x02\x02\x01\x12\x04\xf1\x01\x10\x18\n\r\n\x05\x04\x10\x02\x02\x03\x12\x04\xf1\x01\x1b\x1c\n;\n\x04\x04\x10\x02\x03\x12\x04\xf3\x01\x02#\x1a- Provider fields without portable semantics.\n\n\r\n\x05\x04\x10\x02\x03\x06\x12\x04\xf3\x01\x02\x18\n\r\n\x05\x04\x10\x02\x03\x01\x12\x04\xf3\x01\x19\x1e\n\r\n\x05\x04\x10\x02\x03\x03\x12\x04\xf3\x01!\"\nB\n\x02\x04\x11\x12\x06\xf7\x01\x00\xfc\x01\x01\x1a4 Image URL and optional provider detail preference.\n\n\x0b\n\x03\x04\x11\x01\x12\x04\xf7\x01\x08\x10\n\"\n\x04\x04\x11\x02\x00\x12\x04\xf9\x01\x02\x11\x1a\x14 URL for the image.\n\n\r\n\x05\x04\x11\x02\x00\x05\x12\x04\xf9\x01\x02\x08\n\r\n\x05\x04\x11\x02\x00\x01\x12\x04\xf9\x01\t\x0c\n\r\n\x05\x04\x11\x02\x00\x03\x12\x04\xf9\x01\x0f\x10\n7\n\x04\x04\x11\x02\x01\x12\x04\xfb\x01\x02\x1d\x1a) Optional provider-specific detail hint.\n\n\r\n\x05\x04\x11\x02\x01\x04\x12\x04\xfb\x01\x02\n\n\r\n\x05\x04\x11\x02\x01\x05\x12\x04\xfb\x01\x0b\x11\n\r\n\x05\x04\x11\x02\x01\x01\x12\x04\xfb\x01\x12\x18\n\r\n\x05\x04\x11\x02\x01\x03\x12\x04\xfb\x01\x1b\x1c\n^\n\x02\x04\x12\x12\x06\xff\x01\x00\x86\x02\x01\x1aP Normalized request-side tool call; argument text remains provider-issued text.\n\n\x0b\n\x03\x04\x12\x01\x12\x04\xff\x01\x08\x10\n5\n\x04\x04\x12\x02\x00\x12\x04\x81\x02\x02\x10\x1a\' Unique identifier for this tool call.\n\n\r\n\x05\x04\x12\x02\x00\x05\x12\x04\x81\x02\x02\x08\n\r\n\x05\x04\x12\x02\x00\x01\x12\x04\x81\x02\t\x0b\n\r\n\x05\x04\x12\x02\x00\x03\x12\x04\x81\x02\x0e\x0f\n?\n\x04\x04\x12\x02\x01\x12\x04\x83\x02\x02\x17\x1a1 The type of tool call (typically `\"function\"`).\n\n\r\n\x05\x04\x12\x02\x01\x05\x12\x04\x83\x02\x02\x08\n\r\n\x05\x04\x12\x02\x01\x01\x12\x04\x83\x02\t\x12\n\r\n\x05\x04\x12\x02\x01\x03\x12\x04\x83\x02\x15\x16\n%\n\x04\x04\x12\x02\x02\x12\x04\x85\x02\x02C\x1a\x17 The function to call.\n\n\r\n\x05\x04\x12\x02\x02\x06\x12\x04\x85\x02\x02\x0e\n\r\n\x05\x04\x12\x02\x02\x01\x12\x04\x85\x02\x0f\x17\n\r\n\x05\x04\x12\x02\x02\x03\x12\x04\x85\x02\x1a\x1b\n\r\n\x05\x04\x12\x02\x02\x08\x12\x04\x85\x02\x1cB\n\x10\n\x08\x04\x12\x02\x02\x08\x87\t\x19\x12\x04\x85\x02\x1dA\n[\n\x02\x04\x13\x12\x06\x89\x02\x00\x8c\x02\x01\x1aM Presence-bearing tool-call list, preserving absent versus explicitly empty.\n\n\x0b\n\x03\x04\x13\x01\x12\x04\x89\x02\x08\x14\nc\n\x04\x04\x13\x02\x00\x12\x04\x8b\x02\x02\x1f\x1aU Ordered elements; a present empty wrapper preserves an explicitly empty collection.\n\n\r\n\x05\x04\x13\x02\x00\x04\x12\x04\x8b\x02\x02\n\n\r\n\x05\x04\x13\x02\x00\x06\x12\x04\x8b\x02\x0b\x13\n\r\n\x05\x04\x13\x02\x00\x01\x12\x04\x8b\x02\x14\x1a\n\r\n\x05\x04\x13\x02\x00\x03\x12\x04\x8b\x02\x1d\x1e\nZ\n\x02\x04\x14\x12\x06\x8f\x02\x00\x94\x02\x01\x1aL Function name and original argument text, which need not be complete JSON.\n\n\x0b\n\x03\x04\x14\x01\x12\x04\x8f\x02\x08\x14\n1\n\x04\x04\x14\x02\x00\x12\x04\x91\x02\x02\x12\x1a# The name of the function to call.\n\n\r\n\x05\x04\x14\x02\x00\x05\x12\x04\x91\x02\x02\x08\n\r\n\x05\x04\x14\x02\x00\x01\x12\x04\x91\x02\t\r\n\r\n\x05\x04\x14\x02\x00\x03\x12\x04\x91\x02\x10\x11\nT\n\x04\x04\x14\x02\x01\x12\x04\x93\x02\x02\x17\x1aF Provider-issued argument text, which may be partial or invalid JSON.\n\n\r\n\x05\x04\x14\x02\x01\x05\x12\x04\x93\x02\x02\x08\n\r\n\x05\x04\x14\x02\x01\x01\x12\x04\x93\x02\t\x12\n\r\n\x05\x04\x14\x02\x01\x03\x12\x04\x93\x02\x15\x16\na\n\x02\x04\x15\x12\x06\x97\x02\x00\x9a\x02\x01\x1aS Presence-bearing tool-definition list, preserving absent versus explicitly empty.\n\n\x0b\n\x03\x04\x15\x01\x12\x04\x97\x02\x08\x1a\nc\n\x04\x04\x15\x02\x00\x12\x04\x99\x02\x02%\x1aU Ordered elements; a present empty wrapper preserves an explicitly empty collection.\n\n\r\n\x05\x04\x15\x02\x00\x04\x12\x04\x99\x02\x02\n\n\r\n\x05\x04\x15\x02\x00\x06\x12\x04\x99\x02\x0b\x19\n\r\n\x05\x04\x15\x02\x00\x01\x12\x04\x99\x02\x1a \n\r\n\x05\x04\x15\x02\x00\x03\x12\x04\x99\x02#$\n^\n\x02\x04\x16\x12\x06\x9d\x02\x00\xa6\x02\x01\x1aP Selects a normalized function definition or a provider-native tool definition.\n\n\x0b\n\x03\x04\x16\x01\x12\x04\x9d\x02\x08\x16\n^\n\x04\x04\x16\x08\x00\x12\x06\x9f\x02\x02\xa5\x02\x03\x1aN Exactly one recognized alternative is required when this message is present.\n\n\r\n\x05\x04\x16\x08\x00\x01\x12\x04\x9f\x02\x08\x12\n\r\n\x05\x04\x16\x08\x00\x02\x12\x04\xa0\x02\x040\n\x10\n\x08\x04\x16\x08\x00\x02\x87\t\x01\x12\x04\xa0\x02\x040\n(\n\x04\x04\x16\x02\x00\x12\x04\xa2\x02\x04(\x1a\x1a The function definition.\n\n\r\n\x05\x04\x16\x02\x00\x06\x12\x04\xa2\x02\x04\x1a\n\r\n\x05\x04\x16\x02\x00\x01\x12\x04\xa2\x02\x1b#\n\r\n\x05\x04\x16\x02\x00\x03\x12\x04\xa2\x02&\'\nk\n\x04\x04\x16\x02\x01\x12\x04\xa4\x02\x040\x1a] Provider-owned component preserved with its provider, native discriminator, and JSON value.\n\n\r\n\x05\x04\x16\x02\x01\x06\x12\x04\xa4\x02\x04\x1b\n\r\n\x05\x04\x16\x02\x01\x01\x12\x04\xa4\x02\x1c+\n\r\n\x05\x04\x16\x02\x01\x03\x12\x04\xa4\x02./\n^\n\x02\x04\x17\x12\x06\xa9\x02\x00\xae\x02\x01\x1aP Function tool definition plus provider fields outside the normalized function.\n\n\x0b\n\x03\x04\x17\x01\x12\x04\xa9\x02\x08\x1e\n(\n\x04\x04\x17\x02\x00\x12\x04\xab\x02\x02I\x1a\x1a The function definition.\n\n\r\n\x05\x04\x17\x02\x00\x06\x12\x04\xab\x02\x02\x14\n\r\n\x05\x04\x17\x02\x00\x01\x12\x04\xab\x02\x15\x1d\n\r\n\x05\x04\x17\x02\x00\x03\x12\x04\xab\x02 !\n\r\n\x05\x04\x17\x02\x00\x08\x12\x04\xab\x02\"H\n\x10\n\x08\x04\x17\x02\x00\x08\x87\t\x19\x12\x04\xab\x02#G\n=\n\x04\x04\x17\x02\x01\x12\x04\xad\x02\x02#\x1a/ Provider fields on the function-tool wrapper.\n\n\r\n\x05\x04\x17\x02\x01\x06\x12\x04\xad\x02\x02\x18\n\r\n\x05\x04\x17\x02\x01\x01\x12\x04\xad\x02\x19\x1e\n\r\n\x05\x04\x17\x02\x01\x03\x12\x04\xad\x02!\"\n`\n\x02\x04\x18\x12\x06\xb1\x02\x00\xbc\x02\x01\x1aR Function name, optional description and JSON Schema, strictness, and extensions.\n\n\x0b\n\x03\x04\x18\x01\x12\x04\xb1\x02\x08\x1a\n)\n\x04\x04\x18\x02\x00\x12\x04\xb3\x02\x02\x12\x1a\x1b The name of the function.\n\n\r\n\x05\x04\x18\x02\x00\x05\x12\x04\xb3\x02\x02\x08\n\r\n\x05\x04\x18\x02\x00\x01\x12\x04\xb3\x02\t\r\n\r\n\x05\x04\x18\x02\x00\x03\x12\x04\xb3\x02\x10\x11\n8\n\x04\x04\x18\x02\x01\x12\x04\xb5\x02\x02\"\x1a* A description of what the function does.\n\n\r\n\x05\x04\x18\x02\x01\x04\x12\x04\xb5\x02\x02\n\n\r\n\x05\x04\x18\x02\x01\x05\x12\x04\xb5\x02\x0b\x11\n\r\n\x05\x04\x18\x02\x01\x01\x12\x04\xb5\x02\x12\x1d\n\r\n\x05\x04\x18\x02\x01\x03\x12\x04\xb5\x02 !\n<\n\x04\x04\x18\x02\x02\x12\x04\xb7\x02\x02\x1b\x1a. The JSON Schema for the function parameters.\n\n\r\n\x05\x04\x18\x02\x02\x06\x12\x04\xb7\x02\x02\x0b\n\r\n\x05\x04\x18\x02\x02\x01\x12\x04\xb7\x02\x0c\x16\n\r\n\x05\x04\x18\x02\x02\x03\x12\x04\xb7\x02\x19\x1a\nR\n\x04\x04\x18\x02\x03\x12\x04\xb9\x02\x02\x1b\x1aD Whether the provider should enforce the parameter schema strictly.\n\n\r\n\x05\x04\x18\x02\x03\x04\x12\x04\xb9\x02\x02\n\n\r\n\x05\x04\x18\x02\x03\x05\x12\x04\xb9\x02\x0b\x0f\n\r\n\x05\x04\x18\x02\x03\x01\x12\x04\xb9\x02\x10\x16\n\r\n\x05\x04\x18\x02\x03\x03\x12\x04\xb9\x02\x19\x1a\n;\n\x04\x04\x18\x02\x04\x12\x04\xbb\x02\x02#\x1a- Provider fields without portable semantics.\n\n\r\n\x05\x04\x18\x02\x04\x06\x12\x04\xbb\x02\x02\x18\n\r\n\x05\x04\x18\x02\x04\x01\x12\x04\xbb\x02\x19\x1e\n\r\n\x05\x04\x18\x02\x04\x03\x12\x04\xbb\x02!\"\na\n\x02\x04\x19\x12\x06\xbf\x02\x00\xce\x02\x01\x1aS Explicit automatic, disabled, required, named, or provider-native tool selection.\n\n\x0b\n\x03\x04\x19\x01\x12\x04\xbf\x02\x08\x12\n^\n\x04\x04\x19\x08\x00\x12\x06\xc1\x02\x02\xcd\x02\x03\x1aN Exactly one recognized alternative is required when this message is present.\n\n\r\n\x05\x04\x19\x08\x00\x01\x12\x04\xc1\x02\x08\x0e\n\r\n\x05\x04\x19\x08\x00\x02\x12\x04\xc2\x02\x040\n\x10\n\x08\x04\x19\x08\x00\x02\x87\t\x01\x12\x04\xc2\x02\x040\nB\n\x04\x04\x19\x02\x00\x12\x04\xc4\x02\x04#\x1a4 Allows the provider to select tools automatically.\n\n\r\n\x05\x04\x19\x02\x00\x06\x12\x04\xc4\x02\x04\x19\n\r\n\x05\x04\x19\x02\x00\x01\x12\x04\xc4\x02\x1a\x1e\n\r\n\x05\x04\x19\x02\x00\x03\x12\x04\xc4\x02!\"\n_\n\x04\x04\x19\x02\x01\x12\x04\xc6\x02\x04#\x1aQ Explicitly selects no tool or no codec, according to the enclosing alternative.\n\n\r\n\x05\x04\x19\x02\x01\x06\x12\x04\xc6\x02\x04\x19\n\r\n\x05\x04\x19\x02\x01\x01\x12\x04\xc6\x02\x1a\x1e\n\r\n\x05\x04\x19\x02\x01\x03\x12\x04\xc6\x02!\"\nI\n\x04\x04\x19\x02\x02\x12\x04\xc8\x02\x04\'\x1a; Requires tool selection without naming a particular tool.\n\n\r\n\x05\x04\x19\x02\x02\x06\x12\x04\xc8\x02\x04\x19\n\r\n\x05\x04\x19\x02\x02\x01\x12\x04\xc8\x02\x1a\"\n\r\n\x05\x04\x19\x02\x02\x03\x12\x04\xc8\x02%&\nX\n\x04\x04\x19\x02\x03\x12\x04\xca\x02\x04$\x1aJ Selects a particular function using its provider discriminator and name.\n\n\r\n\x05\x04\x19\x02\x03\x06\x12\x04\xca\x02\x04\x16\n\r\n\x05\x04\x19\x02\x03\x01\x12\x04\xca\x02\x17\x1f\n\r\n\x05\x04\x19\x02\x03\x03\x12\x04\xca\x02\"#\nk\n\x04\x04\x19\x02\x04\x12\x04\xcc\x02\x040\x1a] Provider-owned component preserved with its provider, native discriminator, and JSON value.\n\n\r\n\x05\x04\x19\x02\x04\x06\x12\x04\xcc\x02\x04\x1b\n\r\n\x05\x04\x19\x02\x04\x01\x12\x04\xcc\x02\x1c+\n\r\n\x05\x04\x19\x02\x04\x03\x12\x04\xcc\x02./\nZ\n\x02\x04\x1a\x12\x06\xd1\x02\x00\xd6\x02\x01\x1aL Provider function-choice discriminator and the selected function identity.\n\n\x0b\n\x03\x04\x1a\x01\x12\x04\xd1\x02\x08\x1a\n2\n\x04\x04\x1a\x02\x00\x12\x04\xd3\x02\x02\x19\x1a$ The type (typically `\"function\"`).\n\n\r\n\x05\x04\x1a\x02\x00\x05\x12\x04\xd3\x02\x02\x08\n\r\n\x05\x04\x1a\x02\x00\x01\x12\x04\xd3\x02\t\x14\n\r\n\x05\x04\x1a\x02\x00\x03\x12\x04\xd3\x02\x17\x18\n%\n\x04\x04\x1a\x02\x01\x12\x04\xd5\x02\x02M\x1a\x17 The function to call.\n\n\r\n\x05\x04\x1a\x02\x01\x06\x12\x04\xd5\x02\x02\x18\n\r\n\x05\x04\x1a\x02\x01\x01\x12\x04\xd5\x02\x19!\n\r\n\x05\x04\x1a\x02\x01\x03\x12\x04\xd5\x02$%\n\r\n\x05\x04\x1a\x02\x01\x08\x12\x04\xd5\x02&L\n\x10\n\x08\x04\x1a\x02\x01\x08\x87\t\x19\x12\x04\xd5\x02\'K\nP\n\x02\x04\x1b\x12\x06\xd9\x02\x00\xdc\x02\x01\x1aB Identifies the function selected by a specific tool-choice rule.\n\n\x0b\n\x03\x04\x1b\x01\x12\x04\xd9\x02\x08\x1e\n\"\n\x04\x04\x1b\x02\x00\x12\x04\xdb\x02\x02\x12\x1a\x14 The function name.\n\n\r\n\x05\x04\x1b\x02\x00\x05\x12\x04\xdb\x02\x02\x08\n\r\n\x05\x04\x1b\x02\x00\x01\x12\x04\xdb\x02\t\r\n\r\n\x05\x04\x1b\x02\x00\x03\x12\x04\xdb\x02\x10\x11\n\\\n\x02\x04\x1c\x12\x06\xdf\x02\x00\xe6\x02\x01\x1aN Preserves provider-owned content with its provider and native discriminator.\n\n\x0b\n\x03\x04\x1c\x01\x12\x04\xdf\x02\x08\x1f\n5\n\x04\x04\x1c\x02\x00\x12\x04\xe1\x02\x02C\x1a\' Provider surface that owns the value.\n\n\r\n\x05\x04\x1c\x02\x00\x05\x12\x04\xe1\x02\x02\x08\n\r\n\x05\x04\x1c\x02\x00\x01\x12\x04\xe1\x02\t\x11\n\r\n\x05\x04\x1c\x02\x00\x03\x12\x04\xe1\x02\x14\x15\n\r\n\x05\x04\x1c\x02\x00\x08\x12\x04\xe1\x02\x16B\n\x10\n\x08\x04\x1c\x02\x00\x08\x87\t\x0e\x12\x04\xe1\x02\x17A\n?\n\x04\x04\x1c\x02\x01\x12\x04\xe3\x02\x02?\x1a1 Native discriminator or a descriptive fallback.\n\n\r\n\x05\x04\x1c\x02\x01\x05\x12\x04\xe3\x02\x02\x08\n\r\n\x05\x04\x1c\x02\x01\x01\x12\x04\xe3\x02\t\r\n\r\n\x05\x04\x1c\x02\x01\x03\x12\x04\xe3\x02\x10\x11\n\r\n\x05\x04\x1c\x02\x01\x08\x12\x04\xe3\x02\x12>\n\x10\n\x08\x04\x1c\x02\x01\x08\x87\t\x0e\x12\x04\xe3\x02\x13=\n*\n\x04\x04\x1c\x02\x02\x12\x04\xe5\x02\x02=\x1a\x1c Exact provider JSON value.\n\n\r\n\x05\x04\x1c\x02\x02\x06\x12\x04\xe5\x02\x02\x0b\n\r\n\x05\x04\x1c\x02\x02\x01\x12\x04\xe5\x02\x0c\x11\n\r\n\x05\x04\x1c\x02\x02\x03\x12\x04\xe5\x02\x14\x15\n\r\n\x05\x04\x1c\x02\x02\x08\x12\x04\xe5\x02\x16<\n\x10\n\x08\x04\x1c\x02\x02\x08\x87\t\x19\x12\x04\xe5\x02\x17;\n^\n\x02\x04\x1d\x12\x06\xe9\x02\x00\xf2\x02\x01\x1aP Portable generation controls with presence preserved for every optional value.\n\n\x0b\n\x03\x04\x1d\x01\x12\x04\xe9\x02\x08\x18\n%\n\x04\x04\x1d\x02\x00\x12\x04\xeb\x02\x02N\x1a\x17 Sampling temperature.\n\n\r\n\x05\x04\x1d\x02\x00\x04\x12\x04\xeb\x02\x02\n\n\r\n\x05\x04\x1d\x02\x00\x05\x12\x04\xeb\x02\x0b\x11\n\r\n\x05\x04\x1d\x02\x00\x01\x12\x04\xeb\x02\x12\x1d\n\r\n\x05\x04\x1d\x02\x00\x03\x12\x04\xeb\x02 !\n\r\n\x05\x04\x1d\x02\x00\x08\x12\x04\xeb\x02\"M\n\x11\n\t\x04\x1d\x02\x00\x08\x87\t\x02\x08\x12\x04\xeb\x02#L\n5\n\x04\x04\x1d\x02\x01\x12\x04\xed\x02\x02!\x1a\' Maximum number of tokens to generate.\n\n\r\n\x05\x04\x1d\x02\x01\x04\x12\x04\xed\x02\x02\n\n\r\n\x05\x04\x1d\x02\x01\x05\x12\x04\xed\x02\x0b\x11\n\r\n\x05\x04\x1d\x02\x01\x01\x12\x04\xed\x02\x12\x1c\n\r\n\x05\x04\x1d\x02\x01\x03\x12\x04\xed\x02\x1f \n-\n\x04\x04\x1d\x02\x02\x12\x04\xef\x02\x02H\x1a\x1f Nucleus sampling probability.\n\n\r\n\x05\x04\x1d\x02\x02\x04\x12\x04\xef\x02\x02\n\n\r\n\x05\x04\x1d\x02\x02\x05\x12\x04\xef\x02\x0b\x11\n\r\n\x05\x04\x1d\x02\x02\x01\x12\x04\xef\x02\x12\x17\n\r\n\x05\x04\x1d\x02\x02\x03\x12\x04\xef\x02\x1a\x1b\n\r\n\x05\x04\x1d\x02\x02\x08\x12\x04\xef\x02\x1cG\n\x11\n\t\x04\x1d\x02\x02\x08\x87\t\x02\x08\x12\x04\xef\x02\x1dF\n\x1f\n\x04\x04\x1d\x02\x03\x12\x04\xf1\x02\x02\x16\x1a\x11 Stop sequences.\n\n\r\n\x05\x04\x1d\x02\x03\x06\x12\x04\xf1\x02\x02\x0c\n\r\n\x05\x04\x1d\x02\x03\x01\x12\x04\xf1\x02\r\x11\n\r\n\x05\x04\x1d\x02\x03\x03\x12\x04\xf1\x02\x14\x15\nY\n\x02\x04\x1e\x12\x06\xf5\x02\x00\x89\x03\x01\x1aK Normalized completed response, usage, pricing, and optimization evidence.\n\n\x0b\n\x03\x04\x1e\x01\x12\x04\xf5\x02\x08\x1c\n`\n\x04\x04\x1e\x02\x00\x12\x04\xf7\x02\x02\x19\x1aR Response ID from the API (e.g., \"chatcmpl-abc123\", \"resp_abc123\", \"msg_abc123\").\n\n\r\n\x05\x04\x1e\x02\x00\x04\x12\x04\xf7\x02\x02\n\n\r\n\x05\x04\x1e\x02\x00\x05\x12\x04\xf7\x02\x0b\x11\n\r\n\x05\x04\x1e\x02\x00\x01\x12\x04\xf7\x02\x12\x14\n\r\n\x05\x04\x1e\x02\x00\x03\x12\x04\xf7\x02\x17\x18\n]\n\x04\x04\x1e\x02\x01\x12\x04\xf9\x02\x02\x1c\x1aO The model that actually served the request (may differ from requested model).\n\n\r\n\x05\x04\x1e\x02\x01\x04\x12\x04\xf9\x02\x02\n\n\r\n\x05\x04\x1e\x02\x01\x05\x12\x04\xf9\x02\x0b\x11\n\r\n\x05\x04\x1e\x02\x01\x01\x12\x04\xf9\x02\x12\x17\n\r\n\x05\x04\x1e\x02\x01\x03\x12\x04\xf9\x02\x1a\x1b\n^\n\x04\x04\x1e\x02\x02\x12\x04\xfb\x02\x02\x1d\x1aP The assistant\'s response content, reusing `MessageContent` from request types.\n\n\r\n\x05\x04\x1e\x02\x02\x06\x12\x04\xfb\x02\x02\x10\n\r\n\x05\x04\x1e\x02\x02\x01\x12\x04\xfb\x02\x11\x18\n\r\n\x05\x04\x1e\x02\x02\x03\x12\x04\xfb\x02\x1b\x1c\n\xb4\x01\n\x04\x04\x1e\x02\x03\x12\x04\xfe\x02\x02&\x1a\xa5\x01 Tool calls requested by the model, normalized across APIs. Uses `ResponseToolCall` (arguments\n as `Json`) NOT the request-side `ToolCall` (arguments as `String`).\n\n\r\n\x05\x04\x1e\x02\x03\x06\x12\x04\xfe\x02\x02\x16\n\r\n\x05\x04\x1e\x02\x03\x01\x12\x04\xfe\x02\x17!\n\r\n\x05\x04\x1e\x02\x03\x03\x12\x04\xfe\x02$%\n?\n\x04\x04\x1e\x02\x04\x12\x04\x80\x03\x02!\x1a1 Why generation stopped, normalized across APIs.\n\n\r\n\x05\x04\x1e\x02\x04\x06\x12\x04\x80\x03\x02\x0e\n\r\n\x05\x04\x1e\x02\x04\x01\x12\x04\x80\x03\x0f\x1c\n\r\n\x05\x04\x1e\x02\x04\x03\x12\x04\x80\x03\x1f \n\'\n\x04\x04\x1e\x02\x05\x12\x04\x82\x03\x02\x12\x1a\x19 Token usage statistics.\n\n\r\n\x05\x04\x1e\x02\x05\x06\x12\x04\x82\x03\x02\x07\n\r\n\x05\x04\x1e\x02\x05\x01\x12\x04\x82\x03\x08\r\n\r\n\x05\x04\x1e\x02\x05\x03\x12\x04\x82\x03\x10\x11\nV\n\x04\x04\x1e\x02\x06\x12\x04\x84\x03\x022\x1aH Plugin-neutral optimization accounting computed by Relay at LLM close.\n\n\r\n\x05\x04\x1e\x02\x06\x06\x12\x04\x84\x03\x02\x18\n\r\n\x05\x04\x1e\x02\x06\x01\x12\x04\x84\x03\x19-\n\r\n\x05\x04\x1e\x02\x06\x03\x12\x04\x84\x0301\nV\n\x04\x04\x1e\x02\x07\x12\x04\x86\x03\x02\x1d\x1aH API-specific response data that cannot be normalized across providers.\n\n\r\n\x05\x04\x1e\x02\x07\x06\x12\x04\x86\x03\x02\x0b\n\r\n\x05\x04\x1e\x02\x07\x01\x12\x04\x86\x03\x0c\x18\n\r\n\x05\x04\x1e\x02\x07\x03\x12\x04\x86\x03\x1b\x1c\nW\n\x04\x04\x1e\x02\x08\x12\x04\x88\x03\x02#\x1aI Catch-all for unmodeled top-level fields, ensuring lossless round-trip.\n\n\r\n\x05\x04\x1e\x02\x08\x06\x12\x04\x88\x03\x02\x18\n\r\n\x05\x04\x1e\x02\x08\x01\x12\x04\x88\x03\x19\x1e\n\r\n\x05\x04\x1e\x02\x08\x03\x12\x04\x88\x03!\"\n?\n\x02\x04\x1f\x12\x06\x8c\x03\x00\x8f\x03\x01\x1a1 Presence-bearing completed-response tool calls.\n\n\x0b\n\x03\x04\x1f\x01\x12\x04\x8c\x03\x08\x1c\nc\n\x04\x04\x1f\x02\x00\x12\x04\x8e\x03\x02\'\x1aU Ordered elements; a present empty wrapper preserves an explicitly empty collection.\n\n\r\n\x05\x04\x1f\x02\x00\x04\x12\x04\x8e\x03\x02\n\n\r\n\x05\x04\x1f\x02\x00\x06\x12\x04\x8e\x03\x0b\x1b\n\r\n\x05\x04\x1f\x02\x00\x01\x12\x04\x8e\x03\x1c\"\n\r\n\x05\x04\x1f\x02\x00\x03\x12\x04\x8e\x03%&\nH\n\x02\x04 \x12\x06\x92\x03\x00\x99\x03\x01\x1a: Completed-response tool call with parsed JSON arguments.\n\n\x0b\n\x03\x04 \x01\x12\x04\x92\x03\x08\x18\n5\n\x04\x04 \x02\x00\x12\x04\x94\x03\x02\x10\x1a\' Unique identifier for this tool call.\n\n\r\n\x05\x04 \x02\x00\x05\x12\x04\x94\x03\x02\x08\n\r\n\x05\x04 \x02\x00\x01\x12\x04\x94\x03\t\x0b\n\r\n\x05\x04 \x02\x00\x03\x12\x04\x94\x03\x0e\x0f\n\'\n\x04\x04 \x02\x01\x12\x04\x96\x03\x02\x12\x1a\x19 The function/tool name.\n\n\r\n\x05\x04 \x02\x01\x05\x12\x04\x96\x03\x02\x08\n\r\n\x05\x04 \x02\x01\x01\x12\x04\x96\x03\t\r\n\r\n\x05\x04 \x02\x01\x03\x12\x04\x96\x03\x10\x11\n<\n\x04\x04 \x02\x02\x12\x04\x98\x03\x02A\x1a. The arguments as parsed JSON (not a string).\n\n\r\n\x05\x04 \x02\x02\x06\x12\x04\x98\x03\x02\x0b\n\r\n\x05\x04 \x02\x02\x01\x12\x04\x98\x03\x0c\x15\n\r\n\x05\x04 \x02\x02\x03\x12\x04\x98\x03\x18\x19\n\r\n\x05\x04 \x02\x02\x08\x12\x04\x98\x03\x1a@\n\x10\n\x08\x04 \x02\x02\x08\x87\t\x19\x12\x04\x98\x03\x1b?\n`\n\x02\x04!\x12\x06\x9c\x03\x00\xab\x03\x01\x1aR Normalized completion reason with an explicit lossless unknown-name alternative.\n\n\x0b\n\x03\x04!\x01\x12\x04\x9c\x03\x08\x14\n^\n\x04\x04!\x08\x00\x12\x06\x9e\x03\x02\xaa\x03\x03\x1aN Exactly one recognized alternative is required when this message is present.\n\n\r\n\x05\x04!\x08\x00\x01\x12\x04\x9e\x03\x08\x0e\n\r\n\x05\x04!\x08\x00\x02\x12\x04\x9f\x03\x040\n\x10\n\x08\x04!\x08\x00\x02\x87\t\x01\x12\x04\x9f\x03\x040\n;\n\x04\x04!\x02\x00\x12\x04\xa1\x03\x04\'\x1a- The provider completed generation normally.\n\n\r\n\x05\x04!\x02\x00\x06\x12\x04\xa1\x03\x04\x19\n\r\n\x05\x04!\x02\x00\x01\x12\x04\xa1\x03\x1a\"\n\r\n\x05\x04!\x02\x00\x03\x12\x04\xa1\x03%&\nS\n\x04\x04!\x02\x01\x12\x04\xa3\x03\x04%\x1aE The provider stopped because a generation length limit was reached.\n\n\r\n\x05\x04!\x02\x01\x06\x12\x04\xa3\x03\x04\x19\n\r\n\x05\x04!\x02\x01\x01\x12\x04\xa3\x03\x1a \n\r\n\x05\x04!\x02\x01\x03\x12\x04\xa3\x03#$\nD\n\x04\x04!\x02\x02\x12\x04\xa5\x03\x04\'\x1a6 The provider stopped generation to request tool use.\n\n\r\n\x05\x04!\x02\x02\x06\x12\x04\xa5\x03\x04\x19\n\r\n\x05\x04!\x02\x02\x01\x12\x04\xa5\x03\x1a\"\n\r\n\x05\x04!\x02\x02\x03\x12\x04\xa5\x03%&\nB\n\x04\x04!\x02\x03\x12\x04\xa7\x03\x04-\x1a4 The provider stopped because of content filtering.\n\n\r\n\x05\x04!\x02\x03\x06\x12\x04\xa7\x03\x04\x19\n\r\n\x05\x04!\x02\x03\x01\x12\x04\xa7\x03\x1a(\n\r\n\x05\x04!\x02\x03\x03\x12\x04\xa7\x03+,\nY\n\x04\x04!\x02\x04\x12\x04\xa9\x03\x04\x17\x1aK Provider finish reason not represented by a known normalized alternative.\n\n\r\n\x05\x04!\x02\x04\x05\x12\x04\xa9\x03\x04\n\n\r\n\x05\x04!\x02\x04\x01\x12\x04\xa9\x03\x0b\x12\n\r\n\x05\x04!\x02\x04\x03\x12\x04\xa9\x03\x15\x16\nX\n\x02\x04\"\x12\x06\xae\x03\x00\xc2\x03\x01\x1aJ Optional provider token counts and cost; absent counts never imply zero.\n\n\x0b\n\x03\x04\"\x01\x12\x04\xae\x03\x08\r\n4\n\x04\x04\"\x02\x00\x12\x04\xb0\x03\x02$\x1a& Tokens consumed by the prompt/input.\n\n\r\n\x05\x04\"\x02\x00\x04\x12\x04\xb0\x03\x02\n\n\r\n\x05\x04\"\x02\x00\x05\x12\x04\xb0\x03\x0b\x11\n\r\n\x05\x04\"\x02\x00\x01\x12\x04\xb0\x03\x12\x1f\n\r\n\x05\x04\"\x02\x00\x03\x12\x04\xb0\x03\"#\n:\n\x04\x04\"\x02\x01\x12\x04\xb2\x03\x02(\x1a, Tokens generated in the completion/output.\n\n\r\n\x05\x04\"\x02\x01\x04\x12\x04\xb2\x03\x02\n\n\r\n\x05\x04\"\x02\x01\x05\x12\x04\xb2\x03\x0b\x11\n\r\n\x05\x04\"\x02\x01\x01\x12\x04\xb2\x03\x12#\n\r\n\x05\x04\"\x02\x01\x03\x12\x04\xb2\x03&\'\n3\n\x04\x04\"\x02\x02\x12\x04\xb4\x03\x02#\x1a% Total tokens (prompt + completion).\n\n\r\n\x05\x04\"\x02\x02\x04\x12\x04\xb4\x03\x02\n\n\r\n\x05\x04\"\x02\x02\x05\x12\x04\xb4\x03\x0b\x11\n\r\n\x05\x04\"\x02\x02\x01\x12\x04\xb4\x03\x12\x1e\n\r\n\x05\x04\"\x02\x02\x03\x12\x04\xb4\x03!\"\n7\n\x04\x04\"\x02\x03\x12\x04\xb6\x03\x02(\x1a) Tokens served from prompt cache (read).\n\n\r\n\x05\x04\"\x02\x03\x04\x12\x04\xb6\x03\x02\n\n\r\n\x05\x04\"\x02\x03\x05\x12\x04\xb6\x03\x0b\x11\n\r\n\x05\x04\"\x02\x03\x01\x12\x04\xb6\x03\x12#\n\r\n\x05\x04\"\x02\x03\x03\x12\x04\xb6\x03&\'\ne\n\x04\x04\"\x02\x04\x12\x04\xb8\x03\x02=\x1aW Legacy aggregate prompt-cache write count; use cache_write_token_counts when present.\n\n\r\n\x05\x04\"\x02\x04\x04\x12\x04\xb8\x03\x02\n\n\r\n\x05\x04\"\x02\x04\x05\x12\x04\xb8\x03\x0b\x11\n\r\n\x05\x04\"\x02\x04\x01\x12\x04\xb8\x03\x12$\n\r\n\x05\x04\"\x02\x04\x03\x12\x04\xb8\x03\'(\n\r\n\x05\x04\"\x02\x04\x08\x12\x04\xb8\x03)<\n\x0e\n\x06\x04\"\x02\x04\x08\x03\x12\x04\xb8\x03*;\nQ\n\x04\x04\"\x02\x05\x12\x04\xba\x03\x02@\x1aC Legacy one-hour subset of the aggregate prompt-cache write count.\n\n\r\n\x05\x04\"\x02\x05\x04\x12\x04\xba\x03\x02\n\n\r\n\x05\x04\"\x02\x05\x05\x12\x04\xba\x03\x0b\x11\n\r\n\x05\x04\"\x02\x05\x01\x12\x04\xba\x03\x12\'\n\r\n\x05\x04\"\x02\x05\x03\x12\x04\xba\x03*+\n\r\n\x05\x04\"\x02\x05\x08\x12\x04\xba\x03,?\n\x0e\n\x06\x04\"\x02\x05\x08\x03\x12\x04\xba\x03->\n\xc3\x01\n\x04\x04\"\x02\x06\x12\x04\xbd\x03\x02,\x1a\xb4\x01 Input tokens neither read from nor written to the provider\'s prompt cache. Include this\n value only when the provider\'s usage rules define this split. Absence does not mean zero.\n\n\r\n\x05\x04\"\x02\x06\x04\x12\x04\xbd\x03\x02\n\n\r\n\x05\x04\"\x02\x06\x05\x12\x04\xbd\x03\x0b\x11\n\r\n\x05\x04\"\x02\x06\x01\x12\x04\xbd\x03\x12\'\n\r\n\x05\x04\"\x02\x06\x03\x12\x04\xbd\x03*+\n^\n\x04\x04\"\x02\x07\x12\x04\xbf\x03\x02\x18\x1aP Optional cost reported by provider data or estimated from Relay model pricing.\n\n\r\n\x05\x04\"\x02\x07\x06\x12\x04\xbf\x03\x02\x0e\n\r\n\x05\x04\"\x02\x07\x01\x12\x04\xbf\x03\x0f\x13\n\r\n\x05\x04\"\x02\x07\x03\x12\x04\xbf\x03\x16\x17\ng\n\x04\x04\"\x02\x08\x12\x04\xc1\x03\x029\x1aY Ordered duration-aware cache writes; presence overrides both legacy cache-write fields.\n\n\r\n\x05\x04\"\x02\x08\x06\x12\x04\xc1\x03\x02\x1b\n\r\n\x05\x04\"\x02\x08\x01\x12\x04\xc1\x03\x1c4\n\r\n\x05\x04\"\x02\x08\x03\x12\x04\xc1\x0378\nJ\n\x02\x04#\x12\x06\xc5\x03\x00\xc8\x03\x01\x1a< Presence-bearing duration-aware prompt-cache write counts.\n\n\x0b\n\x03\x04#\x01\x12\x04\xc5\x03\x08!\nb\n\x04\x04#\x02\x00\x12\x04\xc7\x03\x02,\x1aT Ordered entries; a present empty wrapper preserves an explicitly empty collection.\n\n\r\n\x05\x04#\x02\x00\x04\x12\x04\xc7\x03\x02\n\n\r\n\x05\x04#\x02\x00\x06\x12\x04\xc7\x03\x0b \n\r\n\x05\x04#\x02\x00\x01\x12\x04\xc7\x03!\'\n\r\n\x05\x04#\x02\x00\x03\x12\x04\xc7\x03*+\nJ\n\x02\x04$\x12\x06\xcb\x03\x00\xd0\x03\x01\x1a< Prompt-cache write tokens retained for one cache duration.\n\n\x0b\n\x03\x04$\x01\x12\x04\xcb\x03\x08\x1d\n]\n\x04\x04$\x02\x00\x12\x04\xcd\x03\x02C\x1aO Tokens written for this duration; explicit zero is valid, but absence is not.\n\n\r\n\x05\x04$\x02\x00\x04\x12\x04\xcd\x03\x02\n\n\r\n\x05\x04$\x02\x00\x05\x12\x04\xcd\x03\x0b\x11\n\r\n\x05\x04$\x02\x00\x01\x12\x04\xcd\x03\x12\x17\n\r\n\x05\x04$\x02\x00\x03\x12\x04\xcd\x03\x1a\x1b\n\r\n\x05\x04$\x02\x00\x08\x12\x04\xcd\x03\x1cB\n\x10\n\x08\x04$\x02\x00\x08\x87\t\x19\x12\x04\xcd\x03\x1dA\nW\n\x04\x04$\x02\x01\x12\x04\xcf\x03\x02\x1f\x1aI Cache duration in seconds, absent when the provider does not report it.\n\n\r\n\x05\x04$\x02\x01\x04\x12\x04\xcf\x03\x02\n\n\r\n\x05\x04$\x02\x01\x05\x12\x04\xcf\x03\x0b\x11\n\r\n\x05\x04$\x02\x01\x01\x12\x04\xcf\x03\x12\x1a\n\r\n\x05\x04$\x02\x01\x03\x12\x04\xcf\x03\x1d\x1e\n[\n\x02\x05\x00\x12\x06\xd3\x03\x00\xda\x03\x01\x1aM Origin of a cost value, separating pricing estimates from provider reports.\n\n\x0b\n\x03\x05\x00\x01\x12\x04\xd3\x03\x05\x0f\nZ\n\x04\x05\x00\x02\x00\x12\x04\xd5\x03\x02\x1e\x1aL No value supplied; invalid where this contract requires an explicit value.\n\n\r\n\x05\x05\x00\x02\x00\x01\x12\x04\xd5\x03\x02\x19\n\r\n\x05\x05\x00\x02\x00\x02\x12\x04\xd5\x03\x1c\x1d\nE\n\x04\x05\x00\x02\x01\x12\x04\xd7\x03\x02 \x1a7 Cost was estimated using the model-pricing catalogue.\n\n\r\n\x05\x05\x00\x02\x01\x01\x12\x04\xd7\x03\x02\x1b\n\r\n\x05\x05\x00\x02\x01\x02\x12\x04\xd7\x03\x1e\x1f\nH\n\x04\x05\x00\x02\x02\x12\x04\xd9\x03\x02$\x1a: Cost was reported by the upstream provider or framework.\n\n\r\n\x05\x05\x00\x02\x02\x01\x12\x04\xd9\x03\x02\x1f\n\r\n\x05\x05\x00\x02\x02\x02\x12\x04\xd9\x03\"#\nd\n\x02\x04%\x12\x06\xdd\x03\x00\xf7\x03\x01\x1aV Normalized monetary cost with provenance for estimates and provider-reported values.\n\n\x0b\n\x03\x04%\x01\x12\x04\xdd\x03\x08\x14\n)\n\x04\x04%\x02\x00\x12\x04\xdf\x03\x02H\x1a\x1b Total cost in `currency`.\n\n\r\n\x05\x04%\x02\x00\x04\x12\x04\xdf\x03\x02\n\n\r\n\x05\x04%\x02\x00\x05\x12\x04\xdf\x03\x0b\x11\n\r\n\x05\x04%\x02\x00\x01\x12\x04\xdf\x03\x12\x17\n\r\n\x05\x04%\x02\x00\x03\x12\x04\xdf\x03\x1a\x1b\n\r\n\x05\x04%\x02\x00\x08\x12\x04\xdf\x03\x1cG\n\x11\n\t\x04%\x02\x00\x08\x87\t\x02\x08\x12\x04\xdf\x03\x1dF\n;\n\x04\x04%\x02\x01\x12\x04\xe1\x03\x02\x16\x1a- ISO 4217 currency code for the cost fields.\n\n\r\n\x05\x04%\x02\x01\x05\x12\x04\xe1\x03\x02\x08\n\r\n\x05\x04%\x02\x01\x01\x12\x04\xe1\x03\t\x11\n\r\n\x05\x04%\x02\x01\x03\x12\x04\xe1\x03\x14\x15\n?\n\x04\x04%\x02\x02\x12\x04\xe3\x03\x02H\x1a1 Uncached prompt/input token cost in `currency`.\n\n\r\n\x05\x04%\x02\x02\x04\x12\x04\xe3\x03\x02\n\n\r\n\x05\x04%\x02\x02\x05\x12\x04\xe3\x03\x0b\x11\n\r\n\x05\x04%\x02\x02\x01\x12\x04\xe3\x03\x12\x17\n\r\n\x05\x04%\x02\x02\x03\x12\x04\xe3\x03\x1a\x1b\n\r\n\x05\x04%\x02\x02\x08\x12\x04\xe3\x03\x1cG\n\x11\n\t\x04%\x02\x02\x08\x87\t\x02\x08\x12\x04\xe3\x03\x1dF\n;\n\x04\x04%\x02\x03\x12\x04\xe5\x03\x02I\x1a- Completion/output token cost in `currency`.\n\n\r\n\x05\x04%\x02\x03\x04\x12\x04\xe5\x03\x02\n\n\r\n\x05\x04%\x02\x03\x05\x12\x04\xe5\x03\x0b\x11\n\r\n\x05\x04%\x02\x03\x01\x12\x04\xe5\x03\x12\x18\n\r\n\x05\x04%\x02\x03\x03\x12\x04\xe5\x03\x1b\x1c\n\r\n\x05\x04%\x02\x03\x08\x12\x04\xe5\x03\x1dH\n\x11\n\t\x04%\x02\x03\x08\x87\t\x02\x08\x12\x04\xe5\x03\x1eG\n5\n\x04\x04%\x02\x04\x12\x04\xe7\x03\x02M\x1a\' Prompt cache read cost in `currency`.\n\n\r\n\x05\x04%\x02\x04\x04\x12\x04\xe7\x03\x02\n\n\r\n\x05\x04%\x02\x04\x05\x12\x04\xe7\x03\x0b\x11\n\r\n\x05\x04%\x02\x04\x01\x12\x04\xe7\x03\x12\x1c\n\r\n\x05\x04%\x02\x04\x03\x12\x04\xe7\x03\x1f \n\r\n\x05\x04%\x02\x04\x08\x12\x04\xe7\x03!L\n\x11\n\t\x04%\x02\x04\x08\x87\t\x02\x08\x12\x04\xe7\x03\"K\n6\n\x04\x04%\x02\x05\x12\x04\xe9\x03\x02N\x1a( Prompt cache write cost in `currency`.\n\n\r\n\x05\x04%\x02\x05\x04\x12\x04\xe9\x03\x02\n\n\r\n\x05\x04%\x02\x05\x05\x12\x04\xe9\x03\x0b\x11\n\r\n\x05\x04%\x02\x05\x01\x12\x04\xe9\x03\x12\x1d\n\r\n\x05\x04%\x02\x05\x03\x12\x04\xe9\x03 !\n\r\n\x05\x04%\x02\x05\x08\x12\x04\xe9\x03\"M\n\x11\n\t\x04%\x02\x05\x08\x87\t\x02\x08\x12\x04\xe9\x03#L\n,\n\x04\x04%\x02\x06\x12\x06\xeb\x03\x02\xee\x03\x05\x1a\x1c Origin of this cost value.\n\n\r\n\x05\x04%\x02\x06\x06\x12\x04\xeb\x03\x02\x0c\n\r\n\x05\x04%\x02\x06\x01\x12\x04\xeb\x03\r\x13\n\r\n\x05\x04%\x02\x06\x03\x12\x04\xeb\x03\x16\x17\n\x0f\n\x05\x04%\x02\x06\x08\x12\x06\xeb\x03\x18\xee\x03\x04\n\x12\n\x08\x04%\x02\x06\x08\x87\t\x10\x12\x06\xeb\x03\x19\xee\x03\x03\nP\n\x04\x04%\x02\x07\x12\x04\xf0\x03\x02\'\x1aB Provider associated with the cost or pricing estimate, if known.\n\n\r\n\x05\x04%\x02\x07\x04\x12\x04\xf0\x03\x02\n\n\r\n\x05\x04%\x02\x07\x05\x12\x04\xf0\x03\x0b\x11\n\r\n\x05\x04%\x02\x07\x01\x12\x04\xf0\x03\x12\"\n\r\n\x05\x04%\x02\x07\x03\x12\x04\xf0\x03%&\nP\n\x04\x04%\x02\x08\x12\x04\xf2\x03\x02$\x1aB Model ID associated with the cost or pricing estimate, if known.\n\n\r\n\x05\x04%\x02\x08\x04\x12\x04\xf2\x03\x02\n\n\r\n\x05\x04%\x02\x08\x05\x12\x04\xf2\x03\x0b\x11\n\r\n\x05\x04%\x02\x08\x01\x12\x04\xf2\x03\x12\x1f\n\r\n\x05\x04%\x02\x08\x03\x12\x04\xf2\x03\"#\nC\n\x04\x04%\x02\t\x12\x04\xf4\x03\x02%\x1a5 Date the pricing value was last verified, if known.\n\n\r\n\x05\x04%\x02\t\x04\x12\x04\xf4\x03\x02\n\n\r\n\x05\x04%\x02\t\x05\x12\x04\xf4\x03\x0b\x11\n\r\n\x05\x04%\x02\t\x01\x12\x04\xf4\x03\x12\x1f\n\r\n\x05\x04%\x02\t\x03\x12\x04\xf4\x03\"$\nD\n\x04\x04%\x02\n\x12\x04\xf6\x03\x02&\x1a6 Source URL or label for the pricing value, if known.\n\n\r\n\x05\x04%\x02\n\x04\x12\x04\xf6\x03\x02\n\n\r\n\x05\x04%\x02\n\x05\x12\x04\xf6\x03\x0b\x11\n\r\n\x05\x04%\x02\n\x01\x12\x04\xf6\x03\x12 \n\r\n\x05\x04%\x02\n\x03\x12\x04\xf6\x03#%\nL\n\x02\x04&\x12\x06\xfa\x03\x00\xff\x03\x01\x1a> Model and optional provider used in optimization accounting.\n\n\x0b\n\x03\x04&\x01\x12\x04\xfa\x03\x08\x1c\nH\n\x04\x04&\x02\x00\x12\x04\xfc\x03\x02\x13\x1a: Model identifier understood by Relay\'s pricing resolver.\n\n\r\n\x05\x04&\x02\x00\x05\x12\x04\xfc\x03\x02\x08\n\r\n\x05\x04&\x02\x00\x01\x12\x04\xfc\x03\t\x0e\n\r\n\x05\x04&\x02\x00\x03\x12\x04\xfc\x03\x11\x12\n4\n\x04\x04&\x02\x01\x12\x04\xfe\x03\x02\x1f\x1a& Optional pricing-provider namespace.\n\n\r\n\x05\x04&\x02\x01\x04\x12\x04\xfe\x03\x02\n\n\r\n\x05\x04&\x02\x01\x05\x12\x04\xfe\x03\x0b\x11\n\r\n\x05\x04&\x02\x01\x01\x12\x04\xfe\x03\x12\x1a\n\r\n\x05\x04&\x02\x01\x03\x12\x04\xfe\x03\x1d\x1e\nU\n\x02\x04\'\x12\x06\x82\x04\x00\x87\x04\x01\x1aG Optional baseline and effective model identities for an optimization.\n\n\x0b\n\x03\x04\'\x01\x12\x04\x82\x04\x08&\nR\n\x04\x04\'\x02\x00\x12\x04\x84\x04\x02$\x1aD Counterfactual model that would otherwise have served the request.\n\n\r\n\x05\x04\'\x02\x00\x06\x12\x04\x84\x04\x02\x16\n\r\n\x05\x04\'\x02\x00\x01\x12\x04\x84\x04\x17\x1f\n\r\n\x05\x04\'\x02\x00\x03\x12\x04\x84\x04\"#\n3\n\x04\x04\'\x02\x01\x12\x04\x86\x04\x02%\x1a% Model selected by the optimization.\n\n\r\n\x05\x04\'\x02\x01\x06\x12\x04\x86\x04\x02\x16\n\r\n\x05\x04\'\x02\x01\x01\x12\x04\x86\x04\x17 \n\r\n\x05\x04\'\x02\x01\x03\x12\x04\x86\x04#$\n\\\n\x02\x04(\x12\x06\x8a\x04\x00\x95\x04\x01\x1aN Optional token evidence; missing categories remain unknown rather than zero.\n\n\x0b\n\x03\x04(\x01\x12\x04\x8a\x04\x08\x1d\n$\n\x04\x04(\x02\x00\x12\x04\x8c\x04\x02$\x1a\x16 Input/prompt tokens.\n\n\r\n\x05\x04(\x02\x00\x04\x12\x04\x8c\x04\x02\n\n\r\n\x05\x04(\x02\x00\x05\x12\x04\x8c\x04\x0b\x11\n\r\n\x05\x04(\x02\x00\x01\x12\x04\x8c\x04\x12\x1f\n\r\n\x05\x04(\x02\x00\x03\x12\x04\x8c\x04\"#\n)\n\x04\x04(\x02\x01\x12\x04\x8e\x04\x02(\x1a\x1b Output/completion tokens.\n\n\r\n\x05\x04(\x02\x01\x04\x12\x04\x8e\x04\x02\n\n\r\n\x05\x04(\x02\x01\x05\x12\x04\x8e\x04\x0b\x11\n\r\n\x05\x04(\x02\x01\x01\x12\x04\x8e\x04\x12#\n\r\n\x05\x04(\x02\x01\x03\x12\x04\x8e\x04&\'\n9\n\x04\x04(\x02\x02\x12\x04\x90\x04\x02(\x1a+ Tokens read from a provider prompt cache.\n\n\r\n\x05\x04(\x02\x02\x04\x12\x04\x90\x04\x02\n\n\r\n\x05\x04(\x02\x02\x05\x12\x04\x90\x04\x0b\x11\n\r\n\x05\x04(\x02\x02\x01\x12\x04\x90\x04\x12#\n\r\n\x05\x04(\x02\x02\x03\x12\x04\x90\x04&\'\n:\n\x04\x04(\x02\x03\x12\x04\x92\x04\x02)\x1a, Tokens written to a provider prompt cache.\n\n\r\n\x05\x04(\x02\x03\x04\x12\x04\x92\x04\x02\n\n\r\n\x05\x04(\x02\x03\x05\x12\x04\x92\x04\x0b\x11\n\r\n\x05\x04(\x02\x03\x01\x12\x04\x92\x04\x12$\n\r\n\x05\x04(\x02\x03\x03\x12\x04\x92\x04\'(\n;\n\x04\x04(\x02\x04\x12\x04\x94\x04\x02#\x1a- Total tokens when supplied by the producer.\n\n\r\n\x05\x04(\x02\x04\x04\x12\x04\x94\x04\x02\n\n\r\n\x05\x04(\x02\x04\x05\x12\x04\x94\x04\x0b\x11\n\r\n\x05\x04(\x02\x04\x01\x12\x04\x94\x04\x12\x1e\n\r\n\x05\x04(\x02\x04\x03\x12\x04\x94\x04!\"\nA\n\x02\x05\x01\x12\x06\x98\x04\x00\x9f\x04\x01\x1a3 Whether token evidence was observed or estimated.\n\n\x0b\n\x03\x05\x01\x01\x12\x04\x98\x04\x05#\nZ\n\x04\x05\x01\x02\x00\x12\x04\x9a\x04\x024\x1aL No value supplied; invalid where this contract requires an explicit value.\n\n\r\n\x05\x05\x01\x02\x00\x01\x12\x04\x9a\x04\x02/\n\r\n\x05\x05\x01\x02\x00\x02\x12\x04\x9a\x0423\n5\n\x04\x05\x01\x02\x01\x12\x04\x9c\x04\x021\x1a\' Token evidence was directly observed.\n\n\r\n\x05\x05\x01\x02\x01\x01\x12\x04\x9c\x04\x02,\n\r\n\x05\x05\x01\x02\x01\x02\x12\x04\x9c\x04/0\nG\n\x04\x05\x01\x02\x02\x12\x04\x9e\x04\x022\x1a9 Token evidence was estimated using the supplied method.\n\n\r\n\x05\x05\x01\x02\x02\x01\x12\x04\x9e\x04\x02-\n\r\n\x05\x05\x01\x02\x02\x02\x12\x04\x9e\x0401\nZ\n\x02\x04)\x12\x06\xa2\x04\x00\xb0\x04\x01\x1aL Baseline, effective, and saved token evidence with its quality and method.\n\n\x0b\n\x03\x04)\x01\x12\x04\xa2\x04\x08\"\n5\n\x04\x04)\x02\x00\x12\x04\xa4\x04\x02%\x1a\' Token counts before the optimization.\n\n\r\n\x05\x04)\x02\x00\x06\x12\x04\xa4\x04\x02\x17\n\r\n\x05\x04)\x02\x00\x01\x12\x04\xa4\x04\x18 \n\r\n\x05\x04)\x02\x00\x03\x12\x04\xa4\x04#$\n4\n\x04\x04)\x02\x01\x12\x04\xa6\x04\x02&\x1a& Token counts after the optimization.\n\n\r\n\x05\x04)\x02\x01\x06\x12\x04\xa6\x04\x02\x17\n\r\n\x05\x04)\x02\x01\x01\x12\x04\xa6\x04\x18!\n\r\n\x05\x04)\x02\x01\x03\x12\x04\xa6\x04$%\nE\n\x04\x04)\x02\x02\x12\x04\xa8\x04\x02\"\x1a7 Explicit reduction retained for downstream repricing.\n\n\r\n\x05\x04)\x02\x02\x06\x12\x04\xa8\x04\x02\x17\n\r\n\x05\x04)\x02\x02\x01\x12\x04\xa8\x04\x18\x1d\n\r\n\x05\x04)\x02\x02\x03\x12\x04\xa8\x04 !\n4\n\x04\x04)\x02\x03\x12\x06\xaa\x04\x02\xad\x04\x05\x1a$ Evidence quality for these counts.\n\n\r\n\x05\x04)\x02\x03\x04\x12\x04\xaa\x04\x02\n\n\r\n\x05\x04)\x02\x03\x06\x12\x04\xaa\x04\x0b)\n\r\n\x05\x04)\x02\x03\x01\x12\x04\xaa\x04*1\n\r\n\x05\x04)\x02\x03\x03\x12\x04\xaa\x0445\n\x0f\n\x05\x04)\x02\x03\x08\x12\x06\xaa\x046\xad\x04\x04\n\x12\n\x08\x04)\x02\x03\x08\x87\t\x10\x12\x06\xaa\x047\xad\x04\x03\n9\n\x04\x04)\x02\x04\x12\x04\xaf\x04\x02(\x1a+ Tokenizer, counter, or estimation method.\n\n\r\n\x05\x04)\x02\x04\x04\x12\x04\xaf\x04\x02\n\n\r\n\x05\x04)\x02\x04\x05\x12\x04\xaf\x04\x0b\x11\n\r\n\x05\x04)\x02\x04\x01\x12\x04\xaf\x04\x12#\n\r\n\x05\x04)\x02\x04\x03\x12\x04\xaf\x04&\'\nc\n\x02\x04*\x12\x06\xb3\x04\x00\xce\x04\x01\x1aU Plugin-neutral optimization evidence with an open kind and optional custom payload.\n\n\x0b\n\x03\x04*\x01\x12\x04\xb3\x04\x08#\n\r\n\x03\x04*\x07\x12\x06\xb4\x04\x02\xb8\x04\x04\n\x11\n\x07\x04*\x07\x87\t\x03\x00\x12\x06\xb4\x04\x02\xb8\x04\x04\nb\n\x04\x04*\x02\x00\x12\x04\xbb\x04\x02F\x1aT Relay-assigned contribution identifier. Producer values are replaced on ingestion.\n\n\r\n\x05\x04*\x02\x00\x04\x12\x04\xbb\x04\x02\n\n\r\n\x05\x04*\x02\x00\x05\x12\x04\xbb\x04\x0b\x11\n\r\n\x05\x04*\x02\x00\x01\x12\x04\xbb\x04\x12\x14\n\r\n\x05\x04*\x02\x00\x03\x12\x04\xbb\x04\x17\x18\n\r\n\x05\x04*\x02\x00\x08\x12\x04\xbb\x04\x19E\n\x10\n\x08\x04*\x02\x00\x08\x87\t\x0e\x12\x04\xbb\x04\x1aD\nd\n\x04\x04*\x02\x01\x12\x04\xbd\x04\x02\x1f\x1aV Relay-assigned order within the LLM call. Producer values are replaced on ingestion.\n\n\r\n\x05\x04*\x02\x01\x04\x12\x04\xbd\x04\x02\n\n\r\n\x05\x04*\x02\x01\x05\x12\x04\xbd\x04\x0b\x11\n\r\n\x05\x04*\x02\x01\x01\x12\x04\xbd\x04\x12\x1a\n\r\n\x05\x04*\x02\x01\x03\x12\x04\xbd\x04\x1d\x1e\n3\n\x04\x04*\x02\x02\x12\x04\xbf\x04\x02C\x1a% Stable producer or plugin identity.\n\n\r\n\x05\x04*\x02\x02\x05\x12\x04\xbf\x04\x02\x08\n\r\n\x05\x04*\x02\x02\x01\x12\x04\xbf\x04\t\x11\n\r\n\x05\x04*\x02\x02\x03\x12\x04\xbf\x04\x14\x15\n\r\n\x05\x04*\x02\x02\x08\x12\x04\xbf\x04\x16B\n\x10\n\x08\x04*\x02\x02\x08\x87\t\x0e\x12\x04\xbf\x04\x17A\nE\n\x04\x04*\x02\x03\x12\x04\xc1\x04\x02?\x1a7 Intentionally open to third-party optimization kinds.\n\n\r\n\x05\x04*\x02\x03\x05\x12\x04\xc1\x04\x02\x08\n\r\n\x05\x04*\x02\x03\x01\x12\x04\xc1\x04\t\r\n\r\n\x05\x04*\x02\x03\x03\x12\x04\xc1\x04\x10\x11\n\r\n\x05\x04*\x02\x03\x08\x12\x04\xc1\x04\x12>\n\x10\n\x08\x04*\x02\x03\x08\x87\t\x0e\x12\x04\xc1\x04\x13=\nD\n\x04\x04*\x02\x04\x12\x04\xc3\x04\x02\x13\x1a6 Whether the optimization affected the executed call.\n\n\r\n\x05\x04*\x02\x04\x05\x12\x04\xc3\x04\x02\x06\n\r\n\x05\x04*\x02\x04\x01\x12\x04\xc3\x04\x07\x0e\n\r\n\x05\x04*\x02\x04\x03\x12\x04\xc3\x04\x11\x12\n1\n\x04\x04*\x02\x05\x12\x04\xc5\x04\x026\x1a# Optional shared model transition.\n\n\r\n\x05\x04*\x02\x05\x06\x12\x04\xc5\x04\x02 \n\r\n\x05\x04*\x02\x05\x01\x12\x04\xc5\x04!1\n\r\n\x05\x04*\x02\x05\x03\x12\x04\xc5\x0445\n/\n\x04\x04*\x02\x06\x12\x04\xc7\x04\x02.\x1a! Optional shared token evidence.\n\n\r\n\x05\x04*\x02\x06\x06\x12\x04\xc7\x04\x02\x1c\n\r\n\x05\x04*\x02\x06\x01\x12\x04\xc7\x04\x1d)\n\r\n\x05\x04*\x02\x06\x03\x12\x04\xc7\x04,-\nL\n\x04\x04*\x02\x07\x12\x04\xc9\x04\x02 \x1a> Schema of `payload`; required whenever `payload` is present.\n\n\r\n\x05\x04*\x02\x07\x06\x12\x04\xc9\x04\x02\x0c\n\r\n\x05\x04*\x02\x07\x01\x12\x04\xc9\x04\r\x1b\n\r\n\x05\x04*\x02\x07\x03\x12\x04\xc9\x04\x1e\x1f\nK\n\x04\x04*\x02\x08\x12\x04\xcb\x04\x02\x18\x1a= Application-owned; when present payload_schema is required.\n\n\r\n\x05\x04*\x02\x08\x06\x12\x04\xcb\x04\x02\x0b\n\r\n\x05\x04*\x02\x08\x01\x12\x04\xcb\x04\x0c\x13\n\r\n\x05\x04*\x02\x08\x03\x12\x04\xcb\x04\x16\x17\n?\n\x04\x04*\x02\t\x12\x04\xcd\x04\x02$\x1a1 Unknown top-level fields from future producers.\n\n\r\n\x05\x04*\x02\t\x06\x12\x04\xcd\x04\x02\x18\n\r\n\x05\x04*\x02\t\x01\x12\x04\xcd\x04\x19\x1e\n\r\n\x05\x04*\x02\t\x03\x12\x04\xcd\x04!#\n[\n\x02\x05\x02\x12\x06\xd1\x04\x00\xd8\x04\x01\x1aM Whether optimization accounting is complete or limited by missing evidence.\n\n\x0b\n\x03\x05\x02\x01\x12\x04\xd1\x04\x05!\nZ\n\x04\x05\x02\x02\x00\x12\x04\xd3\x04\x022\x1aL No value supplied; invalid where this contract requires an explicit value.\n\n\r\n\x05\x05\x02\x02\x00\x01\x12\x04\xd3\x04\x02-\n\r\n\x05\x05\x02\x02\x00\x02\x12\x04\xd3\x0401\nK\n\x04\x05\x02\x02\x01\x12\x04\xd5\x04\x02/\x1a= All required evidence is available for complete accounting.\n\n\r\n\x05\x05\x02\x02\x01\x01\x12\x04\xd5\x04\x02*\n\r\n\x05\x05\x02\x02\x01\x02\x12\x04\xd5\x04-.\nH\n\x04\x05\x02\x02\x02\x12\x04\xd7\x04\x02.\x1a: Accounting has explicitly reported evidence limitations.\n\n\r\n\x05\x05\x02\x02\x02\x01\x12\x04\xd7\x04\x02)\n\r\n\x05\x05\x02\x02\x02\x02\x12\x04\xd7\x04,-\nU\n\x02\x04+\x12\x06\xdb\x04\x00\xfb\x04\x01\x1aG Host-computed optimization accounting at completed LLM scope closure.\n\n\x0b\n\x03\x04+\x01\x12\x04\xdb\x04\x08\x1e\nY\n\x04\x04+\x02\x00\x12\x04\xdd\x04\x02\x1c\x1aK Versions of the optimization report/calculation, not the worker protocol.\n\n\r\n\x05\x04+\x02\x00\x05\x12\x04\xdd\x04\x02\x08\n\r\n\x05\x04+\x02\x00\x01\x12\x04\xdd\x04\t\x17\n\r\n\x05\x04+\x02\x00\x03\x12\x04\xdd\x04\x1a\x1b\n2\n\x04\x04+\x02\x01\x12\x04\xdf\x04\x02!\x1a$ Arithmetic implementation version.\n\n\r\n\x05\x04+\x02\x01\x05\x12\x04\xdf\x04\x02\x08\n\r\n\x05\x04+\x02\x01\x01\x12\x04\xdf\x04\t\x1c\n\r\n\x05\x04+\x02\x01\x03\x12\x04\xdf\x04\x1f \n?\n\x04\x04+\x02\x02\x12\x06\xe1\x04\x02\xe4\x04\x05\x1a/ Whether all accounting inputs were available.\n\n\r\n\x05\x04+\x02\x02\x06\x12\x04\xe1\x04\x02\x1e\n\r\n\x05\x04+\x02\x02\x01\x12\x04\xe1\x04\x1f%\n\r\n\x05\x04+\x02\x02\x03\x12\x04\xe1\x04()\n\x0f\n\x05\x04+\x02\x02\x08\x12\x06\xe1\x04*\xe4\x04\x04\n\x12\n\x08\x04+\x02\x02\x08\x87\t\x10\x12\x06\xe1\x04+\xe4\x04\x03\n@\n\x04\x04+\x02\x03\x12\x04\xe6\x04\x02\"\x1a2 Machine-readable reasons for partial accounting.\n\n\r\n\x05\x04+\x02\x03\x04\x12\x04\xe6\x04\x02\n\n\r\n\x05\x04+\x02\x03\x05\x12\x04\xe6\x04\x0b\x11\n\r\n\x05\x04+\x02\x03\x01\x12\x04\xe6\x04\x12\x1d\n\r\n\x05\x04+\x02\x03\x03\x12\x04\xe6\x04 !\n?\n\x04\x04+\x02\x04\x12\x04\xe8\x04\x02*\x1a1 Counterfactual model used for baseline pricing.\n\n\r\n\x05\x04+\x02\x04\x06\x12\x04\xe8\x04\x02\x16\n\r\n\x05\x04+\x02\x04\x01\x12\x04\xe8\x04\x17%\n\r\n\x05\x04+\x02\x04\x03\x12\x04\xe8\x04()\nA\n\x04\x04+\x02\x05\x12\x04\xea\x04\x02+\x1a3 Model that actually served the terminal response.\n\n\r\n\x05\x04+\x02\x05\x06\x12\x04\xea\x04\x02\x16\n\r\n\x05\x04+\x02\x05\x01\x12\x04\xea\x04\x17&\n\r\n\x05\x04+\x02\x05\x03\x12\x04\xea\x04)*\n9\n\x04\x04+\x02\x06\x12\x04\xec\x04\x02\x1c\x1a+ Usage observed on the effective response.\n\n\r\n\x05\x04+\x02\x06\x06\x12\x04\xec\x04\x02\x07\n\r\n\x05\x04+\x02\x06\x01\x12\x04\xec\x04\x08\x17\n\r\n\x05\x04+\x02\x06\x03\x12\x04\xec\x04\x1a\x1b\nW\n\x04\x04+\x02\x07\x12\x04\xee\x04\x02\x1b\x1aI Counterfactual usage derived from observed usage plus explicit savings.\n\n\r\n\x05\x04+\x02\x07\x06\x12\x04\xee\x04\x02\x07\n\r\n\x05\x04+\x02\x07\x01\x12\x04\xee\x04\x08\x16\n\r\n\x05\x04+\x02\x07\x03\x12\x04\xee\x04\x19\x1a\nY\n\x04\x04+\x02\x08\x12\x04\xf0\x04\x02P\x1aK Explicit aggregate token reductions, retained independently from pricing.\n\n\r\n\x05\x04+\x02\x08\x06\x12\x04\xf0\x04\x02\x17\n\r\n\x05\x04+\x02\x08\x01\x12\x04\xf0\x04\x18$\n\r\n\x05\x04+\x02\x08\x03\x12\x04\xf0\x04\'(\n\r\n\x05\x04+\x02\x08\x08\x12\x04\xf0\x04)O\n\x10\n\x08\x04+\x02\x08\x08\x87\t\x19\x12\x04\xf0\x04*N\n8\n\x04\x04+\x02\t\x12\x04\xf2\x04\x02\"\x1a* Estimated cost for baseline model/usage.\n\n\r\n\x05\x04+\x02\t\x06\x12\x04\xf2\x04\x02\x0e\n\r\n\x05\x04+\x02\t\x01\x12\x04\xf2\x04\x0f\x1c\n\r\n\x05\x04+\x02\t\x03\x12\x04\xf2\x04\x1f!\nA\n\x04\x04+\x02\n\x12\x04\xf4\x04\x02 \x1a3 Provider-reported or Relay-estimated actual cost.\n\n\r\n\x05\x04+\x02\n\x06\x12\x04\xf4\x04\x02\x0e\n\r\n\x05\x04+\x02\n\x01\x12\x04\xf4\x04\x0f\x1a\n\r\n\x05\x04+\x02\n\x03\x12\x04\xf4\x04\x1d\x1f\nK\n\x04\x04+\x02\x0b\x12\x04\xf6\x04\x02X\x1a= Baseline cost minus actual cost when both share a currency.\n\n\r\n\x05\x04+\x02\x0b\x04\x12\x04\xf6\x04\x02\n\n\r\n\x05\x04+\x02\x0b\x05\x12\x04\xf6\x04\x0b\x11\n\r\n\x05\x04+\x02\x0b\x01\x12\x04\xf6\x04\x12&\n\r\n\x05\x04+\x02\x0b\x03\x12\x04\xf6\x04)+\n\r\n\x05\x04+\x02\x0b\x08\x12\x04\xf6\x04,W\n\x11\n\t\x04+\x02\x0b\x08\x87\t\x02\x08\x12\x04\xf6\x04-V\n4\n\x04\x04+\x02\x0c\x12\x04\xf8\x04\x02 \x1a& Currency for `estimated_cost_saved`.\n\n\r\n\x05\x04+\x02\x0c\x04\x12\x04\xf8\x04\x02\n\n\r\n\x05\x04+\x02\x0c\x05\x12\x04\xf8\x04\x0b\x11\n\r\n\x05\x04+\x02\x0c\x01\x12\x04\xf8\x04\x12\x1a\n\r\n\x05\x04+\x02\x0c\x03\x12\x04\xf8\x04\x1d\x1f\nI\n\x04\x04+\x02\r\x12\x04\xfa\x04\x02:\x1a; Ordered, bounded source evidence used by the calculation.\n\n\r\n\x05\x04+\x02\r\x04\x12\x04\xfa\x04\x02\n\n\r\n\x05\x04+\x02\r\x06\x12\x04\xfa\x04\x0b&\n\r\n\x05\x04+\x02\r\x01\x12\x04\xfa\x04\'4\n\r\n\x05\x04+\x02\r\x03\x12\x04\xfa\x0479b\x06proto3\n\xc5J\n\'nvidia/nemo/relay/worker/v1/event.proto\x12\x1bnvidia.nemo.relay.worker.v1\x1a\x1bbuf/validate/validate.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a(nvidia/nemo/relay/worker/v1/common.proto\x1a%nvidia/nemo/relay/worker/v1/llm.proto\"\x95\x01\n\x05Event\x12?\n\x05scope\x18\x01 \x01(\x0b2\'.nvidia.nemo.relay.worker.v1.ScopeEventH\x00R\x05scope\x12<\n\x04mark\x18\x02 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.MarkEventH\x00R\x04markB\r\n\x04kind\x12\x05\xbaH\x02\x08\x01\"\x93\x06\n\tBaseEvent\x12!\n\x0catof_version\x18\x01 \x01(\tR\x0batofVersion\x12.\n\x0bparent_uuid\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\nparentUuid\x88\x01\x01\x12A\n\x15propagation_root_uuid\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x01R\x13propagationRootUuid\x88\x01\x01\x12E\n\x17propagation_parent_uuid\x18\x04 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x02R\x15propagationParentUuid\x88\x01\x01\x12<\n\x17propagation_traceparent\x18\x05 \x01(\tH\x03R\x16propagationTraceparent\x88\x01\x01\x12:\n\x16propagation_tracestate\x18\x06 \x01(\tH\x04R\x15propagationTracestate\x88\x01\x01\x12\x1c\n\x04uuid\x18\x07 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x04uuid\x126\n\x04time\x18\x08 \x01(\x0b2\x1a.google.protobuf.TimestampB\x06\xbaH\x03\xc8\x01\x01R\x04time\x12\x12\n\x04name\x18\t \x01(\tR\x04name\x12:\n\x04data\x18\n \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueR\x04data\x12H\n\x0bdata_schema\x18\x0b \x01(\x0b2\'.nvidia.nemo.relay.worker.v1.DataSchemaR\ndataSchema\x12B\n\x08metadata\x18\x0c \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueR\x08metadataB\x0e\n\x0c_parent_uuidB\x18\n\x16_propagation_root_uuidB\x1a\n\x18_propagation_parent_uuidB\x1a\n\x18_propagation_traceparentB\x19\n\x17_propagation_tracestate\"\xc4\x02\n\nScopeEvent\x12B\n\x04base\x18\x01 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.BaseEventB\x06\xbaH\x03\xc8\x01\x01R\x04base\x12]\n\x0escope_category\x18\x02 \x01(\x0e2*.nvidia.nemo.relay.worker.v1.ScopeCategoryB\n\xbaH\x07\x82\x01\x04\x10\x01 \x00R\rscopeCategory\x12\x1e\n\nattributes\x18\x03 \x03(\tR\nattributes\x12\x1a\n\x08category\x18\x04 \x01(\tR\x08category\x12W\n\x10category_profile\x18\x05 \x01(\x0b2,.nvidia.nemo.relay.worker.v1.CategoryProfileR\x0fcategoryProfile\"\xd6\x01\n\tMarkEvent\x12B\n\x04base\x18\x01 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.BaseEventB\x06\xbaH\x03\xc8\x01\x01R\x04base\x12\x1f\n\x08category\x18\x02 \x01(\tH\x00R\x08category\x88\x01\x01\x12W\n\x10category_profile\x18\x03 \x01(\x0b2,.nvidia.nemo.relay.worker.v1.CategoryProfileR\x0fcategoryProfileB\x0b\n\t_category\"\xe3\x05\n\x0fCategoryProfile\x12\"\n\nmodel_name\x18\x01 \x01(\tH\x00R\tmodelName\x88\x01\x01\x12%\n\x0ctool_call_id\x18\x02 \x01(\tH\x01R\ntoolCallId\x88\x01\x01\x12\x1d\n\x07subtype\x18\x03 \x01(\tH\x02R\x07subtype\x88\x01\x01\x12\\\n\x16tool_result_annotation\x18\x04 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueR\x14toolResultAnnotation\x12M\n\x05extra\x18\x05 \x03(\x0b27.nvidia.nemo.relay.worker.v1.CategoryProfile.ExtraEntryR\x05extra\x12]\n\x11annotated_request\x18\x06 \x01(\x0b20.nvidia.nemo.relay.worker.v1.AnnotatedLlmRequestR\x10annotatedRequest\x12`\n\x12annotated_response\x18\x07 \x01(\x0b21.nvidia.nemo.relay.worker.v1.AnnotatedLlmResponseR\x11annotatedResponse\x12J\n\x1btime_to_first_chunk_seconds\x18\x08 \x01(\x01B\x07\xbaH\x04\x12\x02@\x01H\x03R\x17timeToFirstChunkSeconds\x88\x01\x01\x1a`\n\nExtraEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12<\n\x05value\x18\x02 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueR\x05value:\x028\x01B\r\n\x0b_model_nameB\x0f\n\r_tool_call_idB\n\n\x08_subtypeB\x1e\n\x1c_time_to_first_chunk_seconds\"\xee\x01\n\x13EventSanitizeFields\x12:\n\x04data\x18\x01 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueR\x04data\x12W\n\x10category_profile\x18\x02 \x01(\x0b2,.nvidia.nemo.relay.worker.v1.CategoryProfileR\x0fcategoryProfile\x12B\n\x08metadata\x18\x03 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueR\x08metadata\"\xda\x03\n\x0fPendingMarkSpec\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1f\n\x08category\x18\x02 \x01(\tH\x00R\x08category\x88\x01\x01\x12W\n\x10category_profile\x18\x03 \x01(\x0b2,.nvidia.nemo.relay.worker.v1.CategoryProfileR\x0fcategoryProfile\x12:\n\x04data\x18\x04 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueR\x04data\x12H\n\x0bdata_schema\x18\x05 \x01(\x0b2\'.nvidia.nemo.relay.worker.v1.DataSchemaR\ndataSchema\x12B\n\x08metadata\x18\x06 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueR\x08metadata\x12U\n\x08severity\x18\x07 \x01(\x0e2(.nvidia.nemo.relay.worker.v1.LogSeverityB\n\xbaH\x07\x82\x01\x04\x10\x01 \x00H\x01R\x08severity\x88\x01\x01B\x0b\n\t_categoryB\x0b\n\t_severity*a\n\rScopeCategory\x12\x1e\n\x1aSCOPE_CATEGORY_UNSPECIFIED\x10\x00\x12\x18\n\x14SCOPE_CATEGORY_START\x10\x01\x12\x16\n\x12SCOPE_CATEGORY_END\x10\x02J\x801\n\x07\x12\x05\x05\x00\x8d\x01\x01\n\xea\x01\n\x01\x0c\x12\x03\x05\x00\x122\x88\x01 SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n SPDX-License-Identifier: Apache-2.0\n2U Defines typed ATOF events, lifecycle profiles, sanitizer fields, and pending marks.\n\n\x08\n\x01\x02\x12\x03\x07\x00$\n\t\n\x02\x03\x00\x12\x03\t\x00%\n\t\n\x02\x03\x01\x12\x03\n\x00)\n\t\n\x02\x03\x02\x12\x03\x0b\x002\n\t\n\x02\x03\x03\x12\x03\x0c\x00/\nX\n\x02\x04\x00\x12\x04\x0f\x00\x18\x01\x1aL Exactly one kind is required. UUID strings use canonical hyphenated UUIDs.\n\n\n\n\x03\x04\x00\x01\x12\x03\x0f\x08\r\n\\\n\x04\x04\x00\x08\x00\x12\x04\x11\x02\x17\x03\x1aN Exactly one recognized alternative is required when this message is present.\n\n\x0c\n\x05\x04\x00\x08\x00\x01\x12\x03\x11\x08\x0c\n\x0c\n\x05\x04\x00\x08\x00\x02\x12\x03\x12\x040\n\x0f\n\x08\x04\x00\x08\x00\x02\x87\t\x01\x12\x03\x12\x040\nE\n\x04\x04\x00\x02\x00\x12\x03\x14\x04\x19\x1a8 Scope lifecycle event with its required base envelope.\n\n\x0c\n\x05\x04\x00\x02\x00\x06\x12\x03\x14\x04\x0e\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03\x14\x0f\x14\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03\x14\x17\x18\nH\n\x04\x04\x00\x02\x01\x12\x03\x16\x04\x17\x1a; Point-in-time mark event with its required base envelope.\n\n\x0c\n\x05\x04\x00\x02\x01\x06\x12\x03\x16\x04\r\n\x0c\n\x05\x04\x00\x02\x01\x01\x12\x03\x16\x0e\x12\n\x0c\n\x05\x04\x00\x02\x01\x03\x12\x03\x16\x15\x16\nX\n\x02\x04\x01\x12\x04\x1b\x005\x01\x1aL Common ATOF identity, propagation, timing, and application payload fields.\n\n\n\n\x03\x04\x01\x01\x12\x03\x1b\x08\x11\nI\n\x04\x04\x01\x02\x00\x12\x03\x1d\x02\x1a\x1a< ATOF\'s own version, independent of the transport contract.\n\n\x0c\n\x05\x04\x01\x02\x00\x05\x12\x03\x1d\x02\x08\n\x0c\n\x05\x04\x01\x02\x00\x01\x12\x03\x1d\t\x15\n\x0c\n\x05\x04\x01\x02\x00\x03\x12\x03\x1d\x18\x19\n0\n\x04\x04\x01\x02\x01\x12\x03\x1f\x02O\x1a# UUID of the parent scope, if any.\n\n\x0c\n\x05\x04\x01\x02\x01\x04\x12\x03\x1f\x02\n\n\x0c\n\x05\x04\x01\x02\x01\x05\x12\x03\x1f\x0b\x11\n\x0c\n\x05\x04\x01\x02\x01\x01\x12\x03\x1f\x12\x1d\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x03\x1f !\n\x0c\n\x05\x04\x01\x02\x01\x08\x12\x03\x1f\"N\n\x0f\n\x08\x04\x01\x02\x01\x08\x87\t\x0e\x12\x03\x1f#M\nR\n\x04\x04\x01\x02\x02\x12\x03!\x02Y\x1aE Stable causal root imported or resolved when the event was emitted.\n\n\x0c\n\x05\x04\x01\x02\x02\x04\x12\x03!\x02\n\n\x0c\n\x05\x04\x01\x02\x02\x05\x12\x03!\x0b\x11\n\x0c\n\x05\x04\x01\x02\x02\x01\x12\x03!\x12\'\n\x0c\n\x05\x04\x01\x02\x02\x03\x12\x03!*+\n\x0c\n\x05\x04\x01\x02\x02\x08\x12\x03!,X\n\x0f\n\x08\x04\x01\x02\x02\x08\x87\t\x0e\x12\x03!-W\n\xbe\x01\n\x04\x04\x01\x02\x03\x12\x03$\x02[\x1a\xb0\x01 Parent imported through propagation context. The runtime uses this field to distinguish\n imported parents from Relay-created parents. It does not change the ATOF wire format.\n\n\x0c\n\x05\x04\x01\x02\x03\x04\x12\x03$\x02\n\n\x0c\n\x05\x04\x01\x02\x03\x05\x12\x03$\x0b\x11\n\x0c\n\x05\x04\x01\x02\x03\x01\x12\x03$\x12)\n\x0c\n\x05\x04\x01\x02\x03\x03\x12\x03$,-\n\x0c\n\x05\x04\x01\x02\x03\x08\x12\x03$.Z\n\x0f\n\x08\x04\x01\x02\x03\x08\x87\t\x0e\x12\x03$/Y\nW\n\x04\x04\x01\x02\x04\x12\x03&\x02.\x1aJ W3C traceparent imported or derived from the local parent. Runtime-only.\n\n\x0c\n\x05\x04\x01\x02\x04\x04\x12\x03&\x02\n\n\x0c\n\x05\x04\x01\x02\x04\x05\x12\x03&\x0b\x11\n\x0c\n\x05\x04\x01\x02\x04\x01\x12\x03&\x12)\n\x0c\n\x05\x04\x01\x02\x04\x03\x12\x03&,-\nX\n\x04\x04\x01\x02\x05\x12\x03(\x02-\x1aK W3C tracestate imported or inherited from the local parent. Runtime-only.\n\n\x0c\n\x05\x04\x01\x02\x05\x04\x12\x03(\x02\n\n\x0c\n\x05\x04\x01\x02\x05\x05\x12\x03(\x0b\x11\n\x0c\n\x05\x04\x01\x02\x05\x01\x12\x03(\x12(\n\x0c\n\x05\x04\x01\x02\x05\x03\x12\x03(+,\n7\n\x04\x04\x01\x02\x06\x12\x03*\x02?\x1a* Unique identifier for the event or span.\n\n\x0c\n\x05\x04\x01\x02\x06\x05\x12\x03*\x02\x08\n\x0c\n\x05\x04\x01\x02\x06\x01\x12\x03*\t\r\n\x0c\n\x05\x04\x01\x02\x06\x03\x12\x03*\x10\x11\n\x0c\n\x05\x04\x01\x02\x06\x08\x12\x03*\x12>\n\x0f\n\x08\x04\x01\x02\x06\x08\x87\t\x0e\x12\x03*\x13=\n&\n\x04\x04\x01\x02\x07\x12\x03,\x02L\x1a\x19 Event timestamp in UTC.\n\n\x0c\n\x05\x04\x01\x02\x07\x06\x12\x03,\x02\x1b\n\x0c\n\x05\x04\x01\x02\x07\x01\x12\x03,\x1c \n\x0c\n\x05\x04\x01\x02\x07\x03\x12\x03,#$\n\x0c\n\x05\x04\x01\x02\x07\x08\x12\x03,%K\n\x0f\n\x08\x04\x01\x02\x07\x08\x87\t\x19\x12\x03,&J\n)\n\x04\x04\x01\x02\x08\x12\x03.\x02\x12\x1a\x1c Human-readable event name.\n\n\x0c\n\x05\x04\x01\x02\x08\x05\x12\x03.\x02\x08\n\x0c\n\x05\x04\x01\x02\x08\x01\x12\x03.\t\r\n\x0c\n\x05\x04\x01\x02\x08\x03\x12\x03.\x10\x11\n+\n\x04\x04\x01\x02\t\x12\x030\x02\x16\x1a\x1e Application-defined payload.\n\n\x0c\n\x05\x04\x01\x02\t\x06\x12\x030\x02\x0b\n\x0c\n\x05\x04\x01\x02\t\x01\x12\x030\x0c\x10\n\x0c\n\x05\x04\x01\x02\t\x03\x12\x030\x13\x15\n5\n\x04\x04\x01\x02\n\x12\x032\x02\x1e\x1a( Optional schema identifier for `data`.\n\n\x0c\n\x05\x04\x01\x02\n\x06\x12\x032\x02\x0c\n\x0c\n\x05\x04\x01\x02\n\x01\x12\x032\r\x18\n\x0c\n\x05\x04\x01\x02\n\x03\x12\x032\x1b\x1d\n5\n\x04\x04\x01\x02\x0b\x12\x034\x02\x1a\x1a( Optional tracing/correlation metadata.\n\n\x0c\n\x05\x04\x01\x02\x0b\x06\x12\x034\x02\x0b\n\x0c\n\x05\x04\x01\x02\x0b\x01\x12\x034\x0c\x14\n\x0c\n\x05\x04\x01\x02\x0b\x03\x12\x034\x17\x19\nU\n\x02\x05\x00\x12\x048\x00?\x01\x1aI Scope lifecycle phase; unspecified is invalid for emitted scope events.\n\n\n\n\x03\x05\x00\x01\x12\x038\x05\x12\nY\n\x04\x05\x00\x02\x00\x12\x03:\x02!\x1aL No value supplied; invalid where this contract requires an explicit value.\n\n\x0c\n\x05\x05\x00\x02\x00\x01\x12\x03:\x02\x1c\n\x0c\n\x05\x05\x00\x02\x00\x02\x12\x03:\x1f \n%\n\x04\x05\x00\x02\x01\x12\x03<\x02\x1b\x1a\x18 The scope is starting.\n\n\x0c\n\x05\x05\x00\x02\x01\x01\x12\x03<\x02\x16\n\x0c\n\x05\x05\x00\x02\x01\x02\x12\x03<\x19\x1a\n#\n\x04\x05\x00\x02\x02\x12\x03>\x02\x19\x1a\x16 The scope is ending.\n\n\x0c\n\x05\x05\x00\x02\x02\x01\x12\x03>\x02\x14\n\x0c\n\x05\x05\x00\x02\x02\x02\x12\x03>\x17\x18\nK\n\x02\x04\x02\x12\x04B\x00P\x01\x1a? An ATOF scope lifecycle event with an open semantic category.\n\n\n\n\x03\x04\x02\x01\x12\x03B\x08\x12\n$\n\x04\x04\x02\x02\x00\x12\x03D\x02<\x1a\x17 Shared ATOF envelope.\n\n\x0c\n\x05\x04\x02\x02\x00\x06\x12\x03D\x02\x0b\n\x0c\n\x05\x04\x02\x02\x00\x01\x12\x03D\x0c\x10\n\x0c\n\x05\x04\x02\x02\x00\x03\x12\x03D\x13\x14\n\x0c\n\x05\x04\x02\x02\x00\x08\x12\x03D\x15;\n\x0f\n\x08\x04\x02\x02\x00\x08\x87\t\x19\x12\x03D\x16:\n&\n\x04\x04\x02\x02\x01\x12\x04F\x02I\x05\x1a\x18 Scope lifecycle phase.\n\n\x0c\n\x05\x04\x02\x02\x01\x06\x12\x03F\x02\x0f\n\x0c\n\x05\x04\x02\x02\x01\x01\x12\x03F\x10\x1e\n\x0c\n\x05\x04\x02\x02\x01\x03\x12\x03F!\"\n\r\n\x05\x04\x02\x02\x01\x08\x12\x04F#I\x04\n\x10\n\x08\x04\x02\x02\x01\x08\x87\t\x10\x12\x04F$I\x03\n4\n\x04\x04\x02\x02\x02\x12\x03K\x02!\x1a\' Canonical lowercase behavioral flags.\n\n\x0c\n\x05\x04\x02\x02\x02\x04\x12\x03K\x02\n\n\x0c\n\x05\x04\x02\x02\x02\x05\x12\x03K\x0b\x11\n\x0c\n\x05\x04\x02\x02\x02\x01\x12\x03K\x12\x1c\n\x0c\n\x05\x04\x02\x02\x02\x03\x12\x03K\x1f \nB\n\x04\x04\x02\x02\x03\x12\x03M\x02\x16\x1a5 Open category, including application-defined names.\n\n\x0c\n\x05\x04\x02\x02\x03\x05\x12\x03M\x02\x08\n\x0c\n\x05\x04\x02\x02\x03\x01\x12\x03M\t\x11\n\x0c\n\x05\x04\x02\x02\x03\x03\x12\x03M\x14\x15\n.\n\x04\x04\x02\x02\x04\x12\x03O\x02\'\x1a! Category-specific typed fields.\n\n\x0c\n\x05\x04\x02\x02\x04\x06\x12\x03O\x02\x11\n\x0c\n\x05\x04\x02\x02\x04\x01\x12\x03O\x12\"\n\x0c\n\x05\x04\x02\x02\x04\x03\x12\x03O%&\nP\n\x02\x04\x03\x12\x04S\x00Z\x01\x1aD An ATOF point-in-time event with optional semantic categorization.\n\n\n\n\x03\x04\x03\x01\x12\x03S\x08\x11\n$\n\x04\x04\x03\x02\x00\x12\x03U\x02<\x1a\x17 Shared ATOF envelope.\n\n\x0c\n\x05\x04\x03\x02\x00\x06\x12\x03U\x02\x0b\n\x0c\n\x05\x04\x03\x02\x00\x01\x12\x03U\x0c\x10\n\x0c\n\x05\x04\x03\x02\x00\x03\x12\x03U\x13\x14\n\x0c\n\x05\x04\x03\x02\x00\x08\x12\x03U\x15;\n\x0f\n\x08\x04\x03\x02\x00\x08\x87\t\x19\x12\x03U\x16:\n=\n\x04\x04\x03\x02\x01\x12\x03W\x02\x1f\x1a0 Optional semantic category for the checkpoint.\n\n\x0c\n\x05\x04\x03\x02\x01\x04\x12\x03W\x02\n\n\x0c\n\x05\x04\x03\x02\x01\x05\x12\x03W\x0b\x11\n\x0c\n\x05\x04\x03\x02\x01\x01\x12\x03W\x12\x1a\n\x0c\n\x05\x04\x03\x02\x01\x03\x12\x03W\x1d\x1e\n7\n\x04\x04\x03\x02\x02\x12\x03Y\x02\'\x1a* Optional category-specific typed fields.\n\n\x0c\n\x05\x04\x03\x02\x02\x06\x12\x03Y\x02\x11\n\x0c\n\x05\x04\x03\x02\x02\x01\x12\x03Y\x12\"\n\x0c\n\x05\x04\x03\x02\x02\x03\x12\x03Y%&\nZ\n\x02\x04\x04\x12\x04]\x00n\x01\x1aN Known category-specific fields and lossless extensions attached to an event.\n\n\n\n\x03\x04\x04\x01\x12\x03]\x08\x17\n:\n\x04\x04\x04\x02\x00\x12\x03_\x02!\x1a- Normalized model identifier for LLM events.\n\n\x0c\n\x05\x04\x04\x02\x00\x04\x12\x03_\x02\n\n\x0c\n\x05\x04\x04\x02\x00\x05\x12\x03_\x0b\x11\n\x0c\n\x05\x04\x04\x02\x00\x01\x12\x03_\x12\x1c\n\x0c\n\x05\x04\x04\x02\x00\x03\x12\x03_\x1f \n;\n\x04\x04\x04\x02\x01\x12\x03a\x02#\x1a. LLM-provider correlation ID for Tool events.\n\n\x0c\n\x05\x04\x04\x02\x01\x04\x12\x03a\x02\n\n\x0c\n\x05\x04\x04\x02\x01\x05\x12\x03a\x0b\x11\n\x0c\n\x05\x04\x04\x02\x01\x01\x12\x03a\x12\x1e\n\x0c\n\x05\x04\x04\x02\x01\x03\x12\x03a!\"\nC\n\x04\x04\x04\x02\x02\x12\x03c\x02\x1e\x1a6 Vendor subtype required when `category == \"custom\"`.\n\n\x0c\n\x05\x04\x04\x02\x02\x04\x12\x03c\x02\n\n\x0c\n\x05\x04\x04\x02\x02\x05\x12\x03c\x0b\x11\n\x0c\n\x05\x04\x04\x02\x02\x01\x12\x03c\x12\x19\n\x0c\n\x05\x04\x04\x02\x02\x03\x12\x03c\x1c\x1d\nP\n\x04\x04\x04\x02\x03\x12\x03e\x02\'\x1aC Normalized tool result annotation for successful tool end events.\n\n\x0c\n\x05\x04\x04\x02\x03\x06\x12\x03e\x02\x0b\n\x0c\n\x05\x04\x04\x02\x03\x01\x12\x03e\x0c\"\n\x0c\n\x05\x04\x04\x02\x03\x03\x12\x03e%&\nL\n\x04\x04\x04\x02\x04\x12\x03g\x02#\x1a? Unknown category-profile keys preserved from newer producers.\n\n\x0c\n\x05\x04\x04\x02\x04\x06\x12\x03g\x02\x18\n\x0c\n\x05\x04\x04\x02\x04\x01\x12\x03g\x19\x1e\n\x0c\n\x05\x04\x04\x02\x04\x03\x12\x03g!\"\nB\n\x04\x04\x04\x02\x05\x12\x03i\x02,\x1a5 Normalized request annotation for LLM start events.\n\n\x0c\n\x05\x04\x04\x02\x05\x06\x12\x03i\x02\x15\n\x0c\n\x05\x04\x04\x02\x05\x01\x12\x03i\x16\'\n\x0c\n\x05\x04\x04\x02\x05\x03\x12\x03i*+\nA\n\x04\x04\x04\x02\x06\x12\x03k\x02.\x1a4 Normalized response annotation for LLM end events.\n\n\x0c\n\x05\x04\x04\x02\x06\x06\x12\x03k\x02\x16\n\x0c\n\x05\x04\x04\x02\x06\x01\x12\x03k\x17)\n\x0c\n\x05\x04\x04\x02\x06\x03\x12\x03k,-\nY\n\x04\x04\x04\x02\x07\x12\x03m\x02^\x1aL Elapsed seconds from managed stream execution to its first received chunk.\n\n\x0c\n\x05\x04\x04\x02\x07\x04\x12\x03m\x02\n\n\x0c\n\x05\x04\x04\x02\x07\x05\x12\x03m\x0b\x11\n\x0c\n\x05\x04\x04\x02\x07\x01\x12\x03m\x12-\n\x0c\n\x05\x04\x04\x02\x07\x03\x12\x03m01\n\x0c\n\x05\x04\x04\x02\x07\x08\x12\x03m2]\n\x10\n\t\x04\x04\x02\x07\x08\x87\t\x02\x08\x12\x03m3\\\n]\n\x02\x04\x05\x12\x04q\x00x\x01\x1aQ Sanitizer output replaces these fields; absence clears the corresponding field.\n\n\n\n\x03\x04\x05\x01\x12\x03q\x08\x1b\n1\n\x04\x04\x05\x02\x00\x12\x03s\x02\x15\x1a$ Application-defined event payload.\n\n\x0c\n\x05\x04\x05\x02\x00\x06\x12\x03s\x02\x0b\n\x0c\n\x05\x04\x05\x02\x00\x01\x12\x03s\x0c\x10\n\x0c\n\x05\x04\x05\x02\x00\x03\x12\x03s\x13\x14\n.\n\x04\x04\x05\x02\x01\x12\x03u\x02\'\x1a! Category-specific typed fields.\n\n\x0c\n\x05\x04\x05\x02\x01\x06\x12\x03u\x02\x11\n\x0c\n\x05\x04\x05\x02\x01\x01\x12\x03u\x12\"\n\x0c\n\x05\x04\x05\x02\x01\x03\x12\x03u%&\n0\n\x04\x04\x05\x02\x02\x12\x03w\x02\x19\x1a# Tracing and correlation metadata.\n\n\x0c\n\x05\x04\x05\x02\x02\x06\x12\x03w\x02\x0b\n\x0c\n\x05\x04\x05\x02\x02\x01\x12\x03w\x0c\x14\n\x0c\n\x05\x04\x05\x02\x02\x03\x12\x03w\x17\x18\nZ\n\x02\x04\x06\x12\x05{\x00\x8d\x01\x01\x1aM Requests a mark whose UUID, timestamp, and parent are assigned by the host.\n\n\n\n\x03\x04\x06\x01\x12\x03{\x08\x17\n(\n\x04\x04\x06\x02\x00\x12\x03}\x02\x12\x1a\x1b Human-readable mark name.\n\n\x0c\n\x05\x04\x06\x02\x00\x05\x12\x03}\x02\x08\n\x0c\n\x05\x04\x06\x02\x00\x01\x12\x03}\t\r\n\x0c\n\x05\x04\x06\x02\x00\x03\x12\x03}\x10\x11\n7\n\x04\x04\x06\x02\x01\x12\x03\x7f\x02\x1f\x1a* Optional semantic category for the mark.\n\n\x0c\n\x05\x04\x06\x02\x01\x04\x12\x03\x7f\x02\n\n\x0c\n\x05\x04\x06\x02\x01\x05\x12\x03\x7f\x0b\x11\n\x0c\n\x05\x04\x06\x02\x01\x01\x12\x03\x7f\x12\x1a\n\x0c\n\x05\x04\x06\x02\x01\x03\x12\x03\x7f\x1d\x1e\n8\n\x04\x04\x06\x02\x02\x12\x04\x81\x01\x02\'\x1a* Optional category-specific typed fields.\n\n\r\n\x05\x04\x06\x02\x02\x06\x12\x04\x81\x01\x02\x11\n\r\n\x05\x04\x06\x02\x02\x01\x12\x04\x81\x01\x12\"\n\r\n\x05\x04\x06\x02\x02\x03\x12\x04\x81\x01%&\nB\n\x04\x04\x06\x02\x03\x12\x04\x83\x01\x02\x15\x1a4 Optional application payload attached to the mark.\n\n\r\n\x05\x04\x06\x02\x03\x06\x12\x04\x83\x01\x02\x0b\n\r\n\x05\x04\x06\x02\x03\x01\x12\x04\x83\x01\x0c\x10\n\r\n\x05\x04\x06\x02\x03\x03\x12\x04\x83\x01\x13\x14\n=\n\x04\x04\x06\x02\x04\x12\x04\x85\x01\x02\x1d\x1a/ Optional schema identifier for the mark data.\n\n\r\n\x05\x04\x06\x02\x04\x06\x12\x04\x85\x01\x02\x0c\n\r\n\x05\x04\x06\x02\x04\x01\x12\x04\x85\x01\r\x18\n\r\n\x05\x04\x06\x02\x04\x03\x12\x04\x85\x01\x1b\x1c\n7\n\x04\x04\x06\x02\x05\x12\x04\x87\x01\x02\x19\x1a) Optional metadata attached to the mark.\n\n\r\n\x05\x04\x06\x02\x05\x06\x12\x04\x87\x01\x02\x0b\n\r\n\x05\x04\x06\x02\x05\x01\x12\x04\x87\x01\x0c\x14\n\r\n\x05\x04\x06\x02\x05\x03\x12\x04\x87\x01\x17\x18\nU\n\x04\x04\x06\x02\x06\x12\x06\x89\x01\x02\x8c\x01\x05\x1aE Optional log severity that overrides the severity in mark metadata.\n\n\r\n\x05\x04\x06\x02\x06\x04\x12\x04\x89\x01\x02\n\n\r\n\x05\x04\x06\x02\x06\x06\x12\x04\x89\x01\x0b\x16\n\r\n\x05\x04\x06\x02\x06\x01\x12\x04\x89\x01\x17\x1f\n\r\n\x05\x04\x06\x02\x06\x03\x12\x04\x89\x01\"#\n\x0f\n\x05\x04\x06\x02\x06\x08\x12\x06\x89\x01$\x8c\x01\x04\n\x12\n\x08\x04\x06\x02\x06\x08\x87\t\x10\x12\x06\x89\x01%\x8c\x01\x03b\x06proto3\n\xeb\xac\x01\n)nvidia/nemo/relay/worker/v1/runtime.proto\x12\x1bnvidia.nemo.relay.worker.v1\x1a\x1bbuf/validate/validate.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a(nvidia/nemo/relay/worker/v1/common.proto\x1a\'nvidia/nemo/relay/worker/v1/event.proto\x1a%nvidia/nemo/relay/worker/v1/llm.proto\"\xdf\x02\n\x0eWorkerIdentity\x12$\n\tplugin_id\x18\x01 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x08pluginId\x12(\n\x0bplugin_kind\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\npluginKind\x12Q\n\x08protocol\x18\x03 \x01(\x0b2-.nvidia.nemo.relay.worker.v1.ProtocolIdentityB\x06\xbaH\x03\xc8\x01\x01R\x08protocol\x12\"\n\x08sdk_name\x18\x04 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x07sdkName\x12(\n\x0bsdk_version\x18\x05 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\nsdkVersion\x12*\n\x0cruntime_name\x18\x06 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0bruntimeName\x120\n\x0fruntime_version\x18\x07 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0eruntimeVersion\"\xf5\x01\n\x10ConfigDiagnostic\x12T\n\x05level\x18\x01 \x01(\x0e22.nvidia.nemo.relay.worker.v1.ConfigDiagnosticLevelB\n\xbaH\x07\x82\x01\x04\x10\x01 \x00R\x05level\x12\x1b\n\x04code\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x04code\x12!\n\tcomponent\x18\x03 \x01(\tH\x00R\tcomponent\x88\x01\x01\x12\x19\n\x05field\x18\x04 \x01(\tH\x01R\x05field\x88\x01\x01\x12\x18\n\x07message\x18\x05 \x01(\tR\x07messageB\x0c\n\n_componentB\x08\n\x06_field\"\\\n\x11ConfigDiagnostics\x12G\n\x07entries\x18\x01 \x03(\x0b2-.nvidia.nemo.relay.worker.v1.ConfigDiagnosticR\x07entries\"\xf9\x01\n\x10RegistrationPlan\x12O\n\rregistrations\x18\x01 \x03(\x0b2).nvidia.nemo.relay.worker.v1.RegistrationR\rregistrations\x12\x93\x01\n!conditional_middleware_guardrails\x18\x02 \x03(\x0b2G.nvidia.nemo.relay.worker.v1.ConditionalMiddlewareGuardrailRegistrationR\x1fconditionalMiddlewareGuardrails\"\xcb\x01\n\x0cRegistration\x12&\n\nlocal_name\x18\x01 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\tlocalName\x12V\n\x07surface\x18\x02 \x01(\x0e20.nvidia.nemo.relay.worker.v1.RegistrationSurfaceB\n\xbaH\x07\x82\x01\x04\x10\x01 \x00R\x07surface\x12\x1a\n\x08priority\x18\x03 \x01(\x05R\x08priority\x12\x1f\n\x0bbreak_chain\x18\x04 \x01(\x08R\nbreakChain\"\x8c\x02\n*ConditionalMiddlewareGuardrailRegistration\x12\x1b\n\x04name\x18\x01 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x04name\x12W\n\x05kinds\x18\x02 \x03(\x0e20.nvidia.nemo.relay.worker.v1.RegistrationSurfaceB\x0f\xbaH\x0c\x92\x01\t\"\x07\x82\x01\x04\x10\x01 \x00R\x05kinds\x124\n\x11registration_name\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x10registrationName\x12\x16\n\x06reason\x18\x04 \x01(\tR\x06reason\x12\x1a\n\x08callback\x18\x05 \x01(\x08R\x08callback\"x\n\x13ToolValueInvocation\x12\x1b\n\ttool_name\x18\x01 \x01(\tR\x08toolName\x12D\n\x05value\x18\x02 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueB\x06\xbaH\x03\xc8\x01\x01R\x05value\"\xe4\x01\n\x17ToolExecutionInvocation\x12\x1b\n\ttool_name\x18\x01 \x01(\tR\x08toolName\x12B\n\x04args\x18\x02 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueB\x06\xbaH\x03\xc8\x01\x01R\x04args\x12%\n\x0ctool_call_id\x18\x03 \x01(\tH\x00R\ntoolCallId\x88\x01\x01\x120\n\x0fcontinuation_id\x18\x04 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0econtinuationIdB\x0f\n\r_tool_call_id\"\xb0\x01\n\x1fConditionalMiddlewareInvocation\x12W\n\x05kinds\x18\x01 \x03(\x0e20.nvidia.nemo.relay.worker.v1.RegistrationSurfaceB\x0f\xbaH\x0c\x92\x01\t\"\x07\x82\x01\x04\x10\x01 \x00R\x05kinds\x124\n\x11registration_name\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x10registrationName\"U\n\x11LlmCodecReference\x12\x1b\n\x04kind\x18\x01 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x04kind\x12\x1c\n\x02id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01H\x00R\x02id\x88\x01\x01B\x05\n\x03_id\"\xa4\x01\n\x0fLlmCodecContext\x12L\n\x05codec\x18\x01 \x01(\x0b2..nvidia.nemo.relay.worker.v1.LlmCodecReferenceB\x06\xbaH\x03\xc8\x01\x01R\x05codec\x121\n\rcapability_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01H\x00R\x0ccapabilityId\x88\x01\x01B\x10\n\x0e_capability_id\"\xb9\x01\n\x1cLlmSanitizeRequestInvocation\x12I\n\x07request\x18\x01 \x01(\x0b2\'.nvidia.nemo.relay.worker.v1.LlmRequestB\x06\xbaH\x03\xc8\x01\x01R\x07request\x12N\n\x07context\x18\x02 \x01(\x0b2,.nvidia.nemo.relay.worker.v1.LlmCodecContextB\x06\xbaH\x03\xc8\x01\x01R\x07context\"\xbb\x01\n\x1dLlmSanitizeResponseInvocation\x12J\n\x08response\x18\x01 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueB\x06\xbaH\x03\xc8\x01\x01R\x08response\x12N\n\x07context\x18\x02 \x01(\x0b2,.nvidia.nemo.relay.worker.v1.LlmCodecContextB\x06\xbaH\x03\xc8\x01\x01R\x07context\"e\n\x18LlmConditionalInvocation\x12I\n\x07request\x18\x01 \x01(\x0b2\'.nvidia.nemo.relay.worker.v1.LlmRequestB\x06\xbaH\x03\xc8\x01\x01R\x07request\"\xdf\x01\n\x14LlmRequestInvocation\x12\x1d\n\nmodel_name\x18\x01 \x01(\tR\tmodelName\x12I\n\x07request\x18\x02 \x01(\x0b2\'.nvidia.nemo.relay.worker.v1.LlmRequestB\x06\xbaH\x03\xc8\x01\x01R\x07request\x12]\n\x11annotated_request\x18\x03 \x01(\x0b20.nvidia.nemo.relay.worker.v1.AnnotatedLlmRequestR\x10annotatedRequest\"\xec\x02\n\x16LlmExecutionInvocation\x12\x1d\n\nmodel_name\x18\x01 \x01(\tR\tmodelName\x12I\n\x07request\x18\x02 \x01(\x0b2\'.nvidia.nemo.relay.worker.v1.LlmRequestB\x06\xbaH\x03\xc8\x01\x01R\x07request\x120\n\x0fcontinuation_id\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0econtinuationId\x12Y\n\rrequest_codec\x18\x04 \x01(\x0b2,.nvidia.nemo.relay.worker.v1.LlmCodecContextB\x06\xbaH\x03\xc8\x01\x01R\x0crequestCodec\x12[\n\x0eresponse_codec\x18\x05 \x01(\x0b2,.nvidia.nemo.relay.worker.v1.LlmCodecContextB\x06\xbaH\x03\xc8\x01\x01R\rresponseCodec\"\x84\x01\n\x11GuardrailDecision\x12.\n\x05allow\x18\x01 \x01(\x0b2\x16.google.protobuf.EmptyH\x00R\x05allow\x12,\n\x0cblock_reason\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01H\x00R\x0bblockReasonB\x11\n\x08decision\x12\x05\xbaH\x02\x08\x01\"\x92\x03\n\x1aLlmRequestInterceptOutcome\x12I\n\x07request\x18\x01 \x01(\x0b2\'.nvidia.nemo.relay.worker.v1.LlmRequestB\x06\xbaH\x03\xc8\x01\x01R\x07request\x12]\n\x11annotated_request\x18\x02 \x01(\x0b20.nvidia.nemo.relay.worker.v1.AnnotatedLlmRequestR\x10annotatedRequest\x12Q\n\rpending_marks\x18\x03 \x03(\x0b2,.nvidia.nemo.relay.worker.v1.PendingMarkSpecR\x0cpendingMarks\x12w\n\x1aoptimization_contributions\x18\x04 \x03(\x0b28.nvidia.nemo.relay.worker.v1.LlmOptimizationContributionR\x19optimizationContributions\"\xa5\x01\n\x13ToolExecutionResult\x12F\n\x06result\x18\x01 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueB\x06\xbaH\x03\xc8\x01\x01R\x06result\x12F\n\nannotation\x18\x02 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueR\nannotation\"\xc2\x01\n\x1dToolExecutionInterceptOutcome\x12N\n\x05value\x18\x01 \x01(\x0b20.nvidia.nemo.relay.worker.v1.ToolExecutionResultB\x06\xbaH\x03\xc8\x01\x01R\x05value\x12Q\n\rpending_marks\x18\x02 \x03(\x0b2,.nvidia.nemo.relay.worker.v1.PendingMarkSpecR\x0cpendingMarks\"e\n\x0cScopeContext\x12-\n\x0escope_stack_id\x18\x01 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0cscopeStackId\x12&\n\x0fparent_scope_id\x18\x02 \x01(\tR\rparentScopeId\"\x89\x01\n\x0fScopeStackEntry\x12#\n\x08scope_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07scopeId\x12Q\n\nscope_type\x18\x02 \x01(\x0e2&.nvidia.nemo.relay.worker.v1.ScopeTypeB\n\xbaH\x07\x82\x01\x04\x10\x01 \x00R\tscopeType\"Z\n\x12ScopeStackSnapshot\x12D\n\x06scopes\x18\x01 \x03(\x0b2,.nvidia.nemo.relay.worker.v1.ScopeStackEntryR\x06scopes\"`\n\x11RuntimeDiagnostic\x12\x1b\n\x04code\x18\x01 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x04code\x12\x18\n\x07message\x18\x02 \x01(\tR\x07message\x12\x14\n\x05count\x18\x03 \x01(\x04R\x05count\"\xe1\x01\n\x18RuntimeRegistrationOwner\x12,\n\x04core\x18\x01 \x01(\x0b2\x16.google.protobuf.EmptyH\x00R\x04core\x127\n\nglobal_api\x18\x02 \x01(\x0b2\x16.google.protobuf.EmptyH\x00R\tglobalApi\x12N\n\x06plugin\x18\x03 \x01(\x0b24.nvidia.nemo.relay.worker.v1.PluginRegistrationOwnerH\x00R\x06pluginB\x0e\n\x05owner\x12\x05\xbaH\x02\x08\x01\"\x8b\x01\n\x17PluginRegistrationOwner\x12(\n\x0bplugin_kind\x18\x01 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\npluginKind\x120\n\x11component_ordinal\x18\x02 \x01(\rH\x00R\x10componentOrdinal\x88\x01\x01B\x14\n\x12_component_ordinal\"\x9c\x02\n\x1bRuntimeRegistrationIdentity\x12P\n\x04kind\x18\x01 \x01(\x0e20.nvidia.nemo.relay.worker.v1.RegistrationSurfaceB\n\xbaH\x07\x82\x01\x04\x10\x01 \x00R\x04kind\x12&\n\nlocal_name\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\tlocalName\x12.\n\x0eeffective_name\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\reffectiveName\x12S\n\x05owner\x18\x04 \x01(\x0b25.nvidia.nemo.relay.worker.v1.RuntimeRegistrationOwnerB\x06\xbaH\x03\xc8\x01\x01R\x05owner*~\n\x12WorkerHealthStatus\x12$\n WORKER_HEALTH_STATUS_UNSPECIFIED\x10\x00\x12\x1e\n\x1aWORKER_HEALTH_STATUS_READY\x10\x01\x12\"\n\x1eWORKER_HEALTH_STATUS_UNHEALTHY\x10\x02*\x88\x01\n\x15ConfigDiagnosticLevel\x12\'\n#CONFIG_DIAGNOSTIC_LEVEL_UNSPECIFIED\x10\x00\x12#\n\x1fCONFIG_DIAGNOSTIC_LEVEL_WARNING\x10\x01\x12!\n\x1dCONFIG_DIAGNOSTIC_LEVEL_ERROR\x10\x02J\xb9\x7f\n\x07\x12\x05\x05\x00\xc8\x02\x01\n\xe8\x01\n\x01\x0c\x12\x03\x05\x00\x122\x88\x01 SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n SPDX-License-Identifier: Apache-2.0\n2S Defines supporting callback, continuation, codec, scope, and registration models.\n\n\x08\n\x01\x02\x12\x03\x07\x00$\n\t\n\x02\x03\x00\x12\x03\t\x00%\n\t\n\x02\x03\x01\x12\x03\n\x00%\n\t\n\x02\x03\x02\x12\x03\x0b\x002\n\t\n\x02\x03\x03\x12\x03\x0c\x001\n\t\n\x02\x03\x04\x12\x03\r\x00/\nW\n\x02\x04\x00\x12\x04\x10\x00\x1f\x01\x1aK Worker, SDK, runtime, and protocol identities reported during activation.\n\n\n\n\x03\x04\x00\x01\x12\x03\x10\x08\x16\nV\n\x04\x04\x00\x02\x00\x12\x03\x12\x02D\x1aI Plugin identity declared by the manifest and checked during activation.\n\n\x0c\n\x05\x04\x00\x02\x00\x05\x12\x03\x12\x02\x08\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03\x12\t\x12\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03\x12\x15\x16\n\x0c\n\x05\x04\x00\x02\x00\x08\x12\x03\x12\x17C\n\x0f\n\x08\x04\x00\x02\x00\x08\x87\t\x0e\x12\x03\x12\x18B\nX\n\x04\x04\x00\x02\x01\x12\x03\x14\x02F\x1aK Registered plugin kind; it must agree with the activated plugin identity.\n\n\x0c\n\x05\x04\x00\x02\x01\x05\x12\x03\x14\x02\x08\n\x0c\n\x05\x04\x00\x02\x01\x01\x12\x03\x14\t\x14\n\x0c\n\x05\x04\x00\x02\x01\x03\x12\x03\x14\x17\x18\n\x0c\n\x05\x04\x00\x02\x01\x08\x12\x03\x14\x19E\n\x0f\n\x08\x04\x00\x02\x01\x08\x87\t\x0e\x12\x03\x14\x1aD\n`\n\x04\x04\x00\x02\x02\x12\x03\x16\x02G\x1aS Required protocol name and semantic contract version to confirm during handshake.\n\n\x0c\n\x05\x04\x00\x02\x02\x06\x12\x03\x16\x02\x12\n\x0c\n\x05\x04\x00\x02\x02\x01\x12\x03\x16\x13\x1b\n\x0c\n\x05\x04\x00\x02\x02\x03\x12\x03\x16\x1e\x1f\n\x0c\n\x05\x04\x00\x02\x02\x08\x12\x03\x16 F\n\x0f\n\x08\x04\x00\x02\x02\x08\x87\t\x19\x12\x03\x16!E\nB\n\x04\x04\x00\x02\x03\x12\x03\x18\x02C\x1a5 Name of the SDK implementation serving this worker.\n\n\x0c\n\x05\x04\x00\x02\x03\x05\x12\x03\x18\x02\x08\n\x0c\n\x05\x04\x00\x02\x03\x01\x12\x03\x18\t\x11\n\x0c\n\x05\x04\x00\x02\x03\x03\x12\x03\x18\x14\x15\n\x0c\n\x05\x04\x00\x02\x03\x08\x12\x03\x18\x16B\n\x0f\n\x08\x04\x00\x02\x03\x08\x87\t\x0e\x12\x03\x18\x17A\nP\n\x04\x04\x00\x02\x04\x12\x03\x1a\x02F\x1aC SDK package release version, independent of the protocol version.\n\n\x0c\n\x05\x04\x00\x02\x04\x05\x12\x03\x1a\x02\x08\n\x0c\n\x05\x04\x00\x02\x04\x01\x12\x03\x1a\t\x14\n\x0c\n\x05\x04\x00\x02\x04\x03\x12\x03\x1a\x17\x18\n\x0c\n\x05\x04\x00\x02\x04\x08\x12\x03\x1a\x19E\n\x0f\n\x08\x04\x00\x02\x04\x08\x87\t\x0e\x12\x03\x1a\x1aD\nC\n\x04\x04\x00\x02\x05\x12\x03\x1c\x02G\x1a6 Language runtime implementation serving this worker.\n\n\x0c\n\x05\x04\x00\x02\x05\x05\x12\x03\x1c\x02\x08\n\x0c\n\x05\x04\x00\x02\x05\x01\x12\x03\x1c\t\x15\n\x0c\n\x05\x04\x00\x02\x05\x03\x12\x03\x1c\x18\x19\n\x0c\n\x05\x04\x00\x02\x05\x08\x12\x03\x1c\x1aF\n\x0f\n\x08\x04\x00\x02\x05\x08\x87\t\x0e\x12\x03\x1c\x1bE\nA\n\x04\x04\x00\x02\x06\x12\x03\x1e\x02J\x1a4 Language runtime version reported for diagnostics.\n\n\x0c\n\x05\x04\x00\x02\x06\x05\x12\x03\x1e\x02\x08\n\x0c\n\x05\x04\x00\x02\x06\x01\x12\x03\x1e\t\x18\n\x0c\n\x05\x04\x00\x02\x06\x03\x12\x03\x1e\x1b\x1c\n\x0c\n\x05\x04\x00\x02\x06\x08\x12\x03\x1e\x1dI\n\x0f\n\x08\x04\x00\x02\x06\x08\x87\t\x0e\x12\x03\x1e\x1eH\nO\n\x02\x05\x00\x12\x04\"\x00)\x01\x1aC Worker readiness state; unspecified is not a readiness assertion.\n\n\n\n\x03\x05\x00\x01\x12\x03\"\x05\x17\nY\n\x04\x05\x00\x02\x00\x12\x03$\x02\'\x1aL No value supplied; invalid where this contract requires an explicit value.\n\n\x0c\n\x05\x05\x00\x02\x00\x01\x12\x03$\x02\"\n\x0c\n\x05\x05\x00\x02\x00\x02\x12\x03$%&\nA\n\x04\x05\x00\x02\x01\x12\x03&\x02!\x1a4 The worker is ready to receive lifecycle requests.\n\n\x0c\n\x05\x05\x00\x02\x01\x01\x12\x03&\x02\x1c\n\x0c\n\x05\x05\x00\x02\x01\x02\x12\x03&\x1f \n7\n\x04\x05\x00\x02\x02\x12\x03(\x02%\x1a* The worker reports that it is not ready.\n\n\x0c\n\x05\x05\x00\x02\x02\x01\x12\x03(\x02 \n\x0c\n\x05\x05\x00\x02\x02\x02\x12\x03(#$\nb\n\x02\x05\x01\x12\x04,\x003\x01\x1aV Configuration diagnostic severity; unspecified is invalid for a reported diagnostic.\n\n\n\n\x03\x05\x01\x01\x12\x03,\x05\x1a\nY\n\x04\x05\x01\x02\x00\x12\x03.\x02*\x1aL No value supplied; invalid where this contract requires an explicit value.\n\n\x0c\n\x05\x05\x01\x02\x00\x01\x12\x03.\x02%\n\x0c\n\x05\x05\x01\x02\x00\x02\x12\x03.()\nR\n\x04\x05\x01\x02\x01\x12\x030\x02&\x1aE Non-fatal configuration issue that does not prevent initialization.\n\n\x0c\n\x05\x05\x01\x02\x01\x01\x12\x030\x02!\n\x0c\n\x05\x05\x01\x02\x01\x02\x12\x030$%\nW\n\x04\x05\x01\x02\x02\x12\x032\x02$\x1aJ Fatal configuration issue that prevents initialization of the component.\n\n\x0c\n\x05\x05\x01\x02\x02\x01\x12\x032\x02\x1f\n\x0c\n\x05\x05\x01\x02\x02\x02\x12\x032\"#\nc\n\x02\x04\x01\x12\x046\x00D\x01\x1aW Structured configuration warning or error with optional component and field location.\n\n\n\n\x03\x04\x01\x01\x12\x036\x08\x18\n2\n\x04\x04\x01\x02\x00\x12\x048\x02;\x05\x1a$ Severity level for the diagnostic.\n\n\x0c\n\x05\x04\x01\x02\x00\x06\x12\x038\x02\x17\n\x0c\n\x05\x04\x01\x02\x00\x01\x12\x038\x18\x1d\n\x0c\n\x05\x04\x01\x02\x00\x03\x12\x038 !\n\r\n\x05\x04\x01\x02\x00\x08\x12\x048\";\x04\n\x10\n\x08\x04\x01\x02\x00\x08\x87\t\x10\x12\x048#;\x03\nB\n\x04\x04\x01\x02\x01\x12\x03=\x02?\x1a5 Stable diagnostic code suitable for machine checks.\n\n\x0c\n\x05\x04\x01\x02\x01\x05\x12\x03=\x02\x08\n\x0c\n\x05\x04\x01\x02\x01\x01\x12\x03=\t\r\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x03=\x10\x11\n\x0c\n\x05\x04\x01\x02\x01\x08\x12\x03=\x12>\n\x0f\n\x08\x04\x01\x02\x01\x08\x87\t\x0e\x12\x03=\x13=\nL\n\x04\x04\x01\x02\x02\x12\x03?\x02 \x1a? Optional component identifier associated with the diagnostic.\n\n\x0c\n\x05\x04\x01\x02\x02\x04\x12\x03?\x02\n\n\x0c\n\x05\x04\x01\x02\x02\x05\x12\x03?\x0b\x11\n\x0c\n\x05\x04\x01\x02\x02\x01\x12\x03?\x12\x1b\n\x0c\n\x05\x04\x01\x02\x02\x03\x12\x03?\x1e\x1f\nB\n\x04\x04\x01\x02\x03\x12\x03A\x02\x1c\x1a5 Optional field path associated with the diagnostic.\n\n\x0c\n\x05\x04\x01\x02\x03\x04\x12\x03A\x02\n\n\x0c\n\x05\x04\x01\x02\x03\x05\x12\x03A\x0b\x11\n\x0c\n\x05\x04\x01\x02\x03\x01\x12\x03A\x12\x17\n\x0c\n\x05\x04\x01\x02\x03\x03\x12\x03A\x1a\x1b\n1\n\x04\x04\x01\x02\x04\x12\x03C\x02\x15\x1a$ Human-readable diagnostic message.\n\n\x0c\n\x05\x04\x01\x02\x04\x05\x12\x03C\x02\x08\n\x0c\n\x05\x04\x01\x02\x04\x01\x12\x03C\t\x10\n\x0c\n\x05\x04\x01\x02\x04\x03\x12\x03C\x13\x14\nd\n\x02\x04\x02\x12\x04G\x00J\x01\x1aX Present validation result; an empty list is successful validation without diagnostics.\n\n\n\n\x03\x04\x02\x01\x12\x03G\x08\x19\nf\n\x04\x04\x02\x02\x00\x12\x03I\x02(\x1aY Bounded entries returned by this operation; an empty list is a successful empty result.\n\n\x0c\n\x05\x04\x02\x02\x00\x04\x12\x03I\x02\n\n\x0c\n\x05\x04\x02\x02\x00\x06\x12\x03I\x0b\x1b\n\x0c\n\x05\x04\x02\x02\x00\x01\x12\x03I\x1c#\n\x0c\n\x05\x04\x02\x02\x00\x03\x12\x03I&\'\ne\n\x02\x04\x03\x12\x04M\x00R\x01\x1aY Declarative callback and initial conditional-guardrail registrations for one component.\n\n\n\n\x03\x04\x03\x01\x12\x03M\x08\x18\n[\n\x04\x04\x03\x02\x00\x12\x03O\x02*\x1aN Ordered declarations returned by the plugin or visible in the host registry.\n\n\x0c\n\x05\x04\x03\x02\x00\x04\x12\x03O\x02\n\n\x0c\n\x05\x04\x03\x02\x00\x06\x12\x03O\x0b\x17\n\x0c\n\x05\x04\x03\x02\x00\x01\x12\x03O\x18%\n\x0c\n\x05\x04\x03\x02\x00\x03\x12\x03O()\n\\\n\x04\x04\x03\x02\x01\x12\x03Q\x02\\\x1aO Initial conditional filters to install atomically with the registration plan.\n\n\x0c\n\x05\x04\x03\x02\x01\x04\x12\x03Q\x02\n\n\x0c\n\x05\x04\x03\x02\x01\x06\x12\x03Q\x0b5\n\x0c\n\x05\x04\x03\x02\x01\x01\x12\x03Q6W\n\x0c\n\x05\x04\x03\x02\x01\x03\x12\x03QZ[\nS\n\x02\x04\x04\x12\x04U\x00a\x01\x1aG One callback\'s local identity, surface, priority, and chain behavior.\n\n\n\n\x03\x04\x04\x01\x12\x03U\x08\x14\nX\n\x04\x04\x04\x02\x00\x12\x03W\x02E\x1aK Callback identity within its plugin component, before host qualification.\n\n\x0c\n\x05\x04\x04\x02\x00\x05\x12\x03W\x02\x08\n\x0c\n\x05\x04\x04\x02\x00\x01\x12\x03W\t\x13\n\x0c\n\x05\x04\x04\x02\x00\x03\x12\x03W\x16\x17\n\x0c\n\x05\x04\x04\x02\x00\x08\x12\x03W\x18D\n\x0f\n\x08\x04\x04\x02\x00\x08\x87\t\x0e\x12\x03W\x19C\ne\n\x04\x04\x04\x02\x01\x12\x04Y\x02\\\x05\x1aW Required recognized registration surface; unspecified and unknown values are invalid.\n\n\x0c\n\x05\x04\x04\x02\x01\x06\x12\x03Y\x02\x15\n\x0c\n\x05\x04\x04\x02\x01\x01\x12\x03Y\x16\x1d\n\x0c\n\x05\x04\x04\x02\x01\x03\x12\x03Y !\n\r\n\x05\x04\x04\x02\x01\x08\x12\x04Y\"\\\x04\n\x10\n\x08\x04\x04\x02\x01\x08\x87\t\x10\x12\x04Y#\\\x03\na\n\x04\x04\x04\x02\x02\x12\x03^\x02\x15\x1aT Signed callback priority, interpreted according to the runtime\'s surface ordering.\n\n\x0c\n\x05\x04\x04\x02\x02\x05\x12\x03^\x02\x07\n\x0c\n\x05\x04\x04\x02\x02\x01\x12\x03^\x08\x10\n\x0c\n\x05\x04\x04\x02\x02\x03\x12\x03^\x13\x14\nd\n\x04\x04\x04\x02\x03\x12\x03`\x02\x17\x1aW Whether successful request interception ends the remaining request-interceptor chain.\n\n\x0c\n\x05\x04\x04\x02\x03\x05\x12\x03`\x02\x06\n\x0c\n\x05\x04\x04\x02\x03\x01\x12\x03`\x07\x12\n\x0c\n\x05\x04\x04\x02\x03\x03\x12\x03`\x15\x16\nT\n\x02\x04\x05\x12\x04d\x00t\x01\x1aH Declares a static or callback-based filter over runtime registrations.\n\n\n\n\x03\x04\x05\x01\x12\x03d\x082\n_\n\x04\x04\x05\x02\x00\x12\x03f\x02?\x1aR Identity within the enclosing declaration; preserve its exact case and spelling.\n\n\x0c\n\x05\x04\x05\x02\x00\x05\x12\x03f\x02\x08\n\x0c\n\x05\x04\x05\x02\x00\x01\x12\x03f\t\r\n\x0c\n\x05\x04\x05\x02\x00\x03\x12\x03f\x10\x11\n\x0c\n\x05\x04\x05\x02\x00\x08\x12\x03f\x12>\n\x0f\n\x08\x04\x05\x02\x00\x08\x87\t\x0e\x12\x03f\x13=\ng\n\x04\x04\x05\x02\x01\x12\x04h\x02k\x05\x1aY Registration surfaces selected by the filter; validate each surface before applying it.\n\n\x0c\n\x05\x04\x05\x02\x01\x04\x12\x03h\x02\n\n\x0c\n\x05\x04\x05\x02\x01\x06\x12\x03h\x0b\x1e\n\x0c\n\x05\x04\x05\x02\x01\x01\x12\x03h\x1f$\n\x0c\n\x05\x04\x05\x02\x01\x03\x12\x03h\'(\n\r\n\x05\x04\x05\x02\x01\x08\x12\x04h)k\x04\n\x12\n\n\x04\x05\x02\x01\x08\x87\t\x12\x04\x10\x12\x04h*k\x03\no\n\x04\x04\x05\x02\x02\x12\x03n\x02L\x1ab Exact callback registration identity; it must match callback metadata and the selected\n surface.\n\n\x0c\n\x05\x04\x05\x02\x02\x05\x12\x03n\x02\x08\n\x0c\n\x05\x04\x05\x02\x02\x01\x12\x03n\t\x1a\n\x0c\n\x05\x04\x05\x02\x02\x03\x12\x03n\x1d\x1e\n\x0c\n\x05\x04\x05\x02\x02\x08\x12\x03n\x1fK\n\x0f\n\x08\x04\x05\x02\x02\x08\x87\t\x0e\x12\x03n J\nc\n\x04\x04\x05\x02\x03\x12\x03p\x02\x14\x1aV Human-readable explanation for the decision; it does not carry additional authority.\n\n\x0c\n\x05\x04\x05\x02\x03\x05\x12\x03p\x02\x08\n\x0c\n\x05\x04\x05\x02\x03\x01\x12\x03p\t\x0f\n\x0c\n\x05\x04\x05\x02\x03\x03\x12\x03p\x12\x13\no\n\x04\x04\x05\x02\x04\x12\x03s\x02\x14\x1ab Whether the registration delegates its decision to a worker callback instead of a static\n block.\n\n\x0c\n\x05\x04\x05\x02\x04\x05\x12\x03s\x02\x06\n\x0c\n\x05\x04\x05\x02\x04\x01\x12\x03s\x07\x0f\n\x0c\n\x05\x04\x05\x02\x04\x03\x12\x03s\x12\x13\ne\n\x02\x04\x06\x12\x04w\x00|\x01\x1aY Tool request/response value supplied to a sanitizer, condition, or request interceptor.\n\n\n\n\x03\x04\x06\x01\x12\x03w\x08\x1b\nH\n\x04\x04\x06\x02\x00\x12\x03y\x02\x17\x1a; Tool identity associated with the managed tool operation.\n\n\x0c\n\x05\x04\x06\x02\x00\x05\x12\x03y\x02\x08\n\x0c\n\x05\x04\x06\x02\x00\x01\x12\x03y\t\x12\n\x0c\n\x05\x04\x06\x02\x00\x03\x12\x03y\x15\x16\n\\\n\x04\x04\x06\x02\x01\x12\x03{\x02=\x1aO Required application-owned tool value; explicit JSON null is a valid payload.\n\n\x0c\n\x05\x04\x06\x02\x01\x06\x12\x03{\x02\x0b\n\x0c\n\x05\x04\x06\x02\x01\x01\x12\x03{\x0c\x11\n\x0c\n\x05\x04\x06\x02\x01\x03\x12\x03{\x14\x15\n\x0c\n\x05\x04\x06\x02\x01\x08\x12\x03{\x16<\n\x0f\n\x08\x04\x06\x02\x01\x08\x87\t\x19\x12\x03{\x17;\nS\n\x02\x04\x07\x12\x05\x7f\x00\x88\x01\x01\x1aF Managed tool execution input and its invocation-scoped continuation.\n\n\n\n\x03\x04\x07\x01\x12\x03\x7f\x08\x1f\nI\n\x04\x04\x07\x02\x00\x12\x04\x81\x01\x02\x17\x1a; Tool identity associated with the managed tool operation.\n\n\r\n\x05\x04\x07\x02\x00\x05\x12\x04\x81\x01\x02\x08\n\r\n\x05\x04\x07\x02\x00\x01\x12\x04\x81\x01\t\x12\n\r\n\x05\x04\x07\x02\x00\x03\x12\x04\x81\x01\x15\x16\nh\n\x04\x04\x07\x02\x01\x12\x04\x83\x01\x02<\x1aZ Required application-owned tool arguments, including explicit JSON null when applicable.\n\n\r\n\x05\x04\x07\x02\x01\x06\x12\x04\x83\x01\x02\x0b\n\r\n\x05\x04\x07\x02\x01\x01\x12\x04\x83\x01\x0c\x10\n\r\n\x05\x04\x07\x02\x01\x03\x12\x04\x83\x01\x13\x14\n\r\n\x05\x04\x07\x02\x01\x08\x12\x04\x83\x01\x15;\n\x10\n\x08\x04\x07\x02\x01\x08\x87\t\x19\x12\x04\x83\x01\x16:\nZ\n\x04\x04\x07\x02\x02\x12\x04\x85\x01\x02#\x1aL Optional provider-issued correlation ID recorded on the managed tool call.\n\n\r\n\x05\x04\x07\x02\x02\x04\x12\x04\x85\x01\x02\n\n\r\n\x05\x04\x07\x02\x02\x05\x12\x04\x85\x01\x0b\x11\n\r\n\x05\x04\x07\x02\x02\x01\x12\x04\x85\x01\x12\x1e\n\r\n\x05\x04\x07\x02\x02\x03\x12\x04\x85\x01!\"\nl\n\x04\x04\x07\x02\x03\x12\x04\x87\x01\x02J\x1a^ Host-issued continuation bound to the active callback; reject expired or foreign identities.\n\n\r\n\x05\x04\x07\x02\x03\x05\x12\x04\x87\x01\x02\x08\n\r\n\x05\x04\x07\x02\x03\x01\x12\x04\x87\x01\t\x18\n\r\n\x05\x04\x07\x02\x03\x03\x12\x04\x87\x01\x1b\x1c\n\r\n\x05\x04\x07\x02\x03\x08\x12\x04\x87\x01\x1dI\n\x10\n\x08\x04\x07\x02\x03\x08\x87\t\x0e\x12\x04\x87\x01\x1eH\nb\n\x02\x04\x08\x12\x06\x8b\x01\x00\x94\x01\x01\x1aT Asks a conditional callback whether selected middleware registrations may execute.\n\n\x0b\n\x03\x04\x08\x01\x12\x04\x8b\x01\x08\'\ni\n\x04\x04\x08\x02\x00\x12\x06\x8d\x01\x02\x90\x01\x05\x1aY Registration surfaces selected by the filter; validate each surface before applying it.\n\n\r\n\x05\x04\x08\x02\x00\x04\x12\x04\x8d\x01\x02\n\n\r\n\x05\x04\x08\x02\x00\x06\x12\x04\x8d\x01\x0b\x1e\n\r\n\x05\x04\x08\x02\x00\x01\x12\x04\x8d\x01\x1f$\n\r\n\x05\x04\x08\x02\x00\x03\x12\x04\x8d\x01\'(\n\x0f\n\x05\x04\x08\x02\x00\x08\x12\x06\x8d\x01)\x90\x01\x04\n\x14\n\n\x04\x08\x02\x00\x08\x87\t\x12\x04\x10\x12\x06\x8d\x01*\x90\x01\x03\np\n\x04\x04\x08\x02\x01\x12\x04\x93\x01\x02L\x1ab Exact callback registration identity; it must match callback metadata and the selected\n surface.\n\n\r\n\x05\x04\x08\x02\x01\x05\x12\x04\x93\x01\x02\x08\n\r\n\x05\x04\x08\x02\x01\x01\x12\x04\x93\x01\t\x1a\n\r\n\x05\x04\x08\x02\x01\x03\x12\x04\x93\x01\x1d\x1e\n\r\n\x05\x04\x08\x02\x01\x08\x12\x04\x93\x01\x1fK\n\x10\n\x08\x04\x08\x02\x01\x08\x87\t\x0e\x12\x04\x93\x01 J\n\xaa\x01\n\x02\x04\t\x12\x06\x98\x01\x00\x9d\x01\x01\x1a\x9b\x01 Uniform codec reference metadata, independent of implementation or provider.\n The host selects the actual codec through its invocation-scoped capability.\n\n\x0b\n\x03\x04\t\x01\x12\x04\x98\x01\x08\x19\nf\n\x04\x04\t\x02\x00\x12\x04\x9a\x01\x02?\x1aX Open identity namespace supplied by the host; no implementation catalogue is enforced.\n\n\r\n\x05\x04\t\x02\x00\x05\x12\x04\x9a\x01\x02\x08\n\r\n\x05\x04\t\x02\x00\x01\x12\x04\x9a\x01\t\r\n\r\n\x05\x04\t\x02\x00\x03\x12\x04\x9a\x01\x10\x11\n\r\n\x05\x04\t\x02\x00\x08\x12\x04\x9a\x01\x12>\n\x10\n\x08\x04\t\x02\x00\x08\x87\t\x0e\x12\x04\x9a\x01\x13=\nX\n\x04\x04\t\x02\x01\x12\x04\x9c\x01\x02F\x1aJ Optional stable codec identifier; anonymous implementations may omit it.\n\n\r\n\x05\x04\t\x02\x01\x04\x12\x04\x9c\x01\x02\n\n\r\n\x05\x04\t\x02\x01\x05\x12\x04\x9c\x01\x0b\x11\n\r\n\x05\x04\t\x02\x01\x01\x12\x04\x9c\x01\x12\x14\n\r\n\x05\x04\t\x02\x01\x03\x12\x04\x9c\x01\x17\x18\n\r\n\x05\x04\t\x02\x01\x08\x12\x04\x9c\x01\x19E\n\x10\n\x08\x04\t\x02\x01\x08\x87\t\x0e\x12\x04\x9c\x01\x1aD\nV\n\x02\x04\n\x12\x06\xa0\x01\x00\xa5\x01\x01\x1aH Codec reference and optional invocation-scoped host access capability.\n\n\x0b\n\x03\x04\n\x01\x12\x04\xa0\x01\x08\x17\nR\n\x04\x04\n\x02\x00\x12\x04\xa2\x01\x02E\x1aD Required descriptive reference, including when no codec is active.\n\n\r\n\x05\x04\n\x02\x00\x06\x12\x04\xa2\x01\x02\x13\n\r\n\x05\x04\n\x02\x00\x01\x12\x04\xa2\x01\x14\x19\n\r\n\x05\x04\n\x02\x00\x03\x12\x04\xa2\x01\x1c\x1d\n\r\n\x05\x04\n\x02\x00\x08\x12\x04\xa2\x01\x1eD\n\x10\n\x08\x04\n\x02\x00\x08\x87\t\x19\x12\x04\xa2\x01\x1fC\n\\\n\x04\x04\n\x02\x01\x12\x04\xa4\x01\x02Q\x1aN Opaque invocation-scoped host capability, never exposed to plugin callbacks.\n\n\r\n\x05\x04\n\x02\x01\x04\x12\x04\xa4\x01\x02\n\n\r\n\x05\x04\n\x02\x01\x05\x12\x04\xa4\x01\x0b\x11\n\r\n\x05\x04\n\x02\x01\x01\x12\x04\xa4\x01\x12\x1f\n\r\n\x05\x04\n\x02\x01\x03\x12\x04\xa4\x01\"#\n\r\n\x05\x04\n\x02\x01\x08\x12\x04\xa4\x01$P\n\x10\n\x08\x04\n\x02\x01\x08\x87\t\x0e\x12\x04\xa4\x01%O\nX\n\x02\x04\x0b\x12\x06\xa8\x01\x00\xad\x01\x01\x1aJ Provider request and codec context supplied to an LLM request sanitizer.\n\n\x0b\n\x03\x04\x0b\x01\x12\x04\xa8\x01\x08$\nf\n\x04\x04\x0b\x02\x00\x12\x04\xaa\x01\x02@\x1aX Required provider request supplied to this callback, continuation, or codec operation.\n\n\r\n\x05\x04\x0b\x02\x00\x06\x12\x04\xaa\x01\x02\x0c\n\r\n\x05\x04\x0b\x02\x00\x01\x12\x04\xaa\x01\r\x14\n\r\n\x05\x04\x0b\x02\x00\x03\x12\x04\xaa\x01\x17\x18\n\r\n\x05\x04\x0b\x02\x00\x08\x12\x04\xaa\x01\x19?\n\x10\n\x08\x04\x0b\x02\x00\x08\x87\t\x19\x12\x04\xaa\x01\x1a>\nY\n\x04\x04\x0b\x02\x01\x12\x04\xac\x01\x02E\x1aK Required request- or response-direction codec context for this sanitizer.\n\n\r\n\x05\x04\x0b\x02\x01\x06\x12\x04\xac\x01\x02\x11\n\r\n\x05\x04\x0b\x02\x01\x01\x12\x04\xac\x01\x12\x19\n\r\n\x05\x04\x0b\x02\x01\x03\x12\x04\xac\x01\x1c\x1d\n\r\n\x05\x04\x0b\x02\x01\x08\x12\x04\xac\x01\x1eD\n\x10\n\x08\x04\x0b\x02\x01\x08\x87\t\x19\x12\x04\xac\x01\x1fC\nZ\n\x02\x04\x0c\x12\x06\xb0\x01\x00\xb5\x01\x01\x1aL Provider response and codec context supplied to an LLM response sanitizer.\n\n\x0b\n\x03\x04\x0c\x01\x12\x04\xb0\x01\x08%\nH\n\x04\x04\x0c\x02\x00\x12\x04\xb2\x01\x02@\x1a: Required opaque provider response to decode or sanitize.\n\n\r\n\x05\x04\x0c\x02\x00\x06\x12\x04\xb2\x01\x02\x0b\n\r\n\x05\x04\x0c\x02\x00\x01\x12\x04\xb2\x01\x0c\x14\n\r\n\x05\x04\x0c\x02\x00\x03\x12\x04\xb2\x01\x17\x18\n\r\n\x05\x04\x0c\x02\x00\x08\x12\x04\xb2\x01\x19?\n\x10\n\x08\x04\x0c\x02\x00\x08\x87\t\x19\x12\x04\xb2\x01\x1a>\nY\n\x04\x04\x0c\x02\x01\x12\x04\xb4\x01\x02E\x1aK Required request- or response-direction codec context for this sanitizer.\n\n\r\n\x05\x04\x0c\x02\x01\x06\x12\x04\xb4\x01\x02\x11\n\r\n\x05\x04\x0c\x02\x01\x01\x12\x04\xb4\x01\x12\x19\n\r\n\x05\x04\x0c\x02\x01\x03\x12\x04\xb4\x01\x1c\x1d\n\r\n\x05\x04\x0c\x02\x01\x08\x12\x04\xb4\x01\x1eD\n\x10\n\x08\x04\x0c\x02\x01\x08\x87\t\x19\x12\x04\xb4\x01\x1fC\nH\n\x02\x04\r\x12\x06\xb8\x01\x00\xbb\x01\x01\x1a: Provider request supplied to an LLM execution condition.\n\n\x0b\n\x03\x04\r\x01\x12\x04\xb8\x01\x08 \nf\n\x04\x04\r\x02\x00\x12\x04\xba\x01\x02@\x1aX Required provider request supplied to this callback, continuation, or codec operation.\n\n\r\n\x05\x04\r\x02\x00\x06\x12\x04\xba\x01\x02\x0c\n\r\n\x05\x04\r\x02\x00\x01\x12\x04\xba\x01\r\x14\n\r\n\x05\x04\r\x02\x00\x03\x12\x04\xba\x01\x17\x18\n\r\n\x05\x04\r\x02\x00\x08\x12\x04\xba\x01\x19?\n\x10\n\x08\x04\r\x02\x00\x08\x87\t\x19\x12\x04\xba\x01\x1a>\nN\n\x02\x04\x0e\x12\x06\xbe\x01\x00\xc6\x01\x01\x1a@ Request-interceptor input with optional normalized annotation.\n\n\x0b\n\x03\x04\x0e\x01\x12\x04\xbe\x01\x08\x1c\nI\n\x04\x04\x0e\x02\x00\x12\x04\xc0\x01\x02\x18\x1a; Model identity associated with the managed LLM operation.\n\n\r\n\x05\x04\x0e\x02\x00\x05\x12\x04\xc0\x01\x02\x08\n\r\n\x05\x04\x0e\x02\x00\x01\x12\x04\xc0\x01\t\x13\n\r\n\x05\x04\x0e\x02\x00\x03\x12\x04\xc0\x01\x16\x17\nf\n\x04\x04\x0e\x02\x01\x12\x04\xc2\x01\x02@\x1aX Required provider request supplied to this callback, continuation, or codec operation.\n\n\r\n\x05\x04\x0e\x02\x01\x06\x12\x04\xc2\x01\x02\x0c\n\r\n\x05\x04\x0e\x02\x01\x01\x12\x04\xc2\x01\r\x14\n\r\n\x05\x04\x0e\x02\x01\x03\x12\x04\xc2\x01\x17\x18\n\r\n\x05\x04\x0e\x02\x01\x08\x12\x04\xc2\x01\x19?\n\x10\n\x08\x04\x0e\x02\x01\x08\x87\t\x19\x12\x04\xc2\x01\x1a>\nr\n\x04\x04\x0e\x02\x02\x12\x04\xc5\x01\x02,\x1ad Optional normalized request annotation; authoritative for content when a request codec is\n active.\n\n\r\n\x05\x04\x0e\x02\x02\x06\x12\x04\xc5\x01\x02\x15\n\r\n\x05\x04\x0e\x02\x02\x01\x12\x04\xc5\x01\x16\'\n\r\n\x05\x04\x0e\x02\x02\x03\x12\x04\xc5\x01*+\nQ\n\x02\x04\x0f\x12\x06\xc9\x01\x00\xd4\x01\x01\x1aC Unary LLM execution input with request and response codec access.\n\n\x0b\n\x03\x04\x0f\x01\x12\x04\xc9\x01\x08\x1e\nI\n\x04\x04\x0f\x02\x00\x12\x04\xcb\x01\x02\x18\x1a; Model identity associated with the managed LLM operation.\n\n\r\n\x05\x04\x0f\x02\x00\x05\x12\x04\xcb\x01\x02\x08\n\r\n\x05\x04\x0f\x02\x00\x01\x12\x04\xcb\x01\t\x13\n\r\n\x05\x04\x0f\x02\x00\x03\x12\x04\xcb\x01\x16\x17\nf\n\x04\x04\x0f\x02\x01\x12\x04\xcd\x01\x02@\x1aX Required provider request supplied to this callback, continuation, or codec operation.\n\n\r\n\x05\x04\x0f\x02\x01\x06\x12\x04\xcd\x01\x02\x0c\n\r\n\x05\x04\x0f\x02\x01\x01\x12\x04\xcd\x01\r\x14\n\r\n\x05\x04\x0f\x02\x01\x03\x12\x04\xcd\x01\x17\x18\n\r\n\x05\x04\x0f\x02\x01\x08\x12\x04\xcd\x01\x19?\n\x10\n\x08\x04\x0f\x02\x01\x08\x87\t\x19\x12\x04\xcd\x01\x1a>\nl\n\x04\x04\x0f\x02\x02\x12\x04\xcf\x01\x02J\x1a^ Host-issued continuation bound to the active callback; reject expired or foreign identities.\n\n\r\n\x05\x04\x0f\x02\x02\x05\x12\x04\xcf\x01\x02\x08\n\r\n\x05\x04\x0f\x02\x02\x01\x12\x04\xcf\x01\t\x18\n\r\n\x05\x04\x0f\x02\x02\x03\x12\x04\xcf\x01\x1b\x1c\n\r\n\x05\x04\x0f\x02\x02\x08\x12\x04\xcf\x01\x1dI\n\x10\n\x08\x04\x0f\x02\x02\x08\x87\t\x0e\x12\x04\xcf\x01\x1eH\na\n\x04\x04\x0f\x02\x03\x12\x04\xd1\x01\x02K\x1aS Required request codec identity and optional invocation-scoped access capability.\n\n\r\n\x05\x04\x0f\x02\x03\x06\x12\x04\xd1\x01\x02\x11\n\r\n\x05\x04\x0f\x02\x03\x01\x12\x04\xd1\x01\x12\x1f\n\r\n\x05\x04\x0f\x02\x03\x03\x12\x04\xd1\x01\"#\n\r\n\x05\x04\x0f\x02\x03\x08\x12\x04\xd1\x01$J\n\x10\n\x08\x04\x0f\x02\x03\x08\x87\t\x19\x12\x04\xd1\x01%I\ne\n\x04\x04\x0f\x02\x04\x12\x04\xd3\x01\x02L\x1aW Required unary response codec context; streaming execution does not carry this field.\n\n\r\n\x05\x04\x0f\x02\x04\x06\x12\x04\xd3\x01\x02\x11\n\r\n\x05\x04\x0f\x02\x04\x01\x12\x04\xd3\x01\x12 \n\r\n\x05\x04\x0f\x02\x04\x03\x12\x04\xd3\x01#$\n\r\n\x05\x04\x0f\x02\x04\x08\x12\x04\xd3\x01%K\n\x10\n\x08\x04\x0f\x02\x04\x08\x87\t\x19\x12\x04\xd3\x01&J\nX\n\x02\x04\x10\x12\x06\xd7\x01\x00\xe0\x01\x01\x1aJ Explicit allow or nonempty block reason; missing selection is malformed.\n\n\x0b\n\x03\x04\x10\x01\x12\x04\xd7\x01\x08\x19\n^\n\x04\x04\x10\x08\x00\x12\x06\xd9\x01\x02\xdf\x01\x03\x1aN Exactly one recognized alternative is required when this message is present.\n\n\r\n\x05\x04\x10\x08\x00\x01\x12\x04\xd9\x01\x08\x10\n\r\n\x05\x04\x10\x08\x00\x02\x12\x04\xda\x01\x040\n\x10\n\x08\x04\x10\x08\x00\x02\x87\t\x01\x12\x04\xda\x01\x040\nZ\n\x04\x04\x10\x02\x00\x12\x04\xdc\x01\x04$\x1aL Explicit permission to proceed; absence of the decision is not permission.\n\n\r\n\x05\x04\x10\x02\x00\x06\x12\x04\xdc\x01\x04\x19\n\r\n\x05\x04\x10\x02\x00\x01\x12\x04\xdc\x01\x1a\x1f\n\r\n\x05\x04\x10\x02\x00\x03\x12\x04\xdc\x01\"#\nW\n\x04\x04\x10\x02\x01\x12\x04\xde\x01\x04I\x1aI Nonempty reason required; absence of the oneof is malformed, not allow.\n\n\r\n\x05\x04\x10\x02\x01\x05\x12\x04\xde\x01\x04\n\n\r\n\x05\x04\x10\x02\x01\x01\x12\x04\xde\x01\x0b\x17\n\r\n\x05\x04\x10\x02\x01\x03\x12\x04\xde\x01\x1a\x1b\n\r\n\x05\x04\x10\x02\x01\x08\x12\x04\xde\x01\x1cH\n\x10\n\x08\x04\x10\x02\x01\x08\x87\t\x0e\x12\x04\xde\x01\x1dG\nb\n\x02\x04\x11\x12\x06\xe3\x01\x00\xf0\x01\x01\x1aT Rewritten request, optional authoritative annotation, pending marks, and evidence.\n\n\x0b\n\x03\x04\x11\x01\x12\x04\xe3\x01\x08\"\n\xe7\x01\n\x04\x04\x11\x02\x00\x12\x04\xe7\x01\x02@\x1a\xd8\x01 Rewritten provider request when no request codec is active. With an active request codec,\n callbacks can change headers but must leave content unchanged. Change the provider body\n through annotated_request instead.\n\n\r\n\x05\x04\x11\x02\x00\x06\x12\x04\xe7\x01\x02\x0c\n\r\n\x05\x04\x11\x02\x00\x01\x12\x04\xe7\x01\r\x14\n\r\n\x05\x04\x11\x02\x00\x03\x12\x04\xe7\x01\x17\x18\n\r\n\x05\x04\x11\x02\x00\x08\x12\x04\xe7\x01\x19?\n\x10\n\x08\x04\x11\x02\x00\x08\x87\t\x19\x12\x04\xe7\x01\x1a>\n\xd2\x01\n\x04\x04\x11\x02\x01\x12\x04\xeb\x01\x02,\x1a\xc3\x01 Normalized request annotation to carry forward. An active request codec requires this\n value and uses it as the source of provider content. Without a request codec, the\n annotation is optional.\n\n\r\n\x05\x04\x11\x02\x01\x06\x12\x04\xeb\x01\x02\x15\n\r\n\x05\x04\x11\x02\x01\x01\x12\x04\xeb\x01\x16\'\n\r\n\x05\x04\x11\x02\x01\x03\x12\x04\xeb\x01*+\nS\n\x04\x04\x11\x02\x02\x12\x04\xed\x01\x02-\x1aE Ordered marks to emit after Relay creates and starts the LLM scope.\n\n\r\n\x05\x04\x11\x02\x02\x04\x12\x04\xed\x01\x02\n\n\r\n\x05\x04\x11\x02\x02\x06\x12\x04\xed\x01\x0b\x1a\n\r\n\x05\x04\x11\x02\x02\x01\x12\x04\xed\x01\x1b(\n\r\n\x05\x04\x11\x02\x02\x03\x12\x04\xed\x01+,\nO\n\x04\x04\x11\x02\x03\x12\x04\xef\x01\x02F\x1aA Ordered plugin-neutral optimization evidence for this LLM call.\n\n\r\n\x05\x04\x11\x02\x03\x04\x12\x04\xef\x01\x02\n\n\r\n\x05\x04\x11\x02\x03\x06\x12\x04\xef\x01\x0b&\n\r\n\x05\x04\x11\x02\x03\x01\x12\x04\xef\x01\'A\n\r\n\x05\x04\x11\x02\x03\x03\x12\x04\xef\x01DE\nO\n\x02\x04\x12\x12\x06\xf3\x01\x00\xf8\x01\x01\x1aA Application-visible tool result and optional opaque annotation.\n\n\x0b\n\x03\x04\x12\x01\x12\x04\xf3\x01\x08\x1b\n[\n\x04\x04\x12\x02\x00\x12\x04\xf5\x01\x02>\x1aM Required application-owned result; the JSON bytes may encode explicit null.\n\n\r\n\x05\x04\x12\x02\x00\x06\x12\x04\xf5\x01\x02\x0b\n\r\n\x05\x04\x12\x02\x00\x01\x12\x04\xf5\x01\x0c\x12\n\r\n\x05\x04\x12\x02\x00\x03\x12\x04\xf5\x01\x15\x16\n\r\n\x05\x04\x12\x02\x00\x08\x12\x04\xf5\x01\x17=\n\x10\n\x08\x04\x12\x02\x00\x08\x87\t\x19\x12\x04\xf5\x01\x18<\nU\n\x04\x04\x12\x02\x01\x12\x04\xf7\x01\x02\x1b\x1aG Optional opaque annotation. Explicit JSON null normalizes to absence.\n\n\r\n\x05\x04\x12\x02\x01\x06\x12\x04\xf7\x01\x02\x0b\n\r\n\x05\x04\x12\x02\x01\x01\x12\x04\xf7\x01\x0c\x16\n\r\n\x05\x04\x12\x02\x01\x03\x12\x04\xf7\x01\x19\x1a\n\\\n\x02\x04\x13\x12\x06\xfb\x01\x00\x80\x02\x01\x1aN Canonical tool result plus ordered marks for host lifecycle materialization.\n\n\x0b\n\x03\x04\x13\x01\x12\x04\xfb\x01\x08%\nN\n\x04\x04\x13\x02\x00\x12\x04\xfd\x01\x02G\x1a@ Required canonical application result and optional annotation.\n\n\r\n\x05\x04\x13\x02\x00\x06\x12\x04\xfd\x01\x02\x15\n\r\n\x05\x04\x13\x02\x00\x01\x12\x04\xfd\x01\x16\x1b\n\r\n\x05\x04\x13\x02\x00\x03\x12\x04\xfd\x01\x1e\x1f\n\r\n\x05\x04\x13\x02\x00\x08\x12\x04\xfd\x01 F\n\x10\n\x08\x04\x13\x02\x00\x08\x87\t\x19\x12\x04\xfd\x01!E\nK\n\x04\x04\x13\x02\x01\x12\x04\xff\x01\x02-\x1a= Ordered marks for the managed tool lifecycle owner to emit.\n\n\r\n\x05\x04\x13\x02\x01\x04\x12\x04\xff\x01\x02\n\n\r\n\x05\x04\x13\x02\x01\x06\x12\x04\xff\x01\x0b\x1a\n\r\n\x05\x04\x13\x02\x01\x01\x12\x04\xff\x01\x1b(\n\r\n\x05\x04\x13\x02\x01\x03\x12\x04\xff\x01+,\nQ\n\x02\x04\x14\x12\x06\x83\x02\x00\x88\x02\x01\x1aC Opaque host-issued stack/parent bindings, not public scope UUIDs.\n\n\x0b\n\x03\x04\x14\x01\x12\x04\x83\x02\x08\x14\nQ\n\x04\x04\x14\x02\x00\x12\x04\x85\x02\x02I\x1aC Opaque host-issued scope-stack binding, owned by this activation.\n\n\r\n\x05\x04\x14\x02\x00\x05\x12\x04\x85\x02\x02\x08\n\r\n\x05\x04\x14\x02\x00\x01\x12\x04\x85\x02\t\x17\n\r\n\x05\x04\x14\x02\x00\x03\x12\x04\x85\x02\x1a\x1b\n\r\n\x05\x04\x14\x02\x00\x08\x12\x04\x85\x02\x1cH\n\x10\n\x08\x04\x14\x02\x00\x08\x87\t\x0e\x12\x04\x85\x02\x1dG\nj\n\x04\x04\x14\x02\x01\x12\x04\x87\x02\x02\x1d\x1a\\ Opaque parent binding within the selected stack; empty selects no explicit parent binding.\n\n\r\n\x05\x04\x14\x02\x01\x05\x12\x04\x87\x02\x02\x08\n\r\n\x05\x04\x14\x02\x01\x01\x12\x04\x87\x02\t\x18\n\r\n\x05\x04\x14\x02\x01\x03\x12\x04\x87\x02\x1b\x1c\nR\n\x02\x04\x15\x12\x06\x8b\x02\x00\x93\x02\x01\x1aD Owned public scope identity, distinct from an opaque host binding.\n\n\x0b\n\x03\x04\x15\x01\x12\x04\x8b\x02\x08\x17\nO\n\x04\x04\x15\x02\x00\x12\x04\x8d\x02\x02C\x1aA Actual scope handle UUID, never a transport binding identifier.\n\n\r\n\x05\x04\x15\x02\x00\x05\x12\x04\x8d\x02\x02\x08\n\r\n\x05\x04\x15\x02\x00\x01\x12\x04\x8d\x02\t\x11\n\r\n\x05\x04\x15\x02\x00\x03\x12\x04\x8d\x02\x14\x15\n\r\n\x05\x04\x15\x02\x00\x08\x12\x04\x8d\x02\x16B\n\x10\n\x08\x04\x15\x02\x00\x08\x87\t\x0e\x12\x04\x8d\x02\x17A\nX\n\x04\x04\x15\x02\x01\x12\x06\x8f\x02\x02\x92\x02\x05\x1aH Canonical semantic category; future encoded categories become Unknown.\n\n\r\n\x05\x04\x15\x02\x01\x06\x12\x04\x8f\x02\x02\x0b\n\r\n\x05\x04\x15\x02\x01\x01\x12\x04\x8f\x02\x0c\x16\n\r\n\x05\x04\x15\x02\x01\x03\x12\x04\x8f\x02\x19\x1a\n\x0f\n\x05\x04\x15\x02\x01\x08\x12\x06\x8f\x02\x1b\x92\x02\x04\n\x12\n\x08\x04\x15\x02\x01\x08\x87\t\x10\x12\x06\x8f\x02\x1c\x92\x02\x03\nL\n\x02\x04\x16\x12\x06\x96\x02\x00\x99\x02\x01\x1a> Owned scope identities ordered from root to the current top.\n\n\x0b\n\x03\x04\x16\x01\x12\x04\x96\x02\x08\x1a\nF\n\x04\x04\x16\x02\x00\x12\x04\x98\x02\x02&\x1a8 Ordered scope identities, including the implicit root.\n\n\r\n\x05\x04\x16\x02\x00\x04\x12\x04\x98\x02\x02\n\n\r\n\x05\x04\x16\x02\x00\x06\x12\x04\x98\x02\x0b\x1a\n\r\n\x05\x04\x16\x02\x00\x01\x12\x04\x98\x02\x1b!\n\r\n\x05\x04\x16\x02\x00\x03\x12\x04\x98\x02$%\nX\n\x02\x04\x17\x12\x06\x9c\x02\x00\xa3\x02\x01\x1aJ One operational diagnostic code, safe description, and occurrence count.\n\n\x0b\n\x03\x04\x17\x01\x12\x04\x9c\x02\x08\x19\n`\n\x04\x04\x17\x02\x00\x12\x04\x9e\x02\x02?\x1aR Stable machine-readable classification; text messages must not be used as codes.\n\n\r\n\x05\x04\x17\x02\x00\x05\x12\x04\x9e\x02\x02\x08\n\r\n\x05\x04\x17\x02\x00\x01\x12\x04\x9e\x02\t\r\n\r\n\x05\x04\x17\x02\x00\x03\x12\x04\x9e\x02\x10\x11\n\r\n\x05\x04\x17\x02\x00\x08\x12\x04\x9e\x02\x12>\n\x10\n\x08\x04\x17\x02\x00\x08\x87\t\x0e\x12\x04\x9e\x02\x13=\na\n\x04\x04\x17\x02\x01\x12\x04\xa0\x02\x02\x15\x1aS Human-readable description; consumers must not infer control flow from this text.\n\n\r\n\x05\x04\x17\x02\x01\x05\x12\x04\xa0\x02\x02\x08\n\r\n\x05\x04\x17\x02\x01\x01\x12\x04\xa0\x02\t\x10\n\r\n\x05\x04\x17\x02\x01\x03\x12\x04\xa0\x02\x13\x14\nM\n\x04\x04\x17\x02\x02\x12\x04\xa2\x02\x02\x13\x1a? Accumulated occurrences for this operational diagnostic code.\n\n\r\n\x05\x04\x17\x02\x02\x05\x12\x04\xa2\x02\x02\x08\n\r\n\x05\x04\x17\x02\x02\x01\x12\x04\xa2\x02\t\x0e\n\r\n\x05\x04\x17\x02\x02\x03\x12\x04\xa2\x02\x11\x12\nX\n\x02\x04\x18\x12\x06\xa6\x02\x00\xb1\x02\x01\x1aJ Selects core, global API, or plugin ownership of a runtime registration.\n\n\x0b\n\x03\x04\x18\x01\x12\x04\xa6\x02\x08 \n^\n\x04\x04\x18\x08\x00\x12\x06\xa8\x02\x02\xb0\x02\x03\x1aN Exactly one recognized alternative is required when this message is present.\n\n\r\n\x05\x04\x18\x08\x00\x01\x12\x04\xa8\x02\x08\r\n\r\n\x05\x04\x18\x08\x00\x02\x12\x04\xa9\x02\x040\n\x10\n\x08\x04\x18\x08\x00\x02\x87\t\x01\x12\x04\xa9\x02\x040\nV\n\x04\x04\x18\x02\x00\x12\x04\xab\x02\x04#\x1aH Registration owned by the core runtime rather than a plugin component.\n\n\r\n\x05\x04\x18\x02\x00\x06\x12\x04\xab\x02\x04\x19\n\r\n\x05\x04\x18\x02\x00\x01\x12\x04\xab\x02\x1a\x1e\n\r\n\x05\x04\x18\x02\x00\x03\x12\x04\xab\x02!\"\nF\n\x04\x04\x18\x02\x01\x12\x04\xad\x02\x04)\x1a8 Registration installed through the process-global API.\n\n\r\n\x05\x04\x18\x02\x01\x06\x12\x04\xad\x02\x04\x19\n\r\n\x05\x04\x18\x02\x01\x01\x12\x04\xad\x02\x1a$\n\r\n\x05\x04\x18\x02\x01\x03\x12\x04\xad\x02\'(\n9\n\x04\x04\x18\x02\x02\x12\x04\xaf\x02\x04\'\x1a+ Plugin component owning the registration.\n\n\r\n\x05\x04\x18\x02\x02\x06\x12\x04\xaf\x02\x04\x1b\n\r\n\x05\x04\x18\x02\x02\x01\x12\x04\xaf\x02\x1c\"\n\r\n\x05\x04\x18\x02\x02\x03\x12\x04\xaf\x02%&\n`\n\x02\x04\x19\x12\x06\xb4\x02\x00\xb9\x02\x01\x1aR Identifies the plugin kind and optional component ordinal owning a registration.\n\n\x0b\n\x03\x04\x19\x01\x12\x04\xb4\x02\x08\x1f\nY\n\x04\x04\x19\x02\x00\x12\x04\xb6\x02\x02F\x1aK Registered plugin kind; it must agree with the activated plugin identity.\n\n\r\n\x05\x04\x19\x02\x00\x05\x12\x04\xb6\x02\x02\x08\n\r\n\x05\x04\x19\x02\x00\x01\x12\x04\xb6\x02\t\x14\n\r\n\x05\x04\x19\x02\x00\x03\x12\x04\xb6\x02\x17\x18\n\r\n\x05\x04\x19\x02\x00\x08\x12\x04\xb6\x02\x19E\n\x10\n\x08\x04\x19\x02\x00\x08\x87\t\x0e\x12\x04\xb6\x02\x1aD\n]\n\x04\x04\x19\x02\x01\x12\x04\xb8\x02\x02(\x1aO Optional zero-based component ordinal within the owning plugin configuration.\n\n\r\n\x05\x04\x19\x02\x01\x04\x12\x04\xb8\x02\x02\n\n\r\n\x05\x04\x19\x02\x01\x05\x12\x04\xb8\x02\x0b\x11\n\r\n\x05\x04\x19\x02\x01\x01\x12\x04\xb8\x02\x12#\n\r\n\x05\x04\x19\x02\x01\x03\x12\x04\xb8\x02&\'\nT\n\x02\x04\x1a\x12\x06\xbc\x02\x00\xc8\x02\x01\x1aF Describes local/effective callback identity, surface, and ownership.\n\n\x0b\n\x03\x04\x1a\x01\x12\x04\xbc\x02\x08#\n\'\n\x04\x04\x1a\x02\x00\x12\x06\xbe\x02\x02\xc1\x02\x05\x1a\x17 Registration surface.\n\n\r\n\x05\x04\x1a\x02\x00\x06\x12\x04\xbe\x02\x02\x15\n\r\n\x05\x04\x1a\x02\x00\x01\x12\x04\xbe\x02\x16\x1a\n\r\n\x05\x04\x1a\x02\x00\x03\x12\x04\xbe\x02\x1d\x1e\n\x0f\n\x05\x04\x1a\x02\x00\x08\x12\x06\xbe\x02\x1f\xc1\x02\x04\n\x12\n\x08\x04\x1a\x02\x00\x08\x87\t\x10\x12\x06\xbe\x02 \xc1\x02\x03\n8\n\x04\x04\x1a\x02\x01\x12\x04\xc3\x02\x02E\x1a* Name authored by the registration owner.\n\n\r\n\x05\x04\x1a\x02\x01\x05\x12\x04\xc3\x02\x02\x08\n\r\n\x05\x04\x1a\x02\x01\x01\x12\x04\xc3\x02\t\x13\n\r\n\x05\x04\x1a\x02\x01\x03\x12\x04\xc3\x02\x16\x17\n\r\n\x05\x04\x1a\x02\x01\x08\x12\x04\xc3\x02\x18D\n\x10\n\x08\x04\x1a\x02\x01\x08\x87\t\x0e\x12\x04\xc3\x02\x19C\n>\n\x04\x04\x1a\x02\x02\x12\x04\xc5\x02\x02I\x1a0 Runtime-qualified name used for gate matching.\n\n\r\n\x05\x04\x1a\x02\x02\x05\x12\x04\xc5\x02\x02\x08\n\r\n\x05\x04\x1a\x02\x02\x01\x12\x04\xc5\x02\t\x17\n\r\n\x05\x04\x1a\x02\x02\x03\x12\x04\xc5\x02\x1a\x1b\n\r\n\x05\x04\x1a\x02\x02\x08\x12\x04\xc5\x02\x1cH\n\x10\n\x08\x04\x1a\x02\x02\x08\x87\t\x0e\x12\x04\xc5\x02\x1dG\n,\n\x04\x04\x1a\x02\x03\x12\x04\xc7\x02\x02L\x1a\x1e Registration owner metadata.\n\n\r\n\x05\x04\x1a\x02\x03\x06\x12\x04\xc7\x02\x02\x1a\n\r\n\x05\x04\x1a\x02\x03\x01\x12\x04\xc7\x02\x1b \n\r\n\x05\x04\x1a\x02\x03\x03\x12\x04\xc7\x02#$\n\r\n\x05\x04\x1a\x02\x03\x08\x12\x04\xc7\x02%K\n\x10\n\x08\x04\x1a\x02\x03\x08\x87\t\x19\x12\x04\xc7\x02&Jb\x06proto3\n\x97\xad\x01\n7nvidia/nemo/relay/worker/v1/plugin_worker_service.proto\x12\x1bnvidia.nemo.relay.worker.v1\x1a\x1bbuf/validate/validate.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a(nvidia/nemo/relay/worker/v1/common.proto\x1a\'nvidia/nemo/relay/worker/v1/event.proto\x1a%nvidia/nemo/relay/worker/v1/llm.proto\x1a)nvidia/nemo/relay/worker/v1/runtime.proto\"\xbb\x02\n\x10HandshakeRequest\x12R\n\x0bcredentials\x18\x01 \x01(\x0b2(.nvidia.nemo.relay.worker.v1.CredentialsB\x06\xbaH\x03\xc8\x01\x01R\x0bcredentials\x12$\n\tplugin_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x08pluginId\x12,\n\rrelay_version\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0crelayVersion\x12Q\n\x08protocol\x18\x04 \x01(\x0b2-.nvidia.nemo.relay.worker.v1.ProtocolIdentityB\x06\xbaH\x03\xc8\x01\x01R\x08protocol\x12,\n\rhost_endpoint\x18\x05 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0chostEndpoint\"\x94\x02\n\x11HandshakeResponse\x12O\n\x08identity\x18\x01 \x01(\x0b2+.nvidia.nemo.relay.worker.v1.WorkerIdentityB\x06\xbaH\x03\xc8\x01\x01R\x08identity\x12<\n\x1aallows_multiple_components\x18\x02 \x01(\x08R\x18allowsMultipleComponents\x12p\n\x12supported_surfaces\x18\x03 \x03(\x0e20.nvidia.nemo.relay.worker.v1.RegistrationSurfaceB\x0f\xbaH\x0c\x92\x01\t\"\x07\x82\x01\x04\x10\x01 \x00R\x11supportedSurfaces\"c\n\rHealthRequest\x12R\n\x0bcredentials\x18\x01 \x01(\x0b2(.nvidia.nemo.relay.worker.v1.CredentialsB\x06\xbaH\x03\xc8\x01\x01R\x0bcredentials\"\xd0\x01\n\x0eHealthResponse\x12S\n\x06status\x18\x01 \x01(\x0e2/.nvidia.nemo.relay.worker.v1.WorkerHealthStatusB\n\xbaH\x07\x82\x01\x04\x10\x01 \x00R\x06status\x12\x18\n\x07message\x18\x02 \x01(\tR\x07message\x12O\n\x08identity\x18\x03 \x01(\x0b2+.nvidia.nemo.relay.worker.v1.WorkerIdentityB\x06\xbaH\x03\xc8\x01\x01R\x08identity\"\xd3\x01\n\x0fValidateRequest\x12R\n\x0bcredentials\x18\x01 \x01(\x0b2(.nvidia.nemo.relay.worker.v1.CredentialsB\x06\xbaH\x03\xc8\x01\x01R\x0bcredentials\x12$\n\tplugin_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x08pluginId\x12F\n\x06config\x18\x03 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueB\x06\xbaH\x03\xc8\x01\x01R\x06config\"\xb9\x01\n\x10ValidateResponse\x12R\n\x0bdiagnostics\x18\x01 \x01(\x0b2..nvidia.nemo.relay.worker.v1.ConfigDiagnosticsH\x00R\x0bdiagnostics\x12@\n\x05error\x18\x02 \x01(\x0b2(.nvidia.nemo.relay.worker.v1.WorkerErrorH\x00R\x05errorB\x0f\n\x06result\x12\x05\xbaH\x02\x08\x01\"\xd3\x01\n\x0fRegisterRequest\x12R\n\x0bcredentials\x18\x01 \x01(\x0b2(.nvidia.nemo.relay.worker.v1.CredentialsB\x06\xbaH\x03\xc8\x01\x01R\x0bcredentials\x12$\n\tplugin_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x08pluginId\x12F\n\x06config\x18\x03 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueB\x06\xbaH\x03\xc8\x01\x01R\x06config\"\xaa\x01\n\x10RegisterResponse\x12C\n\x04plan\x18\x01 \x01(\x0b2-.nvidia.nemo.relay.worker.v1.RegistrationPlanH\x00R\x04plan\x12@\n\x05error\x18\x02 \x01(\x0b2(.nvidia.nemo.relay.worker.v1.WorkerErrorH\x00R\x05errorB\x0f\n\x06result\x12\x05\xbaH\x02\x08\x01\"\xac\x14\n\rInvokeRequest\x12R\n\x0bcredentials\x18\x01 \x01(\x0b2(.nvidia.nemo.relay.worker.v1.CredentialsB\x06\xbaH\x03\xc8\x01\x01R\x0bcredentials\x12,\n\rinvocation_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0cinvocationId\x124\n\x11registration_name\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x10registrationName\x12?\n\x05scope\x18\x04 \x01(\x0b2).nvidia.nemo.relay.worker.v1.ScopeContextR\x05scope\x12D\n\nsubscriber\x18\n \x01(\x0b2\".nvidia.nemo.relay.worker.v1.EventH\x00R\nsubscriber\x12\\\n\x17event_metadata_injector\x18\x0b \x01(\x0b2\".nvidia.nemo.relay.worker.v1.EventH\x00R\x15eventMetadataInjector\x12\\\n\x17mark_sanitize_guardrail\x18\x0c \x01(\x0b2\".nvidia.nemo.relay.worker.v1.EventH\x00R\x15markSanitizeGuardrail\x12i\n\x1escope_sanitize_start_guardrail\x18\r \x01(\x0b2\".nvidia.nemo.relay.worker.v1.EventH\x00R\x1bscopeSanitizeStartGuardrail\x12e\n\x1cscope_sanitize_end_guardrail\x18\x0e \x01(\x0b2\".nvidia.nemo.relay.worker.v1.EventH\x00R\x19scopeSanitizeEndGuardrail\x12y\n\x1ftool_sanitize_request_guardrail\x18\x14 \x01(\x0b20.nvidia.nemo.relay.worker.v1.ToolValueInvocationH\x00R\x1ctoolSanitizeRequestGuardrail\x12{\n tool_sanitize_response_guardrail\x18\x15 \x01(\x0b20.nvidia.nemo.relay.worker.v1.ToolValueInvocationH\x00R\x1dtoolSanitizeResponseGuardrail\x12\x83\x01\n$tool_conditional_execution_guardrail\x18\x16 \x01(\x0b20.nvidia.nemo.relay.worker.v1.ToolValueInvocationH\x00R!toolConditionalExecutionGuardrail\x12h\n\x16tool_request_intercept\x18\x17 \x01(\x0b20.nvidia.nemo.relay.worker.v1.ToolValueInvocationH\x00R\x14toolRequestIntercept\x12p\n\x18tool_execution_intercept\x18\x18 \x01(\x0b24.nvidia.nemo.relay.worker.v1.ToolExecutionInvocationH\x00R\x16toolExecutionIntercept\x12\x80\x01\n\x1ellm_sanitize_request_guardrail\x18\x1e \x01(\x0b29.nvidia.nemo.relay.worker.v1.LlmSanitizeRequestInvocationH\x00R\x1bllmSanitizeRequestGuardrail\x12\x83\x01\n\x1fllm_sanitize_response_guardrail\x18\x1f \x01(\x0b2:.nvidia.nemo.relay.worker.v1.LlmSanitizeResponseInvocationH\x00R\x1cllmSanitizeResponseGuardrail\x12\x86\x01\n#llm_conditional_execution_guardrail\x18 \x01(\x0b25.nvidia.nemo.relay.worker.v1.LlmConditionalInvocationH\x00R llmConditionalExecutionGuardrail\x12g\n\x15llm_request_intercept\x18! \x01(\x0b21.nvidia.nemo.relay.worker.v1.LlmRequestInvocationH\x00R\x13llmRequestIntercept\x12m\n\x17llm_execution_intercept\x18\" \x01(\x0b23.nvidia.nemo.relay.worker.v1.LlmExecutionInvocationH\x00R\x15llmExecutionIntercept\x12\x88\x01\n conditional_middleware_guardrail\x18( \x01(\x0b2<.nvidia.nemo.relay.worker.v1.ConditionalMiddlewareInvocationH\x00R\x1econditionalMiddlewareGuardrail:\xe9\x03\xbaH\xe5\x03\x1a\xe2\x03\n\x15invocation.event_kind\x126event sanitizer input must match its lifecycle surface\x1a\x90\x03(!has(this.mark_sanitize_guardrail) || has(this.mark_sanitize_guardrail.mark)) && (!has(this.scope_sanitize_start_guardrail) || (has(this.scope_sanitize_start_guardrail.scope) && this.scope_sanitize_start_guardrail.scope.scope_category == 1)) && (!has(this.scope_sanitize_end_guardrail) || (has(this.scope_sanitize_end_guardrail.scope) && this.scope_sanitize_end_guardrail.scope.scope_category == 2))B\x13\n\ninvocation\x12\x05\xbaH\x02\x08\x01\"\x99\x07\n\x0eInvokeResponse\x126\n\tcompleted\x18\x01 \x01(\x0b2\x16.google.protobuf.EmptyH\x00R\tcompleted\x126\n\tunchanged\x18\x02 \x01(\x0b2\x16.google.protobuf.EmptyH\x00R\tunchanged\x12X\n\x12metadata_additions\x18\x03 \x01(\x0b2\'.nvidia.nemo.relay.worker.v1.JsonObjectH\x00R\x11metadataAdditions\x12Y\n\x0eevent_sanitize\x18\x04 \x01(\x0b20.nvidia.nemo.relay.worker.v1.EventSanitizeFieldsH\x00R\reventSanitize\x12G\n\ntool_value\x18\x05 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueH\x00R\ttoolValue\x12N\n\tguardrail\x18\x06 \x01(\x0b2..nvidia.nemo.relay.worker.v1.GuardrailDecisionH\x00R\tguardrail\x12J\n\x0bllm_request\x18\x07 \x01(\x0b2\'.nvidia.nemo.relay.worker.v1.LlmRequestH\x00R\nllmRequest\x12K\n\x0cllm_response\x18\x08 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueH\x00R\x0bllmResponse\x12i\n\x13llm_request_outcome\x18\t \x01(\x0b27.nvidia.nemo.relay.worker.v1.LlmRequestInterceptOutcomeH\x00R\x11llmRequestOutcome\x12r\n\x16tool_execution_outcome\x18\n \x01(\x0b2:.nvidia.nemo.relay.worker.v1.ToolExecutionInterceptOutcomeH\x00R\x14toolExecutionOutcome\x12@\n\x05error\x18\x0b \x01(\x0b2(.nvidia.nemo.relay.worker.v1.WorkerErrorH\x00R\x05errorB\x0f\n\x06result\x12\x05\xbaH\x02\x08\x01\"\x85\x04\n\x13InvokeStreamRequest\x12R\n\x0bcredentials\x18\x01 \x01(\x0b2(.nvidia.nemo.relay.worker.v1.CredentialsB\x06\xbaH\x03\xc8\x01\x01R\x0bcredentials\x12,\n\rinvocation_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0cinvocationId\x124\n\x11registration_name\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x10registrationName\x12?\n\x05scope\x18\x04 \x01(\x0b2).nvidia.nemo.relay.worker.v1.ScopeContextR\x05scope\x12\x1d\n\nmodel_name\x18\x05 \x01(\tR\tmodelName\x12I\n\x07request\x18\x06 \x01(\x0b2\'.nvidia.nemo.relay.worker.v1.LlmRequestB\x06\xbaH\x03\xc8\x01\x01R\x07request\x120\n\x0fcontinuation_id\x18\x07 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0econtinuationId\x12Y\n\rrequest_codec\x18\x08 \x01(\x0b2,.nvidia.nemo.relay.worker.v1.LlmCodecContextB\x06\xbaH\x03\xc8\x01\x01R\x0crequestCodec\"\xa7\x01\n\x14InvokeStreamResponse\x12>\n\x05value\x18\x01 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueH\x00R\x05value\x12@\n\x05error\x18\x02 \x01(\x0b2(.nvidia.nemo.relay.worker.v1.WorkerErrorH\x00R\x05errorB\r\n\x04item\x12\x05\xbaH\x02\x08\x01\"\xb3\x01\n\x17CancelInvocationRequest\x12R\n\x0bcredentials\x18\x01 \x01(\x0b2(.nvidia.nemo.relay.worker.v1.CredentialsB\x06\xbaH\x03\xc8\x01\x01R\x0bcredentials\x12,\n\rinvocation_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0cinvocationId\x12\x16\n\x06reason\x18\x03 \x01(\tR\x06reason\"P\n\x18CancelInvocationResponse\x12\x1a\n\x08accepted\x18\x01 \x01(\x08R\x08accepted\x12\x18\n\x07message\x18\x02 \x01(\tR\x07message\"}\n\x0fShutdownRequest\x12R\n\x0bcredentials\x18\x01 \x01(\x0b2(.nvidia.nemo.relay.worker.v1.CredentialsB\x06\xbaH\x03\xc8\x01\x01R\x0bcredentials\x12\x16\n\x06reason\x18\x02 \x01(\tR\x06reason\"\x12\n\x10ShutdownResponse2\xfa\x06\n\x13PluginWorkerService\x12j\n\tHandshake\x12-.nvidia.nemo.relay.worker.v1.HandshakeRequest\x1a..nvidia.nemo.relay.worker.v1.HandshakeResponse\x12a\n\x06Health\x12*.nvidia.nemo.relay.worker.v1.HealthRequest\x1a+.nvidia.nemo.relay.worker.v1.HealthResponse\x12g\n\x08Validate\x12,.nvidia.nemo.relay.worker.v1.ValidateRequest\x1a-.nvidia.nemo.relay.worker.v1.ValidateResponse\x12g\n\x08Register\x12,.nvidia.nemo.relay.worker.v1.RegisterRequest\x1a-.nvidia.nemo.relay.worker.v1.RegisterResponse\x12a\n\x06Invoke\x12*.nvidia.nemo.relay.worker.v1.InvokeRequest\x1a+.nvidia.nemo.relay.worker.v1.InvokeResponse\x12u\n\x0cInvokeStream\x120.nvidia.nemo.relay.worker.v1.InvokeStreamRequest\x1a1.nvidia.nemo.relay.worker.v1.InvokeStreamResponse0\x01\x12\x7f\n\x10CancelInvocation\x124.nvidia.nemo.relay.worker.v1.CancelInvocationRequest\x1a5.nvidia.nemo.relay.worker.v1.CancelInvocationResponse\x12g\n\x08Shutdown\x12,.nvidia.nemo.relay.worker.v1.ShutdownRequest\x1a-.nvidia.nemo.relay.worker.v1.ShutdownResponseJ\xa0r\n\x07\x12\x05\x05\x00\x93\x02\x1b\n\xe7\x01\n\x01\x0c\x12\x03\x05\x00\x122\x88\x01 SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n SPDX-License-Identifier: Apache-2.0\n2R Defines PluginWorkerService and its dedicated RPC request and response messages.\n\n\x08\n\x01\x02\x12\x03\x07\x00$\n\t\n\x02\x03\x00\x12\x03\t\x00%\n\t\n\x02\x03\x01\x12\x03\n\x00%\n\t\n\x02\x03\x02\x12\x03\x0b\x002\n\t\n\x02\x03\x03\x12\x03\x0c\x001\n\t\n\x02\x03\x04\x12\x03\r\x00/\n\t\n\x02\x03\x05\x12\x03\x0e\x003\n\xbd\x01\n\x02\x06\x00\x12\x04\x12\x00#\x01\x1a\xb0\x01 nvidia.nemo.relay.worker.v1@1.0.0. Authentication, malformed input, and incompatible identity use\n gRPC status. Callback/domain errors use the response\'s single result oneof.\n\n\n\n\x03\x06\x00\x01\x12\x03\x12\x08\x1b\nb\n\x04\x06\x00\x02\x00\x12\x03\x14\x02>\x1aU Authenticates and confirms plugin identity and worker contract before registration.\n\n\x0c\n\x05\x06\x00\x02\x00\x01\x12\x03\x14\x06\x0f\n\x0c\n\x05\x06\x00\x02\x00\x02\x12\x03\x14\x10 \n\x0c\n\x05\x06\x00\x02\x00\x03\x12\x03\x14+<\nR\n\x04\x06\x00\x02\x01\x12\x03\x16\x025\x1aE Reports worker readiness and identity without installing callbacks.\n\n\x0c\n\x05\x06\x00\x02\x01\x01\x12\x03\x16\x06\x0c\n\x0c\n\x05\x06\x00\x02\x01\x02\x12\x03\x16\r\x1a\n\x0c\n\x05\x06\x00\x02\x01\x03\x12\x03\x16%3\n^\n\x04\x06\x00\x02\x02\x12\x03\x18\x02;\x1aQ Returns structured configuration diagnostics without registering the component.\n\n\x0c\n\x05\x06\x00\x02\x02\x01\x12\x03\x18\x06\x0e\n\x0c\n\x05\x06\x00\x02\x02\x02\x12\x03\x18\x0f\x1e\n\x0c\n\x05\x06\x00\x02\x02\x03\x12\x03\x18)9\ne\n\x04\x06\x00\x02\x03\x12\x03\x1a\x02;\x1aX Installs once per activation and semantic configuration, returning an idempotent plan.\n\n\x0c\n\x05\x06\x00\x02\x03\x01\x12\x03\x1a\x06\x0e\n\x0c\n\x05\x06\x00\x02\x03\x02\x12\x03\x1a\x0f\x1e\n\x0c\n\x05\x06\x00\x02\x03\x03\x12\x03\x1a)9\nZ\n\x04\x06\x00\x02\x04\x12\x03\x1c\x025\x1aM Runs one registered unary callback and returns its surface-specific result.\n\n\x0c\n\x05\x06\x00\x02\x04\x01\x12\x03\x1c\x06\x0c\n\x0c\n\x05\x06\x00\x02\x04\x02\x12\x03\x1c\r\x1a\n\x0c\n\x05\x06\x00\x02\x04\x03\x12\x03\x1c%3\nY\n\x04\x06\x00\x02\x05\x12\x03\x1e\x02N\x1aL Runs a streaming LLM execution callback; errors are terminal stream items.\n\n\x0c\n\x05\x06\x00\x02\x05\x01\x12\x03\x1e\x06\x12\n\x0c\n\x05\x06\x00\x02\x05\x02\x12\x03\x1e\x13&\n\x0c\n\x05\x06\x00\x02\x05\x06\x12\x03\x1e17\n\x0c\n\x05\x06\x00\x02\x05\x03\x12\x03\x1e8L\nY\n\x04\x06\x00\x02\x06\x12\x03 \x02S\x1aL Idempotently cancels active work and performs invocation resource cleanup.\n\n\x0c\n\x05\x06\x00\x02\x06\x01\x12\x03 \x06\x16\n\x0c\n\x05\x06\x00\x02\x06\x02\x12\x03 \x17.\n\x0c\n\x05\x06\x00\x02\x06\x03\x12\x03 9Q\nK\n\x04\x06\x00\x02\x07\x12\x03\"\x02;\x1a> Requests bounded drain and cleanup of the worker activation.\n\n\x0c\n\x05\x06\x00\x02\x07\x01\x12\x03\"\x06\x0e\n\x0c\n\x05\x06\x00\x02\x07\x02\x12\x03\"\x0f\x1e\n\x0c\n\x05\x06\x00\x02\x07\x03\x12\x03\")9\ne\n\x02\x04\x00\x12\x04&\x001\x01\x1aY Authenticates an activation and proposes the exact worker contract and plugin identity.\n\n\n\n\x03\x04\x00\x01\x12\x03&\x08\x18\nk\n\x04\x04\x00\x02\x00\x12\x03(\x02E\x1a^ Required activation credentials; invalid authentication fails before the operation executes.\n\n\x0c\n\x05\x04\x00\x02\x00\x06\x12\x03(\x02\r\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03(\x0e\x19\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03(\x1c\x1d\n\x0c\n\x05\x04\x00\x02\x00\x08\x12\x03(\x1eD\n\x0f\n\x08\x04\x00\x02\x00\x08\x87\t\x19\x12\x03(\x1fC\nV\n\x04\x04\x00\x02\x01\x12\x03*\x02D\x1aI Plugin identity declared by the manifest and checked during activation.\n\n\x0c\n\x05\x04\x00\x02\x01\x05\x12\x03*\x02\x08\n\x0c\n\x05\x04\x00\x02\x01\x01\x12\x03*\t\x12\n\x0c\n\x05\x04\x00\x02\x01\x03\x12\x03*\x15\x16\n\x0c\n\x05\x04\x00\x02\x01\x08\x12\x03*\x17C\n\x0f\n\x08\x04\x00\x02\x01\x08\x87\t\x0e\x12\x03*\x18B\n]\n\x04\x04\x00\x02\x02\x12\x03,\x02H\x1aP Release version of the Relay host, independent of the worker contract version.\n\n\x0c\n\x05\x04\x00\x02\x02\x05\x12\x03,\x02\x08\n\x0c\n\x05\x04\x00\x02\x02\x01\x12\x03,\t\x16\n\x0c\n\x05\x04\x00\x02\x02\x03\x12\x03,\x19\x1a\n\x0c\n\x05\x04\x00\x02\x02\x08\x12\x03,\x1bG\n\x0f\n\x08\x04\x00\x02\x02\x08\x87\t\x0e\x12\x03,\x1cF\n`\n\x04\x04\x00\x02\x03\x12\x03.\x02G\x1aS Required protocol name and semantic contract version to confirm during handshake.\n\n\x0c\n\x05\x04\x00\x02\x03\x06\x12\x03.\x02\x12\n\x0c\n\x05\x04\x00\x02\x03\x01\x12\x03.\x13\x1b\n\x0c\n\x05\x04\x00\x02\x03\x03\x12\x03.\x1e\x1f\n\x0c\n\x05\x04\x00\x02\x03\x08\x12\x03. F\n\x0f\n\x08\x04\x00\x02\x03\x08\x87\t\x19\x12\x03.!E\nU\n\x04\x04\x00\x02\x04\x12\x030\x02H\x1aH Host runtime endpoint supplied for authenticated worker-to-host calls.\n\n\x0c\n\x05\x04\x00\x02\x04\x05\x12\x030\x02\x08\n\x0c\n\x05\x04\x00\x02\x04\x01\x12\x030\t\x16\n\x0c\n\x05\x04\x00\x02\x04\x03\x12\x030\x19\x1a\n\x0c\n\x05\x04\x00\x02\x04\x08\x12\x030\x1bG\n\x0f\n\x08\x04\x00\x02\x04\x08\x87\t\x0e\x12\x030\x1cF\nd\n\x02\x04\x01\x12\x044\x00>\x01\x1aX Confirms worker identity, component multiplicity, and supported registration surfaces.\n\n\n\n\x03\x04\x01\x01\x12\x034\x08\x19\n@\n\x04\x04\x01\x02\x00\x12\x036\x02E\x1a3 Required worker identity for lifecycle responses.\n\n\x0c\n\x05\x04\x01\x02\x00\x06\x12\x036\x02\x10\n\x0c\n\x05\x04\x01\x02\x00\x01\x12\x036\x11\x19\n\x0c\n\x05\x04\x01\x02\x00\x03\x12\x036\x1c\x1d\n\x0c\n\x05\x04\x01\x02\x00\x08\x12\x036\x1eD\n\x0f\n\x08\x04\x01\x02\x00\x08\x87\t\x19\x12\x036\x1fC\nM\n\x04\x04\x01\x02\x01\x12\x038\x02&\x1a@ Whether the plugin permits more than one configured component.\n\n\x0c\n\x05\x04\x01\x02\x01\x05\x12\x038\x02\x06\n\x0c\n\x05\x04\x01\x02\x01\x01\x12\x038\x07!\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x038$%\nJ\n\x04\x04\x01\x02\x02\x12\x04:\x02=\x05\x1a< Recognized callback surfaces supported by this worker SDK.\n\n\x0c\n\x05\x04\x01\x02\x02\x04\x12\x03:\x02\n\n\x0c\n\x05\x04\x01\x02\x02\x06\x12\x03:\x0b\x1e\n\x0c\n\x05\x04\x01\x02\x02\x01\x12\x03:\x1f1\n\x0c\n\x05\x04\x01\x02\x02\x03\x12\x03:45\n\r\n\x05\x04\x01\x02\x02\x08\x12\x04:6=\x04\n\x12\n\n\x04\x01\x02\x02\x08\x87\t\x12\x04\x10\x12\x04:7=\x03\nW\n\x02\x04\x02\x12\x04A\x00D\x01\x1aK Queries readiness using activation credentials; it may precede handshake.\n\n\n\n\x03\x04\x02\x01\x12\x03A\x08\x15\nk\n\x04\x04\x02\x02\x00\x12\x03C\x02E\x1a^ Required activation credentials; invalid authentication fails before the operation executes.\n\n\x0c\n\x05\x04\x02\x02\x00\x06\x12\x03C\x02\r\n\x0c\n\x05\x04\x02\x02\x00\x01\x12\x03C\x0e\x19\n\x0c\n\x05\x04\x02\x02\x00\x03\x12\x03C\x1c\x1d\n\x0c\n\x05\x04\x02\x02\x00\x08\x12\x03C\x1eD\n\x0f\n\x08\x04\x02\x02\x00\x08\x87\t\x19\x12\x03C\x1fC\nZ\n\x02\x04\x03\x12\x04G\x00Q\x01\x1aN Reports readiness and worker identity without implying registration success.\n\n\n\n\x03\x04\x03\x01\x12\x03G\x08\x16\ne\n\x04\x04\x03\x02\x00\x12\x04I\x02L\x05\x1aW Required recognized state reported by the enclosing lifecycle or admission operation.\n\n\x0c\n\x05\x04\x03\x02\x00\x06\x12\x03I\x02\x14\n\x0c\n\x05\x04\x03\x02\x00\x01\x12\x03I\x15\x1b\n\x0c\n\x05\x04\x03\x02\x00\x03\x12\x03I\x1e\x1f\n\r\n\x05\x04\x03\x02\x00\x08\x12\x04I L\x04\n\x10\n\x08\x04\x03\x02\x00\x08\x87\t\x10\x12\x04I!L\x03\n`\n\x04\x04\x03\x02\x01\x12\x03N\x02\x15\x1aS Human-readable description; consumers must not infer control flow from this text.\n\n\x0c\n\x05\x04\x03\x02\x01\x05\x12\x03N\x02\x08\n\x0c\n\x05\x04\x03\x02\x01\x01\x12\x03N\t\x10\n\x0c\n\x05\x04\x03\x02\x01\x03\x12\x03N\x13\x14\n@\n\x04\x04\x03\x02\x02\x12\x03P\x02E\x1a3 Required worker identity for lifecycle responses.\n\n\x0c\n\x05\x04\x03\x02\x02\x06\x12\x03P\x02\x10\n\x0c\n\x05\x04\x03\x02\x02\x01\x12\x03P\x11\x19\n\x0c\n\x05\x04\x03\x02\x02\x03\x12\x03P\x1c\x1d\n\x0c\n\x05\x04\x03\x02\x02\x08\x12\x03P\x1eD\n\x0f\n\x08\x04\x03\x02\x02\x08\x87\t\x19\x12\x03P\x1fC\nN\n\x02\x04\x04\x12\x04T\x00[\x01\x1aB Validates one plugin configuration without installing callbacks.\n\n\n\n\x03\x04\x04\x01\x12\x03T\x08\x17\nk\n\x04\x04\x04\x02\x00\x12\x03V\x02E\x1a^ Required activation credentials; invalid authentication fails before the operation executes.\n\n\x0c\n\x05\x04\x04\x02\x00\x06\x12\x03V\x02\r\n\x0c\n\x05\x04\x04\x02\x00\x01\x12\x03V\x0e\x19\n\x0c\n\x05\x04\x04\x02\x00\x03\x12\x03V\x1c\x1d\n\x0c\n\x05\x04\x04\x02\x00\x08\x12\x03V\x1eD\n\x0f\n\x08\x04\x04\x02\x00\x08\x87\t\x19\x12\x03V\x1fC\nV\n\x04\x04\x04\x02\x01\x12\x03X\x02D\x1aI Plugin identity declared by the manifest and checked during activation.\n\n\x0c\n\x05\x04\x04\x02\x01\x05\x12\x03X\x02\x08\n\x0c\n\x05\x04\x04\x02\x01\x01\x12\x03X\t\x12\n\x0c\n\x05\x04\x04\x02\x01\x03\x12\x03X\x15\x16\n\x0c\n\x05\x04\x04\x02\x01\x08\x12\x03X\x17C\n\x0f\n\x08\x04\x04\x02\x01\x08\x87\t\x0e\x12\x03X\x18B\nQ\n\x04\x04\x04\x02\x02\x12\x03Z\x02>\x1aD Required application-owned config; JSON null represents no config.\n\n\x0c\n\x05\x04\x04\x02\x02\x06\x12\x03Z\x02\x0b\n\x0c\n\x05\x04\x04\x02\x02\x01\x12\x03Z\x0c\x12\n\x0c\n\x05\x04\x04\x02\x02\x03\x12\x03Z\x15\x16\n\x0c\n\x05\x04\x04\x02\x02\x08\x12\x03Z\x17=\n\x0f\n\x08\x04\x04\x02\x02\x08\x87\t\x19\x12\x03Z\x18<\nX\n\x02\x04\x05\x12\x04^\x00g\x01\x1aL Selects completed validation diagnostics or a validation callback failure.\n\n\n\n\x03\x04\x05\x01\x12\x03^\x08\x18\n\\\n\x04\x04\x05\x08\x00\x12\x04`\x02f\x03\x1aN Exactly one recognized alternative is required when this message is present.\n\n\x0c\n\x05\x04\x05\x08\x00\x01\x12\x03`\x08\x0e\n\x0c\n\x05\x04\x05\x08\x00\x02\x12\x03a\x040\n\x0f\n\x08\x04\x05\x08\x00\x02\x87\t\x01\x12\x03a\x040\nb\n\x04\x04\x05\x02\x00\x12\x03c\x04&\x1aU Completed validation diagnostics; an empty list represents no reported diagnostics.\n\n\x0c\n\x05\x04\x05\x02\x00\x06\x12\x03c\x04\x15\n\x0c\n\x05\x04\x05\x02\x00\x01\x12\x03c\x16!\n\x0c\n\x05\x04\x05\x02\x00\x03\x12\x03c$%\na\n\x04\x04\x05\x02\x01\x12\x03e\x04\x1a\x1aT Callback or downstream domain failure; mutually exclusive with successful results.\n\n\x0c\n\x05\x04\x05\x02\x01\x06\x12\x03e\x04\x0f\n\x0c\n\x05\x04\x05\x02\x01\x01\x12\x03e\x10\x15\n\x0c\n\x05\x04\x05\x02\x01\x03\x12\x03e\x18\x19\n\xad\x01\n\x02\x04\x06\x12\x04k\x00r\x01\x1a\xa0\x01 Registration is idempotent for the same semantic config within an activation.\n Concurrent repeats install once; changed config fails with FAILED_PRECONDITION.\n\n\n\n\x03\x04\x06\x01\x12\x03k\x08\x17\nk\n\x04\x04\x06\x02\x00\x12\x03m\x02E\x1a^ Required activation credentials; invalid authentication fails before the operation executes.\n\n\x0c\n\x05\x04\x06\x02\x00\x06\x12\x03m\x02\r\n\x0c\n\x05\x04\x06\x02\x00\x01\x12\x03m\x0e\x19\n\x0c\n\x05\x04\x06\x02\x00\x03\x12\x03m\x1c\x1d\n\x0c\n\x05\x04\x06\x02\x00\x08\x12\x03m\x1eD\n\x0f\n\x08\x04\x06\x02\x00\x08\x87\t\x19\x12\x03m\x1fC\nV\n\x04\x04\x06\x02\x01\x12\x03o\x02D\x1aI Plugin identity declared by the manifest and checked during activation.\n\n\x0c\n\x05\x04\x06\x02\x01\x05\x12\x03o\x02\x08\n\x0c\n\x05\x04\x06\x02\x01\x01\x12\x03o\t\x12\n\x0c\n\x05\x04\x06\x02\x01\x03\x12\x03o\x15\x16\n\x0c\n\x05\x04\x06\x02\x01\x08\x12\x03o\x17C\n\x0f\n\x08\x04\x06\x02\x01\x08\x87\t\x0e\x12\x03o\x18B\nl\n\x04\x04\x06\x02\x02\x12\x03q\x02>\x1a_ Required application-owned configuration; encode JSON null when no configuration is supplied.\n\n\x0c\n\x05\x04\x06\x02\x02\x06\x12\x03q\x02\x0b\n\x0c\n\x05\x04\x06\x02\x02\x01\x12\x03q\x0c\x12\n\x0c\n\x05\x04\x06\x02\x02\x03\x12\x03q\x15\x16\n\x0c\n\x05\x04\x06\x02\x02\x08\x12\x03q\x17=\n\x0f\n\x08\x04\x06\x02\x02\x08\x87\t\x19\x12\x03q\x18<\nY\n\x02\x04\x07\x12\x04u\x00~\x01\x1aM Selects the installed registration plan or a registration callback failure.\n\n\n\n\x03\x04\x07\x01\x12\x03u\x08\x18\n\\\n\x04\x04\x07\x08\x00\x12\x04w\x02}\x03\x1aN Exactly one recognized alternative is required when this message is present.\n\n\x0c\n\x05\x04\x07\x08\x00\x01\x12\x03w\x08\x0e\n\x0c\n\x05\x04\x07\x08\x00\x02\x12\x03x\x040\n\x0f\n\x08\x04\x07\x08\x00\x02\x87\t\x01\x12\x03x\x040\n\\\n\x04\x04\x07\x02\x00\x12\x03z\x04\x1e\x1aO Successful declarative registration plan, including an explicitly empty plan.\n\n\x0c\n\x05\x04\x07\x02\x00\x06\x12\x03z\x04\x14\n\x0c\n\x05\x04\x07\x02\x00\x01\x12\x03z\x15\x19\n\x0c\n\x05\x04\x07\x02\x00\x03\x12\x03z\x1c\x1d\na\n\x04\x04\x07\x02\x01\x12\x03|\x04\x1a\x1aT Callback or downstream domain failure; mutually exclusive with successful results.\n\n\x0c\n\x05\x04\x07\x02\x01\x06\x12\x03|\x04\x0f\n\x0c\n\x05\x04\x07\x02\x01\x01\x12\x03|\x10\x15\n\x0c\n\x05\x04\x07\x02\x01\x03\x12\x03|\x18\x19\n\xef\x01\n\x02\x04\x08\x12\x06\x83\x01\x00\xb7\x01\x01\x1a\xe0\x01 Requires an invocation ID, a registration name, and one invocation alternative. The\n alternative must match the registered callback type. The request has no separate surface\n enum that could conflict with that alternative.\n\n\x0b\n\x03\x04\x08\x01\x12\x04\x83\x01\x08\x15\n\r\n\x03\x04\x08\x07\x12\x06\x84\x01\x02\x88\x01\x04\n\x11\n\x07\x04\x08\x07\x87\t\x03\x00\x12\x06\x84\x01\x02\x88\x01\x04\nl\n\x04\x04\x08\x02\x00\x12\x04\x8b\x01\x02E\x1a^ Required activation credentials; invalid authentication fails before the operation executes.\n\n\r\n\x05\x04\x08\x02\x00\x06\x12\x04\x8b\x01\x02\r\n\r\n\x05\x04\x08\x02\x00\x01\x12\x04\x8b\x01\x0e\x19\n\r\n\x05\x04\x08\x02\x00\x03\x12\x04\x8b\x01\x1c\x1d\n\r\n\x05\x04\x08\x02\x00\x08\x12\x04\x8b\x01\x1eD\n\x10\n\x08\x04\x08\x02\x00\x08\x87\t\x19\x12\x04\x8b\x01\x1fC\nX\n\x04\x04\x08\x02\x01\x12\x04\x8d\x01\x02H\x1aJ Nonempty host-issued invocation identity, unique among active callbacks.\n\n\r\n\x05\x04\x08\x02\x01\x05\x12\x04\x8d\x01\x02\x08\n\r\n\x05\x04\x08\x02\x01\x01\x12\x04\x8d\x01\t\x16\n\r\n\x05\x04\x08\x02\x01\x03\x12\x04\x8d\x01\x19\x1a\n\r\n\x05\x04\x08\x02\x01\x08\x12\x04\x8d\x01\x1bG\n\x10\n\x08\x04\x08\x02\x01\x08\x87\t\x0e\x12\x04\x8d\x01\x1cF\np\n\x04\x04\x08\x02\x02\x12\x04\x90\x01\x02L\x1ab Exact callback registration identity; it must match callback metadata and the selected\n surface.\n\n\r\n\x05\x04\x08\x02\x02\x05\x12\x04\x90\x01\x02\x08\n\r\n\x05\x04\x08\x02\x02\x01\x12\x04\x90\x01\t\x1a\n\r\n\x05\x04\x08\x02\x02\x03\x12\x04\x90\x01\x1d\x1e\n\r\n\x05\x04\x08\x02\x02\x08\x12\x04\x90\x01\x1fK\n\x10\n\x08\x04\x08\x02\x02\x08\x87\t\x0e\x12\x04\x90\x01 J\nX\n\x04\x04\x08\x02\x03\x12\x04\x92\x01\x02\x19\x1aJ Optional host binding selecting the stack and parent for this operation.\n\n\r\n\x05\x04\x08\x02\x03\x06\x12\x04\x92\x01\x02\x0e\n\r\n\x05\x04\x08\x02\x03\x01\x12\x04\x92\x01\x0f\x14\n\r\n\x05\x04\x08\x02\x03\x03\x12\x04\x92\x01\x17\x18\n^\n\x04\x04\x08\x08\x00\x12\x06\x94\x01\x02\xb6\x01\x03\x1aN Exactly one recognized alternative is required when this message is present.\n\n\r\n\x05\x04\x08\x08\x00\x01\x12\x04\x94\x01\x08\x12\n\r\n\x05\x04\x08\x08\x00\x02\x12\x04\x95\x01\x040\n\x10\n\x08\x04\x08\x08\x00\x02\x87\t\x01\x12\x04\x95\x01\x040\nT\n\x04\x04\x08\x02\x04\x12\x04\x97\x01\x04\x1a\x1aF Observes an event and completes without returning a rewritten value.\n\n\r\n\x05\x04\x08\x02\x04\x06\x12\x04\x97\x01\x04\t\n\r\n\x05\x04\x08\x02\x04\x01\x12\x04\x97\x01\n\x14\n\r\n\x05\x04\x08\x02\x04\x03\x12\x04\x97\x01\x17\x19\nG\n\x04\x04\x08\x02\x05\x12\x04\x99\x01\x04\'\x1a9 Produces open metadata additions for an observed event.\n\n\r\n\x05\x04\x08\x02\x05\x06\x12\x04\x99\x01\x04\t\n\r\n\x05\x04\x08\x02\x05\x01\x12\x04\x99\x01\n!\n\r\n\x05\x04\x08\x02\x05\x03\x12\x04\x99\x01$&\nI\n\x04\x04\x08\x02\x06\x12\x04\x9b\x01\x04\'\x1a; Replaces sanitizable fields of a mark before publication.\n\n\r\n\x05\x04\x08\x02\x06\x06\x12\x04\x9b\x01\x04\t\n\r\n\x05\x04\x08\x02\x06\x01\x12\x04\x9b\x01\n!\n\r\n\x05\x04\x08\x02\x06\x03\x12\x04\x9b\x01$&\nV\n\x04\x04\x08\x02\x07\x12\x04\x9d\x01\x04.\x1aH Replaces sanitizable fields of a scope-start event before publication.\n\n\r\n\x05\x04\x08\x02\x07\x06\x12\x04\x9d\x01\x04\t\n\r\n\x05\x04\x08\x02\x07\x01\x12\x04\x9d\x01\n(\n\r\n\x05\x04\x08\x02\x07\x03\x12\x04\x9d\x01+-\nT\n\x04\x04\x08\x02\x08\x12\x04\x9f\x01\x04,\x1aF Replaces sanitizable fields of a scope-end event before publication.\n\n\r\n\x05\x04\x08\x02\x08\x06\x12\x04\x9f\x01\x04\t\n\r\n\x05\x04\x08\x02\x08\x01\x12\x04\x9f\x01\n&\n\r\n\x05\x04\x08\x02\x08\x03\x12\x04\x9f\x01)+\nA\n\x04\x04\x08\x02\t\x12\x04\xa1\x01\x04=\x1a3 Rewrites tool request arguments before execution.\n\n\r\n\x05\x04\x08\x02\t\x06\x12\x04\xa1\x01\x04\x17\n\r\n\x05\x04\x08\x02\t\x01\x12\x04\xa1\x01\x187\n\r\n\x05\x04\x08\x02\t\x03\x12\x04\xa1\x01:<\nE\n\x04\x04\x08\x02\n\x12\x04\xa3\x01\x04>\x1a7 Rewrites the application tool result after execution.\n\n\r\n\x05\x04\x08\x02\n\x06\x12\x04\xa3\x01\x04\x17\n\r\n\x05\x04\x08\x02\n\x01\x12\x04\xa3\x01\x188\n\r\n\x05\x04\x08\x02\n\x03\x12\x04\xa3\x01;=\n=\n\x04\x04\x08\x02\x0b\x12\x04\xa5\x01\x04B\x1a/ Allows or blocks execution of a tool request.\n\n\r\n\x05\x04\x08\x02\x0b\x06\x12\x04\xa5\x01\x04\x17\n\r\n\x05\x04\x08\x02\x0b\x01\x12\x04\xa5\x01\x18<\n\r\n\x05\x04\x08\x02\x0b\x03\x12\x04\xa5\x01?A\nM\n\x04\x04\x08\x02\x0c\x12\x04\xa7\x01\x044\x1a? Rewrites a tool request within the ordered interceptor chain.\n\n\r\n\x05\x04\x08\x02\x0c\x06\x12\x04\xa7\x01\x04\x17\n\r\n\x05\x04\x08\x02\x0c\x01\x12\x04\xa7\x01\x18.\n\r\n\x05\x04\x08\x02\x0c\x03\x12\x04\xa7\x0113\nQ\n\x04\x04\x08\x02\r\x12\x04\xa9\x01\x04:\x1aC Executes or delegates a managed tool call and may schedule marks.\n\n\r\n\x05\x04\x08\x02\r\x06\x12\x04\xa9\x01\x04\x1b\n\r\n\x05\x04\x08\x02\r\x01\x12\x04\xa9\x01\x1c4\n\r\n\x05\x04\x08\x02\r\x03\x12\x04\xa9\x0179\nH\n\x04\x04\x08\x02\x0e\x12\x04\xab\x01\x04E\x1a: Rewrites a provider LLM request using its codec context.\n\n\r\n\x05\x04\x08\x02\x0e\x06\x12\x04\xab\x01\x04 \n\r\n\x05\x04\x08\x02\x0e\x01\x12\x04\xab\x01!?\n\r\n\x05\x04\x08\x02\x0e\x03\x12\x04\xab\x01BD\nI\n\x04\x04\x08\x02\x0f\x12\x04\xad\x01\x04G\x1a; Rewrites a provider LLM response using its codec context.\n\n\r\n\x05\x04\x08\x02\x0f\x06\x12\x04\xad\x01\x04!\n\r\n\x05\x04\x08\x02\x0f\x01\x12\x04\xad\x01\"A\n\r\n\x05\x04\x08\x02\x0f\x03\x12\x04\xad\x01DF\n=\n\x04\x04\x08\x02\x10\x12\x04\xaf\x01\x04F\x1a/ Allows or blocks execution of an LLM request.\n\n\r\n\x05\x04\x08\x02\x10\x06\x12\x04\xaf\x01\x04\x1c\n\r\n\x05\x04\x08\x02\x10\x01\x12\x04\xaf\x01\x1d@\n\r\n\x05\x04\x08\x02\x10\x03\x12\x04\xaf\x01CE\na\n\x04\x04\x08\x02\x11\x12\x04\xb1\x01\x044\x1aS Rewrites a provider request or normalized annotation and may contribute evidence.\n\n\r\n\x05\x04\x08\x02\x11\x06\x12\x04\xb1\x01\x04\x18\n\r\n\x05\x04\x08\x02\x11\x01\x12\x04\xb1\x01\x19.\n\r\n\x05\x04\x08\x02\x11\x03\x12\x04\xb1\x0113\n^\n\x04\x04\x08\x02\x12\x12\x04\xb3\x01\x048\x1aP Executes or delegates a unary LLM call with request and response codec access.\n\n\r\n\x05\x04\x08\x02\x12\x06\x12\x04\xb3\x01\x04\x1a\n\r\n\x05\x04\x08\x02\x12\x01\x12\x04\xb3\x01\x1b2\n\r\n\x05\x04\x08\x02\x12\x03\x12\x04\xb3\x0157\nW\n\x04\x04\x08\x02\x13\x12\x04\xb5\x01\x04J\x1aI Allows or blocks selected middleware registrations before they execute.\n\n\r\n\x05\x04\x08\x02\x13\x06\x12\x04\xb5\x01\x04#\n\r\n\x05\x04\x08\x02\x13\x01\x12\x04\xb5\x01$D\n\r\n\x05\x04\x08\x02\x13\x03\x12\x04\xb5\x01GI\nX\n\x02\x04\t\x12\x06\xba\x01\x00\xd5\x01\x01\x1aJ One surface-specific success alternative or one callback/domain failure.\n\n\x0b\n\x03\x04\t\x01\x12\x04\xba\x01\x08\x16\n^\n\x04\x04\t\x08\x00\x12\x06\xbc\x01\x02\xd4\x01\x03\x1aN Exactly one recognized alternative is required when this message is present.\n\n\r\n\x05\x04\t\x08\x00\x01\x12\x04\xbc\x01\x08\x0e\n\r\n\x05\x04\t\x08\x00\x02\x12\x04\xbd\x01\x040\n\x10\n\x08\x04\t\x08\x00\x02\x87\t\x01\x12\x04\xbd\x01\x040\nH\n\x04\x04\t\x02\x00\x12\x04\xbf\x01\x04(\x1a: Explicit successful completion of a subscriber callback.\n\n\r\n\x05\x04\t\x02\x00\x06\x12\x04\xbf\x01\x04\x19\n\r\n\x05\x04\t\x02\x00\x01\x12\x04\xbf\x01\x1a#\n\r\n\x05\x04\t\x02\x00\x03\x12\x04\xbf\x01&\'\nJ\n\x04\x04\t\x02\x01\x12\x04\xc1\x01\x04(\x1a< Only request/response LLM sanitizers may report unchanged.\n\n\r\n\x05\x04\t\x02\x01\x06\x12\x04\xc1\x01\x04\x19\n\r\n\x05\x04\t\x02\x01\x01\x12\x04\xc1\x01\x1a#\n\r\n\x05\x04\t\x02\x01\x03\x12\x04\xc1\x01&\'\nS\n\x04\x04\t\x02\x02\x12\x04\xc3\x01\x04&\x1aE Successful open metadata additions from an event metadata injector.\n\n\r\n\x05\x04\t\x02\x02\x06\x12\x04\xc3\x01\x04\x0e\n\r\n\x05\x04\t\x02\x02\x01\x12\x04\xc3\x01\x0f!\n\r\n\x05\x04\t\x02\x02\x03\x12\x04\xc3\x01$%\na\n\x04\x04\t\x02\x03\x12\x04\xc5\x01\x04+\x1aS Successful replacement fields from an event sanitizer; absent fields are cleared.\n\n\r\n\x05\x04\t\x02\x03\x06\x12\x04\xc5\x01\x04\x17\n\r\n\x05\x04\t\x02\x03\x01\x12\x04\xc5\x01\x18&\n\r\n\x05\x04\t\x02\x03\x03\x12\x04\xc5\x01)*\nd\n\x04\x04\t\x02\x04\x12\x04\xc7\x01\x04\x1d\x1aV Successful rewritten application value from a tool sanitizer or request interceptor.\n\n\r\n\x05\x04\t\x02\x04\x06\x12\x04\xc7\x01\x04\r\n\r\n\x05\x04\t\x02\x04\x01\x12\x04\xc7\x01\x0e\x18\n\r\n\x05\x04\t\x02\x04\x03\x12\x04\xc7\x01\x1b\x1c\nN\n\x04\x04\t\x02\x05\x12\x04\xc9\x01\x04$\x1a@ Explicit allow or block decision from a conditional guardrail.\n\n\r\n\x05\x04\t\x02\x05\x06\x12\x04\xc9\x01\x04\x15\n\r\n\x05\x04\t\x02\x05\x01\x12\x04\xc9\x01\x16\x1f\n\r\n\x05\x04\t\x02\x05\x03\x12\x04\xc9\x01\"#\nO\n\x04\x04\t\x02\x06\x12\x04\xcb\x01\x04\x1f\x1aA Successful rewritten provider request from a request sanitizer.\n\n\r\n\x05\x04\t\x02\x06\x06\x12\x04\xcb\x01\x04\x0e\n\r\n\x05\x04\t\x02\x06\x01\x12\x04\xcb\x01\x0f\x1a\n\r\n\x05\x04\t\x02\x06\x03\x12\x04\xcb\x01\x1d\x1e\n`\n\x04\x04\t\x02\x07\x12\x04\xcd\x01\x04\x1f\x1aR Successful provider response from a response sanitizer or execution interceptor.\n\n\r\n\x05\x04\t\x02\x07\x06\x12\x04\xcd\x01\x04\r\n\r\n\x05\x04\t\x02\x07\x01\x12\x04\xcd\x01\x0e\x1a\n\r\n\x05\x04\t\x02\x07\x03\x12\x04\xcd\x01\x1d\x1e\nc\n\x04\x04\t\x02\x08\x12\x04\xcf\x01\x047\x1aU Successful rewritten request, annotation, pending marks, and optimization evidence.\n\n\r\n\x05\x04\t\x02\x08\x06\x12\x04\xcf\x01\x04\x1e\n\r\n\x05\x04\t\x02\x08\x01\x12\x04\xcf\x01\x1f2\n\r\n\x05\x04\t\x02\x08\x03\x12\x04\xcf\x0156\nK\n\x04\x04\t\x02\t\x12\x04\xd1\x01\x04>\x1a= Successful canonical tool result and ordered pending marks.\n\n\r\n\x05\x04\t\x02\t\x06\x12\x04\xd1\x01\x04!\n\r\n\x05\x04\t\x02\t\x01\x12\x04\xd1\x01\"8\n\r\n\x05\x04\t\x02\t\x03\x12\x04\xd1\x01;=\nb\n\x04\x04\t\x02\n\x12\x04\xd3\x01\x04\x1b\x1aT Callback or downstream domain failure; mutually exclusive with successful results.\n\n\r\n\x05\x04\t\x02\n\x06\x12\x04\xd3\x01\x04\x0f\n\r\n\x05\x04\t\x02\n\x01\x12\x04\xd3\x01\x10\x15\n\r\n\x05\x04\t\x02\n\x03\x12\x04\xd3\x01\x18\x1a\nQ\n\x02\x04\n\x12\x06\xd8\x01\x00\xea\x01\x01\x1aC Streaming is a distinct method with a request-only codec context.\n\n\x0b\n\x03\x04\n\x01\x12\x04\xd8\x01\x08\x1b\nl\n\x04\x04\n\x02\x00\x12\x04\xda\x01\x02E\x1a^ Required activation credentials; invalid authentication fails before the operation executes.\n\n\r\n\x05\x04\n\x02\x00\x06\x12\x04\xda\x01\x02\r\n\r\n\x05\x04\n\x02\x00\x01\x12\x04\xda\x01\x0e\x19\n\r\n\x05\x04\n\x02\x00\x03\x12\x04\xda\x01\x1c\x1d\n\r\n\x05\x04\n\x02\x00\x08\x12\x04\xda\x01\x1eD\n\x10\n\x08\x04\n\x02\x00\x08\x87\t\x19\x12\x04\xda\x01\x1fC\nX\n\x04\x04\n\x02\x01\x12\x04\xdc\x01\x02H\x1aJ Nonempty host-issued invocation identity, unique among active callbacks.\n\n\r\n\x05\x04\n\x02\x01\x05\x12\x04\xdc\x01\x02\x08\n\r\n\x05\x04\n\x02\x01\x01\x12\x04\xdc\x01\t\x16\n\r\n\x05\x04\n\x02\x01\x03\x12\x04\xdc\x01\x19\x1a\n\r\n\x05\x04\n\x02\x01\x08\x12\x04\xdc\x01\x1bG\n\x10\n\x08\x04\n\x02\x01\x08\x87\t\x0e\x12\x04\xdc\x01\x1cF\np\n\x04\x04\n\x02\x02\x12\x04\xdf\x01\x02L\x1ab Exact callback registration identity; it must match callback metadata and the selected\n surface.\n\n\r\n\x05\x04\n\x02\x02\x05\x12\x04\xdf\x01\x02\x08\n\r\n\x05\x04\n\x02\x02\x01\x12\x04\xdf\x01\t\x1a\n\r\n\x05\x04\n\x02\x02\x03\x12\x04\xdf\x01\x1d\x1e\n\r\n\x05\x04\n\x02\x02\x08\x12\x04\xdf\x01\x1fK\n\x10\n\x08\x04\n\x02\x02\x08\x87\t\x0e\x12\x04\xdf\x01 J\nX\n\x04\x04\n\x02\x03\x12\x04\xe1\x01\x02\x19\x1aJ Optional host binding selecting the stack and parent for this operation.\n\n\r\n\x05\x04\n\x02\x03\x06\x12\x04\xe1\x01\x02\x0e\n\r\n\x05\x04\n\x02\x03\x01\x12\x04\xe1\x01\x0f\x14\n\r\n\x05\x04\n\x02\x03\x03\x12\x04\xe1\x01\x17\x18\nI\n\x04\x04\n\x02\x04\x12\x04\xe3\x01\x02\x18\x1a; Model identity associated with the managed LLM operation.\n\n\r\n\x05\x04\n\x02\x04\x05\x12\x04\xe3\x01\x02\x08\n\r\n\x05\x04\n\x02\x04\x01\x12\x04\xe3\x01\t\x13\n\r\n\x05\x04\n\x02\x04\x03\x12\x04\xe3\x01\x16\x17\nf\n\x04\x04\n\x02\x05\x12\x04\xe5\x01\x02@\x1aX Required provider request supplied to this callback, continuation, or codec operation.\n\n\r\n\x05\x04\n\x02\x05\x06\x12\x04\xe5\x01\x02\x0c\n\r\n\x05\x04\n\x02\x05\x01\x12\x04\xe5\x01\r\x14\n\r\n\x05\x04\n\x02\x05\x03\x12\x04\xe5\x01\x17\x18\n\r\n\x05\x04\n\x02\x05\x08\x12\x04\xe5\x01\x19?\n\x10\n\x08\x04\n\x02\x05\x08\x87\t\x19\x12\x04\xe5\x01\x1a>\nl\n\x04\x04\n\x02\x06\x12\x04\xe7\x01\x02J\x1a^ Host-issued continuation bound to the active callback; reject expired or foreign identities.\n\n\r\n\x05\x04\n\x02\x06\x05\x12\x04\xe7\x01\x02\x08\n\r\n\x05\x04\n\x02\x06\x01\x12\x04\xe7\x01\t\x18\n\r\n\x05\x04\n\x02\x06\x03\x12\x04\xe7\x01\x1b\x1c\n\r\n\x05\x04\n\x02\x06\x08\x12\x04\xe7\x01\x1dI\n\x10\n\x08\x04\n\x02\x06\x08\x87\t\x0e\x12\x04\xe7\x01\x1eH\na\n\x04\x04\n\x02\x07\x12\x04\xe9\x01\x02K\x1aS Required request codec identity and optional invocation-scoped access capability.\n\n\r\n\x05\x04\n\x02\x07\x06\x12\x04\xe9\x01\x02\x11\n\r\n\x05\x04\n\x02\x07\x01\x12\x04\xe9\x01\x12\x1f\n\r\n\x05\x04\n\x02\x07\x03\x12\x04\xe9\x01\"#\n\r\n\x05\x04\n\x02\x07\x08\x12\x04\xe9\x01$J\n\x10\n\x08\x04\n\x02\x07\x08\x87\t\x19\x12\x04\xe9\x01%I\n^\n\x02\x04\x0b\x12\x06\xed\x01\x00\xf6\x01\x01\x1aP Exactly one item required. Error is terminal; clean EOF is successful closure.\n\n\x0b\n\x03\x04\x0b\x01\x12\x04\xed\x01\x08\x1c\n^\n\x04\x04\x0b\x08\x00\x12\x06\xef\x01\x02\xf5\x01\x03\x1aN Exactly one recognized alternative is required when this message is present.\n\n\r\n\x05\x04\x0b\x08\x00\x01\x12\x04\xef\x01\x08\x0c\n\r\n\x05\x04\x0b\x08\x00\x02\x12\x04\xf0\x01\x040\n\x10\n\x08\x04\x0b\x08\x00\x02\x87\t\x01\x12\x04\xf0\x01\x040\nL\n\x04\x04\x0b\x02\x00\x12\x04\xf2\x01\x04\x18\x1a> Required provider-owned JSON chunk; empty bytes are invalid.\n\n\r\n\x05\x04\x0b\x02\x00\x06\x12\x04\xf2\x01\x04\r\n\r\n\x05\x04\x0b\x02\x00\x01\x12\x04\xf2\x01\x0e\x13\n\r\n\x05\x04\x0b\x02\x00\x03\x12\x04\xf2\x01\x16\x17\nb\n\x04\x04\x0b\x02\x01\x12\x04\xf4\x01\x04\x1a\x1aT Callback or downstream domain failure; mutually exclusive with successful results.\n\n\r\n\x05\x04\x0b\x02\x01\x06\x12\x04\xf4\x01\x04\x0f\n\r\n\x05\x04\x0b\x02\x01\x01\x12\x04\xf4\x01\x10\x15\n\r\n\x05\x04\x0b\x02\x01\x03\x12\x04\xf4\x01\x18\x19\nV\n\x02\x04\x0c\x12\x06\xf9\x01\x00\x80\x02\x01\x1aH Requests cancellation of one active invocation without replaying work.\n\n\x0b\n\x03\x04\x0c\x01\x12\x04\xf9\x01\x08\x1f\nl\n\x04\x04\x0c\x02\x00\x12\x04\xfb\x01\x02E\x1a^ Required activation credentials; invalid authentication fails before the operation executes.\n\n\r\n\x05\x04\x0c\x02\x00\x06\x12\x04\xfb\x01\x02\r\n\r\n\x05\x04\x0c\x02\x00\x01\x12\x04\xfb\x01\x0e\x19\n\r\n\x05\x04\x0c\x02\x00\x03\x12\x04\xfb\x01\x1c\x1d\n\r\n\x05\x04\x0c\x02\x00\x08\x12\x04\xfb\x01\x1eD\n\x10\n\x08\x04\x0c\x02\x00\x08\x87\t\x19\x12\x04\xfb\x01\x1fC\nX\n\x04\x04\x0c\x02\x01\x12\x04\xfd\x01\x02H\x1aJ Nonempty host-issued invocation identity, unique among active callbacks.\n\n\r\n\x05\x04\x0c\x02\x01\x05\x12\x04\xfd\x01\x02\x08\n\r\n\x05\x04\x0c\x02\x01\x01\x12\x04\xfd\x01\t\x16\n\r\n\x05\x04\x0c\x02\x01\x03\x12\x04\xfd\x01\x19\x1a\n\r\n\x05\x04\x0c\x02\x01\x08\x12\x04\xfd\x01\x1bG\n\x10\n\x08\x04\x0c\x02\x01\x08\x87\t\x0e\x12\x04\xfd\x01\x1cF\nd\n\x04\x04\x0c\x02\x02\x12\x04\xff\x01\x02\x14\x1aV Human-readable explanation for the decision; it does not carry additional authority.\n\n\r\n\x05\x04\x0c\x02\x02\x05\x12\x04\xff\x01\x02\x08\n\r\n\x05\x04\x0c\x02\x02\x01\x12\x04\xff\x01\t\x0f\n\r\n\x05\x04\x0c\x02\x02\x03\x12\x04\xff\x01\x12\x13\nc\n\x02\x04\r\x12\x06\x83\x02\x00\x88\x02\x01\x1aU Idempotent: unknown/completed IDs return accepted=false, without resurrecting work.\n\n\x0b\n\x03\x04\r\x01\x12\x04\x83\x02\x08 \nk\n\x04\x04\r\x02\x00\x12\x04\x85\x02\x02\x14\x1a] True when cancellation targeted active work; false for unknown or completed invocation IDs.\n\n\r\n\x05\x04\r\x02\x00\x05\x12\x04\x85\x02\x02\x06\n\r\n\x05\x04\r\x02\x00\x01\x12\x04\x85\x02\x07\x0f\n\r\n\x05\x04\r\x02\x00\x03\x12\x04\x85\x02\x12\x13\na\n\x04\x04\r\x02\x01\x12\x04\x87\x02\x02\x15\x1aS Human-readable description; consumers must not infer control flow from this text.\n\n\r\n\x05\x04\r\x02\x01\x05\x12\x04\x87\x02\x02\x08\n\r\n\x05\x04\r\x02\x01\x01\x12\x04\x87\x02\t\x10\n\r\n\x05\x04\r\x02\x01\x03\x12\x04\x87\x02\x13\x14\nV\n\x02\x04\x0e\x12\x06\x8b\x02\x00\x90\x02\x01\x1aH Requests bounded worker drain and resource cleanup for the activation.\n\n\x0b\n\x03\x04\x0e\x01\x12\x04\x8b\x02\x08\x17\nl\n\x04\x04\x0e\x02\x00\x12\x04\x8d\x02\x02E\x1a^ Required activation credentials; invalid authentication fails before the operation executes.\n\n\r\n\x05\x04\x0e\x02\x00\x06\x12\x04\x8d\x02\x02\r\n\r\n\x05\x04\x0e\x02\x00\x01\x12\x04\x8d\x02\x0e\x19\n\r\n\x05\x04\x0e\x02\x00\x03\x12\x04\x8d\x02\x1c\x1d\n\r\n\x05\x04\x0e\x02\x00\x08\x12\x04\x8d\x02\x1eD\n\x10\n\x08\x04\x0e\x02\x00\x08\x87\t\x19\x12\x04\x8d\x02\x1fC\nd\n\x04\x04\x0e\x02\x01\x12\x04\x8f\x02\x02\x14\x1aV Human-readable explanation for the decision; it does not carry additional authority.\n\n\r\n\x05\x04\x0e\x02\x01\x05\x12\x04\x8f\x02\x02\x08\n\r\n\x05\x04\x0e\x02\x01\x01\x12\x04\x8f\x02\t\x0f\n\r\n\x05\x04\x0e\x02\x01\x03\x12\x04\x8f\x02\x12\x13\nK\n\x02\x04\x0f\x12\x04\x93\x02\x00\x1b\x1a? Confirms successful admission of the worker shutdown request.\n\n\x0b\n\x03\x04\x0f\x01\x12\x04\x93\x02\x08\x18b\x06proto3\n\xd9\xdd\x01\n<nvidia/nemo/relay/worker/v1/relay_host_runtime_service.proto\x12\x1bnvidia.nemo.relay.worker.v1\x1a\x1bbuf/validate/validate.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a(nvidia/nemo/relay/worker/v1/common.proto\x1a\'nvidia/nemo/relay/worker/v1/event.proto\x1a%nvidia/nemo/relay/worker/v1/llm.proto\x1a)nvidia/nemo/relay/worker/v1/runtime.proto\"\x9f\x02\n\nLogRequest\x12R\n\x0bcredentials\x18\x01 \x01(\x0b2(.nvidia.nemo.relay.worker.v1.CredentialsB\x06\xbaH\x03\xc8\x01\x01R\x0bcredentials\x12J\n\x05level\x18\x02 \x01(\x0e2(.nvidia.nemo.relay.worker.v1.LogSeverityB\n\xbaH\x07\x82\x01\x04\x10\x01 \x00R\x05level\x12\x16\n\x06target\x18\x03 \x01(\tR\x06target\x12\x18\n\x07message\x18\x04 \x01(\tR\x07message\x12?\n\x06fields\x18\x05 \x01(\x0b2\'.nvidia.nemo.relay.worker.v1.JsonObjectR\x06fields\"\r\n\x0bLogResponse\"\xf0\x01\n\x0fEmitMarkRequest\x12R\n\x0bcredentials\x18\x01 \x01(\x0b2(.nvidia.nemo.relay.worker.v1.CredentialsB\x06\xbaH\x03\xc8\x01\x01R\x0bcredentials\x12?\n\x05scope\x18\x02 \x01(\x0b2).nvidia.nemo.relay.worker.v1.ScopeContextR\x05scope\x12H\n\x04mark\x18\x03 \x01(\x0b2,.nvidia.nemo.relay.worker.v1.PendingMarkSpecB\x06\xbaH\x03\xc8\x01\x01R\x04mark\"\x12\n\x10EmitMarkResponse\"\xba\x01\n#GetCurrentScopeStackSnapshotRequest\x12R\n\x0bcredentials\x18\x01 \x01(\x0b2(.nvidia.nemo.relay.worker.v1.CredentialsB\x06\xbaH\x03\xc8\x01\x01R\x0bcredentials\x12?\n\x05scope\x18\x02 \x01(\x0b2).nvidia.nemo.relay.worker.v1.ScopeContextR\x05scope\"\xbf\x01\n$GetCurrentScopeStackSnapshotResponse\x12M\n\x08snapshot\x18\x01 \x01(\x0b2/.nvidia.nemo.relay.worker.v1.ScopeStackSnapshotH\x00R\x08snapshot\x127\n\nno_context\x18\x02 \x01(\x0b2\x16.google.protobuf.EmptyH\x00R\tnoContextB\x0f\n\x06result\x12\x05\xbaH\x02\x08\x01\"r\n\x1cGetRuntimeDiagnosticsRequest\x12R\n\x0bcredentials\x18\x01 \x01(\x0b2(.nvidia.nemo.relay.worker.v1.CredentialsB\x06\xbaH\x03\xc8\x01\x01R\x0bcredentials\"i\n\x1dGetRuntimeDiagnosticsResponse\x12H\n\x07entries\x18\x01 \x03(\x0b2..nvidia.nemo.relay.worker.v1.RuntimeDiagnosticR\x07entries\"\xfc\x03\n\x10PushScopeRequest\x12R\n\x0bcredentials\x18\x01 \x01(\x0b2(.nvidia.nemo.relay.worker.v1.CredentialsB\x06\xbaH\x03\xc8\x01\x01R\x0bcredentials\x12?\n\x05scope\x18\x02 \x01(\x0b2).nvidia.nemo.relay.worker.v1.ScopeContextR\x05scope\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12Q\n\nscope_type\x18\x04 \x01(\x0e2&.nvidia.nemo.relay.worker.v1.ScopeTypeB\n\xbaH\x07\x82\x01\x04\x10\x01 \x00R\tscopeType\x12:\n\x04data\x18\x05 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueR\x04data\x12B\n\x08metadata\x18\x06 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueR\x08metadata\x12<\n\x05input\x18\x07 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueR\x05input\x12.\n\x04time\x18\x08 \x01(\x0b2\x1a.google.protobuf.TimestampR\x04time\"D\n\x11PushScopeResponse\x12/\n\x0fscope_handle_id\x18\x01 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\rscopeHandleId\"\xca\x02\n\x0fPopScopeRequest\x12R\n\x0bcredentials\x18\x01 \x01(\x0b2(.nvidia.nemo.relay.worker.v1.CredentialsB\x06\xbaH\x03\xc8\x01\x01R\x0bcredentials\x12/\n\x0fscope_handle_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\rscopeHandleId\x12>\n\x06output\x18\x03 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueR\x06output\x12B\n\x08metadata\x18\x04 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueR\x08metadata\x12.\n\x04time\x18\x05 \x01(\x0b2\x1a.google.protobuf.TimestampR\x04time\"\x12\n\x10PopScopeResponse\"m\n\x17CreateScopeStackRequest\x12R\n\x0bcredentials\x18\x01 \x01(\x0b2(.nvidia.nemo.relay.worker.v1.CredentialsB\x06\xbaH\x03\xc8\x01\x01R\x0bcredentials\"I\n\x18CreateScopeStackResponse\x12-\n\x0escope_stack_id\x18\x01 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0cscopeStackId\"\x9a\x01\n\x15DropScopeStackRequest\x12R\n\x0bcredentials\x18\x01 \x01(\x0b2(.nvidia.nemo.relay.worker.v1.CredentialsB\x06\xbaH\x03\xc8\x01\x01R\x0bcredentials\x12-\n\x0escope_stack_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0cscopeStackId\"\x18\n\x16DropScopeStackResponse\"\x9e\x02\n\x0fToolNextRequest\x12R\n\x0bcredentials\x18\x01 \x01(\x0b2(.nvidia.nemo.relay.worker.v1.CredentialsB\x06\xbaH\x03\xc8\x01\x01R\x0bcredentials\x120\n\x0fcontinuation_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0econtinuationId\x12D\n\x05value\x18\x03 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueB\x06\xbaH\x03\xc8\x01\x01R\x05value\x12?\n\x05scope\x18\x04 \x01(\x0b2).nvidia.nemo.relay.worker.v1.ScopeContextR\x05scope\"\xaf\x01\n\x10ToolNextResponse\x12H\n\x05value\x18\x01 \x01(\x0b20.nvidia.nemo.relay.worker.v1.ToolExecutionResultH\x00R\x05value\x12@\n\x05error\x18\x02 \x01(\x0b2(.nvidia.nemo.relay.worker.v1.WorkerErrorH\x00R\x05errorB\x0f\n\x06result\x12\x05\xbaH\x02\x08\x01\"\xa2\x02\n\x0eLlmNextRequest\x12R\n\x0bcredentials\x18\x01 \x01(\x0b2(.nvidia.nemo.relay.worker.v1.CredentialsB\x06\xbaH\x03\xc8\x01\x01R\x0bcredentials\x120\n\x0fcontinuation_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0econtinuationId\x12I\n\x07request\x18\x03 \x01(\x0b2\'.nvidia.nemo.relay.worker.v1.LlmRequestB\x06\xbaH\x03\xc8\x01\x01R\x07request\x12?\n\x05scope\x18\x04 \x01(\x0b2).nvidia.nemo.relay.worker.v1.ScopeContextR\x05scope\"\xa4\x01\n\x0fLlmNextResponse\x12>\n\x05value\x18\x01 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueH\x00R\x05value\x12@\n\x05error\x18\x02 \x01(\x0b2(.nvidia.nemo.relay.worker.v1.WorkerErrorH\x00R\x05errorB\x0f\n\x06result\x12\x05\xbaH\x02\x08\x01\"\xa8\x02\n\x14LlmStreamNextRequest\x12R\n\x0bcredentials\x18\x01 \x01(\x0b2(.nvidia.nemo.relay.worker.v1.CredentialsB\x06\xbaH\x03\xc8\x01\x01R\x0bcredentials\x120\n\x0fcontinuation_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0econtinuationId\x12I\n\x07request\x18\x03 \x01(\x0b2\'.nvidia.nemo.relay.worker.v1.LlmRequestB\x06\xbaH\x03\xc8\x01\x01R\x07request\x12?\n\x05scope\x18\x04 \x01(\x0b2).nvidia.nemo.relay.worker.v1.ScopeContextR\x05scope\"\xa8\x01\n\x15LlmStreamNextResponse\x12>\n\x05value\x18\x01 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueH\x00R\x05value\x12@\n\x05error\x18\x02 \x01(\x0b2(.nvidia.nemo.relay.worker.v1.WorkerErrorH\x00R\x05errorB\r\n\x04item\x12\x05\xbaH\x02\x08\x01\"\xa4\x02\n\x1cDecodeLlmCodecRequestRequest\x12R\n\x0bcredentials\x18\x01 \x01(\x0b2(.nvidia.nemo.relay.worker.v1.CredentialsB\x06\xbaH\x03\xc8\x01\x01R\x0bcredentials\x127\n\x13codec_capability_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x11codecCapabilityId\x12,\n\rinvocation_id\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0cinvocationId\x12I\n\x07request\x18\x04 \x01(\x0b2\'.nvidia.nemo.relay.worker.v1.LlmRequestB\x06\xbaH\x03\xc8\x01\x01R\x07request\"\xbc\x01\n\x1dDecodeLlmCodecRequestResponse\x12H\n\x05value\x18\x01 \x01(\x0b20.nvidia.nemo.relay.worker.v1.AnnotatedLlmRequestH\x00R\x05value\x12@\n\x05error\x18\x02 \x01(\x0b2(.nvidia.nemo.relay.worker.v1.WorkerErrorH\x00R\x05errorB\x0f\n\x06result\x12\x05\xbaH\x02\x08\x01\"\x9c\x03\n\x1cEncodeLlmCodecRequestRequest\x12R\n\x0bcredentials\x18\x01 \x01(\x0b2(.nvidia.nemo.relay.worker.v1.CredentialsB\x06\xbaH\x03\xc8\x01\x01R\x0bcredentials\x127\n\x13codec_capability_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x11codecCapabilityId\x12,\n\rinvocation_id\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0cinvocationId\x12e\n\x11annotated_request\x18\x04 \x01(\x0b20.nvidia.nemo.relay.worker.v1.AnnotatedLlmRequestB\x06\xbaH\x03\xc8\x01\x01R\x10annotatedRequest\x12Z\n\x10original_request\x18\x05 \x01(\x0b2\'.nvidia.nemo.relay.worker.v1.LlmRequestB\x06\xbaH\x03\xc8\x01\x01R\x0foriginalRequest\"\xb3\x01\n\x1dEncodeLlmCodecRequestResponse\x12?\n\x05value\x18\x01 \x01(\x0b2\'.nvidia.nemo.relay.worker.v1.LlmRequestH\x00R\x05value\x12@\n\x05error\x18\x02 \x01(\x0b2(.nvidia.nemo.relay.worker.v1.WorkerErrorH\x00R\x05errorB\x0f\n\x06result\x12\x05\xbaH\x02\x08\x01\"\xa6\x02\n\x1dDecodeLlmCodecResponseRequest\x12R\n\x0bcredentials\x18\x01 \x01(\x0b2(.nvidia.nemo.relay.worker.v1.CredentialsB\x06\xbaH\x03\xc8\x01\x01R\x0bcredentials\x127\n\x13codec_capability_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x11codecCapabilityId\x12,\n\rinvocation_id\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0cinvocationId\x12J\n\x08response\x18\x04 \x01(\x0b2&.nvidia.nemo.relay.worker.v1.JsonValueB\x06\xbaH\x03\xc8\x01\x01R\x08response\"\xbe\x01\n\x1eDecodeLlmCodecResponseResponse\x12I\n\x05value\x18\x01 \x01(\x0b21.nvidia.nemo.relay.worker.v1.AnnotatedLlmResponseH\x00R\x05value\x12@\n\x05error\x18\x02 \x01(\x0b2(.nvidia.nemo.relay.worker.v1.WorkerErrorH\x00R\x05errorB\x0f\n\x06result\x12\x05\xbaH\x02\x08\x01\"\xce\x01\n\x1fListRuntimeRegistrationsRequest\x12R\n\x0bcredentials\x18\x01 \x01(\x0b2(.nvidia.nemo.relay.worker.v1.CredentialsB\x06\xbaH\x03\xc8\x01\x01R\x0bcredentials\x12W\n\x05kinds\x18\x02 \x03(\x0e20.nvidia.nemo.relay.worker.v1.RegistrationSurfaceB\x0f\xbaH\x0c\x92\x01\t\"\x07\x82\x01\x04\x10\x01 \x00R\x05kinds\"\x82\x01\n ListRuntimeRegistrationsResponse\x12^\n\rregistrations\x18\x01 \x03(\x0b28.nvidia.nemo.relay.worker.v1.RuntimeRegistrationIdentityR\rregistrations\"\xf8\x01\n-RegisterConditionalMiddlewareGuardrailRequest\x12R\n\x0bcredentials\x18\x01 \x01(\x0b2(.nvidia.nemo.relay.worker.v1.CredentialsB\x06\xbaH\x03\xc8\x01\x01R\x0bcredentials\x12s\n\x0cregistration\x18\x02 \x01(\x0b2G.nvidia.nemo.relay.worker.v1.ConditionalMiddlewareGuardrailRegistrationB\x06\xbaH\x03\xc8\x01\x01R\x0cregistration\"Q\n.RegisterConditionalMiddlewareGuardrailResponse\x12\x1f\n\x06handle\x18\x01 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x06handle\"\xa6\x01\n/DeregisterConditionalMiddlewareGuardrailRequest\x12R\n\x0bcredentials\x18\x01 \x01(\x0b2(.nvidia.nemo.relay.worker.v1.CredentialsB\x06\xbaH\x03\xc8\x01\x01R\x0bcredentials\x12\x1f\n\x06handle\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x06handle\"L\n0DeregisterConditionalMiddlewareGuardrailResponse\x12\x18\n\x07removed\x18\x01 \x01(\x08R\x07removed2\x8b\x12\n\x17RelayHostRuntimeService\x12X\n\x03Log\x12\'.nvidia.nemo.relay.worker.v1.LogRequest\x1a(.nvidia.nemo.relay.worker.v1.LogResponse\x12g\n\x08EmitMark\x12,.nvidia.nemo.relay.worker.v1.EmitMarkRequest\x1a-.nvidia.nemo.relay.worker.v1.EmitMarkResponse\x12\xa3\x01\n\x1cGetCurrentScopeStackSnapshot\x12@.nvidia.nemo.relay.worker.v1.GetCurrentScopeStackSnapshotRequest\x1aA.nvidia.nemo.relay.worker.v1.GetCurrentScopeStackSnapshotResponse\x12\x8e\x01\n\x15GetRuntimeDiagnostics\x129.nvidia.nemo.relay.worker.v1.GetRuntimeDiagnosticsRequest\x1a:.nvidia.nemo.relay.worker.v1.GetRuntimeDiagnosticsResponse\x12j\n\tPushScope\x12-.nvidia.nemo.relay.worker.v1.PushScopeRequest\x1a..nvidia.nemo.relay.worker.v1.PushScopeResponse\x12g\n\x08PopScope\x12,.nvidia.nemo.relay.worker.v1.PopScopeRequest\x1a-.nvidia.nemo.relay.worker.v1.PopScopeResponse\x12\x7f\n\x10CreateScopeStack\x124.nvidia.nemo.relay.worker.v1.CreateScopeStackRequest\x1a5.nvidia.nemo.relay.worker.v1.CreateScopeStackResponse\x12y\n\x0eDropScopeStack\x122.nvidia.nemo.relay.worker.v1.DropScopeStackRequest\x1a3.nvidia.nemo.relay.worker.v1.DropScopeStackResponse\x12g\n\x08ToolNext\x12,.nvidia.nemo.relay.worker.v1.ToolNextRequest\x1a-.nvidia.nemo.relay.worker.v1.ToolNextResponse\x12d\n\x07LlmNext\x12+.nvidia.nemo.relay.worker.v1.LlmNextRequest\x1a,.nvidia.nemo.relay.worker.v1.LlmNextResponse\x12x\n\rLlmStreamNext\x121.nvidia.nemo.relay.worker.v1.LlmStreamNextRequest\x1a2.nvidia.nemo.relay.worker.v1.LlmStreamNextResponse0\x01\x12\x8e\x01\n\x15DecodeLlmCodecRequest\x129.nvidia.nemo.relay.worker.v1.DecodeLlmCodecRequestRequest\x1a:.nvidia.nemo.relay.worker.v1.DecodeLlmCodecRequestResponse\x12\x8e\x01\n\x15EncodeLlmCodecRequest\x129.nvidia.nemo.relay.worker.v1.EncodeLlmCodecRequestRequest\x1a:.nvidia.nemo.relay.worker.v1.EncodeLlmCodecRequestResponse\x12\x91\x01\n\x16DecodeLlmCodecResponse\x12:.nvidia.nemo.relay.worker.v1.DecodeLlmCodecResponseRequest\x1a;.nvidia.nemo.relay.worker.v1.DecodeLlmCodecResponseResponse\x12\x97\x01\n\x18ListRuntimeRegistrations\x12<.nvidia.nemo.relay.worker.v1.ListRuntimeRegistrationsRequest\x1a=.nvidia.nemo.relay.worker.v1.ListRuntimeRegistrationsResponse\x12\xc1\x01\n&RegisterConditionalMiddlewareGuardrail\x12J.nvidia.nemo.relay.worker.v1.RegisterConditionalMiddlewareGuardrailRequest\x1aK.nvidia.nemo.relay.worker.v1.RegisterConditionalMiddlewareGuardrailResponse\x12\xc7\x01\n(DeregisterConditionalMiddlewareGuardrail\x12L.nvidia.nemo.relay.worker.v1.DeregisterConditionalMiddlewareGuardrailRequest\x1aM.nvidia.nemo.relay.worker.v1.DeregisterConditionalMiddlewareGuardrailResponseJ\x82\x97\x01\n\x07\x12\x05\x05\x00\xfc\x02\x01\n\xeb\x01\n\x01\x0c\x12\x03\x05\x00\x122\x88\x01 SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n SPDX-License-Identifier: Apache-2.0\n2V Defines RelayHostRuntimeService and its dedicated RPC request and response messages.\n\n\x08\n\x01\x02\x12\x03\x07\x00$\n\t\n\x02\x03\x00\x12\x03\t\x00%\n\t\n\x02\x03\x01\x12\x03\n\x00%\n\t\n\x02\x03\x02\x12\x03\x0b\x00)\n\t\n\x02\x03\x03\x12\x03\x0c\x002\n\t\n\x02\x03\x04\x12\x03\r\x001\n\t\n\x02\x03\x05\x12\x03\x0e\x00/\n\t\n\x02\x03\x06\x12\x03\x0f\x003\nl\n\x02\x06\x00\x12\x04\x12\x006\x01\x1a` Authenticated host runtime operations for scope, continuation, codec, and registration access.\n\n\n\n\x03\x06\x00\x01\x12\x03\x12\x08\x1f\nX\n\x04\x06\x00\x02\x00\x12\x03\x14\x02,\x1aK Submits a process-log record to the host-owned sink and filtering policy.\n\n\x0c\n\x05\x06\x00\x02\x00\x01\x12\x03\x14\x06\t\n\x0c\n\x05\x06\x00\x02\x00\x02\x12\x03\x14\n\x14\n\x0c\n\x05\x06\x00\x02\x00\x03\x12\x03\x14\x1f*\nQ\n\x04\x06\x00\x02\x01\x12\x03\x16\x02;\x1aD Materializes a pending mark under the selected host scope context.\n\n\x0c\n\x05\x06\x00\x02\x01\x01\x12\x03\x16\x06\x0e\n\x0c\n\x05\x06\x00\x02\x01\x02\x12\x03\x16\x0f\x1e\n\x0c\n\x05\x06\x00\x02\x01\x03\x12\x03\x16)9\n_\n\x04\x06\x00\x02\x02\x12\x03\x18\x02w\x1aR Returns owned root-to-top scope identities or explicit absence of bound context.\n\n\x0c\n\x05\x06\x00\x02\x02\x01\x12\x03\x18\x06\"\n\x0c\n\x05\x06\x00\x02\x02\x02\x12\x03\x18#F\n\x0c\n\x05\x06\x00\x02\x02\x03\x12\x03\x18Qu\nS\n\x04\x06\x00\x02\x03\x12\x03\x1a\x02b\x1aF Returns bounded operational diagnostic counters for the active host.\n\n\x0c\n\x05\x06\x00\x02\x03\x01\x12\x03\x1a\x06\x1b\n\x0c\n\x05\x06\x00\x02\x03\x02\x12\x03\x1a\x1c8\n\x0c\n\x05\x06\x00\x02\x03\x03\x12\x03\x1aC`\nM\n\x04\x06\x00\x02\x04\x12\x03\x1c\x02>\x1a@ Creates and binds a scope under the selected stack and parent.\n\n\x0c\n\x05\x06\x00\x02\x04\x01\x12\x03\x1c\x06\x0f\n\x0c\n\x05\x06\x00\x02\x04\x02\x12\x03\x1c\x10 \n\x0c\n\x05\x06\x00\x02\x04\x03\x12\x03\x1c+<\n^\n\x04\x06\x00\x02\x05\x12\x03\x1e\x02;\x1aQ Closes an owned scope handle with optional output, metadata, and explicit time.\n\n\x0c\n\x05\x06\x00\x02\x05\x01\x12\x03\x1e\x06\x0e\n\x0c\n\x05\x06\x00\x02\x05\x02\x12\x03\x1e\x0f\x1e\n\x0c\n\x05\x06\x00\x02\x05\x03\x12\x03\x1e)9\n@\n\x04\x06\x00\x02\x06\x12\x03 \x02S\x1a3 Creates an isolated activation-owned scope stack.\n\n\x0c\n\x05\x06\x00\x02\x06\x01\x12\x03 \x06\x16\n\x0c\n\x05\x06\x00\x02\x06\x02\x12\x03 \x17.\n\x0c\n\x05\x06\x00\x02\x06\x03\x12\x03 9Q\nA\n\x04\x06\x00\x02\x07\x12\x03\"\x02M\x1a4 Releases an isolated activation-owned scope stack.\n\n\x0c\n\x05\x06\x00\x02\x07\x01\x12\x03\"\x06\x14\n\x0c\n\x05\x06\x00\x02\x07\x02\x12\x03\"\x15*\n\x0c\n\x05\x06\x00\x02\x07\x03\x12\x03\"5K\nj\n\x04\x06\x00\x02\x08\x12\x03$\x02;\x1a] Calls the current tool continuation and preserves its original downstream failure identity.\n\n\x0c\n\x05\x06\x00\x02\x08\x01\x12\x03$\x06\x0e\n\x0c\n\x05\x06\x00\x02\x08\x02\x12\x03$\x0f\x1e\n\x0c\n\x05\x06\x00\x02\x08\x03\x12\x03$)9\np\n\x04\x06\x00\x02\t\x12\x03\'\x028\x1ac Calls the current unary LLM continuation and preserves its original downstream failure\n identity.\n\n\x0c\n\x05\x06\x00\x02\t\x01\x12\x03\'\x06\r\n\x0c\n\x05\x06\x00\x02\t\x02\x12\x03\'\x0e\x1c\n\x0c\n\x05\x06\x00\x02\t\x03\x12\x03\'\'6\n`\n\x04\x06\x00\x02\n\x12\x03)\x02Q\x1aS Opens the current streaming LLM continuation; one error item terminates delivery.\n\n\x0c\n\x05\x06\x00\x02\n\x01\x12\x03)\x06\x13\n\x0c\n\x05\x06\x00\x02\n\x02\x12\x03)\x14(\n\x0c\n\x05\x06\x00\x02\n\x06\x12\x03)39\n\x0c\n\x05\x06\x00\x02\n\x03\x12\x03):O\nd\n\x04\x06\x00\x02\x0b\x12\x03+\x02b\x1aW Decodes a provider request through the current invocation\'s request codec capability.\n\n\x0c\n\x05\x06\x00\x02\x0b\x01\x12\x03+\x06\x1b\n\x0c\n\x05\x06\x00\x02\x0b\x02\x12\x03+\x1c8\n\x0c\n\x05\x06\x00\x02\x0b\x03\x12\x03+C`\nb\n\x04\x06\x00\x02\x0c\x12\x03-\x02b\x1aU Encodes a normalized annotation relative to the original provider request baseline.\n\n\x0c\n\x05\x06\x00\x02\x0c\x01\x12\x03-\x06\x1b\n\x0c\n\x05\x06\x00\x02\x0c\x02\x12\x03-\x1c8\n\x0c\n\x05\x06\x00\x02\x0c\x03\x12\x03-C`\n]\n\x04\x06\x00\x02\r\x12\x03/\x02e\x1aP Decodes a completed provider response through the invocation\'s response codec.\n\n\x0c\n\x05\x06\x00\x02\r\x01\x12\x03/\x06\x1c\n\x0c\n\x05\x06\x00\x02\r\x02\x12\x03/\x1d:\n\x0c\n\x05\x06\x00\x02\r\x03\x12\x03/Ec\n_\n\x04\x06\x00\x02\x0e\x12\x031\x02k\x1aR Lists visible runtime registrations, optionally filtered by recognized surfaces.\n\n\x0c\n\x05\x06\x00\x02\x0e\x01\x12\x031\x06\x1e\n\x0c\n\x05\x06\x00\x02\x0e\x02\x12\x031\x1f>\n\x0c\n\x05\x06\x00\x02\x0e\x03\x12\x031Ii\nb\n\x04\x06\x00\x02\x0f\x12\x043\x02\x95\x01\x1aT Installs an activation-owned conditional middleware filter and returns its handle.\n\n\x0c\n\x05\x06\x00\x02\x0f\x01\x12\x033\x06,\n\x0c\n\x05\x06\x00\x02\x0f\x02\x12\x033-Z\n\r\n\x05\x06\x00\x02\x0f\x03\x12\x043e\x93\x01\nW\n\x04\x06\x00\x02\x10\x12\x045\x02\x9b\x01\x1aI Idempotently removes an activation-owned conditional middleware filter.\n\n\x0c\n\x05\x06\x00\x02\x10\x01\x12\x035\x06.\n\x0c\n\x05\x06\x00\x02\x10\x02\x12\x035/^\n\r\n\x05\x06\x00\x02\x10\x03\x12\x045i\x99\x01\n_\n\x02\x04\x00\x12\x049\x00G\x01\x1aS Submits an authenticated process-log record to the host-owned sink and threshold.\n\n\n\n\x03\x04\x00\x01\x12\x039\x08\x12\nk\n\x04\x04\x00\x02\x00\x12\x03;\x02E\x1a^ Required activation credentials; invalid authentication fails before the operation executes.\n\n\x0c\n\x05\x04\x00\x02\x00\x06\x12\x03;\x02\r\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03;\x0e\x19\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03;\x1c\x1d\n\x0c\n\x05\x04\x00\x02\x00\x08\x12\x03;\x1eD\n\x0f\n\x08\x04\x00\x02\x00\x08\x87\t\x19\x12\x03;\x1fC\n\\\n\x04\x04\x00\x02\x01\x12\x04=\x02@\x05\x1aN Recognized severity; an unspecified level is invalid for a submitted record.\n\n\x0c\n\x05\x04\x00\x02\x01\x06\x12\x03=\x02\r\n\x0c\n\x05\x04\x00\x02\x01\x01\x12\x03=\x0e\x13\n\x0c\n\x05\x04\x00\x02\x01\x03\x12\x03=\x16\x17\n\r\n\x05\x04\x00\x02\x01\x08\x12\x04=\x18@\x04\n\x10\n\x08\x04\x00\x02\x01\x08\x87\t\x10\x12\x04=\x19@\x03\ne\n\x04\x04\x00\x02\x02\x12\x03B\x02\x14\x1aX Process-log target selected by the plugin, subject to host validation and sink policy.\n\n\x0c\n\x05\x04\x00\x02\x02\x05\x12\x03B\x02\x08\n\x0c\n\x05\x04\x00\x02\x02\x01\x12\x03B\t\x0f\n\x0c\n\x05\x04\x00\x02\x02\x03\x12\x03B\x12\x13\n`\n\x04\x04\x00\x02\x03\x12\x03D\x02\x15\x1aS Human-readable description; consumers must not infer control flow from this text.\n\n\x0c\n\x05\x04\x00\x02\x03\x05\x12\x03D\x02\x08\n\x0c\n\x05\x04\x00\x02\x03\x01\x12\x03D\t\x10\n\x0c\n\x05\x04\x00\x02\x03\x03\x12\x03D\x13\x14\nV\n\x04\x04\x00\x02\x04\x12\x03F\x02\x18\x1aI Open object entries with string keys and required lossless JSON values.\n\n\x0c\n\x05\x04\x00\x02\x04\x06\x12\x03F\x02\x0c\n\x0c\n\x05\x04\x00\x02\x04\x01\x12\x03F\r\x13\n\x0c\n\x05\x04\x00\x02\x04\x03\x12\x03F\x16\x17\nT\n\x02\x04\x01\x12\x03J\x00\x16\x1aI Confirms the host accepted the log operation; failures use gRPC status.\n\n\n\n\x03\x04\x01\x01\x12\x03J\x08\x13\nT\n\x02\x04\x02\x12\x04M\x00T\x01\x1aH Requests host materialization of a mark in the selected scope context.\n\n\n\n\x03\x04\x02\x01\x12\x03M\x08\x17\nk\n\x04\x04\x02\x02\x00\x12\x03O\x02E\x1a^ Required activation credentials; invalid authentication fails before the operation executes.\n\n\x0c\n\x05\x04\x02\x02\x00\x06\x12\x03O\x02\r\n\x0c\n\x05\x04\x02\x02\x00\x01\x12\x03O\x0e\x19\n\x0c\n\x05\x04\x02\x02\x00\x03\x12\x03O\x1c\x1d\n\x0c\n\x05\x04\x02\x02\x00\x08\x12\x03O\x1eD\n\x0f\n\x08\x04\x02\x02\x00\x08\x87\t\x19\x12\x03O\x1fC\nW\n\x04\x04\x02\x02\x01\x12\x03Q\x02\x19\x1aJ Optional host binding selecting the stack and parent for this operation.\n\n\x0c\n\x05\x04\x02\x02\x01\x06\x12\x03Q\x02\x0e\n\x0c\n\x05\x04\x02\x02\x01\x01\x12\x03Q\x0f\x14\n\x0c\n\x05\x04\x02\x02\x01\x03\x12\x03Q\x17\x18\nI\n\x04\x04\x02\x02\x02\x12\x03S\x02B\x1a< Uses the same typed fields as interceptor-scheduled marks.\n\n\x0c\n\x05\x04\x02\x02\x02\x06\x12\x03S\x02\x11\n\x0c\n\x05\x04\x02\x02\x02\x01\x12\x03S\x12\x16\n\x0c\n\x05\x04\x02\x02\x02\x03\x12\x03S\x19\x1a\n\x0c\n\x05\x04\x02\x02\x02\x08\x12\x03S\x1bA\n\x0f\n\x08\x04\x02\x02\x02\x08\x87\t\x19\x12\x03S\x1c@\nM\n\x02\x04\x03\x12\x03W\x00\x1b\x1aB Confirms the mark operation completed; failures use gRPC status.\n\n\n\n\x03\x04\x03\x01\x12\x03W\x08\x18\nW\n\x02\x04\x04\x12\x04Z\x00_\x01\x1aK Queries the scope stack bound to an invocation or selected scope context.\n\n\n\n\x03\x04\x04\x01\x12\x03Z\x08+\nk\n\x04\x04\x04\x02\x00\x12\x03\\\x02E\x1a^ Required activation credentials; invalid authentication fails before the operation executes.\n\n\x0c\n\x05\x04\x04\x02\x00\x06\x12\x03\\\x02\r\n\x0c\n\x05\x04\x04\x02\x00\x01\x12\x03\\\x0e\x19\n\x0c\n\x05\x04\x04\x02\x00\x03\x12\x03\\\x1c\x1d\n\x0c\n\x05\x04\x04\x02\x00\x08\x12\x03\\\x1eD\n\x0f\n\x08\x04\x04\x02\x00\x08\x87\t\x19\x12\x03\\\x1fC\nW\n\x04\x04\x04\x02\x01\x12\x03^\x02\x19\x1aJ Optional host binding selecting the stack and parent for this operation.\n\n\x0c\n\x05\x04\x04\x02\x01\x06\x12\x03^\x02\x0e\n\x0c\n\x05\x04\x04\x02\x01\x01\x12\x03^\x0f\x14\n\x0c\n\x05\x04\x04\x02\x01\x03\x12\x03^\x17\x18\nQ\n\x02\x04\x05\x12\x04b\x00k\x01\x1aE Selects a present snapshot or an explicit absence of bound context.\n\n\n\n\x03\x04\x05\x01\x12\x03b\x08,\n\\\n\x04\x04\x05\x08\x00\x12\x04d\x02j\x03\x1aN Exactly one recognized alternative is required when this message is present.\n\n\x0c\n\x05\x04\x05\x08\x00\x01\x12\x03d\x08\x0e\n\x0c\n\x05\x04\x05\x08\x00\x02\x12\x03e\x040\n\x0f\n\x08\x04\x05\x08\x00\x02\x87\t\x01\x12\x03e\x040\n^\n\x04\x04\x05\x02\x00\x12\x03g\x04$\x1aQ Owned scope identities ordered from root to the current top of the bound stack.\n\n\x0c\n\x05\x04\x05\x02\x00\x06\x12\x03g\x04\x16\n\x0c\n\x05\x04\x05\x02\x00\x01\x12\x03g\x17\x1f\n\x0c\n\x05\x04\x05\x02\x00\x03\x12\x03g\"#\nB\n\x04\x04\x05\x02\x01\x12\x03i\x04)\x1a5 Distinct from a present snapshot with zero entries.\n\n\x0c\n\x05\x04\x05\x02\x01\x06\x12\x03i\x04\x19\n\x0c\n\x05\x04\x05\x02\x01\x01\x12\x03i\x1a$\n\x0c\n\x05\x04\x05\x02\x01\x03\x12\x03i\'(\nG\n\x02\x04\x06\x12\x04n\x00q\x01\x1a; Queries bounded operational counters for the active host.\n\n\n\n\x03\x04\x06\x01\x12\x03n\x08$\nk\n\x04\x04\x06\x02\x00\x12\x03p\x02E\x1a^ Required activation credentials; invalid authentication fails before the operation executes.\n\n\x0c\n\x05\x04\x06\x02\x00\x06\x12\x03p\x02\r\n\x0c\n\x05\x04\x06\x02\x00\x01\x12\x03p\x0e\x19\n\x0c\n\x05\x04\x06\x02\x00\x03\x12\x03p\x1c\x1d\n\x0c\n\x05\x04\x06\x02\x00\x08\x12\x03p\x1eD\n\x0f\n\x08\x04\x06\x02\x00\x08\x87\t\x19\x12\x03p\x1fC\n]\n\x02\x04\x07\x12\x04t\x00w\x01\x1aQ Returns bounded operational counters, independent of restricted evidence reads.\n\n\n\n\x03\x04\x07\x01\x12\x03t\x08%\nf\n\x04\x04\x07\x02\x00\x12\x03v\x02)\x1aY Bounded entries returned by this operation; an empty list is a successful empty result.\n\n\x0c\n\x05\x04\x07\x02\x00\x04\x12\x03v\x02\n\n\x0c\n\x05\x04\x07\x02\x00\x06\x12\x03v\x0b\x1c\n\x0c\n\x05\x04\x07\x02\x00\x01\x12\x03v\x1d$\n\x0c\n\x05\x04\x07\x02\x00\x03\x12\x03v\'(\nK\n\x02\x04\x08\x12\x05z\x00\x8e\x01\x01\x1a> Creates and binds a scope under the selected parent context.\n\n\n\n\x03\x04\x08\x01\x12\x03z\x08\x18\nk\n\x04\x04\x08\x02\x00\x12\x03|\x02E\x1a^ Required activation credentials; invalid authentication fails before the operation executes.\n\n\x0c\n\x05\x04\x08\x02\x00\x06\x12\x03|\x02\r\n\x0c\n\x05\x04\x08\x02\x00\x01\x12\x03|\x0e\x19\n\x0c\n\x05\x04\x08\x02\x00\x03\x12\x03|\x1c\x1d\n\x0c\n\x05\x04\x08\x02\x00\x08\x12\x03|\x1eD\n\x0f\n\x08\x04\x08\x02\x00\x08\x87\t\x19\x12\x03|\x1fC\nW\n\x04\x04\x08\x02\x01\x12\x03~\x02\x19\x1aJ Optional host binding selecting the stack and parent for this operation.\n\n\x0c\n\x05\x04\x08\x02\x01\x06\x12\x03~\x02\x0e\n\x0c\n\x05\x04\x08\x02\x01\x01\x12\x03~\x0f\x14\n\x0c\n\x05\x04\x08\x02\x01\x03\x12\x03~\x17\x18\n`\n\x04\x04\x08\x02\x02\x12\x04\x80\x01\x02\x12\x1aR Identity within the enclosing declaration; preserve its exact case and spelling.\n\n\r\n\x05\x04\x08\x02\x02\x05\x12\x04\x80\x01\x02\x08\n\r\n\x05\x04\x08\x02\x02\x01\x12\x04\x80\x01\t\r\n\r\n\x05\x04\x08\x02\x02\x03\x12\x04\x80\x01\x10\x11\nK\n\x04\x04\x08\x02\x03\x12\x06\x82\x01\x02\x85\x01\x05\x1a; Required recognized runtime scope type for the new scope.\n\n\r\n\x05\x04\x08\x02\x03\x06\x12\x04\x82\x01\x02\x0b\n\r\n\x05\x04\x08\x02\x03\x01\x12\x04\x82\x01\x0c\x16\n\r\n\x05\x04\x08\x02\x03\x03\x12\x04\x82\x01\x19\x1a\n\x0f\n\x05\x04\x08\x02\x03\x08\x12\x06\x82\x01\x1b\x85\x01\x04\n\x12\n\x08\x04\x08\x02\x03\x08\x87\t\x10\x12\x06\x82\x01\x1c\x85\x01\x03\nP\n\x04\x04\x08\x02\x04\x12\x04\x87\x01\x02\x15\x1aB Optional application-owned scope data, preserving its JSON type.\n\n\r\n\x05\x04\x08\x02\x04\x06\x12\x04\x87\x01\x02\x0b\n\r\n\x05\x04\x08\x02\x04\x01\x12\x04\x87\x01\x0c\x10\n\r\n\x05\x04\x08\x02\x04\x03\x12\x04\x87\x01\x13\x14\nT\n\x04\x04\x08\x02\x05\x12\x04\x89\x01\x02\x19\x1aF Optional application-owned scope metadata, preserving its JSON type.\n\n\r\n\x05\x04\x08\x02\x05\x06\x12\x04\x89\x01\x02\x0b\n\r\n\x05\x04\x08\x02\x05\x01\x12\x04\x89\x01\x0c\x14\n\r\n\x05\x04\x08\x02\x05\x03\x12\x04\x89\x01\x17\x18\nK\n\x04\x04\x08\x02\x06\x12\x04\x8b\x01\x02\x16\x1a= Optional application-owned input recorded on the new scope.\n\n\r\n\x05\x04\x08\x02\x06\x06\x12\x04\x8b\x01\x02\x0b\n\r\n\x05\x04\x08\x02\x06\x01\x12\x04\x8b\x01\x0c\x11\n\r\n\x05\x04\x08\x02\x06\x03\x12\x04\x8b\x01\x14\x15\nQ\n\x04\x04\x08\x02\x07\x12\x04\x8d\x01\x02%\x1aC Absence uses host time; epoch zero is a valid explicit timestamp.\n\n\r\n\x05\x04\x08\x02\x07\x06\x12\x04\x8d\x01\x02\x1b\n\r\n\x05\x04\x08\x02\x07\x01\x12\x04\x8d\x01\x1c \n\r\n\x05\x04\x08\x02\x07\x03\x12\x04\x8d\x01#$\nU\n\x02\x04\t\x12\x06\x91\x01\x00\x94\x01\x01\x1aG Returns the host-owned handle needed to close the newly pushed scope.\n\n\x0b\n\x03\x04\t\x01\x12\x04\x91\x01\x08\x19\nK\n\x04\x04\t\x02\x00\x12\x04\x93\x01\x02J\x1a= Opaque activation-owned scope handle returned by PushScope.\n\n\r\n\x05\x04\t\x02\x00\x05\x12\x04\x93\x01\x02\x08\n\r\n\x05\x04\t\x02\x00\x01\x12\x04\x93\x01\t\x18\n\r\n\x05\x04\t\x02\x00\x03\x12\x04\x93\x01\x1b\x1c\n\r\n\x05\x04\t\x02\x00\x08\x12\x04\x93\x01\x1dI\n\x10\n\x08\x04\t\x02\x00\x08\x87\t\x0e\x12\x04\x93\x01\x1eH\nZ\n\x02\x04\n\x12\x06\x97\x01\x00\xa3\x01\x01\x1aL Closes a previously pushed scope with optional output, metadata, and time.\n\n\x0b\n\x03\x04\n\x01\x12\x04\x97\x01\x08\x17\nl\n\x04\x04\n\x02\x00\x12\x04\x99\x01\x02E\x1a^ Required activation credentials; invalid authentication fails before the operation executes.\n\n\r\n\x05\x04\n\x02\x00\x06\x12\x04\x99\x01\x02\r\n\r\n\x05\x04\n\x02\x00\x01\x12\x04\x99\x01\x0e\x19\n\r\n\x05\x04\n\x02\x00\x03\x12\x04\x99\x01\x1c\x1d\n\r\n\x05\x04\n\x02\x00\x08\x12\x04\x99\x01\x1eD\n\x10\n\x08\x04\n\x02\x00\x08\x87\t\x19\x12\x04\x99\x01\x1fC\nK\n\x04\x04\n\x02\x01\x12\x04\x9b\x01\x02J\x1a= Opaque activation-owned scope handle returned by PushScope.\n\n\r\n\x05\x04\n\x02\x01\x05\x12\x04\x9b\x01\x02\x08\n\r\n\x05\x04\n\x02\x01\x01\x12\x04\x9b\x01\t\x18\n\r\n\x05\x04\n\x02\x01\x03\x12\x04\x9b\x01\x1b\x1c\n\r\n\x05\x04\n\x02\x01\x08\x12\x04\x9b\x01\x1dI\n\x10\n\x08\x04\n\x02\x01\x08\x87\t\x0e\x12\x04\x9b\x01\x1eH\nQ\n\x04\x04\n\x02\x02\x12\x04\x9d\x01\x02\x17\x1aC Optional application-owned output recorded when the scope closes.\n\n\r\n\x05\x04\n\x02\x02\x06\x12\x04\x9d\x01\x02\x0b\n\r\n\x05\x04\n\x02\x02\x01\x12\x04\x9d\x01\x0c\x12\n\r\n\x05\x04\n\x02\x02\x03\x12\x04\x9d\x01\x15\x16\nT\n\x04\x04\n\x02\x03\x12\x04\x9f\x01\x02\x19\x1aF Optional application-owned scope metadata, preserving its JSON type.\n\n\r\n\x05\x04\n\x02\x03\x06\x12\x04\x9f\x01\x02\x0b\n\r\n\x05\x04\n\x02\x03\x01\x12\x04\x9f\x01\x0c\x14\n\r\n\x05\x04\n\x02\x03\x03\x12\x04\x9f\x01\x17\x18\nr\n\x04\x04\n\x02\x04\x12\x04\xa2\x01\x02%\x1ad Optional explicit UTC time; absence uses host time and epoch zero remains a valid explicit\n value.\n\n\r\n\x05\x04\n\x02\x04\x06\x12\x04\xa2\x01\x02\x1b\n\r\n\x05\x04\n\x02\x04\x01\x12\x04\xa2\x01\x1c \n\r\n\x05\x04\n\x02\x04\x03\x12\x04\xa2\x01#$\n?\n\x02\x04\x0b\x12\x04\xa6\x01\x00\x1b\x1a3 Confirms scope closure; failures use gRPC status.\n\n\x0b\n\x03\x04\x0b\x01\x12\x04\xa6\x01\x08\x18\nO\n\x02\x04\x0c\x12\x06\xa9\x01\x00\xac\x01\x01\x1aA Creates an isolated host-owned scope stack for this activation.\n\n\x0b\n\x03\x04\x0c\x01\x12\x04\xa9\x01\x08\x1f\nl\n\x04\x04\x0c\x02\x00\x12\x04\xab\x01\x02E\x1a^ Required activation credentials; invalid authentication fails before the operation executes.\n\n\r\n\x05\x04\x0c\x02\x00\x06\x12\x04\xab\x01\x02\r\n\r\n\x05\x04\x0c\x02\x00\x01\x12\x04\xab\x01\x0e\x19\n\r\n\x05\x04\x0c\x02\x00\x03\x12\x04\xab\x01\x1c\x1d\n\r\n\x05\x04\x0c\x02\x00\x08\x12\x04\xab\x01\x1eD\n\x10\n\x08\x04\x0c\x02\x00\x08\x87\t\x19\x12\x04\xab\x01\x1fC\nI\n\x02\x04\r\x12\x06\xaf\x01\x00\xb2\x01\x01\x1a; Returns the new isolated stack\'s opaque binding identity.\n\n\x0b\n\x03\x04\r\x01\x12\x04\xaf\x01\x08 \nQ\n\x04\x04\r\x02\x00\x12\x04\xb1\x01\x02I\x1aC Opaque host-issued scope-stack binding, owned by this activation.\n\n\r\n\x05\x04\r\x02\x00\x05\x12\x04\xb1\x01\x02\x08\n\r\n\x05\x04\r\x02\x00\x01\x12\x04\xb1\x01\t\x17\n\r\n\x05\x04\r\x02\x00\x03\x12\x04\xb1\x01\x1a\x1b\n\r\n\x05\x04\r\x02\x00\x08\x12\x04\xb1\x01\x1cH\n\x10\n\x08\x04\r\x02\x00\x08\x87\t\x0e\x12\x04\xb1\x01\x1dG\nB\n\x02\x04\x0e\x12\x06\xb5\x01\x00\xba\x01\x01\x1a4 Releases an activation-owned isolated scope stack.\n\n\x0b\n\x03\x04\x0e\x01\x12\x04\xb5\x01\x08\x1d\nl\n\x04\x04\x0e\x02\x00\x12\x04\xb7\x01\x02E\x1a^ Required activation credentials; invalid authentication fails before the operation executes.\n\n\r\n\x05\x04\x0e\x02\x00\x06\x12\x04\xb7\x01\x02\r\n\r\n\x05\x04\x0e\x02\x00\x01\x12\x04\xb7\x01\x0e\x19\n\r\n\x05\x04\x0e\x02\x00\x03\x12\x04\xb7\x01\x1c\x1d\n\r\n\x05\x04\x0e\x02\x00\x08\x12\x04\xb7\x01\x1eD\n\x10\n\x08\x04\x0e\x02\x00\x08\x87\t\x19\x12\x04\xb7\x01\x1fC\nQ\n\x04\x04\x0e\x02\x01\x12\x04\xb9\x01\x02I\x1aC Opaque host-issued scope-stack binding, owned by this activation.\n\n\r\n\x05\x04\x0e\x02\x01\x05\x12\x04\xb9\x01\x02\x08\n\r\n\x05\x04\x0e\x02\x01\x01\x12\x04\xb9\x01\t\x17\n\r\n\x05\x04\x0e\x02\x01\x03\x12\x04\xb9\x01\x1a\x1b\n\r\n\x05\x04\x0e\x02\x01\x08\x12\x04\xb9\x01\x1cH\n\x10\n\x08\x04\x0e\x02\x01\x08\x87\t\x0e\x12\x04\xb9\x01\x1dG\n?\n\x02\x04\x0f\x12\x04\xbd\x01\x00!\x1a3 Confirms stack release; failures use gRPC status.\n\n\x0b\n\x03\x04\x0f\x01\x12\x04\xbd\x01\x08\x1e\nU\n\x02\x04\x10\x12\x06\xc0\x01\x00\xc9\x01\x01\x1aG Invokes a live tool continuation using a rewritten application value.\n\n\x0b\n\x03\x04\x10\x01\x12\x04\xc0\x01\x08\x17\nl\n\x04\x04\x10\x02\x00\x12\x04\xc2\x01\x02E\x1a^ Required activation credentials; invalid authentication fails before the operation executes.\n\n\r\n\x05\x04\x10\x02\x00\x06\x12\x04\xc2\x01\x02\r\n\r\n\x05\x04\x10\x02\x00\x01\x12\x04\xc2\x01\x0e\x19\n\r\n\x05\x04\x10\x02\x00\x03\x12\x04\xc2\x01\x1c\x1d\n\r\n\x05\x04\x10\x02\x00\x08\x12\x04\xc2\x01\x1eD\n\x10\n\x08\x04\x10\x02\x00\x08\x87\t\x19\x12\x04\xc2\x01\x1fC\nl\n\x04\x04\x10\x02\x01\x12\x04\xc4\x01\x02J\x1a^ Host-issued continuation bound to the active callback; reject expired or foreign identities.\n\n\r\n\x05\x04\x10\x02\x01\x05\x12\x04\xc4\x01\x02\x08\n\r\n\x05\x04\x10\x02\x01\x01\x12\x04\xc4\x01\t\x18\n\r\n\x05\x04\x10\x02\x01\x03\x12\x04\xc4\x01\x1b\x1c\n\r\n\x05\x04\x10\x02\x01\x08\x12\x04\xc4\x01\x1dI\n\x10\n\x08\x04\x10\x02\x01\x08\x87\t\x0e\x12\x04\xc4\x01\x1eH\n]\n\x04\x04\x10\x02\x02\x12\x04\xc6\x01\x02=\x1aO Required application-owned tool value; explicit JSON null is a valid payload.\n\n\r\n\x05\x04\x10\x02\x02\x06\x12\x04\xc6\x01\x02\x0b\n\r\n\x05\x04\x10\x02\x02\x01\x12\x04\xc6\x01\x0c\x11\n\r\n\x05\x04\x10\x02\x02\x03\x12\x04\xc6\x01\x14\x15\n\r\n\x05\x04\x10\x02\x02\x08\x12\x04\xc6\x01\x16<\n\x10\n\x08\x04\x10\x02\x02\x08\x87\t\x19\x12\x04\xc6\x01\x17;\nX\n\x04\x04\x10\x02\x03\x12\x04\xc8\x01\x02\x19\x1aJ Optional host binding selecting the stack and parent for this operation.\n\n\r\n\x05\x04\x10\x02\x03\x06\x12\x04\xc8\x01\x02\x0e\n\r\n\x05\x04\x10\x02\x03\x01\x12\x04\xc8\x01\x0f\x14\n\r\n\x05\x04\x10\x02\x03\x03\x12\x04\xc8\x01\x17\x18\nR\n\x02\x04\x11\x12\x06\xcc\x01\x00\xd5\x01\x01\x1aD Selects the downstream tool result or its original domain failure.\n\n\x0b\n\x03\x04\x11\x01\x12\x04\xcc\x01\x08\x18\n^\n\x04\x04\x11\x08\x00\x12\x06\xce\x01\x02\xd4\x01\x03\x1aN Exactly one recognized alternative is required when this message is present.\n\n\r\n\x05\x04\x11\x08\x00\x01\x12\x04\xce\x01\x08\x0e\n\r\n\x05\x04\x11\x08\x00\x02\x12\x04\xcf\x01\x040\n\x10\n\x08\x04\x11\x08\x00\x02\x87\t\x01\x12\x04\xcf\x01\x040\n<\n\x04\x04\x11\x02\x00\x12\x04\xd1\x01\x04\"\x1a. Successful downstream canonical tool result.\n\n\r\n\x05\x04\x11\x02\x00\x06\x12\x04\xd1\x01\x04\x17\n\r\n\x05\x04\x11\x02\x00\x01\x12\x04\xd1\x01\x18\x1d\n\r\n\x05\x04\x11\x02\x00\x03\x12\x04\xd1\x01 !\nb\n\x04\x04\x11\x02\x01\x12\x04\xd3\x01\x04\x1a\x1aT Callback or downstream domain failure; mutually exclusive with successful results.\n\n\r\n\x05\x04\x11\x02\x01\x06\x12\x04\xd3\x01\x04\x0f\n\r\n\x05\x04\x11\x02\x01\x01\x12\x04\xd3\x01\x10\x15\n\r\n\x05\x04\x11\x02\x01\x03\x12\x04\xd3\x01\x18\x19\nX\n\x02\x04\x12\x12\x06\xd8\x01\x00\xe1\x01\x01\x1aJ Invokes a live unary LLM continuation with a rewritten provider request.\n\n\x0b\n\x03\x04\x12\x01\x12\x04\xd8\x01\x08\x16\nl\n\x04\x04\x12\x02\x00\x12\x04\xda\x01\x02E\x1a^ Required activation credentials; invalid authentication fails before the operation executes.\n\n\r\n\x05\x04\x12\x02\x00\x06\x12\x04\xda\x01\x02\r\n\r\n\x05\x04\x12\x02\x00\x01\x12\x04\xda\x01\x0e\x19\n\r\n\x05\x04\x12\x02\x00\x03\x12\x04\xda\x01\x1c\x1d\n\r\n\x05\x04\x12\x02\x00\x08\x12\x04\xda\x01\x1eD\n\x10\n\x08\x04\x12\x02\x00\x08\x87\t\x19\x12\x04\xda\x01\x1fC\nl\n\x04\x04\x12\x02\x01\x12\x04\xdc\x01\x02J\x1a^ Host-issued continuation bound to the active callback; reject expired or foreign identities.\n\n\r\n\x05\x04\x12\x02\x01\x05\x12\x04\xdc\x01\x02\x08\n\r\n\x05\x04\x12\x02\x01\x01\x12\x04\xdc\x01\t\x18\n\r\n\x05\x04\x12\x02\x01\x03\x12\x04\xdc\x01\x1b\x1c\n\r\n\x05\x04\x12\x02\x01\x08\x12\x04\xdc\x01\x1dI\n\x10\n\x08\x04\x12\x02\x01\x08\x87\t\x0e\x12\x04\xdc\x01\x1eH\nf\n\x04\x04\x12\x02\x02\x12\x04\xde\x01\x02@\x1aX Required provider request supplied to this callback, continuation, or codec operation.\n\n\r\n\x05\x04\x12\x02\x02\x06\x12\x04\xde\x01\x02\x0c\n\r\n\x05\x04\x12\x02\x02\x01\x12\x04\xde\x01\r\x14\n\r\n\x05\x04\x12\x02\x02\x03\x12\x04\xde\x01\x17\x18\n\r\n\x05\x04\x12\x02\x02\x08\x12\x04\xde\x01\x19?\n\x10\n\x08\x04\x12\x02\x02\x08\x87\t\x19\x12\x04\xde\x01\x1a>\nX\n\x04\x04\x12\x02\x03\x12\x04\xe0\x01\x02\x19\x1aJ Optional host binding selecting the stack and parent for this operation.\n\n\r\n\x05\x04\x12\x02\x03\x06\x12\x04\xe0\x01\x02\x0e\n\r\n\x05\x04\x12\x02\x03\x01\x12\x04\xe0\x01\x0f\x14\n\r\n\x05\x04\x12\x02\x03\x03\x12\x04\xe0\x01\x17\x18\nX\n\x02\x04\x13\x12\x06\xe4\x01\x00\xed\x01\x01\x1aJ Selects the downstream provider response or its original domain failure.\n\n\x0b\n\x03\x04\x13\x01\x12\x04\xe4\x01\x08\x17\n^\n\x04\x04\x13\x08\x00\x12\x06\xe6\x01\x02\xec\x01\x03\x1aN Exactly one recognized alternative is required when this message is present.\n\n\r\n\x05\x04\x13\x08\x00\x01\x12\x04\xe6\x01\x08\x0e\n\r\n\x05\x04\x13\x08\x00\x02\x12\x04\xe7\x01\x040\n\x10\n\x08\x04\x13\x08\x00\x02\x87\t\x01\x12\x04\xe7\x01\x040\nC\n\x04\x04\x13\x02\x00\x12\x04\xe9\x01\x04\x18\x1a5 Successful downstream provider-owned JSON response.\n\n\r\n\x05\x04\x13\x02\x00\x06\x12\x04\xe9\x01\x04\r\n\r\n\x05\x04\x13\x02\x00\x01\x12\x04\xe9\x01\x0e\x13\n\r\n\x05\x04\x13\x02\x00\x03\x12\x04\xe9\x01\x16\x17\nb\n\x04\x04\x13\x02\x01\x12\x04\xeb\x01\x04\x1a\x1aT Callback or downstream domain failure; mutually exclusive with successful results.\n\n\r\n\x05\x04\x13\x02\x01\x06\x12\x04\xeb\x01\x04\x0f\n\r\n\x05\x04\x13\x02\x01\x01\x12\x04\xeb\x01\x10\x15\n\r\n\x05\x04\x13\x02\x01\x03\x12\x04\xeb\x01\x18\x19\nZ\n\x02\x04\x14\x12\x06\xf0\x01\x00\xf9\x01\x01\x1aL Opens a live streaming LLM continuation with a rewritten provider request.\n\n\x0b\n\x03\x04\x14\x01\x12\x04\xf0\x01\x08\x1c\nl\n\x04\x04\x14\x02\x00\x12\x04\xf2\x01\x02E\x1a^ Required activation credentials; invalid authentication fails before the operation executes.\n\n\r\n\x05\x04\x14\x02\x00\x06\x12\x04\xf2\x01\x02\r\n\r\n\x05\x04\x14\x02\x00\x01\x12\x04\xf2\x01\x0e\x19\n\r\n\x05\x04\x14\x02\x00\x03\x12\x04\xf2\x01\x1c\x1d\n\r\n\x05\x04\x14\x02\x00\x08\x12\x04\xf2\x01\x1eD\n\x10\n\x08\x04\x14\x02\x00\x08\x87\t\x19\x12\x04\xf2\x01\x1fC\nl\n\x04\x04\x14\x02\x01\x12\x04\xf4\x01\x02J\x1a^ Host-issued continuation bound to the active callback; reject expired or foreign identities.\n\n\r\n\x05\x04\x14\x02\x01\x05\x12\x04\xf4\x01\x02\x08\n\r\n\x05\x04\x14\x02\x01\x01\x12\x04\xf4\x01\t\x18\n\r\n\x05\x04\x14\x02\x01\x03\x12\x04\xf4\x01\x1b\x1c\n\r\n\x05\x04\x14\x02\x01\x08\x12\x04\xf4\x01\x1dI\n\x10\n\x08\x04\x14\x02\x01\x08\x87\t\x0e\x12\x04\xf4\x01\x1eH\nf\n\x04\x04\x14\x02\x02\x12\x04\xf6\x01\x02@\x1aX Required provider request supplied to this callback, continuation, or codec operation.\n\n\r\n\x05\x04\x14\x02\x02\x06\x12\x04\xf6\x01\x02\x0c\n\r\n\x05\x04\x14\x02\x02\x01\x12\x04\xf6\x01\r\x14\n\r\n\x05\x04\x14\x02\x02\x03\x12\x04\xf6\x01\x17\x18\n\r\n\x05\x04\x14\x02\x02\x08\x12\x04\xf6\x01\x19?\n\x10\n\x08\x04\x14\x02\x02\x08\x87\t\x19\x12\x04\xf6\x01\x1a>\nX\n\x04\x04\x14\x02\x03\x12\x04\xf8\x01\x02\x19\x1aJ Optional host binding selecting the stack and parent for this operation.\n\n\r\n\x05\x04\x14\x02\x03\x06\x12\x04\xf8\x01\x02\x0e\n\r\n\x05\x04\x14\x02\x03\x01\x12\x04\xf8\x01\x0f\x14\n\r\n\x05\x04\x14\x02\x03\x03\x12\x04\xf8\x01\x17\x18\nM\n\x02\x04\x15\x12\x06\xfc\x01\x00\x85\x02\x01\x1a? One provider chunk or one terminal downstream domain failure.\n\n\x0b\n\x03\x04\x15\x01\x12\x04\xfc\x01\x08\x1d\n^\n\x04\x04\x15\x08\x00\x12\x06\xfe\x01\x02\x84\x02\x03\x1aN Exactly one recognized alternative is required when this message is present.\n\n\r\n\x05\x04\x15\x08\x00\x01\x12\x04\xfe\x01\x08\x0c\n\r\n\x05\x04\x15\x08\x00\x02\x12\x04\xff\x01\x040\n\x10\n\x08\x04\x15\x08\x00\x02\x87\t\x01\x12\x04\xff\x01\x040\nW\n\x04\x04\x15\x02\x00\x12\x04\x81\x02\x04\x18\x1aI Required downstream provider-owned JSON chunk; empty bytes are invalid.\n\n\r\n\x05\x04\x15\x02\x00\x06\x12\x04\x81\x02\x04\r\n\r\n\x05\x04\x15\x02\x00\x01\x12\x04\x81\x02\x0e\x13\n\r\n\x05\x04\x15\x02\x00\x03\x12\x04\x81\x02\x16\x17\nb\n\x04\x04\x15\x02\x01\x12\x04\x83\x02\x04\x1a\x1aT Callback or downstream domain failure; mutually exclusive with successful results.\n\n\r\n\x05\x04\x15\x02\x01\x06\x12\x04\x83\x02\x04\x0f\n\r\n\x05\x04\x15\x02\x01\x01\x12\x04\x83\x02\x10\x15\n\r\n\x05\x04\x15\x02\x01\x03\x12\x04\x83\x02\x18\x19\nW\n\x02\x04\x16\x12\x06\x88\x02\x00\x91\x02\x01\x1aI Requests normalized decoding through an invocation-bound request codec.\n\n\x0b\n\x03\x04\x16\x01\x12\x04\x88\x02\x08$\nl\n\x04\x04\x16\x02\x00\x12\x04\x8a\x02\x02E\x1a^ Required activation credentials; invalid authentication fails before the operation executes.\n\n\r\n\x05\x04\x16\x02\x00\x06\x12\x04\x8a\x02\x02\r\n\r\n\x05\x04\x16\x02\x00\x01\x12\x04\x8a\x02\x0e\x19\n\r\n\x05\x04\x16\x02\x00\x03\x12\x04\x8a\x02\x1c\x1d\n\r\n\x05\x04\x16\x02\x00\x08\x12\x04\x8a\x02\x1eD\n\x10\n\x08\x04\x16\x02\x00\x08\x87\t\x19\x12\x04\x8a\x02\x1fC\nU\n\x04\x04\x16\x02\x01\x12\x04\x8c\x02\x02N\x1aG Opaque codec capability bound to this invocation and codec direction.\n\n\r\n\x05\x04\x16\x02\x01\x05\x12\x04\x8c\x02\x02\x08\n\r\n\x05\x04\x16\x02\x01\x01\x12\x04\x8c\x02\t\x1c\n\r\n\x05\x04\x16\x02\x01\x03\x12\x04\x8c\x02\x1f \n\r\n\x05\x04\x16\x02\x01\x08\x12\x04\x8c\x02!M\n\x10\n\x08\x04\x16\x02\x01\x08\x87\t\x0e\x12\x04\x8c\x02\"L\nX\n\x04\x04\x16\x02\x02\x12\x04\x8e\x02\x02H\x1aJ Nonempty host-issued invocation identity, unique among active callbacks.\n\n\r\n\x05\x04\x16\x02\x02\x05\x12\x04\x8e\x02\x02\x08\n\r\n\x05\x04\x16\x02\x02\x01\x12\x04\x8e\x02\t\x16\n\r\n\x05\x04\x16\x02\x02\x03\x12\x04\x8e\x02\x19\x1a\n\r\n\x05\x04\x16\x02\x02\x08\x12\x04\x8e\x02\x1bG\n\x10\n\x08\x04\x16\x02\x02\x08\x87\t\x0e\x12\x04\x8e\x02\x1cF\nf\n\x04\x04\x16\x02\x03\x12\x04\x90\x02\x02@\x1aX Required provider request supplied to this callback, continuation, or codec operation.\n\n\r\n\x05\x04\x16\x02\x03\x06\x12\x04\x90\x02\x02\x0c\n\r\n\x05\x04\x16\x02\x03\x01\x12\x04\x90\x02\r\x14\n\r\n\x05\x04\x16\x02\x03\x03\x12\x04\x90\x02\x17\x18\n\r\n\x05\x04\x16\x02\x03\x08\x12\x04\x90\x02\x19?\n\x10\n\x08\x04\x16\x02\x03\x08\x87\t\x19\x12\x04\x90\x02\x1a>\nM\n\x02\x04\x17\x12\x06\x94\x02\x00\x9d\x02\x01\x1a? Selects the normalized request or the codec\'s domain failure.\n\n\x0b\n\x03\x04\x17\x01\x12\x04\x94\x02\x08%\n^\n\x04\x04\x17\x08\x00\x12\x06\x96\x02\x02\x9c\x02\x03\x1aN Exactly one recognized alternative is required when this message is present.\n\n\r\n\x05\x04\x17\x08\x00\x01\x12\x04\x96\x02\x08\x0e\n\r\n\x05\x04\x17\x08\x00\x02\x12\x04\x97\x02\x040\n\x10\n\x08\x04\x17\x08\x00\x02\x87\t\x01\x12\x04\x97\x02\x040\nH\n\x04\x04\x17\x02\x00\x12\x04\x99\x02\x04\"\x1a: Successful normalized request decoded by the host codec.\n\n\r\n\x05\x04\x17\x02\x00\x06\x12\x04\x99\x02\x04\x17\n\r\n\x05\x04\x17\x02\x00\x01\x12\x04\x99\x02\x18\x1d\n\r\n\x05\x04\x17\x02\x00\x03\x12\x04\x99\x02 !\nb\n\x04\x04\x17\x02\x01\x12\x04\x9b\x02\x04\x1a\x1aT Callback or downstream domain failure; mutually exclusive with successful results.\n\n\r\n\x05\x04\x17\x02\x01\x06\x12\x04\x9b\x02\x04\x0f\n\r\n\x05\x04\x17\x02\x01\x01\x12\x04\x9b\x02\x10\x15\n\r\n\x05\x04\x17\x02\x01\x03\x12\x04\x9b\x02\x18\x19\n\\\n\x02\x04\x18\x12\x06\xa0\x02\x00\xab\x02\x01\x1aN Requests provider encoding from an annotation and original request baseline.\n\n\x0b\n\x03\x04\x18\x01\x12\x04\xa0\x02\x08$\nl\n\x04\x04\x18\x02\x00\x12\x04\xa2\x02\x02E\x1a^ Required activation credentials; invalid authentication fails before the operation executes.\n\n\r\n\x05\x04\x18\x02\x00\x06\x12\x04\xa2\x02\x02\r\n\r\n\x05\x04\x18\x02\x00\x01\x12\x04\xa2\x02\x0e\x19\n\r\n\x05\x04\x18\x02\x00\x03\x12\x04\xa2\x02\x1c\x1d\n\r\n\x05\x04\x18\x02\x00\x08\x12\x04\xa2\x02\x1eD\n\x10\n\x08\x04\x18\x02\x00\x08\x87\t\x19\x12\x04\xa2\x02\x1fC\nU\n\x04\x04\x18\x02\x01\x12\x04\xa4\x02\x02N\x1aG Opaque codec capability bound to this invocation and codec direction.\n\n\r\n\x05\x04\x18\x02\x01\x05\x12\x04\xa4\x02\x02\x08\n\r\n\x05\x04\x18\x02\x01\x01\x12\x04\xa4\x02\t\x1c\n\r\n\x05\x04\x18\x02\x01\x03\x12\x04\xa4\x02\x1f \n\r\n\x05\x04\x18\x02\x01\x08\x12\x04\xa4\x02!M\n\x10\n\x08\x04\x18\x02\x01\x08\x87\t\x0e\x12\x04\xa4\x02\"L\nX\n\x04\x04\x18\x02\x02\x12\x04\xa6\x02\x02H\x1aJ Nonempty host-issued invocation identity, unique among active callbacks.\n\n\r\n\x05\x04\x18\x02\x02\x05\x12\x04\xa6\x02\x02\x08\n\r\n\x05\x04\x18\x02\x02\x01\x12\x04\xa6\x02\t\x16\n\r\n\x05\x04\x18\x02\x02\x03\x12\x04\xa6\x02\x19\x1a\n\r\n\x05\x04\x18\x02\x02\x08\x12\x04\xa6\x02\x1bG\n\x10\n\x08\x04\x18\x02\x02\x08\x87\t\x0e\x12\x04\xa6\x02\x1cF\nd\n\x04\x04\x18\x02\x03\x12\x04\xa8\x02\x02S\x1aV Required normalized annotation whose provider content changes the codec must encode.\n\n\r\n\x05\x04\x18\x02\x03\x06\x12\x04\xa8\x02\x02\x15\n\r\n\x05\x04\x18\x02\x03\x01\x12\x04\xa8\x02\x16\'\n\r\n\x05\x04\x18\x02\x03\x03\x12\x04\xa8\x02*+\n\r\n\x05\x04\x18\x02\x03\x08\x12\x04\xa8\x02,R\n\x10\n\x08\x04\x18\x02\x03\x08\x87\t\x19\x12\x04\xa8\x02-Q\nX\n\x04\x04\x18\x02\x04\x12\x04\xaa\x02\x02I\x1aJ Required original provider request used as the codec\'s rewrite baseline.\n\n\r\n\x05\x04\x18\x02\x04\x06\x12\x04\xaa\x02\x02\x0c\n\r\n\x05\x04\x18\x02\x04\x01\x12\x04\xaa\x02\r\x1d\n\r\n\x05\x04\x18\x02\x04\x03\x12\x04\xaa\x02 !\n\r\n\x05\x04\x18\x02\x04\x08\x12\x04\xaa\x02\"H\n\x10\n\x08\x04\x18\x02\x04\x08\x87\t\x19\x12\x04\xaa\x02#G\nS\n\x02\x04\x19\x12\x06\xae\x02\x00\xb7\x02\x01\x1aE Selects the encoded provider request or the codec\'s domain failure.\n\n\x0b\n\x03\x04\x19\x01\x12\x04\xae\x02\x08%\n^\n\x04\x04\x19\x08\x00\x12\x06\xb0\x02\x02\xb6\x02\x03\x1aN Exactly one recognized alternative is required when this message is present.\n\n\r\n\x05\x04\x19\x08\x00\x01\x12\x04\xb0\x02\x08\x0e\n\r\n\x05\x04\x19\x08\x00\x02\x12\x04\xb1\x02\x040\n\x10\n\x08\x04\x19\x08\x00\x02\x87\t\x01\x12\x04\xb1\x02\x040\nF\n\x04\x04\x19\x02\x00\x12\x04\xb3\x02\x04\x19\x1a8 Successful provider request encoded by the host codec.\n\n\r\n\x05\x04\x19\x02\x00\x06\x12\x04\xb3\x02\x04\x0e\n\r\n\x05\x04\x19\x02\x00\x01\x12\x04\xb3\x02\x0f\x14\n\r\n\x05\x04\x19\x02\x00\x03\x12\x04\xb3\x02\x17\x18\nb\n\x04\x04\x19\x02\x01\x12\x04\xb5\x02\x04\x1a\x1aT Callback or downstream domain failure; mutually exclusive with successful results.\n\n\r\n\x05\x04\x19\x02\x01\x06\x12\x04\xb5\x02\x04\x0f\n\r\n\x05\x04\x19\x02\x01\x01\x12\x04\xb5\x02\x10\x15\n\r\n\x05\x04\x19\x02\x01\x03\x12\x04\xb5\x02\x18\x19\nX\n\x02\x04\x1a\x12\x06\xba\x02\x00\xc3\x02\x01\x1aJ Requests normalized decoding through an invocation-bound response codec.\n\n\x0b\n\x03\x04\x1a\x01\x12\x04\xba\x02\x08%\nl\n\x04\x04\x1a\x02\x00\x12\x04\xbc\x02\x02E\x1a^ Required activation credentials; invalid authentication fails before the operation executes.\n\n\r\n\x05\x04\x1a\x02\x00\x06\x12\x04\xbc\x02\x02\r\n\r\n\x05\x04\x1a\x02\x00\x01\x12\x04\xbc\x02\x0e\x19\n\r\n\x05\x04\x1a\x02\x00\x03\x12\x04\xbc\x02\x1c\x1d\n\r\n\x05\x04\x1a\x02\x00\x08\x12\x04\xbc\x02\x1eD\n\x10\n\x08\x04\x1a\x02\x00\x08\x87\t\x19\x12\x04\xbc\x02\x1fC\nU\n\x04\x04\x1a\x02\x01\x12\x04\xbe\x02\x02N\x1aG Opaque codec capability bound to this invocation and codec direction.\n\n\r\n\x05\x04\x1a\x02\x01\x05\x12\x04\xbe\x02\x02\x08\n\r\n\x05\x04\x1a\x02\x01\x01\x12\x04\xbe\x02\t\x1c\n\r\n\x05\x04\x1a\x02\x01\x03\x12\x04\xbe\x02\x1f \n\r\n\x05\x04\x1a\x02\x01\x08\x12\x04\xbe\x02!M\n\x10\n\x08\x04\x1a\x02\x01\x08\x87\t\x0e\x12\x04\xbe\x02\"L\nX\n\x04\x04\x1a\x02\x02\x12\x04\xc0\x02\x02H\x1aJ Nonempty host-issued invocation identity, unique among active callbacks.\n\n\r\n\x05\x04\x1a\x02\x02\x05\x12\x04\xc0\x02\x02\x08\n\r\n\x05\x04\x1a\x02\x02\x01\x12\x04\xc0\x02\t\x16\n\r\n\x05\x04\x1a\x02\x02\x03\x12\x04\xc0\x02\x19\x1a\n\r\n\x05\x04\x1a\x02\x02\x08\x12\x04\xc0\x02\x1bG\n\x10\n\x08\x04\x1a\x02\x02\x08\x87\t\x0e\x12\x04\xc0\x02\x1cF\nH\n\x04\x04\x1a\x02\x03\x12\x04\xc2\x02\x02@\x1a: Required opaque provider response to decode or sanitize.\n\n\r\n\x05\x04\x1a\x02\x03\x06\x12\x04\xc2\x02\x02\x0b\n\r\n\x05\x04\x1a\x02\x03\x01\x12\x04\xc2\x02\x0c\x14\n\r\n\x05\x04\x1a\x02\x03\x03\x12\x04\xc2\x02\x17\x18\n\r\n\x05\x04\x1a\x02\x03\x08\x12\x04\xc2\x02\x19?\n\x10\n\x08\x04\x1a\x02\x03\x08\x87\t\x19\x12\x04\xc2\x02\x1a>\nX\n\x02\x04\x1b\x12\x06\xc6\x02\x00\xcf\x02\x01\x1aJ Selects the normalized completed response or the codec\'s domain failure.\n\n\x0b\n\x03\x04\x1b\x01\x12\x04\xc6\x02\x08&\n^\n\x04\x04\x1b\x08\x00\x12\x06\xc8\x02\x02\xce\x02\x03\x1aN Exactly one recognized alternative is required when this message is present.\n\n\r\n\x05\x04\x1b\x08\x00\x01\x12\x04\xc8\x02\x08\x0e\n\r\n\x05\x04\x1b\x08\x00\x02\x12\x04\xc9\x02\x040\n\x10\n\x08\x04\x1b\x08\x00\x02\x87\t\x01\x12\x04\xc9\x02\x040\nS\n\x04\x04\x1b\x02\x00\x12\x04\xcb\x02\x04#\x1aE Successful normalized completed response decoded by the host codec.\n\n\r\n\x05\x04\x1b\x02\x00\x06\x12\x04\xcb\x02\x04\x18\n\r\n\x05\x04\x1b\x02\x00\x01\x12\x04\xcb\x02\x19\x1e\n\r\n\x05\x04\x1b\x02\x00\x03\x12\x04\xcb\x02!\"\nb\n\x04\x04\x1b\x02\x01\x12\x04\xcd\x02\x04\x1a\x1aT Callback or downstream domain failure; mutually exclusive with successful results.\n\n\r\n\x05\x04\x1b\x02\x01\x06\x12\x04\xcd\x02\x04\x0f\n\r\n\x05\x04\x1b\x02\x01\x01\x12\x04\xcd\x02\x10\x15\n\r\n\x05\x04\x1b\x02\x01\x03\x12\x04\xcd\x02\x18\x19\nX\n\x02\x04\x1c\x12\x06\xd2\x02\x00\xda\x02\x01\x1aJ Lists runtime registrations, optionally restricted to selected surfaces.\n\n\x0b\n\x03\x04\x1c\x01\x12\x04\xd2\x02\x08\'\nl\n\x04\x04\x1c\x02\x00\x12\x04\xd4\x02\x02E\x1a^ Required activation credentials; invalid authentication fails before the operation executes.\n\n\r\n\x05\x04\x1c\x02\x00\x06\x12\x04\xd4\x02\x02\r\n\r\n\x05\x04\x1c\x02\x00\x01\x12\x04\xd4\x02\x0e\x19\n\r\n\x05\x04\x1c\x02\x00\x03\x12\x04\xd4\x02\x1c\x1d\n\r\n\x05\x04\x1c\x02\x00\x08\x12\x04\xd4\x02\x1eD\n\x10\n\x08\x04\x1c\x02\x00\x08\x87\t\x19\x12\x04\xd4\x02\x1fC\ni\n\x04\x04\x1c\x02\x01\x12\x06\xd6\x02\x02\xd9\x02\x05\x1aY Registration surfaces selected by the filter; validate each surface before applying it.\n\n\r\n\x05\x04\x1c\x02\x01\x04\x12\x04\xd6\x02\x02\n\n\r\n\x05\x04\x1c\x02\x01\x06\x12\x04\xd6\x02\x0b\x1e\n\r\n\x05\x04\x1c\x02\x01\x01\x12\x04\xd6\x02\x1f$\n\r\n\x05\x04\x1c\x02\x01\x03\x12\x04\xd6\x02\'(\n\x0f\n\x05\x04\x1c\x02\x01\x08\x12\x06\xd6\x02)\xd9\x02\x04\n\x14\n\n\x04\x1c\x02\x01\x08\x87\t\x12\x04\x10\x12\x06\xd6\x02*\xd9\x02\x03\nC\n\x02\x04\x1d\x12\x06\xdd\x02\x00\xe0\x02\x01\x1a5 Returns the matching visible runtime registrations.\n\n\x0b\n\x03\x04\x1d\x01\x12\x04\xdd\x02\x08(\n\\\n\x04\x04\x1d\x02\x00\x12\x04\xdf\x02\x029\x1aN Ordered declarations returned by the plugin or visible in the host registry.\n\n\r\n\x05\x04\x1d\x02\x00\x04\x12\x04\xdf\x02\x02\n\n\r\n\x05\x04\x1d\x02\x00\x06\x12\x04\xdf\x02\x0b&\n\r\n\x05\x04\x1d\x02\x00\x01\x12\x04\xdf\x02\'4\n\r\n\x05\x04\x1d\x02\x00\x03\x12\x04\xdf\x0278\nN\n\x02\x04\x1e\x12\x06\xe3\x02\x00\xe8\x02\x01\x1a@ Installs an activation-owned conditional middleware guardrail.\n\n\x0b\n\x03\x04\x1e\x01\x12\x04\xe3\x02\x085\nl\n\x04\x04\x1e\x02\x00\x12\x04\xe5\x02\x02E\x1a^ Required activation credentials; invalid authentication fails before the operation executes.\n\n\r\n\x05\x04\x1e\x02\x00\x06\x12\x04\xe5\x02\x02\r\n\r\n\x05\x04\x1e\x02\x00\x01\x12\x04\xe5\x02\x0e\x19\n\r\n\x05\x04\x1e\x02\x00\x03\x12\x04\xe5\x02\x1c\x1d\n\r\n\x05\x04\x1e\x02\x00\x08\x12\x04\xe5\x02\x1eD\n\x10\n\x08\x04\x1e\x02\x00\x08\x87\t\x19\x12\x04\xe5\x02\x1fC\nQ\n\x04\x04\x1e\x02\x01\x12\x04\xe7\x02\x02e\x1aC Conditional guardrail declaration to install for this activation.\n\n\r\n\x05\x04\x1e\x02\x01\x06\x12\x04\xe7\x02\x02,\n\r\n\x05\x04\x1e\x02\x01\x01\x12\x04\xe7\x02-9\n\r\n\x05\x04\x1e\x02\x01\x03\x12\x04\xe7\x02<=\n\r\n\x05\x04\x1e\x02\x01\x08\x12\x04\xe7\x02>d\n\x10\n\x08\x04\x1e\x02\x01\x08\x87\t\x19\x12\x04\xe7\x02?c\nX\n\x02\x04\x1f\x12\x06\xeb\x02\x00\xee\x02\x01\x1aJ Returns the opaque handle for the newly installed conditional guardrail.\n\n\x0b\n\x03\x04\x1f\x01\x12\x04\xeb\x02\x086\nE\n\x04\x04\x1f\x02\x00\x12\x04\xed\x02\x02A\x1a7 Opaque activation-owned conditional-guardrail handle.\n\n\r\n\x05\x04\x1f\x02\x00\x05\x12\x04\xed\x02\x02\x08\n\r\n\x05\x04\x1f\x02\x00\x01\x12\x04\xed\x02\t\x0f\n\r\n\x05\x04\x1f\x02\x00\x03\x12\x04\xed\x02\x12\x13\n\r\n\x05\x04\x1f\x02\x00\x08\x12\x04\xed\x02\x14@\n\x10\n\x08\x04\x1f\x02\x00\x08\x87\t\x0e\x12\x04\xed\x02\x15?\nR\n\x02\x04 \x12\x06\xf1\x02\x00\xf6\x02\x01\x1aD Removes a conditional guardrail using its activation-owned handle.\n\n\x0b\n\x03\x04 \x01\x12\x04\xf1\x02\x087\nl\n\x04\x04 \x02\x00\x12\x04\xf3\x02\x02E\x1a^ Required activation credentials; invalid authentication fails before the operation executes.\n\n\r\n\x05\x04 \x02\x00\x06\x12\x04\xf3\x02\x02\r\n\r\n\x05\x04 \x02\x00\x01\x12\x04\xf3\x02\x0e\x19\n\r\n\x05\x04 \x02\x00\x03\x12\x04\xf3\x02\x1c\x1d\n\r\n\x05\x04 \x02\x00\x08\x12\x04\xf3\x02\x1eD\n\x10\n\x08\x04 \x02\x00\x08\x87\t\x19\x12\x04\xf3\x02\x1fC\nE\n\x04\x04 \x02\x01\x12\x04\xf5\x02\x02A\x1a7 Opaque activation-owned conditional-guardrail handle.\n\n\r\n\x05\x04 \x02\x01\x05\x12\x04\xf5\x02\x02\x08\n\r\n\x05\x04 \x02\x01\x01\x12\x04\xf5\x02\t\x0f\n\r\n\x05\x04 \x02\x01\x03\x12\x04\xf5\x02\x12\x13\n\r\n\x05\x04 \x02\x01\x08\x12\x04\xf5\x02\x14@\n\x10\n\x08\x04 \x02\x01\x08\x87\t\x0e\x12\x04\xf5\x02\x15?\nK\n\x02\x04!\x12\x06\xf9\x02\x00\xfc\x02\x01\x1a= Reports whether an owned conditional guardrail was removed.\n\n\x0b\n\x03\x04!\x01\x12\x04\xf9\x02\x088\nd\n\x04\x04!\x02\x00\x12\x04\xfb\x02\x02\x13\x1aV True when the owned guardrail existed and was removed; false is an idempotent no-op.\n\n\r\n\x05\x04!\x02\x00\x05\x12\x04\xfb\x02\x02\x06\n\r\n\x05\x04!\x02\x00\x01\x12\x04\xfb\x02\x07\x0e\n\r\n\x05\x04!\x02\x00\x03\x12\x04\xfb\x02\x11\x12b\x06proto3\n\x8b\xa8\x01\n5nvidia/nemo/relay/worker/v1/diagnostic_resource.proto\x12\x1bnvidia.nemo.relay.worker.v1\x1a\x1bbuf/validate/validate.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x9f\x01\n\x14ResourceMemoryNumber\x12\x1a\n\x07integer\x18\x01 \x01(\x04H\x00R\x07integer\x12#\n\x07decimal\x18\x02 \x01(\x01B\x07\xbaH\x04\x12\x02@\x01H\x00R\x07decimal\x127\n\nnon_finite\x18\x03 \x01(\x0b2\x16.google.protobuf.EmptyH\x00R\tnonFiniteB\r\n\x04kind\x12\x05\xbaH\x02\x08\x01\"\x9e\x02\n\x12ResourceMemoryUnit\x12S\n\x08capacity\x18\x01 \x01(\x0e2).nvidia.nemo.relay.worker.v1.CapacityUnitB\n\xbaH\x07\x82\x01\x04\x10\x01 \x00H\x00R\x08capacity\x12S\n\x08duration\x18\x02 \x01(\x0e2).nvidia.nemo.relay.worker.v1.DurationUnitB\n\xbaH\x07\x82\x01\x04\x10\x01 \x00H\x00R\x08duration\x12J\n\x05count\x18\x03 \x01(\x0e2&.nvidia.nemo.relay.worker.v1.CountUnitB\n\xbaH\x07\x82\x01\x04\x10\x01 \x00H\x00R\x05countB\x12\n\tdimension\x12\x05\xbaH\x02\x08\x01\"\x9f\x01\n\x14MemoryLimitEventSlot\x120\n\x06absent\x18\x01 \x01(\x0b2\x16.google.protobuf.EmptyH\x00R\x06absent\x12E\n\x05value\x18\x02 \x01(\x0b2-.nvidia.nemo.relay.worker.v1.MemoryLimitEventH\x00R\x05valueB\x0e\n\x05state\x12\x05\xbaH\x02\x08\x01\"\xe9\x02\n\x19ResourceMemoryMeasurement\x12O\n\x05value\x18\x01 \x01(\x0b21.nvidia.nemo.relay.worker.v1.ResourceMemoryNumberB\x06\xbaH\x03\xc8\x01\x01R\x05value\x12K\n\x04unit\x18\x02 \x01(\x0b2/.nvidia.nemo.relay.worker.v1.ResourceMemoryUnitB\x06\xbaH\x03\xc8\x01\x01R\x04unit\x12f\n\x11measurement_scope\x18\x03 \x01(\x0e2-.nvidia.nemo.relay.worker.v1.MemoryFieldScopeB\n\xbaH\x07\x82\x01\x04\x10\x01 \x00R\x10measurementScope\x120\n\x11sampled_processes\x18\x04 \x01(\x04H\x00R\x10sampledProcesses\x88\x01\x01B\x14\n\x12_sampled_processes\"\x93\x02\n\x10MemoryLimitEvent\x12Z\n\x08resource\x18\x01 \x01(\x0e22.nvidia.nemo.relay.worker.v1.ResourceLimitResourceB\n\xbaH\x07\x82\x01\x04\x10\x01 \x00R\x08resource\x12U\n\x05event\x18\x02 \x01(\x0e23.nvidia.nemo.relay.worker.v1.ResourceLimitEventKindB\n\xbaH\x07\x82\x01\x04\x10\x01 \x00R\x05event\x12L\n\x05count\x18\x03 \x01(\x0b26.nvidia.nemo.relay.worker.v1.ResourceMemoryMeasurementR\x05count\"\xe8\n\n\x15ResourceMemoryMetrics\x12W\n\x0bsystem_used\x18\x01 \x01(\x0b26.nvidia.nemo.relay.worker.v1.ResourceMemoryMeasurementR\nsystemUsed\x12Y\n\x0csystem_total\x18\x02 \x01(\x0b26.nvidia.nemo.relay.worker.v1.ResourceMemoryMeasurementR\x0bsystemTotal\x12a\n\x10system_available\x18\x03 \x01(\x0b26.nvidia.nemo.relay.worker.v1.ResourceMemoryMeasurementR\x0fsystemAvailable\x12R\n\x08resident\x18\x04 \x01(\x0b26.nvidia.nemo.relay.worker.v1.ResourceMemoryMeasurementR\x08resident\x12P\n\x07private\x18\x05 \x01(\x0b26.nvidia.nemo.relay.worker.v1.ResourceMemoryMeasurementR\x07private\x12e\n\x12physical_footprint\x18\x06 \x01(\x0b26.nvidia.nemo.relay.worker.v1.ResourceMemoryMeasurementR\x11physicalFootprint\x12]\n\x0evirtual_memory\x18\x07 \x01(\x0b26.nvidia.nemo.relay.worker.v1.ResourceMemoryMeasurementR\rvirtualMemory\x12[\n\rpeak_resident\x18\x08 \x01(\x0b26.nvidia.nemo.relay.worker.v1.ResourceMemoryMeasurementR\x0cpeakResident\x12L\n\x05limit\x18\t \x01(\x0b26.nvidia.nemo.relay.worker.v1.ResourceMemoryMeasurementR\x05limit\x12k\n\x15environment_accounted\x18\n \x01(\x0b26.nvidia.nemo.relay.worker.v1.ResourceMemoryMeasurementR\x14environmentAccounted\x12o\n\x18some_pressure_stall_time\x18\x0b \x01(\x0b26.nvidia.nemo.relay.worker.v1.ResourceMemoryMeasurementR\x15somePressureStallTime\x12o\n\x18full_pressure_stall_time\x18\x0c \x01(\x0b26.nvidia.nemo.relay.worker.v1.ResourceMemoryMeasurementR\x15fullPressureStallTime\x12p\n\x19out_of_memory_event_count\x18\r \x01(\x0b26.nvidia.nemo.relay.worker.v1.ResourceMemoryMeasurementR\x15outOfMemoryEventCount\x12`\n\x0climit_events\x18\x0e \x03(\x0b21.nvidia.nemo.relay.worker.v1.MemoryLimitEventSlotB\n\xbaH\x07\x92\x01\x04\x08\x08\x10\x08R\x0blimitEvents\"_\n\x17ResourceProcessIdentity\x12\x1d\n\nprocess_id\x18\x01 \x01(\rR\tprocessId\x12%\n\x0estart_identity\x18\x02 \x01(\x04R\rstartIdentity\"\xe5\x07\n\x14ResourceMemorySample\x12<\n\x15collector_instance_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x13collectorInstanceId\x12-\n\x12runtime_generation\x18\x02 \x01(\x04R\x11runtimeGeneration\x12+\n\x11target_generation\x18\x03 \x01(\x04R\x10targetGeneration\x12U\n\x06stream\x18\x04 \x01(\x0e21.nvidia.nemo.relay.worker.v1.ResourceSampleStreamB\n\xbaH\x07\x82\x01\x04\x10\x01 \x00R\x06stream\x12\x18\n\x07ordinal\x18\x05 \x01(\x04R\x07ordinal\x12A\n\nstart_time\x18\x06 \x01(\x0b2\x1a.google.protobuf.TimestampB\x06\xbaH\x03\xc8\x01\x01R\tstartTime\x12G\n\rcomplete_time\x18\x07 \x01(\x0b2\x1a.google.protobuf.TimestampB\x06\xbaH\x03\xc8\x01\x01R\x0ccompleteTime\x12+\n\x11collection_millis\x18\x08 \x01(\x04R\x10collectionMillis\x12k\n\x10operating_system\x18\t \x01(\x0e24.nvidia.nemo.relay.worker.v1.ResourceOperatingSystemB\n\xbaH\x07\x82\x01\x04\x10\x01 \x00R\x0foperatingSystem\x12n\n\x11measurement_scope\x18\n \x01(\x0e25.nvidia.nemo.relay.worker.v1.ResourceMeasurementScopeB\n\xbaH\x07\x82\x01\x04\x10\x01 \x00R\x10measurementScope\x12H\n\x04root\x18\x0b \x01(\x0b24.nvidia.nemo.relay.worker.v1.ResourceProcessIdentityR\x04root\x120\n\x11visible_processes\x18\x0c \x01(\x04H\x00R\x10visibleProcesses\x88\x01\x01\x120\n\x11sampled_processes\x18\r \x01(\x04H\x01R\x10sampledProcesses\x88\x01\x01\x12R\n\x06memory\x18\x0e \x01(\x0b22.nvidia.nemo.relay.worker.v1.ResourceMemoryMetricsB\x06\xbaH\x03\xc8\x01\x01R\x06memoryB\x14\n\x12_visible_processesB\x14\n\x12_sampled_processes\"\xa5\x03\n\x12ResourceMemoryView\x12g\n\x0cavailability\x18\x01 \x01(\x0e27.nvidia.nemo.relay.worker.v1.ResourceMemoryAvailabilityB\n\xbaH\x07\x82\x01\x04\x10\x01 \x00R\x0cavailability\x12I\n\x06sample\x18\x02 \x01(\x0b21.nvidia.nemo.relay.worker.v1.ResourceMemorySampleR\x06sample\x12^\n\x0bassociation\x18\x03 \x01(\x0e20.nvidia.nemo.relay.worker.v1.ResourceAssociationB\n\xbaH\x07\x82\x01\x04\x10\x01 \x00R\x0bassociation\x12\"\n\nage_millis\x18\x04 \x01(\x04H\x00R\tageMillis\x88\x01\x01\x12\x14\n\x05stale\x18\x05 \x01(\x08R\x05stale\x122\n\x15projection_slot_bytes\x18\x06 \x01(\x04R\x13projectionSlotBytesB\r\n\x0b_age_millis*\xc1\x03\n\x1aResourceMemoryAvailability\x12,\n(RESOURCE_MEMORY_AVAILABILITY_UNSPECIFIED\x10\x00\x12)\n%RESOURCE_MEMORY_AVAILABILITY_DISABLED\x10\x01\x120\n,RESOURCE_MEMORY_AVAILABILITY_AWAITING_TARGET\x10\x02\x120\n,RESOURCE_MEMORY_AVAILABILITY_NOT_YET_SAMPLED\x10\x03\x12*\n&RESOURCE_MEMORY_AVAILABILITY_AVAILABLE\x10\x04\x12\'\n#RESOURCE_MEMORY_AVAILABILITY_FAILED\x10\x05\x12,\n(RESOURCE_MEMORY_AVAILABILITY_INVALIDATED\x10\x06\x125\n1RESOURCE_MEMORY_AVAILABILITY_CAPACITY_UNAVAILABLE\x10\x07\x12,\n(RESOURCE_MEMORY_AVAILABILITY_UNSUPPORTED\x10\x08*\x88\x01\n\x14ResourceSampleStream\x12&\n\"RESOURCE_SAMPLE_STREAM_UNSPECIFIED\x10\x00\x12\"\n\x1eRESOURCE_SAMPLE_STREAM_POLLING\x10\x01\x12$\n RESOURCE_SAMPLE_STREAM_ON_DEMAND\x10\x02*\x81\x02\n\x13ResourceAssociation\x12$\n RESOURCE_ASSOCIATION_UNSPECIFIED\x10\x00\x12%\n!RESOURCE_ASSOCIATION_HOST_PROCESS\x10\x01\x12*\n&RESOURCE_ASSOCIATION_HOST_PROCESS_TREE\x10\x02\x12+\n\'RESOURCE_ASSOCIATION_OTHER_PROCESS_TREE\x10\x03\x12\x1f\n\x1bRESOURCE_ASSOCIATION_SYSTEM\x10\x04\x12#\n\x1fRESOURCE_ASSOCIATION_UNVERIFIED\x10\x05*\xa4\x01\n\x10MemoryFieldScope\x12\"\n\x1eMEMORY_FIELD_SCOPE_UNSPECIFIED\x10\x00\x12\x1d\n\x19MEMORY_FIELD_SCOPE_SYSTEM\x10\x01\x12)\n%MEMORY_FIELD_SCOPE_SELECTED_PROCESSES\x10\x02\x12\"\n\x1eMEMORY_FIELD_SCOPE_ENVIRONMENT\x10\x03*\xce\x01\n\x18ResourceMeasurementScope\x12*\n&RESOURCE_MEASUREMENT_SCOPE_UNSPECIFIED\x10\x00\x12%\n!RESOURCE_MEASUREMENT_SCOPE_GLOBAL\x10\x01\x122\n.RESOURCE_MEASUREMENT_SCOPE_APPLICATION_PROCESS\x10\x02\x12+\n\'RESOURCE_MEASUREMENT_SCOPE_PROCESS_TREE\x10\x03*\xe0\x01\n\x17ResourceOperatingSystem\x12)\n%RESOURCE_OPERATING_SYSTEM_UNSPECIFIED\x10\x00\x12#\n\x1fRESOURCE_OPERATING_SYSTEM_LINUX\x10\x01\x12#\n\x1fRESOURCE_OPERATING_SYSTEM_MACOS\x10\x02\x12%\n!RESOURCE_OPERATING_SYSTEM_WINDOWS\x10\x03\x12)\n%RESOURCE_OPERATING_SYSTEM_UNSUPPORTED\x10\x04*\xae\x02\n\x0cCapacityUnit\x12\x1d\n\x19CAPACITY_UNIT_UNSPECIFIED\x10\x00\x12\x17\n\x13CAPACITY_UNIT_BYTES\x10\x01\x12\x1b\n\x17CAPACITY_UNIT_KILOBYTES\x10\x02\x12\x1b\n\x17CAPACITY_UNIT_MEGABYTES\x10\x03\x12\x1b\n\x17CAPACITY_UNIT_GIGABYTES\x10\x04\x12\x1b\n\x17CAPACITY_UNIT_TERABYTES\x10\x05\x12\x1b\n\x17CAPACITY_UNIT_KIBIBYTES\x10\x06\x12\x1b\n\x17CAPACITY_UNIT_MEBIBYTES\x10\x07\x12\x1b\n\x17CAPACITY_UNIT_GIBIBYTES\x10\x08\x12\x1b\n\x17CAPACITY_UNIT_TEBIBYTES\x10\t*\xa3\x01\n\x0cDurationUnit\x12\x1d\n\x19DURATION_UNIT_UNSPECIFIED\x10\x00\x12\x1e\n\x1aDURATION_UNIT_MICROSECONDS\x10\x01\x12\x1e\n\x1aDURATION_UNIT_MILLISECONDS\x10\x02\x12\x19\n\x15DURATION_UNIT_SECONDS\x10\x03\x12\x19\n\x15DURATION_UNIT_MINUTES\x10\x04*\xf3\x01\n\tCountUnit\x12\x1a\n\x16COUNT_UNIT_UNSPECIFIED\x10\x00\x12\x18\n\x14COUNT_UNIT_PROCESSES\x10\x01\x12\x16\n\x12COUNT_UNIT_THREADS\x10\x02\x12\x1f\n\x1bCOUNT_UNIT_FILE_DESCRIPTORS\x10\x03\x12\x16\n\x12COUNT_UNIT_HANDLES\x10\x04\x12\x15\n\x11COUNT_UNIT_EVENTS\x10\x05\x12\x19\n\x15COUNT_UNIT_OPERATIONS\x10\x06\x12\x16\n\x12COUNT_UNIT_PACKETS\x10\x07\x12\x15\n\x11COUNT_UNIT_ERRORS\x10\x08*\xac\x01\n\x15ResourceLimitResource\x12\'\n#RESOURCE_LIMIT_RESOURCE_UNSPECIFIED\x10\x00\x12\x1f\n\x1bRESOURCE_LIMIT_RESOURCE_CPU\x10\x01\x12\"\n\x1eRESOURCE_LIMIT_RESOURCE_MEMORY\x10\x02\x12%\n!RESOURCE_LIMIT_RESOURCE_PROCESSES\x10\x03*\x8e\x02\n\x16ResourceLimitEventKind\x12)\n%RESOURCE_LIMIT_EVENT_KIND_UNSPECIFIED\x10\x00\x12\'\n#RESOURCE_LIMIT_EVENT_KIND_THROTTLED\x10\x01\x12\"\n\x1eRESOURCE_LIMIT_EVENT_KIND_HIGH\x10\x02\x12%\n!RESOURCE_LIMIT_EVENT_KIND_MAXIMUM\x10\x03\x12+\n\'RESOURCE_LIMIT_EVENT_KIND_OUT_OF_MEMORY\x10\x04\x12(\n$RESOURCE_LIMIT_EVENT_KIND_TERMINATED\x10\x05J\xd3q\n\x07\x12\x05\x05\x00\xf3\x02\x01\n\xe0\x01\n\x01\x0c\x12\x03\x05\x00\x122\x88\x01 SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n SPDX-License-Identifier: Apache-2.0\n2K Defines typed resource-memory projections without collecting new samples.\n\n\x08\n\x01\x02\x12\x03\x07\x00$\n\t\n\x02\x03\x00\x12\x03\t\x00%\n\t\n\x02\x03\x01\x12\x03\n\x00%\n\t\n\x02\x03\x02\x12\x03\x0b\x00)\nZ\n\x02\x05\x00\x12\x04\x0e\x00!\x01\x1aN Canonical resource memory availability values from the shared runtime types.\n\n\n\n\x03\x05\x00\x01\x12\x03\x0e\x05\x1f\nN\n\x04\x05\x00\x02\x00\x12\x03\x10\x02/\x1aA No value supplied; invalid where an explicit value is required.\n\n\x0c\n\x05\x05\x00\x02\x00\x01\x12\x03\x10\x02*\n\x0c\n\x05\x05\x00\x02\x00\x02\x12\x03\x10-.\n4\n\x04\x05\x00\x02\x01\x12\x03\x12\x02,\x1a\' Collection or projection is disabled.\n\n\x0c\n\x05\x05\x00\x02\x01\x01\x12\x03\x12\x02\'\n\x0c\n\x05\x05\x00\x02\x01\x02\x12\x03\x12*+\n.\n\x04\x05\x00\x02\x02\x12\x03\x14\x023\x1a! Waiting for a CLI-owned target.\n\n\x0c\n\x05\x05\x00\x02\x02\x01\x12\x03\x14\x02.\n\x0c\n\x05\x05\x00\x02\x02\x02\x12\x03\x1412\n+\n\x04\x05\x00\x02\x03\x12\x03\x16\x023\x1a\x1e No collection has completed.\n\n\x0c\n\x05\x05\x00\x02\x03\x01\x12\x03\x16\x02.\n\x0c\n\x05\x05\x00\x02\x03\x02\x12\x03\x1612\nM\n\x04\x05\x00\x02\x04\x12\x03\x18\x02-\x1a@ A sample is available; inspect its independent staleness flag.\n\n\x0c\n\x05\x05\x00\x02\x04\x01\x12\x03\x18\x02(\n\x0c\n\x05\x05\x00\x02\x04\x02\x12\x03\x18+,\nI\n\x04\x05\x00\x02\x05\x12\x03\x1a\x02*\x1a< Latest collection failed; a prior valid sample may remain.\n\n\x0c\n\x05\x05\x00\x02\x05\x01\x12\x03\x1a\x02%\n\x0c\n\x05\x05\x00\x02\x05\x02\x12\x03\x1a()\n?\n\x04\x05\x00\x02\x06\x12\x03\x1c\x02/\x1a2 Runtime/target or process owner was invalidated.\n\n\x0c\n\x05\x05\x00\x02\x06\x01\x12\x03\x1c\x02*\n\x0c\n\x05\x05\x00\x02\x06\x02\x12\x03\x1c-.\nN\n\x04\x05\x00\x02\x07\x12\x03\x1e\x028\x1aA A sample exceeds the bounded projection vocabulary or capacity.\n\n\x0c\n\x05\x05\x00\x02\x07\x01\x12\x03\x1e\x023\n\x0c\n\x05\x05\x00\x02\x07\x02\x12\x03\x1e67\n5\n\x04\x05\x00\x02\x08\x12\x03 \x02/\x1a( The collector platform is unsupported.\n\n\x0c\n\x05\x05\x00\x02\x08\x01\x12\x03 \x02*\n\x0c\n\x05\x05\x00\x02\x08\x02\x12\x03 -.\nT\n\x02\x05\x01\x12\x04$\x00+\x01\x1aH Canonical resource sample stream values from the shared runtime types.\n\n\n\n\x03\x05\x01\x01\x12\x03$\x05\x19\nN\n\x04\x05\x01\x02\x00\x12\x03&\x02)\x1aA No value supplied; invalid where an explicit value is required.\n\n\x0c\n\x05\x05\x01\x02\x00\x01\x12\x03&\x02$\n\x0c\n\x05\x05\x01\x02\x00\x02\x12\x03&\'(\n\"\n\x04\x05\x01\x02\x01\x12\x03(\x02%\x1a\x15 Configured polling.\n\n\x0c\n\x05\x05\x01\x02\x01\x01\x12\x03(\x02 \n\x0c\n\x05\x05\x01\x02\x01\x02\x12\x03(#$\n6\n\x04\x05\x01\x02\x02\x12\x03*\x02\'\x1a) Explicit existing resource collect API.\n\n\x0c\n\x05\x05\x01\x02\x02\x01\x12\x03*\x02\"\n\x0c\n\x05\x05\x01\x02\x02\x02\x12\x03*%&\nR\n\x02\x05\x02\x12\x04.\x00;\x01\x1aF Canonical resource association values from the shared runtime types.\n\n\n\n\x03\x05\x02\x01\x12\x03.\x05\x18\nN\n\x04\x05\x02\x02\x00\x12\x030\x02\'\x1aA No value supplied; invalid where an explicit value is required.\n\n\x0c\n\x05\x05\x02\x02\x00\x01\x12\x030\x02\"\n\x0c\n\x05\x05\x02\x02\x00\x02\x12\x030%&\n1\n\x04\x05\x02\x02\x01\x12\x032\x02(\x1a$ Verified host application process.\n\n\x0c\n\x05\x05\x02\x02\x01\x01\x12\x032\x02#\n\x0c\n\x05\x05\x02\x02\x01\x02\x12\x032&\'\n;\n\x04\x05\x02\x02\x02\x12\x034\x02-\x1a. Verified host root plus sampled descendants.\n\n\x0c\n\x05\x05\x02\x02\x02\x01\x12\x034\x02(\n\x0c\n\x05\x05\x02\x02\x02\x02\x12\x034+,\nJ\n\x04\x05\x02\x02\x03\x12\x036\x02.\x1a= Verified different root and descendants; may exclude Relay.\n\n\x0c\n\x05\x05\x02\x02\x03\x01\x12\x036\x02)\n\x0c\n\x05\x05\x02\x02\x03\x02\x12\x036,-\n#\n\x04\x05\x02\x02\x04\x12\x038\x02\"\x1a\x16 System context only.\n\n\x0c\n\x05\x05\x02\x02\x04\x01\x12\x038\x02\x1d\n\x0c\n\x05\x05\x02\x02\x04\x02\x12\x038 !\n-\n\x04\x05\x02\x02\x05\x12\x03:\x02&\x1a No verified root relationship.\n\n\x0c\n\x05\x05\x02\x02\x05\x01\x12\x03:\x02!\n\x0c\n\x05\x05\x02\x02\x05\x02\x12\x03:$%\nP\n\x02\x05\x03\x12\x04>\x00G\x01\x1aD Canonical memory field scope values from the shared runtime types.\n\n\n\n\x03\x05\x03\x01\x12\x03>\x05\x15\nN\n\x04\x05\x03\x02\x00\x12\x03@\x02%\x1aA No value supplied; invalid where an explicit value is required.\n\n\x0c\n\x05\x05\x03\x02\x00\x01\x12\x03@\x02 \n\x0c\n\x05\x05\x03\x02\x00\x02\x12\x03@#$\n*\n\x04\x05\x03\x02\x01\x12\x03B\x02 \x1a\x1d System-visible measurement.\n\n\x0c\n\x05\x05\x03\x02\x01\x01\x12\x03B\x02\x1b\n\x0c\n\x05\x05\x03\x02\x01\x02\x12\x03B\x1e\x1f\n0\n\x04\x05\x03\x02\x02\x12\x03D\x02,\x1a# Selected process or process tree.\n\n\x0c\n\x05\x05\x03\x02\x02\x01\x12\x03D\x02\'\n\x0c\n\x05\x05\x03\x02\x02\x02\x12\x03D*+\n>\n\x04\x05\x03\x02\x03\x12\x03F\x02%\x1a1 Owned environment/container/cgroup measurement.\n\n\x0c\n\x05\x05\x03\x02\x03\x01\x12\x03F\x02 \n\x0c\n\x05\x05\x03\x02\x03\x02\x12\x03F#$\nX\n\x02\x05\x04\x12\x04J\x00S\x01\x1aL Canonical resource measurement scope values from the shared runtime types.\n\n\n\n\x03\x05\x04\x01\x12\x03J\x05\x1d\nN\n\x04\x05\x04\x02\x00\x12\x03L\x02-\x1aA No value supplied; invalid where an explicit value is required.\n\n\x0c\n\x05\x05\x04\x02\x00\x01\x12\x03L\x02(\n\x0c\n\x05\x05\x04\x02\x00\x02\x12\x03L+,\nG\n\x04\x05\x04\x02\x01\x12\x03N\x02(\x1a: All system resources visible to the running environment.\n\n\x0c\n\x05\x05\x04\x02\x01\x01\x12\x03N\x02#\n\x0c\n\x05\x05\x04\x02\x01\x02\x12\x03N&\'\n8\n\x04\x05\x04\x02\x02\x12\x03P\x025\x1a+ The process containing the Relay runtime.\n\n\x0c\n\x05\x05\x04\x02\x02\x01\x12\x03P\x020\n\x0c\n\x05\x05\x04\x02\x02\x02\x12\x03P34\nF\n\x04\x05\x04\x02\x03\x12\x03R\x02.\x1a9 A root process and every descendant under that process.\n\n\x0c\n\x05\x05\x04\x02\x03\x01\x12\x03R\x02)\n\x0c\n\x05\x05\x04\x02\x03\x02\x12\x03R,-\nW\n\x02\x05\x05\x12\x04V\x00a\x01\x1aK Canonical resource operating system values from the shared runtime types.\n\n\n\n\x03\x05\x05\x01\x12\x03V\x05\x1c\nN\n\x04\x05\x05\x02\x00\x12\x03X\x02,\x1aA No value supplied; invalid where an explicit value is required.\n\n\x0c\n\x05\x05\x05\x02\x00\x01\x12\x03X\x02\'\n\x0c\n\x05\x05\x05\x02\x00\x02\x12\x03X*+\n\x15\n\x04\x05\x05\x02\x01\x12\x03Z\x02&\x1a\x08 Linux.\n\n\x0c\n\x05\x05\x05\x02\x01\x01\x12\x03Z\x02!\n\x0c\n\x05\x05\x05\x02\x01\x02\x12\x03Z$%\n\x15\n\x04\x05\x05\x02\x02\x12\x03\\\x02&\x1a\x08 macOS.\n\n\x0c\n\x05\x05\x05\x02\x02\x01\x12\x03\\\x02!\n\x0c\n\x05\x05\x05\x02\x02\x02\x12\x03\\$%\n\x17\n\x04\x05\x05\x02\x03\x12\x03^\x02(\x1a\n Windows.\n\n\x0c\n\x05\x05\x05\x02\x03\x01\x12\x03^\x02#\n\x0c\n\x05\x05\x05\x02\x03\x02\x12\x03^&\'\nI\n\x04\x05\x05\x02\x04\x12\x03`\x02,\x1a< A platform without a supported resource metrics collector.\n\n\x0c\n\x05\x05\x05\x02\x04\x01\x12\x03`\x02\'\n\x0c\n\x05\x05\x05\x02\x04\x02\x12\x03`*+\nK\n\x02\x05\x06\x12\x04d\x00y\x01\x1a? Canonical capacity unit values from the shared runtime types.\n\n\n\n\x03\x05\x06\x01\x12\x03d\x05\x11\nN\n\x04\x05\x06\x02\x00\x12\x03f\x02 \x1aA No value supplied; invalid where an explicit value is required.\n\n\x0c\n\x05\x05\x06\x02\x00\x01\x12\x03f\x02\x1b\n\x0c\n\x05\x05\x06\x02\x00\x02\x12\x03f\x1e\x1f\n\x15\n\x04\x05\x06\x02\x01\x12\x03h\x02\x1a\x1a\x08 Bytes.\n\n\x0c\n\x05\x05\x06\x02\x01\x01\x12\x03h\x02\x15\n\x0c\n\x05\x05\x06\x02\x01\x02\x12\x03h\x18\x19\n\x19\n\x04\x05\x06\x02\x02\x12\x03j\x02\x1e\x1a\x0c Kilobytes.\n\n\x0c\n\x05\x05\x06\x02\x02\x01\x12\x03j\x02\x19\n\x0c\n\x05\x05\x06\x02\x02\x02\x12\x03j\x1c\x1d\n\x19\n\x04\x05\x06\x02\x03\x12\x03l\x02\x1e\x1a\x0c Megabytes.\n\n\x0c\n\x05\x05\x06\x02\x03\x01\x12\x03l\x02\x19\n\x0c\n\x05\x05\x06\x02\x03\x02\x12\x03l\x1c\x1d\n\x19\n\x04\x05\x06\x02\x04\x12\x03n\x02\x1e\x1a\x0c Gigabytes.\n\n\x0c\n\x05\x05\x06\x02\x04\x01\x12\x03n\x02\x19\n\x0c\n\x05\x05\x06\x02\x04\x02\x12\x03n\x1c\x1d\n\x19\n\x04\x05\x06\x02\x05\x12\x03p\x02\x1e\x1a\x0c Terabytes.\n\n\x0c\n\x05\x05\x06\x02\x05\x01\x12\x03p\x02\x19\n\x0c\n\x05\x05\x06\x02\x05\x02\x12\x03p\x1c\x1d\n\x19\n\x04\x05\x06\x02\x06\x12\x03r\x02\x1e\x1a\x0c Kibibytes.\n\n\x0c\n\x05\x05\x06\x02\x06\x01\x12\x03r\x02\x19\n\x0c\n\x05\x05\x06\x02\x06\x02\x12\x03r\x1c\x1d\n\x19\n\x04\x05\x06\x02\x07\x12\x03t\x02\x1e\x1a\x0c Mebibytes.\n\n\x0c\n\x05\x05\x06\x02\x07\x01\x12\x03t\x02\x19\n\x0c\n\x05\x05\x06\x02\x07\x02\x12\x03t\x1c\x1d\n\x19\n\x04\x05\x06\x02\x08\x12\x03v\x02\x1e\x1a\x0c Gibibytes.\n\n\x0c\n\x05\x05\x06\x02\x08\x01\x12\x03v\x02\x19\n\x0c\n\x05\x05\x06\x02\x08\x02\x12\x03v\x1c\x1d\n\x19\n\x04\x05\x06\x02\t\x12\x03x\x02\x1e\x1a\x0c Tebibytes.\n\n\x0c\n\x05\x05\x06\x02\t\x01\x12\x03x\x02\x19\n\x0c\n\x05\x05\x06\x02\t\x02\x12\x03x\x1c\x1d\nL\n\x02\x05\x07\x12\x05|\x00\x87\x01\x01\x1a? Canonical duration unit values from the shared runtime types.\n\n\n\n\x03\x05\x07\x01\x12\x03|\x05\x11\nN\n\x04\x05\x07\x02\x00\x12\x03~\x02 \x1aA No value supplied; invalid where an explicit value is required.\n\n\x0c\n\x05\x05\x07\x02\x00\x01\x12\x03~\x02\x1b\n\x0c\n\x05\x05\x07\x02\x00\x02\x12\x03~\x1e\x1f\n\x1d\n\x04\x05\x07\x02\x01\x12\x04\x80\x01\x02!\x1a\x0f Microseconds.\n\n\r\n\x05\x05\x07\x02\x01\x01\x12\x04\x80\x01\x02\x1c\n\r\n\x05\x05\x07\x02\x01\x02\x12\x04\x80\x01\x1f \n\x1d\n\x04\x05\x07\x02\x02\x12\x04\x82\x01\x02!\x1a\x0f Milliseconds.\n\n\r\n\x05\x05\x07\x02\x02\x01\x12\x04\x82\x01\x02\x1c\n\r\n\x05\x05\x07\x02\x02\x02\x12\x04\x82\x01\x1f \n\x18\n\x04\x05\x07\x02\x03\x12\x04\x84\x01\x02\x1c\x1a\n Seconds.\n\n\r\n\x05\x05\x07\x02\x03\x01\x12\x04\x84\x01\x02\x17\n\r\n\x05\x05\x07\x02\x03\x02\x12\x04\x84\x01\x1a\x1b\n\x18\n\x04\x05\x07\x02\x04\x12\x04\x86\x01\x02\x1c\x1a\n Minutes.\n\n\r\n\x05\x05\x07\x02\x04\x01\x12\x04\x86\x01\x02\x17\n\r\n\x05\x05\x07\x02\x04\x02\x12\x04\x86\x01\x1a\x1b\nJ\n\x02\x05\x08\x12\x06\x8a\x01\x00\x9d\x01\x01\x1a< Canonical count unit values from the shared runtime types.\n\n\x0b\n\x03\x05\x08\x01\x12\x04\x8a\x01\x05\x0e\nO\n\x04\x05\x08\x02\x00\x12\x04\x8c\x01\x02\x1d\x1aA No value supplied; invalid where an explicit value is required.\n\n\r\n\x05\x05\x08\x02\x00\x01\x12\x04\x8c\x01\x02\x18\n\r\n\x05\x05\x08\x02\x00\x02\x12\x04\x8c\x01\x1b\x1c\n\x1a\n\x04\x05\x08\x02\x01\x12\x04\x8e\x01\x02\x1b\x1a\x0c Processes.\n\n\r\n\x05\x05\x08\x02\x01\x01\x12\x04\x8e\x01\x02\x16\n\r\n\x05\x05\x08\x02\x01\x02\x12\x04\x8e\x01\x19\x1a\n\x18\n\x04\x05\x08\x02\x02\x12\x04\x90\x01\x02\x19\x1a\n Threads.\n\n\r\n\x05\x05\x08\x02\x02\x01\x12\x04\x90\x01\x02\x14\n\r\n\x05\x05\x08\x02\x02\x02\x12\x04\x90\x01\x17\x18\n!\n\x04\x05\x08\x02\x03\x12\x04\x92\x01\x02\"\x1a\x13 File descriptors.\n\n\r\n\x05\x05\x08\x02\x03\x01\x12\x04\x92\x01\x02\x1d\n\r\n\x05\x05\x08\x02\x03\x02\x12\x04\x92\x01 !\n\x18\n\x04\x05\x08\x02\x04\x12\x04\x94\x01\x02\x19\x1a\n Handles.\n\n\r\n\x05\x05\x08\x02\x04\x01\x12\x04\x94\x01\x02\x14\n\r\n\x05\x05\x08\x02\x04\x02\x12\x04\x94\x01\x17\x18\n\x17\n\x04\x05\x08\x02\x05\x12\x04\x96\x01\x02\x18\x1a\t Events.\n\n\r\n\x05\x05\x08\x02\x05\x01\x12\x04\x96\x01\x02\x13\n\r\n\x05\x05\x08\x02\x05\x02\x12\x04\x96\x01\x16\x17\n\x1b\n\x04\x05\x08\x02\x06\x12\x04\x98\x01\x02\x1c\x1a\r Operations.\n\n\r\n\x05\x05\x08\x02\x06\x01\x12\x04\x98\x01\x02\x17\n\r\n\x05\x05\x08\x02\x06\x02\x12\x04\x98\x01\x1a\x1b\n\x18\n\x04\x05\x08\x02\x07\x12\x04\x9a\x01\x02\x19\x1a\n Packets.\n\n\r\n\x05\x05\x08\x02\x07\x01\x12\x04\x9a\x01\x02\x14\n\r\n\x05\x05\x08\x02\x07\x02\x12\x04\x9a\x01\x17\x18\n\x17\n\x04\x05\x08\x02\x08\x12\x04\x9c\x01\x02\x18\x1a\t Errors.\n\n\r\n\x05\x05\x08\x02\x08\x01\x12\x04\x9c\x01\x02\x13\n\r\n\x05\x05\x08\x02\x08\x02\x12\x04\x9c\x01\x16\x17\nW\n\x02\x05\t\x12\x06\xa0\x01\x00\xa9\x01\x01\x1aI Canonical resource limit resource values from the shared runtime types.\n\n\x0b\n\x03\x05\t\x01\x12\x04\xa0\x01\x05\x1a\nO\n\x04\x05\t\x02\x00\x12\x04\xa2\x01\x02*\x1aA No value supplied; invalid where an explicit value is required.\n\n\r\n\x05\x05\t\x02\x00\x01\x12\x04\xa2\x01\x02%\n\r\n\x05\x05\t\x02\x00\x02\x12\x04\xa2\x01()\n\x1d\n\x04\x05\t\x02\x01\x12\x04\xa4\x01\x02\"\x1a\x0f CPU capacity.\n\n\r\n\x05\x05\t\x02\x01\x01\x12\x04\xa4\x01\x02\x1d\n\r\n\x05\x05\t\x02\x01\x02\x12\x04\xa4\x01 !\n \n\x04\x05\t\x02\x02\x12\x04\xa6\x01\x02%\x1a\x12 Memory capacity.\n\n\r\n\x05\x05\t\x02\x02\x01\x12\x04\xa6\x01\x02 \n\r\n\x05\x05\t\x02\x02\x02\x12\x04\xa6\x01#$\n!\n\x04\x05\t\x02\x03\x12\x04\xa8\x01\x02(\x1a\x13 Process capacity.\n\n\r\n\x05\x05\t\x02\x03\x01\x12\x04\xa8\x01\x02#\n\r\n\x05\x05\t\x02\x03\x02\x12\x04\xa8\x01&\'\nY\n\x02\x05\n\x12\x06\xac\x01\x00\xb9\x01\x01\x1aK Canonical resource limit event kind values from the shared runtime types.\n\n\x0b\n\x03\x05\n\x01\x12\x04\xac\x01\x05\x1b\nO\n\x04\x05\n\x02\x00\x12\x04\xae\x01\x02,\x1aA No value supplied; invalid where an explicit value is required.\n\n\r\n\x05\x05\n\x02\x00\x01\x12\x04\xae\x01\x02\'\n\r\n\x05\x05\n\x02\x00\x02\x12\x04\xae\x01*+\n,\n\x04\x05\n\x02\x01\x12\x04\xb0\x01\x02*\x1a\x1e CPU execution was throttled.\n\n\r\n\x05\x05\n\x02\x01\x01\x12\x04\xb0\x01\x02%\n\r\n\x05\x05\n\x02\x01\x02\x12\x04\xb0\x01()\n-\n\x04\x05\n\x02\x02\x12\x04\xb2\x01\x02%\x1a\x1f A high threshold was crossed.\n\n\r\n\x05\x05\n\x02\x02\x01\x12\x04\xb2\x01\x02 \n\r\n\x05\x05\n\x02\x02\x02\x12\x04\xb2\x01#$\n1\n\x04\x05\n\x02\x03\x12\x04\xb4\x01\x02(\x1a# A configured maximum was reached.\n\n\r\n\x05\x05\n\x02\x03\x01\x12\x04\xb4\x01\x02#\n\r\n\x05\x05\n\x02\x03\x02\x12\x04\xb4\x01&\'\n4\n\x04\x05\n\x02\x04\x12\x04\xb6\x01\x02.\x1a& An out-of-memory condition occurred.\n\n\r\n\x05\x05\n\x02\x04\x01\x12\x04\xb6\x01\x02)\n\r\n\x05\x05\n\x02\x04\x02\x12\x04\xb6\x01,-\nB\n\x04\x05\n\x02\x05\x12\x04\xb8\x01\x02+\x1a4 A process was terminated by the resource boundary.\n\n\r\n\x05\x05\n\x02\x05\x01\x12\x04\xb8\x01\x02&\n\r\n\x05\x05\n\x02\x05\x02\x12\x04\xb8\x01)*\nW\n\x02\x04\x00\x12\x06\xbc\x01\x00\xc7\x01\x01\x1aI Exact integer, finite decimal, or explicit non-finite collector result.\n\n\x0b\n\x03\x04\x00\x01\x12\x04\xbc\x01\x08\x1c\n@\n\x04\x04\x00\x08\x00\x12\x06\xbe\x01\x02\xc6\x01\x03\x1a0 Exactly one original numeric kind is required.\n\n\r\n\x05\x04\x00\x08\x00\x01\x12\x04\xbe\x01\x08\x0c\n\r\n\x05\x04\x00\x08\x00\x02\x12\x04\xbf\x01\x040\n\x10\n\x08\x04\x00\x08\x00\x02\x87\t\x01\x12\x04\xbf\x01\x040\nJ\n\x04\x04\x00\x02\x00\x12\x04\xc1\x01\x04\x17\x1a< Exact unsigned value, without a floating-point conversion.\n\n\r\n\x05\x04\x00\x02\x00\x05\x12\x04\xc1\x01\x04\n\n\r\n\x05\x04\x00\x02\x00\x01\x12\x04\xc1\x01\x0b\x12\n\r\n\x05\x04\x00\x02\x00\x03\x12\x04\xc1\x01\x15\x16\nH\n\x04\x04\x00\x02\x01\x12\x04\xc3\x01\x04C\x1a: Finite fractional value in the original configured unit.\n\n\r\n\x05\x04\x00\x02\x01\x05\x12\x04\xc3\x01\x04\n\n\r\n\x05\x04\x00\x02\x01\x01\x12\x04\xc3\x01\x0b\x12\n\r\n\x05\x04\x00\x02\x01\x03\x12\x04\xc3\x01\x15\x16\n\r\n\x05\x04\x00\x02\x01\x08\x12\x04\xc3\x01\x17B\n\x11\n\t\x04\x00\x02\x01\x08\x87\t\x02\x08\x12\x04\xc3\x01\x18A\nO\n\x04\x04\x00\x02\x02\x12\x04\xc5\x01\x04)\x1aA A collector reported a non-finite value; never substitute zero.\n\n\r\n\x05\x04\x00\x02\x02\x06\x12\x04\xc5\x01\x04\x19\n\r\n\x05\x04\x00\x02\x02\x01\x12\x04\xc5\x01\x1a$\n\r\n\x05\x04\x00\x02\x02\x03\x12\x04\xc5\x01\'(\nV\n\x02\x04\x01\x12\x06\xca\x01\x00\xde\x01\x01\x1aH Original measurement dimension and canonical unit, without conversion.\n\n\x0b\n\x03\x04\x01\x01\x12\x04\xca\x01\x08\x1a\n?\n\x04\x04\x01\x08\x00\x12\x06\xcc\x01\x02\xdd\x01\x03\x1a/ Exactly one original unit family is required.\n\n\r\n\x05\x04\x01\x08\x00\x01\x12\x04\xcc\x01\x08\x11\n\r\n\x05\x04\x01\x08\x00\x02\x12\x04\xcd\x01\x040\n\x10\n\x08\x04\x01\x08\x00\x02\x87\t\x01\x12\x04\xcd\x01\x040\n\'\n\x04\x04\x01\x02\x00\x12\x06\xcf\x01\x04\xd2\x01\x07\x1a\x17 Memory capacity unit.\n\n\r\n\x05\x04\x01\x02\x00\x06\x12\x04\xcf\x01\x04\x10\n\r\n\x05\x04\x01\x02\x00\x01\x12\x04\xcf\x01\x11\x19\n\r\n\x05\x04\x01\x02\x00\x03\x12\x04\xcf\x01\x1c\x1d\n\x0f\n\x05\x04\x01\x02\x00\x08\x12\x06\xcf\x01\x1e\xd2\x01\x06\n\x12\n\x08\x04\x01\x02\x00\x08\x87\t\x10\x12\x06\xcf\x01\x1f\xd2\x01\x05\n6\n\x04\x04\x01\x02\x01\x12\x06\xd4\x01\x04\xd7\x01\x07\x1a& Elapsed or cumulative duration unit.\n\n\r\n\x05\x04\x01\x02\x01\x06\x12\x04\xd4\x01\x04\x10\n\r\n\x05\x04\x01\x02\x01\x01\x12\x04\xd4\x01\x11\x19\n\r\n\x05\x04\x01\x02\x01\x03\x12\x04\xd4\x01\x1c\x1d\n\x0f\n\x05\x04\x01\x02\x01\x08\x12\x06\xd4\x01\x1e\xd7\x01\x06\n\x12\n\x08\x04\x01\x02\x01\x08\x87\t\x10\x12\x06\xd4\x01\x1f\xd7\x01\x05\n.\n\x04\x04\x01\x02\x02\x12\x06\xd9\x01\x04\xdc\x01\x07\x1a\x1e Cumulative event count unit.\n\n\r\n\x05\x04\x01\x02\x02\x06\x12\x04\xd9\x01\x04\r\n\r\n\x05\x04\x01\x02\x02\x01\x12\x04\xd9\x01\x0e\x13\n\r\n\x05\x04\x01\x02\x02\x03\x12\x04\xd9\x01\x16\x17\n\x0f\n\x05\x04\x01\x02\x02\x08\x12\x06\xd9\x01\x18\xdc\x01\x06\n\x12\n\x08\x04\x01\x02\x02\x08\x87\t\x10\x12\x06\xd9\x01\x19\xdc\x01\x05\n]\n\x02\x04\x02\x12\x06\xe1\x01\x00\xea\x01\x01\x1aO One fixed resource limit-event slot, preserving the runtime\'s null positions.\n\n\x0b\n\x03\x04\x02\x01\x12\x04\xe1\x01\x08\x1c\nK\n\x04\x04\x02\x08\x00\x12\x06\xe3\x01\x02\xe9\x01\x03\x1a; Exactly one present or absent slot selection is required.\n\n\r\n\x05\x04\x02\x08\x00\x01\x12\x04\xe3\x01\x08\r\n\r\n\x05\x04\x02\x08\x00\x02\x12\x04\xe4\x01\x040\n\x10\n\x08\x04\x02\x08\x00\x02\x87\t\x01\x12\x04\xe4\x01\x040\n\'\n\x04\x04\x02\x02\x00\x12\x04\xe6\x01\x04%\x1a\x19 The slot is unoccupied.\n\n\r\n\x05\x04\x02\x02\x00\x06\x12\x04\xe6\x01\x04\x19\n\r\n\x05\x04\x02\x02\x00\x01\x12\x04\xe6\x01\x1a \n\r\n\x05\x04\x02\x02\x00\x03\x12\x04\xe6\x01#$\n9\n\x04\x04\x02\x02\x01\x12\x04\xe8\x01\x04\x1f\x1a+ The slot contains a reported limit event.\n\n\r\n\x05\x04\x02\x02\x01\x06\x12\x04\xe8\x01\x04\x14\n\r\n\x05\x04\x02\x02\x01\x01\x12\x04\xe8\x01\x15\x1a\n\r\n\x05\x04\x02\x02\x01\x03\x12\x04\xe8\x01\x1d\x1e\nW\n\x02\x04\x03\x12\x06\xed\x01\x00\xf9\x01\x01\x1aI Typed resource memory measurement preserving the shared runtime fields.\n\n\x0b\n\x03\x04\x03\x01\x12\x04\xed\x01\x08!\n4\n\x04\x04\x03\x02\x00\x12\x04\xef\x01\x02H\x1a& Original precision and numeric kind.\n\n\r\n\x05\x04\x03\x02\x00\x06\x12\x04\xef\x01\x02\x16\n\r\n\x05\x04\x03\x02\x00\x01\x12\x04\xef\x01\x17\x1c\n\r\n\x05\x04\x03\x02\x00\x03\x12\x04\xef\x01\x1f \n\r\n\x05\x04\x03\x02\x00\x08\x12\x04\xef\x01!G\n\x10\n\x08\x04\x03\x02\x00\x08\x87\t\x19\x12\x04\xef\x01\"F\n@\n\x04\x04\x03\x02\x01\x12\x04\xf1\x01\x02E\x1a2 Original configured unit; not necessarily bytes.\n\n\r\n\x05\x04\x03\x02\x01\x06\x12\x04\xf1\x01\x02\x14\n\r\n\x05\x04\x03\x02\x01\x01\x12\x04\xf1\x01\x15\x19\n\r\n\x05\x04\x03\x02\x01\x03\x12\x04\xf1\x01\x1c\x1d\n\r\n\x05\x04\x03\x02\x01\x08\x12\x04\xf1\x01\x1eD\n\x10\n\x08\x04\x03\x02\x01\x08\x87\t\x19\x12\x04\xf1\x01\x1fC\n/\n\x04\x04\x03\x02\x02\x12\x06\xf3\x01\x02\xf6\x01\x05\x1a\x1f Scope of this specific field.\n\n\r\n\x05\x04\x03\x02\x02\x06\x12\x04\xf3\x01\x02\x12\n\r\n\x05\x04\x03\x02\x02\x01\x12\x04\xf3\x01\x13$\n\r\n\x05\x04\x03\x02\x02\x03\x12\x04\xf3\x01\'(\n\x0f\n\x05\x04\x03\x02\x02\x08\x12\x06\xf3\x01)\xf6\x01\x04\n\x12\n\x08\x04\x03\x02\x02\x08\x87\t\x10\x12\x06\xf3\x01*\xf6\x01\x03\nS\n\x04\x04\x03\x02\x03\x12\x04\xf8\x01\x02(\x1aE Readable process count for this field, if the collector reports it.\n\n\r\n\x05\x04\x03\x02\x03\x04\x12\x04\xf8\x01\x02\n\n\r\n\x05\x04\x03\x02\x03\x05\x12\x04\xf8\x01\x0b\x11\n\r\n\x05\x04\x03\x02\x03\x01\x12\x04\xf8\x01\x12#\n\r\n\x05\x04\x03\x02\x03\x03\x12\x04\xf8\x01&\'\nN\n\x02\x04\x04\x12\x06\xfc\x01\x00\x89\x02\x01\x1a@ Typed memory limit event preserving the shared runtime fields.\n\n\x0b\n\x03\x04\x04\x01\x12\x04\xfc\x01\x08\x18\n;\n\x04\x04\x04\x02\x00\x12\x06\xfe\x01\x02\x81\x02\x05\x1a+ Resource whose limit generated the event.\n\n\r\n\x05\x04\x04\x02\x00\x06\x12\x04\xfe\x01\x02\x17\n\r\n\x05\x04\x04\x02\x00\x01\x12\x04\xfe\x01\x18 \n\r\n\x05\x04\x04\x02\x00\x03\x12\x04\xfe\x01#$\n\x0f\n\x05\x04\x04\x02\x00\x08\x12\x06\xfe\x01%\x81\x02\x04\n\x12\n\x08\x04\x04\x02\x00\x08\x87\t\x10\x12\x06\xfe\x01&\x81\x02\x03\n \n\x04\x04\x04\x02\x01\x12\x06\x83\x02\x02\x86\x02\x05\x1a\x10 OS event kind.\n\n\r\n\x05\x04\x04\x02\x01\x06\x12\x04\x83\x02\x02\x18\n\r\n\x05\x04\x04\x02\x01\x01\x12\x04\x83\x02\x19\x1e\n\r\n\x05\x04\x04\x02\x01\x03\x12\x04\x83\x02!\"\n\x0f\n\x05\x04\x04\x02\x01\x08\x12\x06\x83\x02#\x86\x02\x04\n\x12\n\x08\x04\x04\x02\x01\x08\x87\t\x10\x12\x06\x83\x02$\x86\x02\x03\n4\n\x04\x04\x04\x02\x02\x12\x04\x88\x02\x02&\x1a& Cumulative count or absent coverage.\n\n\r\n\x05\x04\x04\x02\x02\x06\x12\x04\x88\x02\x02\x1b\n\r\n\x05\x04\x04\x02\x02\x01\x12\x04\x88\x02\x1c!\n\r\n\x05\x04\x04\x02\x02\x03\x12\x04\x88\x02$%\nS\n\x02\x04\x05\x12\x06\x8c\x02\x00\xac\x02\x01\x1aE Typed resource memory metrics preserving the shared runtime fields.\n\n\x0b\n\x03\x04\x05\x01\x12\x04\x8c\x02\x08\x1d\nW\n\x04\x04\x05\x02\x00\x12\x04\x8e\x02\x02,\x1aI Original `system_used` resource measurement; absent means not reported.\n\n\r\n\x05\x04\x05\x02\x00\x06\x12\x04\x8e\x02\x02\x1b\n\r\n\x05\x04\x05\x02\x00\x01\x12\x04\x8e\x02\x1c\'\n\r\n\x05\x04\x05\x02\x00\x03\x12\x04\x8e\x02*+\nX\n\x04\x04\x05\x02\x01\x12\x04\x90\x02\x02-\x1aJ Original `system_total` resource measurement; absent means not reported.\n\n\r\n\x05\x04\x05\x02\x01\x06\x12\x04\x90\x02\x02\x1b\n\r\n\x05\x04\x05\x02\x01\x01\x12\x04\x90\x02\x1c(\n\r\n\x05\x04\x05\x02\x01\x03\x12\x04\x90\x02+,\n\\\n\x04\x04\x05\x02\x02\x12\x04\x92\x02\x021\x1aN Original `system_available` resource measurement; absent means not reported.\n\n\r\n\x05\x04\x05\x02\x02\x06\x12\x04\x92\x02\x02\x1b\n\r\n\x05\x04\x05\x02\x02\x01\x12\x04\x92\x02\x1c,\n\r\n\x05\x04\x05\x02\x02\x03\x12\x04\x92\x02/0\nT\n\x04\x04\x05\x02\x03\x12\x04\x94\x02\x02)\x1aF Original `resident` resource measurement; absent means not reported.\n\n\r\n\x05\x04\x05\x02\x03\x06\x12\x04\x94\x02\x02\x1b\n\r\n\x05\x04\x05\x02\x03\x01\x12\x04\x94\x02\x1c$\n\r\n\x05\x04\x05\x02\x03\x03\x12\x04\x94\x02\'(\nS\n\x04\x04\x05\x02\x04\x12\x04\x96\x02\x02(\x1aE Original `private` resource measurement; absent means not reported.\n\n\r\n\x05\x04\x05\x02\x04\x06\x12\x04\x96\x02\x02\x1b\n\r\n\x05\x04\x05\x02\x04\x01\x12\x04\x96\x02\x1c#\n\r\n\x05\x04\x05\x02\x04\x03\x12\x04\x96\x02&\'\n^\n\x04\x04\x05\x02\x05\x12\x04\x98\x02\x023\x1aP Original `physical_footprint` resource measurement; absent means not reported.\n\n\r\n\x05\x04\x05\x02\x05\x06\x12\x04\x98\x02\x02\x1b\n\r\n\x05\x04\x05\x02\x05\x01\x12\x04\x98\x02\x1c.\n\r\n\x05\x04\x05\x02\x05\x03\x12\x04\x98\x0212\nZ\n\x04\x04\x05\x02\x06\x12\x04\x9a\x02\x02/\x1aL Original `virtual_memory` resource measurement; absent means not reported.\n\n\r\n\x05\x04\x05\x02\x06\x06\x12\x04\x9a\x02\x02\x1b\n\r\n\x05\x04\x05\x02\x06\x01\x12\x04\x9a\x02\x1c*\n\r\n\x05\x04\x05\x02\x06\x03\x12\x04\x9a\x02-.\nY\n\x04\x04\x05\x02\x07\x12\x04\x9c\x02\x02.\x1aK Original `peak_resident` resource measurement; absent means not reported.\n\n\r\n\x05\x04\x05\x02\x07\x06\x12\x04\x9c\x02\x02\x1b\n\r\n\x05\x04\x05\x02\x07\x01\x12\x04\x9c\x02\x1c)\n\r\n\x05\x04\x05\x02\x07\x03\x12\x04\x9c\x02,-\nQ\n\x04\x04\x05\x02\x08\x12\x04\x9e\x02\x02&\x1aC Original `limit` resource measurement; absent means not reported.\n\n\r\n\x05\x04\x05\x02\x08\x06\x12\x04\x9e\x02\x02\x1b\n\r\n\x05\x04\x05\x02\x08\x01\x12\x04\x9e\x02\x1c!\n\r\n\x05\x04\x05\x02\x08\x03\x12\x04\x9e\x02$%\na\n\x04\x04\x05\x02\t\x12\x04\xa0\x02\x027\x1aS Original `environment_accounted` resource measurement; absent means not reported.\n\n\r\n\x05\x04\x05\x02\t\x06\x12\x04\xa0\x02\x02\x1b\n\r\n\x05\x04\x05\x02\t\x01\x12\x04\xa0\x02\x1c1\n\r\n\x05\x04\x05\x02\t\x03\x12\x04\xa0\x0246\nd\n\x04\x04\x05\x02\n\x12\x04\xa2\x02\x02:\x1aV Original `some_pressure_stall_time` resource measurement; absent means not reported.\n\n\r\n\x05\x04\x05\x02\n\x06\x12\x04\xa2\x02\x02\x1b\n\r\n\x05\x04\x05\x02\n\x01\x12\x04\xa2\x02\x1c4\n\r\n\x05\x04\x05\x02\n\x03\x12\x04\xa2\x0279\nd\n\x04\x04\x05\x02\x0b\x12\x04\xa4\x02\x02:\x1aV Original `full_pressure_stall_time` resource measurement; absent means not reported.\n\n\r\n\x05\x04\x05\x02\x0b\x06\x12\x04\xa4\x02\x02\x1b\n\r\n\x05\x04\x05\x02\x0b\x01\x12\x04\xa4\x02\x1c4\n\r\n\x05\x04\x05\x02\x0b\x03\x12\x04\xa4\x0279\ne\n\x04\x04\x05\x02\x0c\x12\x04\xa6\x02\x02;\x1aW Original `out_of_memory_event_count` resource measurement; absent means not reported.\n\n\r\n\x05\x04\x05\x02\x0c\x06\x12\x04\xa6\x02\x02\x1b\n\r\n\x05\x04\x05\x02\x0c\x01\x12\x04\xa6\x02\x1c5\n\r\n\x05\x04\x05\x02\x0c\x03\x12\x04\xa6\x028:\na\n\x04\x04\x05\x02\r\x12\x06\xa8\x02\x02\xab\x02\x05\x1aQ Retained limit events; unused slots are null, overcapacity rejects publication.\n\n\r\n\x05\x04\x05\x02\r\x04\x12\x04\xa8\x02\x02\n\n\r\n\x05\x04\x05\x02\r\x06\x12\x04\xa8\x02\x0b\x1f\n\r\n\x05\x04\x05\x02\r\x01\x12\x04\xa8\x02 ,\n\r\n\x05\x04\x05\x02\r\x03\x12\x04\xa8\x02/1\n\x0f\n\x05\x04\x05\x02\r\x08\x12\x06\xa8\x022\xab\x02\x04\n\x12\n\x08\x04\x05\x02\r\x08\x87\t\x12\x12\x06\xa8\x023\xab\x02\x03\nU\n\x02\x04\x06\x12\x06\xaf\x02\x00\xb4\x02\x01\x1aG Typed resource process identity preserving the shared runtime fields.\n\n\x0b\n\x03\x04\x06\x01\x12\x04\xaf\x02\x08\x1f\n&\n\x04\x04\x06\x02\x00\x12\x04\xb1\x02\x02\x18\x1a\x18 OS process identifier.\n\n\r\n\x05\x04\x06\x02\x00\x05\x12\x04\xb1\x02\x02\x08\n\r\n\x05\x04\x06\x02\x00\x01\x12\x04\xb1\x02\t\x13\n\r\n\x05\x04\x06\x02\x00\x03\x12\x04\xb1\x02\x16\x17\n\\\n\x04\x04\x06\x02\x01\x12\x04\xb3\x02\x02\x1c\x1aN Opaque platform start identity; compare only within the same host/collector.\n\n\r\n\x05\x04\x06\x02\x01\x05\x12\x04\xb3\x02\x02\x08\n\r\n\x05\x04\x06\x02\x01\x01\x12\x04\xb3\x02\t\x17\n\r\n\x05\x04\x06\x02\x01\x03\x12\x04\xb3\x02\x1a\x1b\nR\n\x02\x04\x07\x12\x06\xb7\x02\x00\xdd\x02\x01\x1aD Typed resource memory sample preserving the shared runtime fields.\n\n\x0b\n\x03\x04\x07\x01\x12\x04\xb7\x02\x08\x1c\nY\n\x04\x04\x07\x02\x00\x12\x04\xb9\x02\x02M\x1aK Collector incarnation; multiple diagnostic sources may share this sample.\n\n\r\n\x05\x04\x07\x02\x00\x05\x12\x04\xb9\x02\x02\x08\n\r\n\x05\x04\x07\x02\x00\x01\x12\x04\xb9\x02\t\x1e\n\r\n\x05\x04\x07\x02\x00\x03\x12\x04\xb9\x02!\"\n\r\n\x05\x04\x07\x02\x00\x08\x12\x04\xb9\x02#L\n\x11\n\t\x04\x07\x02\x00\x08\x87\t\x0e\x16\x12\x04\xb9\x02$K\n1\n\x04\x04\x07\x02\x01\x12\x04\xbb\x02\x02 \x1a# Active plugin runtime generation.\n\n\r\n\x05\x04\x07\x02\x01\x05\x12\x04\xbb\x02\x02\x08\n\r\n\x05\x04\x07\x02\x01\x01\x12\x04\xbb\x02\t\x1b\n\r\n\x05\x04\x07\x02\x01\x03\x12\x04\xbb\x02\x1e\x1f\n-\n\x04\x04\x07\x02\x02\x12\x04\xbd\x02\x02\x1f\x1a\x1f Collection target generation.\n\n\r\n\x05\x04\x07\x02\x02\x05\x12\x04\xbd\x02\x02\x08\n\r\n\x05\x04\x07\x02\x02\x01\x12\x04\xbd\x02\t\x1a\n\r\n\x05\x04\x07\x02\x02\x03\x12\x04\xbd\x02\x1d\x1e\n7\n\x04\x04\x07\x02\x03\x12\x06\xbf\x02\x02\xc2\x02\x05\x1a\' Independent sampling baseline stream.\n\n\r\n\x05\x04\x07\x02\x03\x06\x12\x04\xbf\x02\x02\x16\n\r\n\x05\x04\x07\x02\x03\x01\x12\x04\xbf\x02\x17\x1d\n\r\n\x05\x04\x07\x02\x03\x03\x12\x04\xbf\x02 !\n\x0f\n\x05\x04\x07\x02\x03\x08\x12\x06\xbf\x02\"\xc2\x02\x04\n\x12\n\x08\x04\x07\x02\x03\x08\x87\t\x10\x12\x06\xbf\x02#\xc2\x02\x03\nB\n\x04\x04\x07\x02\x04\x12\x04\xc4\x02\x02\x15\x1a4 Shared collection-start order across both streams.\n\n\r\n\x05\x04\x07\x02\x04\x05\x12\x04\xc4\x02\x02\x08\n\r\n\x05\x04\x07\x02\x04\x01\x12\x04\xc4\x02\t\x10\n\r\n\x05\x04\x07\x02\x04\x03\x12\x04\xc4\x02\x13\x14\n?\n\x04\x04\x07\x02\x05\x12\x04\xc6\x02\x02R\x1a1 Collection start on the collector\'s wall clock.\n\n\r\n\x05\x04\x07\x02\x05\x06\x12\x04\xc6\x02\x02\x1b\n\r\n\x05\x04\x07\x02\x05\x01\x12\x04\xc6\x02\x1c&\n\r\n\x05\x04\x07\x02\x05\x03\x12\x04\xc6\x02)*\n\r\n\x05\x04\x07\x02\x05\x08\x12\x04\xc6\x02+Q\n\x10\n\x08\x04\x07\x02\x05\x08\x87\t\x19\x12\x04\xc6\x02,P\nD\n\x04\x04\x07\x02\x06\x12\x04\xc8\x02\x02U\x1a6 Collection completion on the collector\'s wall clock.\n\n\r\n\x05\x04\x07\x02\x06\x06\x12\x04\xc8\x02\x02\x1b\n\r\n\x05\x04\x07\x02\x06\x01\x12\x04\xc8\x02\x1c)\n\r\n\x05\x04\x07\x02\x06\x03\x12\x04\xc8\x02,-\n\r\n\x05\x04\x07\x02\x06\x08\x12\x04\xc8\x02.T\n\x10\n\x08\x04\x07\x02\x06\x08\x87\t\x19\x12\x04\xc8\x02/S\n;\n\x04\x04\x07\x02\x07\x12\x04\xca\x02\x02\x1f\x1a- Collection duration measured monotonically.\n\n\r\n\x05\x04\x07\x02\x07\x05\x12\x04\xca\x02\x02\x08\n\r\n\x05\x04\x07\x02\x07\x01\x12\x04\xca\x02\t\x1a\n\r\n\x05\x04\x07\x02\x07\x03\x12\x04\xca\x02\x1d\x1e\n-\n\x04\x04\x07\x02\x08\x12\x06\xcc\x02\x02\xcf\x02\x05\x1a\x1d Collector operating system.\n\n\r\n\x05\x04\x07\x02\x08\x06\x12\x04\xcc\x02\x02\x19\n\r\n\x05\x04\x07\x02\x08\x01\x12\x04\xcc\x02\x1a*\n\r\n\x05\x04\x07\x02\x08\x03\x12\x04\xcc\x02-.\n\x0f\n\x05\x04\x07\x02\x08\x08\x12\x06\xcc\x02/\xcf\x02\x04\n\x12\n\x08\x04\x07\x02\x08\x08\x87\t\x10\x12\x06\xcc\x020\xcf\x02\x03\nY\n\x04\x04\x07\x02\t\x12\x06\xd1\x02\x02\xd4\x02\x05\x1aI Selected measurement boundary, independent of individual system fields.\n\n\r\n\x05\x04\x07\x02\t\x06\x12\x04\xd1\x02\x02\x1a\n\r\n\x05\x04\x07\x02\t\x01\x12\x04\xd1\x02\x1b,\n\r\n\x05\x04\x07\x02\t\x03\x12\x04\xd1\x02/1\n\x0f\n\x05\x04\x07\x02\t\x08\x12\x06\xd1\x022\xd4\x02\x04\n\x12\n\x08\x04\x07\x02\t\x08\x87\t\x10\x12\x06\xd1\x023\xd4\x02\x03\n^\n\x04\x04\x07\x02\n\x12\x04\xd6\x02\x02$\x1aP Root verified during this collection, or absent for system/unverified context.\n\n\r\n\x05\x04\x07\x02\n\x06\x12\x04\xd6\x02\x02\x19\n\r\n\x05\x04\x07\x02\n\x01\x12\x04\xd6\x02\x1a\x1e\n\r\n\x05\x04\x07\x02\n\x03\x12\x04\xd6\x02!#\n@\n\x04\x04\x07\x02\x0b\x12\x04\xd8\x02\x02)\x1a2 Processes visible at sampling start, when known.\n\n\r\n\x05\x04\x07\x02\x0b\x04\x12\x04\xd8\x02\x02\n\n\r\n\x05\x04\x07\x02\x0b\x05\x12\x04\xd8\x02\x0b\x11\n\r\n\x05\x04\x07\x02\x0b\x01\x12\x04\xd8\x02\x12#\n\r\n\x05\x04\x07\x02\x0b\x03\x12\x04\xd8\x02&(\nF\n\x04\x04\x07\x02\x0c\x12\x04\xda\x02\x02)\x1a8 Successfully sampled base process queries, when known.\n\n\r\n\x05\x04\x07\x02\x0c\x04\x12\x04\xda\x02\x02\n\n\r\n\x05\x04\x07\x02\x0c\x05\x12\x04\xda\x02\x0b\x11\n\r\n\x05\x04\x07\x02\x0c\x01\x12\x04\xda\x02\x12#\n\r\n\x05\x04\x07\x02\x0c\x03\x12\x04\xda\x02&(\nV\n\x04\x04\x07\x02\r\x12\x04\xdc\x02\x02K\x1aH Memory-only values; existing resource APIs retain their serialization.\n\n\r\n\x05\x04\x07\x02\r\x06\x12\x04\xdc\x02\x02\x17\n\r\n\x05\x04\x07\x02\r\x01\x12\x04\xdc\x02\x18\x1e\n\r\n\x05\x04\x07\x02\r\x03\x12\x04\xdc\x02!#\n\r\n\x05\x04\x07\x02\r\x08\x12\x04\xdc\x02$J\n\x10\n\x08\x04\x07\x02\r\x08\x87\t\x19\x12\x04\xdc\x02%I\nP\n\x02\x04\x08\x12\x06\xe0\x02\x00\xf3\x02\x01\x1aB Typed resource memory view preserving the shared runtime fields.\n\n\x0b\n\x03\x04\x08\x01\x12\x04\xe0\x02\x08\x1a\n\\\n\x04\x04\x08\x02\x00\x12\x06\xe2\x02\x02\xe5\x02\x05\x1aL Latest attempt availability; prior valid samples may remain after failure.\n\n\r\n\x05\x04\x08\x02\x00\x06\x12\x04\xe2\x02\x02\x1c\n\r\n\x05\x04\x08\x02\x00\x01\x12\x04\xe2\x02\x1d)\n\r\n\x05\x04\x08\x02\x00\x03\x12\x04\xe2\x02,-\n\x0f\n\x05\x04\x08\x02\x00\x08\x12\x06\xe2\x02.\xe5\x02\x04\n\x12\n\x08\x04\x08\x02\x00\x08\x87\t\x10\x12\x06\xe2\x02/\xe5\x02\x03\nM\n\x04\x04\x08\x02\x01\x12\x04\xe7\x02\x02\"\x1a? Exact sample used for this page; may differ on the next page.\n\n\r\n\x05\x04\x08\x02\x01\x06\x12\x04\xe7\x02\x02\x16\n\r\n\x05\x04\x08\x02\x01\x01\x12\x04\xe7\x02\x17\x1d\n\r\n\x05\x04\x08\x02\x01\x03\x12\x04\xe7\x02 !\n]\n\x04\x04\x08\x02\x02\x12\x06\xe9\x02\x02\xec\x02\x05\x1aM Relation to the diagnostic source, verified without retargeting collection.\n\n\r\n\x05\x04\x08\x02\x02\x06\x12\x04\xe9\x02\x02\x15\n\r\n\x05\x04\x08\x02\x02\x01\x12\x04\xe9\x02\x16!\n\r\n\x05\x04\x08\x02\x02\x03\x12\x04\xe9\x02$%\n\x0f\n\x05\x04\x08\x02\x02\x08\x12\x06\xe9\x02&\xec\x02\x04\n\x12\n\x08\x04\x08\x02\x02\x08\x87\t\x10\x12\x06\xe9\x02\'\xec\x02\x03\nZ\n\x04\x04\x08\x02\x03\x12\x04\xee\x02\x02!\x1aL Local monotonic age since completion, not a remote wall-clock subtraction.\n\n\r\n\x05\x04\x08\x02\x03\x04\x12\x04\xee\x02\x02\n\n\r\n\x05\x04\x08\x02\x03\x05\x12\x04\xee\x02\x0b\x11\n\r\n\x05\x04\x08\x02\x03\x01\x12\x04\xee\x02\x12\x1c\n\r\n\x05\x04\x08\x02\x03\x03\x12\x04\xee\x02\x1f \nQ\n\x04\x04\x08\x02\x04\x12\x04\xf0\x02\x02\x11\x1aC Age exceeds the resource plugin\'s configured freshness threshold.\n\n\r\n\x05\x04\x08\x02\x04\x05\x12\x04\xf0\x02\x02\x06\n\r\n\x05\x04\x08\x02\x04\x01\x12\x04\xf0\x02\x07\x0c\n\r\n\x05\x04\x08\x02\x04\x03\x12\x04\xf0\x02\x0f\x10\ni\n\x04\x04\x08\x02\x05\x12\x04\xf2\x02\x02#\x1a[ Compiled latest-cache slot size, outside core reservation and excluding temporary copies.\n\n\r\n\x05\x04\x08\x02\x05\x05\x12\x04\xf2\x02\x02\x08\n\r\n\x05\x04\x08\x02\x05\x01\x12\x04\xf2\x02\t\x1e\n\r\n\x05\x04\x08\x02\x05\x03\x12\x04\xf2\x02!\"b\x06proto3\n\xe0\xec\x02\n-nvidia/nemo/relay/worker/v1/diagnostics.proto\x12\x1bnvidia.nemo.relay.worker.v1\x1a\x1bbuf/validate/validate.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a(nvidia/nemo/relay/worker/v1/common.proto\"\xb8\x08\n\x16DiagnosticCapabilities\x12Q\n\x08protocol\x18\x01 \x01(\x0b2-.nvidia.nemo.relay.worker.v1.ProtocolIdentityB\x06\xbaH\x03\xc8\x01\x01R\x08protocol\x12H\n\x19snapshot_contract_version\x18\x02 \x01(\tB\x0c\xbaH\tr\x07\n\x051.0.0R\x17snapshotContractVersion\x12+\n\x11catalogue_version\x18\x03 \x01(\rR\x10catalogueVersion\x12\x18\n\x07enabled\x18\x04 \x01(\x08R\x07enabled\x12(\n\x10can_read_context\x18\x05 \x01(\x08R\x0ecanReadContext\x120\n\x0emax_components\x18\x06 \x01(\rB\t\xbaH\x06*\x04\x18\x08(\x01R\rmaxComponents\x120\n\x0emax_extensions\x18\x07 \x01(\rB\t\xbaH\x06*\x04\x18\x10(\x00R\rmaxExtensions\x129\n\x12max_metadata_bytes\x18\x08 \x01(\rB\x0b\xbaH\x08*\x06\x18\x80\x80\x01(\x00R\x10maxMetadataBytes\x128\n\x11max_request_bytes\x18\t \x01(\rB\x0c\xbaH\t*\x07\x18\x80\x80\x01(\x82\x02R\x0fmaxRequestBytes\x125\n\x10max_detail_bytes\x18\n \x01(\rB\x0b\xbaH\x08*\x06\x18\x80\x80\x01(\x00R\x0emaxDetailBytes\x12?\n\x15max_correlation_bytes\x18\x0b \x01(\rB\x0b\xbaH\x08*\x06\x18\x80\x80\x01(\x00R\x13maxCorrelationBytes\x12:\n\x12max_response_bytes\x18\x0c \x01(\rB\x0c\xbaH\t*\x07\x18\x80\x80\x08(\x80\x02R\x10maxResponseBytes\x12A\n\x17max_pending_submissions\x18\r \x01(\rB\t\xbaH\x06*\x04\x18 (\x01R\x15maxPendingSubmissions\x120\n\x0eretry_attempts\x18\x0e \x01(\rB\t\xbaH\x06*\x04\x18\x08(\x01R\rretryAttempts\x12d\n\x16retry_timeout_duration\x18\x0f \x01(\x0b2\x19.google.protobuf.DurationB\x13\xbaH\x10\xaa\x01\n\"\x02\x08\n2\x04\x10\xc0\x84=\xc8\x01\x01R\x14retryTimeoutDuration\x12L\n\x1bprovenance_contract_version\x18\x10 \x01(\tB\x0c\xbaH\tr\x07\n\x051.0.0R\x19provenanceContractVersion\x12,\n\x12can_read_discovery\x18\x11 \x01(\x08R\x10canReadDiscovery\x12,\n\x12can_inspect_memory\x18\x12 \x01(\x08R\x10canInspectMemory\"\x81\x02\n\x1dDiagnosticExtensionDefinition\x12\x1d\n\x04name\x18\x01 \x01(\tB\t\xbaH\x06r\x04\x10\x01( R\x04name\x12*\n\x0bdescription\x18\x02 \x01(\tB\x08\xbaH\x05r\x03(\x80\x02R\x0bdescription\x12]\n\x07outcome\x18\x03 \x01(\x0e29.nvidia.nemo.relay.worker.v1.DiagnosticObservationOutcomeB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x07outcome\x126\n\x17allowed_failure_classes\x18\x04 \x03(\tR\x15allowedFailureClasses\"\xb0\x01\n\x18DiagnosticCodeDefinition\x12#\n\x0cbuiltin_name\x18\x01 \x01(\tH\x00R\x0bbuiltinName\x12Z\n\textension\x18\x02 \x01(\x0b2:.nvidia.nemo.relay.worker.v1.DiagnosticExtensionDefinitionH\x00R\textensionB\x13\n\ndefinition\x12\x05\xbaH\x02\x08\x01\"\x96\x01\n\x1fDiagnosticComponentRegistration\x12&\n\nlocal_name\x18\x01 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\tlocalName\x12K\n\x05codes\x18\x02 \x03(\x0b25.nvidia.nemo.relay.worker.v1.DiagnosticCodeDefinitionR\x05codes\"\xe7\x04\n\x15DiagnosticObservation\x12%\n\tcomponent\x18\x01 \x01(\rB\x07\xbaH\x04*\x02 \x00R\tcomponent\x12\x1b\n\x04code\x18\x02 \x01(\rB\x07\xbaH\x04*\x02 \x00R\x04code\x12(\n\rfailure_class\x18\x03 \x01(\tH\x00R\x0cfailureClass\x88\x01\x01\x12]\n\x07outcome\x18\x04 \x01(\x0e29.nvidia.nemo.relay.worker.v1.DiagnosticObservationOutcomeB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x07outcome\x12b\n\x08severity\x18\x05 \x01(\x0e2:.nvidia.nemo.relay.worker.v1.DiagnosticObservationSeverityB\n\xbaH\x07\x82\x01\x04\x10\x01 \x00R\x08severity\x12\x1d\n\x05count\x18\x06 \x01(\x04B\x07\xbaH\x042\x02 \x00R\x05count\x12=\n\x0cobserve_time\x18\x07 \x01(\x0b2\x1a.google.protobuf.TimestampR\x0bobserveTime\x12&\n\x06detail\x18\x08 \x01(\tB\t\xbaH\x06r\x04(\x80\x80\x01H\x01R\x06detail\x88\x01\x01\x12-\n\nsession_id\x18\t \x01(\tB\t\xbaH\x06r\x04(\x80\x80\x01H\x02R\tsessionId\x88\x01\x01\x12-\n\nrequest_id\x18\n \x01(\tB\t\xbaH\x06r\x04(\x80\x80\x01H\x03R\trequestId\x88\x01\x01B\x10\n\x0e_failure_classB\t\n\x07_detailB\r\n\x0b_session_idB\r\n\x0b_request_id\"8\n\x18DiagnosticComponentClose\x12\x1c\n\tcomponent\x18\x01 \x01(\rR\tcomponent\"\xbf\x05\n\x11DiagnosticReceipt\x12/\n\x13submission_sequence\x18\x01 \x01(\x04R\x12submissionSequence\x12X\n\x06status\x18\x02 \x01(\x0e24.nvidia.nemo.relay.worker.v1.DiagnosticReceiptStatusB\n\xbaH\x07\x82\x01\x04\x10\x01 \x00R\x06status\x12#\n\rhost_sequence\x18\x03 \x01(\x04R\x0chostSequence\x12^\n\x08evidence\x18\x04 \x01(\x0e28.nvidia.nemo.relay.worker.v1.DiagnosticEvidenceRetentionB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x08evidence\x12\x1c\n\tcomponent\x18\x05 \x01(\rR\tcomponent\x12\x1d\n\ncode_count\x18\x06 \x01(\rR\tcodeCount\x12\x16\n\x06reason\x18\x07 \x01(\tR\x06reason:\xc4\x02\xbaH\xc0\x02\x1a\xa2\x01\n\x1fdiagnostic_receipt.registration\x12>registered components require a positive handle and code count\x1a?this.status != 4 || (this.component > 0 && this.code_count > 0)\x1a\x98\x01\n\x1bdiagnostic_receipt.evidence\x12Mevidence retention must be specified exactly when an observation was recorded\x1a*(this.status == 1) == (this.evidence != 0)\"\xc6\x05\n\x12DiagnosticSnapshot\x12%\n\x0eschema_version\x18\x01 \x01(\rR\rschemaVersion\x12+\n\x11catalogue_version\x18\x02 \x01(\rR\x10catalogueVersion\x12U\n\x06source\x18\x03 \x01(\x0b25.nvidia.nemo.relay.worker.v1.DiagnosticSourceIdentityB\x06\xbaH\x03\xc8\x01\x01R\x06source\x12E\n\x0ccapture_time\x18\x04 \x01(\x0b2\x1a.google.protobuf.TimestampB\x06\xbaH\x03\xc8\x01\x01R\x0bcaptureTime\x12\x1a\n\x08sequence\x18\x05 \x01(\x04R\x08sequence\x12Z\n\x08lifetime\x18\x06 \x01(\x0b26.nvidia.nemo.relay.worker.v1.DiagnosticLifetimeSummaryB\x06\xbaH\x03\xc8\x01\x01R\x08lifetime\x12X\n\ncomponents\x18\x07 \x03(\x0b28.nvidia.nemo.relay.worker.v1.DiagnosticComponentSnapshotR\ncomponents\x12D\n\x06events\x18\x08 \x03(\x0b2,.nvidia.nemo.relay.worker.v1.DiagnosticEventR\x06events\x12S\n\x08coverage\x18\t \x01(\x0b2/.nvidia.nemo.relay.worker.v1.DiagnosticCoverageB\x06\xbaH\x03\xc8\x01\x01R\x08coverage\x12Q\n\x0ccontinuation\x18\n \x01(\x0b2-.nvidia.nemo.relay.worker.v1.DiagnosticCursorR\x0ccontinuation\"\xc0\x01\n\x18DiagnosticSourceIdentity\x12)\n\x0binstance_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\ninstanceId\x12\"\n\nprocess_id\x18\x02 \x01(\rH\x00R\tprocessId\x88\x01\x01\x12!\n\x0cprocess_role\x18\x03 \x01(\tR\x0bprocessRole\x12#\n\rrelay_version\x18\x04 \x01(\tR\x0crelayVersionB\r\n\x0b_process_id\"z\n\x1bDiagnosticComponentIdentity\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12)\n\x0binstance_id\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\ninstanceId\x12\x1e\n\ngeneration\x18\x03 \x01(\x04R\ngeneration\"\xd7\x02\n\x1cDiagnosticComponentOwnership\x12C\n\x16subscriber_instance_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x14subscriberInstanceId\x88\x01\x01\x12;\n\x12plugin_instance_id\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x01R\x10pluginInstanceId\x88\x01\x01\x12.\n\x10configuration_id\x18\x03 \x01(\tH\x02R\x0fconfigurationId\x88\x01\x01\x12+\n\x0eresponsibility\x18\x04 \x01(\tH\x03R\x0eresponsibility\x88\x01\x01B\x19\n\x17_subscriber_instance_idB\x15\n\x13_plugin_instance_idB\x13\n\x11_configuration_idB\x11\n\x0f_responsibility\"\xa2\x01\n\x10DiagnosticOrigin\x12-\n\x12refresh_generation\x18\x01 \x01(\x04R\x11refreshGeneration\x12_\n\townership\x18\x02 \x01(\x0b29.nvidia.nemo.relay.worker.v1.DiagnosticComponentOwnershipB\x06\xbaH\x03\xc8\x01\x01R\townership\"\x8f\x01\n\x18DiagnosticClassification\x12.\n\x0ecanonical_code\x18\x01 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\rcanonicalCode\x121\n\rfailure_class\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01H\x00R\x0cfailureClass\x88\x01\x01B\x10\n\x0e_failure_class\"o\n\x17DiagnosticPluginContext\x12!\n\texecution\x18\x01 \x01(\tH\x00R\texecution\x88\x01\x01\x12\x19\n\x05phase\x18\x02 \x01(\tH\x01R\x05phase\x88\x01\x01B\x0c\n\n_executionB\x08\n\x06_phase\"J\n\x10DiagnosticDetail\x12\x18\n\x07message\x18\x01 \x01(\tR\x07message\x12\x1c\n\ttruncated\x18\x02 \x01(\x08R\ttruncated\"}\n\x15DiagnosticCorrelation\x12\"\n\nsession_id\x18\x01 \x01(\tH\x00R\tsessionId\x88\x01\x01\x12\"\n\nrequest_id\x18\x02 \x01(\tH\x01R\trequestId\x88\x01\x01B\r\n\x0b_session_idB\r\n\x0b_request_id\"\x88\x03\n\x16RemoteDiagnosticOrigin\x126\n\x12source_instance_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x10sourceInstanceId\x12>\n\x16activation_instance_id\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x14activationInstanceId\x128\n\x13submission_sequence\x18\x03 \x01(\x04B\x07\xbaH\x042\x02 \x00R\x12submissionSequence\x12=\n\x0cobserve_time\x18\x04 \x01(\x0b2\x1a.google.protobuf.TimestampR\x0bobserveTime\x12E\n\x0creceive_time\x18\x05 \x01(\x0b2\x1a.google.protobuf.TimestampB\x06\xbaH\x03\xc8\x01\x01R\x0breceiveTime\x126\n\x17accepted_elapsed_millis\x18\x06 \x01(\x04R\x15acceptedElapsedMillis\"\xad\x07\n\x0fDiagnosticEvent\x12\x1a\n\x08sequence\x18\x01 \x01(\x04R\x08sequence\x12E\n\x0cobserve_time\x18\x02 \x01(\x0b2\x1a.google.protobuf.TimestampB\x06\xbaH\x03\xc8\x01\x01R\x0bobserveTime\x12^\n\tcomponent\x18\x03 \x01(\x0b28.nvidia.nemo.relay.worker.v1.DiagnosticComponentIdentityB\x06\xbaH\x03\xc8\x01\x01R\tcomponent\x12M\n\x06origin\x18\x04 \x01(\x0b2-.nvidia.nemo.relay.worker.v1.DiagnosticOriginB\x06\xbaH\x03\xc8\x01\x01R\x06origin\x12K\n\x06remote\x18\x05 \x01(\x0b23.nvidia.nemo.relay.worker.v1.RemoteDiagnosticOriginR\x06remote\x12e\n\x0eclassification\x18\x06 \x01(\x0b25.nvidia.nemo.relay.worker.v1.DiagnosticClassificationB\x06\xbaH\x03\xc8\x01\x01R\x0eclassification\x12V\n\x07context\x18\x07 \x01(\x0b24.nvidia.nemo.relay.worker.v1.DiagnosticPluginContextB\x06\xbaH\x03\xc8\x01\x01R\x07context\x12b\n\x08severity\x18\x08 \x01(\x0e2:.nvidia.nemo.relay.worker.v1.DiagnosticObservationSeverityB\n\xbaH\x07\x82\x01\x04\x10\x01 \x00R\x08severity\x12]\n\x07outcome\x18\t \x01(\x0e29.nvidia.nemo.relay.worker.v1.DiagnosticObservationOutcomeB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x07outcome\x12E\n\x06detail\x18\n \x01(\x0b2-.nvidia.nemo.relay.worker.v1.DiagnosticDetailR\x06detail\x12\x14\n\x05count\x18\x0b \x01(\x04R\x05count\x12\\\n\x0bcorrelation\x18\x0c \x01(\x0b22.nvidia.nemo.relay.worker.v1.DiagnosticCorrelationB\x06\xbaH\x03\xc8\x01\x01R\x0bcorrelation\"E\n\x0fDiagnosticCount\x12\x14\n\x05value\x18\x01 \x01(\x04R\x05value\x12\x1c\n\tsaturated\x18\x02 \x01(\x08R\tsaturated\"\xec\x04\n\x10DiagnosticTotals\x12h\n\x15recorded_events_total\x18\x01 \x01(\x0b2,.nvidia.nemo.relay.worker.v1.DiagnosticCountB\x06\xbaH\x03\xc8\x01\x01R\x13recordedEventsTotal\x12a\n\x11occurrences_total\x18\x02 \x01(\x0b2,.nvidia.nemo.relay.worker.v1.DiagnosticCountB\x06\xbaH\x03\xc8\x01\x01R\x10occurrencesTotal\x12l\n\x17history_evictions_total\x18\x03 \x01(\x0b2,.nvidia.nemo.relay.worker.v1.DiagnosticCountB\x06\xbaH\x03\xc8\x01\x01R\x15historyEvictionsTotal\x12]\n\x0fsuccesses_total\x18\x04 \x01(\x0b2,.nvidia.nemo.relay.worker.v1.DiagnosticCountB\x06\xbaH\x03\xc8\x01\x01R\x0esuccessesTotal\x12[\n\x0efailures_total\x18\x05 \x01(\x0b2,.nvidia.nemo.relay.worker.v1.DiagnosticCountB\x06\xbaH\x03\xc8\x01\x01R\rfailuresTotal\x12a\n\x11unspecified_total\x18\x06 \x01(\x0b2,.nvidia.nemo.relay.worker.v1.DiagnosticCountB\x06\xbaH\x03\xc8\x01\x01R\x10unspecifiedTotal\"\xb7\x02\n\x19DiagnosticLifetimeSummary\x12M\n\x06totals\x18\x01 \x01(\x0b2-.nvidia.nemo.relay.worker.v1.DiagnosticTotalsB\x06\xbaH\x03\xc8\x01\x01R\x06totals\x12%\n\x0eelapsed_millis\x18\x02 \x01(\x04R\relapsedMillis\x12F\n\x11last_failure_time\x18\x03 \x01(\x0b2\x1a.google.protobuf.TimestampR\x0flastFailureTime\x12>\n\x19since_last_failure_millis\x18\x04 \x01(\x04H\x00R\x16sinceLastFailureMillis\x88\x01\x01B\x1c\n\x1a_since_last_failure_millis\"\xd4\x02\n\x18DiagnosticRefreshSummary\x12\x1e\n\ngeneration\x18\x01 \x01(\x04R\ngeneration\x12A\n\nstart_time\x18\x02 \x01(\x0b2\x1a.google.protobuf.TimestampB\x06\xbaH\x03\xc8\x01\x01R\tstartTime\x12%\n\x0eelapsed_millis\x18\x03 \x01(\x04R\relapsedMillis\x12_\n\townership\x18\x04 \x01(\x0b29.nvidia.nemo.relay.worker.v1.DiagnosticComponentOwnershipB\x06\xbaH\x03\xc8\x01\x01R\townership\x12M\n\x06totals\x18\x05 \x01(\x0b2-.nvidia.nemo.relay.worker.v1.DiagnosticTotalsB\x06\xbaH\x03\xc8\x01\x01R\x06totals\"\xcf\x01\n\x11DiagnosticCounter\x12\x12\n\x04code\x18\x01 \x01(\tR\x04code\x12V\n\x0boccurrences\x18\x02 \x01(\x0b2,.nvidia.nemo.relay.worker.v1.DiagnosticCountB\x06\xbaH\x03\xc8\x01\x01R\x0boccurrences\x12N\n\x11last_observe_time\x18\x03 \x01(\x0b2\x1a.google.protobuf.TimestampB\x06\xbaH\x03\xc8\x01\x01R\x0flastObserveTime\"\xf6\x02\n\x16DiagnosticWindowBucket\x120\n\x14start_elapsed_millis\x18\x01 \x01(\x04R\x12startElapsedMillis\x12,\n\x12end_elapsed_millis\x18\x02 \x01(\x04R\x10endElapsedMillis\x12R\n\tsuccesses\x18\x03 \x01(\x0b2,.nvidia.nemo.relay.worker.v1.DiagnosticCountB\x06\xbaH\x03\xc8\x01\x01R\tsuccesses\x12P\n\x08failures\x18\x04 \x01(\x0b2,.nvidia.nemo.relay.worker.v1.DiagnosticCountB\x06\xbaH\x03\xc8\x01\x01R\x08failures\x12V\n\x0bunspecified\x18\x05 \x01(\x0b2,.nvidia.nemo.relay.worker.v1.DiagnosticCountB\x06\xbaH\x03\xc8\x01\x01R\x0bunspecified\"\xc5\x02\n\x18DiagnosticWindowCoverage\x12c\n\x0cavailability\x18\x01 \x01(\x0e23.nvidia.nemo.relay.worker.v1.DiagnosticAvailabilityB\n\xbaH\x07\x82\x01\x04\x10\x01 \x00R\x0cavailability\x120\n\x14start_elapsed_millis\x18\x02 \x01(\x04R\x12startElapsedMillis\x12,\n\x12end_elapsed_millis\x18\x03 \x01(\x04R\x10endElapsedMillis\x12#\n\rpartial_start\x18\x04 \x01(\x08R\x0cpartialStart\x12\x1f\n\x0bpartial_end\x18\x05 \x01(\x08R\npartialEnd\x12\x1e\n\nincomplete\x18\x06 \x01(\x08R\nincomplete\"\x92\x02\n\x10DiagnosticWindow\x12+\n\x11resolution_millis\x18\x01 \x01(\x04R\x10resolutionMillis\x12\'\n\x0fbucket_capacity\x18\x02 \x01(\rR\x0ebucketCapacity\x12M\n\x07buckets\x18\x03 \x03(\x0b23.nvidia.nemo.relay.worker.v1.DiagnosticWindowBucketR\x07buckets\x12Y\n\x08coverage\x18\x04 \x01(\x0b25.nvidia.nemo.relay.worker.v1.DiagnosticWindowCoverageB\x06\xbaH\x03\xc8\x01\x01R\x08coverage\"\xd4\x04\n\x1bDiagnosticComponentSnapshot\x12\\\n\x08identity\x18\x01 \x01(\x0b28.nvidia.nemo.relay.worker.v1.DiagnosticComponentIdentityB\x06\xbaH\x03\xc8\x01\x01R\x08identity\x12G\n\rregister_time\x18\x02 \x01(\x0b2\x1a.google.protobuf.TimestampB\x06\xbaH\x03\xc8\x01\x01R\x0cregisterTime\x129\n\nclose_time\x18\x03 \x01(\x0b2\x1a.google.protobuf.TimestampR\tcloseTime\x12Z\n\x08lifetime\x18\x04 \x01(\x0b26.nvidia.nemo.relay.worker.v1.DiagnosticLifetimeSummaryB\x06\xbaH\x03\xc8\x01\x01R\x08lifetime\x12b\n\rsince_refresh\x18\x05 \x01(\x0b25.nvidia.nemo.relay.worker.v1.DiagnosticRefreshSummaryB\x06\xbaH\x03\xc8\x01\x01R\x0csinceRefresh\x12J\n\x08counters\x18\x06 \x03(\x0b2..nvidia.nemo.relay.worker.v1.DiagnosticCounterR\x08counters\x12G\n\x07windows\x18\x07 \x03(\x0b2-.nvidia.nemo.relay.worker.v1.DiagnosticWindowR\x07windows\"\xbe\x02\n\x13DiagnosticRetention\x127\n\x15oldest_event_sequence\x18\x01 \x01(\x04H\x00R\x13oldestEventSequence\x88\x01\x01\x127\n\x15latest_event_sequence\x18\x02 \x01(\x04H\x01R\x13latestEventSequence\x88\x01\x01\x12\'\n\x0fevents_retained\x18\x03 \x01(\x04R\x0eeventsRetained\x12/\n\x13components_retained\x18\x04 \x01(\x04R\x12componentsRetained\x12\'\n\x0fquery_truncated\x18\x05 \x01(\x08R\x0equeryTruncatedB\x18\n\x16_oldest_event_sequenceB\x18\n\x16_latest_event_sequence\"\xf4\x0e\n\x0eDiagnosticLoss\x12[\n\x0eevents_evicted\x18\x01 \x01(\x0b2,.nvidia.nemo.relay.worker.v1.DiagnosticCountB\x06\xbaH\x03\xc8\x01\x01R\reventsEvicted\x12[\n\x0eevents_omitted\x18\x02 \x01(\x0b2,.nvidia.nemo.relay.worker.v1.DiagnosticCountB\x06\xbaH\x03\xc8\x01\x01R\reventsOmitted\x12c\n\x12components_evicted\x18\x03 \x01(\x0b2,.nvidia.nemo.relay.worker.v1.DiagnosticCountB\x06\xbaH\x03\xc8\x01\x01R\x11componentsEvicted\x12e\n\x13components_rejected\x18\x04 \x01(\x0b2,.nvidia.nemo.relay.worker.v1.DiagnosticCountB\x06\xbaH\x03\xc8\x01\x01R\x12componentsRejected\x12Y\n\rkeys_rejected\x18\x05 \x01(\x0b2,.nvidia.nemo.relay.worker.v1.DiagnosticCountB\x06\xbaH\x03\xc8\x01\x01R\x0ckeysRejected\x12i\n\x15observations_rejected\x18\x06 \x01(\x0b2,.nvidia.nemo.relay.worker.v1.DiagnosticCountB\x06\xbaH\x03\xc8\x01\x01R\x14observationsRejected\x12c\n\x12messages_truncated\x18\x07 \x01(\x0b2,.nvidia.nemo.relay.worker.v1.DiagnosticCountB\x06\xbaH\x03\xc8\x01\x01R\x11messagesTruncated\x12]\n\x0fdetails_omitted\x18\x08 \x01(\x0b2,.nvidia.nemo.relay.worker.v1.DiagnosticCountB\x06\xbaH\x03\xc8\x01\x01R\x0edetailsOmitted\x12k\n\x16correlations_truncated\x18\t \x01(\x0b2,.nvidia.nemo.relay.worker.v1.DiagnosticCountB\x06\xbaH\x03\xc8\x01\x01R\x15correlationsTruncated\x12g\n\x14correlations_omitted\x18\n \x01(\x0b2,.nvidia.nemo.relay.worker.v1.DiagnosticCountB\x06\xbaH\x03\xc8\x01\x01R\x13correlationsOmitted\x12a\n\x11metadata_rejected\x18\x0b \x01(\x0b2,.nvidia.nemo.relay.worker.v1.DiagnosticCountB\x06\xbaH\x03\xc8\x01\x01R\x10metadataRejected\x12s\n\x1aclassifications_overflowed\x18\x0c \x01(\x0b2,.nvidia.nemo.relay.worker.v1.DiagnosticCountB\x06\xbaH\x03\xc8\x01\x01R\x19classificationsOverflowed\x12_\n\x10windows_rejected\x18\r \x01(\x0b2,.nvidia.nemo.relay.worker.v1.DiagnosticCountB\x06\xbaH\x03\xc8\x01\x01R\x0fwindowsRejected\x12_\n\x10queries_rejected\x18\x0e \x01(\x0b2,.nvidia.nemo.relay.worker.v1.DiagnosticCountB\x06\xbaH\x03\xc8\x01\x01R\x0fqueriesRejected\x12c\n\x12stale_observations\x18\x0f \x01(\x0b2,.nvidia.nemo.relay.worker.v1.DiagnosticCountB\x06\xbaH\x03\xc8\x01\x01R\x11staleObservations\x12x\n\x1dprojection_deliveries_omitted\x18\x10 \x01(\x0b2,.nvidia.nemo.relay.worker.v1.DiagnosticCountB\x06\xbaH\x03\xc8\x01\x01R\x1bprojectionDeliveriesOmitted\x12g\n\x14projections_panicked\x18\x11 \x01(\x0b2,.nvidia.nemo.relay.worker.v1.DiagnosticCountB\x06\xbaH\x03\xc8\x01\x01R\x13projectionsPanicked\x12k\n\x16projections_suppressed\x18\x12 \x01(\x0b2,.nvidia.nemo.relay.worker.v1.DiagnosticCountB\x06\xbaH\x03\xc8\x01\x01R\x15projectionsSuppressed\x12-\n\x12sequence_saturated\x18\x13 \x01(\x08R\x11sequenceSaturated\"\xb7\x01\n\x14DiagnosticCapability\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12c\n\x0cavailability\x18\x02 \x01(\x0e23.nvidia.nemo.relay.worker.v1.DiagnosticAvailabilityB\n\xbaH\x07\x82\x01\x04\x10\x01 \x00R\x0cavailability\x12\x1b\n\x06reason\x18\x03 \x01(\tH\x00R\x06reason\x88\x01\x01B\t\n\x07_reason\"\xd7\x03\n\x12DiagnosticCoverage\x12c\n\x0cavailability\x18\x01 \x01(\x0e23.nvidia.nemo.relay.worker.v1.DiagnosticAvailabilityB\n\xbaH\x07\x82\x01\x04\x10\x01 \x00R\x0cavailability\x12d\n\rsummary_scope\x18\x02 \x01(\x0e23.nvidia.nemo.relay.worker.v1.DiagnosticSummaryScopeB\n\xbaH\x07\x82\x01\x04\x10\x01 \x00R\x0csummaryScope\x12V\n\tretention\x18\x03 \x01(\x0b20.nvidia.nemo.relay.worker.v1.DiagnosticRetentionB\x06\xbaH\x03\xc8\x01\x01R\tretention\x12G\n\x04loss\x18\x04 \x01(\x0b2+.nvidia.nemo.relay.worker.v1.DiagnosticLossB\x06\xbaH\x03\xc8\x01\x01R\x04loss\x12U\n\x0ccapabilities\x18\x05 \x03(\x0b21.nvidia.nemo.relay.worker.v1.DiagnosticCapabilityR\x0ccapabilities\"\xca\x01\n\x10DiagnosticCursor\x126\n\x12source_instance_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x10sourceInstanceId\x12\x1a\n\x08sequence\x18\x02 \x01(\x04R\x08sequence\x12)\n\x10component_offset\x18\x03 \x01(\x04R\x0fcomponentOffset\x12!\n\x0cevent_offset\x18\x04 \x01(\x04R\x0beventOffset\x12\x14\n\x05scope\x18\x05 \x01(\x04R\x05scope*\xa6\x01\n\x1cDiagnosticObservationOutcome\x12.\n*DIAGNOSTIC_OBSERVATION_OUTCOME_UNSPECIFIED\x10\x00\x12*\n&DIAGNOSTIC_OBSERVATION_OUTCOME_SUCCESS\x10\x01\x12*\n&DIAGNOSTIC_OBSERVATION_OUTCOME_FAILURE\x10\x02*\xa8\x02\n\x1dDiagnosticObservationSeverity\x12/\n+DIAGNOSTIC_OBSERVATION_SEVERITY_UNSPECIFIED\x10\x00\x12)\n%DIAGNOSTIC_OBSERVATION_SEVERITY_TRACE\x10\x01\x12)\n%DIAGNOSTIC_OBSERVATION_SEVERITY_DEBUG\x10\x02\x12(\n$DIAGNOSTIC_OBSERVATION_SEVERITY_INFO\x10\x03\x12+\n\'DIAGNOSTIC_OBSERVATION_SEVERITY_WARNING\x10\x04\x12)\n%DIAGNOSTIC_OBSERVATION_SEVERITY_ERROR\x10\x05*\x8c\x02\n\x17DiagnosticReceiptStatus\x12)\n%DIAGNOSTIC_RECEIPT_STATUS_UNSPECIFIED\x10\x00\x12&\n\"DIAGNOSTIC_RECEIPT_STATUS_RECORDED\x10\x01\x12&\n\"DIAGNOSTIC_RECEIPT_STATUS_DISABLED\x10\x02\x12&\n\"DIAGNOSTIC_RECEIPT_STATUS_REJECTED\x10\x03\x12(\n$DIAGNOSTIC_RECEIPT_STATUS_REGISTERED\x10\x04\x12$\n DIAGNOSTIC_RECEIPT_STATUS_CLOSED\x10\x05*\xd0\x01\n\x1bDiagnosticEvidenceRetention\x12-\n)DIAGNOSTIC_EVIDENCE_RETENTION_UNSPECIFIED\x10\x00\x12*\n&DIAGNOSTIC_EVIDENCE_RETENTION_RETAINED\x10\x01\x12+\n\'DIAGNOSTIC_EVIDENCE_RETENTION_TRUNCATED\x10\x02\x12)\n%DIAGNOSTIC_EVIDENCE_RETENTION_DROPPED\x10\x03*\x8c\x02\n\x16DiagnosticAvailability\x12\'\n#DIAGNOSTIC_AVAILABILITY_UNSPECIFIED\x10\x00\x12%\n!DIAGNOSTIC_AVAILABILITY_AVAILABLE\x10\x01\x12\'\n#DIAGNOSTIC_AVAILABILITY_UNAVAILABLE\x10\x02\x12\'\n#DIAGNOSTIC_AVAILABILITY_UNSUPPORTED\x10\x03\x12*\n&DIAGNOSTIC_AVAILABILITY_NEVER_OBSERVED\x10\x04\x12$\n DIAGNOSTIC_AVAILABILITY_DISABLED\x10\x05*y\n\x16DiagnosticSummaryScope\x12(\n$DIAGNOSTIC_SUMMARY_SCOPE_UNSPECIFIED\x10\x00\x125\n1DIAGNOSTIC_SUMMARY_SCOPE_WHOLE_COMPONENT_LIFETIME\x10\x01J\xe0\xfd\x01\n\x07\x12\x05\x05\x00\xfc\x04\x01\n\xe7\x01\n\x01\x0c\x12\x03\x05\x00\x122\x88\x01 SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n SPDX-License-Identifier: Apache-2.0\n2R Defines diagnostic delivery policy, accounting, provenance, and snapshot models.\n\n\x08\n\x01\x02\x12\x03\x07\x00$\n\t\n\x02\x03\x00\x12\x03\t\x00%\n\t\n\x02\x03\x01\x12\x03\n\x00(\n\t\n\x02\x03\x02\x12\x03\x0b\x00)\n\t\n\x02\x03\x03\x12\x03\x0c\x002\nZ\n\x02\x04\x00\x12\x04\x0f\x00U\x01\x1aN Host-owned limits and contract identities required for diagnostic admission.\n\n\n\n\x03\x04\x00\x01\x12\x03\x0f\x08\x1e\n`\n\x04\x04\x00\x02\x00\x12\x03\x11\x02G\x1aS Required protocol name and semantic contract version to confirm during handshake.\n\n\x0c\n\x05\x04\x00\x02\x00\x06\x12\x03\x11\x02\x12\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03\x11\x13\x1b\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03\x11\x1e\x1f\n\x0c\n\x05\x04\x00\x02\x00\x08\x12\x03\x11 F\n\x0f\n\x08\x04\x00\x02\x00\x08\x87\t\x19\x12\x03\x11!E\nY\n\x04\x04\x00\x02\x01\x12\x03\x13\x02X\x1aL These transport contracts start at 1.0.0; core catalogue revisions do not.\n\n\x0c\n\x05\x04\x00\x02\x01\x05\x12\x03\x13\x02\x08\n\x0c\n\x05\x04\x00\x02\x01\x01\x12\x03\x13\t\"\n\x0c\n\x05\x04\x00\x02\x01\x03\x12\x03\x13%&\n\x0c\n\x05\x04\x00\x02\x01\x08\x12\x03\x13\'W\n\x0f\n\x08\x04\x00\x02\x01\x08\x87\t\x0e\x12\x03\x13(V\n^\n\x04\x04\x00\x02\x02\x12\x03\x15\x02\x1f\x1aQ Core diagnostic catalogue revision, independent of the worker contract version.\n\n\x0c\n\x05\x04\x00\x02\x02\x05\x12\x03\x15\x02\x08\n\x0c\n\x05\x04\x00\x02\x02\x01\x12\x03\x15\t\x1a\n\x0c\n\x05\x04\x00\x02\x02\x03\x12\x03\x15\x1d\x1e\nQ\n\x04\x04\x00\x02\x03\x12\x03\x17\x02\x13\x1aD Whether the host accepts diagnostic recording for this activation.\n\n\x0c\n\x05\x04\x00\x02\x03\x05\x12\x03\x17\x02\x06\n\x0c\n\x05\x04\x00\x02\x03\x01\x12\x03\x17\x07\x0e\n\x0c\n\x05\x04\x00\x02\x03\x03\x12\x03\x17\x11\x12\nU\n\x04\x04\x00\x02\x04\x12\x03\x19\x02\x1c\x1aH Whether separately authorized context-wide snapshot reads are granted.\n\n\x0c\n\x05\x04\x00\x02\x04\x05\x12\x03\x19\x02\x06\n\x0c\n\x05\x04\x00\x02\x04\x01\x12\x03\x19\x07\x17\n\x0c\n\x05\x04\x00\x02\x04\x03\x12\x03\x19\x1a\x1b\nS\n\x04\x04\x00\x02\x05\x12\x04\x1b\x02\x1e\x05\x1aE Host bound on component admission or requested component page size.\n\n\x0c\n\x05\x04\x00\x02\x05\x05\x12\x03\x1b\x02\x08\n\x0c\n\x05\x04\x00\x02\x05\x01\x12\x03\x1b\t\x17\n\x0c\n\x05\x04\x00\x02\x05\x03\x12\x03\x1b\x1a\x1b\n\r\n\x05\x04\x00\x02\x05\x08\x12\x04\x1b\x1c\x1e\x04\n\x10\n\x08\x04\x00\x02\x05\x08\x87\t\x05\x12\x04\x1b\x1d\x1e\x03\nU\n\x04\x04\x00\x02\x06\x12\x04 \x02#\x05\x1aG Maximum plugin-defined diagnostic extensions admitted in the session.\n\n\x0c\n\x05\x04\x00\x02\x06\x05\x12\x03 \x02\x08\n\x0c\n\x05\x04\x00\x02\x06\x01\x12\x03 \t\x17\n\x0c\n\x05\x04\x00\x02\x06\x03\x12\x03 \x1a\x1b\n\r\n\x05\x04\x00\x02\x06\x08\x12\x04 \x1c#\x04\n\x10\n\x08\x04\x00\x02\x06\x08\x87\t\x05\x12\x04 \x1d#\x03\n^\n\x04\x04\x00\x02\x07\x12\x04%\x02(\x05\x1aP Maximum encoded component and code registration metadata admitted by the host.\n\n\x0c\n\x05\x04\x00\x02\x07\x05\x12\x03%\x02\x08\n\x0c\n\x05\x04\x00\x02\x07\x01\x12\x03%\t\x1b\n\x0c\n\x05\x04\x00\x02\x07\x03\x12\x03%\x1e\x1f\n\r\n\x05\x04\x00\x02\x07\x08\x12\x04% (\x04\n\x10\n\x08\x04\x00\x02\x07\x08\x87\t\x05\x12\x04%!(\x03\n]\n\x04\x04\x00\x02\x08\x12\x04*\x02-\x05\x1aO Complete encoded SubmitDiagnosticRequest, including credentials and sequence.\n\n\x0c\n\x05\x04\x00\x02\x08\x05\x12\x03*\x02\x08\n\x0c\n\x05\x04\x00\x02\x08\x01\x12\x03*\t\x1a\n\x0c\n\x05\x04\x00\x02\x08\x03\x12\x03*\x1d\x1e\n\r\n\x05\x04\x00\x02\x08\x08\x12\x04*\x1f-\x04\n\x10\n\x08\x04\x00\x02\x08\x08\x87\t\x05\x12\x04* -\x03\nF\n\x04\x04\x00\x02\t\x12\x04/\x022\x05\x1a8 Maximum diagnostic detail bytes permitted by the host.\n\n\x0c\n\x05\x04\x00\x02\t\x05\x12\x03/\x02\x08\n\x0c\n\x05\x04\x00\x02\t\x01\x12\x03/\t\x19\n\x0c\n\x05\x04\x00\x02\t\x03\x12\x03/\x1c\x1e\n\r\n\x05\x04\x00\x02\t\x08\x12\x04/\x1f2\x04\n\x10\n\x08\x04\x00\x02\t\x08\x87\t\x05\x12\x04/ 2\x03\nK\n\x04\x04\x00\x02\n\x12\x044\x027\x05\x1a= Maximum trajectory correlation bytes permitted by the host.\n\n\x0c\n\x05\x04\x00\x02\n\x05\x12\x034\x02\x08\n\x0c\n\x05\x04\x00\x02\n\x01\x12\x034\t\x1e\n\x0c\n\x05\x04\x00\x02\n\x03\x12\x034!#\n\r\n\x05\x04\x00\x02\n\x08\x12\x044$7\x04\n\x10\n\x08\x04\x00\x02\n\x08\x87\t\x05\x12\x044%7\x03\nB\n\x04\x04\x00\x02\x0b\x12\x049\x02<\x05\x1a4 Maximum complete encoded diagnostic response size.\n\n\x0c\n\x05\x04\x00\x02\x0b\x05\x12\x039\x02\x08\n\x0c\n\x05\x04\x00\x02\x0b\x01\x12\x039\t\x1b\n\x0c\n\x05\x04\x00\x02\x0b\x03\x12\x039\x1e \n\r\n\x05\x04\x00\x02\x0b\x08\x12\x049!<\x04\n\x10\n\x08\x04\x00\x02\x0b\x08\x87\t\x05\x12\x049\"<\x03\nE\n\x04\x04\x00\x02\x0c\x12\x04>\x02A\x05\x1a7 Queue capacity excludes the one in-flight submission.\n\n\x0c\n\x05\x04\x00\x02\x0c\x05\x12\x03>\x02\x08\n\x0c\n\x05\x04\x00\x02\x0c\x01\x12\x03>\t \n\x0c\n\x05\x04\x00\x02\x0c\x03\x12\x03>#%\n\r\n\x05\x04\x00\x02\x0c\x08\x12\x04>&A\x04\n\x10\n\x08\x04\x00\x02\x0c\x08\x87\t\x05\x12\x04>\'A\x03\nK\n\x04\x04\x00\x02\r\x12\x04C\x02F\x05\x1a= Maximum submission attempts, including the initial attempt.\n\n\x0c\n\x05\x04\x00\x02\r\x05\x12\x03C\x02\x08\n\x0c\n\x05\x04\x00\x02\r\x01\x12\x03C\t\x17\n\x0c\n\x05\x04\x00\x02\r\x03\x12\x03C\x1a\x1c\n\r\n\x05\x04\x00\x02\r\x08\x12\x04C\x1dF\x04\n\x10\n\x08\x04\x00\x02\r\x08\x87\t\x05\x12\x04C\x1eF\x03\ne\n\x04\x04\x00\x02\x0e\x12\x04H\x02N\x04\x1aW Deadline for each diagnostic submission attempt, from one millisecond to ten seconds.\n\n\x0c\n\x05\x04\x00\x02\x0e\x06\x12\x03H\x02\x1a\n\x0c\n\x05\x04\x00\x02\x0e\x01\x12\x03H\x1b1\n\x0c\n\x05\x04\x00\x02\x0e\x03\x12\x03H46\n\r\n\x05\x04\x00\x02\x0e\x08\x12\x04H7N\x03\n\x0f\n\x08\x04\x00\x02\x0e\x08\x87\t\x19\x12\x03I\x04(\n\x10\n\x08\x04\x00\x02\x0e\x08\x87\t\x15\x12\x04J\x04M\x05\n[\n\x04\x04\x00\x02\x0f\x12\x03P\x02[\x1aN Supported authenticated remote-provenance contract version, initially 1.0.0.\n\n\x0c\n\x05\x04\x00\x02\x0f\x05\x12\x03P\x02\x08\n\x0c\n\x05\x04\x00\x02\x0f\x01\x12\x03P\t$\n\x0c\n\x05\x04\x00\x02\x0f\x03\x12\x03P\')\n\x0c\n\x05\x04\x00\x02\x0f\x08\x12\x03P*Z\n\x0f\n\x08\x04\x00\x02\x0f\x08\x87\t\x0e\x12\x03P+Y\n]\n\x04\x04\x00\x02\x10\x12\x03R\x02\x1f\x1aP Grants side-effect-free source discovery only; unsupported or denied is false.\n\n\x0c\n\x05\x04\x00\x02\x10\x05\x12\x03R\x02\x06\n\x0c\n\x05\x04\x00\x02\x10\x01\x12\x03R\x07\x19\n\x0c\n\x05\x04\x00\x02\x10\x03\x12\x03R\x1c\x1e\nZ\n\x04\x04\x00\x02\x11\x12\x03T\x02\x1f\x1aM Grants bounded memory inspection only; it never starts resource collection.\n\n\x0c\n\x05\x04\x00\x02\x11\x05\x12\x03T\x02\x06\n\x0c\n\x05\x04\x00\x02\x11\x01\x12\x03T\x07\x19\n\x0c\n\x05\x04\x00\x02\x11\x03\x12\x03T\x1c\x1e\nM\n\x02\x05\x00\x12\x04X\x00_\x01\x1aA Observed operation outcome, independent of diagnostic severity.\n\n\n\n\x03\x05\x00\x01\x12\x03X\x05!\nM\n\x04\x05\x00\x02\x00\x12\x03Z\x021\x1a@ Unspecified maps to the runtime\'s unknown observation outcome.\n\n\x0c\n\x05\x05\x00\x02\x00\x01\x12\x03Z\x02,\n\x0c\n\x05\x05\x00\x02\x00\x02\x12\x03Z/0\n0\n\x04\x05\x00\x02\x01\x12\x03\\\x02-\x1a# The observed operation succeeded.\n\n\x0c\n\x05\x05\x00\x02\x01\x01\x12\x03\\\x02(\n\x0c\n\x05\x05\x00\x02\x01\x02\x12\x03\\+,\n-\n\x04\x05\x00\x02\x02\x12\x03^\x02-\x1a The observed operation failed.\n\n\x0c\n\x05\x05\x00\x02\x02\x01\x12\x03^\x02(\n\x0c\n\x05\x05\x00\x02\x02\x02\x12\x03^+,\n@\n\x02\x05\x01\x12\x04b\x00o\x01\x1a4 Evidence severity accepted by diagnostic delivery.\n\n\n\n\x03\x05\x01\x01\x12\x03b\x05\"\nY\n\x04\x05\x01\x02\x00\x12\x03d\x022\x1aL No value supplied; invalid where this contract requires an explicit value.\n\n\x0c\n\x05\x05\x01\x02\x00\x01\x12\x03d\x02-\n\x0c\n\x05\x05\x01\x02\x00\x02\x12\x03d01\n\'\n\x04\x05\x01\x02\x01\x12\x03f\x02,\x1a\x1a Detailed trace evidence.\n\n\x0c\n\x05\x05\x01\x02\x01\x01\x12\x03f\x02\'\n\x0c\n\x05\x05\x01\x02\x01\x02\x12\x03f*+\n1\n\x04\x05\x01\x02\x02\x12\x03h\x02,\x1a$ Diagnostic evidence for debugging.\n\n\x0c\n\x05\x05\x01\x02\x02\x01\x12\x03h\x02\'\n\x0c\n\x05\x05\x01\x02\x02\x02\x12\x03h*+\n&\n\x04\x05\x01\x02\x03\x12\x03j\x02+\x1a\x19 Informational evidence.\n\n\x0c\n\x05\x05\x01\x02\x03\x01\x12\x03j\x02&\n\x0c\n\x05\x05\x01\x02\x03\x02\x12\x03j)*\nC\n\x04\x05\x01\x02\x04\x12\x03l\x02.\x1a6 Warning evidence without an implied failure outcome.\n\n\x0c\n\x05\x05\x01\x02\x04\x01\x12\x03l\x02)\n\x0c\n\x05\x05\x01\x02\x04\x02\x12\x03l,-\nI\n\x04\x05\x01\x02\x05\x12\x03n\x02,\x1a< Error evidence; severity alone does not determine outcome.\n\n\x0c\n\x05\x05\x01\x02\x05\x01\x12\x03n\x02\'\n\x0c\n\x05\x05\x01\x02\x05\x02\x12\x03n*+\n[\n\x02\x04\x01\x12\x04r\x00~\x01\x1aO Declares one plugin-defined diagnostic classification and its allowed causes.\n\n\n\n\x03\x04\x01\x01\x12\x03r\x08%\n`\n\x04\x04\x01\x02\x00\x12\x04t\x02w\x05\x1aR Identity within the enclosing declaration; preserve its exact case and spelling.\n\n\x0c\n\x05\x04\x01\x02\x00\x05\x12\x03t\x02\x08\n\x0c\n\x05\x04\x01\x02\x00\x01\x12\x03t\t\r\n\x0c\n\x05\x04\x01\x02\x00\x03\x12\x03t\x10\x11\n\r\n\x05\x04\x01\x02\x00\x08\x12\x04t\x12w\x04\n\x10\n\x08\x04\x01\x02\x00\x08\x87\t\x0e\x12\x04t\x13w\x03\na\n\x04\x04\x01\x02\x01\x12\x03y\x02J\x1aT Human-readable classification description, bounded by diagnostic admission policy.\n\n\x0c\n\x05\x04\x01\x02\x01\x05\x12\x03y\x02\x08\n\x0c\n\x05\x04\x01\x02\x01\x01\x12\x03y\t\x14\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x03y\x17\x18\n\x0c\n\x05\x04\x01\x02\x01\x08\x12\x03y\x19I\n\x0f\n\x08\x04\x01\x02\x01\x08\x87\t\x0e\x12\x03y\x1aH\nZ\n\x04\x04\x01\x02\x02\x12\x03{\x02^\x1aM Observed operation outcome; severity does not determine success or failure.\n\n\x0c\n\x05\x04\x01\x02\x02\x06\x12\x03{\x02\x1e\n\x0c\n\x05\x04\x01\x02\x02\x01\x12\x03{\x1f&\n\x0c\n\x05\x04\x01\x02\x02\x03\x12\x03{)*\n\x0c\n\x05\x04\x01\x02\x02\x08\x12\x03{+]\n\x0f\n\x08\x04\x01\x02\x02\x08\x87\t\x10\x12\x03{,\\\nJ\n\x04\x04\x01\x02\x03\x12\x03}\x02.\x1a= Admitted failure-class names for this diagnostic extension.\n\n\x0c\n\x05\x04\x01\x02\x03\x04\x12\x03}\x02\n\n\x0c\n\x05\x04\x01\x02\x03\x05\x12\x03}\x0b\x11\n\x0c\n\x05\x04\x01\x02\x03\x01\x12\x03}\x12)\n\x0c\n\x05\x04\x01\x02\x03\x03\x12\x03},-\n_\n\x02\x04\x02\x12\x06\x81\x01\x00\x8a\x01\x01\x1aQ Selects an existing catalogue name or an activation-local extension definition.\n\n\x0b\n\x03\x04\x02\x01\x12\x04\x81\x01\x08 \n^\n\x04\x04\x02\x08\x00\x12\x06\x83\x01\x02\x89\x01\x03\x1aN Exactly one recognized alternative is required when this message is present.\n\n\r\n\x05\x04\x02\x08\x00\x01\x12\x04\x83\x01\x08\x12\n\r\n\x05\x04\x02\x08\x00\x02\x12\x04\x84\x01\x040\n\x10\n\x08\x04\x02\x08\x00\x02\x87\t\x01\x12\x04\x84\x01\x040\n]\n\x04\x04\x02\x02\x00\x12\x04\x86\x01\x04\x1c\x1aO Canonical built-in diagnostic code name; the host validates admission rights.\n\n\r\n\x05\x04\x02\x02\x00\x05\x12\x04\x86\x01\x04\n\n\r\n\x05\x04\x02\x02\x00\x01\x12\x04\x86\x01\x0b\x17\n\r\n\x05\x04\x02\x02\x00\x03\x12\x04\x86\x01\x1a\x1b\nQ\n\x04\x04\x02\x02\x01\x12\x04\x88\x01\x040\x1aC Plugin-defined classification admitted in this session namespace.\n\n\r\n\x05\x04\x02\x02\x01\x06\x12\x04\x88\x01\x04!\n\r\n\x05\x04\x02\x02\x01\x01\x12\x04\x88\x01\"+\n\r\n\x05\x04\x02\x02\x01\x03\x12\x04\x88\x01./\n]\n\x02\x04\x03\x12\x06\x8d\x01\x00\x92\x01\x01\x1aO Registers a bounded diagnostic component and an ordered list of code handles.\n\n\x0b\n\x03\x04\x03\x01\x12\x04\x8d\x01\x08\'\nY\n\x04\x04\x03\x02\x00\x12\x04\x8f\x01\x02E\x1aK Callback identity within its plugin component, before host qualification.\n\n\r\n\x05\x04\x03\x02\x00\x05\x12\x04\x8f\x01\x02\x08\n\r\n\x05\x04\x03\x02\x00\x01\x12\x04\x8f\x01\t\x13\n\r\n\x05\x04\x03\x02\x00\x03\x12\x04\x8f\x01\x16\x17\n\r\n\x05\x04\x03\x02\x00\x08\x12\x04\x8f\x01\x18D\n\x10\n\x08\x04\x03\x02\x00\x08\x87\t\x0e\x12\x04\x8f\x01\x19C\nf\n\x04\x04\x03\x02\x01\x12\x04\x91\x01\x02.\x1aX Ordered code declarations; returned code handles use one-based positions in this list.\n\n\r\n\x05\x04\x03\x02\x01\x04\x12\x04\x91\x01\x02\n\n\r\n\x05\x04\x03\x02\x01\x06\x12\x04\x91\x01\x0b#\n\r\n\x05\x04\x03\x02\x01\x01\x12\x04\x91\x01$)\n\r\n\x05\x04\x03\x02\x01\x03\x12\x04\x91\x01,-\n^\n\x02\x04\x04\x12\x06\x95\x01\x00\xad\x01\x01\x1aP Records a positive occurrence delta using admitted component and code handles.\n\n\x0b\n\x03\x04\x04\x01\x12\x04\x95\x01\x08\x1d\nO\n\x04\x04\x04\x02\x00\x12\x04\x97\x01\x02<\x1aA One-based component handle admitted in this diagnostic session.\n\n\r\n\x05\x04\x04\x02\x00\x05\x12\x04\x97\x01\x02\x08\n\r\n\x05\x04\x04\x02\x00\x01\x12\x04\x97\x01\t\x12\n\r\n\x05\x04\x04\x02\x00\x03\x12\x04\x97\x01\x15\x16\n\r\n\x05\x04\x04\x02\x00\x08\x12\x04\x97\x01\x17;\n\x11\n\t\x04\x04\x02\x00\x08\x87\t\x05\x04\x12\x04\x97\x01\x18:\nB\n\x04\x04\x04\x02\x01\x12\x04\x99\x01\x027\x1a4 One-based code handle admitted for this component.\n\n\r\n\x05\x04\x04\x02\x01\x05\x12\x04\x99\x01\x02\x08\n\r\n\x05\x04\x04\x02\x01\x01\x12\x04\x99\x01\t\r\n\r\n\x05\x04\x04\x02\x01\x03\x12\x04\x99\x01\x10\x11\n\r\n\x05\x04\x04\x02\x01\x08\x12\x04\x99\x01\x126\n\x11\n\t\x04\x04\x02\x01\x08\x87\t\x05\x04\x12\x04\x99\x01\x135\nJ\n\x04\x04\x04\x02\x02\x12\x04\x9b\x01\x02$\x1a< Optional admitted failure-class name for this observation.\n\n\r\n\x05\x04\x04\x02\x02\x04\x12\x04\x9b\x01\x02\n\n\r\n\x05\x04\x04\x02\x02\x05\x12\x04\x9b\x01\x0b\x11\n\r\n\x05\x04\x04\x02\x02\x01\x12\x04\x9b\x01\x12\x1f\n\r\n\x05\x04\x04\x02\x02\x03\x12\x04\x9b\x01\"#\n4\n\x04\x04\x04\x02\x03\x12\x04\x9d\x01\x02^\x1a& Explicit observed operation outcome.\n\n\r\n\x05\x04\x04\x02\x03\x06\x12\x04\x9d\x01\x02\x1e\n\r\n\x05\x04\x04\x02\x03\x01\x12\x04\x9d\x01\x1f&\n\r\n\x05\x04\x04\x02\x03\x03\x12\x04\x9d\x01)*\n\r\n\x05\x04\x04\x02\x03\x08\x12\x04\x9d\x01+]\n\x10\n\x08\x04\x04\x02\x03\x08\x87\t\x10\x12\x04\x9d\x01,\\\nS\n\x04\x04\x04\x02\x04\x12\x06\x9f\x01\x02\xa2\x01\x05\x1aC Evidence severity, independent of its observed operation outcome.\n\n\r\n\x05\x04\x04\x02\x04\x06\x12\x04\x9f\x01\x02\x1f\n\r\n\x05\x04\x04\x02\x04\x01\x12\x04\x9f\x01 (\n\r\n\x05\x04\x04\x02\x04\x03\x12\x04\x9f\x01+,\n\x0f\n\x05\x04\x04\x02\x04\x08\x12\x06\x9f\x01-\xa2\x01\x04\n\x12\n\x08\x04\x04\x02\x04\x08\x87\t\x10\x12\x06\x9f\x01.\xa2\x01\x03\nC\n\x04\x04\x04\x02\x05\x12\x04\xa4\x01\x028\x1a5 Positive occurrence delta, not an absolute counter.\n\n\r\n\x05\x04\x04\x02\x05\x05\x12\x04\xa4\x01\x02\x08\n\r\n\x05\x04\x04\x02\x05\x01\x12\x04\xa4\x01\t\x0e\n\r\n\x05\x04\x04\x02\x05\x03\x12\x04\xa4\x01\x11\x12\n\r\n\x05\x04\x04\x02\x05\x08\x12\x04\xa4\x01\x137\n\x11\n\t\x04\x04\x02\x05\x08\x87\t\x06\x04\x12\x04\xa4\x01\x146\nG\n\x04\x04\x04\x02\x06\x12\x04\xa6\x01\x02-\x1a9 Source observation time, preserved through projections.\n\n\r\n\x05\x04\x04\x02\x06\x06\x12\x04\xa6\x01\x02\x1b\n\r\n\x05\x04\x04\x02\x06\x01\x12\x04\xa6\x01\x1c(\n\r\n\x05\x04\x04\x02\x06\x03\x12\x04\xa6\x01+,\nR\n\x04\x04\x04\x02\x07\x12\x04\xa8\x01\x02P\x1aD Optional restricted diagnostic detail, bounded by the host policy.\n\n\r\n\x05\x04\x04\x02\x07\x04\x12\x04\xa8\x01\x02\n\n\r\n\x05\x04\x04\x02\x07\x05\x12\x04\xa8\x01\x0b\x11\n\r\n\x05\x04\x04\x02\x07\x01\x12\x04\xa8\x01\x12\x18\n\r\n\x05\x04\x04\x02\x07\x03\x12\x04\xa8\x01\x1b\x1c\n\r\n\x05\x04\x04\x02\x07\x08\x12\x04\xa8\x01\x1dO\n\x10\n\x08\x04\x04\x02\x07\x08\x87\t\x0e\x12\x04\xa8\x01\x1eN\nc\n\x04\x04\x04\x02\x08\x12\x04\xaa\x01\x02T\x1aU Optional trajectory session correlation, not the diagnostic transport session UUID.\n\n\r\n\x05\x04\x04\x02\x08\x04\x12\x04\xaa\x01\x02\n\n\r\n\x05\x04\x04\x02\x08\x05\x12\x04\xaa\x01\x0b\x11\n\r\n\x05\x04\x04\x02\x08\x01\x12\x04\xaa\x01\x12\x1c\n\r\n\x05\x04\x04\x02\x08\x03\x12\x04\xaa\x01\x1f \n\r\n\x05\x04\x04\x02\x08\x08\x12\x04\xaa\x01!S\n\x10\n\x08\x04\x04\x02\x08\x08\x87\t\x0e\x12\x04\xaa\x01\"R\nV\n\x04\x04\x04\x02\t\x12\x04\xac\x01\x02U\x1aH Optional trajectory request correlation; it is not an authority token.\n\n\r\n\x05\x04\x04\x02\t\x04\x12\x04\xac\x01\x02\n\n\r\n\x05\x04\x04\x02\t\x05\x12\x04\xac\x01\x0b\x11\n\r\n\x05\x04\x04\x02\t\x01\x12\x04\xac\x01\x12\x1c\n\r\n\x05\x04\x04\x02\t\x03\x12\x04\xac\x01\x1f!\n\r\n\x05\x04\x04\x02\t\x08\x12\x04\xac\x01\"T\n\x10\n\x08\x04\x04\x02\t\x08\x87\t\x0e\x12\x04\xac\x01#S\nS\n\x02\x04\x05\x12\x06\xb0\x01\x00\xb3\x01\x01\x1aE Closes a component handle without deleting its retained accounting.\n\n\x0b\n\x03\x04\x05\x01\x12\x04\xb0\x01\x08 \nk\n\x04\x04\x05\x02\x00\x12\x04\xb2\x01\x02\x17\x1a] Admitted component handle for delivery, or optional component selector/diagnostic location.\n\n\r\n\x05\x04\x05\x02\x00\x05\x12\x04\xb2\x01\x02\x08\n\r\n\x05\x04\x05\x02\x00\x01\x12\x04\xb2\x01\t\x12\n\r\n\x05\x04\x05\x02\x00\x03\x12\x04\xb2\x01\x15\x16\nP\n\x02\x05\x02\x12\x06\xb6\x01\x00\xc3\x01\x01\x1aB Terminal admission outcome for an ordered diagnostic submission.\n\n\x0b\n\x03\x05\x02\x01\x12\x04\xb6\x01\x05\x1c\nZ\n\x04\x05\x02\x02\x00\x12\x04\xb8\x01\x02,\x1aL No value supplied; invalid where this contract requires an explicit value.\n\n\r\n\x05\x05\x02\x02\x00\x01\x12\x04\xb8\x01\x02\'\n\r\n\x05\x05\x02\x02\x00\x02\x12\x04\xb8\x01*+\n4\n\x04\x05\x02\x02\x01\x12\x04\xba\x01\x02)\x1a& Occurrence accounting was committed.\n\n\r\n\x05\x05\x02\x02\x01\x01\x12\x04\xba\x01\x02$\n\r\n\x05\x05\x02\x02\x01\x02\x12\x04\xba\x01\'(\n@\n\x04\x05\x02\x02\x02\x12\x04\xbc\x01\x02)\x1a2 Collection is disabled; no evidence is recorded.\n\n\r\n\x05\x05\x02\x02\x02\x01\x12\x04\xbc\x01\x02$\n\r\n\x05\x05\x02\x02\x02\x02\x12\x04\xbc\x01\'(\nM\n\x04\x05\x02\x02\x03\x12\x04\xbe\x01\x02)\x1a? An admitted operation was rejected and its sequence consumed.\n\n\r\n\x05\x05\x02\x02\x03\x01\x12\x04\xbe\x01\x02$\n\r\n\x05\x05\x02\x02\x03\x02\x12\x04\xbe\x01\'(\nF\n\x04\x05\x02\x02\x04\x12\x04\xc0\x01\x02+\x1a8 Component registration and code handles were admitted.\n\n\r\n\x05\x05\x02\x02\x04\x01\x12\x04\xc0\x01\x02&\n\r\n\x05\x05\x02\x02\x04\x02\x12\x04\xc0\x01)*\n=\n\x04\x05\x02\x02\x05\x12\x04\xc2\x01\x02\'\x1a/ The selected component or session was closed.\n\n\r\n\x05\x05\x02\x02\x05\x01\x12\x04\xc2\x01\x02\"\n\r\n\x05\x05\x02\x02\x05\x02\x12\x04\xc2\x01%&\nU\n\x02\x05\x03\x12\x06\xc6\x01\x00\xcf\x01\x01\x1aG Evidence retention disposition, independent of occurrence accounting.\n\n\x0b\n\x03\x05\x03\x01\x12\x04\xc6\x01\x05 \nZ\n\x04\x05\x03\x02\x00\x12\x04\xc8\x01\x020\x1aL No value supplied; invalid where this contract requires an explicit value.\n\n\r\n\x05\x05\x03\x02\x00\x01\x12\x04\xc8\x01\x02+\n\r\n\x05\x05\x03\x02\x00\x02\x12\x04\xc8\x01./\n0\n\x04\x05\x03\x02\x01\x12\x04\xca\x01\x02-\x1a\" Requested evidence was retained.\n\n\r\n\x05\x05\x03\x02\x01\x01\x12\x04\xca\x01\x02(\n\r\n\x05\x05\x03\x02\x01\x02\x12\x04\xca\x01+,\n>\n\x04\x05\x03\x02\x02\x12\x04\xcc\x01\x02.\x1a0 Evidence was retained with bounded truncation.\n\n\r\n\x05\x05\x03\x02\x02\x01\x12\x04\xcc\x01\x02)\n\r\n\x05\x05\x03\x02\x02\x02\x12\x04\xcc\x01,-\nQ\n\x04\x05\x03\x02\x03\x12\x04\xce\x01\x02,\x1aC Evidence was omitted while accepted accounting remains available.\n\n\r\n\x05\x05\x03\x02\x03\x01\x12\x04\xce\x01\x02\'\n\r\n\x05\x05\x03\x02\x03\x02\x12\x04\xce\x01*+\nc\n\x02\x04\x06\x12\x06\xd2\x01\x00\xf0\x01\x01\x1aU Reports sequence consumption, admission outcome, and retained evidence disposition.\n\n\x0b\n\x03\x04\x06\x01\x12\x04\xd2\x01\x08\x19\n\r\n\x03\x04\x06\x07\x12\x06\xd3\x01\x02\xd7\x01\x04\n\x11\n\x07\x04\x06\x07\x87\t\x03\x00\x12\x06\xd3\x01\x02\xd7\x01\x04\n\r\n\x03\x04\x06\x07\x12\x06\xd8\x01\x02\xdc\x01\x04\n\x11\n\x07\x04\x06\x07\x87\t\x03\x01\x12\x06\xd8\x01\x02\xdc\x01\x04\nb\n\x04\x04\x06\x02\x00\x12\x04\xdf\x01\x02!\x1aT Sequence of the acknowledged or attributed submission; identical retries reuse it.\n\n\r\n\x05\x04\x06\x02\x00\x05\x12\x04\xdf\x01\x02\x08\n\r\n\x05\x04\x06\x02\x00\x01\x12\x04\xdf\x01\t\x1c\n\r\n\x05\x04\x06\x02\x00\x03\x12\x04\xdf\x01\x1f \ng\n\x04\x04\x06\x02\x01\x12\x06\xe1\x01\x02\xe4\x01\x05\x1aW Required recognized state reported by the enclosing lifecycle or admission operation.\n\n\r\n\x05\x04\x06\x02\x01\x06\x12\x04\xe1\x01\x02\x19\n\r\n\x05\x04\x06\x02\x01\x01\x12\x04\xe1\x01\x1a \n\r\n\x05\x04\x06\x02\x01\x03\x12\x04\xe1\x01#$\n\x0f\n\x05\x04\x06\x02\x01\x08\x12\x06\xe1\x01%\xe4\x01\x04\n\x12\n\x08\x04\x06\x02\x01\x08\x87\t\x10\x12\x06\xe1\x01&\xe4\x01\x03\nU\n\x04\x04\x06\x02\x02\x12\x04\xe6\x01\x02\x1b\x1aG Host recording revision associated with accepted diagnostic evidence.\n\n\r\n\x05\x04\x06\x02\x02\x05\x12\x04\xe6\x01\x02\x08\n\r\n\x05\x04\x06\x02\x02\x01\x12\x04\xe6\x01\t\x16\n\r\n\x05\x04\x06\x02\x02\x03\x12\x04\xe6\x01\x19\x1a\n\xc5\x01\n\x04\x04\x06\x02\x03\x12\x04\xe9\x01\x02[\x1a\xb6\x01 Whether recorded evidence was retained, truncated, or dropped independently of accounting.\n This must be specified for recorded observations and unspecified for all other statuses.\n\n\r\n\x05\x04\x06\x02\x03\x06\x12\x04\xe9\x01\x02\x1d\n\r\n\x05\x04\x06\x02\x03\x01\x12\x04\xe9\x01\x1e&\n\r\n\x05\x04\x06\x02\x03\x03\x12\x04\xe9\x01)*\n\r\n\x05\x04\x06\x02\x03\x08\x12\x04\xe9\x01+Z\n\x11\n\t\x04\x06\x02\x03\x08\x87\t\x10\x02\x12\x04\xe9\x01,Y\nQ\n\x04\x04\x06\x02\x04\x12\x04\xeb\x01\x02\x17\x1aC Component handle assigned to a successful component registration.\n\n\r\n\x05\x04\x06\x02\x04\x05\x12\x04\xeb\x01\x02\x08\n\r\n\x05\x04\x06\x02\x04\x01\x12\x04\xeb\x01\t\x12\n\r\n\x05\x04\x06\x02\x04\x03\x12\x04\xeb\x01\x15\x16\nR\n\x04\x04\x06\x02\x05\x12\x04\xed\x01\x02\x18\x1aD Code handles are one-based positions in the admitted registration.\n\n\r\n\x05\x04\x06\x02\x05\x05\x12\x04\xed\x01\x02\x08\n\r\n\x05\x04\x06\x02\x05\x01\x12\x04\xed\x01\t\x13\n\r\n\x05\x04\x06\x02\x05\x03\x12\x04\xed\x01\x16\x17\nP\n\x04\x04\x06\x02\x06\x12\x04\xef\x01\x02\x14\x1aB Fixed safe reason, never callback error text or request content.\n\n\r\n\x05\x04\x06\x02\x06\x05\x12\x04\xef\x01\x02\x08\n\r\n\x05\x04\x06\x02\x06\x01\x12\x04\xef\x01\t\x0f\n\r\n\x05\x04\x06\x02\x06\x03\x12\x04\xef\x01\x12\x13\n[\n\x02\x04\x07\x12\x06\xf3\x01\x00\x89\x02\x01\x1aM JSON output represents every uint64 diagnostic counter as a decimal string.\n\n\x0b\n\x03\x04\x07\x01\x12\x04\xf3\x01\x08\x1a\nV\n\x04\x04\x07\x02\x00\x12\x04\xf5\x01\x02\x1c\x1aH Core snapshot/catalogue revisions, independent of the worker contract.\n\n\r\n\x05\x04\x07\x02\x00\x05\x12\x04\xf5\x01\x02\x08\n\r\n\x05\x04\x07\x02\x00\x01\x12\x04\xf5\x01\t\x17\n\r\n\x05\x04\x07\x02\x00\x03\x12\x04\xf5\x01\x1a\x1b\nZ\n\x04\x04\x07\x02\x01\x12\x04\xf7\x01\x02\x1f\x1aL Catalogue revision. Preserve unknown names without assigning them meaning.\n\n\r\n\x05\x04\x07\x02\x01\x05\x12\x04\xf7\x01\x02\x08\n\r\n\x05\x04\x07\x02\x01\x01\x12\x04\xf7\x01\t\x1a\n\r\n\x05\x04\x07\x02\x01\x03\x12\x04\xf7\x01\x1d\x1e\nL\n\x04\x04\x07\x02\x02\x12\x04\xf9\x01\x02M\x1a> Source identity preserved through collection and projection.\n\n\r\n\x05\x04\x07\x02\x02\x06\x12\x04\xf9\x01\x02\x1a\n\r\n\x05\x04\x07\x02\x02\x01\x12\x04\xf9\x01\x1b!\n\r\n\x05\x04\x07\x02\x02\x03\x12\x04\xf9\x01$%\n\r\n\x05\x04\x07\x02\x02\x08\x12\x04\xf9\x01&L\n\x10\n\x08\x04\x07\x02\x02\x08\x87\t\x19\x12\x04\xf9\x01\'K\nM\n\x04\x04\x07\x02\x03\x12\x04\xfb\x01\x02T\x1a? Source capture time; it is not a collector receipt timestamp.\n\n\r\n\x05\x04\x07\x02\x03\x06\x12\x04\xfb\x01\x02\x1b\n\r\n\x05\x04\x07\x02\x03\x01\x12\x04\xfb\x01\x1c(\n\r\n\x05\x04\x07\x02\x03\x03\x12\x04\xfb\x01+,\n\r\n\x05\x04\x07\x02\x03\x08\x12\x04\xfb\x01-S\n\x10\n\x08\x04\x07\x02\x03\x08\x87\t\x19\x12\x04\xfb\x01.R\nI\n\x04\x04\x07\x02\x04\x12\x04\xfd\x01\x02\x16\x1a; Latest source update revision; reads do not increment it.\n\n\r\n\x05\x04\x07\x02\x04\x05\x12\x04\xfd\x01\x02\x08\n\r\n\x05\x04\x07\x02\x04\x01\x12\x04\xfd\x01\t\x11\n\r\n\x05\x04\x07\x02\x04\x03\x12\x04\xfd\x01\x14\x15\n\xa8\x01\n\x04\x04\x07\x02\x05\x12\x04\x80\x02\x02P\x1a\x99\x01 Whole-context lifetime accounting, independent of component/event selectors. Hosts must\n authorize access to this context-wide view before exposing it.\n\n\r\n\x05\x04\x07\x02\x05\x06\x12\x04\x80\x02\x02\x1b\n\r\n\x05\x04\x07\x02\x05\x01\x12\x04\x80\x02\x1c$\n\r\n\x05\x04\x07\x02\x05\x03\x12\x04\x80\x02\'(\n\r\n\x05\x04\x07\x02\x05\x08\x12\x04\x80\x02)O\n\x10\n\x08\x04\x07\x02\x05\x08\x87\t\x19\x12\x04\x80\x02*N\nK\n\x04\x04\x07\x02\x06\x12\x04\x82\x02\x026\x1a= Bounded rows, one per selected retained component instance.\n\n\r\n\x05\x04\x07\x02\x06\x04\x12\x04\x82\x02\x02\n\n\r\n\x05\x04\x07\x02\x06\x06\x12\x04\x82\x02\x0b&\n\r\n\x05\x04\x07\x02\x06\x01\x12\x04\x82\x02\'1\n\r\n\x05\x04\x07\x02\x06\x03\x12\x04\x82\x0245\n1\n\x04\x04\x07\x02\x07\x12\x04\x84\x02\x02&\x1a# Bounded selected recent evidence.\n\n\r\n\x05\x04\x07\x02\x07\x04\x12\x04\x84\x02\x02\n\n\r\n\x05\x04\x07\x02\x07\x06\x12\x04\x84\x02\x0b\x1a\n\r\n\x05\x04\x07\x02\x07\x01\x12\x04\x84\x02\x1b!\n\r\n\x05\x04\x07\x02\x07\x03\x12\x04\x84\x02$%\nG\n\x04\x04\x07\x02\x08\x12\x04\x86\x02\x02I\x1a9 Availability, scope, integration, and loss limitations.\n\n\r\n\x05\x04\x07\x02\x08\x06\x12\x04\x86\x02\x02\x14\n\r\n\x05\x04\x07\x02\x08\x01\x12\x04\x86\x02\x15\x1d\n\r\n\x05\x04\x07\x02\x08\x03\x12\x04\x86\x02 !\n\r\n\x05\x04\x07\x02\x08\x08\x12\x04\x86\x02\"H\n\x10\n\x08\x04\x07\x02\x08\x08\x87\t\x19\x12\x04\x86\x02#G\nP\n\x04\x04\x07\x02\t\x12\x04\x88\x02\x02%\x1aB Next bounded page, subject to mutation and retention validation.\n\n\r\n\x05\x04\x07\x02\t\x06\x12\x04\x88\x02\x02\x12\n\r\n\x05\x04\x07\x02\t\x01\x12\x04\x88\x02\x13\x1f\n\r\n\x05\x04\x07\x02\t\x03\x12\x04\x88\x02\"$\nS\n\x02\x04\x08\x12\x06\x8c\x02\x00\x95\x02\x01\x1aE Identifies the process incarnation that owns diagnostic accounting.\n\n\x0b\n\x03\x04\x08\x01\x12\x04\x8c\x02\x08 \nJ\n\x04\x04\x08\x02\x00\x12\x04\x8e\x02\x02F\x1a< Unique incarnation assigned before logging initialization.\n\n\r\n\x05\x04\x08\x02\x00\x05\x12\x04\x8e\x02\x02\x08\n\r\n\x05\x04\x08\x02\x00\x01\x12\x04\x8e\x02\t\x14\n\r\n\x05\x04\x08\x02\x00\x03\x12\x04\x8e\x02\x17\x18\n\r\n\x05\x04\x08\x02\x00\x08\x12\x04\x8e\x02\x19E\n\x10\n\x08\x04\x08\x02\x00\x08\x87\t\x0e\x12\x04\x8e\x02\x1aD\nO\n\x04\x04\x08\x02\x01\x12\x04\x90\x02\x02!\x1aA Descriptive operating system process ID, never an identity key.\n\n\r\n\x05\x04\x08\x02\x01\x04\x12\x04\x90\x02\x02\n\n\r\n\x05\x04\x08\x02\x01\x05\x12\x04\x90\x02\x0b\x11\n\r\n\x05\x04\x08\x02\x01\x01\x12\x04\x90\x02\x12\x1c\n\r\n\x05\x04\x08\x02\x01\x03\x12\x04\x90\x02\x1f \n\\\n\x04\x04\x08\x02\x02\x12\x04\x92\x02\x02\x1a\x1aN Producer-defined role, such as embedded runtime, gateway, broker, or worker.\n\n\r\n\x05\x04\x08\x02\x02\x05\x12\x04\x92\x02\x02\x08\n\r\n\x05\x04\x08\x02\x02\x01\x12\x04\x92\x02\t\x15\n\r\n\x05\x04\x08\x02\x02\x03\x12\x04\x92\x02\x18\x19\n=\n\x04\x04\x08\x02\x03\x12\x04\x94\x02\x02\x1b\x1a/ Relay package version producing the evidence.\n\n\r\n\x05\x04\x08\x02\x03\x05\x12\x04\x94\x02\x02\x08\n\r\n\x05\x04\x08\x02\x03\x01\x12\x04\x94\x02\t\x16\n\r\n\x05\x04\x08\x02\x03\x03\x12\x04\x94\x02\x19\x1a\nP\n\x02\x04\t\x12\x06\x98\x02\x00\x9f\x02\x01\x1aB Identifies a logical component and one registration incarnation.\n\n\x0b\n\x03\x04\t\x01\x12\x04\x98\x02\x08#\nO\n\x04\x04\t\x02\x00\x12\x04\x9a\x02\x02\x11\x1aA Stable logical name, excluding request and session identifiers.\n\n\r\n\x05\x04\t\x02\x00\x05\x12\x04\x9a\x02\x02\x08\n\r\n\x05\x04\t\x02\x00\x01\x12\x04\x9a\x02\t\x0c\n\r\n\x05\x04\t\x02\x00\x03\x12\x04\x9a\x02\x0f\x10\nT\n\x04\x04\t\x02\x01\x12\x04\x9c\x02\x02F\x1aF Unique registration instance, distinguishing replacement components.\n\n\r\n\x05\x04\t\x02\x01\x05\x12\x04\x9c\x02\x02\x08\n\r\n\x05\x04\t\x02\x01\x01\x12\x04\x9c\x02\t\x14\n\r\n\x05\x04\t\x02\x01\x03\x12\x04\x9c\x02\x17\x18\n\r\n\x05\x04\t\x02\x01\x08\x12\x04\x9c\x02\x19E\n\x10\n\x08\x04\t\x02\x01\x08\x87\t\x0e\x12\x04\x9c\x02\x1aD\n`\n\x04\x04\t\x02\x02\x12\x04\x9e\x02\x02\x18\x1aR Source-local registration generation, increasing when a logical key is replaced.\n\n\r\n\x05\x04\t\x02\x02\x05\x12\x04\x9e\x02\x02\x08\n\r\n\x05\x04\t\x02\x02\x01\x12\x04\x9e\x02\t\x13\n\r\n\x05\x04\t\x02\x02\x03\x12\x04\x9e\x02\x16\x17\nc\n\x02\x04\n\x12\x06\xa2\x02\x00\xab\x02\x01\x1aU Correlates component responsibility without creating additional counter dimensions.\n\n\x0b\n\x03\x04\n\x01\x12\x04\xa2\x02\x08$\nZ\n\x04\x04\n\x02\x00\x12\x04\xa4\x02\x02Z\x1aL Subscriber registration associated with this attribution, when applicable.\n\n\r\n\x05\x04\n\x02\x00\x04\x12\x04\xa4\x02\x02\n\n\r\n\x05\x04\n\x02\x00\x05\x12\x04\xa4\x02\x0b\x11\n\r\n\x05\x04\n\x02\x00\x01\x12\x04\xa4\x02\x12(\n\r\n\x05\x04\n\x02\x00\x03\x12\x04\xa4\x02+,\n\r\n\x05\x04\n\x02\x00\x08\x12\x04\xa4\x02-Y\n\x10\n\x08\x04\n\x02\x00\x08\x87\t\x0e\x12\x04\xa4\x02.X\nV\n\x04\x04\n\x02\x01\x12\x04\xa6\x02\x02V\x1aH Plugin registration associated with this attribution, when applicable.\n\n\r\n\x05\x04\n\x02\x01\x04\x12\x04\xa6\x02\x02\n\n\r\n\x05\x04\n\x02\x01\x05\x12\x04\xa6\x02\x0b\x11\n\r\n\x05\x04\n\x02\x01\x01\x12\x04\xa6\x02\x12$\n\r\n\x05\x04\n\x02\x01\x03\x12\x04\xa6\x02\'(\n\r\n\x05\x04\n\x02\x01\x08\x12\x04\xa6\x02)U\n\x10\n\x08\x04\n\x02\x01\x08\x87\t\x0e\x12\x04\xa6\x02*T\n@\n\x04\x04\n\x02\x02\x12\x04\xa8\x02\x02\'\x1a2 Bounded identity of the committed configuration.\n\n\r\n\x05\x04\n\x02\x02\x04\x12\x04\xa8\x02\x02\n\n\r\n\x05\x04\n\x02\x02\x05\x12\x04\xa8\x02\x0b\x11\n\r\n\x05\x04\n\x02\x02\x01\x12\x04\xa8\x02\x12\"\n\r\n\x05\x04\n\x02\x02\x03\x12\x04\xa8\x02%&\nP\n\x04\x04\n\x02\x03\x12\x04\xaa\x02\x02%\x1aB Bounded runtime responsibility for an embedded or process owner.\n\n\r\n\x05\x04\n\x02\x03\x04\x12\x04\xaa\x02\x02\n\n\r\n\x05\x04\n\x02\x03\x05\x12\x04\xaa\x02\x0b\x11\n\r\n\x05\x04\n\x02\x03\x01\x12\x04\xaa\x02\x12 \n\r\n\x05\x04\n\x02\x03\x03\x12\x04\xaa\x02#$\nR\n\x02\x04\x0b\x12\x06\xae\x02\x00\xb3\x02\x01\x1aD Captures the refresh generation and ownership at observation time.\n\n\x0b\n\x03\x04\x0b\x01\x12\x04\xae\x02\x08\x18\nW\n\x04\x04\x0b\x02\x00\x12\x04\xb0\x02\x02 \x1aI Refresh generation associated with the originating work or observation.\n\n\r\n\x05\x04\x0b\x02\x00\x05\x12\x04\xb0\x02\x02\x08\n\r\n\x05\x04\x0b\x02\x00\x01\x12\x04\xb0\x02\t\x1b\n\r\n\x05\x04\x0b\x02\x00\x03\x12\x04\xb0\x02\x1e\x1f\nE\n\x04\x04\x0b\x02\x01\x12\x04\xb2\x02\x02T\x1a7 Original bounded owner and configuration attribution.\n\n\r\n\x05\x04\x0b\x02\x01\x06\x12\x04\xb2\x02\x02\x1e\n\r\n\x05\x04\x0b\x02\x01\x01\x12\x04\xb2\x02\x1f(\n\r\n\x05\x04\x0b\x02\x01\x03\x12\x04\xb2\x02+,\n\r\n\x05\x04\x0b\x02\x01\x08\x12\x04\xb2\x02-S\n\x10\n\x08\x04\x0b\x02\x01\x08\x87\t\x19\x12\x04\xb2\x02.R\n\\\n\x02\x04\x0c\x12\x06\xb6\x02\x00\xbb\x02\x01\x1aN Preserves catalogue and failure-class names, including unknown future names.\n\n\x0b\n\x03\x04\x0c\x01\x12\x04\xb6\x02\x08 \nZ\n\x04\x04\x0c\x02\x00\x12\x04\xb8\x02\x02I\x1aL Catalogue names remain open for future readers; admission still validates.\n\n\r\n\x05\x04\x0c\x02\x00\x05\x12\x04\xb8\x02\x02\x08\n\r\n\x05\x04\x0c\x02\x00\x01\x12\x04\xb8\x02\t\x17\n\r\n\x05\x04\x0c\x02\x00\x03\x12\x04\xb8\x02\x1a\x1b\n\r\n\x05\x04\x0c\x02\x00\x08\x12\x04\xb8\x02\x1cH\n\x10\n\x08\x04\x0c\x02\x00\x08\x87\t\x0e\x12\x04\xb8\x02\x1dG\nK\n\x04\x04\x0c\x02\x01\x12\x04\xba\x02\x02Q\x1a= Cause name; absent for successful observations and notices.\n\n\r\n\x05\x04\x0c\x02\x01\x04\x12\x04\xba\x02\x02\n\n\r\n\x05\x04\x0c\x02\x01\x05\x12\x04\xba\x02\x0b\x11\n\r\n\x05\x04\x0c\x02\x01\x01\x12\x04\xba\x02\x12\x1f\n\r\n\x05\x04\x0c\x02\x01\x03\x12\x04\xba\x02\"#\n\r\n\x05\x04\x0c\x02\x01\x08\x12\x04\xba\x02$P\n\x10\n\x08\x04\x0c\x02\x01\x08\x87\t\x0e\x12\x04\xba\x02%O\nZ\n\x02\x04\r\x12\x06\xbe\x02\x00\xc3\x02\x01\x1aL Carries independently optional plugin execution and lifecycle phase names.\n\n\x0b\n\x03\x04\r\x01\x12\x04\xbe\x02\x08\x1f\nP\n\x04\x04\r\x02\x00\x12\x04\xc0\x02\x02 \x1aB Observed execution name, when known; never inferred from a code.\n\n\r\n\x05\x04\r\x02\x00\x04\x12\x04\xc0\x02\x02\n\n\r\n\x05\x04\r\x02\x00\x05\x12\x04\xc0\x02\x0b\x11\n\r\n\x05\x04\r\x02\x00\x01\x12\x04\xc0\x02\x12\x1b\n\r\n\x05\x04\r\x02\x00\x03\x12\x04\xc0\x02\x1e\x1f\nL\n\x04\x04\r\x02\x01\x12\x04\xc2\x02\x02\x1c\x1a> Observed lifecycle phase or policy-gate context, when known.\n\n\r\n\x05\x04\r\x02\x01\x04\x12\x04\xc2\x02\x02\n\n\r\n\x05\x04\r\x02\x01\x05\x12\x04\xc2\x02\x0b\x11\n\r\n\x05\x04\r\x02\x01\x01\x12\x04\xc2\x02\x12\x17\n\r\n\x05\x04\r\x02\x01\x03\x12\x04\xc2\x02\x1a\x1b\nH\n\x02\x04\x0e\x12\x06\xc6\x02\x00\xcb\x02\x01\x1a: Retained diagnostic text with explicit truncation state.\n\n\x0b\n\x03\x04\x0e\x01\x12\x04\xc6\x02\x08\x18\nY\n\x04\x04\x0e\x02\x00\x12\x04\xc8\x02\x02\x15\x1aK Text copied within admitted byte capacity; bounding does not sanitize it.\n\n\r\n\x05\x04\x0e\x02\x00\x05\x12\x04\xc8\x02\x02\x08\n\r\n\x05\x04\x0e\x02\x00\x01\x12\x04\xc8\x02\t\x10\n\r\n\x05\x04\x0e\x02\x00\x03\x12\x04\xc8\x02\x13\x14\nO\n\x04\x04\x0e\x02\x01\x12\x04\xca\x02\x02\x15\x1aA Whether the original text exceeded its retained byte allowance.\n\n\r\n\x05\x04\x0e\x02\x01\x05\x12\x04\xca\x02\x02\x06\n\r\n\x05\x04\x0e\x02\x01\x01\x12\x04\xca\x02\x07\x10\n\r\n\x05\x04\x0e\x02\x01\x03\x12\x04\xca\x02\x13\x14\nP\n\x02\x04\x0f\x12\x06\xce\x02\x00\xd3\x02\x01\x1aB Optional trajectory correlation, excluded from aggregation keys.\n\n\x0b\n\x03\x04\x0f\x01\x12\x04\xce\x02\x08\x1d\nO\n\x04\x04\x0f\x02\x00\x12\x04\xd0\x02\x02!\x1aA Trajectory session associated with the observation, when known.\n\n\r\n\x05\x04\x0f\x02\x00\x04\x12\x04\xd0\x02\x02\n\n\r\n\x05\x04\x0f\x02\x00\x05\x12\x04\xd0\x02\x0b\x11\n\r\n\x05\x04\x0f\x02\x00\x01\x12\x04\xd0\x02\x12\x1c\n\r\n\x05\x04\x0f\x02\x00\x03\x12\x04\xd0\x02\x1f \nD\n\x04\x04\x0f\x02\x01\x12\x04\xd2\x02\x02!\x1a6 Request associated with the observation, when known.\n\n\r\n\x05\x04\x0f\x02\x01\x04\x12\x04\xd2\x02\x02\n\n\r\n\x05\x04\x0f\x02\x01\x05\x12\x04\xd2\x02\x0b\x11\n\r\n\x05\x04\x0f\x02\x01\x01\x12\x04\xd2\x02\x12\x1c\n\r\n\x05\x04\x0f\x02\x01\x03\x12\x04\xd2\x02\x1f \nX\n\x02\x04\x10\x12\x06\xd6\x02\x00\xe3\x02\x01\x1aJ Preserves authenticated worker provenance and the host\'s receipt timing.\n\n\x0b\n\x03\x04\x10\x01\x12\x04\xd6\x02\x08\x1e\nB\n\x04\x04\x10\x02\x00\x12\x04\xd8\x02\x02M\x1a4 Host-issued diagnostic session/source incarnation.\n\n\r\n\x05\x04\x10\x02\x00\x05\x12\x04\xd8\x02\x02\x08\n\r\n\x05\x04\x10\x02\x00\x01\x12\x04\xd8\x02\t\x1b\n\r\n\x05\x04\x10\x02\x00\x03\x12\x04\xd8\x02\x1e\x1f\n\r\n\x05\x04\x10\x02\x00\x08\x12\x04\xd8\x02 L\n\x10\n\x08\x04\x10\x02\x00\x08\x87\t\x0e\x12\x04\xd8\x02!K\nU\n\x04\x04\x10\x02\x01\x12\x04\xda\x02\x02Q\x1aG Host-issued plugin activation incarnation, distinct from the session.\n\n\r\n\x05\x04\x10\x02\x01\x05\x12\x04\xda\x02\x02\x08\n\r\n\x05\x04\x10\x02\x01\x01\x12\x04\xda\x02\t\x1f\n\r\n\x05\x04\x10\x02\x01\x03\x12\x04\xda\x02\"#\n\r\n\x05\x04\x10\x02\x01\x08\x12\x04\xda\x02$P\n\x10\n\x08\x04\x10\x02\x01\x08\x87\t\x0e\x12\x04\xda\x02%O\nR\n\x04\x04\x10\x02\x02\x12\x04\xdc\x02\x02F\x1aD Ordered terminal submission sequence; not the host event sequence.\n\n\r\n\x05\x04\x10\x02\x02\x05\x12\x04\xdc\x02\x02\x08\n\r\n\x05\x04\x10\x02\x02\x01\x12\x04\xdc\x02\t\x1c\n\r\n\x05\x04\x10\x02\x02\x03\x12\x04\xdc\x02\x1f \n\r\n\x05\x04\x10\x02\x02\x08\x12\x04\xdc\x02!E\n\x11\n\t\x04\x10\x02\x02\x08\x87\t\x06\x04\x12\x04\xdc\x02\"D\nU\n\x04\x04\x10\x02\x03\x12\x04\xde\x02\x02-\x1aG Optional producer-reported wall time, with unknown clock uncertainty.\n\n\r\n\x05\x04\x10\x02\x03\x06\x12\x04\xde\x02\x02\x1b\n\r\n\x05\x04\x10\x02\x03\x01\x12\x04\xde\x02\x1c(\n\r\n\x05\x04\x10\x02\x03\x03\x12\x04\xde\x02+,\nV\n\x04\x04\x10\x02\x04\x12\x04\xe0\x02\x02T\x1aH Host wall time at acceptance, also used as the event observation time.\n\n\r\n\x05\x04\x10\x02\x04\x06\x12\x04\xe0\x02\x02\x1b\n\r\n\x05\x04\x10\x02\x04\x01\x12\x04\xe0\x02\x1c(\n\r\n\x05\x04\x10\x02\x04\x03\x12\x04\xe0\x02+,\n\r\n\x05\x04\x10\x02\x04\x08\x12\x04\xe0\x02-S\n\x10\n\x08\x04\x10\x02\x04\x08\x87\t\x19\x12\x04\xe0\x02.R\nW\n\x04\x04\x10\x02\x05\x12\x04\xe2\x02\x02%\x1aI Host monotonic elapsed time at acceptance, relative to context startup.\n\n\r\n\x05\x04\x10\x02\x05\x05\x12\x04\xe2\x02\x02\x08\n\r\n\x05\x04\x10\x02\x05\x01\x12\x04\xe2\x02\t \n\r\n\x05\x04\x10\x02\x05\x03\x12\x04\xe2\x02#$\nc\n\x02\x04\x11\x12\x06\xe6\x02\x00\x82\x03\x01\x1aU One retained observation, its attribution, occurrence delta, and optional evidence.\n\n\x0b\n\x03\x04\x11\x01\x12\x04\xe6\x02\x08\x17\nU\n\x04\x04\x11\x02\x00\x12\x04\xe8\x02\x02\x16\x1aG Unique source-local update sequence; it is not an occurrence counter.\n\n\r\n\x05\x04\x11\x02\x00\x05\x12\x04\xe8\x02\x02\x08\n\r\n\x05\x04\x11\x02\x00\x01\x12\x04\xe8\x02\t\x11\n\r\n\x05\x04\x11\x02\x00\x03\x12\x04\xe8\x02\x14\x15\nG\n\x04\x04\x11\x02\x01\x12\x04\xea\x02\x02T\x1a9 Source observation time, preserved through projections.\n\n\r\n\x05\x04\x11\x02\x01\x06\x12\x04\xea\x02\x02\x1b\n\r\n\x05\x04\x11\x02\x01\x01\x12\x04\xea\x02\x1c(\n\r\n\x05\x04\x11\x02\x01\x03\x12\x04\xea\x02+,\n\r\n\x05\x04\x11\x02\x01\x08\x12\x04\xea\x02-S\n\x10\n\x08\x04\x11\x02\x01\x08\x87\t\x19\x12\x04\xea\x02.R\nA\n\x04\x04\x11\x02\x02\x12\x04\xec\x02\x02S\x1a3 Registration that owned the original observation.\n\n\r\n\x05\x04\x11\x02\x02\x06\x12\x04\xec\x02\x02\x1d\n\r\n\x05\x04\x11\x02\x02\x01\x12\x04\xec\x02\x1e\'\n\r\n\x05\x04\x11\x02\x02\x03\x12\x04\xec\x02*+\n\r\n\x05\x04\x11\x02\x02\x08\x12\x04\xec\x02,R\n\x10\n\x08\x04\x11\x02\x02\x08\x87\t\x19\x12\x04\xec\x02-Q\nX\n\x04\x04\x11\x02\x03\x12\x04\xee\x02\x02E\x1aJ Original configuration attribution, preserved through component refresh.\n\n\r\n\x05\x04\x11\x02\x03\x06\x12\x04\xee\x02\x02\x12\n\r\n\x05\x04\x11\x02\x03\x01\x12\x04\xee\x02\x13\x19\n\r\n\x05\x04\x11\x02\x03\x03\x12\x04\xee\x02\x1c\x1d\n\r\n\x05\x04\x11\x02\x03\x08\x12\x04\xee\x02\x1eD\n\x10\n\x08\x04\x11\x02\x03\x08\x87\t\x19\x12\x04\xee\x02\x1fC\nZ\n\x04\x04\x11\x02\x04\x12\x04\xf0\x02\x02$\x1aL Authenticated remote submission provenance, absent for local observations.\n\n\r\n\x05\x04\x11\x02\x04\x06\x12\x04\xf0\x02\x02\x18\n\r\n\x05\x04\x11\x02\x04\x01\x12\x04\xf0\x02\x19\x1f\n\r\n\x05\x04\x11\x02\x04\x03\x12\x04\xf0\x02\"#\nZ\n\x04\x04\x11\x02\x05\x12\x04\xf2\x02\x02U\x1aL Canonical event classification; never reconstructed from a latest message.\n\n\r\n\x05\x04\x11\x02\x05\x06\x12\x04\xf2\x02\x02\x1a\n\r\n\x05\x04\x11\x02\x05\x01\x12\x04\xf2\x02\x1b)\n\r\n\x05\x04\x11\x02\x05\x03\x12\x04\xf2\x02,-\n\r\n\x05\x04\x11\x02\x05\x08\x12\x04\xf2\x02.T\n\x10\n\x08\x04\x11\x02\x05\x08\x87\t\x19\x12\x04\xf2\x02/S\nT\n\x04\x04\x11\x02\x06\x12\x04\xf4\x02\x02M\x1aF Bounded plugin-operation wire facts, excluded from aggregation keys.\n\n\r\n\x05\x04\x11\x02\x06\x06\x12\x04\xf4\x02\x02\x19\n\r\n\x05\x04\x11\x02\x06\x01\x12\x04\xf4\x02\x1a!\n\r\n\x05\x04\x11\x02\x06\x03\x12\x04\xf4\x02$%\n\r\n\x05\x04\x11\x02\x06\x08\x12\x04\xf4\x02&L\n\x10\n\x08\x04\x11\x02\x06\x08\x87\t\x19\x12\x04\xf4\x02\'K\nS\n\x04\x04\x11\x02\x07\x12\x06\xf6\x02\x02\xf9\x02\x05\x1aC Evidence severity, independent of its observed operation outcome.\n\n\r\n\x05\x04\x11\x02\x07\x06\x12\x04\xf6\x02\x02\x1f\n\r\n\x05\x04\x11\x02\x07\x01\x12\x04\xf6\x02 (\n\r\n\x05\x04\x11\x02\x07\x03\x12\x04\xf6\x02+,\n\x0f\n\x05\x04\x11\x02\x07\x08\x12\x06\xf6\x02-\xf9\x02\x04\n\x12\n\x08\x04\x11\x02\x07\x08\x87\t\x10\x12\x06\xf6\x02.\xf9\x02\x03\n4\n\x04\x04\x11\x02\x08\x12\x04\xfb\x02\x02^\x1a& Explicit observed operation outcome.\n\n\r\n\x05\x04\x11\x02\x08\x06\x12\x04\xfb\x02\x02\x1e\n\r\n\x05\x04\x11\x02\x08\x01\x12\x04\xfb\x02\x1f&\n\r\n\x05\x04\x11\x02\x08\x03\x12\x04\xfb\x02)*\n\r\n\x05\x04\x11\x02\x08\x08\x12\x04\xfb\x02+]\n\x10\n\x08\x04\x11\x02\x08\x08\x87\t\x10\x12\x04\xfb\x02,\\\nT\n\x04\x04\x11\x02\t\x12\x04\xfd\x02\x02\x1f\x1aF Bounded optional evidence; absence does not imply a missing counter.\n\n\r\n\x05\x04\x11\x02\t\x06\x12\x04\xfd\x02\x02\x12\n\r\n\x05\x04\x11\x02\t\x01\x12\x04\xfd\x02\x13\x19\n\r\n\x05\x04\x11\x02\t\x03\x12\x04\xfd\x02\x1c\x1e\nJ\n\x04\x04\x11\x02\n\x12\x04\xff\x02\x02\x14\x1a< Input occurrence delta represented by this recording call.\n\n\r\n\x05\x04\x11\x02\n\x05\x12\x04\xff\x02\x02\x08\n\r\n\x05\x04\x11\x02\n\x01\x12\x04\xff\x02\t\x0e\n\r\n\x05\x04\x11\x02\n\x03\x12\x04\xff\x02\x11\x13\nR\n\x04\x04\x11\x02\x0b\x12\x04\x81\x03\x02P\x1aD Restricted caller correlation, excluded from aggregation identity.\n\n\r\n\x05\x04\x11\x02\x0b\x06\x12\x04\x81\x03\x02\x17\n\r\n\x05\x04\x11\x02\x0b\x01\x12\x04\x81\x03\x18#\n\r\n\x05\x04\x11\x02\x0b\x03\x12\x04\x81\x03&(\n\r\n\x05\x04\x11\x02\x0b\x08\x12\x04\x81\x03)O\n\x10\n\x08\x04\x11\x02\x0b\x08\x87\t\x19\x12\x04\x81\x03*N\n`\n\x02\x04\x12\x12\x06\x85\x03\x00\x8a\x03\x01\x1aR Unsigned count that stops at its maximum. After that limit, it is a lower bound.\n\n\x0b\n\x03\x04\x12\x01\x12\x04\x85\x03\x08\x17\n;\n\x04\x04\x12\x02\x00\x12\x04\x87\x03\x02\x13\x1a- Exact count unless saturation has occurred.\n\n\r\n\x05\x04\x12\x02\x00\x05\x12\x04\x87\x03\x02\x08\n\r\n\x05\x04\x12\x02\x00\x01\x12\x04\x87\x03\t\x0e\n\r\n\x05\x04\x12\x02\x00\x03\x12\x04\x87\x03\x11\x12\nN\n\x04\x04\x12\x02\x01\x12\x04\x89\x03\x02\x15\x1a@ Whether an overflowing increment made the value a lower bound.\n\n\r\n\x05\x04\x12\x02\x01\x05\x12\x04\x89\x03\x02\x06\n\r\n\x05\x04\x12\x02\x01\x01\x12\x04\x89\x03\x07\x10\n\r\n\x05\x04\x12\x02\x01\x03\x12\x04\x89\x03\x13\x14\n[\n\x02\x04\x13\x12\x06\x8d\x03\x00\x9a\x03\x01\x1aM Outcome and recording totals for an explicitly identified accounting scope.\n\n\x0b\n\x03\x04\x13\x01\x12\x04\x8d\x03\x08\x18\nV\n\x04\x04\x13\x02\x00\x12\x04\x8f\x03\x02S\x1aH Accepted recording calls, one per call regardless of occurrence delta.\n\n\r\n\x05\x04\x13\x02\x00\x06\x12\x04\x8f\x03\x02\x11\n\r\n\x05\x04\x13\x02\x00\x01\x12\x04\x8f\x03\x12\'\n\r\n\x05\x04\x13\x02\x00\x03\x12\x04\x8f\x03*+\n\r\n\x05\x04\x13\x02\x00\x08\x12\x04\x8f\x03,R\n\x10\n\x08\x04\x13\x02\x00\x08\x87\t\x19\x12\x04\x8f\x03-Q\nI\n\x04\x04\x13\x02\x01\x12\x04\x91\x03\x02O\x1a; Accepted occurrence deltas across all outcomes and codes.\n\n\r\n\x05\x04\x13\x02\x01\x06\x12\x04\x91\x03\x02\x11\n\r\n\x05\x04\x13\x02\x01\x01\x12\x04\x91\x03\x12#\n\r\n\x05\x04\x13\x02\x01\x03\x12\x04\x91\x03&\'\n\r\n\x05\x04\x13\x02\x01\x08\x12\x04\x91\x03(N\n\x10\n\x08\x04\x13\x02\x01\x08\x87\t\x19\x12\x04\x91\x03)M\nZ\n\x04\x04\x13\x02\x02\x12\x04\x93\x03\x02U\x1aL Previously retained events owned by this component or context and evicted.\n\n\r\n\x05\x04\x13\x02\x02\x06\x12\x04\x93\x03\x02\x11\n\r\n\x05\x04\x13\x02\x02\x01\x12\x04\x93\x03\x12)\n\r\n\x05\x04\x13\x02\x02\x03\x12\x04\x93\x03,-\n\r\n\x05\x04\x13\x02\x02\x08\x12\x04\x93\x03.T\n\x10\n\x08\x04\x13\x02\x02\x08\x87\t\x19\x12\x04\x93\x03/S\nH\n\x04\x04\x13\x02\x03\x12\x04\x95\x03\x02M\x1a: Occurrences whose owning operation explicitly succeeded.\n\n\r\n\x05\x04\x13\x02\x03\x06\x12\x04\x95\x03\x02\x11\n\r\n\x05\x04\x13\x02\x03\x01\x12\x04\x95\x03\x12!\n\r\n\x05\x04\x13\x02\x03\x03\x12\x04\x95\x03$%\n\r\n\x05\x04\x13\x02\x03\x08\x12\x04\x95\x03&L\n\x10\n\x08\x04\x13\x02\x03\x08\x87\t\x19\x12\x04\x95\x03\'K\nE\n\x04\x04\x13\x02\x04\x12\x04\x97\x03\x02L\x1a7 Occurrences whose owning operation explicitly failed.\n\n\r\n\x05\x04\x13\x02\x04\x06\x12\x04\x97\x03\x02\x11\n\r\n\x05\x04\x13\x02\x04\x01\x12\x04\x97\x03\x12 \n\r\n\x05\x04\x13\x02\x04\x03\x12\x04\x97\x03#$\n\r\n\x05\x04\x13\x02\x04\x08\x12\x04\x97\x03%K\n\x10\n\x08\x04\x13\x02\x04\x08\x87\t\x19\x12\x04\x97\x03&J\nE\n\x04\x04\x13\x02\x05\x12\x04\x99\x03\x02O\x1a7 Occurrences without an established operation outcome.\n\n\r\n\x05\x04\x13\x02\x05\x06\x12\x04\x99\x03\x02\x11\n\r\n\x05\x04\x13\x02\x05\x01\x12\x04\x99\x03\x12#\n\r\n\x05\x04\x13\x02\x05\x03\x12\x04\x99\x03&\'\n\r\n\x05\x04\x13\x02\x05\x08\x12\x04\x99\x03(N\n\x10\n\x08\x04\x13\x02\x05\x08\x87\t\x19\x12\x04\x99\x03)M\nU\n\x02\x04\x14\x12\x06\x9d\x03\x00\xa6\x03\x01\x1aG Lifetime totals and monotonic elapsed time for a source or component.\n\n\x0b\n\x03\x04\x14\x01\x12\x04\x9d\x03\x08!\n[\n\x04\x04\x14\x02\x00\x12\x04\x9f\x03\x02E\x1aM Whole-context or whole-component-instance accounting, as named by the view.\n\n\r\n\x05\x04\x14\x02\x00\x06\x12\x04\x9f\x03\x02\x12\n\r\n\x05\x04\x14\x02\x00\x01\x12\x04\x9f\x03\x13\x19\n\r\n\x05\x04\x14\x02\x00\x03\x12\x04\x9f\x03\x1c\x1d\n\r\n\x05\x04\x14\x02\x00\x08\x12\x04\x9f\x03\x1eD\n\x10\n\x08\x04\x14\x02\x00\x08\x87\t\x19\x12\x04\x9f\x03\x1fC\nM\n\x04\x04\x14\x02\x01\x12\x04\xa1\x03\x02\x1c\x1a? Monotonic elapsed lifetime measured by the source at capture.\n\n\r\n\x05\x04\x14\x02\x01\x05\x12\x04\xa1\x03\x02\x08\n\r\n\x05\x04\x14\x02\x01\x01\x12\x04\xa1\x03\t\x17\n\r\n\x05\x04\x14\x02\x01\x03\x12\x04\xa1\x03\x1a\x1b\nT\n\x04\x04\x14\x02\x02\x12\x04\xa3\x03\x022\x1aF Wall-clock correlation time of the latest observed lifetime failure.\n\n\r\n\x05\x04\x14\x02\x02\x06\x12\x04\xa3\x03\x02\x1b\n\r\n\x05\x04\x14\x02\x02\x01\x12\x04\xa3\x03\x1c-\n\r\n\x05\x04\x14\x02\x02\x03\x12\x04\xa3\x0301\nX\n\x04\x04\x14\x02\x03\x12\x04\xa5\x03\x020\x1aJ Monotonic elapsed time since that failure; absence never means recovery.\n\n\r\n\x05\x04\x14\x02\x03\x04\x12\x04\xa5\x03\x02\n\n\r\n\x05\x04\x14\x02\x03\x05\x12\x04\xa5\x03\x0b\x11\n\r\n\x05\x04\x14\x02\x03\x01\x12\x04\xa5\x03\x12+\n\r\n\x05\x04\x14\x02\x03\x03\x12\x04\xa5\x03./\nX\n\x02\x04\x15\x12\x06\xa9\x03\x00\xb4\x03\x01\x1aJ Accounting for the component\'s current refresh generation and ownership.\n\n\x0b\n\x03\x04\x15\x01\x12\x04\xa9\x03\x08 \nM\n\x04\x04\x15\x02\x00\x12\x04\xab\x03\x02\x18\x1a? Component-local generation increased by a successful refresh.\n\n\r\n\x05\x04\x15\x02\x00\x05\x12\x04\xab\x03\x02\x08\n\r\n\x05\x04\x15\x02\x00\x01\x12\x04\xab\x03\t\x13\n\r\n\x05\x04\x15\x02\x00\x03\x12\x04\xab\x03\x16\x17\nI\n\x04\x04\x15\x02\x01\x12\x04\xad\x03\x02R\x1a; Wall-clock correlation anchor for the successful refresh.\n\n\r\n\x05\x04\x15\x02\x01\x06\x12\x04\xad\x03\x02\x1b\n\r\n\x05\x04\x15\x02\x01\x01\x12\x04\xad\x03\x1c&\n\r\n\x05\x04\x15\x02\x01\x03\x12\x04\xad\x03)*\n\r\n\x05\x04\x15\x02\x01\x08\x12\x04\xad\x03+Q\n\x10\n\x08\x04\x15\x02\x01\x08\x87\t\x19\x12\x04\xad\x03,P\nF\n\x04\x04\x15\x02\x02\x12\x04\xaf\x03\x02\x1c\x1a8 Monotonic elapsed duration since the refresh boundary.\n\n\r\n\x05\x04\x15\x02\x02\x05\x12\x04\xaf\x03\x02\x08\n\r\n\x05\x04\x15\x02\x02\x01\x12\x04\xaf\x03\t\x17\n\r\n\x05\x04\x15\x02\x02\x03\x12\x04\xaf\x03\x1a\x1b\nU\n\x04\x04\x15\x02\x03\x12\x04\xb1\x03\x02T\x1aG Current configuration and owner attribution for this counting period.\n\n\r\n\x05\x04\x15\x02\x03\x06\x12\x04\xb1\x03\x02\x1e\n\r\n\x05\x04\x15\x02\x03\x01\x12\x04\xb1\x03\x1f(\n\r\n\x05\x04\x15\x02\x03\x03\x12\x04\xb1\x03+,\n\r\n\x05\x04\x15\x02\x03\x08\x12\x04\xb1\x03-S\n\x10\n\x08\x04\x15\x02\x03\x08\x87\t\x19\x12\x04\xb1\x03.R\n\\\n\x04\x04\x15\x02\x04\x12\x04\xb3\x03\x02E\x1aN Counts for this current period, independently reserved from lifetime totals.\n\n\r\n\x05\x04\x15\x02\x04\x06\x12\x04\xb3\x03\x02\x12\n\r\n\x05\x04\x15\x02\x04\x01\x12\x04\xb3\x03\x13\x19\n\r\n\x05\x04\x15\x02\x04\x03\x12\x04\xb3\x03\x1c\x1d\n\r\n\x05\x04\x15\x02\x04\x08\x12\x04\xb3\x03\x1eD\n\x10\n\x08\x04\x15\x02\x04\x08\x87\t\x19\x12\x04\xb3\x03\x1fC\n\\\n\x02\x04\x16\x12\x06\xb7\x03\x00\xbe\x03\x01\x1aN Lifetime occurrence count and latest observation time for one admitted code.\n\n\x0b\n\x03\x04\x16\x01\x12\x04\xb7\x03\x08\x19\nU\n\x04\x04\x16\x02\x00\x12\x04\xb9\x03\x02\x12\x1aG Canonical code; the component instance comes from the containing row.\n\n\r\n\x05\x04\x16\x02\x00\x05\x12\x04\xb9\x03\x02\x08\n\r\n\x05\x04\x16\x02\x00\x01\x12\x04\xb9\x03\t\r\n\r\n\x05\x04\x16\x02\x00\x03\x12\x04\xb9\x03\x10\x11\nL\n\x04\x04\x16\x02\x01\x12\x04\xbb\x03\x02I\x1a> Accepted occurrences, independent of optional recent detail.\n\n\r\n\x05\x04\x16\x02\x01\x06\x12\x04\xbb\x03\x02\x11\n\r\n\x05\x04\x16\x02\x01\x01\x12\x04\xbb\x03\x12\x1d\n\r\n\x05\x04\x16\x02\x01\x03\x12\x04\xbb\x03 !\n\r\n\x05\x04\x16\x02\x01\x08\x12\x04\xbb\x03\"H\n\x10\n\x08\x04\x16\x02\x01\x08\x87\t\x19\x12\x04\xbb\x03#G\nH\n\x04\x04\x16\x02\x02\x12\x04\xbd\x03\x02Y\x1a: Source time when this retained counter was last updated.\n\n\r\n\x05\x04\x16\x02\x02\x06\x12\x04\xbd\x03\x02\x1b\n\r\n\x05\x04\x16\x02\x02\x01\x12\x04\xbd\x03\x1c-\n\r\n\x05\x04\x16\x02\x02\x03\x12\x04\xbd\x0301\n\r\n\x05\x04\x16\x02\x02\x08\x12\x04\xbd\x032X\n\x10\n\x08\x04\x16\x02\x02\x08\x87\t\x19\x12\x04\xbd\x033W\nJ\n\x02\x04\x17\x12\x06\xc1\x03\x00\xcc\x03\x01\x1a< Outcome counts for one source-local elapsed-time interval.\n\n\x0b\n\x03\x04\x17\x01\x12\x04\xc1\x03\x08\x1e\nN\n\x04\x04\x17\x02\x00\x12\x04\xc3\x03\x02\"\x1a@ Inclusive elapsed offset from the component\'s monotonic start.\n\n\r\n\x05\x04\x17\x02\x00\x05\x12\x04\xc3\x03\x02\x08\n\r\n\x05\x04\x17\x02\x00\x01\x12\x04\xc3\x03\t\x1d\n\r\n\x05\x04\x17\x02\x00\x03\x12\x04\xc3\x03 !\nV\n\x04\x04\x17\x02\x01\x12\x04\xc5\x03\x02 \x1aH Exclusive nominal bucket end; coverage describes the observed portion.\n\n\r\n\x05\x04\x17\x02\x01\x05\x12\x04\xc5\x03\x02\x08\n\r\n\x05\x04\x17\x02\x01\x01\x12\x04\xc5\x03\t\x1b\n\r\n\x05\x04\x17\x02\x01\x03\x12\x04\xc5\x03\x1e\x1f\nT\n\x04\x04\x17\x02\x02\x12\x04\xc7\x03\x02G\x1aF Explicit successful-operation occurrences observed in this interval.\n\n\r\n\x05\x04\x17\x02\x02\x06\x12\x04\xc7\x03\x02\x11\n\r\n\x05\x04\x17\x02\x02\x01\x12\x04\xc7\x03\x12\x1b\n\r\n\x05\x04\x17\x02\x02\x03\x12\x04\xc7\x03\x1e\x1f\n\r\n\x05\x04\x17\x02\x02\x08\x12\x04\xc7\x03 F\n\x10\n\x08\x04\x17\x02\x02\x08\x87\t\x19\x12\x04\xc7\x03!E\nP\n\x04\x04\x17\x02\x03\x12\x04\xc9\x03\x02F\x1aB Explicit failed-operation occurrences observed in this interval.\n\n\r\n\x05\x04\x17\x02\x03\x06\x12\x04\xc9\x03\x02\x11\n\r\n\x05\x04\x17\x02\x03\x01\x12\x04\xc9\x03\x12\x1a\n\r\n\x05\x04\x17\x02\x03\x03\x12\x04\xc9\x03\x1d\x1e\n\r\n\x05\x04\x17\x02\x03\x08\x12\x04\xc9\x03\x1fE\n\x10\n\x08\x04\x17\x02\x03\x08\x87\t\x19\x12\x04\xc9\x03 D\nS\n\x04\x04\x17\x02\x04\x12\x04\xcb\x03\x02I\x1aE Occurrences with no established operation outcome in this interval.\n\n\r\n\x05\x04\x17\x02\x04\x06\x12\x04\xcb\x03\x02\x11\n\r\n\x05\x04\x17\x02\x04\x01\x12\x04\xcb\x03\x12\x1d\n\r\n\x05\x04\x17\x02\x04\x03\x12\x04\xcb\x03 !\n\r\n\x05\x04\x17\x02\x04\x08\x12\x04\xcb\x03\"H\n\x10\n\x08\x04\x17\x02\x04\x08\x87\t\x19\x12\x04\xcb\x03#G\nJ\n\x02\x05\x04\x12\x06\xcf\x03\x00\xdc\x03\x01\x1a< Availability of a diagnostic feature, window, or snapshot.\n\n\x0b\n\x03\x05\x04\x01\x12\x04\xcf\x03\x05\x1b\nZ\n\x04\x05\x04\x02\x00\x12\x04\xd1\x03\x02*\x1aL No value supplied; invalid where this contract requires an explicit value.\n\n\r\n\x05\x05\x04\x02\x00\x01\x12\x04\xd1\x03\x02%\n\r\n\x05\x05\x04\x02\x00\x02\x12\x04\xd1\x03()\n?\n\x04\x05\x04\x02\x01\x12\x04\xd3\x03\x02(\x1a1 The requested evidence or feature is available.\n\n\r\n\x05\x05\x04\x02\x01\x01\x12\x04\xd3\x03\x02#\n\r\n\x05\x05\x04\x02\x01\x02\x12\x04\xd3\x03&\'\n@\n\x04\x05\x04\x02\x02\x12\x04\xd5\x03\x02*\x1a2 The requested evidence is currently unavailable.\n\n\r\n\x05\x05\x04\x02\x02\x01\x12\x04\xd5\x03\x02%\n\r\n\x05\x05\x04\x02\x02\x02\x12\x04\xd5\x03()\nA\n\x04\x05\x04\x02\x03\x12\x04\xd7\x03\x02*\x1a3 The implementation does not support this feature.\n\n\r\n\x05\x05\x04\x02\x03\x01\x12\x04\xd7\x03\x02%\n\r\n\x05\x05\x04\x02\x03\x02\x12\x04\xd7\x03()\nI\n\x04\x05\x04\x02\x04\x12\x04\xd9\x03\x02-\x1a; No observation has established evidence for this feature.\n\n\r\n\x05\x05\x04\x02\x04\x01\x12\x04\xd9\x03\x02(\n\r\n\x05\x05\x04\x02\x04\x02\x12\x04\xd9\x03+,\n@\n\x04\x05\x04\x02\x05\x12\x04\xdb\x03\x02\'\x1a2 Collection is disabled; no evidence is recorded.\n\n\r\n\x05\x05\x04\x02\x05\x01\x12\x04\xdb\x03\x02\"\n\r\n\x05\x05\x04\x02\x05\x02\x12\x04\xdb\x03%&\nT\n\x02\x04\x18\x12\x06\xdf\x03\x00\xef\x03\x01\x1aF Reports the temporal extent and completeness of a diagnostic window.\n\n\x0b\n\x03\x04\x18\x01\x12\x04\xdf\x03\x08 \n=\n\x04\x04\x18\x02\x00\x12\x06\xe1\x03\x02\xe4\x03\x05\x1a- Availability of the admitted window series.\n\n\r\n\x05\x04\x18\x02\x00\x06\x12\x04\xe1\x03\x02\x18\n\r\n\x05\x04\x18\x02\x00\x01\x12\x04\xe1\x03\x19%\n\r\n\x05\x04\x18\x02\x00\x03\x12\x04\xe1\x03()\n\x0f\n\x05\x04\x18\x02\x00\x08\x12\x06\xe1\x03*\xe4\x03\x04\n\x12\n\x08\x04\x18\x02\x00\x08\x87\t\x10\x12\x06\xe1\x03+\xe4\x03\x03\nY\n\x04\x04\x18\x02\x01\x12\x04\xe6\x03\x02\"\x1aK Earliest covered monotonic elapsed offset within this component lifetime.\n\n\r\n\x05\x04\x18\x02\x01\x05\x12\x04\xe6\x03\x02\x08\n\r\n\x05\x04\x18\x02\x01\x01\x12\x04\xe6\x03\t\x1d\n\r\n\x05\x04\x18\x02\x01\x03\x12\x04\xe6\x03 !\nH\n\x04\x04\x18\x02\x02\x12\x04\xe8\x03\x02 \x1a: Latest covered monotonic elapsed offset at capture time.\n\n\r\n\x05\x04\x18\x02\x02\x05\x12\x04\xe8\x03\x02\x08\n\r\n\x05\x04\x18\x02\x02\x01\x12\x04\xe8\x03\t\x1b\n\r\n\x05\x04\x18\x02\x02\x03\x12\x04\xe8\x03\x1e\x1f\nU\n\x04\x04\x18\x02\x03\x12\x04\xea\x03\x02\x19\x1aG The first returned bucket is only partly inside the covered interval.\n\n\r\n\x05\x04\x18\x02\x03\x05\x12\x04\xea\x03\x02\x06\n\r\n\x05\x04\x18\x02\x03\x01\x12\x04\xea\x03\x07\x14\n\r\n\x05\x04\x18\x02\x03\x03\x12\x04\xea\x03\x17\x18\nT\n\x04\x04\x18\x02\x04\x12\x04\xec\x03\x02\x17\x1aF The last returned bucket is still being observed or partly selected.\n\n\r\n\x05\x04\x18\x02\x04\x05\x12\x04\xec\x03\x02\x06\n\r\n\x05\x04\x18\x02\x04\x01\x12\x04\xec\x03\x07\x12\n\r\n\x05\x04\x18\x02\x04\x03\x12\x04\xec\x03\x15\x16\nR\n\x04\x04\x18\x02\x05\x12\x04\xee\x03\x02\x16\x1aD Known loss prevents treating the aggregate as a complete interval.\n\n\r\n\x05\x04\x18\x02\x05\x05\x12\x04\xee\x03\x02\x06\n\r\n\x05\x04\x18\x02\x05\x01\x12\x04\xee\x03\x07\x11\n\r\n\x05\x04\x18\x02\x05\x03\x12\x04\xee\x03\x14\x15\nJ\n\x02\x04\x19\x12\x06\xf2\x03\x00\xfb\x03\x01\x1a< Bounded outcome history at one configured time resolution.\n\n\x0b\n\x03\x04\x19\x01\x12\x04\xf2\x03\x08\x18\n.\n\x04\x04\x19\x02\x00\x12\x04\xf4\x03\x02\x1f\x1a Duration of each fixed bucket.\n\n\r\n\x05\x04\x19\x02\x00\x05\x12\x04\xf4\x03\x02\x08\n\r\n\x05\x04\x19\x02\x00\x01\x12\x04\xf4\x03\t\x1a\n\r\n\x05\x04\x19\x02\x00\x03\x12\x04\xf4\x03\x1d\x1e\nS\n\x04\x04\x19\x02\x01\x12\x04\xf6\x03\x02\x1d\x1aE Configured bucket slots; memory is independent of observation rate.\n\n\r\n\x05\x04\x19\x02\x01\x05\x12\x04\xf6\x03\x02\x08\n\r\n\x05\x04\x19\x02\x01\x01\x12\x04\xf6\x03\t\x18\n\r\n\x05\x04\x19\x02\x01\x03\x12\x04\xf6\x03\x1b\x1c\nY\n\x04\x04\x19\x02\x02\x12\x04\xf8\x03\x02.\x1aK Bounded selected aggregates; idle covered intervals may have zero values.\n\n\r\n\x05\x04\x19\x02\x02\x04\x12\x04\xf8\x03\x02\n\n\r\n\x05\x04\x19\x02\x02\x06\x12\x04\xf8\x03\x0b!\n\r\n\x05\x04\x19\x02\x02\x01\x12\x04\xf8\x03\")\n\r\n\x05\x04\x19\x02\x02\x03\x12\x04\xf8\x03,-\n5\n\x04\x04\x19\x02\x03\x12\x04\xfa\x03\x02O\x1a\' Actual interval and edge limitations.\n\n\r\n\x05\x04\x19\x02\x03\x06\x12\x04\xfa\x03\x02\x1a\n\r\n\x05\x04\x19\x02\x03\x01\x12\x04\xfa\x03\x1b#\n\r\n\x05\x04\x19\x02\x03\x03\x12\x04\xfa\x03&\'\n\r\n\x05\x04\x19\x02\x03\x08\x12\x04\xfa\x03(N\n\x10\n\x08\x04\x19\x02\x03\x08\x87\t\x19\x12\x04\xfa\x03)M\nW\n\x02\x04\x1a\x12\x06\xfe\x03\x00\x8d\x04\x01\x1aI A retained component row with lifetime, refresh, counters, and windows.\n\n\x0b\n\x03\x04\x1a\x01\x12\x04\xfe\x03\x08#\nD\n\x04\x04\x1a\x02\x00\x12\x04\x80\x04\x02R\x1a6 Logical responsibility and registration incarnation.\n\n\r\n\x05\x04\x1a\x02\x00\x06\x12\x04\x80\x04\x02\x1d\n\r\n\x05\x04\x1a\x02\x00\x01\x12\x04\x80\x04\x1e&\n\r\n\x05\x04\x1a\x02\x00\x03\x12\x04\x80\x04)*\n\r\n\x05\x04\x1a\x02\x00\x08\x12\x04\x80\x04+Q\n\x10\n\x08\x04\x1a\x02\x00\x08\x87\t\x19\x12\x04\x80\x04,P\nK\n\x04\x04\x1a\x02\x01\x12\x04\x82\x04\x02U\x1a= Source correlation time when the registration was admitted.\n\n\r\n\x05\x04\x1a\x02\x01\x06\x12\x04\x82\x04\x02\x1b\n\r\n\x05\x04\x1a\x02\x01\x01\x12\x04\x82\x04\x1c)\n\r\n\x05\x04\x1a\x02\x01\x03\x12\x04\x82\x04,-\n\r\n\x05\x04\x1a\x02\x01\x08\x12\x04\x82\x04.T\n\x10\n\x08\x04\x1a\x02\x01\x08\x87\t\x19\x12\x04\x82\x04/S\n]\n\x04\x04\x1a\x02\x02\x12\x04\x84\x04\x02+\x1aO Registration closure; retained summaries remain subject to bounded retention.\n\n\r\n\x05\x04\x1a\x02\x02\x06\x12\x04\x84\x04\x02\x1b\n\r\n\x05\x04\x1a\x02\x02\x01\x12\x04\x84\x04\x1c&\n\r\n\x05\x04\x1a\x02\x02\x03\x12\x04\x84\x04)*\nU\n\x04\x04\x1a\x02\x03\x12\x04\x86\x04\x02P\x1aG Whole-component-instance lifetime accounting and source elapsed time.\n\n\r\n\x05\x04\x1a\x02\x03\x06\x12\x04\x86\x04\x02\x1b\n\r\n\x05\x04\x1a\x02\x03\x01\x12\x04\x86\x04\x1c$\n\r\n\x05\x04\x1a\x02\x03\x03\x12\x04\x86\x04\'(\n\r\n\x05\x04\x1a\x02\x03\x08\x12\x04\x86\x04)O\n\x10\n\x08\x04\x1a\x02\x03\x08\x87\t\x19\x12\x04\x86\x04*N\nZ\n\x04\x04\x1a\x02\x04\x12\x04\x88\x04\x02T\x1aL The sole current refresh period, with explicitly scoped current ownership.\n\n\r\n\x05\x04\x1a\x02\x04\x06\x12\x04\x88\x04\x02\x1a\n\r\n\x05\x04\x1a\x02\x04\x01\x12\x04\x88\x04\x1b(\n\r\n\x05\x04\x1a\x02\x04\x03\x12\x04\x88\x04+,\n\r\n\x05\x04\x1a\x02\x04\x08\x12\x04\x88\x04-S\n\x10\n\x08\x04\x1a\x02\x04\x08\x87\t\x19\x12\x04\x88\x04.R\n\\\n\x04\x04\x1a\x02\x05\x12\x04\x8a\x04\x02*\x1aN Selected lifetime code counters; no latest-message set is retained per code.\n\n\r\n\x05\x04\x1a\x02\x05\x04\x12\x04\x8a\x04\x02\n\n\r\n\x05\x04\x1a\x02\x05\x06\x12\x04\x8a\x04\x0b\x1c\n\r\n\x05\x04\x1a\x02\x05\x01\x12\x04\x8a\x04\x1d%\n\r\n\x05\x04\x1a\x02\x05\x03\x12\x04\x8a\x04()\n[\n\x04\x04\x1a\x02\x06\x12\x04\x8c\x04\x02(\x1aM Admitted bounded component outcome windows, independent of refresh periods.\n\n\r\n\x05\x04\x1a\x02\x06\x04\x12\x04\x8c\x04\x02\n\n\r\n\x05\x04\x1a\x02\x06\x06\x12\x04\x8c\x04\x0b\x1b\n\r\n\x05\x04\x1a\x02\x06\x01\x12\x04\x8c\x04\x1c#\n\r\n\x05\x04\x1a\x02\x06\x03\x12\x04\x8c\x04&\'\nU\n\x02\x04\x1b\x12\x06\x90\x04\x00\x9b\x04\x01\x1aG Reports retained bounds and whether the requested page was truncated.\n\n\x0b\n\x03\x04\x1b\x01\x12\x04\x90\x04\x08\x1b\nS\n\x04\x04\x1b\x02\x00\x12\x04\x92\x04\x02,\x1aE Oldest sequence in the selected retained event history, if present.\n\n\r\n\x05\x04\x1b\x02\x00\x04\x12\x04\x92\x04\x02\n\n\r\n\x05\x04\x1b\x02\x00\x05\x12\x04\x92\x04\x0b\x11\n\r\n\x05\x04\x1b\x02\x00\x01\x12\x04\x92\x04\x12\'\n\r\n\x05\x04\x1b\x02\x00\x03\x12\x04\x92\x04*+\nS\n\x04\x04\x1b\x02\x01\x12\x04\x94\x04\x02,\x1aE Latest sequence in the selected retained event history, if present.\n\n\r\n\x05\x04\x1b\x02\x01\x04\x12\x04\x94\x04\x02\n\n\r\n\x05\x04\x1b\x02\x01\x05\x12\x04\x94\x04\x0b\x11\n\r\n\x05\x04\x1b\x02\x01\x01\x12\x04\x94\x04\x12\'\n\r\n\x05\x04\x1b\x02\x01\x03\x12\x04\x94\x04*+\n1\n\x04\x04\x1b\x02\x02\x12\x04\x96\x04\x02\x1d\x1a# Number of returned recent events.\n\n\r\n\x05\x04\x1b\x02\x02\x05\x12\x04\x96\x04\x02\x08\n\r\n\x05\x04\x1b\x02\x02\x01\x12\x04\x96\x04\t\x18\n\r\n\x05\x04\x1b\x02\x02\x03\x12\x04\x96\x04\x1b\x1c\n;\n\x04\x04\x1b\x02\x03\x12\x04\x98\x04\x02!\x1a- Number of returned component-instance rows.\n\n\r\n\x05\x04\x1b\x02\x03\x05\x12\x04\x98\x04\x02\x08\n\r\n\x05\x04\x1b\x02\x03\x01\x12\x04\x98\x04\t\x1c\n\r\n\x05\x04\x1b\x02\x03\x03\x12\x04\x98\x04\x1f \nJ\n\x04\x04\x1b\x02\x04\x12\x04\x9a\x04\x02\x1b\x1a< Query limits omitted otherwise matching retained evidence.\n\n\r\n\x05\x04\x1b\x02\x04\x05\x12\x04\x9a\x04\x02\x06\n\r\n\x05\x04\x1b\x02\x04\x01\x12\x04\x9a\x04\x07\x16\n\r\n\x05\x04\x1b\x02\x04\x03\x12\x04\x9a\x04\x19\x1a\nX\n\x02\x04\x1c\x12\x06\x9e\x04\x00\xc5\x04\x01\x1aJ Explicit counters for bounded-storage, admission, and projection losses.\n\n\x0b\n\x03\x04\x1c\x01\x12\x04\x9e\x04\x08\x16\nO\n\x04\x04\x1c\x02\x00\x12\x04\xa0\x04\x02L\x1aA Previously retained events reclaimed from the circular history.\n\n\r\n\x05\x04\x1c\x02\x00\x06\x12\x04\xa0\x04\x02\x11\n\r\n\x05\x04\x1c\x02\x00\x01\x12\x04\xa0\x04\x12 \n\r\n\x05\x04\x1c\x02\x00\x03\x12\x04\xa0\x04#$\n\r\n\x05\x04\x1c\x02\x00\x08\x12\x04\xa0\x04%K\n\x10\n\x08\x04\x1c\x02\x00\x08\x87\t\x19\x12\x04\xa0\x04&J\nU\n\x04\x04\x1c\x02\x01\x12\x04\xa2\x04\x02L\x1aG Accepted observations whose incoming event evidence was not retained.\n\n\r\n\x05\x04\x1c\x02\x01\x06\x12\x04\xa2\x04\x02\x11\n\r\n\x05\x04\x1c\x02\x01\x01\x12\x04\xa2\x04\x12 \n\r\n\x05\x04\x1c\x02\x01\x03\x12\x04\xa2\x04#$\n\r\n\x05\x04\x1c\x02\x01\x08\x12\x04\xa2\x04%K\n\x10\n\x08\x04\x1c\x02\x01\x08\x87\t\x19\x12\x04\xa2\x04&J\nL\n\x04\x04\x1c\x02\x02\x12\x04\xa4\x04\x02P\x1a> Closed component metadata reclaimed with dependent evidence.\n\n\r\n\x05\x04\x1c\x02\x02\x06\x12\x04\xa4\x04\x02\x11\n\r\n\x05\x04\x1c\x02\x02\x01\x12\x04\xa4\x04\x12$\n\r\n\x05\x04\x1c\x02\x02\x03\x12\x04\xa4\x04\'(\n\r\n\x05\x04\x1c\x02\x02\x08\x12\x04\xa4\x04)O\n\x10\n\x08\x04\x1c\x02\x02\x08\x87\t\x19\x12\x04\xa4\x04*N\nE\n\x04\x04\x1c\x02\x03\x12\x04\xa6\x04\x02Q\x1a7 Component registrations rejected by admission limits.\n\n\r\n\x05\x04\x1c\x02\x03\x06\x12\x04\xa6\x04\x02\x11\n\r\n\x05\x04\x1c\x02\x03\x01\x12\x04\xa6\x04\x12%\n\r\n\x05\x04\x1c\x02\x03\x03\x12\x04\xa6\x04()\n\r\n\x05\x04\x1c\x02\x03\x08\x12\x04\xa6\x04*P\n\x10\n\x08\x04\x1c\x02\x03\x08\x87\t\x19\x12\x04\xa6\x04+O\nP\n\x04\x04\x1c\x02\x04\x12\x04\xa8\x04\x02K\x1aB Code reservations or registrations rejected by admission limits.\n\n\r\n\x05\x04\x1c\x02\x04\x06\x12\x04\xa8\x04\x02\x11\n\r\n\x05\x04\x1c\x02\x04\x01\x12\x04\xa8\x04\x12\x1f\n\r\n\x05\x04\x1c\x02\x04\x03\x12\x04\xa8\x04\"#\n\r\n\x05\x04\x1c\x02\x04\x08\x12\x04\xa8\x04$J\n\x10\n\x08\x04\x1c\x02\x04\x08\x87\t\x19\x12\x04\xa8\x04%I\n@\n\x04\x04\x1c\x02\x05\x12\x04\xaa\x04\x02S\x1a2 Observations rejected before canonical counting.\n\n\r\n\x05\x04\x1c\x02\x05\x06\x12\x04\xaa\x04\x02\x11\n\r\n\x05\x04\x1c\x02\x05\x01\x12\x04\xaa\x04\x12\'\n\r\n\x05\x04\x1c\x02\x05\x03\x12\x04\xaa\x04*+\n\r\n\x05\x04\x1c\x02\x05\x08\x12\x04\xaa\x04,R\n\x10\n\x08\x04\x1c\x02\x05\x08\x87\t\x19\x12\x04\xaa\x04-Q\nF\n\x04\x04\x1c\x02\x06\x12\x04\xac\x04\x02P\x1a8 Detail shortened within its configured byte allowance.\n\n\r\n\x05\x04\x1c\x02\x06\x06\x12\x04\xac\x04\x02\x11\n\r\n\x05\x04\x1c\x02\x06\x01\x12\x04\xac\x04\x12$\n\r\n\x05\x04\x1c\x02\x06\x03\x12\x04\xac\x04\'(\n\r\n\x05\x04\x1c\x02\x06\x08\x12\x04\xac\x04)O\n\x10\n\x08\x04\x1c\x02\x06\x08\x87\t\x19\x12\x04\xac\x04*N\nS\n\x04\x04\x1c\x02\x07\x12\x04\xae\x04\x02M\x1aE Incoming optional detail omitted without evicting a retained event.\n\n\r\n\x05\x04\x1c\x02\x07\x06\x12\x04\xae\x04\x02\x11\n\r\n\x05\x04\x1c\x02\x07\x01\x12\x04\xae\x04\x12!\n\r\n\x05\x04\x1c\x02\x07\x03\x12\x04\xae\x04$%\n\r\n\x05\x04\x1c\x02\x07\x08\x12\x04\xae\x04&L\n\x10\n\x08\x04\x1c\x02\x07\x08\x87\t\x19\x12\x04\xae\x04\'K\nM\n\x04\x04\x1c\x02\x08\x12\x04\xb0\x04\x02T\x1a? Correlation fields shortened within their own byte allowance.\n\n\r\n\x05\x04\x1c\x02\x08\x06\x12\x04\xb0\x04\x02\x11\n\r\n\x05\x04\x1c\x02\x08\x01\x12\x04\xb0\x04\x12(\n\r\n\x05\x04\x1c\x02\x08\x03\x12\x04\xb0\x04+,\n\r\n\x05\x04\x1c\x02\x08\x08\x12\x04\xb0\x04-S\n\x10\n\x08\x04\x1c\x02\x08\x08\x87\t\x19\x12\x04\xb0\x04.R\nZ\n\x04\x04\x1c\x02\t\x12\x04\xb2\x04\x02S\x1aL Safe correlation fields omitted because detail storage could not fit them.\n\n\r\n\x05\x04\x1c\x02\t\x06\x12\x04\xb2\x04\x02\x11\n\r\n\x05\x04\x1c\x02\t\x01\x12\x04\xb2\x04\x12&\n\r\n\x05\x04\x1c\x02\t\x03\x12\x04\xb2\x04)+\n\r\n\x05\x04\x1c\x02\t\x08\x12\x04\xb2\x04,R\n\x10\n\x08\x04\x1c\x02\t\x08\x87\t\x19\x12\x04\xb2\x04-Q\nJ\n\x04\x04\x1c\x02\n\x12\x04\xb4\x04\x02P\x1a< Metadata registrations rejected by their admission budget.\n\n\r\n\x05\x04\x1c\x02\n\x06\x12\x04\xb4\x04\x02\x11\n\r\n\x05\x04\x1c\x02\n\x01\x12\x04\xb4\x04\x12#\n\r\n\x05\x04\x1c\x02\n\x03\x12\x04\xb4\x04&(\n\r\n\x05\x04\x1c\x02\n\x08\x12\x04\xb4\x04)O\n\x10\n\x08\x04\x1c\x02\n\x08\x87\t\x19\x12\x04\xb4\x04*N\nX\n\x04\x04\x1c\x02\x0b\x12\x04\xb6\x04\x02Y\x1aJ Accepted summary-only deltas whose classification could not be admitted.\n\n\r\n\x05\x04\x1c\x02\x0b\x06\x12\x04\xb6\x04\x02\x11\n\r\n\x05\x04\x1c\x02\x0b\x01\x12\x04\xb6\x04\x12,\n\r\n\x05\x04\x1c\x02\x0b\x03\x12\x04\xb6\x04/1\n\r\n\x05\x04\x1c\x02\x0b\x08\x12\x04\xb6\x042X\n\x10\n\x08\x04\x1c\x02\x0b\x08\x87\t\x19\x12\x04\xb6\x043W\nM\n\x04\x04\x1c\x02\x0c\x12\x04\xb8\x04\x02O\x1a? Window series rejected by their independent admission budget.\n\n\r\n\x05\x04\x1c\x02\x0c\x06\x12\x04\xb8\x04\x02\x11\n\r\n\x05\x04\x1c\x02\x0c\x01\x12\x04\xb8\x04\x12\"\n\r\n\x05\x04\x1c\x02\x0c\x03\x12\x04\xb8\x04%\'\n\r\n\x05\x04\x1c\x02\x0c\x08\x12\x04\xb8\x04(N\n\x10\n\x08\x04\x1c\x02\x0c\x08\x87\t\x19\x12\x04\xb8\x04)M\nO\n\x04\x04\x1c\x02\r\x12\x04\xba\x04\x02O\x1aA Query materializations rejected by bounded workspace admission.\n\n\r\n\x05\x04\x1c\x02\r\x06\x12\x04\xba\x04\x02\x11\n\r\n\x05\x04\x1c\x02\r\x01\x12\x04\xba\x04\x12\"\n\r\n\x05\x04\x1c\x02\r\x03\x12\x04\xba\x04%\'\n\r\n\x05\x04\x1c\x02\r\x08\x12\x04\xba\x04(N\n\x10\n\x08\x04\x1c\x02\r\x08\x87\t\x19\x12\x04\xba\x04)M\nR\n\x04\x04\x1c\x02\x0e\x12\x04\xbc\x04\x02Q\x1aD Recording attempts for closed or replaced component registrations.\n\n\r\n\x05\x04\x1c\x02\x0e\x06\x12\x04\xbc\x04\x02\x11\n\r\n\x05\x04\x1c\x02\x0e\x01\x12\x04\xbc\x04\x12$\n\r\n\x05\x04\x1c\x02\x0e\x03\x12\x04\xbc\x04\')\n\r\n\x05\x04\x1c\x02\x0e\x08\x12\x04\xbc\x04*P\n\x10\n\x08\x04\x1c\x02\x0e\x08\x87\t\x19\x12\x04\xbc\x04+O\nU\n\x04\x04\x1c\x02\x0f\x12\x04\xbe\x04\x02\\\x1aG Optional projection deliveries omitted for lack of bounded workspace.\n\n\r\n\x05\x04\x1c\x02\x0f\x06\x12\x04\xbe\x04\x02\x11\n\r\n\x05\x04\x1c\x02\x0f\x01\x12\x04\xbe\x04\x12/\n\r\n\x05\x04\x1c\x02\x0f\x03\x12\x04\xbe\x0424\n\r\n\x05\x04\x1c\x02\x0f\x08\x12\x04\xbe\x045[\n\x10\n\x08\x04\x1c\x02\x0f\x08\x87\t\x19\x12\x04\xbe\x046Z\nO\n\x04\x04\x1c\x02\x10\x12\x04\xc0\x04\x02S\x1aA Projection callbacks whose panic was isolated after acceptance.\n\n\r\n\x05\x04\x1c\x02\x10\x06\x12\x04\xc0\x04\x02\x11\n\r\n\x05\x04\x1c\x02\x10\x01\x12\x04\xc0\x04\x12&\n\r\n\x05\x04\x1c\x02\x10\x03\x12\x04\xc0\x04)+\n\r\n\x05\x04\x1c\x02\x10\x08\x12\x04\xc0\x04,R\n\x10\n\x08\x04\x1c\x02\x10\x08\x87\t\x19\x12\x04\xc0\x04-Q\nH\n\x04\x04\x1c\x02\x11\x12\x04\xc2\x04\x02U\x1a: Cyclic or excessively deep projection chains suppressed.\n\n\r\n\x05\x04\x1c\x02\x11\x06\x12\x04\xc2\x04\x02\x11\n\r\n\x05\x04\x1c\x02\x11\x01\x12\x04\xc2\x04\x12(\n\r\n\x05\x04\x1c\x02\x11\x03\x12\x04\xc2\x04+-\n\r\n\x05\x04\x1c\x02\x11\x08\x12\x04\xc2\x04.T\n\x10\n\x08\x04\x1c\x02\x11\x08\x87\t\x19\x12\x04\xc2\x04/S\nL\n\x04\x04\x1c\x02\x12\x12\x04\xc4\x04\x02\x1f\x1a> Unique sequence allocation has exhausted its representation.\n\n\r\n\x05\x04\x1c\x02\x12\x05\x12\x04\xc4\x04\x02\x06\n\r\n\x05\x04\x1c\x02\x12\x01\x12\x04\xc4\x04\x07\x19\n\r\n\x05\x04\x1c\x02\x12\x03\x12\x04\xc4\x04\x1c\x1e\nR\n\x02\x04\x1d\x12\x06\xc8\x04\x00\xd2\x04\x01\x1aD Availability and optional reason for one named diagnostic feature.\n\n\x0b\n\x03\x04\x1d\x01\x12\x04\xc8\x04\x08\x1c\n8\n\x04\x04\x1d\x02\x00\x12\x04\xca\x04\x02\x12\x1a* Bounded capability name, such as `otel`.\n\n\r\n\x05\x04\x1d\x02\x00\x05\x12\x04\xca\x04\x02\x08\n\r\n\x05\x04\x1d\x02\x00\x01\x12\x04\xca\x04\t\r\n\r\n\x05\x04\x1d\x02\x00\x03\x12\x04\xca\x04\x10\x11\n@\n\x04\x04\x1d\x02\x01\x12\x06\xcc\x04\x02\xcf\x04\x05\x1a0 Availability of evidence from this capability.\n\n\r\n\x05\x04\x1d\x02\x01\x06\x12\x04\xcc\x04\x02\x18\n\r\n\x05\x04\x1d\x02\x01\x01\x12\x04\xcc\x04\x19%\n\r\n\x05\x04\x1d\x02\x01\x03\x12\x04\xcc\x04()\n\x0f\n\x05\x04\x1d\x02\x01\x08\x12\x06\xcc\x04*\xcf\x04\x04\n\x12\n\x08\x04\x1d\x02\x01\x08\x87\t\x10\x12\x06\xcc\x04+\xcf\x04\x03\nE\n\x04\x04\x1d\x02\x02\x12\x04\xd1\x04\x02\x1d\x1a7 Bounded explanatory reason, such as `not_integrated`.\n\n\r\n\x05\x04\x1d\x02\x02\x04\x12\x04\xd1\x04\x02\n\n\r\n\x05\x04\x1d\x02\x02\x05\x12\x04\xd1\x04\x0b\x11\n\r\n\x05\x04\x1d\x02\x02\x01\x12\x04\xd1\x04\x12\x18\n\r\n\x05\x04\x1d\x02\x02\x03\x12\x04\xd1\x04\x1b\x1c\nE\n\x02\x05\x05\x12\x06\xd5\x04\x00\xda\x04\x01\x1a7 Aggregation scope of the reported lifetime summaries.\n\n\x0b\n\x03\x05\x05\x01\x12\x04\xd5\x04\x05\x1b\nZ\n\x04\x05\x05\x02\x00\x12\x04\xd7\x04\x02+\x1aL No value supplied; invalid where this contract requires an explicit value.\n\n\r\n\x05\x05\x05\x02\x00\x01\x12\x04\xd7\x04\x02&\n\r\n\x05\x05\x05\x02\x00\x02\x12\x04\xd7\x04)*\n_\n\x04\x05\x05\x02\x01\x12\x04\xd9\x04\x028\x1aQ Summaries describe the whole component lifetime, independently of page filters.\n\n\r\n\x05\x05\x05\x02\x01\x01\x12\x04\xd9\x04\x023\n\r\n\x05\x05\x05\x02\x01\x02\x12\x04\xd9\x0467\na\n\x02\x04\x1e\x12\x06\xdd\x04\x00\xee\x04\x01\x1aS Describes snapshot availability, aggregation scope, retention, and evidence loss.\n\n\x0b\n\x03\x04\x1e\x01\x12\x04\xdd\x04\x08\x1a\nA\n\x04\x04\x1e\x02\x00\x12\x06\xdf\x04\x02\xe2\x04\x05\x1a1 Availability of this diagnostic source context.\n\n\r\n\x05\x04\x1e\x02\x00\x06\x12\x04\xdf\x04\x02\x18\n\r\n\x05\x04\x1e\x02\x00\x01\x12\x04\xdf\x04\x19%\n\r\n\x05\x04\x1e\x02\x00\x03\x12\x04\xdf\x04()\n\x0f\n\x05\x04\x1e\x02\x00\x08\x12\x06\xdf\x04*\xe2\x04\x04\n\x12\n\x08\x04\x1e\x02\x00\x08\x87\t\x10\x12\x06\xdf\x04+\xe2\x04\x03\nM\n\x04\x04\x1e\x02\x01\x12\x06\xe4\x04\x02\xe7\x04\x05\x1a= Scope of component summaries and component outcome windows.\n\n\r\n\x05\x04\x1e\x02\x01\x06\x12\x04\xe4\x04\x02\x18\n\r\n\x05\x04\x1e\x02\x01\x01\x12\x04\xe4\x04\x19&\n\r\n\x05\x04\x1e\x02\x01\x03\x12\x04\xe4\x04)*\n\x0f\n\x05\x04\x1e\x02\x01\x08\x12\x06\xe4\x04+\xe7\x04\x04\n\x12\n\x08\x04\x1e\x02\x01\x08\x87\t\x10\x12\x06\xe4\x04,\xe7\x04\x03\nG\n\x04\x04\x1e\x02\x02\x12\x04\xe9\x04\x02K\x1a9 Bounded selected history boundaries and query omission.\n\n\r\n\x05\x04\x1e\x02\x02\x06\x12\x04\xe9\x04\x02\x15\n\r\n\x05\x04\x1e\x02\x02\x01\x12\x04\xe9\x04\x16\x1f\n\r\n\x05\x04\x1e\x02\x02\x03\x12\x04\xe9\x04\"#\n\r\n\x05\x04\x1e\x02\x02\x08\x12\x04\xe9\x04$J\n\x10\n\x08\x04\x1e\x02\x02\x08\x87\t\x19\x12\x04\xe9\x04%I\nA\n\x04\x04\x1e\x02\x03\x12\x04\xeb\x04\x02A\x1a3 Reserved cumulative loss and capacity accounting.\n\n\r\n\x05\x04\x1e\x02\x03\x06\x12\x04\xeb\x04\x02\x10\n\r\n\x05\x04\x1e\x02\x03\x01\x12\x04\xeb\x04\x11\x15\n\r\n\x05\x04\x1e\x02\x03\x03\x12\x04\xeb\x04\x18\x19\n\r\n\x05\x04\x1e\x02\x03\x08\x12\x04\xeb\x04\x1a@\n\x10\n\x08\x04\x1e\x02\x03\x08\x87\t\x19\x12\x04\xeb\x04\x1b?\nX\n\x04\x04\x1e\x02\x04\x12\x04\xed\x04\x021\x1aJ Producer integrations whose support or absence is explicitly advertised.\n\n\r\n\x05\x04\x1e\x02\x04\x04\x12\x04\xed\x04\x02\n\n\r\n\x05\x04\x1e\x02\x04\x06\x12\x04\xed\x04\x0b\x1f\n\r\n\x05\x04\x1e\x02\x04\x01\x12\x04\xed\x04 ,\n\r\n\x05\x04\x1e\x02\x04\x03\x12\x04\xed\x04/0\nX\n\x02\x04\x1f\x12\x06\xf1\x04\x00\xfc\x04\x01\x1aJ Canonical snapshot position; it does not grant transport read authority.\n\n\x0b\n\x03\x04\x1f\x01\x12\x04\xf1\x04\x08\x18\nE\n\x04\x04\x1f\x02\x00\x12\x04\xf3\x04\x02M\x1a7 Source incarnation whose retained state was selected.\n\n\r\n\x05\x04\x1f\x02\x00\x05\x12\x04\xf3\x04\x02\x08\n\r\n\x05\x04\x1f\x02\x00\x01\x12\x04\xf3\x04\t\x1b\n\r\n\x05\x04\x1f\x02\x00\x03\x12\x04\xf3\x04\x1e\x1f\n\r\n\x05\x04\x1f\x02\x00\x08\x12\x04\xf3\x04 L\n\x10\n\x08\x04\x1f\x02\x00\x08\x87\t\x0e\x12\x04\xf3\x04!K\nS\n\x04\x04\x1f\x02\x01\x12\x04\xf5\x04\x02\x16\x1aE Source revision for detecting intervening mutations or reclamation.\n\n\r\n\x05\x04\x1f\x02\x01\x05\x12\x04\xf5\x04\x02\x08\n\r\n\x05\x04\x1f\x02\x01\x01\x12\x04\xf5\x04\t\x11\n\r\n\x05\x04\x1f\x02\x01\x03\x12\x04\xf5\x04\x14\x15\nP\n\x04\x04\x1f\x02\x02\x12\x04\xf7\x04\x02\x1e\x1aB Next component-instance position in the bounded source ordering.\n\n\r\n\x05\x04\x1f\x02\x02\x05\x12\x04\xf7\x04\x02\x08\n\r\n\x05\x04\x1f\x02\x02\x01\x12\x04\xf7\x04\t\x19\n\r\n\x05\x04\x1f\x02\x02\x03\x12\x04\xf7\x04\x1c\x1d\nJ\n\x04\x04\x1f\x02\x03\x12\x04\xf9\x04\x02\x1a\x1a< Next recent-event position in the bounded source ordering.\n\n\r\n\x05\x04\x1f\x02\x03\x05\x12\x04\xf9\x04\x02\x08\n\r\n\x05\x04\x1f\x02\x03\x01\x12\x04\xf9\x04\t\x15\n\r\n\x05\x04\x1f\x02\x03\x03\x12\x04\xf9\x04\x18\x19\nL\n\x04\x04\x1f\x02\x04\x12\x04\xfb\x04\x02\x13\x1a> Source-validated fingerprint of the intersected query scope.\n\n\r\n\x05\x04\x1f\x02\x04\x05\x12\x04\xfb\x04\x02\x08\n\r\n\x05\x04\x1f\x02\x04\x01\x12\x04\xfb\x04\t\x0e\n\r\n\x05\x04\x1f\x02\x04\x03\x12\x04\xfb\x04\x11\x12b\x06proto3\n\x90Y\n3nvidia/nemo/relay/worker/v1/diagnostic_memory.proto\x12\x1bnvidia.nemo.relay.worker.v1\x1a\x1bbuf/validate/validate.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a5nvidia/nemo/relay/worker/v1/diagnostic_resource.proto\x1a-nvidia/nemo/relay/worker/v1/diagnostics.proto\"\xde\x06\n\x15DiagnosticMemoryUsage\x12%\n\x0ereserved_bytes\x18\x01 \x01(\x04R\rreservedBytes\x12\x1e\n\ncomponents\x18\x02 \x01(\x04R\ncomponents\x12\x1a\n\x08counters\x18\x03 \x01(\x04R\x08counters\x12\x16\n\x06events\x18\x04 \x01(\x04R\x06events\x12(\n\x10event_slot_bytes\x18\x05 \x01(\x04R\x0eeventSlotBytes\x12%\n\x0eevent_capacity\x18\x06 \x01(\x04R\reventCapacity\x124\n\x16history_reserved_bytes\x18\x07 \x01(\x04R\x14historyReservedBytes\x124\n\x16history_occupied_bytes\x18\x08 \x01(\x04R\x14historyOccupiedBytes\x12!\n\x0cdetail_bytes\x18\t \x01(\x04R\x0bdetailBytes\x122\n\x15detail_capacity_bytes\x18\n \x01(\x04R\x13detailCapacityBytes\x122\n\x15detail_reserved_bytes\x18\x0b \x01(\x04R\x13detailReservedBytes\x122\n\x15detail_metadata_bytes\x18\x0c \x01(\x04R\x13detailMetadataBytes\x120\n\x14detail_logical_bytes\x18\r \x01(\x04R\x12detailLogicalBytes\x12,\n\x12detail_slack_bytes\x18\x0e \x01(\x04R\x10detailSlackBytes\x12%\n\x0emetadata_bytes\x18\x0f \x01(\x04R\rmetadataBytes\x12%\n\x0ewindow_buckets\x18\x10 \x01(\x04R\rwindowBuckets\x12\x1e\n\nextensions\x18\x11 \x01(\x04R\nextensions\x12)\n\x10query_workspaces\x18\x12 \x01(\x04R\x0fqueryWorkspaces\x12 \n\x0bprojections\x18\x13 \x01(\x04R\x0bprojections\x123\n\x15projection_workspaces\x18\x14 \x01(\x04R\x14projectionWorkspaces\"\xa2\x02\n\x14EntryMemoryFootprint\x12!\n\x0cheader_bytes\x18\x01 \x01(\x04R\x0bheaderBytes\x120\n\x14detail_payload_bytes\x18\x02 \x01(\x04R\x12detailPayloadBytes\x122\n\x15detail_metadata_bytes\x18\x03 \x01(\x04R\x13detailMetadataBytes\x12,\n\x12logical_text_bytes\x18\x04 \x01(\x04R\x10logicalTextBytes\x12,\n\x12detail_slack_bytes\x18\x05 \x01(\x04R\x10detailSlackBytes\x12%\n\x0eoccupied_bytes\x18\x06 \x01(\x04R\roccupiedBytes\"\xc5\x02\n\x18ComponentMemoryFootprint\x12-\n\x12registration_bytes\x18\x01 \x01(\x04R\x11registrationBytes\x12#\n\rcounter_bytes\x18\x02 \x01(\x04R\x0ccounterBytes\x12!\n\x0cwindow_bytes\x18\x03 \x01(\x04R\x0bwindowBytes\x12\'\n\x0fextension_bytes\x18\x04 \x01(\x04R\x0eextensionBytes\x120\n\x14retained_event_count\x18\x05 \x01(\x04R\x12retainedEventCount\x120\n\x14retained_event_bytes\x18\x06 \x01(\x04R\x12retainedEventBytes\x12%\n\x0eoccupied_bytes\x18\x07 \x01(\x04R\roccupiedBytes\"\xe7\x01\n\x10EntryMemoryUsage\x12\x1a\n\x08sequence\x18\x01 \x01(\x04R\x08sequence\x12^\n\tcomponent\x18\x02 \x01(\x0b28.nvidia.nemo.relay.worker.v1.DiagnosticComponentIdentityB\x06\xbaH\x03\xc8\x01\x01R\tcomponent\x12W\n\tfootprint\x18\x03 \x01(\x0b21.nvidia.nemo.relay.worker.v1.EntryMemoryFootprintB\x06\xbaH\x03\xc8\x01\x01R\tfootprint\"\xd3\x01\n\x14ComponentMemoryUsage\x12^\n\tcomponent\x18\x01 \x01(\x0b28.nvidia.nemo.relay.worker.v1.DiagnosticComponentIdentityB\x06\xbaH\x03\xc8\x01\x01R\tcomponent\x12[\n\tfootprint\x18\x02 \x01(\x0b25.nvidia.nemo.relay.worker.v1.ComponentMemoryFootprintB\x06\xbaH\x03\xc8\x01\x01R\tfootprint\"\xbb\x01\n\x15MemorySelectionTotals\x12\x1e\n\ncomponents\x18\x01 \x01(\x04R\ncomponents\x12\x16\n\x06events\x18\x02 \x01(\x04R\x06events\x128\n\x18component_occupied_bytes\x18\x03 \x01(\x04R\x16componentOccupiedBytes\x120\n\x14entry_occupied_bytes\x18\x04 \x01(\x04R\x12entryOccupiedBytes\"\x99\x08\n\x14DiagnosticMemoryPage\x12.\n\x0eschema_version\x18\x01 \x01(\rB\x07\xbaH\x04*\x02\x08\x01R\rschemaVersion\x12U\n\x06source\x18\x02 \x01(\x0b25.nvidia.nemo.relay.worker.v1.DiagnosticSourceIdentityB\x06\xbaH\x03\xc8\x01\x01R\x06source\x12E\n\x0ccapture_time\x18\x03 \x01(\x0b2\x1a.google.protobuf.TimestampB\x06\xbaH\x03\xc8\x01\x01R\x0bcaptureTime\x12\x1a\n\x08sequence\x18\x04 \x01(\x04R\x08sequence\x12X\n\taggregate\x18\x05 \x01(\x0b22.nvidia.nemo.relay.worker.v1.DiagnosticMemoryUsageB\x06\xbaH\x03\xc8\x01\x01R\taggregate\x128\n\x18component_occupied_bytes\x18\x06 \x01(\x04R\x16componentOccupiedBytes\x12L\n#shared_or_unassigned_reserved_bytes\x18\x07 \x01(\x04R\x1fsharedOrUnassignedReservedBytes\x12G\n\x04loss\x18\x08 \x01(\x0b2+.nvidia.nemo.relay.worker.v1.DiagnosticLossB\x06\xbaH\x03\xc8\x01\x01R\x04loss\x12X\n\tselection\x18\t \x01(\x0b22.nvidia.nemo.relay.worker.v1.MemorySelectionTotalsB\x06\xbaH\x03\xc8\x01\x01R\tselection\x12N\n\x04page\x18\n \x01(\x0b22.nvidia.nemo.relay.worker.v1.MemorySelectionTotalsB\x06\xbaH\x03\xc8\x01\x01R\x04page\x12Q\n\ncomponents\x18\x0b \x03(\x0b21.nvidia.nemo.relay.worker.v1.ComponentMemoryUsageR\ncomponents\x12G\n\x07entries\x18\x0c \x03(\x0b2-.nvidia.nemo.relay.worker.v1.EntryMemoryUsageR\x07entries\x12S\n\x08resource\x18\r \x01(\x0b2/.nvidia.nemo.relay.worker.v1.ResourceMemoryViewB\x06\xbaH\x03\xc8\x01\x01R\x08resource\x12Q\n\x0ccontinuation\x18\x0e \x01(\x0b2-.nvidia.nemo.relay.worker.v1.DiagnosticCursorR\x0ccontinuationJ\xa7>\n\x07\x12\x05\x05\x00\x98\x01\x01\n\xdc\x01\n\x01\x0c\x12\x03\x05\x00\x122\x88\x01 SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n SPDX-License-Identifier: Apache-2.0\n2G Defines bounded diagnostic backing-memory inspection and attribution.\n\n\x08\n\x01\x02\x12\x03\x07\x00$\n\t\n\x02\x03\x00\x12\x03\t\x00%\n\t\n\x02\x03\x01\x12\x03\n\x00)\n\t\n\x02\x03\x02\x12\x03\x0b\x00?\n\t\n\x02\x03\x03\x12\x03\x0c\x007\nQ\n\x02\x04\x00\x12\x04\x0f\x008\x01\x1aE Typed diagnostic memory usage preserving the shared runtime fields.\n\n\n\n\x03\x04\x00\x01\x12\x03\x0f\x08\x1d\nH\n\x04\x04\x00\x02\x00\x12\x03\x11\x02\x1c\x1a; Bytes reserved for context-owned backend backing storage.\n\n\x0c\n\x05\x04\x00\x02\x00\x05\x12\x03\x11\x02\x08\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03\x11\t\x17\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03\x11\x1a\x1b\nB\n\x04\x04\x00\x02\x01\x12\x03\x13\x02\x18\x1a5 Occupied active or retained closed component slots.\n\n\x0c\n\x05\x04\x00\x02\x01\x05\x12\x03\x13\x02\x08\n\x0c\n\x05\x04\x00\x02\x01\x01\x12\x03\x13\t\x13\n\x0c\n\x05\x04\x00\x02\x01\x03\x12\x03\x13\x16\x17\nO\n\x04\x04\x00\x02\x02\x12\x03\x15\x02\x16\x1aB Occupied lifetime code-counter slots across admitted components.\n\n\x0c\n\x05\x04\x00\x02\x02\x05\x12\x03\x15\x02\x08\n\x0c\n\x05\x04\x00\x02\x02\x01\x12\x03\x15\t\x11\n\x0c\n\x05\x04\x00\x02\x02\x03\x12\x03\x15\x14\x15\nH\n\x04\x04\x00\x02\x03\x12\x03\x17\x02\x14\x1a; Currently retained shared circular-history event headers.\n\n\x0c\n\x05\x04\x00\x02\x03\x05\x12\x03\x17\x02\x08\n\x0c\n\x05\x04\x00\x02\x03\x01\x12\x03\x17\t\x0f\n\x0c\n\x05\x04\x00\x02\x03\x03\x12\x03\x17\x12\x13\nW\n\x04\x04\x00\x02\x04\x12\x03\x19\x02\x1e\x1aJ Compiled size of one fixed event slot, excluding separately stored text.\n\n\x0c\n\x05\x04\x00\x02\x04\x05\x12\x03\x19\x02\x08\n\x0c\n\x05\x04\x00\x02\x04\x01\x12\x03\x19\t\x19\n\x0c\n\x05\x04\x00\x02\x04\x03\x12\x03\x19\x1c\x1d\nD\n\x04\x04\x00\x02\x05\x12\x03\x1b\x02\x1c\x1a7 Event slots admitted for the shared circular history.\n\n\x0c\n\x05\x04\x00\x02\x05\x05\x12\x03\x1b\x02\x08\n\x0c\n\x05\x04\x00\x02\x05\x01\x12\x03\x1b\t\x17\n\x0c\n\x05\x04\x00\x02\x05\x03\x12\x03\x1b\x1a\x1b\n\\\n\x04\x04\x00\x02\x06\x12\x03\x1d\x02$\x1aO Complete history allocation, including all slots, shared header, and padding.\n\n\x0c\n\x05\x04\x00\x02\x06\x05\x12\x03\x1d\x02\x08\n\x0c\n\x05\x04\x00\x02\x06\x01\x12\x03\x1d\t\x1f\n\x0c\n\x05\x04\x00\x02\x06\x03\x12\x03\x1d\"#\n^\n\x04\x04\x00\x02\x07\x12\x03\x1f\x02$\x1aQ Retained slot bytes; excludes the shared history header and separate text pool.\n\n\x0c\n\x05\x04\x00\x02\x07\x05\x12\x03\x1f\x02\x08\n\x0c\n\x05\x04\x00\x02\x07\x01\x12\x03\x1f\t\x1f\n\x0c\n\x05\x04\x00\x02\x07\x03\x12\x03\x1f\"#\nG\n\x04\x04\x00\x02\x08\x12\x03!\x02\x1a\x1a: Pool payload bytes occupied in whole reclaimable blocks.\n\n\x0c\n\x05\x04\x00\x02\x08\x05\x12\x03!\x02\x08\n\x0c\n\x05\x04\x00\x02\x08\x01\x12\x03!\t\x15\n\x0c\n\x05\x04\x00\x02\x08\x03\x12\x03!\x18\x19\nL\n\x04\x04\x00\x02\t\x12\x03#\x02$\x1a? Actual payload capacity, rounded down to whole detail blocks.\n\n\x0c\n\x05\x04\x00\x02\t\x05\x12\x03#\x02\x08\n\x0c\n\x05\x04\x00\x02\t\x01\x12\x03#\t\x1e\n\x0c\n\x05\x04\x00\x02\t\x03\x12\x03#!#\nV\n\x04\x04\x00\x02\n\x12\x03%\x02$\x1aI Complete detail-pool backing: payload capacity plus all block metadata.\n\n\x0c\n\x05\x04\x00\x02\n\x05\x12\x03%\x02\x08\n\x0c\n\x05\x04\x00\x02\n\x01\x12\x03%\t\x1e\n\x0c\n\x05\x04\x00\x02\n\x03\x12\x03%!#\nO\n\x04\x04\x00\x02\x0b\x12\x03\'\x02$\x1aB Reserved metadata bytes for all detail blocks, occupied or free.\n\n\x0c\n\x05\x04\x00\x02\x0b\x05\x12\x03\'\x02\x08\n\x0c\n\x05\x04\x00\x02\x0b\x01\x12\x03\'\t\x1e\n\x0c\n\x05\x04\x00\x02\x0b\x03\x12\x03\'!#\nS\n\x04\x04\x00\x02\x0c\x12\x03)\x02#\x1aF Retained UTF-8 message and correlation bytes, excluding block slack.\n\n\x0c\n\x05\x04\x00\x02\x0c\x05\x12\x03)\x02\x08\n\x0c\n\x05\x04\x00\x02\x0c\x01\x12\x03)\t\x1d\n\x0c\n\x05\x04\x00\x02\x0c\x03\x12\x03) \"\nZ\n\x04\x04\x00\x02\r\x12\x03+\x02!\x1aM Unused payload bytes inside occupied blocks; excludes entirely free blocks.\n\n\x0c\n\x05\x04\x00\x02\r\x05\x12\x03+\x02\x08\n\x0c\n\x05\x04\x00\x02\r\x01\x12\x03+\t\x1b\n\x0c\n\x05\x04\x00\x02\r\x03\x12\x03+\x1e \nM\n\x04\x04\x00\x02\x0e\x12\x03-\x02\x1d\x1a@ Admitted key, ownership, and extension metadata content bytes.\n\n\x0c\n\x05\x04\x00\x02\x0e\x05\x12\x03-\x02\x08\n\x0c\n\x05\x04\x00\x02\x0e\x01\x12\x03-\t\x17\n\x0c\n\x05\x04\x00\x02\x0e\x03\x12\x03-\x1a\x1c\nM\n\x04\x04\x00\x02\x0f\x12\x03/\x02\x1d\x1a@ Reserved rolling outcome-bucket slots belonging to components.\n\n\x0c\n\x05\x04\x00\x02\x0f\x05\x12\x03/\x02\x08\n\x0c\n\x05\x04\x00\x02\x0f\x01\x12\x03/\t\x17\n\x0c\n\x05\x04\x00\x02\x0f\x03\x12\x03/\x1a\x1c\nT\n\x04\x04\x00\x02\x10\x12\x031\x02\x19\x1aG Admitted extension descriptors, including retained closed components.\n\n\x0c\n\x05\x04\x00\x02\x10\x05\x12\x031\x02\x08\n\x0c\n\x05\x04\x00\x02\x10\x01\x12\x031\t\x13\n\x0c\n\x05\x04\x00\x02\x10\x03\x12\x031\x16\x18\nS\n\x04\x04\x00\x02\x11\x12\x033\x02\x1f\x1aF Query leases currently holding preallocated materialization buffers.\n\n\x0c\n\x05\x04\x00\x02\x11\x05\x12\x033\x02\x08\n\x0c\n\x05\x04\x00\x02\x11\x01\x12\x033\t\x19\n\x0c\n\x05\x04\x00\x02\x11\x03\x12\x033\x1c\x1e\nD\n\x04\x04\x00\x02\x12\x12\x035\x02\x1a\x1a7 Optional projection subscriptions currently admitted.\n\n\x0c\n\x05\x04\x00\x02\x12\x05\x12\x035\x02\x08\n\x0c\n\x05\x04\x00\x02\x12\x01\x12\x035\t\x14\n\x0c\n\x05\x04\x00\x02\x12\x03\x12\x035\x17\x19\nT\n\x04\x04\x00\x02\x13\x12\x037\x02$\x1aG Projection workspaces currently materializing or delivering evidence.\n\n\x0c\n\x05\x04\x00\x02\x13\x05\x12\x037\x02\x08\n\x0c\n\x05\x04\x00\x02\x13\x01\x12\x037\t\x1e\n\x0c\n\x05\x04\x00\x02\x13\x03\x12\x037!#\nP\n\x02\x04\x01\x12\x04;\x00H\x01\x1aD Typed entry memory footprint preserving the shared runtime fields.\n\n\n\n\x03\x04\x01\x01\x12\x03;\x08\x1c\n0\n\x04\x04\x01\x02\x00\x12\x03=\x02\x1a\x1a# Fixed event slot, excluding text.\n\n\x0c\n\x05\x04\x01\x02\x00\x05\x12\x03=\x02\x08\n\x0c\n\x05\x04\x01\x02\x00\x01\x12\x03=\t\x15\n\x0c\n\x05\x04\x01\x02\x00\x03\x12\x03=\x18\x19\nM\n\x04\x04\x01\x02\x01\x12\x03?\x02\"\x1a@ Whole payload blocks occupied by the single packed text chain.\n\n\x0c\n\x05\x04\x01\x02\x01\x05\x12\x03?\x02\x08\n\x0c\n\x05\x04\x01\x02\x01\x01\x12\x03?\t\x1d\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x03? !\n2\n\x04\x04\x01\x02\x02\x12\x03A\x02#\x1a% Metadata for those occupied blocks.\n\n\x0c\n\x05\x04\x01\x02\x02\x05\x12\x03A\x02\x08\n\x0c\n\x05\x04\x01\x02\x02\x01\x12\x03A\t\x1e\n\x0c\n\x05\x04\x01\x02\x02\x03\x12\x03A!\"\nZ\n\x04\x04\x01\x02\x03\x12\x03C\x02 \x1aM Retained UTF-8 content, including correlations, without exposing that text.\n\n\x0c\n\x05\x04\x01\x02\x03\x05\x12\x03C\x02\x08\n\x0c\n\x05\x04\x01\x02\x03\x01\x12\x03C\t\x1b\n\x0c\n\x05\x04\x01\x02\x03\x03\x12\x03C\x1e\x1f\n4\n\x04\x04\x01\x02\x04\x12\x03E\x02 \x1a\' Payload slack within occupied blocks.\n\n\x0c\n\x05\x04\x01\x02\x04\x05\x12\x03E\x02\x08\n\x0c\n\x05\x04\x01\x02\x04\x01\x12\x03E\t\x1b\n\x0c\n\x05\x04\x01\x02\x04\x03\x12\x03E\x1e\x1f\n?\n\x04\x04\x01\x02\x05\x12\x03G\x02\x1c\x1a2 Header plus detail payload plus detail metadata.\n\n\x0c\n\x05\x04\x01\x02\x05\x05\x12\x03G\x02\x08\n\x0c\n\x05\x04\x01\x02\x05\x01\x12\x03G\t\x17\n\x0c\n\x05\x04\x01\x02\x05\x03\x12\x03G\x1a\x1b\nT\n\x02\x04\x02\x12\x04K\x00Z\x01\x1aH Typed component memory footprint preserving the shared runtime fields.\n\n\n\n\x03\x04\x02\x01\x12\x03K\x08 \nP\n\x04\x04\x02\x02\x00\x12\x03M\x02 \x1aC Occupied registration element, including inline text and padding.\n\n\x0c\n\x05\x04\x02\x02\x00\x05\x12\x03M\x02\x08\n\x0c\n\x05\x04\x02\x02\x00\x01\x12\x03M\t\x1b\n\x0c\n\x05\x04\x02\x02\x00\x03\x12\x03M\x1e\x1f\nJ\n\x04\x04\x02\x02\x01\x12\x03O\x02\x1b\x1a= Assigned code-counter elements, including unobserved codes.\n\n\x0c\n\x05\x04\x02\x02\x01\x05\x12\x03O\x02\x08\n\x0c\n\x05\x04\x02\x02\x01\x01\x12\x03O\t\x16\n\x0c\n\x05\x04\x02\x02\x01\x03\x12\x03O\x19\x1a\nB\n\x04\x04\x02\x02\x02\x12\x03Q\x02\x1a\x1a5 Assigned window elements, including unused buckets.\n\n\x0c\n\x05\x04\x02\x02\x02\x05\x12\x03Q\x02\x08\n\x0c\n\x05\x04\x02\x02\x02\x01\x12\x03Q\t\x15\n\x0c\n\x05\x04\x02\x02\x02\x03\x12\x03Q\x18\x19\n.\n\x04\x04\x02\x02\x03\x12\x03S\x02\x1d\x1a! Assigned extension descriptors.\n\n\x0c\n\x05\x04\x02\x02\x03\x05\x12\x03S\x02\x08\n\x0c\n\x05\x04\x02\x02\x03\x01\x12\x03S\t\x18\n\x0c\n\x05\x04\x02\x02\x03\x03\x12\x03S\x1b\x1c\n@\n\x04\x04\x02\x02\x04\x12\x03U\x02\"\x1a3 Retained observations owned by this registration.\n\n\x0c\n\x05\x04\x02\x02\x04\x05\x12\x03U\x02\x08\n\x0c\n\x05\x04\x02\x02\x04\x01\x12\x03U\t\x1d\n\x0c\n\x05\x04\x02\x02\x04\x03\x12\x03U !\n6\n\x04\x04\x02\x02\x05\x12\x03W\x02\"\x1a) Sum of their complete entry footprints.\n\n\x0c\n\x05\x04\x02\x02\x05\x05\x12\x03W\x02\x08\n\x0c\n\x05\x04\x02\x02\x05\x01\x12\x03W\t\x1d\n\x0c\n\x05\x04\x02\x02\x05\x03\x12\x03W !\n@\n\x04\x04\x02\x02\x06\x12\x03Y\x02\x1c\x1a3 Sum of assigned backing and retained-event bytes.\n\n\x0c\n\x05\x04\x02\x02\x06\x05\x12\x03Y\x02\x08\n\x0c\n\x05\x04\x02\x02\x06\x01\x12\x03Y\t\x17\n\x0c\n\x05\x04\x02\x02\x06\x03\x12\x03Y\x1a\x1b\nL\n\x02\x04\x03\x12\x04]\x00d\x01\x1a@ Typed entry memory usage preserving the shared runtime fields.\n\n\n\n\x03\x04\x03\x01\x12\x03]\x08\x18\nG\n\x04\x04\x03\x02\x00\x12\x03_\x02\x16\x1a: Acceptance sequence, distinct from the capture revision.\n\n\x0c\n\x05\x04\x03\x02\x00\x05\x12\x03_\x02\x08\n\x0c\n\x05\x04\x03\x02\x00\x01\x12\x03_\t\x11\n\x0c\n\x05\x04\x03\x02\x00\x03\x12\x03_\x14\x15\nQ\n\x04\x04\x03\x02\x01\x12\x03a\x02S\x1aD Original owning registration; refresh never changes this identity.\n\n\x0c\n\x05\x04\x03\x02\x01\x06\x12\x03a\x02\x1d\n\x0c\n\x05\x04\x03\x02\x01\x01\x12\x03a\x1e\'\n\x0c\n\x05\x04\x03\x02\x01\x03\x12\x03a*+\n\x0c\n\x05\x04\x03\x02\x01\x08\x12\x03a,R\n\x0f\n\x08\x04\x03\x02\x01\x08\x87\t\x19\x12\x03a-Q\nA\n\x04\x04\x03\x02\x02\x12\x03c\x02L\x1a4 Compiled backing footprint; not encoded JSON size.\n\n\x0c\n\x05\x04\x03\x02\x02\x06\x12\x03c\x02\x16\n\x0c\n\x05\x04\x03\x02\x02\x01\x12\x03c\x17 \n\x0c\n\x05\x04\x03\x02\x02\x03\x12\x03c#$\n\x0c\n\x05\x04\x03\x02\x02\x08\x12\x03c%K\n\x0f\n\x08\x04\x03\x02\x02\x08\x87\t\x19\x12\x03c&J\nP\n\x02\x04\x04\x12\x04g\x00l\x01\x1aD Typed component memory usage preserving the shared runtime fields.\n\n\n\n\x03\x04\x04\x01\x12\x03g\x08\x1c\nL\n\x04\x04\x04\x02\x00\x12\x03i\x02S\x1a? Registration identity; replacement instances remain distinct.\n\n\x0c\n\x05\x04\x04\x02\x00\x06\x12\x03i\x02\x1d\n\x0c\n\x05\x04\x04\x02\x00\x01\x12\x03i\x1e\'\n\x0c\n\x05\x04\x04\x02\x00\x03\x12\x03i*+\n\x0c\n\x05\x04\x04\x02\x00\x08\x12\x03i,R\n\x0f\n\x08\x04\x04\x02\x00\x08\x87\t\x19\x12\x03i-Q\nI\n\x04\x04\x04\x02\x01\x12\x03k\x02P\x1a< Whole-registration footprint, unaffected by event filters.\n\n\x0c\n\x05\x04\x04\x02\x01\x06\x12\x03k\x02\x1a\n\x0c\n\x05\x04\x04\x02\x01\x01\x12\x03k\x1b$\n\x0c\n\x05\x04\x04\x02\x01\x03\x12\x03k\'(\n\x0c\n\x05\x04\x04\x02\x01\x08\x12\x03k)O\n\x0f\n\x08\x04\x04\x02\x01\x08\x87\t\x19\x12\x03k*N\nQ\n\x02\x04\x05\x12\x04o\x00x\x01\x1aE Typed memory selection totals preserving the shared runtime fields.\n\n\n\n\x03\x04\x05\x01\x12\x03o\x08\x1d\nA\n\x04\x04\x05\x02\x00\x12\x03q\x02\x18\x1a4 Matching component registrations across all pages.\n\n\x0c\n\x05\x04\x05\x02\x00\x05\x12\x03q\x02\x08\n\x0c\n\x05\x04\x05\x02\x00\x01\x12\x03q\t\x13\n\x0c\n\x05\x04\x05\x02\x00\x03\x12\x03q\x16\x17\n:\n\x04\x04\x05\x02\x01\x12\x03s\x02\x14\x1a- Matching retained entries across all pages.\n\n\x0c\n\x05\x04\x05\x02\x01\x05\x12\x03s\x02\x08\n\x0c\n\x05\x04\x05\x02\x01\x01\x12\x03s\t\x0f\n\x0c\n\x05\x04\x05\x02\x01\x03\x12\x03s\x12\x13\nB\n\x04\x04\x05\x02\x02\x12\x03u\x02&\x1a5 Whole-registration backing for matching components.\n\n\x0c\n\x05\x04\x05\x02\x02\x05\x12\x03u\x02\x08\n\x0c\n\x05\x04\x05\x02\x02\x01\x12\x03u\t!\n\x0c\n\x05\x04\x05\x02\x02\x03\x12\x03u$%\nQ\n\x04\x04\x05\x02\x03\x12\x03w\x02\"\x1aD Backing for matching retained entries (overlaps component totals).\n\n\x0c\n\x05\x04\x05\x02\x03\x05\x12\x03w\x02\x08\n\x0c\n\x05\x04\x05\x02\x03\x01\x12\x03w\t\x1d\n\x0c\n\x05\x04\x05\x02\x03\x03\x12\x03w !\nQ\n\x02\x04\x06\x12\x05{\x00\x98\x01\x01\x1aD Typed diagnostic memory page preserving the shared runtime fields.\n\n\n\n\x03\x04\x06\x01\x12\x03{\x08\x1c\nS\n\x04\x04\x06\x02\x00\x12\x03}\x02D\x1aF Separate envelope version, unrelated to snapshot/catalogue versions.\n\n\x0c\n\x05\x04\x06\x02\x00\x05\x12\x03}\x02\x08\n\x0c\n\x05\x04\x06\x02\x00\x01\x12\x03}\t\x17\n\x0c\n\x05\x04\x06\x02\x00\x03\x12\x03}\x1a\x1b\n\x0c\n\x05\x04\x06\x02\x00\x08\x12\x03}\x1cC\n\x10\n\t\x04\x06\x02\x00\x08\x87\t\x05\x01\x12\x03}\x1dB\n-\n\x04\x04\x06\x02\x01\x12\x03\x7f\x02M\x1a Diagnostic source incarnation.\n\n\x0c\n\x05\x04\x06\x02\x01\x06\x12\x03\x7f\x02\x1a\n\x0c\n\x05\x04\x06\x02\x01\x01\x12\x03\x7f\x1b!\n\x0c\n\x05\x04\x06\x02\x01\x03\x12\x03\x7f$%\n\x0c\n\x05\x04\x06\x02\x01\x08\x12\x03\x7f&L\n\x0f\n\x08\x04\x06\x02\x01\x08\x87\t\x19\x12\x03\x7f\'K\nL\n\x04\x04\x06\x02\x02\x12\x04\x81\x01\x02T\x1a> Diagnostic capture time, independent of resource collection.\n\n\r\n\x05\x04\x06\x02\x02\x06\x12\x04\x81\x01\x02\x1b\n\r\n\x05\x04\x06\x02\x02\x01\x12\x04\x81\x01\x1c(\n\r\n\x05\x04\x06\x02\x02\x03\x12\x04\x81\x01+,\n\r\n\x05\x04\x06\x02\x02\x08\x12\x04\x81\x01-S\n\x10\n\x08\x04\x06\x02\x02\x08\x87\t\x19\x12\x04\x81\x01.R\nF\n\x04\x04\x06\x02\x03\x12\x04\x83\x01\x02\x16\x1a8 Retained-state revision used to validate continuation.\n\n\r\n\x05\x04\x06\x02\x03\x05\x12\x04\x83\x01\x02\x08\n\r\n\x05\x04\x06\x02\x03\x01\x12\x04\x83\x01\t\x11\n\r\n\x05\x04\x06\x02\x03\x03\x12\x04\x83\x01\x14\x15\nM\n\x04\x04\x06\x02\x04\x12\x04\x85\x01\x02M\x1a? Whole-context backing and occupancy, regardless of selection.\n\n\r\n\x05\x04\x06\x02\x04\x06\x12\x04\x85\x01\x02\x17\n\r\n\x05\x04\x06\x02\x04\x01\x12\x04\x85\x01\x18!\n\r\n\x05\x04\x06\x02\x04\x03\x12\x04\x85\x01$%\n\r\n\x05\x04\x06\x02\x04\x08\x12\x04\x85\x01&L\n\x10\n\x08\x04\x06\x02\x04\x08\x87\t\x19\x12\x04\x85\x01\'K\nG\n\x04\x04\x06\x02\x05\x12\x04\x87\x01\x02&\x1a9 Complete component attribution, including omitted rows.\n\n\r\n\x05\x04\x06\x02\x05\x05\x12\x04\x87\x01\x02\x08\n\r\n\x05\x04\x06\x02\x05\x01\x12\x04\x87\x01\t!\n\r\n\x05\x04\x06\x02\x05\x03\x12\x04\x87\x01$%\n`\n\x04\x04\x06\x02\x06\x12\x04\x89\x01\x021\x1aR Reserved minus complete component attribution; includes free and shared backing.\n\n\r\n\x05\x04\x06\x02\x06\x05\x12\x04\x89\x01\x02\x08\n\r\n\x05\x04\x06\x02\x06\x01\x12\x04\x89\x01\t,\n\r\n\x05\x04\x06\x02\x06\x03\x12\x04\x89\x01/0\nX\n\x04\x04\x06\x02\x07\x12\x04\x8b\x01\x02A\x1aJ Whole-context retention/admission loss, distinct from omitted page rows.\n\n\r\n\x05\x04\x06\x02\x07\x06\x12\x04\x8b\x01\x02\x10\n\r\n\x05\x04\x06\x02\x07\x01\x12\x04\x8b\x01\x11\x15\n\r\n\x05\x04\x06\x02\x07\x03\x12\x04\x8b\x01\x18\x19\n\r\n\x05\x04\x06\x02\x07\x08\x12\x04\x8b\x01\x1a@\n\x10\n\x08\x04\x06\x02\x07\x08\x87\t\x19\x12\x04\x8b\x01\x1b?\nP\n\x04\x04\x06\x02\x08\x12\x04\x8d\x01\x02M\x1aB Whole-selection totals; byte quantities overlap rather than add.\n\n\r\n\x05\x04\x06\x02\x08\x06\x12\x04\x8d\x01\x02\x17\n\r\n\x05\x04\x06\x02\x08\x01\x12\x04\x8d\x01\x18!\n\r\n\x05\x04\x06\x02\x08\x03\x12\x04\x8d\x01$%\n\r\n\x05\x04\x06\x02\x08\x08\x12\x04\x8d\x01&L\n\x10\n\x08\x04\x06\x02\x08\x08\x87\t\x19\x12\x04\x8d\x01\'K\n:\n\x04\x04\x06\x02\t\x12\x04\x8f\x01\x02I\x1a, Totals for the rows in this response only.\n\n\r\n\x05\x04\x06\x02\t\x06\x12\x04\x8f\x01\x02\x17\n\r\n\x05\x04\x06\x02\t\x01\x12\x04\x8f\x01\x18\x1c\n\r\n\x05\x04\x06\x02\t\x03\x12\x04\x8f\x01\x1f!\n\r\n\x05\x04\x06\x02\t\x08\x12\x04\x8f\x01\"H\n\x10\n\x08\x04\x06\x02\t\x08\x87\t\x19\x12\x04\x8f\x01#G\n3\n\x04\x04\x06\x02\n\x12\x04\x91\x01\x020\x1a% Bounded selected registration rows.\n\n\r\n\x05\x04\x06\x02\n\x04\x12\x04\x91\x01\x02\n\n\r\n\x05\x04\x06\x02\n\x06\x12\x04\x91\x01\x0b\x1f\n\r\n\x05\x04\x06\x02\n\x01\x12\x04\x91\x01 *\n\r\n\x05\x04\x06\x02\n\x03\x12\x04\x91\x01-/\nV\n\x04\x04\x06\x02\x0b\x12\x04\x93\x01\x02)\x1aH Bounded selected retained entry rows, without detail/correlation text.\n\n\r\n\x05\x04\x06\x02\x0b\x04\x12\x04\x93\x01\x02\n\n\r\n\x05\x04\x06\x02\x0b\x06\x12\x04\x93\x01\x0b\x1b\n\r\n\x05\x04\x06\x02\x0b\x01\x12\x04\x93\x01\x1c#\n\r\n\x05\x04\x06\x02\x0b\x03\x12\x04\x93\x01&(\ne\n\x04\x04\x06\x02\x0c\x12\x04\x95\x01\x02J\x1aW Independently copied resource context; its manager cache is outside core reservation.\n\n\r\n\x05\x04\x06\x02\x0c\x06\x12\x04\x95\x01\x02\x14\n\r\n\x05\x04\x06\x02\x0c\x01\x12\x04\x95\x01\x15\x1d\n\r\n\x05\x04\x06\x02\x0c\x03\x12\x04\x95\x01 \"\n\r\n\x05\x04\x06\x02\x0c\x08\x12\x04\x95\x01#I\n\x10\n\x08\x04\x06\x02\x0c\x08\x87\t\x19\x12\x04\x95\x01$H\nO\n\x04\x04\x06\x02\r\x12\x04\x97\x01\x02%\x1aA Mutation-sensitive continuation; snapshot cursors are rejected.\n\n\r\n\x05\x04\x06\x02\r\x06\x12\x04\x97\x01\x02\x12\n\r\n\x05\x04\x06\x02\r\x01\x12\x04\x97\x01\x13\x1f\n\r\n\x05\x04\x06\x02\r\x03\x12\x04\x97\x01\"$b\x06proto3\n\x86Q\n1nvidia/nemo/relay/worker/v1/diagnostic_read.proto\x12\x1bnvidia.nemo.relay.worker.v1\x1a\x1bbuf/validate/validate.proto\x1a-nvidia/nemo/relay/worker/v1/diagnostics.proto\"\x96\x08\n\x0fDiagnosticQuery\x12*\n\x0eschema_version\x18\x01 \x01(\rH\x00R\rschemaVersion\x88\x01\x01\x12(\n\rcomponent_key\x18\x02 \x01(\tH\x01R\x0ccomponentKey\x88\x01\x01\x12A\n\x15component_instance_id\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x02R\x13componentInstanceId\x88\x01\x01\x120\n\x11origin_generation\x18\x04 \x01(\x04H\x03R\x10originGeneration\x88\x01\x01\x12\x17\n\x04code\x18\x05 \x01(\tH\x04R\x04code\x88\x01\x01\x12V\n\x06domain\x18\x06 \x01(\x0e2-.nvidia.nemo.relay.worker.v1.DiagnosticDomainB\n\xbaH\x07\x82\x01\x04\x10\x01 \x00H\x05R\x06domain\x88\x01\x01\x12i\n\rplugin_family\x18\x07 \x01(\x0e23.nvidia.nemo.relay.worker.v1.PluginDiagnosticFamilyB\n\xbaH\x07\x82\x01\x04\x10\x01 \x00H\x06R\x0cpluginFamily\x88\x01\x01\x12(\n\rfailure_class\x18\x08 \x01(\tH\x07R\x0cfailureClass\x88\x01\x01\x12W\n\townership\x18\t \x01(\x0b29.nvidia.nemo.relay.worker.v1.DiagnosticComponentOwnershipR\townership\x12*\n\x0eafter_sequence\x18\n \x01(\x04H\x08R\rafterSequence\x88\x01\x01\x12*\n\x0emax_components\x18\x0b \x01(\rH\tR\rmaxComponents\x88\x01\x01\x12\"\n\nmax_events\x18\x0c \x01(\rH\nR\tmaxEvents\x88\x01\x01\x121\n\x12max_response_bytes\x18\r \x01(\rH\x0bR\x10maxResponseBytes\x88\x01\x01\x12Q\n\x0ccontinuation\x18\x0e \x01(\x0b2-.nvidia.nemo.relay.worker.v1.DiagnosticCursorR\x0ccontinuationB\x11\n\x0f_schema_versionB\x10\n\x0e_component_keyB\x18\n\x16_component_instance_idB\x14\n\x12_origin_generationB\x07\n\x05_codeB\t\n\x07_domainB\x10\n\x0e_plugin_familyB\x10\n\x0e_failure_classB\x11\n\x0f_after_sequenceB\x11\n\x0f_max_componentsB\r\n\x0b_max_eventsB\x15\n\x13_max_response_bytes\"M\n\x19DiagnosticProducerSupport\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1c\n\tsupported\x18\x02 \x01(\x08R\tsupported\"\xcb\x07\n\x13DiagnosticDiscovery\x12+\n\x11discovery_version\x18\x01 \x01(\rR\x10discoveryVersion\x12)\n\x10snapshot_version\x18\x02 \x01(\rR\x0fsnapshotVersion\x12+\n\x11catalogue_version\x18\x03 \x01(\rR\x10catalogueVersion\x12U\n\x06source\x18\x04 \x01(\x0b25.nvidia.nemo.relay.worker.v1.DiagnosticSourceIdentityB\x06\xbaH\x03\xc8\x01\x01R\x06source\x12-\n\x12collection_enabled\x18\x05 \x01(\x08R\x11collectionEnabled\x12\'\n\x0fqueries_enabled\x18\x06 \x01(\x08R\x0equeriesEnabled\x12%\n\x0emax_components\x18\x07 \x01(\x04R\rmaxComponents\x12\x1d\n\nmax_events\x18\x08 \x01(\x04R\tmaxEvents\x12*\n\x11detail_pool_bytes\x18\t \x01(\x04R\x0fdetailPoolBytes\x12\x1f\n\x0bmax_queries\x18\n \x01(\x04R\nmaxQueries\x12,\n\x12max_snapshot_bytes\x18\x0b \x01(\x04R\x10maxSnapshotBytes\x12&\n\x0fmax_owned_bytes\x18\x0c \x01(\x04R\rmaxOwnedBytes\x12+\n\x11memory_inspection\x18\r \x01(\x08R\x10memoryInspection\x12+\n\x11restricted_detail\x18\x0e \x01(\x08R\x10restrictedDetail\x12p\n\x18producer_support_entries\x18\x0f \x03(\x0b26.nvidia.nemo.relay.worker.v1.DiagnosticProducerSupportR\x16producerSupportEntries\x120\n\x14max_query_components\x18\x10 \x01(\x04R\x12maxQueryComponents\x12(\n\x10max_query_events\x18\x11 \x01(\x04R\x0emaxQueryEvents\x12<\n\x1adetailed_memory_inspection\x18\x12 \x01(\x08R\x18detailedMemoryInspection\x121\n\x14resource_correlation\x18\x13 \x01(\x08R\x13resourceCorrelation*\xab\x01\n\x10DiagnosticDomain\x12!\n\x1dDIAGNOSTIC_DOMAIN_UNSPECIFIED\x10\x00\x12\x1c\n\x18DIAGNOSTIC_DOMAIN_DAEMON\x10\x01\x12\x19\n\x15DIAGNOSTIC_DOMAIN_CLI\x10\x02\x12\x1c\n\x18DIAGNOSTIC_DOMAIN_PLUGIN\x10\x03\x12\x1d\n\x19DIAGNOSTIC_DOMAIN_LOGGING\x10\x04*\x90\x01\n\x16PluginDiagnosticFamily\x12(\n$PLUGIN_DIAGNOSTIC_FAMILY_UNSPECIFIED\x10\x00\x12#\n\x1fPLUGIN_DIAGNOSTIC_FAMILY_COMMON\x10\x01\x12\'\n#PLUGIN_DIAGNOSTIC_FAMILY_OPERATIONS\x10\x02*\xdf\x03\n\x14DiagnosticReadReason\x12&\n\"DIAGNOSTIC_READ_REASON_UNSPECIFIED\x10\x00\x12#\n\x1fDIAGNOSTIC_READ_REASON_DISABLED\x10\x01\x12)\n%DIAGNOSTIC_READ_REASON_QUERY_DISABLED\x10\x02\x12-\n)DIAGNOSTIC_READ_REASON_UNSUPPORTED_SCHEMA\x10\x03\x12(\n$DIAGNOSTIC_READ_REASON_INVALID_QUERY\x10\x04\x12)\n%DIAGNOSTIC_READ_REASON_INVALID_CURSOR\x10\x05\x12\x1f\n\x1bDIAGNOSTIC_READ_REASON_BUSY\x10\x06\x12,\n(DIAGNOSTIC_READ_REASON_SNAPSHOT_CAPACITY\x10\x07\x12)\n%DIAGNOSTIC_READ_REASON_INVALID_LIMITS\x10\x08\x12,\n(DIAGNOSTIC_READ_REASON_ALLOCATION_FAILED\x10\t\x12#\n\x1fDIAGNOSTIC_READ_REASON_INTERNAL\x10\nJ\x869\n\x07\x12\x05\x05\x00\x94\x01\x01\n\xe3\x01\n\x01\x0c\x12\x03\x05\x00\x122\x88\x01 SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n SPDX-License-Identifier: Apache-2.0\n2N Defines full shared diagnostic query, discovery, and portable read failures.\n\n\x08\n\x01\x02\x12\x03\x07\x00$\n\t\n\x02\x03\x00\x12\x03\t\x00%\n\t\n\x02\x03\x01\x12\x03\n\x007\nO\n\x02\x05\x00\x12\x04\r\x00\x18\x01\x1aC Canonical diagnostic domain values from the shared runtime types.\n\n\n\n\x03\x05\x00\x01\x12\x03\r\x05\x15\nN\n\x04\x05\x00\x02\x00\x12\x03\x0f\x02$\x1aA No value supplied; invalid where an explicit value is required.\n\n\x0c\n\x05\x05\x00\x02\x00\x01\x12\x03\x0f\x02\x1f\n\x0c\n\x05\x05\x00\x02\x00\x02\x12\x03\x0f\"#\nN\n\x04\x05\x00\x02\x01\x12\x03\x11\x02\x1f\x1aA Daemon control, runtime, forwarding, and collection operations.\n\n\x0c\n\x05\x05\x00\x02\x01\x01\x12\x03\x11\x02\x1a\n\x0c\n\x05\x05\x00\x02\x01\x02\x12\x03\x11\x1d\x1e\n<\n\x04\x05\x00\x02\x02\x12\x03\x13\x02\x1c\x1a/ CLI-owned execution and transport operations.\n\n\x0c\n\x05\x05\x00\x02\x02\x01\x12\x03\x13\x02\x17\n\x0c\n\x05\x05\x00\x02\x02\x02\x12\x03\x13\x1a\x1b\n3\n\x04\x05\x00\x02\x03\x12\x03\x15\x02\x1f\x1a& Plugin configuration and activation.\n\n\x0c\n\x05\x05\x00\x02\x03\x01\x12\x03\x15\x02\x1a\n\x0c\n\x05\x05\x00\x02\x03\x02\x12\x03\x15\x1d\x1e\n1\n\x04\x05\x00\x02\x04\x12\x03\x17\x02 \x1a$ Operational logging and its sinks.\n\n\x0c\n\x05\x05\x00\x02\x04\x01\x12\x03\x17\x02\x1b\n\x0c\n\x05\x05\x00\x02\x04\x02\x12\x03\x17\x1e\x1f\nV\n\x02\x05\x01\x12\x04\x1b\x00\"\x01\x1aJ Canonical plugin diagnostic family values from the shared runtime types.\n\n\n\n\x03\x05\x01\x01\x12\x03\x1b\x05\x1b\nN\n\x04\x05\x01\x02\x00\x12\x03\x1d\x02+\x1aA No value supplied; invalid where an explicit value is required.\n\n\x0c\n\x05\x05\x01\x02\x00\x01\x12\x03\x1d\x02&\n\x0c\n\x05\x05\x01\x02\x00\x02\x12\x03\x1d)*\nT\n\x04\x05\x01\x02\x01\x12\x03\x1f\x02&\x1aG Shared plugin-operation codes applicable across execution mechanisms.\n\n\x0c\n\x05\x05\x01\x02\x01\x01\x12\x03\x1f\x02!\n\x0c\n\x05\x05\x01\x02\x01\x02\x12\x03\x1f$%\nT\n\x04\x05\x01\x02\x02\x12\x03!\x02*\x1aG Host-observed loading, validation, execution, and cleanup operations.\n\n\x0c\n\x05\x05\x01\x02\x02\x01\x12\x03!\x02%\n\x0c\n\x05\x05\x01\x02\x02\x02\x12\x03!()\nT\n\x02\x05\x02\x12\x04%\x00<\x01\x1aH Canonical diagnostic read reason values from the shared runtime types.\n\n\n\n\x03\x05\x02\x01\x12\x03%\x05\x19\nN\n\x04\x05\x02\x02\x00\x12\x03\'\x02)\x1aA No value supplied; invalid where an explicit value is required.\n\n\x0c\n\x05\x05\x02\x02\x00\x01\x12\x03\'\x02$\n\x0c\n\x05\x05\x02\x02\x00\x02\x12\x03\'\'(\n2\n\x04\x05\x02\x02\x01\x12\x03)\x02&\x1a% Collection was disabled at startup.\n\n\x0c\n\x05\x05\x02\x02\x01\x01\x12\x03)\x02!\n\x0c\n\x05\x05\x02\x02\x01\x02\x12\x03)$%\nK\n\x04\x05\x02\x02\x02\x12\x03+\x02,\x1a> Collection is enabled but snapshot workspaces were disabled.\n\n\x0c\n\x05\x05\x02\x02\x02\x01\x12\x03+\x02\'\n\x0c\n\x05\x05\x02\x02\x02\x02\x12\x03+*+\n9\n\x04\x05\x02\x02\x03\x12\x03-\x020\x1a, Requested snapshot version is unsupported.\n\n\x0c\n\x05\x05\x02\x02\x03\x01\x12\x03-\x02+\n\x0c\n\x05\x05\x02\x02\x03\x02\x12\x03-./\nJ\n\x04\x05\x02\x02\x04\x12\x03/\x02+\x1a= Malformed, oversized, unknown, or inadmissible query input.\n\n\x0c\n\x05\x05\x02\x02\x04\x01\x12\x03/\x02&\n\x0c\n\x05\x05\x02\x02\x04\x02\x12\x03/)*\nM\n\x04\x05\x02\x02\x05\x12\x031\x02,\x1a@ Continuation source, selection, or revision no longer matches.\n\n\x0c\n\x05\x05\x02\x02\x05\x01\x12\x031\x02\'\n\x0c\n\x05\x05\x02\x02\x05\x02\x12\x031*+\nM\n\x04\x05\x02\x02\x06\x12\x033\x02\"\x1a@ Core or adapter concurrency permits are temporarily exhausted.\n\n\x0c\n\x05\x05\x02\x02\x06\x01\x12\x033\x02\x1d\n\x0c\n\x05\x05\x02\x02\x06\x02\x12\x033 !\nK\n\x04\x05\x02\x02\x07\x12\x035\x02/\x1a> The page cannot fit its required metadata or a complete row.\n\n\x0c\n\x05\x05\x02\x02\x07\x01\x12\x035\x02*\n\x0c\n\x05\x05\x02\x02\x07\x02\x12\x035-.\nO\n\x04\x05\x02\x02\x08\x12\x037\x02,\x1aB Invalid startup capacity profile, including arithmetic overflow.\n\n\x0c\n\x05\x05\x02\x02\x08\x01\x12\x037\x02\'\n\x0c\n\x05\x05\x02\x02\x08\x02\x12\x037*+\n<\n\x04\x05\x02\x02\t\x12\x039\x02/\x1a/ An admitted allocation could not be reserved.\n\n\x0c\n\x05\x05\x02\x02\t\x01\x12\x039\x02*\n\x0c\n\x05\x05\x02\x02\t\x02\x12\x039-.\nV\n\x04\x05\x02\x02\n\x12\x03;\x02\'\x1aI An unexpected internal read failure; no original error text is exposed.\n\n\x0c\n\x05\x05\x02\x02\n\x01\x12\x03;\x02!\n\x0c\n\x05\x05\x02\x02\n\x02\x12\x03;$&\nJ\n\x02\x04\x00\x12\x04?\x00b\x01\x1a> Typed diagnostic query preserving the shared runtime fields.\n\n\n\n\x03\x04\x00\x01\x12\x03?\x08\x17\n[\n\x04\x04\x00\x02\x00\x12\x03A\x02%\x1aN Optional required snapshot version; omission selects this runtime\'s version.\n\n\x0c\n\x05\x04\x00\x02\x00\x04\x12\x03A\x02\n\n\x0c\n\x05\x04\x00\x02\x00\x05\x12\x03A\x0b\x11\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03A\x12 \n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03A#$\nN\n\x04\x04\x00\x02\x01\x12\x03C\x02$\x1aA Select one logical component key across retained registrations.\n\n\x0c\n\x05\x04\x00\x02\x01\x04\x12\x03C\x02\n\n\x0c\n\x05\x04\x00\x02\x01\x05\x12\x03C\x0b\x11\n\x0c\n\x05\x04\x00\x02\x01\x01\x12\x03C\x12\x1f\n\x0c\n\x05\x04\x00\x02\x01\x03\x12\x03C\"#\n3\n\x04\x04\x00\x02\x02\x12\x03E\x02V\x1a& Select one registration incarnation.\n\n\x0c\n\x05\x04\x00\x02\x02\x04\x12\x03E\x02\n\n\x0c\n\x05\x04\x00\x02\x02\x05\x12\x03E\x0b\x11\n\x0c\n\x05\x04\x00\x02\x02\x01\x12\x03E\x12\'\n\x0c\n\x05\x04\x00\x02\x02\x03\x12\x03E*+\n\x0c\n\x05\x04\x00\x02\x02\x08\x12\x03E,U\n\x10\n\t\x04\x00\x02\x02\x08\x87\t\x0e\x16\x12\x03E-T\n\x8a\x01\n\x04\x04\x00\x02\x03\x12\x03G\x02(\x1a} Select recent events by original refresh generation only. Lifetime and current-refresh summaries keep their declared scope.\n\n\x0c\n\x05\x04\x00\x02\x03\x04\x12\x03G\x02\n\n\x0c\n\x05\x04\x00\x02\x03\x05\x12\x03G\x0b\x11\n\x0c\n\x05\x04\x00\x02\x03\x01\x12\x03G\x12#\n\x0c\n\x05\x04\x00\x02\x03\x03\x12\x03G&\'\n?\n\x04\x04\x00\x02\x04\x12\x03I\x02\x1b\x1a2 Select exact canonical code counters and events.\n\n\x0c\n\x05\x04\x00\x02\x04\x04\x12\x03I\x02\n\n\x0c\n\x05\x04\x00\x02\x04\x05\x12\x03I\x0b\x11\n\x0c\n\x05\x04\x00\x02\x04\x01\x12\x03I\x12\x16\n\x0c\n\x05\x04\x00\x02\x04\x03\x12\x03I\x19\x1a\nA\n\x04\x04\x00\x02\x05\x12\x04K\x02N\x05\x1a3 Select the authoritative catalogue parent domain.\n\n\x0c\n\x05\x04\x00\x02\x05\x04\x12\x03K\x02\n\n\x0c\n\x05\x04\x00\x02\x05\x06\x12\x03K\x0b\x1b\n\x0c\n\x05\x04\x00\x02\x05\x01\x12\x03K\x1c\"\n\x0c\n\x05\x04\x00\x02\x05\x03\x12\x03K%&\n\r\n\x05\x04\x00\x02\x05\x08\x12\x04K\'N\x04\n\x10\n\x08\x04\x00\x02\x05\x08\x87\t\x10\x12\x04K(N\x03\nO\n\x04\x04\x00\x02\x06\x12\x04P\x02S\x05\x1aA Select the plugin catalogue family derived from code ownership.\n\n\x0c\n\x05\x04\x00\x02\x06\x04\x12\x03P\x02\n\n\x0c\n\x05\x04\x00\x02\x06\x06\x12\x03P\x0b!\n\x0c\n\x05\x04\x00\x02\x06\x01\x12\x03P\"/\n\x0c\n\x05\x04\x00\x02\x06\x03\x12\x03P23\n\r\n\x05\x04\x00\x02\x06\x08\x12\x04P4S\x04\n\x10\n\x08\x04\x00\x02\x06\x08\x87\t\x10\x12\x04P5S\x03\nV\n\x04\x04\x00\x02\x07\x12\x03U\x02$\x1aI Select event causes only; code counters do not retain cause breakdowns.\n\n\x0c\n\x05\x04\x00\x02\x07\x04\x12\x03U\x02\n\n\x0c\n\x05\x04\x00\x02\x07\x05\x12\x03U\x0b\x11\n\x0c\n\x05\x04\x00\x02\x07\x01\x12\x03U\x12\x1f\n\x0c\n\x05\x04\x00\x02\x07\x03\x12\x03U\"#\n\xa9\x01\n\x04\x04\x00\x02\x08\x12\x03W\x02-\x1a\x9b\x01 Select component rows by current-refresh ownership and events by original ownership. Selected lifetime counters still span the entire component instance.\n\n\x0c\n\x05\x04\x00\x02\x08\x06\x12\x03W\x02\x1e\n\x0c\n\x05\x04\x00\x02\x08\x01\x12\x03W\x1f(\n\x0c\n\x05\x04\x00\x02\x08\x03\x12\x03W+,\nW\n\x04\x04\x00\x02\t\x12\x03Y\x02&\x1aJ Select later recent events; summary and code counters remain cumulative.\n\n\x0c\n\x05\x04\x00\x02\t\x04\x12\x03Y\x02\n\n\x0c\n\x05\x04\x00\x02\t\x05\x12\x03Y\x0b\x11\n\x0c\n\x05\x04\x00\x02\t\x01\x12\x03Y\x12 \n\x0c\n\x05\x04\x00\x02\t\x03\x12\x03Y#%\nP\n\x04\x04\x00\x02\n\x12\x03[\x02&\x1aC Requested component-instance row cap, rejected above core limits.\n\n\x0c\n\x05\x04\x00\x02\n\x04\x12\x03[\x02\n\n\x0c\n\x05\x04\x00\x02\n\x05\x12\x03[\x0b\x11\n\x0c\n\x05\x04\x00\x02\n\x01\x12\x03[\x12 \n\x0c\n\x05\x04\x00\x02\n\x03\x12\x03[#%\nF\n\x04\x04\x00\x02\x0b\x12\x03]\x02\"\x1a9 Requested recent-event cap, rejected above core limits.\n\n\x0c\n\x05\x04\x00\x02\x0b\x04\x12\x03]\x02\n\n\x0c\n\x05\x04\x00\x02\x0b\x05\x12\x03]\x0b\x11\n\x0c\n\x05\x04\x00\x02\x0b\x01\x12\x03]\x12\x1c\n\x0c\n\x05\x04\x00\x02\x0b\x03\x12\x03]\x1f!\nJ\n\x04\x04\x00\x02\x0c\x12\x03_\x02*\x1a= Requested encoded response cap, rejected above core limits.\n\n\x0c\n\x05\x04\x00\x02\x0c\x04\x12\x03_\x02\n\n\x0c\n\x05\x04\x00\x02\x0c\x05\x12\x03_\x0b\x11\n\x0c\n\x05\x04\x00\x02\x0c\x01\x12\x03_\x12$\n\x0c\n\x05\x04\x00\x02\x0c\x03\x12\x03_\')\nW\n\x04\x04\x00\x02\r\x12\x03a\x02%\x1aJ Resume a compatible bounded selection without granting additional scope.\n\n\x0c\n\x05\x04\x00\x02\r\x06\x12\x03a\x02\x12\n\x0c\n\x05\x04\x00\x02\r\x01\x12\x03a\x13\x1f\n\x0c\n\x05\x04\x00\x02\r\x03\x12\x03a\"$\nU\n\x02\x04\x01\x12\x04e\x00j\x01\x1aI Typed diagnostic producer support preserving the shared runtime fields.\n\n\n\n\x03\x04\x01\x01\x12\x03e\x08!\nW\n\x04\x04\x01\x02\x00\x12\x03g\x02\x12\x1aJ Stable integration name; unfamiliar names may be preserved by consumers.\n\n\x0c\n\x05\x04\x01\x02\x00\x05\x12\x03g\x02\x08\n\x0c\n\x05\x04\x01\x02\x00\x01\x12\x03g\t\r\n\x0c\n\x05\x04\x01\x02\x00\x03\x12\x03g\x10\x11\n=\n\x04\x04\x01\x02\x01\x12\x03i\x02\x15\x1a0 This binary contains the producer integration.\n\n\x0c\n\x05\x04\x01\x02\x01\x05\x12\x03i\x02\x06\n\x0c\n\x05\x04\x01\x02\x01\x01\x12\x03i\x07\x10\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x03i\x13\x14\nO\n\x02\x04\x02\x12\x05m\x00\x94\x01\x01\x1aB Typed diagnostic discovery preserving the shared runtime fields.\n\n\n\n\x03\x04\x02\x01\x12\x03m\x08\x1b\n2\n\x04\x04\x02\x02\x00\x12\x03o\x02\x1f\x1a% Version of this discovery contract.\n\n\x0c\n\x05\x04\x02\x02\x00\x05\x12\x03o\x02\x08\n\x0c\n\x05\x04\x02\x02\x00\x01\x12\x03o\t\x1a\n\x0c\n\x05\x04\x02\x02\x00\x03\x12\x03o\x1d\x1e\n4\n\x04\x04\x02\x02\x01\x12\x03q\x02\x1e\x1a\' Supported canonical snapshot version.\n\n\x0c\n\x05\x04\x02\x02\x01\x05\x12\x03q\x02\x08\n\x0c\n\x05\x04\x02\x02\x01\x01\x12\x03q\t\x19\n\x0c\n\x05\x04\x02\x02\x01\x03\x12\x03q\x1c\x1d\n@\n\x04\x04\x02\x02\x02\x12\x03s\x02\x1f\x1a3 Catalogue revision independent of snapshot shape.\n\n\x0c\n\x05\x04\x02\x02\x02\x05\x12\x03s\x02\x08\n\x0c\n\x05\x04\x02\x02\x02\x01\x12\x03s\t\x1a\n\x0c\n\x05\x04\x02\x02\x02\x03\x12\x03s\x1d\x1e\n&\n\x04\x04\x02\x02\x03\x12\x03u\x02M\x1a\x19 Running owner identity.\n\n\x0c\n\x05\x04\x02\x02\x03\x06\x12\x03u\x02\x1a\n\x0c\n\x05\x04\x02\x02\x03\x01\x12\x03u\x1b!\n\x0c\n\x05\x04\x02\x02\x03\x03\x12\x03u$%\n\x0c\n\x05\x04\x02\x02\x03\x08\x12\x03u&L\n\x0f\n\x08\x04\x02\x02\x03\x08\x87\t\x19\x12\x03u\'K\nA\n\x04\x04\x02\x02\x04\x12\x03w\x02\x1e\x1a4 Whether this owner selected collection at startup.\n\n\x0c\n\x05\x04\x02\x02\x04\x05\x12\x03w\x02\x06\n\x0c\n\x05\x04\x02\x02\x04\x01\x12\x03w\x07\x19\n\x0c\n\x05\x04\x02\x02\x04\x03\x12\x03w\x1c\x1d\nV\n\x04\x04\x02\x02\x05\x12\x03y\x02\x1b\x1aI Whether snapshot workspace was configured; not a transient busy signal.\n\n\x0c\n\x05\x04\x02\x02\x05\x05\x12\x03y\x02\x06\n\x0c\n\x05\x04\x02\x02\x05\x01\x12\x03y\x07\x16\n\x0c\n\x05\x04\x02\x02\x05\x03\x12\x03y\x19\x1a\n-\n\x04\x04\x02\x02\x06\x12\x03{\x02\x1c\x1a Configured component capacity.\n\n\x0c\n\x05\x04\x02\x02\x06\x05\x12\x03{\x02\x08\n\x0c\n\x05\x04\x02\x02\x06\x01\x12\x03{\t\x17\n\x0c\n\x05\x04\x02\x02\x06\x03\x12\x03{\x1a\x1b\n7\n\x04\x04\x02\x02\x07\x12\x03}\x02\x18\x1a* Configured shared recent-event capacity.\n\n\x0c\n\x05\x04\x02\x02\x07\x05\x12\x03}\x02\x08\n\x0c\n\x05\x04\x02\x02\x07\x01\x12\x03}\t\x13\n\x0c\n\x05\x04\x02\x02\x07\x03\x12\x03}\x16\x17\n5\n\x04\x04\x02\x02\x08\x12\x03\x7f\x02\x1f\x1a( Configured retained detail-pool bytes.\n\n\x0c\n\x05\x04\x02\x02\x08\x05\x12\x03\x7f\x02\x08\n\x0c\n\x05\x04\x02\x02\x08\x01\x12\x03\x7f\t\x1a\n\x0c\n\x05\x04\x02\x02\x08\x03\x12\x03\x7f\x1d\x1e\n0\n\x04\x04\x02\x02\t\x12\x04\x81\x01\x02\x1a\x1a\" Configured snapshot concurrency.\n\n\r\n\x05\x04\x02\x02\t\x05\x12\x04\x81\x01\x02\x08\n\r\n\x05\x04\x02\x02\t\x01\x12\x04\x81\x01\t\x14\n\r\n\x05\x04\x02\x02\t\x03\x12\x04\x81\x01\x17\x19\n:\n\x04\x04\x02\x02\n\x12\x04\x83\x01\x02!\x1a, Configured maximum encoded snapshot bytes.\n\n\r\n\x05\x04\x02\x02\n\x05\x12\x04\x83\x01\x02\x08\n\r\n\x05\x04\x02\x02\n\x01\x12\x04\x83\x01\t\x1b\n\r\n\x05\x04\x02\x02\n\x03\x12\x04\x83\x01\x1e \nV\n\x04\x04\x02\x02\x0b\x12\x04\x85\x01\x02\x1e\x1aH Backing allocation ceiling, excluding transport and whole-process RSS.\n\n\r\n\x05\x04\x02\x02\x0b\x05\x12\x04\x85\x01\x02\x08\n\r\n\x05\x04\x02\x02\x0b\x01\x12\x04\x85\x01\t\x18\n\r\n\x05\x04\x02\x02\x0b\x03\x12\x04\x85\x01\x1b\x1d\nC\n\x04\x04\x02\x02\x0c\x12\x04\x87\x01\x02\x1e\x1a5 Aggregate backing-memory inspection is implemented.\n\n\r\n\x05\x04\x02\x02\x0c\x05\x12\x04\x87\x01\x02\x06\n\r\n\x05\x04\x02\x02\x0c\x01\x12\x04\x87\x01\x07\x18\n\r\n\x05\x04\x02\x02\x0c\x03\x12\x04\x87\x01\x1b\x1d\nR\n\x04\x04\x02\x02\r\x12\x04\x89\x01\x02\x1e\x1aD Detailed retained evidence requires explicit inspection authority.\n\n\r\n\x05\x04\x02\x02\r\x05\x12\x04\x89\x01\x02\x06\n\r\n\x05\x04\x02\x02\r\x01\x12\x04\x89\x01\x07\x18\n\r\n\x05\x04\x02\x02\r\x03\x12\x04\x89\x01\x1b\x1d\n\xa7\x01\n\x04\x04\x02\x02\x0e\x12\x04\x8b\x01\x02C\x1a\x98\x01 Compiled producer integrations, not proof of registration or observations. Owners supply a finite inventory; names describe operations, not instances.\n\n\r\n\x05\x04\x02\x02\x0e\x04\x12\x04\x8b\x01\x02\n\n\r\n\x05\x04\x02\x02\x0e\x06\x12\x04\x8b\x01\x0b$\n\r\n\x05\x04\x02\x02\x0e\x01\x12\x04\x8b\x01%=\n\r\n\x05\x04\x02\x02\x0e\x03\x12\x04\x8b\x01@B\nD\n\x04\x04\x02\x02\x0f\x12\x04\x8d\x01\x02#\x1a6 Maximum component rows accepted by one read request.\n\n\r\n\x05\x04\x02\x02\x0f\x05\x12\x04\x8d\x01\x02\x08\n\r\n\x05\x04\x02\x02\x0f\x01\x12\x04\x8d\x01\t\x1d\n\r\n\x05\x04\x02\x02\x0f\x03\x12\x04\x8d\x01 \"\n@\n\x04\x04\x02\x02\x10\x12\x04\x8f\x01\x02\x1f\x1a2 Maximum event rows accepted by one read request.\n\n\r\n\x05\x04\x02\x02\x10\x05\x12\x04\x8f\x01\x02\x08\n\r\n\x05\x04\x02\x02\x10\x01\x12\x04\x8f\x01\t\x19\n\r\n\x05\x04\x02\x02\x10\x03\x12\x04\x8f\x01\x1c\x1e\nI\n\x04\x04\x02\x02\x11\x12\x04\x91\x01\x02\'\x1a; Per-entry/per-component memory inspection is implemented.\n\n\r\n\x05\x04\x02\x02\x11\x05\x12\x04\x91\x01\x02\x06\n\r\n\x05\x04\x02\x02\x11\x01\x12\x04\x91\x01\x07!\n\r\n\x05\x04\x02\x02\x11\x03\x12\x04\x91\x01$&\nD\n\x04\x04\x02\x02\x12\x12\x04\x93\x01\x02!\x1a6 Resource-sample identity correlation is implemented.\n\n\r\n\x05\x04\x02\x02\x12\x05\x12\x04\x93\x01\x02\x06\n\r\n\x05\x04\x02\x02\x12\x01\x12\x04\x93\x01\x07\x1b\n\r\n\x05\x04\x02\x02\x12\x03\x12\x04\x93\x01\x1e b\x06proto3\n\xa7[\n;nvidia/nemo/relay/worker/v1/relay_diagnostics_service.proto\x12\x1bnvidia.nemo.relay.worker.v1\x1a\x1bbuf/validate/validate.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a(nvidia/nemo/relay/worker/v1/common.proto\x1a3nvidia/nemo/relay/worker/v1/diagnostic_memory.proto\x1a1nvidia/nemo/relay/worker/v1/diagnostic_read.proto\x1a-nvidia/nemo/relay/worker/v1/diagnostics.proto\"v\n GetDiagnosticCapabilitiesRequest\x12R\n\x0bcredentials\x18\x01 \x01(\x0b2(.nvidia.nemo.relay.worker.v1.CredentialsB\x06\xbaH\x03\xc8\x01\x01R\x0bcredentials\"\x84\x01\n!GetDiagnosticCapabilitiesResponse\x12_\n\x0ccapabilities\x18\x01 \x01(\x0b23.nvidia.nemo.relay.worker.v1.DiagnosticCapabilitiesB\x06\xbaH\x03\xc8\x01\x01R\x0ccapabilities\"\xdd\x02\n\x1cOpenDiagnosticSessionRequest\x12R\n\x0bcredentials\x18\x01 \x01(\x0b2(.nvidia.nemo.relay.worker.v1.CredentialsB\x06\xbaH\x03\xc8\x01\x01R\x0bcredentials\x12Q\n\x08protocol\x18\x02 \x01(\x0b2-.nvidia.nemo.relay.worker.v1.ProtocolIdentityB\x06\xbaH\x03\xc8\x01\x01R\x08protocol\x12H\n\x19snapshot_contract_version\x18\x03 \x01(\tB\x0c\xbaH\tr\x07\n\x051.0.0R\x17snapshotContractVersion\x12L\n\x1bprovenance_contract_version\x18\x04 \x01(\tB\x0c\xbaH\tr\x07\n\x051.0.0R\x19provenanceContractVersion\"\xa8\x01\n\x1dOpenDiagnosticSessionResponse\x12&\n\nsession_id\x18\x01 \x01(\x0cB\x07\xbaH\x04z\x02h\x10R\tsessionId\x12_\n\x0ccapabilities\x18\x02 \x01(\x0b23.nvidia.nemo.relay.worker.v1.DiagnosticCapabilitiesB\x06\xbaH\x03\xc8\x01\x01R\x0ccapabilities\"\xac\x04\n\x17SubmitDiagnosticRequest\x12R\n\x0bcredentials\x18\x01 \x01(\x0b2(.nvidia.nemo.relay.worker.v1.CredentialsB\x06\xbaH\x03\xc8\x01\x01R\x0bcredentials\x12&\n\nsession_id\x18\x02 \x01(\x0cB\x07\xbaH\x04z\x02h\x10R\tsessionId\x12#\n\x08sequence\x18\x03 \x01(\x04B\x07\xbaH\x042\x02 \x00R\x08sequence\x12m\n\x12register_component\x18\x04 \x01(\x0b2<.nvidia.nemo.relay.worker.v1.DiagnosticComponentRegistrationH\x00R\x11registerComponent\x12L\n\x06record\x18\x05 \x01(\x0b22.nvidia.nemo.relay.worker.v1.DiagnosticObservationH\x00R\x06record\x12`\n\x0fclose_component\x18\x06 \x01(\x0b25.nvidia.nemo.relay.worker.v1.DiagnosticComponentCloseH\x00R\x0ecloseComponent\x12=\n\rclose_session\x18\x07 \x01(\x0b2\x16.google.protobuf.EmptyH\x00R\x0ccloseSessionB\x12\n\toperation\x12\x05\xbaH\x02\x08\x01\"l\n\x18SubmitDiagnosticResponse\x12P\n\x07receipt\x18\x01 \x01(\x0b2..nvidia.nemo.relay.worker.v1.DiagnosticReceiptB\x06\xbaH\x03\xc8\x01\x01R\x07receipt\"\xbb\x01\n\x19ReadDiagnosticPageRequest\x12R\n\x0bcredentials\x18\x01 \x01(\x0b2(.nvidia.nemo.relay.worker.v1.CredentialsB\x06\xbaH\x03\xc8\x01\x01R\x0bcredentials\x12J\n\x05query\x18\x02 \x01(\x0b2,.nvidia.nemo.relay.worker.v1.DiagnosticQueryB\x06\xbaH\x03\xc8\x01\x01R\x05query\"\xde\x01\n\x1aReadDiagnosticPageResponse\x12M\n\x08snapshot\x18\x01 \x01(\x0b2/.nvidia.nemo.relay.worker.v1.DiagnosticSnapshotH\x00R\x08snapshot\x12`\n\x0bread_reason\x18\x02 \x01(\x0e21.nvidia.nemo.relay.worker.v1.DiagnosticReadReasonB\n\xbaH\x07\x82\x01\x04\x10\x01 \x00H\x00R\nreadReasonB\x0f\n\x06result\x12\x05\xbaH\x02\x08\x01\"s\n\x1dGetDiagnosticDiscoveryRequest\x12R\n\x0bcredentials\x18\x01 \x01(\x0b2(.nvidia.nemo.relay.worker.v1.CredentialsB\x06\xbaH\x03\xc8\x01\x01R\x0bcredentials\"\xe5\x01\n\x1eGetDiagnosticDiscoveryResponse\x12P\n\tdiscovery\x18\x01 \x01(\x0b20.nvidia.nemo.relay.worker.v1.DiagnosticDiscoveryH\x00R\tdiscovery\x12`\n\x0bread_reason\x18\x02 \x01(\x0e21.nvidia.nemo.relay.worker.v1.DiagnosticReadReasonB\n\xbaH\x07\x82\x01\x04\x10\x01 \x00H\x00R\nreadReasonB\x0f\n\x06result\x12\x05\xbaH\x02\x08\x01\"\xc0\x01\n\x1eInspectDiagnosticMemoryRequest\x12R\n\x0bcredentials\x18\x01 \x01(\x0b2(.nvidia.nemo.relay.worker.v1.CredentialsB\x06\xbaH\x03\xc8\x01\x01R\x0bcredentials\x12J\n\x05query\x18\x02 \x01(\x0b2,.nvidia.nemo.relay.worker.v1.DiagnosticQueryB\x06\xbaH\x03\xc8\x01\x01R\x05query\"\xe1\x01\n\x1fInspectDiagnosticMemoryResponse\x12K\n\x06memory\x18\x01 \x01(\x0b21.nvidia.nemo.relay.worker.v1.DiagnosticMemoryPageH\x00R\x06memory\x12`\n\x0bread_reason\x18\x02 \x01(\x0e21.nvidia.nemo.relay.worker.v1.DiagnosticReadReasonB\n\xbaH\x07\x82\x01\x04\x10\x01 \x00H\x00R\nreadReasonB\x0f\n\x06result\x12\x05\xbaH\x02\x08\x012\xfb\x06\n\x17RelayDiagnosticsService\x12\x9a\x01\n\x19GetDiagnosticCapabilities\x12=.nvidia.nemo.relay.worker.v1.GetDiagnosticCapabilitiesRequest\x1a>.nvidia.nemo.relay.worker.v1.GetDiagnosticCapabilitiesResponse\x12\x8e\x01\n\x15OpenDiagnosticSession\x129.nvidia.nemo.relay.worker.v1.OpenDiagnosticSessionRequest\x1a:.nvidia.nemo.relay.worker.v1.OpenDiagnosticSessionResponse\x12\x7f\n\x10SubmitDiagnostic\x124.nvidia.nemo.relay.worker.v1.SubmitDiagnosticRequest\x1a5.nvidia.nemo.relay.worker.v1.SubmitDiagnosticResponse\x12\x85\x01\n\x12ReadDiagnosticPage\x126.nvidia.nemo.relay.worker.v1.ReadDiagnosticPageRequest\x1a7.nvidia.nemo.relay.worker.v1.ReadDiagnosticPageResponse\x12\x91\x01\n\x16GetDiagnosticDiscovery\x12:.nvidia.nemo.relay.worker.v1.GetDiagnosticDiscoveryRequest\x1a;.nvidia.nemo.relay.worker.v1.GetDiagnosticDiscoveryResponse\x12\x94\x01\n\x17InspectDiagnosticMemory\x12;.nvidia.nemo.relay.worker.v1.InspectDiagnosticMemoryRequest\x1a<.nvidia.nemo.relay.worker.v1.InspectDiagnosticMemoryResponseJ\xff<\n\x07\x12\x05\x05\x00\xa0\x01\x01\n\xeb\x01\n\x01\x0c\x12\x03\x05\x00\x122\x88\x01 SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n SPDX-License-Identifier: Apache-2.0\n2V Defines RelayDiagnosticsService and its dedicated RPC request and response messages.\n\n\x08\n\x01\x02\x12\x03\x07\x00$\n\t\n\x02\x03\x00\x12\x03\t\x00%\n\t\n\x02\x03\x01\x12\x03\n\x00%\n\t\n\x02\x03\x02\x12\x03\x0b\x002\n\t\n\x02\x03\x03\x12\x03\x0c\x00=\n\t\n\x02\x03\x04\x12\x03\r\x00;\n\t\n\x02\x03\x05\x12\x03\x0e\x007\n\xae\x01\n\x02\x06\x00\x12\x04\x12\x00\x1f\x01\x1a\xa1\x01 Diagnostic admission, limits, retry policy, and read authorization are separate\n from execution. ReadDiagnosticPage is denied unless explicit authority exists.\n\n\n\n\x03\x06\x00\x01\x12\x03\x12\x08\x1f\n_\n\x04\x06\x00\x02\x00\x12\x03\x14\x02n\x1aR Returns the host\'s independent diagnostic limits, contracts, and read authority.\n\n\x0c\n\x05\x06\x00\x02\x00\x01\x12\x03\x14\x06\x1f\n\x0c\n\x05\x06\x00\x02\x00\x02\x12\x03\x14 @\n\x0c\n\x05\x06\x00\x02\x00\x03\x12\x03\x14Kl\n`\n\x04\x06\x00\x02\x01\x12\x03\x16\x02b\x1aS Opens or returns this activation\'s live diagnostic session with confirmed policy.\n\n\x0c\n\x05\x06\x00\x02\x01\x01\x12\x03\x16\x06\x1b\n\x0c\n\x05\x06\x00\x02\x01\x02\x12\x03\x16\x1c8\n\x0c\n\x05\x06\x00\x02\x01\x03\x12\x03\x16C`\ne\n\x04\x06\x00\x02\x02\x12\x03\x18\x02S\x1aX Admits the next ordered diagnostic operation, preserving replay and receipt semantics.\n\n\x0c\n\x05\x06\x00\x02\x02\x01\x12\x03\x18\x06\x16\n\x0c\n\x05\x06\x00\x02\x02\x02\x12\x03\x18\x17.\n\x0c\n\x05\x06\x00\x02\x02\x03\x12\x03\x189Q\nd\n\x04\x06\x00\x02\x03\x12\x03\x1a\x02Y\x1aW Reads one bounded diagnostic page only when separate read authority has been granted.\n\n\x0c\n\x05\x06\x00\x02\x03\x01\x12\x03\x1a\x06\x18\n\x0c\n\x05\x06\x00\x02\x03\x02\x12\x03\x1a\x192\n\x0c\n\x05\x06\x00\x02\x03\x03\x12\x03\x1a=W\n^\n\x04\x06\x00\x02\x04\x12\x03\x1c\x02e\x1aQ Reads side-effect-free diagnostic discovery under separately granted authority.\n\n\x0c\n\x05\x06\x00\x02\x04\x01\x12\x03\x1c\x06\x1c\n\x0c\n\x05\x06\x00\x02\x04\x02\x12\x03\x1c\x1d:\n\x0c\n\x05\x06\x00\x02\x04\x03\x12\x03\x1cEc\nm\n\x04\x06\x00\x02\x05\x12\x03\x1e\x02h\x1a` Inspects bounded retained diagnostic backing and existing resource samples without collecting.\n\n\x0c\n\x05\x06\x00\x02\x05\x01\x12\x03\x1e\x06\x1d\n\x0c\n\x05\x06\x00\x02\x05\x02\x12\x03\x1e\x1e<\n\x0c\n\x05\x06\x00\x02\x05\x03\x12\x03\x1eGf\n`\n\x02\x04\x00\x12\x04\"\x00%\x01\x1aT Queries diagnostic policy using activation credentials, without opening a session.\n\n\n\n\x03\x04\x00\x01\x12\x03\"\x08(\nk\n\x04\x04\x00\x02\x00\x12\x03$\x02E\x1a^ Required activation credentials; invalid authentication fails before the operation executes.\n\n\x0c\n\x05\x04\x00\x02\x00\x06\x12\x03$\x02\r\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03$\x0e\x19\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03$\x1c\x1d\n\x0c\n\x05\x04\x00\x02\x00\x08\x12\x03$\x1eD\n\x0f\n\x08\x04\x00\x02\x00\x08\x87\t\x19\x12\x03$\x1fC\nM\n\x02\x04\x01\x12\x04(\x00+\x01\x1aA Returns the host\'s bounded diagnostic delivery and read policy.\n\n\n\n\x03\x04\x01\x01\x12\x03(\x08)\n`\n\x04\x04\x01\x02\x00\x12\x03*\x02Q\x1aS Required host policy; session-open values must match the advertised capabilities.\n\n\x0c\n\x05\x04\x01\x02\x00\x06\x12\x03*\x02\x18\n\x0c\n\x05\x04\x01\x02\x00\x01\x12\x03*\x19%\n\x0c\n\x05\x04\x01\x02\x00\x03\x12\x03*()\n\x0c\n\x05\x04\x01\x02\x00\x08\x12\x03**P\n\x0f\n\x08\x04\x01\x02\x00\x08\x87\t\x19\x12\x03*+O\n^\n\x02\x04\x02\x12\x04.\x007\x01\x1aR Requests a session with exactly the diagnostic contracts advertised by the host.\n\n\n\n\x03\x04\x02\x01\x12\x03.\x08$\nk\n\x04\x04\x02\x02\x00\x12\x030\x02E\x1a^ Required activation credentials; invalid authentication fails before the operation executes.\n\n\x0c\n\x05\x04\x02\x02\x00\x06\x12\x030\x02\r\n\x0c\n\x05\x04\x02\x02\x00\x01\x12\x030\x0e\x19\n\x0c\n\x05\x04\x02\x02\x00\x03\x12\x030\x1c\x1d\n\x0c\n\x05\x04\x02\x02\x00\x08\x12\x030\x1eD\n\x0f\n\x08\x04\x02\x02\x00\x08\x87\t\x19\x12\x030\x1fC\n`\n\x04\x04\x02\x02\x01\x12\x032\x02G\x1aS Required protocol name and semantic contract version to confirm during handshake.\n\n\x0c\n\x05\x04\x02\x02\x01\x06\x12\x032\x02\x12\n\x0c\n\x05\x04\x02\x02\x01\x01\x12\x032\x13\x1b\n\x0c\n\x05\x04\x02\x02\x01\x03\x12\x032\x1e\x1f\n\x0c\n\x05\x04\x02\x02\x01\x08\x12\x032 F\n\x0f\n\x08\x04\x02\x02\x01\x08\x87\t\x19\x12\x032!E\nP\n\x04\x04\x02\x02\x02\x12\x034\x02X\x1aC Supported diagnostic snapshot transport version, initially 1.0.0.\n\n\x0c\n\x05\x04\x02\x02\x02\x05\x12\x034\x02\x08\n\x0c\n\x05\x04\x02\x02\x02\x01\x12\x034\t\"\n\x0c\n\x05\x04\x02\x02\x02\x03\x12\x034%&\n\x0c\n\x05\x04\x02\x02\x02\x08\x12\x034\'W\n\x0f\n\x08\x04\x02\x02\x02\x08\x87\t\x0e\x12\x034(V\n[\n\x04\x04\x02\x02\x03\x12\x036\x02Z\x1aN Supported authenticated remote-provenance contract version, initially 1.0.0.\n\n\x0c\n\x05\x04\x02\x02\x03\x05\x12\x036\x02\x08\n\x0c\n\x05\x04\x02\x02\x03\x01\x12\x036\t$\n\x0c\n\x05\x04\x02\x02\x03\x03\x12\x036\'(\n\x0c\n\x05\x04\x02\x02\x03\x08\x12\x036)Y\n\x0f\n\x08\x04\x02\x02\x03\x08\x87\t\x0e\x12\x036*X\nV\n\x02\x04\x03\x12\x04:\x00?\x01\x1aJ Returns the activation\'s session identity and the confirmed host policy.\n\n\n\n\x03\x04\x03\x01\x12\x03:\x08%\nK\n\x04\x04\x03\x02\x00\x12\x03<\x02=\x1a> Exactly 16 UUID bytes; also the producer source incarnation.\n\n\x0c\n\x05\x04\x03\x02\x00\x05\x12\x03<\x02\x07\n\x0c\n\x05\x04\x03\x02\x00\x01\x12\x03<\x08\x12\n\x0c\n\x05\x04\x03\x02\x00\x03\x12\x03<\x15\x16\n\x0c\n\x05\x04\x03\x02\x00\x08\x12\x03<\x17<\n\x10\n\t\x04\x03\x02\x00\x08\x87\t\x0f\r\x12\x03<\x18;\n`\n\x04\x04\x03\x02\x01\x12\x03>\x02Q\x1aS Required host policy; session-open values must match the advertised capabilities.\n\n\x0c\n\x05\x04\x03\x02\x01\x06\x12\x03>\x02\x18\n\x0c\n\x05\x04\x03\x02\x01\x01\x12\x03>\x19%\n\x0c\n\x05\x04\x03\x02\x01\x03\x12\x03>()\n\x0c\n\x05\x04\x03\x02\x01\x08\x12\x03>*P\n\x0f\n\x08\x04\x03\x02\x01\x08\x87\t\x19\x12\x03>+O\n\x9f\x02\n\x02\x04\x04\x12\x04D\x00W\x01\x1a\x92\x02 Sends one ordered operation per request. Identical retries keep the sequence and content.\n A rejection before admission does not consume the sequence. An admitted policy rejection\n returns REJECTED and consumes the sequence. This service never retries execution callbacks.\n\n\n\n\x03\x04\x04\x01\x12\x03D\x08\x1f\nk\n\x04\x04\x04\x02\x00\x12\x03F\x02E\x1a^ Required activation credentials; invalid authentication fails before the operation executes.\n\n\x0c\n\x05\x04\x04\x02\x00\x06\x12\x03F\x02\r\n\x0c\n\x05\x04\x04\x02\x00\x01\x12\x03F\x0e\x19\n\x0c\n\x05\x04\x04\x02\x00\x03\x12\x03F\x1c\x1d\n\x0c\n\x05\x04\x04\x02\x00\x08\x12\x03F\x1eD\n\x0f\n\x08\x04\x04\x02\x00\x08\x87\t\x19\x12\x03F\x1fC\nO\n\x04\x04\x04\x02\x01\x12\x03H\x02=\x1aB Host-issued diagnostic session UUID encoded as exactly 16 bytes.\n\n\x0c\n\x05\x04\x04\x02\x01\x05\x12\x03H\x02\x07\n\x0c\n\x05\x04\x04\x02\x01\x01\x12\x03H\x08\x12\n\x0c\n\x05\x04\x04\x02\x01\x03\x12\x03H\x15\x16\n\x0c\n\x05\x04\x04\x02\x01\x08\x12\x03H\x17<\n\x10\n\t\x04\x04\x02\x01\x08\x87\t\x0f\r\x12\x03H\x18;\n[\n\x04\x04\x04\x02\x02\x12\x03J\x02;\x1aN Positive session-local sequence starting at one; identical retries reuse it.\n\n\x0c\n\x05\x04\x04\x02\x02\x05\x12\x03J\x02\x08\n\x0c\n\x05\x04\x04\x02\x02\x01\x12\x03J\t\x11\n\x0c\n\x05\x04\x04\x02\x02\x03\x12\x03J\x14\x15\n\x0c\n\x05\x04\x04\x02\x02\x08\x12\x03J\x16:\n\x10\n\t\x04\x04\x02\x02\x08\x87\t\x06\x04\x12\x03J\x179\n\\\n\x04\x04\x04\x08\x00\x12\x04L\x02V\x03\x1aN Exactly one recognized alternative is required when this message is present.\n\n\x0c\n\x05\x04\x04\x08\x00\x01\x12\x03L\x08\x11\n\x0c\n\x05\x04\x04\x08\x00\x02\x12\x03M\x040\n\x0f\n\x08\x04\x04\x08\x00\x02\x87\t\x01\x12\x03M\x040\n[\n\x04\x04\x04\x02\x03\x12\x03O\x04;\x1aN Registers component metadata and code handles as the next ordered operation.\n\n\x0c\n\x05\x04\x04\x02\x03\x06\x12\x03O\x04#\n\x0c\n\x05\x04\x04\x02\x03\x01\x12\x03O$6\n\x0c\n\x05\x04\x04\x02\x03\x03\x12\x03O9:\nT\n\x04\x04\x04\x02\x04\x12\x03Q\x04%\x1aG Records one positive observation delta as the next ordered operation.\n\n\x0c\n\x05\x04\x04\x02\x04\x06\x12\x03Q\x04\x19\n\x0c\n\x05\x04\x04\x02\x04\x01\x12\x03Q\x1a \n\x0c\n\x05\x04\x04\x02\x04\x03\x12\x03Q#$\nQ\n\x04\x04\x04\x02\x05\x12\x03S\x041\x1aD Closes an admitted component handle as the next ordered operation.\n\n\x0c\n\x05\x04\x04\x02\x05\x06\x12\x03S\x04\x1c\n\x0c\n\x05\x04\x04\x02\x05\x01\x12\x03S\x1d,\n\x0c\n\x05\x04\x04\x02\x05\x03\x12\x03S/0\n_\n\x04\x04\x04\x02\x06\x12\x03U\x04,\x1aR Closes the diagnostic session and stops further submissions for that activation.\n\n\x0c\n\x05\x04\x04\x02\x06\x06\x12\x03U\x04\x19\n\x0c\n\x05\x04\x04\x02\x06\x01\x12\x03U\x1a\'\n\x0c\n\x05\x04\x04\x02\x06\x03\x12\x03U*+\nX\n\x02\x04\x05\x12\x04Z\x00]\x01\x1aL Acknowledges one ordered diagnostic submission with its admission receipt.\n\n\n\n\x03\x04\x05\x01\x12\x03Z\x08 \nF\n\x04\x04\x05\x02\x00\x12\x03\\\x02G\x1a9 Required host receipt for this submission and sequence.\n\n\x0c\n\x05\x04\x05\x02\x00\x06\x12\x03\\\x02\x13\n\x0c\n\x05\x04\x05\x02\x00\x01\x12\x03\\\x14\x1b\n\x0c\n\x05\x04\x05\x02\x00\x03\x12\x03\\\x1e\x1f\n\x0c\n\x05\x04\x05\x02\x00\x08\x12\x03\\ F\n\x0f\n\x08\x04\x05\x02\x00\x08\x87\t\x19\x12\x03\\!E\ng\n\x02\x04\x06\x12\x04`\x00e\x01\x1a[ Requests snapshot evidence only under the activation\'s separately granted read authority.\n\n\n\n\x03\x04\x06\x01\x12\x03`\x08!\nc\n\x04\x04\x06\x02\x00\x12\x03b\x02E\x1aV Required credentials authenticate this activation; they do not grant read authority.\n\n\x0c\n\x05\x04\x06\x02\x00\x06\x12\x03b\x02\r\n\x0c\n\x05\x04\x06\x02\x00\x01\x12\x03b\x0e\x19\n\x0c\n\x05\x04\x06\x02\x00\x03\x12\x03b\x1c\x1d\n\x0c\n\x05\x04\x06\x02\x00\x08\x12\x03b\x1eD\n\x0f\n\x08\x04\x06\x02\x00\x08\x87\t\x19\x12\x03b\x1fC\nb\n\x04\x04\x06\x02\x01\x12\x03d\x02C\x1aU Full shared query; requested selection must be intersected with host authorization.\n\n\x0c\n\x05\x04\x06\x02\x01\x06\x12\x03d\x02\x11\n\x0c\n\x05\x04\x06\x02\x01\x01\x12\x03d\x12\x17\n\x0c\n\x05\x04\x06\x02\x01\x03\x12\x03d\x1a\x1b\n\x0c\n\x05\x04\x06\x02\x01\x08\x12\x03d\x1cB\n\x0f\n\x08\x04\x06\x02\x01\x08\x87\t\x19\x12\x03d\x1dA\nn\n\x02\x04\x07\x12\x04h\x00t\x01\x1ab Returns snapshot evidence or a portable domain read failure; transport failures use gRPC status.\n\n\n\n\x03\x04\x07\x01\x12\x03h\x08\"\n`\n\x04\x04\x07\x08\x00\x12\x04j\x02s\x03\x1aR Exactly one result is required; a failed read must not look like empty evidence.\n\n\x0c\n\x05\x04\x07\x08\x00\x01\x12\x03j\x08\x0e\n\x0c\n\x05\x04\x07\x08\x00\x02\x12\x03k\x040\n\x0f\n\x08\x04\x07\x08\x00\x02\x87\t\x01\x12\x03k\x040\nS\n\x04\x04\x07\x02\x00\x12\x03m\x04$\x1aF Evidence owned by this result, with its original scope and coverage.\n\n\x0c\n\x05\x04\x07\x02\x00\x06\x12\x03m\x04\x16\n\x0c\n\x05\x04\x07\x02\x00\x01\x12\x03m\x17\x1f\n\x0c\n\x05\x04\x07\x02\x00\x03\x12\x03m\"#\n\\\n\x04\x04\x07\x02\x01\x12\x04o\x04r\x07\x1aN Stable shared read reason, separate from authentication or transport status.\n\n\x0c\n\x05\x04\x07\x02\x01\x06\x12\x03o\x04\x18\n\x0c\n\x05\x04\x07\x02\x01\x01\x12\x03o\x19$\n\x0c\n\x05\x04\x07\x02\x01\x03\x12\x03o\'(\n\r\n\x05\x04\x07\x02\x01\x08\x12\x04o)r\x06\n\x10\n\x08\x04\x07\x02\x01\x08\x87\t\x10\x12\x04o*r\x05\nh\n\x02\x04\x08\x12\x04w\x00z\x01\x1a\\ Requests discovery evidence only under the activation\'s separately granted read authority.\n\n\n\n\x03\x04\x08\x01\x12\x03w\x08%\nc\n\x04\x04\x08\x02\x00\x12\x03y\x02E\x1aV Required credentials authenticate this activation; they do not grant read authority.\n\n\x0c\n\x05\x04\x08\x02\x00\x06\x12\x03y\x02\r\n\x0c\n\x05\x04\x08\x02\x00\x01\x12\x03y\x0e\x19\n\x0c\n\x05\x04\x08\x02\x00\x03\x12\x03y\x1c\x1d\n\x0c\n\x05\x04\x08\x02\x00\x08\x12\x03y\x1eD\n\x0f\n\x08\x04\x08\x02\x00\x08\x87\t\x19\x12\x03y\x1fC\np\n\x02\x04\t\x12\x05}\x00\x89\x01\x01\x1ac Returns discovery evidence or a portable domain read failure; transport failures use gRPC status.\n\n\n\n\x03\x04\t\x01\x12\x03}\x08&\na\n\x04\x04\t\x08\x00\x12\x05\x7f\x02\x88\x01\x03\x1aR Exactly one result is required; a failed read must not look like empty evidence.\n\n\x0c\n\x05\x04\t\x08\x00\x01\x12\x03\x7f\x08\x0e\n\r\n\x05\x04\t\x08\x00\x02\x12\x04\x80\x01\x040\n\x10\n\x08\x04\t\x08\x00\x02\x87\t\x01\x12\x04\x80\x01\x040\nT\n\x04\x04\t\x02\x00\x12\x04\x82\x01\x04&\x1aF Evidence owned by this result, with its original scope and coverage.\n\n\r\n\x05\x04\t\x02\x00\x06\x12\x04\x82\x01\x04\x17\n\r\n\x05\x04\t\x02\x00\x01\x12\x04\x82\x01\x18!\n\r\n\x05\x04\t\x02\x00\x03\x12\x04\x82\x01$%\n^\n\x04\x04\t\x02\x01\x12\x06\x84\x01\x04\x87\x01\x07\x1aN Stable shared read reason, separate from authentication or transport status.\n\n\r\n\x05\x04\t\x02\x01\x06\x12\x04\x84\x01\x04\x18\n\r\n\x05\x04\t\x02\x01\x01\x12\x04\x84\x01\x19$\n\r\n\x05\x04\t\x02\x01\x03\x12\x04\x84\x01\'(\n\x0f\n\x05\x04\t\x02\x01\x08\x12\x06\x84\x01)\x87\x01\x06\n\x12\n\x08\x04\t\x02\x01\x08\x87\t\x10\x12\x06\x84\x01*\x87\x01\x05\ng\n\x02\x04\n\x12\x06\x8c\x01\x00\x91\x01\x01\x1aY Requests memory evidence only under the activation\'s separately granted read authority.\n\n\x0b\n\x03\x04\n\x01\x12\x04\x8c\x01\x08&\nd\n\x04\x04\n\x02\x00\x12\x04\x8e\x01\x02E\x1aV Required credentials authenticate this activation; they do not grant read authority.\n\n\r\n\x05\x04\n\x02\x00\x06\x12\x04\x8e\x01\x02\r\n\r\n\x05\x04\n\x02\x00\x01\x12\x04\x8e\x01\x0e\x19\n\r\n\x05\x04\n\x02\x00\x03\x12\x04\x8e\x01\x1c\x1d\n\r\n\x05\x04\n\x02\x00\x08\x12\x04\x8e\x01\x1eD\n\x10\n\x08\x04\n\x02\x00\x08\x87\t\x19\x12\x04\x8e\x01\x1fC\nc\n\x04\x04\n\x02\x01\x12\x04\x90\x01\x02C\x1aU Full shared query; requested selection must be intersected with host authorization.\n\n\r\n\x05\x04\n\x02\x01\x06\x12\x04\x90\x01\x02\x11\n\r\n\x05\x04\n\x02\x01\x01\x12\x04\x90\x01\x12\x17\n\r\n\x05\x04\n\x02\x01\x03\x12\x04\x90\x01\x1a\x1b\n\r\n\x05\x04\n\x02\x01\x08\x12\x04\x90\x01\x1cB\n\x10\n\x08\x04\n\x02\x01\x08\x87\t\x19\x12\x04\x90\x01\x1dA\nn\n\x02\x04\x0b\x12\x06\x94\x01\x00\xa0\x01\x01\x1a` Returns memory evidence or a portable domain read failure; transport failures use gRPC status.\n\n\x0b\n\x03\x04\x0b\x01\x12\x04\x94\x01\x08\'\nb\n\x04\x04\x0b\x08\x00\x12\x06\x96\x01\x02\x9f\x01\x03\x1aR Exactly one result is required; a failed read must not look like empty evidence.\n\n\r\n\x05\x04\x0b\x08\x00\x01\x12\x04\x96\x01\x08\x0e\n\r\n\x05\x04\x0b\x08\x00\x02\x12\x04\x97\x01\x040\n\x10\n\x08\x04\x0b\x08\x00\x02\x87\t\x01\x12\x04\x97\x01\x040\nT\n\x04\x04\x0b\x02\x00\x12\x04\x99\x01\x04$\x1aF Evidence owned by this result, with its original scope and coverage.\n\n\r\n\x05\x04\x0b\x02\x00\x06\x12\x04\x99\x01\x04\x18\n\r\n\x05\x04\x0b\x02\x00\x01\x12\x04\x99\x01\x19\x1f\n\r\n\x05\x04\x0b\x02\x00\x03\x12\x04\x99\x01\"#\n^\n\x04\x04\x0b\x02\x01\x12\x06\x9b\x01\x04\x9e\x01\x07\x1aN Stable shared read reason, separate from authentication or transport status.\n\n\r\n\x05\x04\x0b\x02\x01\x06\x12\x04\x9b\x01\x04\x18\n\r\n\x05\x04\x0b\x02\x01\x01\x12\x04\x9b\x01\x19$\n\r\n\x05\x04\x0b\x02\x01\x03\x12\x04\x9b\x01\'(\n\x0f\n\x05\x04\x0b\x02\x01\x08\x12\x06\x9b\x01)\x9e\x01\x06\n\x12\n\x08\x04\x0b\x02\x01\x08\x87\t\x10\x12\x06\x9b\x01*\x9e\x01\x05b\x06proto3";
Descriptors for the worker contract, including its imported messages.