From 54f00c280590d00e83087e131851a803d35da7ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93lafur=20P=C3=A1ll=20Geirsson?= Date: Tue, 23 May 2023 07:51:28 +0200 Subject: [PATCH] Add `SymbolInformation.Kind` This is the first step towards closing https://github.com/sourcegraph/scip/issues/154. Previously, the only way to determine the type of a symbol was through `SymbolDescriptor.Suffix`. This solution was not ideal since `Suffix` had very coarse grained types, and it was intentionally named "suffix" to indicate it was primarily used to determine the syntax of the symbol (not semantics). This PR adds a new enum `SymbolInformation.Kind` to add first-class support to determine the type of a symbol. --- bindings/go/scip/scip.pb.go | 673 +++++++++----- bindings/rust/src/generated/scip.rs | 1296 +++++++++++++++++---------- bindings/typescript/scip.ts | 63 ++ docs/scip.md | 50 ++ scip.proto | 51 ++ 5 files changed, 1423 insertions(+), 710 deletions(-) diff --git a/bindings/go/scip/scip.pb.go b/bindings/go/scip/scip.pb.go index c4bb8bf5..227b4060 100644 --- a/bindings/go/scip/scip.pb.go +++ b/bindings/go/scip/scip.pb.go @@ -907,6 +907,161 @@ func (Descriptor_Suffix) EnumDescriptor() ([]byte, []int) { return file_scip_proto_rawDescGZIP(), []int{6, 0} } +// Kind determines the type of a symbol using idiomatic names from the +// language's type system. For example, a Java method would have the kind +// `Method` while a Go function would have the kind `Function`, even if the +// symbols for these use the same syntax for the descriptor: +// `SymbolDescriptor.Suffix.Method`. Likewise, a Go struct has the symbol kind +// `Struct` while a Java class has the symbol kind `Class` even if they both have +// the same descriptor: `SymbolDescriptor.Suffix.Type`. +type SymbolInformation_Kind int32 + +const ( + SymbolInformation_UnspecifiedKind SymbolInformation_Kind = 0 + SymbolInformation_Array SymbolInformation_Kind = 1 + SymbolInformation_Boolean SymbolInformation_Kind = 2 + SymbolInformation_Class SymbolInformation_Kind = 3 + SymbolInformation_Constant SymbolInformation_Kind = 4 + SymbolInformation_Constructor SymbolInformation_Kind = 5 + SymbolInformation_Enum SymbolInformation_Kind = 6 + SymbolInformation_Enumerator SymbolInformation_Kind = 7 + SymbolInformation_EnumMember SymbolInformation_Kind = 8 + SymbolInformation_Event SymbolInformation_Kind = 9 + SymbolInformation_Field SymbolInformation_Kind = 10 + SymbolInformation_File SymbolInformation_Kind = 11 + SymbolInformation_Function SymbolInformation_Kind = 12 + SymbolInformation_Interface SymbolInformation_Kind = 13 + SymbolInformation_Key SymbolInformation_Kind = 14 + SymbolInformation_Macro SymbolInformation_Kind = 15 + SymbolInformation_Method SymbolInformation_Kind = 16 + SymbolInformation_Module SymbolInformation_Kind = 17 + SymbolInformation_Namespace SymbolInformation_Kind = 18 + SymbolInformation_Null SymbolInformation_Kind = 19 + SymbolInformation_Number SymbolInformation_Kind = 20 + SymbolInformation_Object SymbolInformation_Kind = 21 + SymbolInformation_Operator SymbolInformation_Kind = 22 + SymbolInformation_Package SymbolInformation_Kind = 23 + SymbolInformation_PackageObject SymbolInformation_Kind = 24 + SymbolInformation_Parameter SymbolInformation_Kind = 25 + SymbolInformation_Property SymbolInformation_Kind = 26 + SymbolInformation_SelfParameter SymbolInformation_Kind = 27 + SymbolInformation_String SymbolInformation_Kind = 28 + SymbolInformation_Struct SymbolInformation_Kind = 29 + SymbolInformation_Trait SymbolInformation_Kind = 30 + SymbolInformation_Type SymbolInformation_Kind = 31 + SymbolInformation_TypeParameter SymbolInformation_Kind = 32 + SymbolInformation_Union SymbolInformation_Kind = 33 + SymbolInformation_Value SymbolInformation_Kind = 34 + SymbolInformation_Variable SymbolInformation_Kind = 35 // Feel free to open a PR proposing new language-specific kinds. +) + +// Enum value maps for SymbolInformation_Kind. +var ( + SymbolInformation_Kind_name = map[int32]string{ + 0: "UnspecifiedKind", + 1: "Array", + 2: "Boolean", + 3: "Class", + 4: "Constant", + 5: "Constructor", + 6: "Enum", + 7: "Enumerator", + 8: "EnumMember", + 9: "Event", + 10: "Field", + 11: "File", + 12: "Function", + 13: "Interface", + 14: "Key", + 15: "Macro", + 16: "Method", + 17: "Module", + 18: "Namespace", + 19: "Null", + 20: "Number", + 21: "Object", + 22: "Operator", + 23: "Package", + 24: "PackageObject", + 25: "Parameter", + 26: "Property", + 27: "SelfParameter", + 28: "String", + 29: "Struct", + 30: "Trait", + 31: "Type", + 32: "TypeParameter", + 33: "Union", + 34: "Value", + 35: "Variable", + } + SymbolInformation_Kind_value = map[string]int32{ + "UnspecifiedKind": 0, + "Array": 1, + "Boolean": 2, + "Class": 3, + "Constant": 4, + "Constructor": 5, + "Enum": 6, + "Enumerator": 7, + "EnumMember": 8, + "Event": 9, + "Field": 10, + "File": 11, + "Function": 12, + "Interface": 13, + "Key": 14, + "Macro": 15, + "Method": 16, + "Module": 17, + "Namespace": 18, + "Null": 19, + "Number": 20, + "Object": 21, + "Operator": 22, + "Package": 23, + "PackageObject": 24, + "Parameter": 25, + "Property": 26, + "SelfParameter": 27, + "String": 28, + "Struct": 29, + "Trait": 30, + "Type": 31, + "TypeParameter": 32, + "Union": 33, + "Value": 34, + "Variable": 35, + } +) + +func (x SymbolInformation_Kind) Enum() *SymbolInformation_Kind { + p := new(SymbolInformation_Kind) + *p = x + return p +} + +func (x SymbolInformation_Kind) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SymbolInformation_Kind) Descriptor() protoreflect.EnumDescriptor { + return file_scip_proto_enumTypes[8].Descriptor() +} + +func (SymbolInformation_Kind) Type() protoreflect.EnumType { + return &file_scip_proto_enumTypes[8] +} + +func (x SymbolInformation_Kind) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SymbolInformation_Kind.Descriptor instead. +func (SymbolInformation_Kind) EnumDescriptor() ([]byte, []int) { + return file_scip_proto_rawDescGZIP(), []int{7, 0} +} + // Index represents a complete SCIP index for a workspace this is rooted at a // single directory. An Index message payload can have a large memory footprint // and it's therefore recommended to emit and consume an Index payload one field @@ -1464,6 +1619,10 @@ type SymbolInformation struct { Documentation []string `protobuf:"bytes,3,rep,name=documentation,proto3" json:"documentation,omitempty"` // (optional) Relationships to other symbols (e.g., implements, type definition). Relationships []*Relationship `protobuf:"bytes,4,rep,name=relationships,proto3" json:"relationships,omitempty"` + // The kind of this symbol. Use this field instead of + // `SymbolDescriptor.Suffix` to determine whether something is, for example, a + // class or a method. + Kind SymbolInformation_Kind `protobuf:"varint,5,opt,name=kind,proto3,enum=scip.SymbolInformation_Kind" json:"kind,omitempty"` } func (x *SymbolInformation) Reset() { @@ -1519,6 +1678,13 @@ func (x *SymbolInformation) GetRelationships() []*Relationship { return nil } +func (x *SymbolInformation) GetKind() SymbolInformation_Kind { + if x != nil { + return x.Kind + } + return SymbolInformation_UnspecifiedKind +} + type Relationship struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1980,7 +2146,7 @@ var file_scip_proto_rawDesc = []byte{ 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x10, 0x06, 0x12, 0x08, 0x0a, 0x04, 0x4d, 0x65, 0x74, 0x61, 0x10, 0x07, 0x12, 0x09, 0x0a, 0x05, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x10, 0x08, 0x12, 0x09, 0x0a, 0x05, 0x4d, 0x61, 0x63, 0x72, 0x6f, 0x10, 0x09, 0x1a, - 0x02, 0x10, 0x01, 0x22, 0x8b, 0x01, 0x0a, 0x11, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x49, 0x6e, + 0x02, 0x10, 0x01, 0x22, 0xa3, 0x05, 0x0a, 0x11, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, @@ -1989,203 +2155,236 @@ var file_scip_proto_rawDesc = []byte{ 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x63, 0x69, 0x70, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x52, 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, - 0x73, 0x22, 0xc9, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, - 0x69, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, - 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0b, 0x69, 0x73, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x2b, 0x0a, - 0x11, 0x69, 0x73, 0x5f, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x73, 0x49, 0x6d, 0x70, 0x6c, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x73, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x73, 0x54, 0x79, 0x70, 0x65, 0x44, 0x65, - 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x73, 0x5f, 0x64, - 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0c, 0x69, 0x73, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa4, 0x02, - 0x0a, 0x0a, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x72, 0x61, 0x6e, - 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x79, - 0x6d, 0x62, 0x6f, 0x6c, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0b, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x35, 0x0a, - 0x16, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x5f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, - 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x15, 0x6f, - 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x0b, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x5f, 0x6b, - 0x69, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x73, 0x63, 0x69, 0x70, - 0x2e, 0x53, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x0a, 0x73, 0x79, 0x6e, - 0x74, 0x61, 0x78, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x32, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, - 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x73, - 0x63, 0x69, 0x70, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0b, - 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x65, - 0x6e, 0x63, 0x6c, 0x6f, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x05, 0x52, 0x0e, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x73, 0x69, 0x6e, 0x67, 0x52, - 0x61, 0x6e, 0x67, 0x65, 0x22, 0xa7, 0x01, 0x0a, 0x0a, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, - 0x74, 0x69, 0x63, 0x12, 0x2a, 0x0a, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x73, 0x63, 0x69, 0x70, 0x2e, 0x53, 0x65, 0x76, - 0x65, 0x72, 0x69, 0x74, 0x79, 0x52, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x12, - 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, - 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, - 0x03, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x73, 0x63, 0x69, 0x70, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, - 0x6f, 0x73, 0x74, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x2a, 0x31, - 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x12, 0x1e, 0x0a, 0x1a, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x10, - 0x00, 0x2a, 0x40, 0x0a, 0x0c, 0x54, 0x65, 0x78, 0x74, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, - 0x67, 0x12, 0x1b, 0x0a, 0x17, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x54, 0x65, 0x78, 0x74, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x10, 0x00, 0x12, 0x08, - 0x0a, 0x04, 0x55, 0x54, 0x46, 0x38, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x55, 0x54, 0x46, 0x31, - 0x36, 0x10, 0x02, 0x2a, 0x7d, 0x0a, 0x0a, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x52, 0x6f, 0x6c, - 0x65, 0x12, 0x19, 0x0a, 0x15, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x52, 0x6f, 0x6c, 0x65, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, - 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, - 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x57, 0x72, 0x69, 0x74, - 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x65, 0x61, - 0x64, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x08, 0x12, 0x0d, 0x0a, 0x09, 0x47, 0x65, 0x6e, - 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x10, 0x10, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x65, 0x73, 0x74, - 0x10, 0x20, 0x2a, 0xea, 0x06, 0x0a, 0x0a, 0x53, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x4b, 0x69, 0x6e, - 0x64, 0x12, 0x19, 0x0a, 0x15, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x53, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x4b, 0x69, 0x6e, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, - 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x75, 0x6e, - 0x63, 0x74, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, - 0x72, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x75, 0x6e, 0x63, 0x74, 0x75, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x42, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x4b, - 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x10, 0x04, 0x12, 0x19, 0x0a, 0x11, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x10, 0x04, 0x1a, - 0x02, 0x08, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x10, 0x05, 0x12, 0x0e, 0x0a, 0x0a, 0x49, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x10, 0x06, 0x12, 0x15, 0x0a, 0x11, 0x49, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x42, 0x75, 0x69, 0x6c, 0x74, 0x69, 0x6e, - 0x10, 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, - 0x4e, 0x75, 0x6c, 0x6c, 0x10, 0x08, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x10, 0x09, 0x12, 0x1b, - 0x0a, 0x17, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x75, 0x74, 0x61, - 0x62, 0x6c, 0x65, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x10, 0x0a, 0x12, 0x17, 0x0a, 0x13, 0x49, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x10, 0x0b, 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x10, 0x0c, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x53, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x65, 0x64, 0x10, - 0x0d, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x10, 0x0e, 0x12, 0x18, 0x0a, 0x10, 0x49, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x10, 0x0e, - 0x1a, 0x02, 0x08, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x65, 0x72, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x0f, 0x12, 0x20, 0x0a, 0x1c, + 0x73, 0x12, 0x30, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x1c, 0x2e, 0x73, 0x63, 0x69, 0x70, 0x2e, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x49, 0x6e, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x04, 0x6b, + 0x69, 0x6e, 0x64, 0x22, 0xe3, 0x03, 0x0a, 0x04, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x13, 0x0a, 0x0f, + 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x4b, 0x69, 0x6e, 0x64, 0x10, + 0x00, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x72, 0x72, 0x61, 0x79, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, + 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, + 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x6f, + 0x72, 0x10, 0x05, 0x12, 0x08, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x10, 0x06, 0x12, 0x0e, 0x0a, + 0x0a, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x10, 0x07, 0x12, 0x0e, 0x0a, + 0x0a, 0x45, 0x6e, 0x75, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x08, 0x12, 0x09, 0x0a, + 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0x09, 0x12, 0x09, 0x0a, 0x05, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x10, 0x0a, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x69, 0x6c, 0x65, 0x10, 0x0b, 0x12, 0x0c, 0x0a, + 0x08, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x0c, 0x12, 0x0d, 0x0a, 0x09, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x10, 0x0d, 0x12, 0x07, 0x0a, 0x03, 0x4b, 0x65, + 0x79, 0x10, 0x0e, 0x12, 0x09, 0x0a, 0x05, 0x4d, 0x61, 0x63, 0x72, 0x6f, 0x10, 0x0f, 0x12, 0x0a, + 0x0a, 0x06, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x10, 0x10, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x10, 0x11, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x10, 0x12, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x75, 0x6c, 0x6c, 0x10, 0x13, 0x12, + 0x0a, 0x0a, 0x06, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x14, 0x12, 0x0a, 0x0a, 0x06, 0x4f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x10, 0x15, 0x12, 0x0c, 0x0a, 0x08, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x10, 0x16, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, + 0x10, 0x17, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x10, 0x18, 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, + 0x65, 0x72, 0x10, 0x19, 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, + 0x10, 0x1a, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x65, 0x6c, 0x66, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x10, 0x1b, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x10, + 0x1c, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x10, 0x1d, 0x12, 0x09, 0x0a, + 0x05, 0x54, 0x72, 0x61, 0x69, 0x74, 0x10, 0x1e, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, + 0x10, 0x1f, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x79, 0x70, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x10, 0x20, 0x12, 0x09, 0x0a, 0x05, 0x55, 0x6e, 0x69, 0x6f, 0x6e, 0x10, 0x21, + 0x12, 0x09, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x22, 0x12, 0x0c, 0x0a, 0x08, 0x56, + 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x10, 0x23, 0x22, 0xc9, 0x01, 0x0a, 0x0c, 0x52, 0x65, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, + 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, + 0x6f, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x52, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x69, 0x73, 0x5f, 0x69, 0x6d, 0x70, 0x6c, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x10, 0x69, 0x73, 0x49, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x64, 0x65, + 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, + 0x69, 0x73, 0x54, 0x79, 0x70, 0x65, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x73, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, 0x44, 0x65, 0x66, 0x69, 0x6e, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa4, 0x02, 0x0a, 0x0a, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x05, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, + 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, + 0x6f, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x5f, 0x72, 0x6f, 0x6c, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, + 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x16, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, + 0x65, 0x5f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x15, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x44, + 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x0b, + 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x10, 0x2e, 0x73, 0x63, 0x69, 0x70, 0x2e, 0x53, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x4b, + 0x69, 0x6e, 0x64, 0x52, 0x0a, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x4b, 0x69, 0x6e, 0x64, 0x12, + 0x32, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x73, 0x63, 0x69, 0x70, 0x2e, 0x44, 0x69, 0x61, 0x67, + 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, + 0x69, 0x63, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x73, 0x69, 0x6e, 0x67, + 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0e, 0x65, 0x6e, + 0x63, 0x6c, 0x6f, 0x73, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x22, 0xa7, 0x01, 0x0a, + 0x0a, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2a, 0x0a, 0x08, 0x73, + 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, + 0x73, 0x63, 0x69, 0x70, 0x2e, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x52, 0x08, 0x73, + 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x27, 0x0a, + 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x73, 0x63, + 0x69, 0x70, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x2a, 0x31, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x1a, 0x55, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x10, 0x00, 0x2a, 0x40, 0x0a, 0x0c, 0x54, 0x65, 0x78, + 0x74, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x1b, 0x0a, 0x17, 0x55, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, 0x45, 0x6e, 0x63, 0x6f, + 0x64, 0x69, 0x6e, 0x67, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x55, 0x54, 0x46, 0x38, 0x10, 0x01, + 0x12, 0x09, 0x0a, 0x05, 0x55, 0x54, 0x46, 0x31, 0x36, 0x10, 0x02, 0x2a, 0x7d, 0x0a, 0x0a, 0x53, + 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x55, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x52, 0x6f, + 0x6c, 0x65, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x10, 0x02, + 0x12, 0x0f, 0x0a, 0x0b, 0x57, 0x72, 0x69, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, + 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x65, 0x61, 0x64, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, + 0x08, 0x12, 0x0d, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x10, 0x10, + 0x12, 0x08, 0x0a, 0x04, 0x54, 0x65, 0x73, 0x74, 0x10, 0x20, 0x2a, 0xea, 0x06, 0x0a, 0x0a, 0x53, + 0x79, 0x6e, 0x74, 0x61, 0x78, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x19, 0x0a, 0x15, 0x55, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x53, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x4b, 0x69, + 0x6e, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x01, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x75, 0x6e, 0x63, 0x74, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x44, 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x72, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x50, + 0x75, 0x6e, 0x63, 0x74, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x72, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x10, 0x04, + 0x12, 0x19, 0x0a, 0x11, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4b, 0x65, + 0x79, 0x77, 0x6f, 0x72, 0x64, 0x10, 0x04, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x49, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x10, 0x05, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x10, 0x06, 0x12, 0x15, 0x0a, 0x11, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x42, 0x75, 0x69, 0x6c, 0x74, 0x69, 0x6e, 0x10, 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4e, 0x75, 0x6c, 0x6c, 0x10, 0x08, 0x12, 0x16, + 0x0a, 0x12, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x74, 0x10, 0x09, 0x12, 0x1b, 0x0a, 0x17, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x4d, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x6c, 0x6f, 0x62, 0x61, + 0x6c, 0x10, 0x0a, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x10, 0x0b, 0x12, 0x13, 0x0a, 0x0f, + 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x10, + 0x0c, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x53, + 0x68, 0x61, 0x64, 0x6f, 0x77, 0x65, 0x64, 0x10, 0x0d, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x10, 0x0e, 0x12, 0x18, 0x0a, 0x10, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, + 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x10, 0x0e, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x10, 0x12, 0x13, - 0x0a, 0x0f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x61, 0x63, 0x72, - 0x6f, 0x10, 0x11, 0x12, 0x1d, 0x0a, 0x19, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x4d, 0x61, 0x63, 0x72, 0x6f, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x10, 0x12, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, - 0x54, 0x79, 0x70, 0x65, 0x10, 0x13, 0x12, 0x19, 0x0a, 0x15, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x42, 0x75, 0x69, 0x6c, 0x74, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x10, - 0x14, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x10, 0x15, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x65, - 0x67, 0x65, 0x78, 0x45, 0x73, 0x63, 0x61, 0x70, 0x65, 0x10, 0x16, 0x12, 0x11, 0x0a, 0x0d, 0x52, - 0x65, 0x67, 0x65, 0x78, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x10, 0x17, 0x12, 0x11, - 0x0a, 0x0d, 0x52, 0x65, 0x67, 0x65, 0x78, 0x57, 0x69, 0x6c, 0x64, 0x63, 0x61, 0x72, 0x64, 0x10, - 0x18, 0x12, 0x12, 0x0a, 0x0e, 0x52, 0x65, 0x67, 0x65, 0x78, 0x44, 0x65, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x65, 0x72, 0x10, 0x19, 0x12, 0x0d, 0x0a, 0x09, 0x52, 0x65, 0x67, 0x65, 0x78, 0x4a, 0x6f, - 0x69, 0x6e, 0x10, 0x1a, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, - 0x74, 0x65, 0x72, 0x61, 0x6c, 0x10, 0x1b, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x45, 0x73, 0x63, 0x61, 0x70, 0x65, 0x10, 0x1c, - 0x12, 0x18, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, - 0x6c, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x10, 0x1d, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x4b, 0x65, 0x79, 0x10, 0x1e, - 0x12, 0x14, 0x0a, 0x10, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x74, - 0x65, 0x72, 0x61, 0x6c, 0x10, 0x1f, 0x12, 0x12, 0x0a, 0x0e, 0x4e, 0x75, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x10, 0x20, 0x12, 0x12, 0x0a, 0x0e, 0x42, 0x6f, - 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x10, 0x21, 0x12, 0x07, - 0x0a, 0x03, 0x54, 0x61, 0x67, 0x10, 0x22, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x61, 0x67, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x10, 0x23, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x61, 0x67, - 0x44, 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x72, 0x10, 0x24, 0x1a, 0x02, 0x10, 0x01, 0x2a, - 0x56, 0x0a, 0x08, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x12, 0x17, 0x0a, 0x13, 0x55, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, - 0x74, 0x79, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, 0x12, - 0x0b, 0x0a, 0x07, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, - 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x03, 0x12, 0x08, 0x0a, - 0x04, 0x48, 0x69, 0x6e, 0x74, 0x10, 0x04, 0x2a, 0x4e, 0x0a, 0x0d, 0x44, 0x69, 0x61, 0x67, 0x6e, - 0x6f, 0x73, 0x74, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x1c, 0x0a, 0x18, 0x55, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x6e, 0x6e, 0x65, 0x63, 0x65, - 0x73, 0x73, 0x61, 0x72, 0x79, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x65, 0x70, 0x72, 0x65, - 0x63, 0x61, 0x74, 0x65, 0x64, 0x10, 0x02, 0x2a, 0xe0, 0x08, 0x0a, 0x08, 0x4c, 0x61, 0x6e, 0x67, - 0x75, 0x61, 0x67, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x10, 0x00, 0x12, 0x08, 0x0a, - 0x04, 0x41, 0x42, 0x41, 0x50, 0x10, 0x3c, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x50, 0x4c, 0x10, 0x31, - 0x12, 0x07, 0x0a, 0x03, 0x41, 0x64, 0x61, 0x10, 0x27, 0x12, 0x08, 0x0a, 0x04, 0x41, 0x67, 0x64, - 0x61, 0x10, 0x2d, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x73, 0x63, 0x69, 0x69, 0x44, 0x6f, 0x63, 0x10, - 0x56, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x79, 0x10, 0x3a, 0x12, - 0x07, 0x0a, 0x03, 0x41, 0x77, 0x6b, 0x10, 0x42, 0x12, 0x07, 0x0a, 0x03, 0x42, 0x61, 0x74, 0x10, - 0x44, 0x12, 0x0a, 0x0a, 0x06, 0x42, 0x69, 0x62, 0x54, 0x65, 0x58, 0x10, 0x51, 0x12, 0x05, 0x0a, - 0x01, 0x43, 0x10, 0x22, 0x12, 0x09, 0x0a, 0x05, 0x43, 0x4f, 0x42, 0x4f, 0x4c, 0x10, 0x3b, 0x12, - 0x07, 0x0a, 0x03, 0x43, 0x50, 0x50, 0x10, 0x23, 0x12, 0x07, 0x0a, 0x03, 0x43, 0x53, 0x53, 0x10, - 0x1a, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x53, 0x68, 0x61, 0x72, 0x70, 0x10, 0x01, 0x12, 0x0b, 0x0a, - 0x07, 0x43, 0x6c, 0x6f, 0x6a, 0x75, 0x72, 0x65, 0x10, 0x08, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x6f, - 0x66, 0x66, 0x65, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x10, 0x15, 0x12, 0x0e, 0x0a, 0x0a, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x70, 0x10, 0x09, 0x12, 0x07, 0x0a, 0x03, - 0x43, 0x6f, 0x71, 0x10, 0x2f, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x61, 0x72, 0x74, 0x10, 0x03, 0x12, - 0x0a, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x70, 0x68, 0x69, 0x10, 0x39, 0x12, 0x08, 0x0a, 0x04, 0x44, - 0x69, 0x66, 0x66, 0x10, 0x58, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x66, - 0x69, 0x6c, 0x65, 0x10, 0x50, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x79, 0x61, 0x6c, 0x6f, 0x67, 0x10, - 0x32, 0x12, 0x0a, 0x0a, 0x06, 0x45, 0x6c, 0x69, 0x78, 0x69, 0x72, 0x10, 0x11, 0x12, 0x0a, 0x0a, - 0x06, 0x45, 0x72, 0x6c, 0x61, 0x6e, 0x67, 0x10, 0x12, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x53, 0x68, - 0x61, 0x72, 0x70, 0x10, 0x2a, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x69, 0x73, 0x68, 0x10, 0x41, 0x12, - 0x08, 0x0a, 0x04, 0x46, 0x6c, 0x6f, 0x77, 0x10, 0x18, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x6f, 0x72, - 0x74, 0x72, 0x61, 0x6e, 0x10, 0x38, 0x12, 0x0e, 0x0a, 0x0a, 0x47, 0x69, 0x74, 0x5f, 0x43, 0x6f, - 0x6d, 0x6d, 0x69, 0x74, 0x10, 0x5b, 0x12, 0x0e, 0x0a, 0x0a, 0x47, 0x69, 0x74, 0x5f, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x10, 0x59, 0x12, 0x0e, 0x0a, 0x0a, 0x47, 0x69, 0x74, 0x5f, 0x52, 0x65, - 0x62, 0x61, 0x73, 0x65, 0x10, 0x5c, 0x12, 0x06, 0x0a, 0x02, 0x47, 0x6f, 0x10, 0x21, 0x12, 0x0a, - 0x0a, 0x06, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x79, 0x10, 0x07, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x54, - 0x4d, 0x4c, 0x10, 0x1e, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x61, 0x63, 0x6b, 0x10, 0x14, 0x12, 0x0e, - 0x0a, 0x0a, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x62, 0x61, 0x72, 0x73, 0x10, 0x5a, 0x12, 0x0b, - 0x0a, 0x07, 0x48, 0x61, 0x73, 0x6b, 0x65, 0x6c, 0x6c, 0x10, 0x2c, 0x12, 0x09, 0x0a, 0x05, 0x49, - 0x64, 0x72, 0x69, 0x73, 0x10, 0x2e, 0x12, 0x07, 0x0a, 0x03, 0x49, 0x6e, 0x69, 0x10, 0x48, 0x12, - 0x05, 0x0a, 0x01, 0x4a, 0x10, 0x33, 0x12, 0x08, 0x0a, 0x04, 0x4a, 0x53, 0x4f, 0x4e, 0x10, 0x4b, - 0x12, 0x08, 0x0a, 0x04, 0x4a, 0x61, 0x76, 0x61, 0x10, 0x06, 0x12, 0x0e, 0x0a, 0x0a, 0x4a, 0x61, - 0x76, 0x61, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x10, 0x16, 0x12, 0x13, 0x0a, 0x0f, 0x4a, 0x61, - 0x76, 0x61, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x52, 0x65, 0x61, 0x63, 0x74, 0x10, 0x5d, 0x12, - 0x0b, 0x0a, 0x07, 0x4a, 0x73, 0x6f, 0x6e, 0x6e, 0x65, 0x74, 0x10, 0x4c, 0x12, 0x09, 0x0a, 0x05, - 0x4a, 0x75, 0x6c, 0x69, 0x61, 0x10, 0x37, 0x12, 0x0a, 0x0a, 0x06, 0x4b, 0x6f, 0x74, 0x6c, 0x69, - 0x6e, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x4c, 0x61, 0x54, 0x65, 0x58, 0x10, 0x53, 0x12, 0x08, - 0x0a, 0x04, 0x4c, 0x65, 0x61, 0x6e, 0x10, 0x30, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x65, 0x73, 0x73, - 0x10, 0x1b, 0x12, 0x07, 0x0a, 0x03, 0x4c, 0x75, 0x61, 0x10, 0x0c, 0x12, 0x0c, 0x0a, 0x08, 0x4d, - 0x61, 0x6b, 0x65, 0x66, 0x69, 0x6c, 0x65, 0x10, 0x4f, 0x12, 0x0c, 0x0a, 0x08, 0x4d, 0x61, 0x72, - 0x6b, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x54, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x61, 0x74, 0x6c, 0x61, - 0x62, 0x10, 0x34, 0x12, 0x07, 0x0a, 0x03, 0x4e, 0x69, 0x78, 0x10, 0x4d, 0x12, 0x09, 0x0a, 0x05, - 0x4f, 0x43, 0x61, 0x6d, 0x6c, 0x10, 0x29, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x43, 0x10, 0x24, 0x12, 0x11, 0x0a, 0x0d, 0x4f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x43, 0x50, 0x50, 0x10, 0x25, 0x12, 0x07, 0x0a, 0x03, 0x50, - 0x48, 0x50, 0x10, 0x13, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x4c, 0x53, 0x51, 0x4c, 0x10, 0x46, 0x12, - 0x08, 0x0a, 0x04, 0x50, 0x65, 0x72, 0x6c, 0x10, 0x0d, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x6f, 0x77, - 0x65, 0x72, 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x10, 0x43, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x72, 0x6f, - 0x6c, 0x6f, 0x67, 0x10, 0x47, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x10, - 0x0f, 0x12, 0x05, 0x0a, 0x01, 0x52, 0x10, 0x36, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x61, 0x63, 0x6b, - 0x65, 0x74, 0x10, 0x0b, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x61, 0x6b, 0x75, 0x10, 0x0e, 0x12, 0x09, - 0x0a, 0x05, 0x52, 0x61, 0x7a, 0x6f, 0x72, 0x10, 0x3e, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x65, 0x53, - 0x54, 0x10, 0x55, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x75, 0x62, 0x79, 0x10, 0x10, 0x12, 0x08, 0x0a, - 0x04, 0x52, 0x75, 0x73, 0x74, 0x10, 0x28, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x41, 0x53, 0x10, 0x3d, - 0x12, 0x08, 0x0a, 0x04, 0x53, 0x43, 0x53, 0x53, 0x10, 0x1d, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x4d, - 0x4c, 0x10, 0x2b, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x51, 0x4c, 0x10, 0x45, 0x12, 0x08, 0x0a, 0x04, - 0x53, 0x61, 0x73, 0x73, 0x10, 0x1c, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x63, 0x61, 0x6c, 0x61, 0x10, - 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x10, 0x0a, 0x12, 0x0f, 0x0a, - 0x0b, 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x10, 0x40, 0x12, 0x0b, - 0x0a, 0x07, 0x53, 0x6b, 0x79, 0x6c, 0x61, 0x72, 0x6b, 0x10, 0x4e, 0x12, 0x09, 0x0a, 0x05, 0x53, - 0x77, 0x69, 0x66, 0x74, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x4f, 0x4d, 0x4c, 0x10, 0x49, - 0x12, 0x07, 0x0a, 0x03, 0x54, 0x65, 0x58, 0x10, 0x52, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x79, 0x70, - 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x10, 0x17, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x79, 0x70, - 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x52, 0x65, 0x61, 0x63, 0x74, 0x10, 0x5e, 0x12, 0x0f, - 0x0a, 0x0b, 0x56, 0x69, 0x73, 0x75, 0x61, 0x6c, 0x42, 0x61, 0x73, 0x69, 0x63, 0x10, 0x3f, 0x12, - 0x07, 0x0a, 0x03, 0x56, 0x75, 0x65, 0x10, 0x19, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x6f, 0x6c, 0x66, - 0x72, 0x61, 0x6d, 0x10, 0x35, 0x12, 0x07, 0x0a, 0x03, 0x58, 0x4d, 0x4c, 0x10, 0x1f, 0x12, 0x07, - 0x0a, 0x03, 0x58, 0x53, 0x4c, 0x10, 0x20, 0x12, 0x08, 0x0a, 0x04, 0x59, 0x41, 0x4d, 0x4c, 0x10, - 0x4a, 0x12, 0x07, 0x0a, 0x03, 0x5a, 0x69, 0x67, 0x10, 0x26, 0x42, 0x2f, 0x5a, 0x2d, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x67, - 0x72, 0x61, 0x70, 0x68, 0x2f, 0x73, 0x63, 0x69, 0x70, 0x2f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x73, 0x63, 0x69, 0x70, 0x2f, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x6f, 0x6e, 0x10, 0x0f, 0x12, 0x20, 0x0a, 0x1c, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x10, 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x4d, 0x61, 0x63, 0x72, 0x6f, 0x10, 0x11, 0x12, 0x1d, 0x0a, 0x19, 0x49, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x61, 0x63, 0x72, 0x6f, 0x44, 0x65, + 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x12, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x10, 0x13, 0x12, 0x19, + 0x0a, 0x15, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x42, 0x75, 0x69, 0x6c, + 0x74, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x10, 0x14, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x10, 0x15, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x65, 0x67, 0x65, 0x78, 0x45, 0x73, 0x63, 0x61, 0x70, + 0x65, 0x10, 0x16, 0x12, 0x11, 0x0a, 0x0d, 0x52, 0x65, 0x67, 0x65, 0x78, 0x52, 0x65, 0x70, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x10, 0x17, 0x12, 0x11, 0x0a, 0x0d, 0x52, 0x65, 0x67, 0x65, 0x78, 0x57, + 0x69, 0x6c, 0x64, 0x63, 0x61, 0x72, 0x64, 0x10, 0x18, 0x12, 0x12, 0x0a, 0x0e, 0x52, 0x65, 0x67, + 0x65, 0x78, 0x44, 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x72, 0x10, 0x19, 0x12, 0x0d, 0x0a, + 0x09, 0x52, 0x65, 0x67, 0x65, 0x78, 0x4a, 0x6f, 0x69, 0x6e, 0x10, 0x1a, 0x12, 0x11, 0x0a, 0x0d, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x10, 0x1b, 0x12, + 0x17, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, + 0x45, 0x73, 0x63, 0x61, 0x70, 0x65, 0x10, 0x1c, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, + 0x10, 0x1d, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x74, 0x65, + 0x72, 0x61, 0x6c, 0x4b, 0x65, 0x79, 0x10, 0x1e, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x68, 0x61, 0x72, + 0x61, 0x63, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x10, 0x1f, 0x12, 0x12, + 0x0a, 0x0e, 0x4e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, + 0x10, 0x20, 0x12, 0x12, 0x0a, 0x0e, 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x4c, 0x69, 0x74, + 0x65, 0x72, 0x61, 0x6c, 0x10, 0x21, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x61, 0x67, 0x10, 0x22, 0x12, + 0x10, 0x0a, 0x0c, 0x54, 0x61, 0x67, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x10, + 0x23, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x61, 0x67, 0x44, 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, + 0x72, 0x10, 0x24, 0x1a, 0x02, 0x10, 0x01, 0x2a, 0x56, 0x0a, 0x08, 0x53, 0x65, 0x76, 0x65, 0x72, + 0x69, 0x74, 0x79, 0x12, 0x17, 0x0a, 0x13, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, + 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x61, 0x72, 0x6e, 0x69, + 0x6e, 0x67, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x69, 0x6e, 0x74, 0x10, 0x04, 0x2a, + 0x4e, 0x0a, 0x0d, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x12, 0x1c, 0x0a, 0x18, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x44, + 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x54, 0x61, 0x67, 0x10, 0x00, 0x12, 0x0f, + 0x0a, 0x0b, 0x55, 0x6e, 0x6e, 0x65, 0x63, 0x65, 0x73, 0x73, 0x61, 0x72, 0x79, 0x10, 0x01, 0x12, + 0x0e, 0x0a, 0x0a, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x10, 0x02, 0x2a, + 0xe0, 0x08, 0x0a, 0x08, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x17, 0x0a, 0x13, + 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x4c, 0x61, 0x6e, 0x67, 0x75, + 0x61, 0x67, 0x65, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x41, 0x42, 0x41, 0x50, 0x10, 0x3c, 0x12, + 0x07, 0x0a, 0x03, 0x41, 0x50, 0x4c, 0x10, 0x31, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x64, 0x61, 0x10, + 0x27, 0x12, 0x08, 0x0a, 0x04, 0x41, 0x67, 0x64, 0x61, 0x10, 0x2d, 0x12, 0x0c, 0x0a, 0x08, 0x41, + 0x73, 0x63, 0x69, 0x69, 0x44, 0x6f, 0x63, 0x10, 0x56, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x73, 0x73, + 0x65, 0x6d, 0x62, 0x6c, 0x79, 0x10, 0x3a, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x77, 0x6b, 0x10, 0x42, + 0x12, 0x07, 0x0a, 0x03, 0x42, 0x61, 0x74, 0x10, 0x44, 0x12, 0x0a, 0x0a, 0x06, 0x42, 0x69, 0x62, + 0x54, 0x65, 0x58, 0x10, 0x51, 0x12, 0x05, 0x0a, 0x01, 0x43, 0x10, 0x22, 0x12, 0x09, 0x0a, 0x05, + 0x43, 0x4f, 0x42, 0x4f, 0x4c, 0x10, 0x3b, 0x12, 0x07, 0x0a, 0x03, 0x43, 0x50, 0x50, 0x10, 0x23, + 0x12, 0x07, 0x0a, 0x03, 0x43, 0x53, 0x53, 0x10, 0x1a, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x53, 0x68, + 0x61, 0x72, 0x70, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x6c, 0x6f, 0x6a, 0x75, 0x72, 0x65, + 0x10, 0x08, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x6f, 0x66, 0x66, 0x65, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x10, 0x15, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x69, + 0x73, 0x70, 0x10, 0x09, 0x12, 0x07, 0x0a, 0x03, 0x43, 0x6f, 0x71, 0x10, 0x2f, 0x12, 0x08, 0x0a, + 0x04, 0x44, 0x61, 0x72, 0x74, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x70, 0x68, + 0x69, 0x10, 0x39, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x69, 0x66, 0x66, 0x10, 0x58, 0x12, 0x0e, 0x0a, + 0x0a, 0x44, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x66, 0x69, 0x6c, 0x65, 0x10, 0x50, 0x12, 0x0a, 0x0a, + 0x06, 0x44, 0x79, 0x61, 0x6c, 0x6f, 0x67, 0x10, 0x32, 0x12, 0x0a, 0x0a, 0x06, 0x45, 0x6c, 0x69, + 0x78, 0x69, 0x72, 0x10, 0x11, 0x12, 0x0a, 0x0a, 0x06, 0x45, 0x72, 0x6c, 0x61, 0x6e, 0x67, 0x10, + 0x12, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x53, 0x68, 0x61, 0x72, 0x70, 0x10, 0x2a, 0x12, 0x08, 0x0a, + 0x04, 0x46, 0x69, 0x73, 0x68, 0x10, 0x41, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x6c, 0x6f, 0x77, 0x10, + 0x18, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x6f, 0x72, 0x74, 0x72, 0x61, 0x6e, 0x10, 0x38, 0x12, 0x0e, + 0x0a, 0x0a, 0x47, 0x69, 0x74, 0x5f, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x10, 0x5b, 0x12, 0x0e, + 0x0a, 0x0a, 0x47, 0x69, 0x74, 0x5f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x10, 0x59, 0x12, 0x0e, + 0x0a, 0x0a, 0x47, 0x69, 0x74, 0x5f, 0x52, 0x65, 0x62, 0x61, 0x73, 0x65, 0x10, 0x5c, 0x12, 0x06, + 0x0a, 0x02, 0x47, 0x6f, 0x10, 0x21, 0x12, 0x0a, 0x0a, 0x06, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x79, + 0x10, 0x07, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x54, 0x4d, 0x4c, 0x10, 0x1e, 0x12, 0x08, 0x0a, 0x04, + 0x48, 0x61, 0x63, 0x6b, 0x10, 0x14, 0x12, 0x0e, 0x0a, 0x0a, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, + 0x62, 0x61, 0x72, 0x73, 0x10, 0x5a, 0x12, 0x0b, 0x0a, 0x07, 0x48, 0x61, 0x73, 0x6b, 0x65, 0x6c, + 0x6c, 0x10, 0x2c, 0x12, 0x09, 0x0a, 0x05, 0x49, 0x64, 0x72, 0x69, 0x73, 0x10, 0x2e, 0x12, 0x07, + 0x0a, 0x03, 0x49, 0x6e, 0x69, 0x10, 0x48, 0x12, 0x05, 0x0a, 0x01, 0x4a, 0x10, 0x33, 0x12, 0x08, + 0x0a, 0x04, 0x4a, 0x53, 0x4f, 0x4e, 0x10, 0x4b, 0x12, 0x08, 0x0a, 0x04, 0x4a, 0x61, 0x76, 0x61, + 0x10, 0x06, 0x12, 0x0e, 0x0a, 0x0a, 0x4a, 0x61, 0x76, 0x61, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x10, 0x16, 0x12, 0x13, 0x0a, 0x0f, 0x4a, 0x61, 0x76, 0x61, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x52, 0x65, 0x61, 0x63, 0x74, 0x10, 0x5d, 0x12, 0x0b, 0x0a, 0x07, 0x4a, 0x73, 0x6f, 0x6e, 0x6e, + 0x65, 0x74, 0x10, 0x4c, 0x12, 0x09, 0x0a, 0x05, 0x4a, 0x75, 0x6c, 0x69, 0x61, 0x10, 0x37, 0x12, + 0x0a, 0x0a, 0x06, 0x4b, 0x6f, 0x74, 0x6c, 0x69, 0x6e, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x4c, + 0x61, 0x54, 0x65, 0x58, 0x10, 0x53, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x65, 0x61, 0x6e, 0x10, 0x30, + 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x65, 0x73, 0x73, 0x10, 0x1b, 0x12, 0x07, 0x0a, 0x03, 0x4c, 0x75, + 0x61, 0x10, 0x0c, 0x12, 0x0c, 0x0a, 0x08, 0x4d, 0x61, 0x6b, 0x65, 0x66, 0x69, 0x6c, 0x65, 0x10, + 0x4f, 0x12, 0x0c, 0x0a, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x54, 0x12, + 0x0a, 0x0a, 0x06, 0x4d, 0x61, 0x74, 0x6c, 0x61, 0x62, 0x10, 0x34, 0x12, 0x07, 0x0a, 0x03, 0x4e, + 0x69, 0x78, 0x10, 0x4d, 0x12, 0x09, 0x0a, 0x05, 0x4f, 0x43, 0x61, 0x6d, 0x6c, 0x10, 0x29, 0x12, + 0x0f, 0x0a, 0x0b, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x43, 0x10, 0x24, + 0x12, 0x11, 0x0a, 0x0d, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x43, 0x50, + 0x50, 0x10, 0x25, 0x12, 0x07, 0x0a, 0x03, 0x50, 0x48, 0x50, 0x10, 0x13, 0x12, 0x09, 0x0a, 0x05, + 0x50, 0x4c, 0x53, 0x51, 0x4c, 0x10, 0x46, 0x12, 0x08, 0x0a, 0x04, 0x50, 0x65, 0x72, 0x6c, 0x10, + 0x0d, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x10, + 0x43, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x72, 0x6f, 0x6c, 0x6f, 0x67, 0x10, 0x47, 0x12, 0x0a, 0x0a, + 0x06, 0x50, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x10, 0x0f, 0x12, 0x05, 0x0a, 0x01, 0x52, 0x10, 0x36, + 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x10, 0x0b, 0x12, 0x08, 0x0a, 0x04, + 0x52, 0x61, 0x6b, 0x75, 0x10, 0x0e, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x61, 0x7a, 0x6f, 0x72, 0x10, + 0x3e, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x65, 0x53, 0x54, 0x10, 0x55, 0x12, 0x08, 0x0a, 0x04, 0x52, + 0x75, 0x62, 0x79, 0x10, 0x10, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x75, 0x73, 0x74, 0x10, 0x28, 0x12, + 0x07, 0x0a, 0x03, 0x53, 0x41, 0x53, 0x10, 0x3d, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x43, 0x53, 0x53, + 0x10, 0x1d, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x4d, 0x4c, 0x10, 0x2b, 0x12, 0x07, 0x0a, 0x03, 0x53, + 0x51, 0x4c, 0x10, 0x45, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x61, 0x73, 0x73, 0x10, 0x1c, 0x12, 0x09, + 0x0a, 0x05, 0x53, 0x63, 0x61, 0x6c, 0x61, 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x63, 0x68, + 0x65, 0x6d, 0x65, 0x10, 0x0a, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x53, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x10, 0x40, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x6b, 0x79, 0x6c, 0x61, 0x72, + 0x6b, 0x10, 0x4e, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x77, 0x69, 0x66, 0x74, 0x10, 0x02, 0x12, 0x08, + 0x0a, 0x04, 0x54, 0x4f, 0x4d, 0x4c, 0x10, 0x49, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x65, 0x58, 0x10, + 0x52, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x79, 0x70, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x10, + 0x17, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x79, 0x70, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x52, + 0x65, 0x61, 0x63, 0x74, 0x10, 0x5e, 0x12, 0x0f, 0x0a, 0x0b, 0x56, 0x69, 0x73, 0x75, 0x61, 0x6c, + 0x42, 0x61, 0x73, 0x69, 0x63, 0x10, 0x3f, 0x12, 0x07, 0x0a, 0x03, 0x56, 0x75, 0x65, 0x10, 0x19, + 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x6f, 0x6c, 0x66, 0x72, 0x61, 0x6d, 0x10, 0x35, 0x12, 0x07, 0x0a, + 0x03, 0x58, 0x4d, 0x4c, 0x10, 0x1f, 0x12, 0x07, 0x0a, 0x03, 0x58, 0x53, 0x4c, 0x10, 0x20, 0x12, + 0x08, 0x0a, 0x04, 0x59, 0x41, 0x4d, 0x4c, 0x10, 0x4a, 0x12, 0x07, 0x0a, 0x03, 0x5a, 0x69, 0x67, + 0x10, 0x26, 0x42, 0x2f, 0x5a, 0x2d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x73, 0x63, 0x69, + 0x70, 0x2f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x73, 0x63, + 0x69, 0x70, 0x2f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2200,51 +2399,53 @@ func file_scip_proto_rawDescGZIP() []byte { return file_scip_proto_rawDescData } -var file_scip_proto_enumTypes = make([]protoimpl.EnumInfo, 8) +var file_scip_proto_enumTypes = make([]protoimpl.EnumInfo, 9) var file_scip_proto_msgTypes = make([]protoimpl.MessageInfo, 11) var file_scip_proto_goTypes = []interface{}{ - (ProtocolVersion)(0), // 0: scip.ProtocolVersion - (TextEncoding)(0), // 1: scip.TextEncoding - (SymbolRole)(0), // 2: scip.SymbolRole - (SyntaxKind)(0), // 3: scip.SyntaxKind - (Severity)(0), // 4: scip.Severity - (DiagnosticTag)(0), // 5: scip.DiagnosticTag - (Language)(0), // 6: scip.Language - (Descriptor_Suffix)(0), // 7: scip.Descriptor.Suffix - (*Index)(nil), // 8: scip.Index - (*Metadata)(nil), // 9: scip.Metadata - (*ToolInfo)(nil), // 10: scip.ToolInfo - (*Document)(nil), // 11: scip.Document - (*Symbol)(nil), // 12: scip.Symbol - (*Package)(nil), // 13: scip.Package - (*Descriptor)(nil), // 14: scip.Descriptor - (*SymbolInformation)(nil), // 15: scip.SymbolInformation - (*Relationship)(nil), // 16: scip.Relationship - (*Occurrence)(nil), // 17: scip.Occurrence - (*Diagnostic)(nil), // 18: scip.Diagnostic + (ProtocolVersion)(0), // 0: scip.ProtocolVersion + (TextEncoding)(0), // 1: scip.TextEncoding + (SymbolRole)(0), // 2: scip.SymbolRole + (SyntaxKind)(0), // 3: scip.SyntaxKind + (Severity)(0), // 4: scip.Severity + (DiagnosticTag)(0), // 5: scip.DiagnosticTag + (Language)(0), // 6: scip.Language + (Descriptor_Suffix)(0), // 7: scip.Descriptor.Suffix + (SymbolInformation_Kind)(0), // 8: scip.SymbolInformation.Kind + (*Index)(nil), // 9: scip.Index + (*Metadata)(nil), // 10: scip.Metadata + (*ToolInfo)(nil), // 11: scip.ToolInfo + (*Document)(nil), // 12: scip.Document + (*Symbol)(nil), // 13: scip.Symbol + (*Package)(nil), // 14: scip.Package + (*Descriptor)(nil), // 15: scip.Descriptor + (*SymbolInformation)(nil), // 16: scip.SymbolInformation + (*Relationship)(nil), // 17: scip.Relationship + (*Occurrence)(nil), // 18: scip.Occurrence + (*Diagnostic)(nil), // 19: scip.Diagnostic } var file_scip_proto_depIdxs = []int32{ - 9, // 0: scip.Index.metadata:type_name -> scip.Metadata - 11, // 1: scip.Index.documents:type_name -> scip.Document - 15, // 2: scip.Index.external_symbols:type_name -> scip.SymbolInformation + 10, // 0: scip.Index.metadata:type_name -> scip.Metadata + 12, // 1: scip.Index.documents:type_name -> scip.Document + 16, // 2: scip.Index.external_symbols:type_name -> scip.SymbolInformation 0, // 3: scip.Metadata.version:type_name -> scip.ProtocolVersion - 10, // 4: scip.Metadata.tool_info:type_name -> scip.ToolInfo + 11, // 4: scip.Metadata.tool_info:type_name -> scip.ToolInfo 1, // 5: scip.Metadata.text_document_encoding:type_name -> scip.TextEncoding - 17, // 6: scip.Document.occurrences:type_name -> scip.Occurrence - 15, // 7: scip.Document.symbols:type_name -> scip.SymbolInformation - 13, // 8: scip.Symbol.package:type_name -> scip.Package - 14, // 9: scip.Symbol.descriptors:type_name -> scip.Descriptor + 18, // 6: scip.Document.occurrences:type_name -> scip.Occurrence + 16, // 7: scip.Document.symbols:type_name -> scip.SymbolInformation + 14, // 8: scip.Symbol.package:type_name -> scip.Package + 15, // 9: scip.Symbol.descriptors:type_name -> scip.Descriptor 7, // 10: scip.Descriptor.suffix:type_name -> scip.Descriptor.Suffix - 16, // 11: scip.SymbolInformation.relationships:type_name -> scip.Relationship - 3, // 12: scip.Occurrence.syntax_kind:type_name -> scip.SyntaxKind - 18, // 13: scip.Occurrence.diagnostics:type_name -> scip.Diagnostic - 4, // 14: scip.Diagnostic.severity:type_name -> scip.Severity - 5, // 15: scip.Diagnostic.tags:type_name -> scip.DiagnosticTag - 16, // [16:16] is the sub-list for method output_type - 16, // [16:16] is the sub-list for method input_type - 16, // [16:16] is the sub-list for extension type_name - 16, // [16:16] is the sub-list for extension extendee - 0, // [0:16] is the sub-list for field type_name + 17, // 11: scip.SymbolInformation.relationships:type_name -> scip.Relationship + 8, // 12: scip.SymbolInformation.kind:type_name -> scip.SymbolInformation.Kind + 3, // 13: scip.Occurrence.syntax_kind:type_name -> scip.SyntaxKind + 19, // 14: scip.Occurrence.diagnostics:type_name -> scip.Diagnostic + 4, // 15: scip.Diagnostic.severity:type_name -> scip.Severity + 5, // 16: scip.Diagnostic.tags:type_name -> scip.DiagnosticTag + 17, // [17:17] is the sub-list for method output_type + 17, // [17:17] is the sub-list for method input_type + 17, // [17:17] is the sub-list for extension type_name + 17, // [17:17] is the sub-list for extension extendee + 0, // [0:17] is the sub-list for field type_name } func init() { file_scip_proto_init() } @@ -2391,7 +2592,7 @@ func file_scip_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_scip_proto_rawDesc, - NumEnums: 8, + NumEnums: 9, NumMessages: 11, NumExtensions: 0, NumServices: 0, diff --git a/bindings/rust/src/generated/scip.rs b/bindings/rust/src/generated/scip.rs index 380a075a..74900925 100644 --- a/bindings/rust/src/generated/scip.rs +++ b/bindings/rust/src/generated/scip.rs @@ -1397,6 +1397,11 @@ pub struct SymbolInformation { /// (optional) Relationships to other symbols (e.g., implements, type definition). // @@protoc_insertion_point(field:scip.SymbolInformation.relationships) pub relationships: ::std::vec::Vec, + /// The kind of this symbol. Use this field instead of + /// `SymbolDescriptor.Suffix` to determine whether something is, for example, a + /// class or a method. + // @@protoc_insertion_point(field:scip.SymbolInformation.kind) + pub kind: ::protobuf::EnumOrUnknown, // special fields // @@protoc_insertion_point(special_field:scip.SymbolInformation.special_fields) pub special_fields: ::protobuf::SpecialFields, @@ -1414,7 +1419,7 @@ impl SymbolInformation { } fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData { - let mut fields = ::std::vec::Vec::with_capacity(3); + let mut fields = ::std::vec::Vec::with_capacity(4); let mut oneofs = ::std::vec::Vec::with_capacity(0); fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>( "symbol", @@ -1431,6 +1436,11 @@ impl SymbolInformation { |m: &SymbolInformation| { &m.relationships }, |m: &mut SymbolInformation| { &mut m.relationships }, )); + fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>( + "kind", + |m: &SymbolInformation| { &m.kind }, + |m: &mut SymbolInformation| { &mut m.kind }, + )); ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::( "SymbolInformation", fields, @@ -1458,6 +1468,9 @@ impl ::protobuf::Message for SymbolInformation { 34 => { self.relationships.push(is.read_message()?); }, + 40 => { + self.kind = is.read_enum_or_unknown()?; + }, tag => { ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?; }, @@ -1480,6 +1493,9 @@ impl ::protobuf::Message for SymbolInformation { let len = value.compute_size(); my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len; }; + if self.kind != ::protobuf::EnumOrUnknown::new(symbol_information::Kind::UnspecifiedKind) { + my_size += ::protobuf::rt::int32_size(5, self.kind.value()); + } my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields()); self.special_fields.cached_size().set(my_size as u32); my_size @@ -1495,6 +1511,9 @@ impl ::protobuf::Message for SymbolInformation { for v in &self.relationships { ::protobuf::rt::write_message_field_with_cached_size(4, v, os)?; }; + if self.kind != ::protobuf::EnumOrUnknown::new(symbol_information::Kind::UnspecifiedKind) { + os.write_enum(5, ::protobuf::EnumOrUnknown::value(&self.kind))?; + } os.write_unknown_fields(self.special_fields.unknown_fields())?; ::std::result::Result::Ok(()) } @@ -1515,6 +1534,7 @@ impl ::protobuf::Message for SymbolInformation { self.symbol.clear(); self.documentation.clear(); self.relationships.clear(); + self.kind = ::protobuf::EnumOrUnknown::new(symbol_information::Kind::UnspecifiedKind); self.special_fields.clear(); } @@ -1523,6 +1543,7 @@ impl ::protobuf::Message for SymbolInformation { symbol: ::std::string::String::new(), documentation: ::std::vec::Vec::new(), relationships: ::std::vec::Vec::new(), + kind: ::protobuf::EnumOrUnknown::from_i32(0), special_fields: ::protobuf::SpecialFields::new(), }; &instance @@ -1546,6 +1567,206 @@ impl ::protobuf::reflect::ProtobufValue for SymbolInformation { type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage; } +/// Nested message and enums of message `SymbolInformation` +pub mod symbol_information { + /// Kind determines the type of a symbol using idiomatic names from the + /// language's type system. For example, a Java method would have the kind + /// `Method` while a Go function would have the kind `Function`, even if the + /// symbols for these use the same syntax for the descriptor: + /// `SymbolDescriptor.Suffix.Method`. Likewise, a Go struct has the symbol kind + /// `Struct` while a Java class has the symbol kind `Class` even if they both have + /// the same descriptor: `SymbolDescriptor.Suffix.Type`. + #[derive(Clone,Copy,PartialEq,Eq,Debug,Hash)] + // @@protoc_insertion_point(enum:scip.SymbolInformation.Kind) + pub enum Kind { + // @@protoc_insertion_point(enum_value:scip.SymbolInformation.Kind.UnspecifiedKind) + UnspecifiedKind = 0, + // @@protoc_insertion_point(enum_value:scip.SymbolInformation.Kind.Array) + Array = 1, + // @@protoc_insertion_point(enum_value:scip.SymbolInformation.Kind.Boolean) + Boolean = 2, + // @@protoc_insertion_point(enum_value:scip.SymbolInformation.Kind.Class) + Class = 3, + // @@protoc_insertion_point(enum_value:scip.SymbolInformation.Kind.Constant) + Constant = 4, + // @@protoc_insertion_point(enum_value:scip.SymbolInformation.Kind.Constructor) + Constructor = 5, + // @@protoc_insertion_point(enum_value:scip.SymbolInformation.Kind.Enum) + Enum = 6, + // @@protoc_insertion_point(enum_value:scip.SymbolInformation.Kind.Enumerator) + Enumerator = 7, + // @@protoc_insertion_point(enum_value:scip.SymbolInformation.Kind.EnumMember) + EnumMember = 8, + // @@protoc_insertion_point(enum_value:scip.SymbolInformation.Kind.Event) + Event = 9, + // @@protoc_insertion_point(enum_value:scip.SymbolInformation.Kind.Field) + Field = 10, + // @@protoc_insertion_point(enum_value:scip.SymbolInformation.Kind.File) + File = 11, + // @@protoc_insertion_point(enum_value:scip.SymbolInformation.Kind.Function) + Function = 12, + // @@protoc_insertion_point(enum_value:scip.SymbolInformation.Kind.Interface) + Interface = 13, + // @@protoc_insertion_point(enum_value:scip.SymbolInformation.Kind.Key) + Key = 14, + // @@protoc_insertion_point(enum_value:scip.SymbolInformation.Kind.Macro) + Macro = 15, + // @@protoc_insertion_point(enum_value:scip.SymbolInformation.Kind.Method) + Method = 16, + // @@protoc_insertion_point(enum_value:scip.SymbolInformation.Kind.Module) + Module = 17, + // @@protoc_insertion_point(enum_value:scip.SymbolInformation.Kind.Namespace) + Namespace = 18, + // @@protoc_insertion_point(enum_value:scip.SymbolInformation.Kind.Null) + Null = 19, + // @@protoc_insertion_point(enum_value:scip.SymbolInformation.Kind.Number) + Number = 20, + // @@protoc_insertion_point(enum_value:scip.SymbolInformation.Kind.Object) + Object = 21, + // @@protoc_insertion_point(enum_value:scip.SymbolInformation.Kind.Operator) + Operator = 22, + // @@protoc_insertion_point(enum_value:scip.SymbolInformation.Kind.Package) + Package = 23, + // @@protoc_insertion_point(enum_value:scip.SymbolInformation.Kind.PackageObject) + PackageObject = 24, + // @@protoc_insertion_point(enum_value:scip.SymbolInformation.Kind.Parameter) + Parameter = 25, + // @@protoc_insertion_point(enum_value:scip.SymbolInformation.Kind.Property) + Property = 26, + // @@protoc_insertion_point(enum_value:scip.SymbolInformation.Kind.SelfParameter) + SelfParameter = 27, + // @@protoc_insertion_point(enum_value:scip.SymbolInformation.Kind.String) + String = 28, + // @@protoc_insertion_point(enum_value:scip.SymbolInformation.Kind.Struct) + Struct = 29, + // @@protoc_insertion_point(enum_value:scip.SymbolInformation.Kind.Trait) + Trait = 30, + // @@protoc_insertion_point(enum_value:scip.SymbolInformation.Kind.Type) + Type = 31, + // @@protoc_insertion_point(enum_value:scip.SymbolInformation.Kind.TypeParameter) + TypeParameter = 32, + // @@protoc_insertion_point(enum_value:scip.SymbolInformation.Kind.Union) + Union = 33, + // @@protoc_insertion_point(enum_value:scip.SymbolInformation.Kind.Value) + Value = 34, + // @@protoc_insertion_point(enum_value:scip.SymbolInformation.Kind.Variable) + Variable = 35, + } + + impl ::protobuf::Enum for Kind { + const NAME: &'static str = "Kind"; + + fn value(&self) -> i32 { + *self as i32 + } + + fn from_i32(value: i32) -> ::std::option::Option { + match value { + 0 => ::std::option::Option::Some(Kind::UnspecifiedKind), + 1 => ::std::option::Option::Some(Kind::Array), + 2 => ::std::option::Option::Some(Kind::Boolean), + 3 => ::std::option::Option::Some(Kind::Class), + 4 => ::std::option::Option::Some(Kind::Constant), + 5 => ::std::option::Option::Some(Kind::Constructor), + 6 => ::std::option::Option::Some(Kind::Enum), + 7 => ::std::option::Option::Some(Kind::Enumerator), + 8 => ::std::option::Option::Some(Kind::EnumMember), + 9 => ::std::option::Option::Some(Kind::Event), + 10 => ::std::option::Option::Some(Kind::Field), + 11 => ::std::option::Option::Some(Kind::File), + 12 => ::std::option::Option::Some(Kind::Function), + 13 => ::std::option::Option::Some(Kind::Interface), + 14 => ::std::option::Option::Some(Kind::Key), + 15 => ::std::option::Option::Some(Kind::Macro), + 16 => ::std::option::Option::Some(Kind::Method), + 17 => ::std::option::Option::Some(Kind::Module), + 18 => ::std::option::Option::Some(Kind::Namespace), + 19 => ::std::option::Option::Some(Kind::Null), + 20 => ::std::option::Option::Some(Kind::Number), + 21 => ::std::option::Option::Some(Kind::Object), + 22 => ::std::option::Option::Some(Kind::Operator), + 23 => ::std::option::Option::Some(Kind::Package), + 24 => ::std::option::Option::Some(Kind::PackageObject), + 25 => ::std::option::Option::Some(Kind::Parameter), + 26 => ::std::option::Option::Some(Kind::Property), + 27 => ::std::option::Option::Some(Kind::SelfParameter), + 28 => ::std::option::Option::Some(Kind::String), + 29 => ::std::option::Option::Some(Kind::Struct), + 30 => ::std::option::Option::Some(Kind::Trait), + 31 => ::std::option::Option::Some(Kind::Type), + 32 => ::std::option::Option::Some(Kind::TypeParameter), + 33 => ::std::option::Option::Some(Kind::Union), + 34 => ::std::option::Option::Some(Kind::Value), + 35 => ::std::option::Option::Some(Kind::Variable), + _ => ::std::option::Option::None + } + } + + const VALUES: &'static [Kind] = &[ + Kind::UnspecifiedKind, + Kind::Array, + Kind::Boolean, + Kind::Class, + Kind::Constant, + Kind::Constructor, + Kind::Enum, + Kind::Enumerator, + Kind::EnumMember, + Kind::Event, + Kind::Field, + Kind::File, + Kind::Function, + Kind::Interface, + Kind::Key, + Kind::Macro, + Kind::Method, + Kind::Module, + Kind::Namespace, + Kind::Null, + Kind::Number, + Kind::Object, + Kind::Operator, + Kind::Package, + Kind::PackageObject, + Kind::Parameter, + Kind::Property, + Kind::SelfParameter, + Kind::String, + Kind::Struct, + Kind::Trait, + Kind::Type, + Kind::TypeParameter, + Kind::Union, + Kind::Value, + Kind::Variable, + ]; + } + + impl ::protobuf::EnumFull for Kind { + fn enum_descriptor() -> ::protobuf::reflect::EnumDescriptor { + static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::Lazy::new(); + descriptor.get(|| super::file_descriptor().enum_by_package_relative_name("SymbolInformation.Kind").unwrap()).clone() + } + + fn descriptor(&self) -> ::protobuf::reflect::EnumValueDescriptor { + let index = *self as usize; + Self::enum_descriptor().value_by_index(index) + } + } + + impl ::std::default::Default for Kind { + fn default() -> Self { + Kind::UnspecifiedKind + } + } + + impl Kind { + pub(in super) fn generated_enum_descriptor_data() -> ::protobuf::reflect::GeneratedEnumDescriptorData { + ::protobuf::reflect::GeneratedEnumDescriptorData::new::("SymbolInformation.Kind") + } + } +} + #[derive(PartialEq,Clone,Default,Debug)] // @@protoc_insertion_point(message:scip.Relationship) pub struct Relationship { @@ -3407,40 +3628,55 @@ static file_descriptor_proto_data: &'static [u8] = b"\ \x1a\x02\x08\x01\x12\x08\n\x04Type\x10\x02\x12\x08\n\x04Term\x10\x03\x12\ \n\n\x06Method\x10\x04\x12\x11\n\rTypeParameter\x10\x05\x12\r\n\tParamet\ er\x10\x06\x12\x08\n\x04Meta\x10\x07\x12\t\n\x05Local\x10\x08\x12\t\n\ - \x05Macro\x10\t\x1a\x02\x10\x01\"\x8b\x01\n\x11SymbolInformation\x12\x16\ + \x05Macro\x10\t\x1a\x02\x10\x01\"\xa3\x05\n\x11SymbolInformation\x12\x16\ \n\x06symbol\x18\x01\x20\x01(\tR\x06symbol\x12$\n\rdocumentation\x18\x03\ \x20\x03(\tR\rdocumentation\x128\n\rrelationships\x18\x04\x20\x03(\x0b2\ - \x12.scip.RelationshipR\rrelationships\"\xc9\x01\n\x0cRelationship\x12\ - \x16\n\x06symbol\x18\x01\x20\x01(\tR\x06symbol\x12!\n\x0cis_reference\ - \x18\x02\x20\x01(\x08R\x0bisReference\x12+\n\x11is_implementation\x18\ - \x03\x20\x01(\x08R\x10isImplementation\x12,\n\x12is_type_definition\x18\ - \x04\x20\x01(\x08R\x10isTypeDefinition\x12#\n\ris_definition\x18\x05\x20\ - \x01(\x08R\x0cisDefinition\"\xa4\x02\n\nOccurrence\x12\x14\n\x05range\ - \x18\x01\x20\x03(\x05R\x05range\x12\x16\n\x06symbol\x18\x02\x20\x01(\tR\ - \x06symbol\x12!\n\x0csymbol_roles\x18\x03\x20\x01(\x05R\x0bsymbolRoles\ - \x125\n\x16override_documentation\x18\x04\x20\x03(\tR\x15overrideDocumen\ - tation\x121\n\x0bsyntax_kind\x18\x05\x20\x01(\x0e2\x10.scip.SyntaxKindR\ - \nsyntaxKind\x122\n\x0bdiagnostics\x18\x06\x20\x03(\x0b2\x10.scip.Diagno\ - sticR\x0bdiagnostics\x12'\n\x0fenclosing_range\x18\x07\x20\x03(\x05R\x0e\ - enclosingRange\"\xa7\x01\n\nDiagnostic\x12*\n\x08severity\x18\x01\x20\ - \x01(\x0e2\x0e.scip.SeverityR\x08severity\x12\x12\n\x04code\x18\x02\x20\ - \x01(\tR\x04code\x12\x18\n\x07message\x18\x03\x20\x01(\tR\x07message\x12\ - \x16\n\x06source\x18\x04\x20\x01(\tR\x06source\x12'\n\x04tags\x18\x05\ - \x20\x03(\x0e2\x13.scip.DiagnosticTagR\x04tags*1\n\x0fProtocolVersion\ - \x12\x1e\n\x1aUnspecifiedProtocolVersion\x10\0*@\n\x0cTextEncoding\x12\ - \x1b\n\x17UnspecifiedTextEncoding\x10\0\x12\x08\n\x04UTF8\x10\x01\x12\t\ - \n\x05UTF16\x10\x02*}\n\nSymbolRole\x12\x19\n\x15UnspecifiedSymbolRole\ - \x10\0\x12\x0e\n\nDefinition\x10\x01\x12\n\n\x06Import\x10\x02\x12\x0f\n\ - \x0bWriteAccess\x10\x04\x12\x0e\n\nReadAccess\x10\x08\x12\r\n\tGenerated\ - \x10\x10\x12\x08\n\x04Test\x10\x20*\xea\x06\n\nSyntaxKind\x12\x19\n\x15U\ - nspecifiedSyntaxKind\x10\0\x12\x0b\n\x07Comment\x10\x01\x12\x18\n\x14Pun\ - ctuationDelimiter\x10\x02\x12\x16\n\x12PunctuationBracket\x10\x03\x12\ - \x0b\n\x07Keyword\x10\x04\x12\x19\n\x11IdentifierKeyword\x10\x04\x1a\x02\ - \x08\x01\x12\x16\n\x12IdentifierOperator\x10\x05\x12\x0e\n\nIdentifier\ - \x10\x06\x12\x15\n\x11IdentifierBuiltin\x10\x07\x12\x12\n\x0eIdentifierN\ - ull\x10\x08\x12\x16\n\x12IdentifierConstant\x10\t\x12\x1b\n\x17Identifie\ - rMutableGlobal\x10\n\x12\x17\n\x13IdentifierParameter\x10\x0b\x12\x13\n\ - \x0fIdentifierLocal\x10\x0c\x12\x16\n\x12IdentifierShadowed\x10\r\x12\ + \x12.scip.RelationshipR\rrelationships\x120\n\x04kind\x18\x05\x20\x01(\ + \x0e2\x1c.scip.SymbolInformation.KindR\x04kind\"\xe3\x03\n\x04Kind\x12\ + \x13\n\x0fUnspecifiedKind\x10\0\x12\t\n\x05Array\x10\x01\x12\x0b\n\x07Bo\ + olean\x10\x02\x12\t\n\x05Class\x10\x03\x12\x0c\n\x08Constant\x10\x04\x12\ + \x0f\n\x0bConstructor\x10\x05\x12\x08\n\x04Enum\x10\x06\x12\x0e\n\nEnume\ + rator\x10\x07\x12\x0e\n\nEnumMember\x10\x08\x12\t\n\x05Event\x10\t\x12\t\ + \n\x05Field\x10\n\x12\x08\n\x04File\x10\x0b\x12\x0c\n\x08Function\x10\ + \x0c\x12\r\n\tInterface\x10\r\x12\x07\n\x03Key\x10\x0e\x12\t\n\x05Macro\ + \x10\x0f\x12\n\n\x06Method\x10\x10\x12\n\n\x06Module\x10\x11\x12\r\n\tNa\ + mespace\x10\x12\x12\x08\n\x04Null\x10\x13\x12\n\n\x06Number\x10\x14\x12\ + \n\n\x06Object\x10\x15\x12\x0c\n\x08Operator\x10\x16\x12\x0b\n\x07Packag\ + e\x10\x17\x12\x11\n\rPackageObject\x10\x18\x12\r\n\tParameter\x10\x19\ + \x12\x0c\n\x08Property\x10\x1a\x12\x11\n\rSelfParameter\x10\x1b\x12\n\n\ + \x06String\x10\x1c\x12\n\n\x06Struct\x10\x1d\x12\t\n\x05Trait\x10\x1e\ + \x12\x08\n\x04Type\x10\x1f\x12\x11\n\rTypeParameter\x10\x20\x12\t\n\x05U\ + nion\x10!\x12\t\n\x05Value\x10\"\x12\x0c\n\x08Variable\x10#\"\xc9\x01\n\ + \x0cRelationship\x12\x16\n\x06symbol\x18\x01\x20\x01(\tR\x06symbol\x12!\ + \n\x0cis_reference\x18\x02\x20\x01(\x08R\x0bisReference\x12+\n\x11is_imp\ + lementation\x18\x03\x20\x01(\x08R\x10isImplementation\x12,\n\x12is_type_\ + definition\x18\x04\x20\x01(\x08R\x10isTypeDefinition\x12#\n\ris_definiti\ + on\x18\x05\x20\x01(\x08R\x0cisDefinition\"\xa4\x02\n\nOccurrence\x12\x14\ + \n\x05range\x18\x01\x20\x03(\x05R\x05range\x12\x16\n\x06symbol\x18\x02\ + \x20\x01(\tR\x06symbol\x12!\n\x0csymbol_roles\x18\x03\x20\x01(\x05R\x0bs\ + ymbolRoles\x125\n\x16override_documentation\x18\x04\x20\x03(\tR\x15overr\ + ideDocumentation\x121\n\x0bsyntax_kind\x18\x05\x20\x01(\x0e2\x10.scip.Sy\ + ntaxKindR\nsyntaxKind\x122\n\x0bdiagnostics\x18\x06\x20\x03(\x0b2\x10.sc\ + ip.DiagnosticR\x0bdiagnostics\x12'\n\x0fenclosing_range\x18\x07\x20\x03(\ + \x05R\x0eenclosingRange\"\xa7\x01\n\nDiagnostic\x12*\n\x08severity\x18\ + \x01\x20\x01(\x0e2\x0e.scip.SeverityR\x08severity\x12\x12\n\x04code\x18\ + \x02\x20\x01(\tR\x04code\x12\x18\n\x07message\x18\x03\x20\x01(\tR\x07mes\ + sage\x12\x16\n\x06source\x18\x04\x20\x01(\tR\x06source\x12'\n\x04tags\ + \x18\x05\x20\x03(\x0e2\x13.scip.DiagnosticTagR\x04tags*1\n\x0fProtocolVe\ + rsion\x12\x1e\n\x1aUnspecifiedProtocolVersion\x10\0*@\n\x0cTextEncoding\ + \x12\x1b\n\x17UnspecifiedTextEncoding\x10\0\x12\x08\n\x04UTF8\x10\x01\ + \x12\t\n\x05UTF16\x10\x02*}\n\nSymbolRole\x12\x19\n\x15UnspecifiedSymbol\ + Role\x10\0\x12\x0e\n\nDefinition\x10\x01\x12\n\n\x06Import\x10\x02\x12\ + \x0f\n\x0bWriteAccess\x10\x04\x12\x0e\n\nReadAccess\x10\x08\x12\r\n\tGen\ + erated\x10\x10\x12\x08\n\x04Test\x10\x20*\xea\x06\n\nSyntaxKind\x12\x19\ + \n\x15UnspecifiedSyntaxKind\x10\0\x12\x0b\n\x07Comment\x10\x01\x12\x18\n\ + \x14PunctuationDelimiter\x10\x02\x12\x16\n\x12PunctuationBracket\x10\x03\ + \x12\x0b\n\x07Keyword\x10\x04\x12\x19\n\x11IdentifierKeyword\x10\x04\x1a\ + \x02\x08\x01\x12\x16\n\x12IdentifierOperator\x10\x05\x12\x0e\n\nIdentifi\ + er\x10\x06\x12\x15\n\x11IdentifierBuiltin\x10\x07\x12\x12\n\x0eIdentifie\ + rNull\x10\x08\x12\x16\n\x12IdentifierConstant\x10\t\x12\x1b\n\x17Identif\ + ierMutableGlobal\x10\n\x12\x17\n\x13IdentifierParameter\x10\x0b\x12\x13\ + \n\x0fIdentifierLocal\x10\x0c\x12\x16\n\x12IdentifierShadowed\x10\r\x12\ \x17\n\x13IdentifierNamespace\x10\x0e\x12\x18\n\x10IdentifierModule\x10\ \x0e\x1a\x02\x08\x01\x12\x16\n\x12IdentifierFunction\x10\x0f\x12\x20\n\ \x1cIdentifierFunctionDefinition\x10\x10\x12\x13\n\x0fIdentifierMacro\ @@ -3491,8 +3727,8 @@ static file_descriptor_proto_data: &'static [u8] = b"\ \nTypeScript\x10\x17\x12\x13\n\x0fTypeScriptReact\x10^\x12\x0f\n\x0bVisu\ alBasic\x10?\x12\x07\n\x03Vue\x10\x19\x12\x0b\n\x07Wolfram\x105\x12\x07\ \n\x03XML\x10\x1f\x12\x07\n\x03XSL\x10\x20\x12\x08\n\x04YAML\x10J\x12\ - \x07\n\x03Zig\x10&B/Z-github.com/sourcegraph/scip/bindings/go/scip/J\xe6\ - \xcd\x01\n\x07\x12\x05\n\0\xcb\x04\x01\n\x82\x04\n\x01\x0c\x12\x03\n\0\ + \x07\n\x03Zig\x10&B/Z-github.com/sourcegraph/scip/bindings/go/scip/J\x8b\ + \xe2\x01\n\x07\x12\x05\n\0\xfe\x04\x01\n\x82\x04\n\x01\x0c\x12\x03\n\0\ \x122\xf7\x03\x20An\x20index\x20contains\x20one\x20or\x20more\x20pieces\ \x20of\x20information\x20about\x20a\x20given\x20piece\x20of\n\x20source\ \x20code\x20or\x20software\x20artifact.\x20Complementary\x20information\ @@ -3731,7 +3967,7 @@ static file_descriptor_proto_data: &'static [u8] = b"\ \xa9\x01\x19\x1a\n\x0c\n\x04\x04\x06\x02\x02\x12\x04\xaa\x01\x02\x14\n\r\ \n\x05\x04\x06\x02\x02\x06\x12\x04\xaa\x01\x02\x08\n\r\n\x05\x04\x06\x02\ \x02\x01\x12\x04\xaa\x01\t\x0f\n\r\n\x05\x04\x06\x02\x02\x03\x12\x04\xaa\ - \x01\x12\x13\n\x83\x01\n\x02\x04\x07\x12\x06\xaf\x01\0\xba\x01\x01\x1au\ + \x01\x12\x13\n\x83\x01\n\x02\x04\x07\x12\x06\xaf\x01\0\xec\x01\x01\x1au\ \x20SymbolInformation\x20defines\x20metadata\x20about\x20a\x20symbol,\ \x20such\x20as\x20the\x20symbol's\n\x20docstring\x20or\x20what\x20packag\ e\x20it's\x20defined\x20it.\n\n\x0b\n\x03\x04\x07\x01\x12\x04\xaf\x01\ @@ -3756,41 +3992,152 @@ static file_descriptor_proto_data: &'static [u8] = b"\ nition).\n\n\r\n\x05\x04\x07\x02\x02\x04\x12\x04\xb9\x01\x02\n\n\r\n\x05\ \x04\x07\x02\x02\x06\x12\x04\xb9\x01\x0b\x17\n\r\n\x05\x04\x07\x02\x02\ \x01\x12\x04\xb9\x01\x18%\n\r\n\x05\x04\x07\x02\x02\x03\x12\x04\xb9\x01(\ - )\n\x0c\n\x02\x04\x08\x12\x06\xbc\x01\0\xf4\x01\x01\n\x0b\n\x03\x04\x08\ - \x01\x12\x04\xbc\x01\x08\x14\n\x0c\n\x04\x04\x08\x02\0\x12\x04\xbd\x01\ - \x02\x14\n\r\n\x05\x04\x08\x02\0\x05\x12\x04\xbd\x01\x02\x08\n\r\n\x05\ - \x04\x08\x02\0\x01\x12\x04\xbd\x01\t\x0f\n\r\n\x05\x04\x08\x02\0\x03\x12\ - \x04\xbd\x01\x12\x13\n\xde\x08\n\x04\x04\x08\x02\x01\x12\x04\xd6\x01\x02\ - \x18\x1a\xcf\x08\x20When\x20resolving\x20\"Find\x20references\",\x20this\ - \x20field\x20documents\x20what\x20other\x20symbols\n\x20should\x20be\x20\ - included\x20together\x20with\x20this\x20symbol.\x20For\x20example,\x20co\ - nsider\x20the\n\x20following\x20TypeScript\x20code\x20that\x20defines\ - \x20two\x20symbols\x20`Animal#sound()`\x20and\n\x20`Dog#sound()`:\n\x20`\ - ``ts\n\x20interface\x20Animal\x20{\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\ - \x20\x20^^^^^^\x20definition\x20Animal#\n\x20\x20\x20sound():\x20string\ - \n\x20\x20\x20^^^^^\x20definition\x20Animal#sound()\n\x20}\n\x20class\ - \x20Dog\x20implements\x20Animal\x20{\n\x20\x20\x20\x20\x20\x20\x20^^^\ - \x20definition\x20Dog#,\x20relationships\x20=\x20[{symbol:\x20\"Animal#\ - \",\x20is_implementation:\x20true}]\n\x20\x20\x20public\x20sound():\x20s\ - tring\x20{\x20return\x20\"woof\"\x20}\n\x20\x20\x20\x20\x20\x20\x20\x20\ - \x20\x20^^^^^\x20definition\x20Dog#sound(),\x20references_symbols\x20=\ - \x20Animal#sound(),\x20relationships\x20=\x20[{symbol:\x20\"Animal#sound\ - ()\",\x20is_implementation:true,\x20is_reference:\x20true}]\n\x20}\n\x20\ - const\x20animal:\x20Animal\x20=\x20new\x20Dog()\n\x20\x20\x20\x20\x20\ - \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20^^^^^^\x20reference\x20Animal#\n\ - \x20console.log(animal.sound())\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\ - \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20^^^^^\x20reference\x20Animal\ - #sound()\n\x20```\n\x20Doing\x20\"Find\x20references\"\x20on\x20the\x20s\ - ymbol\x20`Animal#sound()`\x20should\x20return\n\x20references\x20to\x20t\ - he\x20`Dog#sound()`\x20method\x20as\x20well.\x20Vice-versa,\x20doing\x20\ - \"Find\n\x20references\"\x20on\x20the\x20`Dog#sound()`\x20method\x20shou\ - ld\x20include\x20references\x20to\x20the\n\x20`Animal#sound()`\x20method\ - \x20as\x20well.\n\n\r\n\x05\x04\x08\x02\x01\x05\x12\x04\xd6\x01\x02\x06\ - \n\r\n\x05\x04\x08\x02\x01\x01\x12\x04\xd6\x01\x07\x13\n\r\n\x05\x04\x08\ - \x02\x01\x03\x12\x04\xd6\x01\x16\x17\n\xee\x03\n\x04\x04\x08\x02\x02\x12\ - \x04\xdf\x01\x02\x1d\x1a\xdf\x03\x20Similar\x20to\x20`is_reference`\x20b\ - ut\x20for\x20\"Find\x20implementations\".\n\x20It's\x20common\x20for\x20\ - `is_implementation`\x20and\x20`is_reference`\x20to\x20both\x20be\x20true\ + )\n\xa4\x01\n\x04\x04\x07\x02\x03\x12\x04\xbd\x01\x02\x10\x1a\x95\x01\ + \x20The\x20kind\x20of\x20this\x20symbol.\x20Use\x20this\x20field\x20inst\ + ead\x20of\n\x20`SymbolDescriptor.Suffix`\x20to\x20determine\x20whether\ + \x20something\x20is,\x20for\x20example,\x20a\n\x20class\x20or\x20a\x20me\ + thod.\n\n\r\n\x05\x04\x07\x02\x03\x06\x12\x04\xbd\x01\x02\x06\n\r\n\x05\ + \x04\x07\x02\x03\x01\x12\x04\xbd\x01\x07\x0b\n\r\n\x05\x04\x07\x02\x03\ + \x03\x12\x04\xbd\x01\x0e\x0f\n\xf6\x03\n\x04\x04\x07\x04\0\x12\x06\xc5\ + \x01\x02\xeb\x01\x03\x1a\xe5\x03\x20Kind\x20determines\x20the\x20type\ + \x20of\x20a\x20symbol\x20using\x20idiomatic\x20names\x20from\x20the\n\ + \x20language's\x20type\x20system.\x20For\x20example,\x20a\x20Java\x20met\ + hod\x20would\x20have\x20the\x20kind\n\x20`Method`\x20while\x20a\x20Go\ + \x20function\x20would\x20have\x20the\x20kind\x20`Function`,\x20even\x20i\ + f\x20the\n\x20symbols\x20for\x20these\x20use\x20the\x20same\x20syntax\ + \x20for\x20the\x20descriptor:\n\x20`SymbolDescriptor.Suffix.Method`.\x20\ + Likewise,\x20a\x20Go\x20struct\x20has\x20the\x20symbol\x20kind\n\x20`Str\ + uct`\x20while\x20a\x20Java\x20class\x20has\x20the\x20symbol\x20kind\x20`\ + Class`\x20even\x20if\x20they\x20both\x20have\n\x20the\x20same\x20descrip\ + tor:\x20`SymbolDescriptor.Suffix.Type`.\n\n\r\n\x05\x04\x07\x04\0\x01\ + \x12\x04\xc5\x01\x07\x0b\n\x0e\n\x06\x04\x07\x04\0\x02\0\x12\x04\xc6\x01\ + \x06\x1a\n\x0f\n\x07\x04\x07\x04\0\x02\0\x01\x12\x04\xc6\x01\x06\x15\n\ + \x0f\n\x07\x04\x07\x04\0\x02\0\x02\x12\x04\xc6\x01\x18\x19\n\x0e\n\x06\ + \x04\x07\x04\0\x02\x01\x12\x04\xc7\x01\x06\x10\n\x0f\n\x07\x04\x07\x04\0\ + \x02\x01\x01\x12\x04\xc7\x01\x06\x0b\n\x0f\n\x07\x04\x07\x04\0\x02\x01\ + \x02\x12\x04\xc7\x01\x0e\x0f\n\x0e\n\x06\x04\x07\x04\0\x02\x02\x12\x04\ + \xc8\x01\x06\x12\n\x0f\n\x07\x04\x07\x04\0\x02\x02\x01\x12\x04\xc8\x01\ + \x06\r\n\x0f\n\x07\x04\x07\x04\0\x02\x02\x02\x12\x04\xc8\x01\x10\x11\n\ + \x0e\n\x06\x04\x07\x04\0\x02\x03\x12\x04\xc9\x01\x06\x10\n\x0f\n\x07\x04\ + \x07\x04\0\x02\x03\x01\x12\x04\xc9\x01\x06\x0b\n\x0f\n\x07\x04\x07\x04\0\ + \x02\x03\x02\x12\x04\xc9\x01\x0e\x0f\n\x0e\n\x06\x04\x07\x04\0\x02\x04\ + \x12\x04\xca\x01\x06\x13\n\x0f\n\x07\x04\x07\x04\0\x02\x04\x01\x12\x04\ + \xca\x01\x06\x0e\n\x0f\n\x07\x04\x07\x04\0\x02\x04\x02\x12\x04\xca\x01\ + \x11\x12\n\x0e\n\x06\x04\x07\x04\0\x02\x05\x12\x04\xcb\x01\x06\x16\n\x0f\ + \n\x07\x04\x07\x04\0\x02\x05\x01\x12\x04\xcb\x01\x06\x11\n\x0f\n\x07\x04\ + \x07\x04\0\x02\x05\x02\x12\x04\xcb\x01\x14\x15\n\x0e\n\x06\x04\x07\x04\0\ + \x02\x06\x12\x04\xcc\x01\x06\x0f\n\x0f\n\x07\x04\x07\x04\0\x02\x06\x01\ + \x12\x04\xcc\x01\x06\n\n\x0f\n\x07\x04\x07\x04\0\x02\x06\x02\x12\x04\xcc\ + \x01\r\x0e\n\x0e\n\x06\x04\x07\x04\0\x02\x07\x12\x04\xcd\x01\x06\x15\n\ + \x0f\n\x07\x04\x07\x04\0\x02\x07\x01\x12\x04\xcd\x01\x06\x10\n\x0f\n\x07\ + \x04\x07\x04\0\x02\x07\x02\x12\x04\xcd\x01\x13\x14\n\x0e\n\x06\x04\x07\ + \x04\0\x02\x08\x12\x04\xce\x01\x06\x15\n\x0f\n\x07\x04\x07\x04\0\x02\x08\ + \x01\x12\x04\xce\x01\x06\x10\n\x0f\n\x07\x04\x07\x04\0\x02\x08\x02\x12\ + \x04\xce\x01\x13\x14\n\x0e\n\x06\x04\x07\x04\0\x02\t\x12\x04\xcf\x01\x06\ + \x10\n\x0f\n\x07\x04\x07\x04\0\x02\t\x01\x12\x04\xcf\x01\x06\x0b\n\x0f\n\ + \x07\x04\x07\x04\0\x02\t\x02\x12\x04\xcf\x01\x0e\x0f\n\x0e\n\x06\x04\x07\ + \x04\0\x02\n\x12\x04\xd0\x01\x06\x11\n\x0f\n\x07\x04\x07\x04\0\x02\n\x01\ + \x12\x04\xd0\x01\x06\x0b\n\x0f\n\x07\x04\x07\x04\0\x02\n\x02\x12\x04\xd0\ + \x01\x0e\x10\n\x0e\n\x06\x04\x07\x04\0\x02\x0b\x12\x04\xd1\x01\x06\x10\n\ + \x0f\n\x07\x04\x07\x04\0\x02\x0b\x01\x12\x04\xd1\x01\x06\n\n\x0f\n\x07\ + \x04\x07\x04\0\x02\x0b\x02\x12\x04\xd1\x01\r\x0f\n\x0e\n\x06\x04\x07\x04\ + \0\x02\x0c\x12\x04\xd2\x01\x06\x14\n\x0f\n\x07\x04\x07\x04\0\x02\x0c\x01\ + \x12\x04\xd2\x01\x06\x0e\n\x0f\n\x07\x04\x07\x04\0\x02\x0c\x02\x12\x04\ + \xd2\x01\x11\x13\n\x0e\n\x06\x04\x07\x04\0\x02\r\x12\x04\xd3\x01\x06\x15\ + \n\x0f\n\x07\x04\x07\x04\0\x02\r\x01\x12\x04\xd3\x01\x06\x0f\n\x0f\n\x07\ + \x04\x07\x04\0\x02\r\x02\x12\x04\xd3\x01\x12\x14\n\x0e\n\x06\x04\x07\x04\ + \0\x02\x0e\x12\x04\xd4\x01\x06\x0f\n\x0f\n\x07\x04\x07\x04\0\x02\x0e\x01\ + \x12\x04\xd4\x01\x06\t\n\x0f\n\x07\x04\x07\x04\0\x02\x0e\x02\x12\x04\xd4\ + \x01\x0c\x0e\n\x0e\n\x06\x04\x07\x04\0\x02\x0f\x12\x04\xd5\x01\x06\x11\n\ + \x0f\n\x07\x04\x07\x04\0\x02\x0f\x01\x12\x04\xd5\x01\x06\x0b\n\x0f\n\x07\ + \x04\x07\x04\0\x02\x0f\x02\x12\x04\xd5\x01\x0e\x10\n\x0e\n\x06\x04\x07\ + \x04\0\x02\x10\x12\x04\xd6\x01\x06\x12\n\x0f\n\x07\x04\x07\x04\0\x02\x10\ + \x01\x12\x04\xd6\x01\x06\x0c\n\x0f\n\x07\x04\x07\x04\0\x02\x10\x02\x12\ + \x04\xd6\x01\x0f\x11\n\x0e\n\x06\x04\x07\x04\0\x02\x11\x12\x04\xd7\x01\ + \x06\x12\n\x0f\n\x07\x04\x07\x04\0\x02\x11\x01\x12\x04\xd7\x01\x06\x0c\n\ + \x0f\n\x07\x04\x07\x04\0\x02\x11\x02\x12\x04\xd7\x01\x0f\x11\n\x0e\n\x06\ + \x04\x07\x04\0\x02\x12\x12\x04\xd8\x01\x06\x15\n\x0f\n\x07\x04\x07\x04\0\ + \x02\x12\x01\x12\x04\xd8\x01\x06\x0f\n\x0f\n\x07\x04\x07\x04\0\x02\x12\ + \x02\x12\x04\xd8\x01\x12\x14\n\x0e\n\x06\x04\x07\x04\0\x02\x13\x12\x04\ + \xd9\x01\x06\x10\n\x0f\n\x07\x04\x07\x04\0\x02\x13\x01\x12\x04\xd9\x01\ + \x06\n\n\x0f\n\x07\x04\x07\x04\0\x02\x13\x02\x12\x04\xd9\x01\r\x0f\n\x0e\ + \n\x06\x04\x07\x04\0\x02\x14\x12\x04\xda\x01\x06\x12\n\x0f\n\x07\x04\x07\ + \x04\0\x02\x14\x01\x12\x04\xda\x01\x06\x0c\n\x0f\n\x07\x04\x07\x04\0\x02\ + \x14\x02\x12\x04\xda\x01\x0f\x11\n\x0e\n\x06\x04\x07\x04\0\x02\x15\x12\ + \x04\xdb\x01\x06\x12\n\x0f\n\x07\x04\x07\x04\0\x02\x15\x01\x12\x04\xdb\ + \x01\x06\x0c\n\x0f\n\x07\x04\x07\x04\0\x02\x15\x02\x12\x04\xdb\x01\x0f\ + \x11\n\x0e\n\x06\x04\x07\x04\0\x02\x16\x12\x04\xdc\x01\x06\x14\n\x0f\n\ + \x07\x04\x07\x04\0\x02\x16\x01\x12\x04\xdc\x01\x06\x0e\n\x0f\n\x07\x04\ + \x07\x04\0\x02\x16\x02\x12\x04\xdc\x01\x11\x13\n\x0e\n\x06\x04\x07\x04\0\ + \x02\x17\x12\x04\xdd\x01\x06\x13\n\x0f\n\x07\x04\x07\x04\0\x02\x17\x01\ + \x12\x04\xdd\x01\x06\r\n\x0f\n\x07\x04\x07\x04\0\x02\x17\x02\x12\x04\xdd\ + \x01\x10\x12\n\x0e\n\x06\x04\x07\x04\0\x02\x18\x12\x04\xde\x01\x06\x19\n\ + \x0f\n\x07\x04\x07\x04\0\x02\x18\x01\x12\x04\xde\x01\x06\x13\n\x0f\n\x07\ + \x04\x07\x04\0\x02\x18\x02\x12\x04\xde\x01\x16\x18\n\x0e\n\x06\x04\x07\ + \x04\0\x02\x19\x12\x04\xdf\x01\x06\x15\n\x0f\n\x07\x04\x07\x04\0\x02\x19\ + \x01\x12\x04\xdf\x01\x06\x0f\n\x0f\n\x07\x04\x07\x04\0\x02\x19\x02\x12\ + \x04\xdf\x01\x12\x14\n\x0e\n\x06\x04\x07\x04\0\x02\x1a\x12\x04\xe0\x01\ + \x06\x14\n\x0f\n\x07\x04\x07\x04\0\x02\x1a\x01\x12\x04\xe0\x01\x06\x0e\n\ + \x0f\n\x07\x04\x07\x04\0\x02\x1a\x02\x12\x04\xe0\x01\x11\x13\n\x0e\n\x06\ + \x04\x07\x04\0\x02\x1b\x12\x04\xe1\x01\x06\x19\n\x0f\n\x07\x04\x07\x04\0\ + \x02\x1b\x01\x12\x04\xe1\x01\x06\x13\n\x0f\n\x07\x04\x07\x04\0\x02\x1b\ + \x02\x12\x04\xe1\x01\x16\x18\n\x0e\n\x06\x04\x07\x04\0\x02\x1c\x12\x04\ + \xe2\x01\x06\x12\n\x0f\n\x07\x04\x07\x04\0\x02\x1c\x01\x12\x04\xe2\x01\ + \x06\x0c\n\x0f\n\x07\x04\x07\x04\0\x02\x1c\x02\x12\x04\xe2\x01\x0f\x11\n\ + \x0e\n\x06\x04\x07\x04\0\x02\x1d\x12\x04\xe3\x01\x06\x12\n\x0f\n\x07\x04\ + \x07\x04\0\x02\x1d\x01\x12\x04\xe3\x01\x06\x0c\n\x0f\n\x07\x04\x07\x04\0\ + \x02\x1d\x02\x12\x04\xe3\x01\x0f\x11\n\x0e\n\x06\x04\x07\x04\0\x02\x1e\ + \x12\x04\xe4\x01\x06\x11\n\x0f\n\x07\x04\x07\x04\0\x02\x1e\x01\x12\x04\ + \xe4\x01\x06\x0b\n\x0f\n\x07\x04\x07\x04\0\x02\x1e\x02\x12\x04\xe4\x01\ + \x0e\x10\n\x0e\n\x06\x04\x07\x04\0\x02\x1f\x12\x04\xe5\x01\x06\x10\n\x0f\ + \n\x07\x04\x07\x04\0\x02\x1f\x01\x12\x04\xe5\x01\x06\n\n\x0f\n\x07\x04\ + \x07\x04\0\x02\x1f\x02\x12\x04\xe5\x01\r\x0f\n\x0e\n\x06\x04\x07\x04\0\ + \x02\x20\x12\x04\xe6\x01\x06\x19\n\x0f\n\x07\x04\x07\x04\0\x02\x20\x01\ + \x12\x04\xe6\x01\x06\x13\n\x0f\n\x07\x04\x07\x04\0\x02\x20\x02\x12\x04\ + \xe6\x01\x16\x18\n\x0e\n\x06\x04\x07\x04\0\x02!\x12\x04\xe7\x01\x06\x11\ + \n\x0f\n\x07\x04\x07\x04\0\x02!\x01\x12\x04\xe7\x01\x06\x0b\n\x0f\n\x07\ + \x04\x07\x04\0\x02!\x02\x12\x04\xe7\x01\x0e\x10\n\x0e\n\x06\x04\x07\x04\ + \0\x02\"\x12\x04\xe8\x01\x06\x11\n\x0f\n\x07\x04\x07\x04\0\x02\"\x01\x12\ + \x04\xe8\x01\x06\x0b\n\x0f\n\x07\x04\x07\x04\0\x02\"\x02\x12\x04\xe8\x01\ + \x0e\x10\nO\n\x06\x04\x07\x04\0\x02#\x12\x04\xe9\x01\x06\x14\"?\x20Feel\ + \x20free\x20to\x20open\x20a\x20PR\x20proposing\x20new\x20language-specif\ + ic\x20kinds.\n\n\x0f\n\x07\x04\x07\x04\0\x02#\x01\x12\x04\xe9\x01\x06\ + \x0e\n\x0f\n\x07\x04\x07\x04\0\x02#\x02\x12\x04\xe9\x01\x11\x13\n\x0c\n\ + \x02\x04\x08\x12\x06\xef\x01\0\xa7\x02\x01\n\x0b\n\x03\x04\x08\x01\x12\ + \x04\xef\x01\x08\x14\n\x0c\n\x04\x04\x08\x02\0\x12\x04\xf0\x01\x02\x14\n\ + \r\n\x05\x04\x08\x02\0\x05\x12\x04\xf0\x01\x02\x08\n\r\n\x05\x04\x08\x02\ + \0\x01\x12\x04\xf0\x01\t\x0f\n\r\n\x05\x04\x08\x02\0\x03\x12\x04\xf0\x01\ + \x12\x13\n\xde\x08\n\x04\x04\x08\x02\x01\x12\x04\x89\x02\x02\x18\x1a\xcf\ + \x08\x20When\x20resolving\x20\"Find\x20references\",\x20this\x20field\ + \x20documents\x20what\x20other\x20symbols\n\x20should\x20be\x20included\ + \x20together\x20with\x20this\x20symbol.\x20For\x20example,\x20consider\ + \x20the\n\x20following\x20TypeScript\x20code\x20that\x20defines\x20two\ + \x20symbols\x20`Animal#sound()`\x20and\n\x20`Dog#sound()`:\n\x20```ts\n\ + \x20interface\x20Animal\x20{\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ + \x20^^^^^^\x20definition\x20Animal#\n\x20\x20\x20sound():\x20string\n\ + \x20\x20\x20^^^^^\x20definition\x20Animal#sound()\n\x20}\n\x20class\x20D\ + og\x20implements\x20Animal\x20{\n\x20\x20\x20\x20\x20\x20\x20^^^\x20defi\ + nition\x20Dog#,\x20relationships\x20=\x20[{symbol:\x20\"Animal#\",\x20is\ + _implementation:\x20true}]\n\x20\x20\x20public\x20sound():\x20string\x20\ + {\x20return\x20\"woof\"\x20}\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20^^\ + ^^^\x20definition\x20Dog#sound(),\x20references_symbols\x20=\x20Animal#s\ + ound(),\x20relationships\x20=\x20[{symbol:\x20\"Animal#sound()\",\x20is_\ + implementation:true,\x20is_reference:\x20true}]\n\x20}\n\x20const\x20ani\ + mal:\x20Animal\x20=\x20new\x20Dog()\n\x20\x20\x20\x20\x20\x20\x20\x20\ + \x20\x20\x20\x20\x20\x20\x20^^^^^^\x20reference\x20Animal#\n\x20console.\ + log(animal.sound())\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ + \x20\x20\x20\x20\x20\x20\x20\x20^^^^^\x20reference\x20Animal#sound()\n\ + \x20```\n\x20Doing\x20\"Find\x20references\"\x20on\x20the\x20symbol\x20`\ + Animal#sound()`\x20should\x20return\n\x20references\x20to\x20the\x20`Dog\ + #sound()`\x20method\x20as\x20well.\x20Vice-versa,\x20doing\x20\"Find\n\ + \x20references\"\x20on\x20the\x20`Dog#sound()`\x20method\x20should\x20in\ + clude\x20references\x20to\x20the\n\x20`Animal#sound()`\x20method\x20as\ + \x20well.\n\n\r\n\x05\x04\x08\x02\x01\x05\x12\x04\x89\x02\x02\x06\n\r\n\ + \x05\x04\x08\x02\x01\x01\x12\x04\x89\x02\x07\x13\n\r\n\x05\x04\x08\x02\ + \x01\x03\x12\x04\x89\x02\x16\x17\n\xee\x03\n\x04\x04\x08\x02\x02\x12\x04\ + \x92\x02\x02\x1d\x1a\xdf\x03\x20Similar\x20to\x20`is_reference`\x20but\ + \x20for\x20\"Find\x20implementations\".\n\x20It's\x20common\x20for\x20`i\ + s_implementation`\x20and\x20`is_reference`\x20to\x20both\x20be\x20true\ \x20but\n\x20it's\x20not\x20always\x20the\x20case.\n\x20In\x20the\x20Typ\ eScript\x20example\x20above,\x20observe\x20that\x20`Dog#`\x20has\x20an\n\ \x20`is_implementation`\x20relationship\x20with\x20`\"Animal#\"`\x20but\ @@ -3798,14 +4145,14 @@ static file_descriptor_proto_data: &'static [u8] = b"\ ences\"\x20on\x20the\x20\"Animal#\"\x20symbol\x20should\x20not\x20return\ \n\x20\"Dog#\".\x20We\x20only\x20want\x20\"Dog#\"\x20to\x20return\x20as\ \x20a\x20result\x20for\x20\"Find\n\x20implementations\"\x20on\x20the\x20\ - \"Animal#\"\x20symbol.\n\n\r\n\x05\x04\x08\x02\x02\x05\x12\x04\xdf\x01\ - \x02\x06\n\r\n\x05\x04\x08\x02\x02\x01\x12\x04\xdf\x01\x07\x18\n\r\n\x05\ - \x04\x08\x02\x02\x03\x12\x04\xdf\x01\x1b\x1c\nP\n\x04\x04\x08\x02\x03\ - \x12\x04\xe1\x01\x02\x1e\x1aB\x20Similar\x20to\x20`references_symbols`\ + \"Animal#\"\x20symbol.\n\n\r\n\x05\x04\x08\x02\x02\x05\x12\x04\x92\x02\ + \x02\x06\n\r\n\x05\x04\x08\x02\x02\x01\x12\x04\x92\x02\x07\x18\n\r\n\x05\ + \x04\x08\x02\x02\x03\x12\x04\x92\x02\x1b\x1c\nP\n\x04\x04\x08\x02\x03\ + \x12\x04\x94\x02\x02\x1e\x1aB\x20Similar\x20to\x20`references_symbols`\ \x20but\x20for\x20\"Go\x20to\x20type\x20definition\".\n\n\r\n\x05\x04\ - \x08\x02\x03\x05\x12\x04\xe1\x01\x02\x06\n\r\n\x05\x04\x08\x02\x03\x01\ - \x12\x04\xe1\x01\x07\x19\n\r\n\x05\x04\x08\x02\x03\x03\x12\x04\xe1\x01\ - \x1c\x1d\n\xa7\x07\n\x04\x04\x08\x02\x04\x12\x04\xf2\x01\x02\x19\x1a\xd5\ + \x08\x02\x03\x05\x12\x04\x94\x02\x02\x06\n\r\n\x05\x04\x08\x02\x03\x01\ + \x12\x04\x94\x02\x07\x19\n\r\n\x05\x04\x08\x02\x03\x03\x12\x04\x94\x02\ + \x1c\x1d\n\xa7\x07\n\x04\x04\x08\x02\x04\x12\x04\xa5\x02\x02\x19\x1a\xd5\ \x06\x20Allows\x20overriding\x20the\x20behavior\x20of\x20\"Go\x20to\x20d\ efinition\"\x20and\x20\"Find\x20references\"\n\x20for\x20symbols\x20whic\ h\x20do\x20not\x20have\x20a\x20definition\x20of\x20their\x20own\x20or\ @@ -3826,9 +4173,9 @@ static file_descriptor_proto_data: &'static [u8] = b"\ onship\x20may\x20not\x20get\x20recorded\x20if\x20either\x20symbol\x20is\ \x20local.\n\"A\x20Update\x20registerInverseRelationships\x20on\x20addin\ g\x20a\x20new\x20field\x20here.\n\n\r\n\x05\x04\x08\x02\x04\x05\x12\x04\ - \xf2\x01\x02\x06\n\r\n\x05\x04\x08\x02\x04\x01\x12\x04\xf2\x01\x07\x14\n\ - \r\n\x05\x04\x08\x02\x04\x03\x12\x04\xf2\x01\x17\x18\n\x88\x03\n\x02\x05\ - \x02\x12\x06\xfb\x01\0\x8b\x02\x01\x1a\xf9\x02\x20SymbolRole\x20declares\ + \xa5\x02\x02\x06\n\r\n\x05\x04\x08\x02\x04\x01\x12\x04\xa5\x02\x07\x14\n\ + \r\n\x05\x04\x08\x02\x04\x03\x12\x04\xa5\x02\x17\x18\n\x88\x03\n\x02\x05\ + \x02\x12\x06\xae\x02\0\xbe\x02\x01\x1a\xf9\x02\x20SymbolRole\x20declares\ \x20what\x20\"role\"\x20a\x20symbol\x20has\x20in\x20an\x20occurrence.\ \x20A\x20role\x20is\n\x20encoded\x20as\x20a\x20bitset\x20where\x20each\ \x20bit\x20represents\x20a\x20different\x20role.\x20For\x20example,\n\ @@ -3837,163 +4184,163 @@ static file_descriptor_proto_data: &'static [u8] = b"\ \x20is\x20defined.\x20In\x20pseudocode,\x20this\x20can\x20be\x20implemen\ ted\x20with\x20the\n\x20logic:\x20`const\x20isImportRole\x20=\x20(role.v\ alue\x20&\x20SymbolRole.Import.value)\x20>\x200`.\n\n\x0b\n\x03\x05\x02\ - \x01\x12\x04\xfb\x01\x05\x0f\nv\n\x04\x05\x02\x02\0\x12\x04\xfe\x01\x02\ + \x01\x12\x04\xae\x02\x05\x0f\nv\n\x04\x05\x02\x02\0\x12\x04\xb1\x02\x02\ \x1c\x1ah\x20This\x20case\x20is\x20not\x20meant\x20to\x20be\x20used;\x20\ it\x20only\x20exists\x20to\x20avoid\x20an\x20error\n\x20from\x20the\x20P\ - rotobuf\x20code\x20generator.\n\n\r\n\x05\x05\x02\x02\0\x01\x12\x04\xfe\ - \x01\x02\x17\n\r\n\x05\x05\x02\x02\0\x02\x12\x04\xfe\x01\x1a\x1b\nT\n\ - \x04\x05\x02\x02\x01\x12\x04\x80\x02\x02\x13\x1aF\x20Is\x20the\x20symbol\ + rotobuf\x20code\x20generator.\n\n\r\n\x05\x05\x02\x02\0\x01\x12\x04\xb1\ + \x02\x02\x17\n\r\n\x05\x05\x02\x02\0\x02\x12\x04\xb1\x02\x1a\x1b\nT\n\ + \x04\x05\x02\x02\x01\x12\x04\xb3\x02\x02\x13\x1aF\x20Is\x20the\x20symbol\ \x20defined\x20here?\x20If\x20not,\x20then\x20this\x20is\x20a\x20symbol\ - \x20reference.\n\n\r\n\x05\x05\x02\x02\x01\x01\x12\x04\x80\x02\x02\x0c\n\ - \r\n\x05\x05\x02\x02\x01\x02\x12\x04\x80\x02\x0f\x12\n,\n\x04\x05\x02\ - \x02\x02\x12\x04\x82\x02\x02\x0f\x1a\x1e\x20Is\x20the\x20symbol\x20impor\ - ted\x20here?\n\n\r\n\x05\x05\x02\x02\x02\x01\x12\x04\x82\x02\x02\x08\n\r\ - \n\x05\x05\x02\x02\x02\x02\x12\x04\x82\x02\x0b\x0e\n+\n\x04\x05\x02\x02\ - \x03\x12\x04\x84\x02\x02\x14\x1a\x1d\x20Is\x20the\x20symbol\x20written\ - \x20here?\n\n\r\n\x05\x05\x02\x02\x03\x01\x12\x04\x84\x02\x02\r\n\r\n\ - \x05\x05\x02\x02\x03\x02\x12\x04\x84\x02\x10\x13\n(\n\x04\x05\x02\x02\ - \x04\x12\x04\x86\x02\x02\x13\x1a\x1a\x20Is\x20the\x20symbol\x20read\x20h\ - ere?\n\n\r\n\x05\x05\x02\x02\x04\x01\x12\x04\x86\x02\x02\x0c\n\r\n\x05\ - \x05\x02\x02\x04\x02\x12\x04\x86\x02\x0f\x12\n0\n\x04\x05\x02\x02\x05\ - \x12\x04\x88\x02\x02\x13\x1a\"\x20Is\x20the\x20symbol\x20in\x20generated\ - \x20code?\n\n\r\n\x05\x05\x02\x02\x05\x01\x12\x04\x88\x02\x02\x0b\n\r\n\ - \x05\x05\x02\x02\x05\x02\x12\x04\x88\x02\x0e\x12\n+\n\x04\x05\x02\x02\ - \x06\x12\x04\x8a\x02\x02\x0e\x1a\x1d\x20Is\x20the\x20symbol\x20in\x20tes\ - t\x20code?\n\n\r\n\x05\x05\x02\x02\x06\x01\x12\x04\x8a\x02\x02\x06\n\r\n\ - \x05\x05\x02\x02\x06\x02\x12\x04\x8a\x02\t\r\n\x0c\n\x02\x05\x03\x12\x06\ - \x8d\x02\0\xea\x02\x01\n\x0b\n\x03\x05\x03\x01\x12\x04\x8d\x02\x05\x0f\n\ - \x0b\n\x03\x05\x03\x03\x12\x04\x8e\x02\x02\x1c\n\x0c\n\x04\x05\x03\x03\ - \x02\x12\x04\x8e\x02\x02\x1c\n\x0c\n\x04\x05\x03\x02\0\x12\x04\x90\x02\ - \x02\x1c\n\r\n\x05\x05\x03\x02\0\x01\x12\x04\x90\x02\x02\x17\n\r\n\x05\ - \x05\x03\x02\0\x02\x12\x04\x90\x02\x1a\x1b\n;\n\x04\x05\x03\x02\x01\x12\ - \x04\x93\x02\x02\x0e\x1a-\x20Comment,\x20including\x20comment\x20markers\ - \x20and\x20text\n\n\r\n\x05\x05\x03\x02\x01\x01\x12\x04\x93\x02\x02\t\n\ - \r\n\x05\x05\x03\x02\x01\x02\x12\x04\x93\x02\x0c\r\n\x1b\n\x04\x05\x03\ - \x02\x02\x12\x04\x96\x02\x02\x1b\x1a\r\x20`;`\x20`.`\x20`,`\n\n\r\n\x05\ - \x05\x03\x02\x02\x01\x12\x04\x96\x02\x02\x16\n\r\n\x05\x05\x03\x02\x02\ - \x02\x12\x04\x96\x02\x19\x1a\n2\n\x04\x05\x03\x02\x03\x12\x04\x98\x02\ + \x20reference.\n\n\r\n\x05\x05\x02\x02\x01\x01\x12\x04\xb3\x02\x02\x0c\n\ + \r\n\x05\x05\x02\x02\x01\x02\x12\x04\xb3\x02\x0f\x12\n,\n\x04\x05\x02\ + \x02\x02\x12\x04\xb5\x02\x02\x0f\x1a\x1e\x20Is\x20the\x20symbol\x20impor\ + ted\x20here?\n\n\r\n\x05\x05\x02\x02\x02\x01\x12\x04\xb5\x02\x02\x08\n\r\ + \n\x05\x05\x02\x02\x02\x02\x12\x04\xb5\x02\x0b\x0e\n+\n\x04\x05\x02\x02\ + \x03\x12\x04\xb7\x02\x02\x14\x1a\x1d\x20Is\x20the\x20symbol\x20written\ + \x20here?\n\n\r\n\x05\x05\x02\x02\x03\x01\x12\x04\xb7\x02\x02\r\n\r\n\ + \x05\x05\x02\x02\x03\x02\x12\x04\xb7\x02\x10\x13\n(\n\x04\x05\x02\x02\ + \x04\x12\x04\xb9\x02\x02\x13\x1a\x1a\x20Is\x20the\x20symbol\x20read\x20h\ + ere?\n\n\r\n\x05\x05\x02\x02\x04\x01\x12\x04\xb9\x02\x02\x0c\n\r\n\x05\ + \x05\x02\x02\x04\x02\x12\x04\xb9\x02\x0f\x12\n0\n\x04\x05\x02\x02\x05\ + \x12\x04\xbb\x02\x02\x13\x1a\"\x20Is\x20the\x20symbol\x20in\x20generated\ + \x20code?\n\n\r\n\x05\x05\x02\x02\x05\x01\x12\x04\xbb\x02\x02\x0b\n\r\n\ + \x05\x05\x02\x02\x05\x02\x12\x04\xbb\x02\x0e\x12\n+\n\x04\x05\x02\x02\ + \x06\x12\x04\xbd\x02\x02\x0e\x1a\x1d\x20Is\x20the\x20symbol\x20in\x20tes\ + t\x20code?\n\n\r\n\x05\x05\x02\x02\x06\x01\x12\x04\xbd\x02\x02\x06\n\r\n\ + \x05\x05\x02\x02\x06\x02\x12\x04\xbd\x02\t\r\n\x0c\n\x02\x05\x03\x12\x06\ + \xc0\x02\0\x9d\x03\x01\n\x0b\n\x03\x05\x03\x01\x12\x04\xc0\x02\x05\x0f\n\ + \x0b\n\x03\x05\x03\x03\x12\x04\xc1\x02\x02\x1c\n\x0c\n\x04\x05\x03\x03\ + \x02\x12\x04\xc1\x02\x02\x1c\n\x0c\n\x04\x05\x03\x02\0\x12\x04\xc3\x02\ + \x02\x1c\n\r\n\x05\x05\x03\x02\0\x01\x12\x04\xc3\x02\x02\x17\n\r\n\x05\ + \x05\x03\x02\0\x02\x12\x04\xc3\x02\x1a\x1b\n;\n\x04\x05\x03\x02\x01\x12\ + \x04\xc6\x02\x02\x0e\x1a-\x20Comment,\x20including\x20comment\x20markers\ + \x20and\x20text\n\n\r\n\x05\x05\x03\x02\x01\x01\x12\x04\xc6\x02\x02\t\n\ + \r\n\x05\x05\x03\x02\x01\x02\x12\x04\xc6\x02\x0c\r\n\x1b\n\x04\x05\x03\ + \x02\x02\x12\x04\xc9\x02\x02\x1b\x1a\r\x20`;`\x20`.`\x20`,`\n\n\r\n\x05\ + \x05\x03\x02\x02\x01\x12\x04\xc9\x02\x02\x16\n\r\n\x05\x05\x03\x02\x02\ + \x02\x12\x04\xc9\x02\x19\x1a\n2\n\x04\x05\x03\x02\x03\x12\x04\xcb\x02\ \x02\x19\x1a$\x20(),\x20{},\x20[]\x20when\x20used\x20syntactically\n\n\r\ - \n\x05\x05\x03\x02\x03\x01\x12\x04\x98\x02\x02\x14\n\r\n\x05\x05\x03\x02\ - \x03\x02\x12\x04\x98\x02\x17\x18\n5\n\x04\x05\x03\x02\x04\x12\x04\x9b\ + \n\x05\x05\x03\x02\x03\x01\x12\x04\xcb\x02\x02\x14\n\r\n\x05\x05\x03\x02\ + \x03\x02\x12\x04\xcb\x02\x17\x18\n5\n\x04\x05\x03\x02\x04\x12\x04\xce\ \x02\x02\x0e\x1a'\x20`if`,\x20`else`,\x20`return`,\x20`class`,\x20etc.\n\ - \n\r\n\x05\x05\x03\x02\x04\x01\x12\x04\x9b\x02\x02\t\n\r\n\x05\x05\x03\ - \x02\x04\x02\x12\x04\x9b\x02\x0c\r\n\x0c\n\x04\x05\x03\x02\x05\x12\x04\ - \x9c\x02\x02*\n\r\n\x05\x05\x03\x02\x05\x01\x12\x04\x9c\x02\x02\x13\n\r\ - \n\x05\x05\x03\x02\x05\x02\x12\x04\x9c\x02\x16\x17\n\r\n\x05\x05\x03\x02\ - \x05\x03\x12\x04\x9c\x02\x18)\n\x0e\n\x06\x05\x03\x02\x05\x03\x01\x12\ - \x04\x9c\x02\x19(\n\x1e\n\x04\x05\x03\x02\x06\x12\x04\x9f\x02\x02\x19\ + \n\r\n\x05\x05\x03\x02\x04\x01\x12\x04\xce\x02\x02\t\n\r\n\x05\x05\x03\ + \x02\x04\x02\x12\x04\xce\x02\x0c\r\n\x0c\n\x04\x05\x03\x02\x05\x12\x04\ + \xcf\x02\x02*\n\r\n\x05\x05\x03\x02\x05\x01\x12\x04\xcf\x02\x02\x13\n\r\ + \n\x05\x05\x03\x02\x05\x02\x12\x04\xcf\x02\x16\x17\n\r\n\x05\x05\x03\x02\ + \x05\x03\x12\x04\xcf\x02\x18)\n\x0e\n\x06\x05\x03\x02\x05\x03\x01\x12\ + \x04\xcf\x02\x19(\n\x1e\n\x04\x05\x03\x02\x06\x12\x04\xd2\x02\x02\x19\ \x1a\x10\x20`+`,\x20`*`,\x20etc.\n\n\r\n\x05\x05\x03\x02\x06\x01\x12\x04\ - \x9f\x02\x02\x14\n\r\n\x05\x05\x03\x02\x06\x02\x12\x04\x9f\x02\x17\x18\n\ - X\n\x04\x05\x03\x02\x07\x12\x04\xa2\x02\x02\x11\x1aJ\x20non-specific\x20\ + \xd2\x02\x02\x14\n\r\n\x05\x05\x03\x02\x06\x02\x12\x04\xd2\x02\x17\x18\n\ + X\n\x04\x05\x03\x02\x07\x12\x04\xd5\x02\x02\x11\x1aJ\x20non-specific\x20\ catch-all\x20for\x20any\x20identifier\x20not\x20better\x20described\x20e\ - lsewhere\n\n\r\n\x05\x05\x03\x02\x07\x01\x12\x04\xa2\x02\x02\x0c\n\r\n\ - \x05\x05\x03\x02\x07\x02\x12\x04\xa2\x02\x0f\x10\nN\n\x04\x05\x03\x02\ - \x08\x12\x04\xa4\x02\x02\x18\x1a@\x20Identifiers\x20builtin\x20to\x20the\ + lsewhere\n\n\r\n\x05\x05\x03\x02\x07\x01\x12\x04\xd5\x02\x02\x0c\n\r\n\ + \x05\x05\x03\x02\x07\x02\x12\x04\xd5\x02\x0f\x10\nN\n\x04\x05\x03\x02\ + \x08\x12\x04\xd7\x02\x02\x18\x1a@\x20Identifiers\x20builtin\x20to\x20the\ \x20language:\x20`min`,\x20`print`\x20in\x20Python.\n\n\r\n\x05\x05\x03\ - \x02\x08\x01\x12\x04\xa4\x02\x02\x13\n\r\n\x05\x05\x03\x02\x08\x02\x12\ - \x04\xa4\x02\x16\x17\n[\n\x04\x05\x03\x02\t\x12\x04\xa6\x02\x02\x15\x1aM\ + \x02\x08\x01\x12\x04\xd7\x02\x02\x13\n\r\n\x05\x05\x03\x02\x08\x02\x12\ + \x04\xd7\x02\x16\x17\n[\n\x04\x05\x03\x02\t\x12\x04\xd9\x02\x02\x15\x1aM\ \x20Identifiers\x20representing\x20`null`-like\x20values:\x20`None`\x20i\ n\x20Python,\x20`nil`\x20in\x20Go.\n\n\r\n\x05\x05\x03\x02\t\x01\x12\x04\ - \xa6\x02\x02\x10\n\r\n\x05\x05\x03\x02\t\x02\x12\x04\xa6\x02\x13\x14\n.\ - \n\x04\x05\x03\x02\n\x12\x04\xa8\x02\x02\x19\x1a\x20\x20`xyz`\x20in\x20`\ + \xd9\x02\x02\x10\n\r\n\x05\x05\x03\x02\t\x02\x12\x04\xd9\x02\x13\x14\n.\ + \n\x04\x05\x03\x02\n\x12\x04\xdb\x02\x02\x19\x1a\x20\x20`xyz`\x20in\x20`\ const\x20xyz\x20=\x20\"hello\"`\n\n\r\n\x05\x05\x03\x02\n\x01\x12\x04\ - \xa8\x02\x02\x14\n\r\n\x05\x05\x03\x02\n\x02\x12\x04\xa8\x02\x17\x18\n'\ - \n\x04\x05\x03\x02\x0b\x12\x04\xaa\x02\x02\x1f\x1a\x19\x20`var\x20X\x20=\ - \x20\"hello\"`\x20in\x20Go\n\n\r\n\x05\x05\x03\x02\x0b\x01\x12\x04\xaa\ - \x02\x02\x19\n\r\n\x05\x05\x03\x02\x0b\x02\x12\x04\xaa\x02\x1c\x1e\n3\n\ - \x04\x05\x03\x02\x0c\x12\x04\xac\x02\x02\x1b\x1a%\x20Parameter\x20defini\ - tion\x20and\x20references\n\n\r\n\x05\x05\x03\x02\x0c\x01\x12\x04\xac\ - \x02\x02\x15\n\r\n\x05\x05\x03\x02\x0c\x02\x12\x04\xac\x02\x18\x1a\nX\n\ - \x04\x05\x03\x02\r\x12\x04\xae\x02\x02\x17\x1aJ\x20Identifiers\x20for\ + \xdb\x02\x02\x14\n\r\n\x05\x05\x03\x02\n\x02\x12\x04\xdb\x02\x17\x18\n'\ + \n\x04\x05\x03\x02\x0b\x12\x04\xdd\x02\x02\x1f\x1a\x19\x20`var\x20X\x20=\ + \x20\"hello\"`\x20in\x20Go\n\n\r\n\x05\x05\x03\x02\x0b\x01\x12\x04\xdd\ + \x02\x02\x19\n\r\n\x05\x05\x03\x02\x0b\x02\x12\x04\xdd\x02\x1c\x1e\n3\n\ + \x04\x05\x03\x02\x0c\x12\x04\xdf\x02\x02\x1b\x1a%\x20Parameter\x20defini\ + tion\x20and\x20references\n\n\r\n\x05\x05\x03\x02\x0c\x01\x12\x04\xdf\ + \x02\x02\x15\n\r\n\x05\x05\x03\x02\x0c\x02\x12\x04\xdf\x02\x18\x1a\nX\n\ + \x04\x05\x03\x02\r\x12\x04\xe1\x02\x02\x17\x1aJ\x20Identifiers\x20for\ \x20variable\x20definitions\x20and\x20references\x20within\x20a\x20local\ - \x20scope\n\n\r\n\x05\x05\x03\x02\r\x01\x12\x04\xae\x02\x02\x11\n\r\n\ - \x05\x05\x03\x02\r\x02\x12\x04\xae\x02\x14\x16\nK\n\x04\x05\x03\x02\x0e\ - \x12\x04\xb0\x02\x02\x1a\x1a=\x20Identifiers\x20that\x20shadow\x20other\ + \x20scope\n\n\r\n\x05\x05\x03\x02\r\x01\x12\x04\xe1\x02\x02\x11\n\r\n\ + \x05\x05\x03\x02\r\x02\x12\x04\xe1\x02\x14\x16\nK\n\x04\x05\x03\x02\x0e\ + \x12\x04\xe3\x02\x02\x1a\x1a=\x20Identifiers\x20that\x20shadow\x20other\ \x20identifiers\x20in\x20an\x20outer\x20scope\n\n\r\n\x05\x05\x03\x02\ - \x0e\x01\x12\x04\xb0\x02\x02\x14\n\r\n\x05\x05\x03\x02\x0e\x02\x12\x04\ - \xb0\x02\x17\x19\n\xcd\x01\n\x04\x05\x03\x02\x0f\x12\x04\xb5\x02\x02\x1b\ + \x0e\x01\x12\x04\xe3\x02\x02\x14\n\r\n\x05\x05\x03\x02\x0e\x02\x12\x04\ + \xe3\x02\x17\x19\n\xcd\x01\n\x04\x05\x03\x02\x0f\x12\x04\xe8\x02\x02\x1b\ \x1a\xbe\x01\x20Identifier\x20representing\x20a\x20unit\x20of\x20code\ \x20abstraction\x20and/or\x20namespacing.\n\n\x20NOTE:\x20This\x20corres\ ponds\x20to\x20a\x20package\x20in\x20Go\x20and\x20JVM\x20languages,\n\ \x20and\x20a\x20module\x20in\x20languages\x20like\x20Python\x20and\x20Ja\ - vaScript.\n\n\r\n\x05\x05\x03\x02\x0f\x01\x12\x04\xb5\x02\x02\x15\n\r\n\ - \x05\x05\x03\x02\x0f\x02\x12\x04\xb5\x02\x18\x1a\n\x0c\n\x04\x05\x03\x02\ - \x10\x12\x04\xb6\x02\x02*\n\r\n\x05\x05\x03\x02\x10\x01\x12\x04\xb6\x02\ - \x02\x12\n\r\n\x05\x05\x03\x02\x10\x02\x12\x04\xb6\x02\x15\x17\n\r\n\x05\ - \x05\x03\x02\x10\x03\x12\x04\xb6\x02\x18)\n\x0e\n\x06\x05\x03\x02\x10\ - \x03\x01\x12\x04\xb6\x02\x19(\n4\n\x04\x05\x03\x02\x11\x12\x04\xb9\x02\ + vaScript.\n\n\r\n\x05\x05\x03\x02\x0f\x01\x12\x04\xe8\x02\x02\x15\n\r\n\ + \x05\x05\x03\x02\x0f\x02\x12\x04\xe8\x02\x18\x1a\n\x0c\n\x04\x05\x03\x02\ + \x10\x12\x04\xe9\x02\x02*\n\r\n\x05\x05\x03\x02\x10\x01\x12\x04\xe9\x02\ + \x02\x12\n\r\n\x05\x05\x03\x02\x10\x02\x12\x04\xe9\x02\x15\x17\n\r\n\x05\ + \x05\x03\x02\x10\x03\x12\x04\xe9\x02\x18)\n\x0e\n\x06\x05\x03\x02\x10\ + \x03\x01\x12\x04\xe9\x02\x19(\n4\n\x04\x05\x03\x02\x11\x12\x04\xec\x02\ \x02\x1a\x1a&\x20Function\x20references,\x20including\x20calls\n\n\r\n\ - \x05\x05\x03\x02\x11\x01\x12\x04\xb9\x02\x02\x14\n\r\n\x05\x05\x03\x02\ - \x11\x02\x12\x04\xb9\x02\x17\x19\n(\n\x04\x05\x03\x02\x12\x12\x04\xbb\ + \x05\x05\x03\x02\x11\x01\x12\x04\xec\x02\x02\x14\n\r\n\x05\x05\x03\x02\ + \x11\x02\x12\x04\xec\x02\x17\x19\n(\n\x04\x05\x03\x02\x12\x12\x04\xee\ \x02\x02$\x1a\x1a\x20Function\x20definition\x20only\n\n\r\n\x05\x05\x03\ - \x02\x12\x01\x12\x04\xbb\x02\x02\x1e\n\r\n\x05\x05\x03\x02\x12\x02\x12\ - \x04\xbb\x02!#\n7\n\x04\x05\x03\x02\x13\x12\x04\xbe\x02\x02\x17\x1a)\x20\ + \x02\x12\x01\x12\x04\xee\x02\x02\x1e\n\r\n\x05\x05\x03\x02\x12\x02\x12\ + \x04\xee\x02!#\n7\n\x04\x05\x03\x02\x13\x12\x04\xf1\x02\x02\x17\x1a)\x20\ Macro\x20references,\x20including\x20invocations\n\n\r\n\x05\x05\x03\x02\ - \x13\x01\x12\x04\xbe\x02\x02\x11\n\r\n\x05\x05\x03\x02\x13\x02\x12\x04\ - \xbe\x02\x14\x16\n%\n\x04\x05\x03\x02\x14\x12\x04\xc0\x02\x02!\x1a\x17\ + \x13\x01\x12\x04\xf1\x02\x02\x11\n\r\n\x05\x05\x03\x02\x13\x02\x12\x04\ + \xf1\x02\x14\x16\n%\n\x04\x05\x03\x02\x14\x12\x04\xf3\x02\x02!\x1a\x17\ \x20Macro\x20definition\x20only\n\n\r\n\x05\x05\x03\x02\x14\x01\x12\x04\ - \xc0\x02\x02\x1b\n\r\n\x05\x05\x03\x02\x14\x02\x12\x04\xc0\x02\x1e\x20\n\ - !\n\x04\x05\x03\x02\x15\x12\x04\xc3\x02\x02\x16\x1a\x13\x20non-builtin\ - \x20types\n\n\r\n\x05\x05\x03\x02\x15\x01\x12\x04\xc3\x02\x02\x10\n\r\n\ - \x05\x05\x03\x02\x15\x02\x12\x04\xc3\x02\x13\x15\nK\n\x04\x05\x03\x02\ - \x16\x12\x04\xc5\x02\x02\x1d\x1a=\x20builtin\x20types\x20only,\x20such\ + \xf3\x02\x02\x1b\n\r\n\x05\x05\x03\x02\x14\x02\x12\x04\xf3\x02\x1e\x20\n\ + !\n\x04\x05\x03\x02\x15\x12\x04\xf6\x02\x02\x16\x1a\x13\x20non-builtin\ + \x20types\n\n\r\n\x05\x05\x03\x02\x15\x01\x12\x04\xf6\x02\x02\x10\n\r\n\ + \x05\x05\x03\x02\x15\x02\x12\x04\xf6\x02\x13\x15\nK\n\x04\x05\x03\x02\ + \x16\x12\x04\xf8\x02\x02\x1d\x1a=\x20builtin\x20types\x20only,\x20such\ \x20as\x20`str`\x20for\x20Python\x20or\x20`int`\x20in\x20Go\n\n\r\n\x05\ - \x05\x03\x02\x16\x01\x12\x04\xc5\x02\x02\x17\n\r\n\x05\x05\x03\x02\x16\ - \x02\x12\x04\xc5\x02\x1a\x1c\n7\n\x04\x05\x03\x02\x17\x12\x04\xc8\x02\ + \x05\x03\x02\x16\x01\x12\x04\xf8\x02\x02\x17\n\r\n\x05\x05\x03\x02\x16\ + \x02\x12\x04\xf8\x02\x1a\x1c\n7\n\x04\x05\x03\x02\x17\x12\x04\xfb\x02\ \x02\x1b\x1a)\x20Python\x20decorators,\x20c-like\x20__attribute__\n\n\r\ - \n\x05\x05\x03\x02\x17\x01\x12\x04\xc8\x02\x02\x15\n\r\n\x05\x05\x03\x02\ - \x17\x02\x12\x04\xc8\x02\x18\x1a\n\x14\n\x04\x05\x03\x02\x18\x12\x04\xcb\ + \n\x05\x05\x03\x02\x17\x01\x12\x04\xfb\x02\x02\x15\n\r\n\x05\x05\x03\x02\ + \x17\x02\x12\x04\xfb\x02\x18\x1a\n\x14\n\x04\x05\x03\x02\x18\x12\x04\xfe\ \x02\x02\x13\x1a\x06\x20`\\b`\n\n\r\n\x05\x05\x03\x02\x18\x01\x12\x04\ - \xcb\x02\x02\r\n\r\n\x05\x05\x03\x02\x18\x02\x12\x04\xcb\x02\x10\x12\n\ - \x18\n\x04\x05\x03\x02\x19\x12\x04\xcd\x02\x02\x15\x1a\n\x20`*`,\x20`+`\ - \n\n\r\n\x05\x05\x03\x02\x19\x01\x12\x04\xcd\x02\x02\x0f\n\r\n\x05\x05\ - \x03\x02\x19\x02\x12\x04\xcd\x02\x12\x14\n\x13\n\x04\x05\x03\x02\x1a\x12\ - \x04\xcf\x02\x02\x15\x1a\x05\x20`.`\n\n\r\n\x05\x05\x03\x02\x1a\x01\x12\ - \x04\xcf\x02\x02\x0f\n\r\n\x05\x05\x03\x02\x1a\x02\x12\x04\xcf\x02\x12\ - \x14\n\"\n\x04\x05\x03\x02\x1b\x12\x04\xd1\x02\x02\x16\x1a\x14\x20`(`,\ - \x20`)`,\x20`[`,\x20`]`\n\n\r\n\x05\x05\x03\x02\x1b\x01\x12\x04\xd1\x02\ - \x02\x10\n\r\n\x05\x05\x03\x02\x1b\x02\x12\x04\xd1\x02\x13\x15\n\x18\n\ - \x04\x05\x03\x02\x1c\x12\x04\xd3\x02\x02\x11\x1a\n\x20`|`,\x20`-`\n\n\r\ - \n\x05\x05\x03\x02\x1c\x01\x12\x04\xd3\x02\x02\x0b\n\r\n\x05\x05\x03\x02\ - \x1c\x02\x12\x04\xd3\x02\x0e\x10\n0\n\x04\x05\x03\x02\x1d\x12\x04\xd6\ - \x02\x02\x15\x1a\"\x20Literal\x20strings:\x20\"Hello,\x20world!\"\n\n\r\ - \n\x05\x05\x03\x02\x1d\x01\x12\x04\xd6\x02\x02\x0f\n\r\n\x05\x05\x03\x02\ - \x1d\x02\x12\x04\xd6\x02\x12\x14\n-\n\x04\x05\x03\x02\x1e\x12\x04\xd8\ - \x02\x02\x1b\x1a\x1f\x20non-regex\x20escapes:\x20\"\\t\",\x20\"\\n\"\n\n\ - \r\n\x05\x05\x03\x02\x1e\x01\x12\x04\xd8\x02\x02\x15\n\r\n\x05\x05\x03\ - \x02\x1e\x02\x12\x04\xd8\x02\x18\x1a\n_\n\x04\x05\x03\x02\x1f\x12\x04\ - \xda\x02\x02\x1c\x1aQ\x20datetimes\x20within\x20strings,\x20special\x20w\ + \xfe\x02\x02\r\n\r\n\x05\x05\x03\x02\x18\x02\x12\x04\xfe\x02\x10\x12\n\ + \x18\n\x04\x05\x03\x02\x19\x12\x04\x80\x03\x02\x15\x1a\n\x20`*`,\x20`+`\ + \n\n\r\n\x05\x05\x03\x02\x19\x01\x12\x04\x80\x03\x02\x0f\n\r\n\x05\x05\ + \x03\x02\x19\x02\x12\x04\x80\x03\x12\x14\n\x13\n\x04\x05\x03\x02\x1a\x12\ + \x04\x82\x03\x02\x15\x1a\x05\x20`.`\n\n\r\n\x05\x05\x03\x02\x1a\x01\x12\ + \x04\x82\x03\x02\x0f\n\r\n\x05\x05\x03\x02\x1a\x02\x12\x04\x82\x03\x12\ + \x14\n\"\n\x04\x05\x03\x02\x1b\x12\x04\x84\x03\x02\x16\x1a\x14\x20`(`,\ + \x20`)`,\x20`[`,\x20`]`\n\n\r\n\x05\x05\x03\x02\x1b\x01\x12\x04\x84\x03\ + \x02\x10\n\r\n\x05\x05\x03\x02\x1b\x02\x12\x04\x84\x03\x13\x15\n\x18\n\ + \x04\x05\x03\x02\x1c\x12\x04\x86\x03\x02\x11\x1a\n\x20`|`,\x20`-`\n\n\r\ + \n\x05\x05\x03\x02\x1c\x01\x12\x04\x86\x03\x02\x0b\n\r\n\x05\x05\x03\x02\ + \x1c\x02\x12\x04\x86\x03\x0e\x10\n0\n\x04\x05\x03\x02\x1d\x12\x04\x89\ + \x03\x02\x15\x1a\"\x20Literal\x20strings:\x20\"Hello,\x20world!\"\n\n\r\ + \n\x05\x05\x03\x02\x1d\x01\x12\x04\x89\x03\x02\x0f\n\r\n\x05\x05\x03\x02\ + \x1d\x02\x12\x04\x89\x03\x12\x14\n-\n\x04\x05\x03\x02\x1e\x12\x04\x8b\ + \x03\x02\x1b\x1a\x1f\x20non-regex\x20escapes:\x20\"\\t\",\x20\"\\n\"\n\n\ + \r\n\x05\x05\x03\x02\x1e\x01\x12\x04\x8b\x03\x02\x15\n\r\n\x05\x05\x03\ + \x02\x1e\x02\x12\x04\x8b\x03\x18\x1a\n_\n\x04\x05\x03\x02\x1f\x12\x04\ + \x8d\x03\x02\x1c\x1aQ\x20datetimes\x20within\x20strings,\x20special\x20w\ ords\x20within\x20a\x20string,\x20`{}`\x20in\x20format\x20strings\n\n\r\ - \n\x05\x05\x03\x02\x1f\x01\x12\x04\xda\x02\x02\x16\n\r\n\x05\x05\x03\x02\ - \x1f\x02\x12\x04\xda\x02\x19\x1b\nG\n\x04\x05\x03\x02\x20\x12\x04\xdc\ - \x02\x02\x18\x1a9\x20\"key\"\x20in\x20{\x20\"key\":\x20\"value\"\x20},\ + \n\x05\x05\x03\x02\x1f\x01\x12\x04\x8d\x03\x02\x16\n\r\n\x05\x05\x03\x02\ + \x1f\x02\x12\x04\x8d\x03\x19\x1b\nG\n\x04\x05\x03\x02\x20\x12\x04\x8f\ + \x03\x02\x18\x1a9\x20\"key\"\x20in\x20{\x20\"key\":\x20\"value\"\x20},\ \x20useful\x20for\x20example\x20in\x20JSON\n\n\r\n\x05\x05\x03\x02\x20\ - \x01\x12\x04\xdc\x02\x02\x12\n\r\n\x05\x05\x03\x02\x20\x02\x12\x04\xdc\ - \x02\x15\x17\nV\n\x04\x05\x03\x02!\x12\x04\xde\x02\x02\x18\x1aH\x20'c'\ + \x01\x12\x04\x8f\x03\x02\x12\n\r\n\x05\x05\x03\x02\x20\x02\x12\x04\x8f\ + \x03\x15\x17\nV\n\x04\x05\x03\x02!\x12\x04\x91\x03\x02\x18\x1aH\x20'c'\ \x20or\x20similar,\x20in\x20languages\x20that\x20differentiate\x20string\ - s\x20and\x20characters\n\n\r\n\x05\x05\x03\x02!\x01\x12\x04\xde\x02\x02\ - \x12\n\r\n\x05\x05\x03\x02!\x02\x12\x04\xde\x02\x15\x17\n9\n\x04\x05\x03\ - \x02\"\x12\x04\xe0\x02\x02\x16\x1a+\x20Literal\x20numbers,\x20both\x20fl\ - oats\x20and\x20integers\n\n\r\n\x05\x05\x03\x02\"\x01\x12\x04\xe0\x02\ - \x02\x10\n\r\n\x05\x05\x03\x02\"\x02\x12\x04\xe0\x02\x13\x15\n\x1f\n\x04\ - \x05\x03\x02#\x12\x04\xe2\x02\x02\x16\x1a\x11\x20`true`,\x20`false`\n\n\ - \r\n\x05\x05\x03\x02#\x01\x12\x04\xe2\x02\x02\x10\n\r\n\x05\x05\x03\x02#\ - \x02\x12\x04\xe2\x02\x13\x15\n&\n\x04\x05\x03\x02$\x12\x04\xe5\x02\x02\ + s\x20and\x20characters\n\n\r\n\x05\x05\x03\x02!\x01\x12\x04\x91\x03\x02\ + \x12\n\r\n\x05\x05\x03\x02!\x02\x12\x04\x91\x03\x15\x17\n9\n\x04\x05\x03\ + \x02\"\x12\x04\x93\x03\x02\x16\x1a+\x20Literal\x20numbers,\x20both\x20fl\ + oats\x20and\x20integers\n\n\r\n\x05\x05\x03\x02\"\x01\x12\x04\x93\x03\ + \x02\x10\n\r\n\x05\x05\x03\x02\"\x02\x12\x04\x93\x03\x13\x15\n\x1f\n\x04\ + \x05\x03\x02#\x12\x04\x95\x03\x02\x16\x1a\x11\x20`true`,\x20`false`\n\n\ + \r\n\x05\x05\x03\x02#\x01\x12\x04\x95\x03\x02\x10\n\r\n\x05\x05\x03\x02#\ + \x02\x12\x04\x95\x03\x13\x15\n&\n\x04\x05\x03\x02$\x12\x04\x98\x03\x02\ \x0b\x1a\x18\x20Used\x20for\x20XML-like\x20tags\n\n\r\n\x05\x05\x03\x02$\ - \x01\x12\x04\xe5\x02\x02\x05\n\r\n\x05\x05\x03\x02$\x02\x12\x04\xe5\x02\ - \x08\n\n/\n\x04\x05\x03\x02%\x12\x04\xe7\x02\x02\x14\x1a!\x20Attribute\ + \x01\x12\x04\x98\x03\x02\x05\n\r\n\x05\x05\x03\x02$\x02\x12\x04\x98\x03\ + \x08\n\n/\n\x04\x05\x03\x02%\x12\x04\x9a\x03\x02\x14\x1a!\x20Attribute\ \x20name\x20in\x20XML-like\x20tags\n\n\r\n\x05\x05\x03\x02%\x01\x12\x04\ - \xe7\x02\x02\x0e\n\r\n\x05\x05\x03\x02%\x02\x12\x04\xe7\x02\x11\x13\n,\n\ - \x04\x05\x03\x02&\x12\x04\xe9\x02\x02\x14\x1a\x1e\x20Delimiters\x20for\ - \x20XML-like\x20tags\n\n\r\n\x05\x05\x03\x02&\x01\x12\x04\xe9\x02\x02\ - \x0e\n\r\n\x05\x05\x03\x02&\x02\x12\x04\xe9\x02\x11\x13\n\xf9\x01\n\x02\ - \x04\t\x12\x06\xf1\x02\0\xc0\x03\x01\x1a\xea\x01\x20Occurrence\x20associ\ + \x9a\x03\x02\x0e\n\r\n\x05\x05\x03\x02%\x02\x12\x04\x9a\x03\x11\x13\n,\n\ + \x04\x05\x03\x02&\x12\x04\x9c\x03\x02\x14\x1a\x1e\x20Delimiters\x20for\ + \x20XML-like\x20tags\n\n\r\n\x05\x05\x03\x02&\x01\x12\x04\x9c\x03\x02\ + \x0e\n\r\n\x05\x05\x03\x02&\x02\x12\x04\x9c\x03\x11\x13\n\xf9\x01\n\x02\ + \x04\t\x12\x06\xa4\x03\0\xf3\x03\x01\x1a\xea\x01\x20Occurrence\x20associ\ ates\x20a\x20source\x20position\x20with\x20a\x20symbol\x20and/or\x20high\ lighting\n\x20information.\n\n\x20If\x20possible,\x20indexers\x20should\ \x20try\x20to\x20bundle\x20logically\x20related\x20information\n\x20acro\ ss\x20occurrences\x20into\x20a\x20single\x20occurrence\x20to\x20reduce\ - \x20payload\x20sizes.\n\n\x0b\n\x03\x04\t\x01\x12\x04\xf1\x02\x08\x12\n\ - \xc6\x07\n\x04\x04\t\x02\0\x12\x04\x84\x03\x02\x1b\x1a\xb7\x07\x20Source\ + \x20payload\x20sizes.\n\n\x0b\n\x03\x04\t\x01\x12\x04\xa4\x03\x08\x12\n\ + \xc6\x07\n\x04\x04\t\x02\0\x12\x04\xb7\x03\x02\x1b\x1a\xb7\x07\x20Source\ \x20position\x20of\x20this\x20occurrence.\x20Must\x20be\x20exactly\x20th\ ree\x20or\x20four\n\x20elements:\n\n\x20-\x20Four\x20elements:\x20`[star\ tLine,\x20startCharacter,\x20endLine,\x20endCharacter]`\n\x20-\x20Three\ @@ -4013,21 +4360,21 @@ static file_descriptor_proto_data: &'static [u8] = b"\ \x20`repeated\x20int32`\x20encoding\x20is\x20admittedly\x20more\x20embar\ rassing\x20to\n\x20work\x20with\x20in\x20some\x20programming\x20language\ s\x20but\x20we\x20hope\x20the\x20performance\n\x20improvements\x20make\ - \x20up\x20for\x20it.\n\n\r\n\x05\x04\t\x02\0\x04\x12\x04\x84\x03\x02\n\n\ - \r\n\x05\x04\t\x02\0\x05\x12\x04\x84\x03\x0b\x10\n\r\n\x05\x04\t\x02\0\ - \x01\x12\x04\x84\x03\x11\x16\n\r\n\x05\x04\t\x02\0\x03\x12\x04\x84\x03\ - \x19\x1a\n\x8a\x01\n\x04\x04\t\x02\x01\x12\x04\x87\x03\x02\x14\x1a|\x20(\ + \x20up\x20for\x20it.\n\n\r\n\x05\x04\t\x02\0\x04\x12\x04\xb7\x03\x02\n\n\ + \r\n\x05\x04\t\x02\0\x05\x12\x04\xb7\x03\x0b\x10\n\r\n\x05\x04\t\x02\0\ + \x01\x12\x04\xb7\x03\x11\x16\n\r\n\x05\x04\t\x02\0\x03\x12\x04\xb7\x03\ + \x19\x1a\n\x8a\x01\n\x04\x04\t\x02\x01\x12\x04\xba\x03\x02\x14\x1a|\x20(\ optional)\x20The\x20symbol\x20that\x20appears\x20at\x20this\x20position.\ \x20See\n\x20`SymbolInformation.symbol`\x20for\x20how\x20to\x20format\ - \x20symbols\x20as\x20strings.\n\n\r\n\x05\x04\t\x02\x01\x05\x12\x04\x87\ - \x03\x02\x08\n\r\n\x05\x04\t\x02\x01\x01\x12\x04\x87\x03\t\x0f\n\r\n\x05\ - \x04\t\x02\x01\x03\x12\x04\x87\x03\x12\x13\n\x97\x01\n\x04\x04\t\x02\x02\ - \x12\x04\x8a\x03\x02\x19\x1a\x88\x01\x20(optional)\x20Bitset\x20containi\ + \x20symbols\x20as\x20strings.\n\n\r\n\x05\x04\t\x02\x01\x05\x12\x04\xba\ + \x03\x02\x08\n\r\n\x05\x04\t\x02\x01\x01\x12\x04\xba\x03\t\x0f\n\r\n\x05\ + \x04\t\x02\x01\x03\x12\x04\xba\x03\x12\x13\n\x97\x01\n\x04\x04\t\x02\x02\ + \x12\x04\xbd\x03\x02\x19\x1a\x88\x01\x20(optional)\x20Bitset\x20containi\ ng\x20`SymbolRole`s\x20in\x20this\x20occurrence.\n\x20See\x20`SymbolRole\ `'s\x20documentation\x20for\x20how\x20to\x20read\x20and\x20write\x20this\ - \x20field.\n\n\r\n\x05\x04\t\x02\x02\x05\x12\x04\x8a\x03\x02\x07\n\r\n\ - \x05\x04\t\x02\x02\x01\x12\x04\x8a\x03\x08\x14\n\r\n\x05\x04\t\x02\x02\ - \x03\x12\x04\x8a\x03\x17\x18\n\xf1\x03\n\x04\x04\t\x02\x03\x12\x04\x93\ + \x20field.\n\n\r\n\x05\x04\t\x02\x02\x05\x12\x04\xbd\x03\x02\x07\n\r\n\ + \x05\x04\t\x02\x02\x01\x12\x04\xbd\x03\x08\x14\n\r\n\x05\x04\t\x02\x02\ + \x03\x12\x04\xbd\x03\x17\x18\n\xf1\x03\n\x04\x04\t\x02\x03\x12\x04\xc6\ \x03\x02-\x1a\xe2\x03\x20(optional)\x20CommonMark-formatted\x20documenta\ tion\x20for\x20this\x20specific\x20range.\x20If\n\x20empty,\x20the\x20`S\ ymbol.documentation`\x20field\x20is\x20used\x20instead.\x20One\x20exampl\ @@ -4038,19 +4385,19 @@ static file_descriptor_proto_data: &'static [u8] = b"\ h\x20as\x20`List`).\n\n\x20This\x20field\x20can\x20also\x20be\ \x20used\x20for\x20dynamically\x20or\x20gradually\x20typed\x20languages,\ \n\x20which\x20commonly\x20allow\x20for\x20type-changing\x20assignment.\ - \n\n\r\n\x05\x04\t\x02\x03\x04\x12\x04\x93\x03\x02\n\n\r\n\x05\x04\t\x02\ - \x03\x05\x12\x04\x93\x03\x0b\x11\n\r\n\x05\x04\t\x02\x03\x01\x12\x04\x93\ - \x03\x12(\n\r\n\x05\x04\t\x02\x03\x03\x12\x04\x93\x03+,\nX\n\x04\x04\t\ - \x02\x04\x12\x04\x95\x03\x02\x1d\x1aJ\x20(optional)\x20What\x20syntax\ + \n\n\r\n\x05\x04\t\x02\x03\x04\x12\x04\xc6\x03\x02\n\n\r\n\x05\x04\t\x02\ + \x03\x05\x12\x04\xc6\x03\x0b\x11\n\r\n\x05\x04\t\x02\x03\x01\x12\x04\xc6\ + \x03\x12(\n\r\n\x05\x04\t\x02\x03\x03\x12\x04\xc6\x03+,\nX\n\x04\x04\t\ + \x02\x04\x12\x04\xc8\x03\x02\x1d\x1aJ\x20(optional)\x20What\x20syntax\ \x20highlighting\x20class\x20should\x20be\x20used\x20for\x20this\x20rang\ - e?\n\n\r\n\x05\x04\t\x02\x04\x06\x12\x04\x95\x03\x02\x0c\n\r\n\x05\x04\t\ - \x02\x04\x01\x12\x04\x95\x03\r\x18\n\r\n\x05\x04\t\x02\x04\x03\x12\x04\ - \x95\x03\x1b\x1c\nW\n\x04\x04\t\x02\x05\x12\x04\x97\x03\x02&\x1aI\x20(op\ + e?\n\n\r\n\x05\x04\t\x02\x04\x06\x12\x04\xc8\x03\x02\x0c\n\r\n\x05\x04\t\ + \x02\x04\x01\x12\x04\xc8\x03\r\x18\n\r\n\x05\x04\t\x02\x04\x03\x12\x04\ + \xc8\x03\x1b\x1c\nW\n\x04\x04\t\x02\x05\x12\x04\xca\x03\x02&\x1aI\x20(op\ tional)\x20Diagnostics\x20that\x20have\x20been\x20reported\x20for\x20thi\ - s\x20specific\x20range.\n\n\r\n\x05\x04\t\x02\x05\x04\x12\x04\x97\x03\ - \x02\n\n\r\n\x05\x04\t\x02\x05\x06\x12\x04\x97\x03\x0b\x15\n\r\n\x05\x04\ - \t\x02\x05\x01\x12\x04\x97\x03\x16!\n\r\n\x05\x04\t\x02\x05\x03\x12\x04\ - \x97\x03$%\n\x80\x0c\n\x04\x04\t\x02\x06\x12\x04\xbf\x03\x02%\x1a\xf1\ + s\x20specific\x20range.\n\n\r\n\x05\x04\t\x02\x05\x04\x12\x04\xca\x03\ + \x02\n\n\r\n\x05\x04\t\x02\x05\x06\x12\x04\xca\x03\x0b\x15\n\r\n\x05\x04\ + \t\x02\x05\x01\x12\x04\xca\x03\x16!\n\r\n\x05\x04\t\x02\x05\x03\x12\x04\ + \xca\x03$%\n\x80\x0c\n\x04\x04\t\x02\x06\x12\x04\xf2\x03\x02%\x1a\xf1\ \x0b\x20(optional)\x20Using\x20the\x20same\x20encoding\x20as\x20the\x20s\ ibling\x20`range`\x20field,\x20source\n\x20position\x20of\x20the\x20near\ est\x20non-trivial\x20enclosing\x20AST\x20node.\x20This\x20range\x20must\ @@ -4090,55 +4437,55 @@ static file_descriptor_proto_data: &'static [u8] = b"\ \x20^^^\x20enclosing_range\n\x20const\x20b\x20=\x20a.b(41).f(42).g(43)\n\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20^\x20range\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20^^^^^^^^^^^^\ - ^\x20enclosing_range\n\x20```\n\n\r\n\x05\x04\t\x02\x06\x04\x12\x04\xbf\ - \x03\x02\n\n\r\n\x05\x04\t\x02\x06\x05\x12\x04\xbf\x03\x0b\x10\n\r\n\x05\ - \x04\t\x02\x06\x01\x12\x04\xbf\x03\x11\x20\n\r\n\x05\x04\t\x02\x06\x03\ - \x12\x04\xbf\x03#$\nw\n\x02\x04\n\x12\x06\xc4\x03\0\xcf\x03\x01\x1ai\x20\ + ^\x20enclosing_range\n\x20```\n\n\r\n\x05\x04\t\x02\x06\x04\x12\x04\xf2\ + \x03\x02\n\n\r\n\x05\x04\t\x02\x06\x05\x12\x04\xf2\x03\x0b\x10\n\r\n\x05\ + \x04\t\x02\x06\x01\x12\x04\xf2\x03\x11\x20\n\r\n\x05\x04\t\x02\x06\x03\ + \x12\x04\xf2\x03#$\nw\n\x02\x04\n\x12\x06\xf7\x03\0\x82\x04\x01\x1ai\x20\ Represents\x20a\x20diagnostic,\x20such\x20as\x20a\x20compiler\x20error\ \x20or\x20warning,\x20which\x20should\x20be\n\x20reported\x20for\x20a\ - \x20document.\n\n\x0b\n\x03\x04\n\x01\x12\x04\xc4\x03\x08\x12\nW\n\x04\ - \x04\n\x02\0\x12\x04\xc6\x03\x02\x18\x1aI\x20Should\x20this\x20diagnosti\ + \x20document.\n\n\x0b\n\x03\x04\n\x01\x12\x04\xf7\x03\x08\x12\nW\n\x04\ + \x04\n\x02\0\x12\x04\xf9\x03\x02\x18\x1aI\x20Should\x20this\x20diagnosti\ c\x20be\x20reported\x20as\x20an\x20error,\x20warning,\x20info,\x20or\x20\ - hint?\n\n\r\n\x05\x04\n\x02\0\x06\x12\x04\xc6\x03\x02\n\n\r\n\x05\x04\n\ - \x02\0\x01\x12\x04\xc6\x03\x0b\x13\n\r\n\x05\x04\n\x02\0\x03\x12\x04\xc6\ - \x03\x16\x17\n]\n\x04\x04\n\x02\x01\x12\x04\xc8\x03\x02\x12\x1aO\x20(opt\ + hint?\n\n\r\n\x05\x04\n\x02\0\x06\x12\x04\xf9\x03\x02\n\n\r\n\x05\x04\n\ + \x02\0\x01\x12\x04\xf9\x03\x0b\x13\n\r\n\x05\x04\n\x02\0\x03\x12\x04\xf9\ + \x03\x16\x17\n]\n\x04\x04\n\x02\x01\x12\x04\xfb\x03\x02\x12\x1aO\x20(opt\ ional)\x20Code\x20of\x20this\x20diagnostic,\x20which\x20might\x20appear\ \x20in\x20the\x20user\x20interface.\n\n\r\n\x05\x04\n\x02\x01\x05\x12\ - \x04\xc8\x03\x02\x08\n\r\n\x05\x04\n\x02\x01\x01\x12\x04\xc8\x03\t\r\n\r\ - \n\x05\x04\n\x02\x01\x03\x12\x04\xc8\x03\x10\x11\n+\n\x04\x04\n\x02\x02\ - \x12\x04\xca\x03\x02\x15\x1a\x1d\x20Message\x20of\x20this\x20diagnostic.\ - \n\n\r\n\x05\x04\n\x02\x02\x05\x12\x04\xca\x03\x02\x08\n\r\n\x05\x04\n\ - \x02\x02\x01\x12\x04\xca\x03\t\x10\n\r\n\x05\x04\n\x02\x02\x03\x12\x04\ - \xca\x03\x13\x14\n~\n\x04\x04\n\x02\x03\x12\x04\xcd\x03\x02\x14\x1ap\x20\ + \x04\xfb\x03\x02\x08\n\r\n\x05\x04\n\x02\x01\x01\x12\x04\xfb\x03\t\r\n\r\ + \n\x05\x04\n\x02\x01\x03\x12\x04\xfb\x03\x10\x11\n+\n\x04\x04\n\x02\x02\ + \x12\x04\xfd\x03\x02\x15\x1a\x1d\x20Message\x20of\x20this\x20diagnostic.\ + \n\n\r\n\x05\x04\n\x02\x02\x05\x12\x04\xfd\x03\x02\x08\n\r\n\x05\x04\n\ + \x02\x02\x01\x12\x04\xfd\x03\t\x10\n\r\n\x05\x04\n\x02\x02\x03\x12\x04\ + \xfd\x03\x13\x14\n~\n\x04\x04\n\x02\x03\x12\x04\x80\x04\x02\x14\x1ap\x20\ (optional)\x20Human-readable\x20string\x20describing\x20the\x20source\ \x20of\x20this\x20diagnostic,\x20e.g.\n\x20'typescript'\x20or\x20'super\ - \x20lint'.\n\n\r\n\x05\x04\n\x02\x03\x05\x12\x04\xcd\x03\x02\x08\n\r\n\ - \x05\x04\n\x02\x03\x01\x12\x04\xcd\x03\t\x0f\n\r\n\x05\x04\n\x02\x03\x03\ - \x12\x04\xcd\x03\x12\x13\n\x0c\n\x04\x04\n\x02\x04\x12\x04\xce\x03\x02\"\ - \n\r\n\x05\x04\n\x02\x04\x04\x12\x04\xce\x03\x02\n\n\r\n\x05\x04\n\x02\ - \x04\x06\x12\x04\xce\x03\x0b\x18\n\r\n\x05\x04\n\x02\x04\x01\x12\x04\xce\ - \x03\x19\x1d\n\r\n\x05\x04\n\x02\x04\x03\x12\x04\xce\x03\x20!\n\x0c\n\ - \x02\x05\x04\x12\x06\xd1\x03\0\xd7\x03\x01\n\x0b\n\x03\x05\x04\x01\x12\ - \x04\xd1\x03\x05\r\n\x0c\n\x04\x05\x04\x02\0\x12\x04\xd2\x03\x02\x1a\n\r\ - \n\x05\x05\x04\x02\0\x01\x12\x04\xd2\x03\x02\x15\n\r\n\x05\x05\x04\x02\0\ - \x02\x12\x04\xd2\x03\x18\x19\n\x0c\n\x04\x05\x04\x02\x01\x12\x04\xd3\x03\ - \x02\x0c\n\r\n\x05\x05\x04\x02\x01\x01\x12\x04\xd3\x03\x02\x07\n\r\n\x05\ - \x05\x04\x02\x01\x02\x12\x04\xd3\x03\n\x0b\n\x0c\n\x04\x05\x04\x02\x02\ - \x12\x04\xd4\x03\x02\x0e\n\r\n\x05\x05\x04\x02\x02\x01\x12\x04\xd4\x03\ - \x02\t\n\r\n\x05\x05\x04\x02\x02\x02\x12\x04\xd4\x03\x0c\r\n\x0c\n\x04\ - \x05\x04\x02\x03\x12\x04\xd5\x03\x02\x12\n\r\n\x05\x05\x04\x02\x03\x01\ - \x12\x04\xd5\x03\x02\r\n\r\n\x05\x05\x04\x02\x03\x02\x12\x04\xd5\x03\x10\ - \x11\n\x0c\n\x04\x05\x04\x02\x04\x12\x04\xd6\x03\x02\x0b\n\r\n\x05\x05\ - \x04\x02\x04\x01\x12\x04\xd6\x03\x02\x06\n\r\n\x05\x05\x04\x02\x04\x02\ - \x12\x04\xd6\x03\t\n\n\x0c\n\x02\x05\x05\x12\x06\xd9\x03\0\xdd\x03\x01\n\ - \x0b\n\x03\x05\x05\x01\x12\x04\xd9\x03\x05\x12\n\x0c\n\x04\x05\x05\x02\0\ - \x12\x04\xda\x03\x02\x1f\n\r\n\x05\x05\x05\x02\0\x01\x12\x04\xda\x03\x02\ - \x1a\n\r\n\x05\x05\x05\x02\0\x02\x12\x04\xda\x03\x1d\x1e\n\x0c\n\x04\x05\ - \x05\x02\x01\x12\x04\xdb\x03\x02\x12\n\r\n\x05\x05\x05\x02\x01\x01\x12\ - \x04\xdb\x03\x02\r\n\r\n\x05\x05\x05\x02\x01\x02\x12\x04\xdb\x03\x10\x11\ - \n\x0c\n\x04\x05\x05\x02\x02\x12\x04\xdc\x03\x02\x11\n\r\n\x05\x05\x05\ - \x02\x02\x01\x12\x04\xdc\x03\x02\x0c\n\r\n\x05\x05\x05\x02\x02\x02\x12\ - \x04\xdc\x03\x0f\x10\n\xd6\x03\n\x02\x05\x06\x12\x06\xe5\x03\0\xcb\x04\ + \x20lint'.\n\n\r\n\x05\x04\n\x02\x03\x05\x12\x04\x80\x04\x02\x08\n\r\n\ + \x05\x04\n\x02\x03\x01\x12\x04\x80\x04\t\x0f\n\r\n\x05\x04\n\x02\x03\x03\ + \x12\x04\x80\x04\x12\x13\n\x0c\n\x04\x04\n\x02\x04\x12\x04\x81\x04\x02\"\ + \n\r\n\x05\x04\n\x02\x04\x04\x12\x04\x81\x04\x02\n\n\r\n\x05\x04\n\x02\ + \x04\x06\x12\x04\x81\x04\x0b\x18\n\r\n\x05\x04\n\x02\x04\x01\x12\x04\x81\ + \x04\x19\x1d\n\r\n\x05\x04\n\x02\x04\x03\x12\x04\x81\x04\x20!\n\x0c\n\ + \x02\x05\x04\x12\x06\x84\x04\0\x8a\x04\x01\n\x0b\n\x03\x05\x04\x01\x12\ + \x04\x84\x04\x05\r\n\x0c\n\x04\x05\x04\x02\0\x12\x04\x85\x04\x02\x1a\n\r\ + \n\x05\x05\x04\x02\0\x01\x12\x04\x85\x04\x02\x15\n\r\n\x05\x05\x04\x02\0\ + \x02\x12\x04\x85\x04\x18\x19\n\x0c\n\x04\x05\x04\x02\x01\x12\x04\x86\x04\ + \x02\x0c\n\r\n\x05\x05\x04\x02\x01\x01\x12\x04\x86\x04\x02\x07\n\r\n\x05\ + \x05\x04\x02\x01\x02\x12\x04\x86\x04\n\x0b\n\x0c\n\x04\x05\x04\x02\x02\ + \x12\x04\x87\x04\x02\x0e\n\r\n\x05\x05\x04\x02\x02\x01\x12\x04\x87\x04\ + \x02\t\n\r\n\x05\x05\x04\x02\x02\x02\x12\x04\x87\x04\x0c\r\n\x0c\n\x04\ + \x05\x04\x02\x03\x12\x04\x88\x04\x02\x12\n\r\n\x05\x05\x04\x02\x03\x01\ + \x12\x04\x88\x04\x02\r\n\r\n\x05\x05\x04\x02\x03\x02\x12\x04\x88\x04\x10\ + \x11\n\x0c\n\x04\x05\x04\x02\x04\x12\x04\x89\x04\x02\x0b\n\r\n\x05\x05\ + \x04\x02\x04\x01\x12\x04\x89\x04\x02\x06\n\r\n\x05\x05\x04\x02\x04\x02\ + \x12\x04\x89\x04\t\n\n\x0c\n\x02\x05\x05\x12\x06\x8c\x04\0\x90\x04\x01\n\ + \x0b\n\x03\x05\x05\x01\x12\x04\x8c\x04\x05\x12\n\x0c\n\x04\x05\x05\x02\0\ + \x12\x04\x8d\x04\x02\x1f\n\r\n\x05\x05\x05\x02\0\x01\x12\x04\x8d\x04\x02\ + \x1a\n\r\n\x05\x05\x05\x02\0\x02\x12\x04\x8d\x04\x1d\x1e\n\x0c\n\x04\x05\ + \x05\x02\x01\x12\x04\x8e\x04\x02\x12\n\r\n\x05\x05\x05\x02\x01\x01\x12\ + \x04\x8e\x04\x02\r\n\r\n\x05\x05\x05\x02\x01\x02\x12\x04\x8e\x04\x10\x11\ + \n\x0c\n\x04\x05\x05\x02\x02\x12\x04\x8f\x04\x02\x11\n\r\n\x05\x05\x05\ + \x02\x02\x01\x12\x04\x8f\x04\x02\x0c\n\r\n\x05\x05\x05\x02\x02\x02\x12\ + \x04\x8f\x04\x0f\x10\n\xd6\x03\n\x02\x05\x06\x12\x06\x98\x04\0\xfe\x04\ \x01\x1a\xc7\x03\x20Language\x20standardises\x20names\x20of\x20common\ \x20programming\x20languages\x20that\x20can\x20be\x20used\n\x20for\x20th\ e\x20`Document.language`\x20field.\x20The\x20primary\x20purpose\x20of\ @@ -4149,209 +4496,209 @@ static file_descriptor_proto_data: &'static [u8] = b"\ his\x20enum\x20and\x20other\x20names\x20such\x20as\x20\"cpp\"\x20are\x20\ incompatible.\n\x20Feel\x20free\x20to\x20send\x20a\x20pull-request\x20to\ \x20add\x20missing\x20programming\x20languages.\n\n\x0b\n\x03\x05\x06\ - \x01\x12\x04\xe5\x03\x05\r\n\x0c\n\x04\x05\x06\x02\0\x12\x04\xe6\x03\x02\ - \x1a\n\r\n\x05\x05\x06\x02\0\x01\x12\x04\xe6\x03\x02\x15\n\r\n\x05\x05\ - \x06\x02\0\x02\x12\x04\xe6\x03\x18\x19\n\x0c\n\x04\x05\x06\x02\x01\x12\ - \x04\xe7\x03\x02\x0c\n\r\n\x05\x05\x06\x02\x01\x01\x12\x04\xe7\x03\x02\ - \x06\n\r\n\x05\x05\x06\x02\x01\x02\x12\x04\xe7\x03\t\x0b\n\x0c\n\x04\x05\ - \x06\x02\x02\x12\x04\xe8\x03\x02\x0b\n\r\n\x05\x05\x06\x02\x02\x01\x12\ - \x04\xe8\x03\x02\x05\n\r\n\x05\x05\x06\x02\x02\x02\x12\x04\xe8\x03\x08\n\ - \n\x0c\n\x04\x05\x06\x02\x03\x12\x04\xe9\x03\x02\x0b\n\r\n\x05\x05\x06\ - \x02\x03\x01\x12\x04\xe9\x03\x02\x05\n\r\n\x05\x05\x06\x02\x03\x02\x12\ - \x04\xe9\x03\x08\n\n\x0c\n\x04\x05\x06\x02\x04\x12\x04\xea\x03\x02\x0c\n\ - \r\n\x05\x05\x06\x02\x04\x01\x12\x04\xea\x03\x02\x06\n\r\n\x05\x05\x06\ - \x02\x04\x02\x12\x04\xea\x03\t\x0b\n\x0c\n\x04\x05\x06\x02\x05\x12\x04\ - \xeb\x03\x02\x10\n\r\n\x05\x05\x06\x02\x05\x01\x12\x04\xeb\x03\x02\n\n\r\ - \n\x05\x05\x06\x02\x05\x02\x12\x04\xeb\x03\r\x0f\n\x0c\n\x04\x05\x06\x02\ - \x06\x12\x04\xec\x03\x02\x10\n\r\n\x05\x05\x06\x02\x06\x01\x12\x04\xec\ - \x03\x02\n\n\r\n\x05\x05\x06\x02\x06\x02\x12\x04\xec\x03\r\x0f\n\x0c\n\ - \x04\x05\x06\x02\x07\x12\x04\xed\x03\x02\x0b\n\r\n\x05\x05\x06\x02\x07\ - \x01\x12\x04\xed\x03\x02\x05\n\r\n\x05\x05\x06\x02\x07\x02\x12\x04\xed\ - \x03\x08\n\n\x0c\n\x04\x05\x06\x02\x08\x12\x04\xee\x03\x02\x0b\n\r\n\x05\ - \x05\x06\x02\x08\x01\x12\x04\xee\x03\x02\x05\n\r\n\x05\x05\x06\x02\x08\ - \x02\x12\x04\xee\x03\x08\n\n\x0c\n\x04\x05\x06\x02\t\x12\x04\xef\x03\x02\ - \x0e\n\r\n\x05\x05\x06\x02\t\x01\x12\x04\xef\x03\x02\x08\n\r\n\x05\x05\ - \x06\x02\t\x02\x12\x04\xef\x03\x0b\r\n\x0c\n\x04\x05\x06\x02\n\x12\x04\ - \xf0\x03\x02\t\n\r\n\x05\x05\x06\x02\n\x01\x12\x04\xf0\x03\x02\x03\n\r\n\ - \x05\x05\x06\x02\n\x02\x12\x04\xf0\x03\x06\x08\n\x0c\n\x04\x05\x06\x02\ - \x0b\x12\x04\xf1\x03\x02\r\n\r\n\x05\x05\x06\x02\x0b\x01\x12\x04\xf1\x03\ - \x02\x07\n\r\n\x05\x05\x06\x02\x0b\x02\x12\x04\xf1\x03\n\x0c\nH\n\x04\ - \x05\x06\x02\x0c\x12\x04\xf2\x03\x02\x0b\":\x20C++\x20(the\x20name\x20\"\ + \x01\x12\x04\x98\x04\x05\r\n\x0c\n\x04\x05\x06\x02\0\x12\x04\x99\x04\x02\ + \x1a\n\r\n\x05\x05\x06\x02\0\x01\x12\x04\x99\x04\x02\x15\n\r\n\x05\x05\ + \x06\x02\0\x02\x12\x04\x99\x04\x18\x19\n\x0c\n\x04\x05\x06\x02\x01\x12\ + \x04\x9a\x04\x02\x0c\n\r\n\x05\x05\x06\x02\x01\x01\x12\x04\x9a\x04\x02\ + \x06\n\r\n\x05\x05\x06\x02\x01\x02\x12\x04\x9a\x04\t\x0b\n\x0c\n\x04\x05\ + \x06\x02\x02\x12\x04\x9b\x04\x02\x0b\n\r\n\x05\x05\x06\x02\x02\x01\x12\ + \x04\x9b\x04\x02\x05\n\r\n\x05\x05\x06\x02\x02\x02\x12\x04\x9b\x04\x08\n\ + \n\x0c\n\x04\x05\x06\x02\x03\x12\x04\x9c\x04\x02\x0b\n\r\n\x05\x05\x06\ + \x02\x03\x01\x12\x04\x9c\x04\x02\x05\n\r\n\x05\x05\x06\x02\x03\x02\x12\ + \x04\x9c\x04\x08\n\n\x0c\n\x04\x05\x06\x02\x04\x12\x04\x9d\x04\x02\x0c\n\ + \r\n\x05\x05\x06\x02\x04\x01\x12\x04\x9d\x04\x02\x06\n\r\n\x05\x05\x06\ + \x02\x04\x02\x12\x04\x9d\x04\t\x0b\n\x0c\n\x04\x05\x06\x02\x05\x12\x04\ + \x9e\x04\x02\x10\n\r\n\x05\x05\x06\x02\x05\x01\x12\x04\x9e\x04\x02\n\n\r\ + \n\x05\x05\x06\x02\x05\x02\x12\x04\x9e\x04\r\x0f\n\x0c\n\x04\x05\x06\x02\ + \x06\x12\x04\x9f\x04\x02\x10\n\r\n\x05\x05\x06\x02\x06\x01\x12\x04\x9f\ + \x04\x02\n\n\r\n\x05\x05\x06\x02\x06\x02\x12\x04\x9f\x04\r\x0f\n\x0c\n\ + \x04\x05\x06\x02\x07\x12\x04\xa0\x04\x02\x0b\n\r\n\x05\x05\x06\x02\x07\ + \x01\x12\x04\xa0\x04\x02\x05\n\r\n\x05\x05\x06\x02\x07\x02\x12\x04\xa0\ + \x04\x08\n\n\x0c\n\x04\x05\x06\x02\x08\x12\x04\xa1\x04\x02\x0b\n\r\n\x05\ + \x05\x06\x02\x08\x01\x12\x04\xa1\x04\x02\x05\n\r\n\x05\x05\x06\x02\x08\ + \x02\x12\x04\xa1\x04\x08\n\n\x0c\n\x04\x05\x06\x02\t\x12\x04\xa2\x04\x02\ + \x0e\n\r\n\x05\x05\x06\x02\t\x01\x12\x04\xa2\x04\x02\x08\n\r\n\x05\x05\ + \x06\x02\t\x02\x12\x04\xa2\x04\x0b\r\n\x0c\n\x04\x05\x06\x02\n\x12\x04\ + \xa3\x04\x02\t\n\r\n\x05\x05\x06\x02\n\x01\x12\x04\xa3\x04\x02\x03\n\r\n\ + \x05\x05\x06\x02\n\x02\x12\x04\xa3\x04\x06\x08\n\x0c\n\x04\x05\x06\x02\ + \x0b\x12\x04\xa4\x04\x02\r\n\r\n\x05\x05\x06\x02\x0b\x01\x12\x04\xa4\x04\ + \x02\x07\n\r\n\x05\x05\x06\x02\x0b\x02\x12\x04\xa4\x04\n\x0c\nH\n\x04\ + \x05\x06\x02\x0c\x12\x04\xa5\x04\x02\x0b\":\x20C++\x20(the\x20name\x20\"\ CPP\"\x20was\x20chosen\x20for\x20consistency\x20with\x20LSP)\n\n\r\n\x05\ - \x05\x06\x02\x0c\x01\x12\x04\xf2\x03\x02\x05\n\r\n\x05\x05\x06\x02\x0c\ - \x02\x12\x04\xf2\x03\x08\n\n\x0c\n\x04\x05\x06\x02\r\x12\x04\xf3\x03\x02\ - \x0b\n\r\n\x05\x05\x06\x02\r\x01\x12\x04\xf3\x03\x02\x05\n\r\n\x05\x05\ - \x06\x02\r\x02\x12\x04\xf3\x03\x08\n\n\x0c\n\x04\x05\x06\x02\x0e\x12\x04\ - \xf4\x03\x02\r\n\r\n\x05\x05\x06\x02\x0e\x01\x12\x04\xf4\x03\x02\x08\n\r\ - \n\x05\x05\x06\x02\x0e\x02\x12\x04\xf4\x03\x0b\x0c\n\x0c\n\x04\x05\x06\ - \x02\x0f\x12\x04\xf5\x03\x02\x0e\n\r\n\x05\x05\x06\x02\x0f\x01\x12\x04\ - \xf5\x03\x02\t\n\r\n\x05\x05\x06\x02\x0f\x02\x12\x04\xf5\x03\x0c\r\n\x0c\ - \n\x04\x05\x06\x02\x10\x12\x04\xf6\x03\x02\x14\n\r\n\x05\x05\x06\x02\x10\ - \x01\x12\x04\xf6\x03\x02\x0e\n\r\n\x05\x05\x06\x02\x10\x02\x12\x04\xf6\ - \x03\x11\x13\n\x0c\n\x04\x05\x06\x02\x11\x12\x04\xf7\x03\x02\x11\n\r\n\ - \x05\x05\x06\x02\x11\x01\x12\x04\xf7\x03\x02\x0c\n\r\n\x05\x05\x06\x02\ - \x11\x02\x12\x04\xf7\x03\x0f\x10\n\x0c\n\x04\x05\x06\x02\x12\x12\x04\xf8\ - \x03\x02\x0b\n\r\n\x05\x05\x06\x02\x12\x01\x12\x04\xf8\x03\x02\x05\n\r\n\ - \x05\x05\x06\x02\x12\x02\x12\x04\xf8\x03\x08\n\n\x0c\n\x04\x05\x06\x02\ - \x13\x12\x04\xf9\x03\x02\x0b\n\r\n\x05\x05\x06\x02\x13\x01\x12\x04\xf9\ - \x03\x02\x06\n\r\n\x05\x05\x06\x02\x13\x02\x12\x04\xf9\x03\t\n\n\x0c\n\ - \x04\x05\x06\x02\x14\x12\x04\xfa\x03\x02\x0e\n\r\n\x05\x05\x06\x02\x14\ - \x01\x12\x04\xfa\x03\x02\x08\n\r\n\x05\x05\x06\x02\x14\x02\x12\x04\xfa\ - \x03\x0b\r\n\x0c\n\x04\x05\x06\x02\x15\x12\x04\xfb\x03\x02\x0c\n\r\n\x05\ - \x05\x06\x02\x15\x01\x12\x04\xfb\x03\x02\x06\n\r\n\x05\x05\x06\x02\x15\ - \x02\x12\x04\xfb\x03\t\x0b\n\x0c\n\x04\x05\x06\x02\x16\x12\x04\xfc\x03\ - \x02\x12\n\r\n\x05\x05\x06\x02\x16\x01\x12\x04\xfc\x03\x02\x0c\n\r\n\x05\ - \x05\x06\x02\x16\x02\x12\x04\xfc\x03\x0f\x11\n\x0c\n\x04\x05\x06\x02\x17\ - \x12\x04\xfd\x03\x02\x0e\n\r\n\x05\x05\x06\x02\x17\x01\x12\x04\xfd\x03\ - \x02\x08\n\r\n\x05\x05\x06\x02\x17\x02\x12\x04\xfd\x03\x0b\r\n\x0c\n\x04\ - \x05\x06\x02\x18\x12\x04\xfe\x03\x02\x0e\n\r\n\x05\x05\x06\x02\x18\x01\ - \x12\x04\xfe\x03\x02\x08\n\r\n\x05\x05\x06\x02\x18\x02\x12\x04\xfe\x03\ - \x0b\r\n\x0c\n\x04\x05\x06\x02\x19\x12\x04\xff\x03\x02\x0e\n\r\n\x05\x05\ - \x06\x02\x19\x01\x12\x04\xff\x03\x02\x08\n\r\n\x05\x05\x06\x02\x19\x02\ - \x12\x04\xff\x03\x0b\r\n\x0c\n\x04\x05\x06\x02\x1a\x12\x04\x80\x04\x02\ - \x0e\n\r\n\x05\x05\x06\x02\x1a\x01\x12\x04\x80\x04\x02\x08\n\r\n\x05\x05\ - \x06\x02\x1a\x02\x12\x04\x80\x04\x0b\r\n\x0c\n\x04\x05\x06\x02\x1b\x12\ - \x04\x81\x04\x02\x0c\n\r\n\x05\x05\x06\x02\x1b\x01\x12\x04\x81\x04\x02\ - \x06\n\r\n\x05\x05\x06\x02\x1b\x02\x12\x04\x81\x04\t\x0b\n\x0c\n\x04\x05\ - \x06\x02\x1c\x12\x04\x82\x04\x02\x0c\n\r\n\x05\x05\x06\x02\x1c\x01\x12\ - \x04\x82\x04\x02\x06\n\r\n\x05\x05\x06\x02\x1c\x02\x12\x04\x82\x04\t\x0b\ - \n\x0c\n\x04\x05\x06\x02\x1d\x12\x04\x83\x04\x02\x0f\n\r\n\x05\x05\x06\ - \x02\x1d\x01\x12\x04\x83\x04\x02\t\n\r\n\x05\x05\x06\x02\x1d\x02\x12\x04\ - \x83\x04\x0c\x0e\n\x0c\n\x04\x05\x06\x02\x1e\x12\x04\x84\x04\x02\x12\n\r\ - \n\x05\x05\x06\x02\x1e\x01\x12\x04\x84\x04\x02\x0c\n\r\n\x05\x05\x06\x02\ - \x1e\x02\x12\x04\x84\x04\x0f\x11\n\x0c\n\x04\x05\x06\x02\x1f\x12\x04\x85\ - \x04\x02\x12\n\r\n\x05\x05\x06\x02\x1f\x01\x12\x04\x85\x04\x02\x0c\n\r\n\ - \x05\x05\x06\x02\x1f\x02\x12\x04\x85\x04\x0f\x11\n\x0c\n\x04\x05\x06\x02\ - \x20\x12\x04\x86\x04\x02\x12\n\r\n\x05\x05\x06\x02\x20\x01\x12\x04\x86\ - \x04\x02\x0c\n\r\n\x05\x05\x06\x02\x20\x02\x12\x04\x86\x04\x0f\x11\n\x0c\ - \n\x04\x05\x06\x02!\x12\x04\x87\x04\x02\n\n\r\n\x05\x05\x06\x02!\x01\x12\ - \x04\x87\x04\x02\x04\n\r\n\x05\x05\x06\x02!\x02\x12\x04\x87\x04\x07\t\n\ - \x0c\n\x04\x05\x06\x02\"\x12\x04\x88\x04\x02\r\n\r\n\x05\x05\x06\x02\"\ - \x01\x12\x04\x88\x04\x02\x08\n\r\n\x05\x05\x06\x02\"\x02\x12\x04\x88\x04\ - \x0b\x0c\n\x0c\n\x04\x05\x06\x02#\x12\x04\x89\x04\x02\x0c\n\r\n\x05\x05\ - \x06\x02#\x01\x12\x04\x89\x04\x02\x06\n\r\n\x05\x05\x06\x02#\x02\x12\x04\ - \x89\x04\t\x0b\n\x0c\n\x04\x05\x06\x02$\x12\x04\x8a\x04\x02\x0c\n\r\n\ - \x05\x05\x06\x02$\x01\x12\x04\x8a\x04\x02\x06\n\r\n\x05\x05\x06\x02$\x02\ - \x12\x04\x8a\x04\t\x0b\n\x0c\n\x04\x05\x06\x02%\x12\x04\x8b\x04\x02\x12\ - \n\r\n\x05\x05\x06\x02%\x01\x12\x04\x8b\x04\x02\x0c\n\r\n\x05\x05\x06\ - \x02%\x02\x12\x04\x8b\x04\x0f\x11\n\x0c\n\x04\x05\x06\x02&\x12\x04\x8c\ - \x04\x02\x0f\n\r\n\x05\x05\x06\x02&\x01\x12\x04\x8c\x04\x02\t\n\r\n\x05\ - \x05\x06\x02&\x02\x12\x04\x8c\x04\x0c\x0e\n\x0c\n\x04\x05\x06\x02'\x12\ - \x04\x8d\x04\x02\r\n\r\n\x05\x05\x06\x02'\x01\x12\x04\x8d\x04\x02\x07\n\ - \r\n\x05\x05\x06\x02'\x02\x12\x04\x8d\x04\n\x0c\n\x0c\n\x04\x05\x06\x02(\ - \x12\x04\x8e\x04\x02\x0b\n\r\n\x05\x05\x06\x02(\x01\x12\x04\x8e\x04\x02\ - \x05\n\r\n\x05\x05\x06\x02(\x02\x12\x04\x8e\x04\x08\n\n\x0c\n\x04\x05\ - \x06\x02)\x12\x04\x8f\x04\x02\t\n\r\n\x05\x05\x06\x02)\x01\x12\x04\x8f\ - \x04\x02\x03\n\r\n\x05\x05\x06\x02)\x02\x12\x04\x8f\x04\x06\x08\n\x0c\n\ - \x04\x05\x06\x02*\x12\x04\x90\x04\x02\x0c\n\r\n\x05\x05\x06\x02*\x01\x12\ - \x04\x90\x04\x02\x06\n\r\n\x05\x05\x06\x02*\x02\x12\x04\x90\x04\t\x0b\n\ - \x0c\n\x04\x05\x06\x02+\x12\x04\x91\x04\x02\x0b\n\r\n\x05\x05\x06\x02+\ - \x01\x12\x04\x91\x04\x02\x06\n\r\n\x05\x05\x06\x02+\x02\x12\x04\x91\x04\ - \t\n\n\x0c\n\x04\x05\x06\x02,\x12\x04\x92\x04\x02\x12\n\r\n\x05\x05\x06\ - \x02,\x01\x12\x04\x92\x04\x02\x0c\n\r\n\x05\x05\x06\x02,\x02\x12\x04\x92\ - \x04\x0f\x11\n\x0c\n\x04\x05\x06\x02-\x12\x04\x93\x04\x02\x17\n\r\n\x05\ - \x05\x06\x02-\x01\x12\x04\x93\x04\x02\x11\n\r\n\x05\x05\x06\x02-\x02\x12\ - \x04\x93\x04\x14\x16\n\x0c\n\x04\x05\x06\x02.\x12\x04\x94\x04\x02\x0f\n\ - \r\n\x05\x05\x06\x02.\x01\x12\x04\x94\x04\x02\t\n\r\n\x05\x05\x06\x02.\ - \x02\x12\x04\x94\x04\x0c\x0e\n\x0c\n\x04\x05\x06\x02/\x12\x04\x95\x04\ - \x02\x0e\n\r\n\x05\x05\x06\x02/\x01\x12\x04\x95\x04\x02\x07\n\r\n\x05\ - \x05\x06\x02/\x02\x12\x04\x95\x04\x0b\r\n\x0c\n\x04\x05\x06\x020\x12\x04\ - \x96\x04\x02\r\n\r\n\x05\x05\x06\x020\x01\x12\x04\x96\x04\x02\x08\n\r\n\ - \x05\x05\x06\x020\x02\x12\x04\x96\x04\x0b\x0c\n\x0c\n\x04\x05\x06\x021\ - \x12\x04\x97\x04\x02\r\n\r\n\x05\x05\x06\x021\x01\x12\x04\x97\x04\x02\ - \x07\n\r\n\x05\x05\x06\x021\x02\x12\x04\x97\x04\n\x0c\n\x0c\n\x04\x05\ - \x06\x022\x12\x04\x98\x04\x02\x0c\n\r\n\x05\x05\x06\x022\x01\x12\x04\x98\ - \x04\x02\x06\n\r\n\x05\x05\x06\x022\x02\x12\x04\x98\x04\t\x0b\n\x0c\n\ - \x04\x05\x06\x023\x12\x04\x99\x04\x02\x0c\n\r\n\x05\x05\x06\x023\x01\x12\ - \x04\x99\x04\x02\x06\n\r\n\x05\x05\x06\x023\x02\x12\x04\x99\x04\t\x0b\n\ - \x0c\n\x04\x05\x06\x024\x12\x04\x9a\x04\x02\x0b\n\r\n\x05\x05\x06\x024\ - \x01\x12\x04\x9a\x04\x02\x05\n\r\n\x05\x05\x06\x024\x02\x12\x04\x9a\x04\ - \x08\n\n\x0c\n\x04\x05\x06\x025\x12\x04\x9b\x04\x02\x10\n\r\n\x05\x05\ - \x06\x025\x01\x12\x04\x9b\x04\x02\n\n\r\n\x05\x05\x06\x025\x02\x12\x04\ - \x9b\x04\r\x0f\n\x0c\n\x04\x05\x06\x026\x12\x04\x9c\x04\x02\x10\n\r\n\ - \x05\x05\x06\x026\x01\x12\x04\x9c\x04\x02\n\n\r\n\x05\x05\x06\x026\x02\ - \x12\x04\x9c\x04\r\x0f\n\x0c\n\x04\x05\x06\x027\x12\x04\x9d\x04\x02\x0e\ - \n\r\n\x05\x05\x06\x027\x01\x12\x04\x9d\x04\x02\x08\n\r\n\x05\x05\x06\ - \x027\x02\x12\x04\x9d\x04\x0b\r\n\x0c\n\x04\x05\x06\x028\x12\x04\x9e\x04\ - \x02\x0b\n\r\n\x05\x05\x06\x028\x01\x12\x04\x9e\x04\x02\x05\n\r\n\x05\ - \x05\x06\x028\x02\x12\x04\x9e\x04\x08\n\n\x0c\n\x04\x05\x06\x029\x12\x04\ - \x9f\x04\x02\r\n\r\n\x05\x05\x06\x029\x01\x12\x04\x9f\x04\x02\x07\n\r\n\ - \x05\x05\x06\x029\x02\x12\x04\x9f\x04\n\x0c\n\x0c\n\x04\x05\x06\x02:\x12\ - \x04\xa0\x04\x02\x13\n\r\n\x05\x05\x06\x02:\x01\x12\x04\xa0\x04\x02\r\n\ - \r\n\x05\x05\x06\x02:\x02\x12\x04\xa0\x04\x10\x12\n\x0c\n\x04\x05\x06\ - \x02;\x12\x04\xa1\x04\x02\x15\n\r\n\x05\x05\x06\x02;\x01\x12\x04\xa1\x04\ - \x02\x0f\n\r\n\x05\x05\x06\x02;\x02\x12\x04\xa1\x04\x12\x14\n\x0c\n\x04\ - \x05\x06\x02<\x12\x04\xa2\x04\x02\x0b\n\r\n\x05\x05\x06\x02<\x01\x12\x04\ - \xa2\x04\x02\x05\n\r\n\x05\x05\x06\x02<\x02\x12\x04\xa2\x04\x08\n\n\x0c\ - \n\x04\x05\x06\x02=\x12\x04\xa3\x04\x02\r\n\r\n\x05\x05\x06\x02=\x01\x12\ - \x04\xa3\x04\x02\x07\n\r\n\x05\x05\x06\x02=\x02\x12\x04\xa3\x04\n\x0c\n\ - \x0c\n\x04\x05\x06\x02>\x12\x04\xa4\x04\x02\x0c\n\r\n\x05\x05\x06\x02>\ - \x01\x12\x04\xa4\x04\x02\x06\n\r\n\x05\x05\x06\x02>\x02\x12\x04\xa4\x04\ - \t\x0b\n\x0c\n\x04\x05\x06\x02?\x12\x04\xa5\x04\x02\x12\n\r\n\x05\x05\ - \x06\x02?\x01\x12\x04\xa5\x04\x02\x0c\n\r\n\x05\x05\x06\x02?\x02\x12\x04\ - \xa5\x04\x0f\x11\n\x0c\n\x04\x05\x06\x02@\x12\x04\xa6\x04\x02\x0e\n\r\n\ - \x05\x05\x06\x02@\x01\x12\x04\xa6\x04\x02\x08\n\r\n\x05\x05\x06\x02@\x02\ - \x12\x04\xa6\x04\x0b\r\n\x0c\n\x04\x05\x06\x02A\x12\x04\xa7\x04\x02\x0e\ - \n\r\n\x05\x05\x06\x02A\x01\x12\x04\xa7\x04\x02\x08\n\r\n\x05\x05\x06\ - \x02A\x02\x12\x04\xa7\x04\x0b\r\n\x0c\n\x04\x05\x06\x02B\x12\x04\xa8\x04\ - \x02\t\n\r\n\x05\x05\x06\x02B\x01\x12\x04\xa8\x04\x02\x03\n\r\n\x05\x05\ - \x06\x02B\x02\x12\x04\xa8\x04\x06\x08\n\x0c\n\x04\x05\x06\x02C\x12\x04\ - \xa9\x04\x02\x0e\n\r\n\x05\x05\x06\x02C\x01\x12\x04\xa9\x04\x02\x08\n\r\ - \n\x05\x05\x06\x02C\x02\x12\x04\xa9\x04\x0b\r\n\x0c\n\x04\x05\x06\x02D\ - \x12\x04\xaa\x04\x02\x0c\n\r\n\x05\x05\x06\x02D\x01\x12\x04\xaa\x04\x02\ - \x06\n\r\n\x05\x05\x06\x02D\x02\x12\x04\xaa\x04\t\x0b\n\x0c\n\x04\x05\ - \x06\x02E\x12\x04\xab\x04\x02\r\n\r\n\x05\x05\x06\x02E\x01\x12\x04\xab\ - \x04\x02\x07\n\r\n\x05\x05\x06\x02E\x02\x12\x04\xab\x04\n\x0c\n\x0c\n\ - \x04\x05\x06\x02F\x12\x04\xac\x04\x02\x0c\n\r\n\x05\x05\x06\x02F\x01\x12\ - \x04\xac\x04\x02\x06\n\r\n\x05\x05\x06\x02F\x02\x12\x04\xac\x04\t\x0b\n\ - \x0c\n\x04\x05\x06\x02G\x12\x04\xad\x04\x02\x0c\n\r\n\x05\x05\x06\x02G\ - \x01\x12\x04\xad\x04\x02\x06\n\r\n\x05\x05\x06\x02G\x02\x12\x04\xad\x04\ - \t\x0b\n\x0c\n\x04\x05\x06\x02H\x12\x04\xae\x04\x02\x0c\n\r\n\x05\x05\ - \x06\x02H\x01\x12\x04\xae\x04\x02\x06\n\r\n\x05\x05\x06\x02H\x02\x12\x04\ - \xae\x04\t\x0b\n\x0c\n\x04\x05\x06\x02I\x12\x04\xaf\x04\x02\x0b\n\r\n\ - \x05\x05\x06\x02I\x01\x12\x04\xaf\x04\x02\x05\n\r\n\x05\x05\x06\x02I\x02\ - \x12\x04\xaf\x04\x08\n\n\x0c\n\x04\x05\x06\x02J\x12\x04\xb0\x04\x02\x0c\ - \n\r\n\x05\x05\x06\x02J\x01\x12\x04\xb0\x04\x02\x06\n\r\n\x05\x05\x06\ - \x02J\x02\x12\x04\xb0\x04\t\x0b\n\x0c\n\x04\x05\x06\x02K\x12\x04\xb1\x04\ - \x02\x0b\n\r\n\x05\x05\x06\x02K\x01\x12\x04\xb1\x04\x02\x05\n\r\n\x05\ - \x05\x06\x02K\x02\x12\x04\xb1\x04\x08\n\n\x0c\n\x04\x05\x06\x02L\x12\x04\ - \xb2\x04\x02\x0b\n\r\n\x05\x05\x06\x02L\x01\x12\x04\xb2\x04\x02\x05\n\r\ - \n\x05\x05\x06\x02L\x02\x12\x04\xb2\x04\x08\n\n\x0c\n\x04\x05\x06\x02M\ - \x12\x04\xb3\x04\x02\x0c\n\r\n\x05\x05\x06\x02M\x01\x12\x04\xb3\x04\x02\ - \x06\n\r\n\x05\x05\x06\x02M\x02\x12\x04\xb3\x04\t\x0b\n\x0c\n\x04\x05\ - \x06\x02N\x12\x04\xb4\x04\x02\x0c\n\r\n\x05\x05\x06\x02N\x01\x12\x04\xb4\ - \x04\x02\x07\n\r\n\x05\x05\x06\x02N\x02\x12\x04\xb4\x04\n\x0b\n\x0c\n\ - \x04\x05\x06\x02O\x12\x04\xb5\x04\x02\x0e\n\r\n\x05\x05\x06\x02O\x01\x12\ - \x04\xb5\x04\x02\x08\n\r\n\x05\x05\x06\x02O\x02\x12\x04\xb5\x04\x0b\r\n\ - \x14\n\x04\x05\x06\x02P\x12\x04\xb6\x04\x02\x13\"\x06\x20Bash\n\n\r\n\ - \x05\x05\x06\x02P\x01\x12\x04\xb6\x04\x02\r\n\r\n\x05\x05\x06\x02P\x02\ - \x12\x04\xb6\x04\x10\x12\n\x0c\n\x04\x05\x06\x02Q\x12\x04\xb7\x04\x02\ - \x0f\n\r\n\x05\x05\x06\x02Q\x01\x12\x04\xb7\x04\x02\t\n\r\n\x05\x05\x06\ - \x02Q\x02\x12\x04\xb7\x04\x0c\x0e\n\x0c\n\x04\x05\x06\x02R\x12\x04\xb8\ - \x04\x02\x0c\n\r\n\x05\x05\x06\x02R\x01\x12\x04\xb8\x04\x02\x07\n\r\n\ - \x05\x05\x06\x02R\x02\x12\x04\xb8\x04\n\x0b\n\x0c\n\x04\x05\x06\x02S\x12\ - \x04\xb9\x04\x02\x0c\n\r\n\x05\x05\x06\x02S\x01\x12\x04\xb9\x04\x02\x06\ - \n\r\n\x05\x05\x06\x02S\x02\x12\x04\xb9\x04\t\x0b\n\x0c\n\x04\x05\x06\ - \x02T\x12\x04\xba\x04\x02\x0b\n\r\n\x05\x05\x06\x02T\x01\x12\x04\xba\x04\ - \x02\x05\n\r\n\x05\x05\x06\x02T\x02\x12\x04\xba\x04\x08\n\n\x0c\n\x04\ - \x05\x06\x02U\x12\x04\xbb\x04\x02\x12\n\r\n\x05\x05\x06\x02U\x01\x12\x04\ - \xbb\x04\x02\x0c\n\r\n\x05\x05\x06\x02U\x02\x12\x04\xbb\x04\x0f\x11\n\ - \x0c\n\x04\x05\x06\x02V\x12\x04\xbc\x04\x02\x17\n\r\n\x05\x05\x06\x02V\ - \x01\x12\x04\xbc\x04\x02\x11\n\r\n\x05\x05\x06\x02V\x02\x12\x04\xbc\x04\ - \x14\x16\n\x0c\n\x04\x05\x06\x02W\x12\x04\xbd\x04\x02\x13\n\r\n\x05\x05\ - \x06\x02W\x01\x12\x04\xbd\x04\x02\r\n\r\n\x05\x05\x06\x02W\x02\x12\x04\ - \xbd\x04\x10\x12\n\x0c\n\x04\x05\x06\x02X\x12\x04\xbe\x04\x02\x0b\n\r\n\ - \x05\x05\x06\x02X\x01\x12\x04\xbe\x04\x02\x05\n\r\n\x05\x05\x06\x02X\x02\ - \x12\x04\xbe\x04\x08\n\n\x0c\n\x04\x05\x06\x02Y\x12\x04\xbf\x04\x02\x0f\ - \n\r\n\x05\x05\x06\x02Y\x01\x12\x04\xbf\x04\x02\t\n\r\n\x05\x05\x06\x02Y\ - \x02\x12\x04\xbf\x04\x0c\x0e\n\x0c\n\x04\x05\x06\x02Z\x12\x04\xc0\x04\ - \x02\x0b\n\r\n\x05\x05\x06\x02Z\x01\x12\x04\xc0\x04\x02\x05\n\r\n\x05\ - \x05\x06\x02Z\x02\x12\x04\xc0\x04\x08\n\n\x0c\n\x04\x05\x06\x02[\x12\x04\ - \xc1\x04\x02\x0b\n\r\n\x05\x05\x06\x02[\x01\x12\x04\xc1\x04\x02\x05\n\r\ - \n\x05\x05\x06\x02[\x02\x12\x04\xc1\x04\x08\n\n\x0c\n\x04\x05\x06\x02\\\ - \x12\x04\xc2\x04\x02\x0c\n\r\n\x05\x05\x06\x02\\\x01\x12\x04\xc2\x04\x02\ - \x06\n\r\n\x05\x05\x06\x02\\\x02\x12\x04\xc2\x04\t\x0b\n\x92\x03\n\x04\ - \x05\x06\x02]\x12\x04\xc3\x04\x02\x0b\"\x83\x03\x20NextLanguage\x20=\x20\ + \x05\x06\x02\x0c\x01\x12\x04\xa5\x04\x02\x05\n\r\n\x05\x05\x06\x02\x0c\ + \x02\x12\x04\xa5\x04\x08\n\n\x0c\n\x04\x05\x06\x02\r\x12\x04\xa6\x04\x02\ + \x0b\n\r\n\x05\x05\x06\x02\r\x01\x12\x04\xa6\x04\x02\x05\n\r\n\x05\x05\ + \x06\x02\r\x02\x12\x04\xa6\x04\x08\n\n\x0c\n\x04\x05\x06\x02\x0e\x12\x04\ + \xa7\x04\x02\r\n\r\n\x05\x05\x06\x02\x0e\x01\x12\x04\xa7\x04\x02\x08\n\r\ + \n\x05\x05\x06\x02\x0e\x02\x12\x04\xa7\x04\x0b\x0c\n\x0c\n\x04\x05\x06\ + \x02\x0f\x12\x04\xa8\x04\x02\x0e\n\r\n\x05\x05\x06\x02\x0f\x01\x12\x04\ + \xa8\x04\x02\t\n\r\n\x05\x05\x06\x02\x0f\x02\x12\x04\xa8\x04\x0c\r\n\x0c\ + \n\x04\x05\x06\x02\x10\x12\x04\xa9\x04\x02\x14\n\r\n\x05\x05\x06\x02\x10\ + \x01\x12\x04\xa9\x04\x02\x0e\n\r\n\x05\x05\x06\x02\x10\x02\x12\x04\xa9\ + \x04\x11\x13\n\x0c\n\x04\x05\x06\x02\x11\x12\x04\xaa\x04\x02\x11\n\r\n\ + \x05\x05\x06\x02\x11\x01\x12\x04\xaa\x04\x02\x0c\n\r\n\x05\x05\x06\x02\ + \x11\x02\x12\x04\xaa\x04\x0f\x10\n\x0c\n\x04\x05\x06\x02\x12\x12\x04\xab\ + \x04\x02\x0b\n\r\n\x05\x05\x06\x02\x12\x01\x12\x04\xab\x04\x02\x05\n\r\n\ + \x05\x05\x06\x02\x12\x02\x12\x04\xab\x04\x08\n\n\x0c\n\x04\x05\x06\x02\ + \x13\x12\x04\xac\x04\x02\x0b\n\r\n\x05\x05\x06\x02\x13\x01\x12\x04\xac\ + \x04\x02\x06\n\r\n\x05\x05\x06\x02\x13\x02\x12\x04\xac\x04\t\n\n\x0c\n\ + \x04\x05\x06\x02\x14\x12\x04\xad\x04\x02\x0e\n\r\n\x05\x05\x06\x02\x14\ + \x01\x12\x04\xad\x04\x02\x08\n\r\n\x05\x05\x06\x02\x14\x02\x12\x04\xad\ + \x04\x0b\r\n\x0c\n\x04\x05\x06\x02\x15\x12\x04\xae\x04\x02\x0c\n\r\n\x05\ + \x05\x06\x02\x15\x01\x12\x04\xae\x04\x02\x06\n\r\n\x05\x05\x06\x02\x15\ + \x02\x12\x04\xae\x04\t\x0b\n\x0c\n\x04\x05\x06\x02\x16\x12\x04\xaf\x04\ + \x02\x12\n\r\n\x05\x05\x06\x02\x16\x01\x12\x04\xaf\x04\x02\x0c\n\r\n\x05\ + \x05\x06\x02\x16\x02\x12\x04\xaf\x04\x0f\x11\n\x0c\n\x04\x05\x06\x02\x17\ + \x12\x04\xb0\x04\x02\x0e\n\r\n\x05\x05\x06\x02\x17\x01\x12\x04\xb0\x04\ + \x02\x08\n\r\n\x05\x05\x06\x02\x17\x02\x12\x04\xb0\x04\x0b\r\n\x0c\n\x04\ + \x05\x06\x02\x18\x12\x04\xb1\x04\x02\x0e\n\r\n\x05\x05\x06\x02\x18\x01\ + \x12\x04\xb1\x04\x02\x08\n\r\n\x05\x05\x06\x02\x18\x02\x12\x04\xb1\x04\ + \x0b\r\n\x0c\n\x04\x05\x06\x02\x19\x12\x04\xb2\x04\x02\x0e\n\r\n\x05\x05\ + \x06\x02\x19\x01\x12\x04\xb2\x04\x02\x08\n\r\n\x05\x05\x06\x02\x19\x02\ + \x12\x04\xb2\x04\x0b\r\n\x0c\n\x04\x05\x06\x02\x1a\x12\x04\xb3\x04\x02\ + \x0e\n\r\n\x05\x05\x06\x02\x1a\x01\x12\x04\xb3\x04\x02\x08\n\r\n\x05\x05\ + \x06\x02\x1a\x02\x12\x04\xb3\x04\x0b\r\n\x0c\n\x04\x05\x06\x02\x1b\x12\ + \x04\xb4\x04\x02\x0c\n\r\n\x05\x05\x06\x02\x1b\x01\x12\x04\xb4\x04\x02\ + \x06\n\r\n\x05\x05\x06\x02\x1b\x02\x12\x04\xb4\x04\t\x0b\n\x0c\n\x04\x05\ + \x06\x02\x1c\x12\x04\xb5\x04\x02\x0c\n\r\n\x05\x05\x06\x02\x1c\x01\x12\ + \x04\xb5\x04\x02\x06\n\r\n\x05\x05\x06\x02\x1c\x02\x12\x04\xb5\x04\t\x0b\ + \n\x0c\n\x04\x05\x06\x02\x1d\x12\x04\xb6\x04\x02\x0f\n\r\n\x05\x05\x06\ + \x02\x1d\x01\x12\x04\xb6\x04\x02\t\n\r\n\x05\x05\x06\x02\x1d\x02\x12\x04\ + \xb6\x04\x0c\x0e\n\x0c\n\x04\x05\x06\x02\x1e\x12\x04\xb7\x04\x02\x12\n\r\ + \n\x05\x05\x06\x02\x1e\x01\x12\x04\xb7\x04\x02\x0c\n\r\n\x05\x05\x06\x02\ + \x1e\x02\x12\x04\xb7\x04\x0f\x11\n\x0c\n\x04\x05\x06\x02\x1f\x12\x04\xb8\ + \x04\x02\x12\n\r\n\x05\x05\x06\x02\x1f\x01\x12\x04\xb8\x04\x02\x0c\n\r\n\ + \x05\x05\x06\x02\x1f\x02\x12\x04\xb8\x04\x0f\x11\n\x0c\n\x04\x05\x06\x02\ + \x20\x12\x04\xb9\x04\x02\x12\n\r\n\x05\x05\x06\x02\x20\x01\x12\x04\xb9\ + \x04\x02\x0c\n\r\n\x05\x05\x06\x02\x20\x02\x12\x04\xb9\x04\x0f\x11\n\x0c\ + \n\x04\x05\x06\x02!\x12\x04\xba\x04\x02\n\n\r\n\x05\x05\x06\x02!\x01\x12\ + \x04\xba\x04\x02\x04\n\r\n\x05\x05\x06\x02!\x02\x12\x04\xba\x04\x07\t\n\ + \x0c\n\x04\x05\x06\x02\"\x12\x04\xbb\x04\x02\r\n\r\n\x05\x05\x06\x02\"\ + \x01\x12\x04\xbb\x04\x02\x08\n\r\n\x05\x05\x06\x02\"\x02\x12\x04\xbb\x04\ + \x0b\x0c\n\x0c\n\x04\x05\x06\x02#\x12\x04\xbc\x04\x02\x0c\n\r\n\x05\x05\ + \x06\x02#\x01\x12\x04\xbc\x04\x02\x06\n\r\n\x05\x05\x06\x02#\x02\x12\x04\ + \xbc\x04\t\x0b\n\x0c\n\x04\x05\x06\x02$\x12\x04\xbd\x04\x02\x0c\n\r\n\ + \x05\x05\x06\x02$\x01\x12\x04\xbd\x04\x02\x06\n\r\n\x05\x05\x06\x02$\x02\ + \x12\x04\xbd\x04\t\x0b\n\x0c\n\x04\x05\x06\x02%\x12\x04\xbe\x04\x02\x12\ + \n\r\n\x05\x05\x06\x02%\x01\x12\x04\xbe\x04\x02\x0c\n\r\n\x05\x05\x06\ + \x02%\x02\x12\x04\xbe\x04\x0f\x11\n\x0c\n\x04\x05\x06\x02&\x12\x04\xbf\ + \x04\x02\x0f\n\r\n\x05\x05\x06\x02&\x01\x12\x04\xbf\x04\x02\t\n\r\n\x05\ + \x05\x06\x02&\x02\x12\x04\xbf\x04\x0c\x0e\n\x0c\n\x04\x05\x06\x02'\x12\ + \x04\xc0\x04\x02\r\n\r\n\x05\x05\x06\x02'\x01\x12\x04\xc0\x04\x02\x07\n\ + \r\n\x05\x05\x06\x02'\x02\x12\x04\xc0\x04\n\x0c\n\x0c\n\x04\x05\x06\x02(\ + \x12\x04\xc1\x04\x02\x0b\n\r\n\x05\x05\x06\x02(\x01\x12\x04\xc1\x04\x02\ + \x05\n\r\n\x05\x05\x06\x02(\x02\x12\x04\xc1\x04\x08\n\n\x0c\n\x04\x05\ + \x06\x02)\x12\x04\xc2\x04\x02\t\n\r\n\x05\x05\x06\x02)\x01\x12\x04\xc2\ + \x04\x02\x03\n\r\n\x05\x05\x06\x02)\x02\x12\x04\xc2\x04\x06\x08\n\x0c\n\ + \x04\x05\x06\x02*\x12\x04\xc3\x04\x02\x0c\n\r\n\x05\x05\x06\x02*\x01\x12\ + \x04\xc3\x04\x02\x06\n\r\n\x05\x05\x06\x02*\x02\x12\x04\xc3\x04\t\x0b\n\ + \x0c\n\x04\x05\x06\x02+\x12\x04\xc4\x04\x02\x0b\n\r\n\x05\x05\x06\x02+\ + \x01\x12\x04\xc4\x04\x02\x06\n\r\n\x05\x05\x06\x02+\x02\x12\x04\xc4\x04\ + \t\n\n\x0c\n\x04\x05\x06\x02,\x12\x04\xc5\x04\x02\x12\n\r\n\x05\x05\x06\ + \x02,\x01\x12\x04\xc5\x04\x02\x0c\n\r\n\x05\x05\x06\x02,\x02\x12\x04\xc5\ + \x04\x0f\x11\n\x0c\n\x04\x05\x06\x02-\x12\x04\xc6\x04\x02\x17\n\r\n\x05\ + \x05\x06\x02-\x01\x12\x04\xc6\x04\x02\x11\n\r\n\x05\x05\x06\x02-\x02\x12\ + \x04\xc6\x04\x14\x16\n\x0c\n\x04\x05\x06\x02.\x12\x04\xc7\x04\x02\x0f\n\ + \r\n\x05\x05\x06\x02.\x01\x12\x04\xc7\x04\x02\t\n\r\n\x05\x05\x06\x02.\ + \x02\x12\x04\xc7\x04\x0c\x0e\n\x0c\n\x04\x05\x06\x02/\x12\x04\xc8\x04\ + \x02\x0e\n\r\n\x05\x05\x06\x02/\x01\x12\x04\xc8\x04\x02\x07\n\r\n\x05\ + \x05\x06\x02/\x02\x12\x04\xc8\x04\x0b\r\n\x0c\n\x04\x05\x06\x020\x12\x04\ + \xc9\x04\x02\r\n\r\n\x05\x05\x06\x020\x01\x12\x04\xc9\x04\x02\x08\n\r\n\ + \x05\x05\x06\x020\x02\x12\x04\xc9\x04\x0b\x0c\n\x0c\n\x04\x05\x06\x021\ + \x12\x04\xca\x04\x02\r\n\r\n\x05\x05\x06\x021\x01\x12\x04\xca\x04\x02\ + \x07\n\r\n\x05\x05\x06\x021\x02\x12\x04\xca\x04\n\x0c\n\x0c\n\x04\x05\ + \x06\x022\x12\x04\xcb\x04\x02\x0c\n\r\n\x05\x05\x06\x022\x01\x12\x04\xcb\ + \x04\x02\x06\n\r\n\x05\x05\x06\x022\x02\x12\x04\xcb\x04\t\x0b\n\x0c\n\ + \x04\x05\x06\x023\x12\x04\xcc\x04\x02\x0c\n\r\n\x05\x05\x06\x023\x01\x12\ + \x04\xcc\x04\x02\x06\n\r\n\x05\x05\x06\x023\x02\x12\x04\xcc\x04\t\x0b\n\ + \x0c\n\x04\x05\x06\x024\x12\x04\xcd\x04\x02\x0b\n\r\n\x05\x05\x06\x024\ + \x01\x12\x04\xcd\x04\x02\x05\n\r\n\x05\x05\x06\x024\x02\x12\x04\xcd\x04\ + \x08\n\n\x0c\n\x04\x05\x06\x025\x12\x04\xce\x04\x02\x10\n\r\n\x05\x05\ + \x06\x025\x01\x12\x04\xce\x04\x02\n\n\r\n\x05\x05\x06\x025\x02\x12\x04\ + \xce\x04\r\x0f\n\x0c\n\x04\x05\x06\x026\x12\x04\xcf\x04\x02\x10\n\r\n\ + \x05\x05\x06\x026\x01\x12\x04\xcf\x04\x02\n\n\r\n\x05\x05\x06\x026\x02\ + \x12\x04\xcf\x04\r\x0f\n\x0c\n\x04\x05\x06\x027\x12\x04\xd0\x04\x02\x0e\ + \n\r\n\x05\x05\x06\x027\x01\x12\x04\xd0\x04\x02\x08\n\r\n\x05\x05\x06\ + \x027\x02\x12\x04\xd0\x04\x0b\r\n\x0c\n\x04\x05\x06\x028\x12\x04\xd1\x04\ + \x02\x0b\n\r\n\x05\x05\x06\x028\x01\x12\x04\xd1\x04\x02\x05\n\r\n\x05\ + \x05\x06\x028\x02\x12\x04\xd1\x04\x08\n\n\x0c\n\x04\x05\x06\x029\x12\x04\ + \xd2\x04\x02\r\n\r\n\x05\x05\x06\x029\x01\x12\x04\xd2\x04\x02\x07\n\r\n\ + \x05\x05\x06\x029\x02\x12\x04\xd2\x04\n\x0c\n\x0c\n\x04\x05\x06\x02:\x12\ + \x04\xd3\x04\x02\x13\n\r\n\x05\x05\x06\x02:\x01\x12\x04\xd3\x04\x02\r\n\ + \r\n\x05\x05\x06\x02:\x02\x12\x04\xd3\x04\x10\x12\n\x0c\n\x04\x05\x06\ + \x02;\x12\x04\xd4\x04\x02\x15\n\r\n\x05\x05\x06\x02;\x01\x12\x04\xd4\x04\ + \x02\x0f\n\r\n\x05\x05\x06\x02;\x02\x12\x04\xd4\x04\x12\x14\n\x0c\n\x04\ + \x05\x06\x02<\x12\x04\xd5\x04\x02\x0b\n\r\n\x05\x05\x06\x02<\x01\x12\x04\ + \xd5\x04\x02\x05\n\r\n\x05\x05\x06\x02<\x02\x12\x04\xd5\x04\x08\n\n\x0c\ + \n\x04\x05\x06\x02=\x12\x04\xd6\x04\x02\r\n\r\n\x05\x05\x06\x02=\x01\x12\ + \x04\xd6\x04\x02\x07\n\r\n\x05\x05\x06\x02=\x02\x12\x04\xd6\x04\n\x0c\n\ + \x0c\n\x04\x05\x06\x02>\x12\x04\xd7\x04\x02\x0c\n\r\n\x05\x05\x06\x02>\ + \x01\x12\x04\xd7\x04\x02\x06\n\r\n\x05\x05\x06\x02>\x02\x12\x04\xd7\x04\ + \t\x0b\n\x0c\n\x04\x05\x06\x02?\x12\x04\xd8\x04\x02\x12\n\r\n\x05\x05\ + \x06\x02?\x01\x12\x04\xd8\x04\x02\x0c\n\r\n\x05\x05\x06\x02?\x02\x12\x04\ + \xd8\x04\x0f\x11\n\x0c\n\x04\x05\x06\x02@\x12\x04\xd9\x04\x02\x0e\n\r\n\ + \x05\x05\x06\x02@\x01\x12\x04\xd9\x04\x02\x08\n\r\n\x05\x05\x06\x02@\x02\ + \x12\x04\xd9\x04\x0b\r\n\x0c\n\x04\x05\x06\x02A\x12\x04\xda\x04\x02\x0e\ + \n\r\n\x05\x05\x06\x02A\x01\x12\x04\xda\x04\x02\x08\n\r\n\x05\x05\x06\ + \x02A\x02\x12\x04\xda\x04\x0b\r\n\x0c\n\x04\x05\x06\x02B\x12\x04\xdb\x04\ + \x02\t\n\r\n\x05\x05\x06\x02B\x01\x12\x04\xdb\x04\x02\x03\n\r\n\x05\x05\ + \x06\x02B\x02\x12\x04\xdb\x04\x06\x08\n\x0c\n\x04\x05\x06\x02C\x12\x04\ + \xdc\x04\x02\x0e\n\r\n\x05\x05\x06\x02C\x01\x12\x04\xdc\x04\x02\x08\n\r\ + \n\x05\x05\x06\x02C\x02\x12\x04\xdc\x04\x0b\r\n\x0c\n\x04\x05\x06\x02D\ + \x12\x04\xdd\x04\x02\x0c\n\r\n\x05\x05\x06\x02D\x01\x12\x04\xdd\x04\x02\ + \x06\n\r\n\x05\x05\x06\x02D\x02\x12\x04\xdd\x04\t\x0b\n\x0c\n\x04\x05\ + \x06\x02E\x12\x04\xde\x04\x02\r\n\r\n\x05\x05\x06\x02E\x01\x12\x04\xde\ + \x04\x02\x07\n\r\n\x05\x05\x06\x02E\x02\x12\x04\xde\x04\n\x0c\n\x0c\n\ + \x04\x05\x06\x02F\x12\x04\xdf\x04\x02\x0c\n\r\n\x05\x05\x06\x02F\x01\x12\ + \x04\xdf\x04\x02\x06\n\r\n\x05\x05\x06\x02F\x02\x12\x04\xdf\x04\t\x0b\n\ + \x0c\n\x04\x05\x06\x02G\x12\x04\xe0\x04\x02\x0c\n\r\n\x05\x05\x06\x02G\ + \x01\x12\x04\xe0\x04\x02\x06\n\r\n\x05\x05\x06\x02G\x02\x12\x04\xe0\x04\ + \t\x0b\n\x0c\n\x04\x05\x06\x02H\x12\x04\xe1\x04\x02\x0c\n\r\n\x05\x05\ + \x06\x02H\x01\x12\x04\xe1\x04\x02\x06\n\r\n\x05\x05\x06\x02H\x02\x12\x04\ + \xe1\x04\t\x0b\n\x0c\n\x04\x05\x06\x02I\x12\x04\xe2\x04\x02\x0b\n\r\n\ + \x05\x05\x06\x02I\x01\x12\x04\xe2\x04\x02\x05\n\r\n\x05\x05\x06\x02I\x02\ + \x12\x04\xe2\x04\x08\n\n\x0c\n\x04\x05\x06\x02J\x12\x04\xe3\x04\x02\x0c\ + \n\r\n\x05\x05\x06\x02J\x01\x12\x04\xe3\x04\x02\x06\n\r\n\x05\x05\x06\ + \x02J\x02\x12\x04\xe3\x04\t\x0b\n\x0c\n\x04\x05\x06\x02K\x12\x04\xe4\x04\ + \x02\x0b\n\r\n\x05\x05\x06\x02K\x01\x12\x04\xe4\x04\x02\x05\n\r\n\x05\ + \x05\x06\x02K\x02\x12\x04\xe4\x04\x08\n\n\x0c\n\x04\x05\x06\x02L\x12\x04\ + \xe5\x04\x02\x0b\n\r\n\x05\x05\x06\x02L\x01\x12\x04\xe5\x04\x02\x05\n\r\ + \n\x05\x05\x06\x02L\x02\x12\x04\xe5\x04\x08\n\n\x0c\n\x04\x05\x06\x02M\ + \x12\x04\xe6\x04\x02\x0c\n\r\n\x05\x05\x06\x02M\x01\x12\x04\xe6\x04\x02\ + \x06\n\r\n\x05\x05\x06\x02M\x02\x12\x04\xe6\x04\t\x0b\n\x0c\n\x04\x05\ + \x06\x02N\x12\x04\xe7\x04\x02\x0c\n\r\n\x05\x05\x06\x02N\x01\x12\x04\xe7\ + \x04\x02\x07\n\r\n\x05\x05\x06\x02N\x02\x12\x04\xe7\x04\n\x0b\n\x0c\n\ + \x04\x05\x06\x02O\x12\x04\xe8\x04\x02\x0e\n\r\n\x05\x05\x06\x02O\x01\x12\ + \x04\xe8\x04\x02\x08\n\r\n\x05\x05\x06\x02O\x02\x12\x04\xe8\x04\x0b\r\n\ + \x14\n\x04\x05\x06\x02P\x12\x04\xe9\x04\x02\x13\"\x06\x20Bash\n\n\r\n\ + \x05\x05\x06\x02P\x01\x12\x04\xe9\x04\x02\r\n\r\n\x05\x05\x06\x02P\x02\ + \x12\x04\xe9\x04\x10\x12\n\x0c\n\x04\x05\x06\x02Q\x12\x04\xea\x04\x02\ + \x0f\n\r\n\x05\x05\x06\x02Q\x01\x12\x04\xea\x04\x02\t\n\r\n\x05\x05\x06\ + \x02Q\x02\x12\x04\xea\x04\x0c\x0e\n\x0c\n\x04\x05\x06\x02R\x12\x04\xeb\ + \x04\x02\x0c\n\r\n\x05\x05\x06\x02R\x01\x12\x04\xeb\x04\x02\x07\n\r\n\ + \x05\x05\x06\x02R\x02\x12\x04\xeb\x04\n\x0b\n\x0c\n\x04\x05\x06\x02S\x12\ + \x04\xec\x04\x02\x0c\n\r\n\x05\x05\x06\x02S\x01\x12\x04\xec\x04\x02\x06\ + \n\r\n\x05\x05\x06\x02S\x02\x12\x04\xec\x04\t\x0b\n\x0c\n\x04\x05\x06\ + \x02T\x12\x04\xed\x04\x02\x0b\n\r\n\x05\x05\x06\x02T\x01\x12\x04\xed\x04\ + \x02\x05\n\r\n\x05\x05\x06\x02T\x02\x12\x04\xed\x04\x08\n\n\x0c\n\x04\ + \x05\x06\x02U\x12\x04\xee\x04\x02\x12\n\r\n\x05\x05\x06\x02U\x01\x12\x04\ + \xee\x04\x02\x0c\n\r\n\x05\x05\x06\x02U\x02\x12\x04\xee\x04\x0f\x11\n\ + \x0c\n\x04\x05\x06\x02V\x12\x04\xef\x04\x02\x17\n\r\n\x05\x05\x06\x02V\ + \x01\x12\x04\xef\x04\x02\x11\n\r\n\x05\x05\x06\x02V\x02\x12\x04\xef\x04\ + \x14\x16\n\x0c\n\x04\x05\x06\x02W\x12\x04\xf0\x04\x02\x13\n\r\n\x05\x05\ + \x06\x02W\x01\x12\x04\xf0\x04\x02\r\n\r\n\x05\x05\x06\x02W\x02\x12\x04\ + \xf0\x04\x10\x12\n\x0c\n\x04\x05\x06\x02X\x12\x04\xf1\x04\x02\x0b\n\r\n\ + \x05\x05\x06\x02X\x01\x12\x04\xf1\x04\x02\x05\n\r\n\x05\x05\x06\x02X\x02\ + \x12\x04\xf1\x04\x08\n\n\x0c\n\x04\x05\x06\x02Y\x12\x04\xf2\x04\x02\x0f\ + \n\r\n\x05\x05\x06\x02Y\x01\x12\x04\xf2\x04\x02\t\n\r\n\x05\x05\x06\x02Y\ + \x02\x12\x04\xf2\x04\x0c\x0e\n\x0c\n\x04\x05\x06\x02Z\x12\x04\xf3\x04\ + \x02\x0b\n\r\n\x05\x05\x06\x02Z\x01\x12\x04\xf3\x04\x02\x05\n\r\n\x05\ + \x05\x06\x02Z\x02\x12\x04\xf3\x04\x08\n\n\x0c\n\x04\x05\x06\x02[\x12\x04\ + \xf4\x04\x02\x0b\n\r\n\x05\x05\x06\x02[\x01\x12\x04\xf4\x04\x02\x05\n\r\ + \n\x05\x05\x06\x02[\x02\x12\x04\xf4\x04\x08\n\n\x0c\n\x04\x05\x06\x02\\\ + \x12\x04\xf5\x04\x02\x0c\n\r\n\x05\x05\x06\x02\\\x01\x12\x04\xf5\x04\x02\ + \x06\n\r\n\x05\x05\x06\x02\\\x02\x12\x04\xf5\x04\t\x0b\n\x92\x03\n\x04\ + \x05\x06\x02]\x12\x04\xf6\x04\x02\x0b\"\x83\x03\x20NextLanguage\x20=\x20\ 95;\n\x20Steps\x20add\x20a\x20new\x20language:\n\x201.\x20Copy-paste\x20\ the\x20\"NextLanguage\x20=\x20N\"\x20line\x20above\n\x202.\x20Increment\ \x20\"NextLanguage\x20=\x20N\"\x20to\x20\"NextLanguage\x20=\x20N+1\"\n\ @@ -4360,8 +4707,8 @@ static file_descriptor_proto_data: &'static [u8] = b"\ age\x20to\x20the\x20correct\x20line\x20above\x20using\x20alphabetical\ \x20order\n\x205.\x20(optional)\x20Add\x20a\x20brief\x20comment\x20behin\ d\x20the\x20language\x20if\x20the\x20name\x20is\x20not\x20self-explanato\ - ry\n\n\r\n\x05\x05\x06\x02]\x01\x12\x04\xc3\x04\x02\x05\n\r\n\x05\x05\ - \x06\x02]\x02\x12\x04\xc3\x04\x08\nb\x06proto3\ + ry\n\n\r\n\x05\x05\x06\x02]\x01\x12\x04\xf6\x04\x02\x05\n\r\n\x05\x05\ + \x06\x02]\x02\x12\x04\xf6\x04\x08\nb\x06proto3\ "; /// `FileDescriptorProto` object which was a source for this generated file @@ -4391,7 +4738,7 @@ pub fn file_descriptor() -> &'static ::protobuf::reflect::FileDescriptor { messages.push(Relationship::generated_message_descriptor_data()); messages.push(Occurrence::generated_message_descriptor_data()); messages.push(Diagnostic::generated_message_descriptor_data()); - let mut enums = ::std::vec::Vec::with_capacity(8); + let mut enums = ::std::vec::Vec::with_capacity(9); enums.push(ProtocolVersion::generated_enum_descriptor_data()); enums.push(TextEncoding::generated_enum_descriptor_data()); enums.push(SymbolRole::generated_enum_descriptor_data()); @@ -4400,6 +4747,7 @@ pub fn file_descriptor() -> &'static ::protobuf::reflect::FileDescriptor { enums.push(DiagnosticTag::generated_enum_descriptor_data()); enums.push(Language::generated_enum_descriptor_data()); enums.push(descriptor::Suffix::generated_enum_descriptor_data()); + enums.push(symbol_information::Kind::generated_enum_descriptor_data()); ::protobuf::reflect::GeneratedFileDescriptor::new_generated( file_descriptor_proto(), deps, diff --git a/bindings/typescript/scip.ts b/bindings/typescript/scip.ts index 69785b71..5e1c3655 100644 --- a/bindings/typescript/scip.ts +++ b/bindings/typescript/scip.ts @@ -1041,6 +1041,7 @@ export namespace scip { symbol?: string; documentation?: string[]; relationships?: Relationship[]; + kind?: SymbolInformation.Kind; }) { super(); pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [3, 4], this.#one_of_decls); @@ -1054,6 +1055,9 @@ export namespace scip { if ("relationships" in data && data.relationships != undefined) { this.relationships = data.relationships; } + if ("kind" in data && data.kind != undefined) { + this.kind = data.kind; + } } } get symbol() { @@ -1074,10 +1078,17 @@ export namespace scip { set relationships(value: Relationship[]) { pb_1.Message.setRepeatedWrapperField(this, 4, value); } + get kind() { + return pb_1.Message.getFieldWithDefault(this, 5, SymbolInformation.Kind.UnspecifiedKind) as SymbolInformation.Kind; + } + set kind(value: SymbolInformation.Kind) { + pb_1.Message.setField(this, 5, value); + } static fromObject(data: { symbol?: string; documentation?: string[]; relationships?: ReturnType[]; + kind?: SymbolInformation.Kind; }): SymbolInformation { const message = new SymbolInformation({}); if (data.symbol != null) { @@ -1089,6 +1100,9 @@ export namespace scip { if (data.relationships != null) { message.relationships = data.relationships.map(item => Relationship.fromObject(item)); } + if (data.kind != null) { + message.kind = data.kind; + } return message; } toObject() { @@ -1096,6 +1110,7 @@ export namespace scip { symbol?: string; documentation?: string[]; relationships?: ReturnType[]; + kind?: SymbolInformation.Kind; } = {}; if (this.symbol != null) { data.symbol = this.symbol; @@ -1106,6 +1121,9 @@ export namespace scip { if (this.relationships != null) { data.relationships = this.relationships.map((item: Relationship) => item.toObject()); } + if (this.kind != null) { + data.kind = this.kind; + } return data; } serialize(): Uint8Array; @@ -1118,6 +1136,8 @@ export namespace scip { writer.writeRepeatedString(3, this.documentation); if (this.relationships.length) writer.writeRepeatedMessage(4, this.relationships, (item: Relationship) => item.serialize(writer)); + if (this.kind != SymbolInformation.Kind.UnspecifiedKind) + writer.writeEnum(5, this.kind); if (!w) return writer.getResultBuffer(); } @@ -1136,6 +1156,9 @@ export namespace scip { case 4: reader.readMessage(message.relationships, () => pb_1.Message.addToRepeatedWrapperField(message, 4, Relationship.deserialize(reader), Relationship)); break; + case 5: + message.kind = reader.readEnum(); + break; default: reader.skipField(); } } @@ -1148,6 +1171,46 @@ export namespace scip { return SymbolInformation.deserialize(bytes); } } + export namespace SymbolInformation { + export enum Kind { + UnspecifiedKind = 0, + Array = 1, + Boolean = 2, + Class = 3, + Constant = 4, + Constructor = 5, + Enum = 6, + Enumerator = 7, + EnumMember = 8, + Event = 9, + Field = 10, + File = 11, + Function = 12, + Interface = 13, + Key = 14, + Macro = 15, + Method = 16, + Module = 17, + Namespace = 18, + Null = 19, + Number = 20, + Object = 21, + Operator = 22, + Package = 23, + PackageObject = 24, + Parameter = 25, + Property = 26, + SelfParameter = 27, + String = 28, + Struct = 29, + Trait = 30, + Type = 31, + TypeParameter = 32, + Union = 33, + Value = 34, + Variable = 35 + } + } export class Relationship extends pb_1.Message { #one_of_decls: number[][] = []; constructor(data?: any[] | { diff --git a/docs/scip.md b/docs/scip.md index cfd1b67e..cdd2b682 100644 --- a/docs/scip.md +++ b/docs/scip.md @@ -296,6 +296,56 @@ docstring or what package it's defined it. | **symbol** | string | Identifier of this symbol, which can be referenced from `Occurence.symbol`. The string must be formatted according to the grammar in `Symbol`. | | repeated **documentation** | string | (optional, but strongly recommended) The markdown-formatted documentation for this symbol. This field is repeated to allow different kinds of documentation. For example, it's nice to include both the signature of a method (parameters and return type) along with the accompanying docstring. | | repeated **relationships** | Relationship | (optional) Relationships to other symbols (e.g., implements, type definition). | +| **kind** | Kind | The kind of this symbol. Use this field instead of `SymbolDescriptor.Suffix` to determine whether something is, for example, a class or a method. | + +#### Kind + +Kind determines the type of a symbol using idiomatic names from the +language's type system. For example, a Java method would have the kind +`Method` while a Go function would have the kind `Function`, even if the +symbols for these use the same syntax for the descriptor: +`SymbolDescriptor.Suffix.Method`. Likewise, a Go struct has the symbol kind +`Struct` while a Java class has the symbol kind `Class` even if they both have +the same descriptor: `SymbolDescriptor.Suffix.Type`. + +| Number | Name | Description | +| ------ | --------------- | ------------------------------------------------------------- | +| 0 | UnspecifiedKind | +| 1 | Array | +| 2 | Boolean | +| 3 | Class | +| 4 | Constant | +| 5 | Constructor | +| 6 | Enum | +| 7 | Enumerator | +| 8 | EnumMember | +| 9 | Event | +| 10 | Field | +| 11 | File | +| 12 | Function | +| 13 | Interface | +| 14 | Key | +| 15 | Macro | +| 16 | Method | +| 17 | Module | +| 18 | Namespace | +| 19 | Null | +| 20 | Number | +| 21 | Object | +| 22 | Operator | +| 23 | Package | +| 24 | PackageObject | +| 25 | Parameter | +| 26 | Property | +| 27 | SelfParameter | +| 28 | String | +| 29 | Struct | +| 30 | Trait | +| 31 | Type | +| 32 | TypeParameter | +| 33 | Union | +| 34 | Value | +| 35 | Variable | Feel free to open a PR proposing new language-specific kinds. | ### ToolInfo diff --git a/scip.proto b/scip.proto index af48b334..1f6b3d60 100644 --- a/scip.proto +++ b/scip.proto @@ -184,8 +184,59 @@ message SymbolInformation { repeated string documentation = 3; // (optional) Relationships to other symbols (e.g., implements, type definition). repeated Relationship relationships = 4; + // The kind of this symbol. Use this field instead of + // `SymbolDescriptor.Suffix` to determine whether something is, for example, a + // class or a method. + Kind kind = 5; + // Kind determines the type of a symbol using idiomatic names from the + // language's type system. For example, a Java method would have the kind + // `Method` while a Go function would have the kind `Function`, even if the + // symbols for these use the same syntax for the descriptor: + // `SymbolDescriptor.Suffix.Method`. Likewise, a Go struct has the symbol kind + // `Struct` while a Java class has the symbol kind `Class` even if they both have + // the same descriptor: `SymbolDescriptor.Suffix.Type`. + enum Kind { + UnspecifiedKind = 0; + Array = 1; + Boolean = 2; + Class = 3; + Constant = 4; + Constructor = 5; + Enum = 6; + Enumerator = 7; + EnumMember = 8; + Event = 9; + Field = 10; + File = 11; + Function = 12; + Interface = 13; + Key = 14; + Macro = 15; + Method = 16; + Module = 17; + Namespace = 18; + Null = 19; + Number = 20; + Object = 21; + Operator = 22; + Package = 23; + PackageObject = 24; + Parameter = 25; + Property = 26; + SelfParameter = 27; + String = 28; + Struct = 29; + Trait = 30; + Type = 31; + TypeParameter = 32; + Union = 33; + Value = 34; + Variable = 35; + // Feel free to open a PR proposing new language-specific kinds. + } } + message Relationship { string symbol = 1; // When resolving "Find references", this field documents what other symbols