internal/fileinit: generate reflect data structures from raw descriptors

This CL takes a significantly different approach to generating support
for protobuf reflection. The previous approach involved generating a
large number of Go literals to represent the reflection information.
While that approach was correct, it resulted in too much binary bloat.

The approach taken here initializes the reflection information from
the raw descriptor proto, which is a relatively dense representation
of the protobuf reflection information. In order to keep initialization
cost low, several measures were taken:
* At program init, the bare minimum is parsed in order to initialize
naming information for enums, messages, extensions, and services declared
in the file. This is done because those top-level declarations are often
relevant for registration.
* Only upon first are most of the other data structures for protobuf
reflection actually initialized.
* Instead of using proto.Unmarshal, a hand-written unmarshaler is used.
This allows us to avoid a dependendency on the descriptor proto and also
because the API for the descriptor proto is fundamentally non-performant
since it requires an allocation for every primitive field.

At a high-level, the new implementation lives in internal/fileinit.

Several changes were made to other parts of the repository:
* cmd/protoc-gen-go:
  * Stop compressing the raw descriptors. While compression does reduce
the size of the descriptors by approximately 2x, it is a pre-mature
optimization since the descriptors themselves are around 1% of the total
binary bloat that is due to generated protobufs.
  * Seeding protobuf reflection from the raw descriptor significantly
simplifies the generator implementation since it is no longer responsible
for constructing a tree of Go literals to represent the same information.
  * We remove the generation of the shadow types and instead call
protoimpl.MessageType.MessageOf. Unfortunately, this incurs an allocation
for every call to ProtoReflect since we need to allocate a tuple that wraps
a pointer to the message value, and a pointer to message type.
* internal/impl:
  * We add a MessageType.GoType field and make it required that it is
set prior to first use. This is done so that we can avoid calling
MessageType.init except for when it is actually needed. The allows code
to call (*FooMessage)(nil).ProtoReflect().Type() without fearing that the
init code will run, possibly triggering a recursive deadlock (where the
init code depends on getting the Type of some dependency which may be
declared within the same file).
* internal/cmd/generate-types:
  * The code to generate reflect/prototype/protofile_list_gen.go was copied
and altered to generated internal/fileinit.desc_list_gen.go.

At a high-level this CL adds significant technical complexity.
However, this is offset by several possible future changes:
* The prototype package can be drastically simplified. We can probably
reimplement internal/legacy to use internal/fileinit instead, allowing us
to drop another dependency on the prototype package. As a result, we can
probably delete most of the constructor types in that package.
* With the prototype package significantly pruned, and the fact that generated
code no longer depend on depends on that package, we can consider merging
what's left of prototype into protodesc.

Change-Id: I6090f023f2e1b6afaf62bd3ae883566242e30715
Reviewed-on: https://go-review.googlesource.com/c/158539
Reviewed-by: Herbie Ong <herbie@google.com>
Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com>
diff --git a/internal/testprotos/test/test.pb.go b/internal/testprotos/test/test.pb.go
index 63dab78..36df46b 100644
--- a/internal/testprotos/test/test.pb.go
+++ b/internal/testprotos/test/test.pb.go
@@ -4,10 +4,12 @@
 package test
 
 import (
+	bytes "bytes"
+	gzip "compress/gzip"
 	proto "github.com/golang/protobuf/proto"
 	protoreflect "github.com/golang/protobuf/v2/reflect/protoreflect"
-	prototype "github.com/golang/protobuf/v2/reflect/prototype"
 	protoimpl "github.com/golang/protobuf/v2/runtime/protoimpl"
+	reflect "reflect"
 )
 
 // This is a compile-time assertion to ensure that this generated file
@@ -26,7 +28,7 @@
 )
 
 func (e TestAllTypes_NestedEnum) Type() protoreflect.EnumType {
-	return xxx_Test_protoFile_EnumTypes[0]
+	return xxx_Test_protoFile_enumTypes[0]
 }
 func (e TestAllTypes_NestedEnum) Number() protoreflect.EnumNumber {
 	return protoreflect.EnumNumber(e)
@@ -66,7 +68,7 @@
 }
 
 func (TestAllTypes_NestedEnum) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_c161fcfdc0c3ff1e, []int{0, 0}
+	return fileDescriptor_c161fcfdc0c3ff1e_gzipped, []int{0, 0}
 }
 
 type TestAllTypes struct {
@@ -139,29 +141,14 @@
 	XXX_sizecache        int32                     `json:"-"`
 }
 
-type xxx_TestAllTypes struct{ m *TestAllTypes }
-
 func (m *TestAllTypes) ProtoReflect() protoreflect.Message {
-	return xxx_TestAllTypes{m}
+	return xxx_Test_protoFile_messageTypes[0].MessageOf(m)
 }
-func (m xxx_TestAllTypes) Type() protoreflect.MessageType {
-	return xxx_Test_protoFile_MessageTypes[0].Type
-}
-func (m xxx_TestAllTypes) KnownFields() protoreflect.KnownFields {
-	return xxx_Test_protoFile_MessageTypes[0].KnownFieldsOf(m.m)
-}
-func (m xxx_TestAllTypes) UnknownFields() protoreflect.UnknownFields {
-	return xxx_Test_protoFile_MessageTypes[0].UnknownFieldsOf(m.m)
-}
-func (m xxx_TestAllTypes) Interface() protoreflect.ProtoMessage {
-	return m.m
-}
-
 func (m *TestAllTypes) Reset()         { *m = TestAllTypes{} }
 func (m *TestAllTypes) String() string { return proto.CompactTextString(m) }
 func (*TestAllTypes) ProtoMessage()    {}
 func (*TestAllTypes) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c161fcfdc0c3ff1e, []int{0}
+	return fileDescriptor_c161fcfdc0c3ff1e_gzipped, []int{0}
 }
 
 func (m *TestAllTypes) XXX_Unmarshal(b []byte) error {
@@ -703,29 +690,14 @@
 	XXX_sizecache                int32  `json:"-"`
 }
 
-type xxx_TestAllExtensions struct{ m *TestAllExtensions }
-
 func (m *TestAllExtensions) ProtoReflect() protoreflect.Message {
-	return xxx_TestAllExtensions{m}
+	return xxx_Test_protoFile_messageTypes[1].MessageOf(m)
 }
-func (m xxx_TestAllExtensions) Type() protoreflect.MessageType {
-	return xxx_Test_protoFile_MessageTypes[1].Type
-}
-func (m xxx_TestAllExtensions) KnownFields() protoreflect.KnownFields {
-	return xxx_Test_protoFile_MessageTypes[1].KnownFieldsOf(m.m)
-}
-func (m xxx_TestAllExtensions) UnknownFields() protoreflect.UnknownFields {
-	return xxx_Test_protoFile_MessageTypes[1].UnknownFieldsOf(m.m)
-}
-func (m xxx_TestAllExtensions) Interface() protoreflect.ProtoMessage {
-	return m.m
-}
-
 func (m *TestAllExtensions) Reset()         { *m = TestAllExtensions{} }
 func (m *TestAllExtensions) String() string { return proto.CompactTextString(m) }
 func (*TestAllExtensions) ProtoMessage()    {}
 func (*TestAllExtensions) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c161fcfdc0c3ff1e, []int{1}
+	return fileDescriptor_c161fcfdc0c3ff1e_gzipped, []int{1}
 }
 
 var extRange_TestAllExtensions = []proto.ExtensionRange{
@@ -761,29 +733,14 @@
 	XXX_sizecache        int32    `json:"-"`
 }
 
-type xxx_OptionalGroupExtension struct{ m *OptionalGroupExtension }
-
 func (m *OptionalGroupExtension) ProtoReflect() protoreflect.Message {
-	return xxx_OptionalGroupExtension{m}
+	return xxx_Test_protoFile_messageTypes[2].MessageOf(m)
 }
-func (m xxx_OptionalGroupExtension) Type() protoreflect.MessageType {
-	return xxx_Test_protoFile_MessageTypes[2].Type
-}
-func (m xxx_OptionalGroupExtension) KnownFields() protoreflect.KnownFields {
-	return xxx_Test_protoFile_MessageTypes[2].KnownFieldsOf(m.m)
-}
-func (m xxx_OptionalGroupExtension) UnknownFields() protoreflect.UnknownFields {
-	return xxx_Test_protoFile_MessageTypes[2].UnknownFieldsOf(m.m)
-}
-func (m xxx_OptionalGroupExtension) Interface() protoreflect.ProtoMessage {
-	return m.m
-}
-
 func (m *OptionalGroupExtension) Reset()         { *m = OptionalGroupExtension{} }
 func (m *OptionalGroupExtension) String() string { return proto.CompactTextString(m) }
 func (*OptionalGroupExtension) ProtoMessage()    {}
 func (*OptionalGroupExtension) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c161fcfdc0c3ff1e, []int{2}
+	return fileDescriptor_c161fcfdc0c3ff1e_gzipped, []int{2}
 }
 
 func (m *OptionalGroupExtension) XXX_Unmarshal(b []byte) error {
@@ -818,29 +775,14 @@
 	XXX_sizecache        int32    `json:"-"`
 }
 
-type xxx_RepeatedGroupExtension struct{ m *RepeatedGroupExtension }
-
 func (m *RepeatedGroupExtension) ProtoReflect() protoreflect.Message {
-	return xxx_RepeatedGroupExtension{m}
+	return xxx_Test_protoFile_messageTypes[3].MessageOf(m)
 }
-func (m xxx_RepeatedGroupExtension) Type() protoreflect.MessageType {
-	return xxx_Test_protoFile_MessageTypes[3].Type
-}
-func (m xxx_RepeatedGroupExtension) KnownFields() protoreflect.KnownFields {
-	return xxx_Test_protoFile_MessageTypes[3].KnownFieldsOf(m.m)
-}
-func (m xxx_RepeatedGroupExtension) UnknownFields() protoreflect.UnknownFields {
-	return xxx_Test_protoFile_MessageTypes[3].UnknownFieldsOf(m.m)
-}
-func (m xxx_RepeatedGroupExtension) Interface() protoreflect.ProtoMessage {
-	return m.m
-}
-
 func (m *RepeatedGroupExtension) Reset()         { *m = RepeatedGroupExtension{} }
 func (m *RepeatedGroupExtension) String() string { return proto.CompactTextString(m) }
 func (*RepeatedGroupExtension) ProtoMessage()    {}
 func (*RepeatedGroupExtension) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c161fcfdc0c3ff1e, []int{3}
+	return fileDescriptor_c161fcfdc0c3ff1e_gzipped, []int{3}
 }
 
 func (m *RepeatedGroupExtension) XXX_Unmarshal(b []byte) error {
@@ -876,29 +818,14 @@
 	XXX_sizecache        int32         `json:"-"`
 }
 
-type xxx_TestAllTypes_NestedMessage struct{ m *TestAllTypes_NestedMessage }
-
 func (m *TestAllTypes_NestedMessage) ProtoReflect() protoreflect.Message {
-	return xxx_TestAllTypes_NestedMessage{m}
+	return xxx_Test_protoFile_messageTypes[4].MessageOf(m)
 }
-func (m xxx_TestAllTypes_NestedMessage) Type() protoreflect.MessageType {
-	return xxx_Test_protoFile_MessageTypes[4].Type
-}
-func (m xxx_TestAllTypes_NestedMessage) KnownFields() protoreflect.KnownFields {
-	return xxx_Test_protoFile_MessageTypes[4].KnownFieldsOf(m.m)
-}
-func (m xxx_TestAllTypes_NestedMessage) UnknownFields() protoreflect.UnknownFields {
-	return xxx_Test_protoFile_MessageTypes[4].UnknownFieldsOf(m.m)
-}
-func (m xxx_TestAllTypes_NestedMessage) Interface() protoreflect.ProtoMessage {
-	return m.m
-}
-
 func (m *TestAllTypes_NestedMessage) Reset()         { *m = TestAllTypes_NestedMessage{} }
 func (m *TestAllTypes_NestedMessage) String() string { return proto.CompactTextString(m) }
 func (*TestAllTypes_NestedMessage) ProtoMessage()    {}
 func (*TestAllTypes_NestedMessage) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c161fcfdc0c3ff1e, []int{0, 0}
+	return fileDescriptor_c161fcfdc0c3ff1e_gzipped, []int{0, 0}
 }
 
 func (m *TestAllTypes_NestedMessage) XXX_Unmarshal(b []byte) error {
@@ -940,29 +867,14 @@
 	XXX_sizecache        int32    `json:"-"`
 }
 
-type xxx_TestAllTypes_OptionalGroup struct{ m *TestAllTypes_OptionalGroup }
-
 func (m *TestAllTypes_OptionalGroup) ProtoReflect() protoreflect.Message {
-	return xxx_TestAllTypes_OptionalGroup{m}
+	return xxx_Test_protoFile_messageTypes[5].MessageOf(m)
 }
-func (m xxx_TestAllTypes_OptionalGroup) Type() protoreflect.MessageType {
-	return xxx_Test_protoFile_MessageTypes[5].Type
-}
-func (m xxx_TestAllTypes_OptionalGroup) KnownFields() protoreflect.KnownFields {
-	return xxx_Test_protoFile_MessageTypes[5].KnownFieldsOf(m.m)
-}
-func (m xxx_TestAllTypes_OptionalGroup) UnknownFields() protoreflect.UnknownFields {
-	return xxx_Test_protoFile_MessageTypes[5].UnknownFieldsOf(m.m)
-}
-func (m xxx_TestAllTypes_OptionalGroup) Interface() protoreflect.ProtoMessage {
-	return m.m
-}
-
 func (m *TestAllTypes_OptionalGroup) Reset()         { *m = TestAllTypes_OptionalGroup{} }
 func (m *TestAllTypes_OptionalGroup) String() string { return proto.CompactTextString(m) }
 func (*TestAllTypes_OptionalGroup) ProtoMessage()    {}
 func (*TestAllTypes_OptionalGroup) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c161fcfdc0c3ff1e, []int{0, 1}
+	return fileDescriptor_c161fcfdc0c3ff1e_gzipped, []int{0, 1}
 }
 
 func (m *TestAllTypes_OptionalGroup) XXX_Unmarshal(b []byte) error {
@@ -997,29 +909,14 @@
 	XXX_sizecache        int32    `json:"-"`
 }
 
-type xxx_TestAllTypes_RepeatedGroup struct{ m *TestAllTypes_RepeatedGroup }
-
 func (m *TestAllTypes_RepeatedGroup) ProtoReflect() protoreflect.Message {
-	return xxx_TestAllTypes_RepeatedGroup{m}
+	return xxx_Test_protoFile_messageTypes[6].MessageOf(m)
 }
-func (m xxx_TestAllTypes_RepeatedGroup) Type() protoreflect.MessageType {
-	return xxx_Test_protoFile_MessageTypes[6].Type
-}
-func (m xxx_TestAllTypes_RepeatedGroup) KnownFields() protoreflect.KnownFields {
-	return xxx_Test_protoFile_MessageTypes[6].KnownFieldsOf(m.m)
-}
-func (m xxx_TestAllTypes_RepeatedGroup) UnknownFields() protoreflect.UnknownFields {
-	return xxx_Test_protoFile_MessageTypes[6].UnknownFieldsOf(m.m)
-}
-func (m xxx_TestAllTypes_RepeatedGroup) Interface() protoreflect.ProtoMessage {
-	return m.m
-}
-
 func (m *TestAllTypes_RepeatedGroup) Reset()         { *m = TestAllTypes_RepeatedGroup{} }
 func (m *TestAllTypes_RepeatedGroup) String() string { return proto.CompactTextString(m) }
 func (*TestAllTypes_RepeatedGroup) ProtoMessage()    {}
 func (*TestAllTypes_RepeatedGroup) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c161fcfdc0c3ff1e, []int{0, 2}
+	return fileDescriptor_c161fcfdc0c3ff1e_gzipped, []int{0, 2}
 }
 
 func (m *TestAllTypes_RepeatedGroup) XXX_Unmarshal(b []byte) error {
@@ -1372,7 +1269,7 @@
 }
 
 func init() {
-	proto.RegisterFile("test.proto", fileDescriptor_c161fcfdc0c3ff1e)
+	proto.RegisterFile("test.proto", fileDescriptor_c161fcfdc0c3ff1e_gzipped)
 	proto.RegisterEnum("goproto.proto.test.TestAllTypes_NestedEnum", TestAllTypes_NestedEnum_name, TestAllTypes_NestedEnum_value)
 	proto.RegisterType((*TestAllTypes)(nil), "goproto.proto.test.TestAllTypes")
 	proto.RegisterMapType((map[bool]bool)(nil), "goproto.proto.test.TestAllTypes.MapBoolBoolEntry")
@@ -1437,1226 +1334,772 @@
 }
 
 var fileDescriptor_c161fcfdc0c3ff1e = []byte{
-	// 2015 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x59, 0x5f, 0x53, 0xdb, 0xce,
-	0x15, 0x45, 0x88, 0xbf, 0x0b, 0x06, 0xa3, 0x1f, 0xd8, 0x22, 0xcc, 0x2f, 0xd9, 0x90, 0xa6, 0x51,
-	0x92, 0xd6, 0xb4, 0xa0, 0xaa, 0x49, 0x9a, 0xa6, 0xc1, 0x05, 0x42, 0x66, 0x9a, 0x64, 0x46, 0x24,
-	0x2f, 0xe9, 0xa4, 0x8c, 0x01, 0xe1, 0x7a, 0x6a, 0x5b, 0xae, 0x65, 0x93, 0xf0, 0xc6, 0x7b, 0x3f,
-	0x40, 0x5f, 0xfb, 0x91, 0xfa, 0x8d, 0xda, 0xd9, 0xbd, 0xda, 0xd5, 0xde, 0xf5, 0x1a, 0x2c, 0x65,
-	0x26, 0xc6, 0xbe, 0xba, 0x3a, 0x67, 0x77, 0xb5, 0x67, 0xaf, 0x76, 0x0f, 0x21, 0x83, 0x28, 0x19,
-	0xd4, 0x7a, 0xfd, 0x78, 0x10, 0x3b, 0x4e, 0x33, 0xe6, 0x5f, 0xe0, 0x67, 0x8d, 0x5d, 0xd9, 0xfe,
-	0xef, 0x33, 0xb2, 0xfc, 0x39, 0x4a, 0x06, 0xfb, 0xed, 0xf6, 0xe7, 0xeb, 0x5e, 0x94, 0x38, 0x8f,
-	0xc9, 0x4a, 0xdc, 0x1b, 0xb4, 0xe2, 0x6e, 0xa3, 0x7d, 0xda, 0xea, 0x0e, 0xf6, 0x76, 0x5d, 0x8b,
-	0x5a, 0xde, 0x6c, 0x58, 0x12, 0xd1, 0xf7, 0x2c, 0xa8, 0xa7, 0x05, 0xbe, 0x3b, 0x4d, 0x2d, 0xcf,
-	0x46, 0x69, 0x81, 0xef, 0x3c, 0x21, 0xab, 0x32, 0x6d, 0x08, 0x70, 0x36, 0xb5, 0xbc, 0x52, 0x28,
-	0xef, 0xfe, 0xc2, 0xa3, 0x23, 0x89, 0x81, 0xef, 0xce, 0x50, 0xcb, 0x9b, 0xc1, 0x89, 0x1a, 0x62,
-	0x02, 0x88, 0xb3, 0xd4, 0xf2, 0xd6, 0xb2, 0xc4, 0x93, 0x51, 0xc4, 0x04, 0x10, 0xe7, 0xa8, 0xe5,
-	0x39, 0x38, 0x31, 0xf0, 0x9d, 0xa7, 0xa4, 0x2c, 0x13, 0x2f, 0x5b, 0x3f, 0xa2, 0x8b, 0xbd, 0x5d,
-	0x77, 0x9e, 0x5a, 0xde, 0x7c, 0x28, 0x01, 0x8e, 0x20, 0x3c, 0x9a, 0x1a, 0xf8, 0xee, 0x02, 0xb5,
-	0xbc, 0x39, 0x2d, 0x35, 0xf0, 0x9d, 0xe7, 0x64, 0x2d, 0xa3, 0x17, 0xb0, 0x8b, 0xd4, 0xf2, 0x56,
-	0x43, 0x89, 0x71, 0x92, 0xc6, 0x0d, 0xc9, 0x81, 0xef, 0x12, 0x6a, 0x79, 0x65, 0x3d, 0x39, 0xf0,
-	0xd1, 0xd0, 0x5f, 0xb6, 0xe3, 0xc6, 0xc0, 0x5d, 0xa2, 0x96, 0x37, 0x9d, 0x0d, 0xfd, 0x11, 0x0b,
-	0xa2, 0xfe, 0x5f, 0xc4, 0xc3, 0xb3, 0x76, 0xe4, 0x2e, 0x53, 0xcb, 0xb3, 0xb2, 0xfe, 0x1f, 0xf0,
-	0xa8, 0xf3, 0x88, 0xc8, 0x3b, 0x4f, 0xcf, 0xe2, 0xb8, 0xed, 0x96, 0xa8, 0xe5, 0x2d, 0x84, 0xcb,
-	0x22, 0x58, 0x8f, 0xe3, 0x36, 0x1e, 0xcd, 0x41, 0xbf, 0xd5, 0x6d, 0xba, 0x2b, 0xd4, 0xf2, 0x16,
-	0x95, 0xd1, 0xe4, 0x51, 0xd4, 0xba, 0xb3, 0xeb, 0x41, 0x94, 0xb8, 0xab, 0xd4, 0xf2, 0x96, 0xb3,
-	0xd6, 0xd5, 0x59, 0xd0, 0xf9, 0x9c, 0x91, 0x36, 0xfb, 0xf1, 0xb0, 0xe7, 0x96, 0xa9, 0xe5, 0x91,
-	0xdd, 0x5a, 0x6d, 0x74, 0x8e, 0xd6, 0xd4, 0xf9, 0x59, 0xfb, 0x94, 0xde, 0xf5, 0x8e, 0xdd, 0x15,
-	0x62, 0x10, 0xe7, 0x92, 0x54, 0x25, 0x79, 0x37, 0x4a, 0x06, 0xd1, 0xc5, 0x69, 0x27, 0x4a, 0x92,
-	0x46, 0x33, 0x72, 0x1d, 0x6a, 0x79, 0x4b, 0x13, 0xe0, 0x7f, 0xe4, 0xb7, 0x7d, 0x80, 0xbb, 0xc2,
-	0x0d, 0x01, 0x87, 0xc2, 0xce, 0x37, 0xb2, 0xae, 0xf3, 0x44, 0xdd, 0x61, 0xc7, 0xdd, 0xa0, 0x96,
-	0xb7, 0xb2, 0xfb, 0x7c, 0x42, 0x92, 0xc3, 0xee, 0xb0, 0x13, 0x3a, 0x98, 0x81, 0xc5, 0xd8, 0x18,
-	0xf6, 0xa3, 0x5e, 0xd4, 0x60, 0xb8, 0x30, 0xc5, 0x1f, 0x50, 0x9b, 0x69, 0x50, 0x44, 0xa5, 0x06,
-	0xd5, 0xb4, 0xc0, 0x77, 0x29, 0xb5, 0x99, 0x06, 0x95, 0x34, 0x50, 0x8c, 0x4c, 0x4b, 0x35, 0xf8,
-	0x90, 0xda, 0x4c, 0x83, 0x22, 0x9c, 0x69, 0x10, 0x25, 0x06, 0xbe, 0xbb, 0x4d, 0x6d, 0xa6, 0x41,
-	0x35, 0x51, 0x43, 0x4c, 0x35, 0xf8, 0x88, 0xda, 0x4c, 0x83, 0x22, 0x7c, 0x32, 0x8a, 0x98, 0x6a,
-	0xf0, 0x17, 0xd4, 0x66, 0x1a, 0x54, 0x13, 0x41, 0x83, 0x32, 0x51, 0x88, 0xe5, 0x31, 0xb5, 0x99,
-	0x06, 0x45, 0x5c, 0xd1, 0x20, 0x4e, 0x0d, 0x7c, 0xf7, 0x97, 0xd4, 0x66, 0x1a, 0x44, 0xa9, 0xa0,
-	0xc1, 0x8c, 0x5e, 0xc0, 0x3e, 0xa1, 0x36, 0xd3, 0xa0, 0x6c, 0x80, 0xa2, 0x41, 0x2d, 0x39, 0xf0,
-	0x5d, 0x8f, 0xda, 0x4c, 0x83, 0x38, 0x19, 0x34, 0x98, 0x35, 0x82, 0x6b, 0xf0, 0x29, 0xb5, 0x99,
-	0x06, 0x65, 0x13, 0x84, 0x06, 0x65, 0x5a, 0xaa, 0xc1, 0x67, 0xd4, 0x66, 0x1a, 0x14, 0xe1, 0x4c,
-	0x83, 0x32, 0x91, 0x6b, 0xf0, 0x39, 0xb5, 0x99, 0x06, 0x45, 0x50, 0x68, 0x30, 0x6b, 0x21, 0x68,
-	0xf0, 0x57, 0xd4, 0x66, 0x1a, 0x94, 0xed, 0x93, 0x1a, 0xcc, 0xd0, 0xb8, 0x06, 0x7f, 0x4d, 0x6d,
-	0xa6, 0x41, 0x09, 0x27, 0x34, 0x28, 0x02, 0xa0, 0xc1, 0x1a, 0xb5, 0x27, 0xd2, 0x60, 0x98, 0xde,
-	0x95, 0x6a, 0x10, 0x81, 0x30, 0x0d, 0x4a, 0x72, 0x4d, 0x83, 0xbf, 0xa1, 0x76, 0x11, 0x0d, 0x0a,
-	0xb8, 0x11, 0x0d, 0xea, 0x3c, 0x5c, 0x83, 0x7b, 0xd4, 0xce, 0xad, 0x41, 0xcc, 0xc0, 0x35, 0xf8,
-	0x57, 0xb2, 0xda, 0x69, 0xf4, 0x40, 0x7e, 0xa9, 0x08, 0x5f, 0xf0, 0xe6, 0xef, 0xdd, 0x89, 0xfc,
-	0xa1, 0xd1, 0xe3, 0x02, 0xe5, 0x1f, 0x87, 0xdd, 0x41, 0xff, 0x3a, 0x2c, 0x75, 0xd4, 0x98, 0x02,
-	0x1e, 0xf8, 0xa9, 0x74, 0x5f, 0xe6, 0x02, 0x0f, 0x7c, 0xfe, 0x81, 0xc0, 0xd3, 0x98, 0xd3, 0x20,
-	0x6b, 0x0c, 0x1c, 0xa4, 0x2e, 0x14, 0xff, 0x8a, 0xc3, 0xff, 0x6e, 0x12, 0x78, 0x58, 0x0d, 0xe0,
-	0x13, 0x08, 0x58, 0x63, 0xd5, 0xa8, 0x4a, 0x11, 0xf8, 0x62, 0xad, 0xf8, 0x43, 0x3e, 0x8a, 0xc0,
-	0x87, 0x4f, 0x4c, 0x21, 0xa2, 0x82, 0x02, 0x96, 0x17, 0xb1, 0xca, 0xbc, 0x9e, 0x9c, 0x02, 0x56,
-	0xa0, 0x13, 0xad, 0x17, 0x6a, 0x54, 0xa5, 0x08, 0x7c, 0xb1, 0x3e, 0xfd, 0x31, 0x1f, 0x45, 0xe0,
-	0x9f, 0x68, 0xbd, 0x50, 0xa3, 0x4e, 0x93, 0xfc, 0xc4, 0x28, 0xd2, 0x35, 0x46, 0x2e, 0x6d, 0x6f,
-	0x38, 0xc9, 0xef, 0x27, 0x21, 0x49, 0x97, 0xbd, 0xf4, 0x0f, 0xd0, 0xb0, 0x66, 0xe3, 0x38, 0x22,
-	0x0a, 0x7c, 0xb9, 0x30, 0xfe, 0x29, 0x27, 0x51, 0xe0, 0xa7, 0x7f, 0x34, 0x22, 0x19, 0x77, 0x3a,
-	0x64, 0x83, 0x0f, 0x9a, 0xe8, 0x92, 0x5c, 0x57, 0xdf, 0x72, 0xaa, 0x97, 0x13, 0x0d, 0x5c, 0x7a,
-	0x8f, 0xf8, 0x0b, 0x64, 0xac, 0x03, 0xfa, 0x15, 0x4c, 0xc7, 0x9e, 0x92, 0xe8, 0xd9, 0x7e, 0x5e,
-	0xba, 0xc0, 0x17, 0x7f, 0x75, 0xba, 0xec, 0x0a, 0x56, 0x3d, 0x2c, 0xec, 0xf5, 0x9c, 0xaa, 0xe7,
-	0x2b, 0xbf, 0xa6, 0x7a, 0xa8, 0x06, 0x7f, 0x23, 0xe5, 0x0c, 0x3c, 0x2d, 0x07, 0x7f, 0xe6, 0xe8,
-	0xfe, 0xc4, 0xe8, 0x50, 0x2f, 0x00, 0x7e, 0xa5, 0x83, 0x82, 0xce, 0x17, 0xc2, 0x08, 0x79, 0xfd,
-	0x80, 0x22, 0x72, 0xc0, 0xc1, 0x7f, 0x3b, 0x09, 0x38, 0x2b, 0x30, 0xec, 0x3f, 0x20, 0x2f, 0x75,
-	0xb2, 0x88, 0x94, 0x09, 0xaf, 0x2d, 0xa2, 0xf0, 0x1c, 0xe6, 0x90, 0x09, 0xbf, 0x03, 0x3e, 0x15,
-	0x99, 0x28, 0x51, 0x31, 0x32, 0x29, 0x05, 0x94, 0xac, 0xa3, 0xc9, 0x47, 0x06, 0x50, 0x78, 0x51,
-	0xcb, 0x46, 0x46, 0x09, 0x3a, 0xdf, 0xc9, 0xa6, 0x82, 0xaf, 0x55, 0xa5, 0x77, 0x9c, 0xe8, 0xf5,
-	0xe4, 0x44, 0xa8, 0x0e, 0x01, 0x61, 0xa5, 0x63, 0xbc, 0xe8, 0x74, 0x49, 0x65, 0x94, 0x98, 0x97,
-	0xa9, 0xf7, 0x39, 0xe6, 0xaf, 0x02, 0xcc, 0x6a, 0x93, 0x32, 0x7f, 0xb5, 0x2b, 0xce, 0x23, 0xb2,
-	0x1c, 0x77, 0xa3, 0xf8, 0x52, 0x2c, 0xfb, 0x31, 0xdb, 0x6c, 0x1d, 0x4f, 0x85, 0x4b, 0x3c, 0x9a,
-	0xae, 0xde, 0x67, 0x64, 0x1d, 0x92, 0xb4, 0x81, 0xe8, 0x15, 0x79, 0x45, 0x3e, 0x9e, 0x0a, 0x1d,
-	0x8e, 0x86, 0x3b, 0x2e, 0x1b, 0x92, 0xce, 0x97, 0x7f, 0xb2, 0xcd, 0x82, 0x6c, 0x48, 0xfa, 0xd8,
-	0x1f, 0x12, 0xf8, 0x99, 0x3e, 0xf1, 0x3e, 0xdb, 0x28, 0x1c, 0x4f, 0x85, 0x84, 0x07, 0xe1, 0xc9,
-	0x3d, 0x20, 0x24, 0x4d, 0x61, 0x13, 0x3a, 0x61, 0x3b, 0x93, 0xe3, 0xa9, 0x70, 0x11, 0x32, 0xd8,
-	0xec, 0x44, 0x3d, 0x0e, 0x7c, 0x77, 0xc0, 0x76, 0x8d, 0xa8, 0xc7, 0x81, 0x9f, 0x11, 0x81, 0xa4,
-	0x87, 0x6c, 0xbf, 0x24, 0x89, 0x40, 0x9c, 0x12, 0x27, 0x15, 0xe6, 0x15, 0xdb, 0x2b, 0x49, 0x9c,
-	0x54, 0x61, 0x7f, 0x11, 0xad, 0xe1, 0x8f, 0xf0, 0x7b, 0xee, 0xb7, 0x7d, 0xd9, 0x74, 0xf6, 0xe3,
-	0x5e, 0x83, 0x94, 0xf0, 0xa0, 0x2d, 0x13, 0xab, 0x91, 0x6e, 0xb7, 0xad, 0x86, 0x53, 0x27, 0x4b,
-	0xe7, 0x71, 0x3f, 0x3a, 0x1f, 0xf6, 0x93, 0xd6, 0x55, 0xc4, 0xf7, 0xd7, 0x4b, 0xbb, 0xf4, 0x2e,
-	0xb6, 0x50, 0xbd, 0xe9, 0xde, 0xcf, 0xa4, 0x84, 0x36, 0x4c, 0x40, 0xb1, 0x96, 0x52, 0xb0, 0xcb,
-	0xe8, 0x5d, 0x0e, 0x2e, 0xef, 0x88, 0xcb, 0x6f, 0x89, 0x33, 0xfa, 0x2e, 0xe3, 0x94, 0x89, 0xfd,
-	0x8f, 0xe8, 0x3a, 0x6d, 0x27, 0xfb, 0xea, 0xac, 0x93, 0xd9, 0xab, 0x46, 0x7b, 0x08, 0x6d, 0x9c,
-	0x0d, 0xe1, 0xc7, 0xab, 0xe9, 0x17, 0x56, 0x86, 0xa0, 0xbe, 0xb0, 0xa8, 0x08, 0xb6, 0x01, 0xc1,
-	0x56, 0x11, 0xea, 0x64, 0xdd, 0xf4, 0x4e, 0xa2, 0x62, 0x94, 0x0c, 0x18, 0x25, 0x33, 0x06, 0x7a,
-	0xe9, 0x50, 0x31, 0x66, 0x0c, 0x18, 0x33, 0xa3, 0x18, 0x23, 0x6f, 0x15, 0x2a, 0xc6, 0x9a, 0x01,
-	0x63, 0xcd, 0x8c, 0x81, 0x5e, 0x1b, 0x54, 0x0c, 0xc7, 0x80, 0xe1, 0xa8, 0x18, 0x07, 0xa4, 0x62,
-	0x7e, 0x2b, 0x50, 0x51, 0xe6, 0x0d, 0x28, 0xf3, 0x63, 0x50, 0x70, 0xc9, 0x57, 0x51, 0xe6, 0x0c,
-	0x28, 0x73, 0x2a, 0xca, 0x11, 0x71, 0xc7, 0x55, 0x73, 0x15, 0x67, 0xd5, 0x80, 0xb3, 0x3a, 0x0e,
-	0x47, 0x2b, 0xd3, 0x2a, 0x4e, 0xd9, 0x80, 0x53, 0x36, 0xce, 0x36, 0xb5, 0x0a, 0xdf, 0x35, 0x5f,
-	0xa7, 0x55, 0x84, 0x7d, 0xf2, 0x93, 0xa1, 0xd2, 0xde, 0x05, 0x61, 0xa9, 0x10, 0x6f, 0x48, 0x59,
-	0xaf, 0xa7, 0xea, 0xfd, 0x0b, 0x86, 0xfb, 0x17, 0x0c, 0x93, 0x44, 0x2f, 0x9a, 0x2a, 0xc6, 0xa2,
-	0x01, 0x63, 0x71, 0xb4, 0x1b, 0x7a, 0x59, 0xbc, 0x0b, 0x62, 0x59, 0x85, 0xb8, 0x26, 0x5b, 0xb7,
-	0x14, 0x3c, 0x03, 0xd4, 0x81, 0x0a, 0x95, 0x7f, 0x97, 0xa7, 0x50, 0x27, 0x30, 0x1d, 0x4c, 0x55,
-	0xcf, 0xc0, 0xbb, 0xaf, 0xf2, 0xe6, 0xdc, 0xf8, 0x65, 0xa4, 0xdb, 0x2f, 0x09, 0x51, 0xea, 0xe8,
-	0x3c, 0xb1, 0x8f, 0x3e, 0x7d, 0x2a, 0x4f, 0xb1, 0x2f, 0xf5, 0xfd, 0xb0, 0x6c, 0xc1, 0x97, 0xaf,
-	0xe5, 0x69, 0xd6, 0x82, 0x8f, 0x87, 0xef, 0xca, 0xff, 0x13, 0xff, 0xac, 0x7a, 0x49, 0x56, 0x97,
-	0x56, 0xd4, 0xbe, 0xd8, 0xfe, 0x99, 0xac, 0xa5, 0x7c, 0x87, 0x3f, 0x06, 0x51, 0x37, 0x69, 0xc5,
-	0xdd, 0xe4, 0xd9, 0xc2, 0x82, 0x55, 0xbe, 0xb9, 0xb9, 0xb9, 0x99, 0xde, 0x7e, 0x42, 0xaa, 0x68,
-	0x49, 0x3e, 0x8d, 0x44, 0x16, 0x5e, 0x9c, 0x59, 0x22, 0x5a, 0x9c, 0xf5, 0x44, 0xb1, 0x4c, 0xbf,
-	0x3a, 0x25, 0x2e, 0x3e, 0xb2, 0x55, 0x32, 0x1f, 0xdf, 0x32, 0x1c, 0x59, 0xf3, 0xd2, 0x99, 0x5d,
-	0x41, 0x67, 0xbc, 0xf2, 0xb2, 0x4e, 0x10, 0xf8, 0xf9, 0x09, 0x60, 0x5d, 0xaf, 0xa0, 0xd3, 0xe1,
-	0x8c, 0xa0, 0x41, 0x36, 0xb5, 0x63, 0xe2, 0xfc, 0x0c, 0x70, 0xae, 0x5c, 0xc5, 0xe7, 0xca, 0xe3,
-	0x29, 0x8a, 0x74, 0x02, 0x4e, 0xa4, 0xab, 0xf8, 0x44, 0xda, 0x4c, 0x91, 0x14, 0xec, 0x05, 0x9c,
-	0x65, 0x57, 0xf1, 0x59, 0xf6, 0x78, 0x8a, 0x22, 0xbd, 0x80, 0x53, 0xf0, 0x2a, 0x3e, 0x05, 0xcf,
-	0x28, 0xce, 0xc9, 0x3d, 0xfd, 0x38, 0x3c, 0x3f, 0x07, 0x9c, 0x9f, 0xbb, 0xda, 0xf9, 0xf9, 0x2d,
-	0x24, 0x45, 0x3a, 0x02, 0x27, 0xef, 0xae, 0x76, 0xf2, 0x9e, 0x91, 0x44, 0x64, 0x6b, 0xe4, 0x08,
-	0x3e, 0x3f, 0x0b, 0x9c, 0xd9, 0x6f, 0xea, 0x67, 0xf6, 0xb7, 0xd1, 0x14, 0xe9, 0x0c, 0x9c, 0xf6,
-	0x6f, 0xea, 0xa7, 0xfd, 0x66, 0x11, 0xf2, 0xd7, 0xd8, 0xfc, 0x1c, 0xe0, 0x13, 0x54, 0x90, 0x4f,
-	0x60, 0x9e, 0x5b, 0xf0, 0x12, 0x9c, 0x9f, 0x01, 0x1c, 0x86, 0x2a, 0x76, 0x18, 0x32, 0x8a, 0x6f,
-	0xca, 0xf9, 0x3c, 0xdf, 0xa6, 0xe6, 0x26, 0x00, 0x6f, 0x62, 0x43, 0xf5, 0x26, 0xc6, 0xa8, 0x03,
-	0xb6, 0x5c, 0xb9, 0x09, 0xc0, 0xd5, 0xa8, 0x62, 0x57, 0xc3, 0xfc, 0x14, 0xf8, 0xae, 0x25, 0x3f,
-	0x03, 0xf8, 0x21, 0x15, 0xe4, 0x87, 0x64, 0x04, 0xff, 0xb2, 0xb2, 0x31, 0x6a, 0x6a, 0xcb, 0xfe,
-	0x84, 0x04, 0x60, 0xa5, 0x18, 0x0b, 0xe1, 0x98, 0xca, 0x93, 0xb5, 0x86, 0x53, 0x66, 0xad, 0xf9,
-	0x8f, 0x45, 0x1e, 0x8e, 0x71, 0x54, 0xf2, 0xb7, 0xab, 0x98, 0x05, 0x73, 0xdf, 0x68, 0xc1, 0x64,
-	0x4d, 0xfc, 0xb7, 0x45, 0xee, 0x9b, 0xcc, 0x98, 0xfc, 0xed, 0x2b, 0xe0, 0xde, 0x6c, 0x8d, 0xba,
-	0x37, 0x68, 0xae, 0x60, 0x1b, 0x27, 0x7f, 0x93, 0xc0, 0xf7, 0xa9, 0x20, 0xdf, 0x67, 0x2c, 0x41,
-	0x91, 0x65, 0x07, 0x1c, 0xa3, 0x0a, 0x72, 0x8c, 0x90, 0xa0, 0x34, 0xeb, 0x28, 0x3f, 0x03, 0x78,
-	0x4d, 0x55, 0xec, 0x35, 0x8d, 0xa7, 0x28, 0xd2, 0x09, 0x70, 0xa9, 0xaa, 0xd8, 0xa5, 0x32, 0x53,
-	0x14, 0xad, 0xcb, 0xe0, 0x6f, 0x55, 0xb1, 0xbf, 0x35, 0x9e, 0xa2, 0x48, 0x2f, 0xc0, 0x19, 0xab,
-	0x62, 0x67, 0x0c, 0x95, 0x4c, 0xdd, 0x22, 0xcb, 0xcf, 0x01, 0x9e, 0x9a, 0xab, 0x79, 0x6a, 0xb7,
-	0x90, 0x14, 0xe9, 0x08, 0xb8, 0x71, 0xae, 0xe6, 0xc6, 0xa1, 0x82, 0x39, 0x62, 0xcb, 0xe5, 0x67,
-	0x01, 0x1f, 0x6f, 0x53, 0xf7, 0xf1, 0x6e, 0xa3, 0x29, 0xd2, 0x19, 0x70, 0x00, 0x37, 0x75, 0x07,
-	0xd0, 0x2c, 0xc2, 0x82, 0x75, 0x19, 0xbc, 0xc3, 0x0a, 0xf2, 0x0e, 0xcd, 0x73, 0xab, 0x68, 0x5d,
-	0x06, 0xd7, 0xb1, 0x8a, 0x5d, 0x47, 0x54, 0x97, 0x91, 0xfd, 0x98, 0x9f, 0x00, 0xfc, 0xca, 0x0d,
-	0xd5, 0xaf, 0x1c, 0xa3, 0x8e, 0x82, 0x75, 0x19, 0x9c, 0xce, 0x2a, 0x76, 0x3a, 0xcd, 0x4f, 0xa1,
-	0x60, 0x5d, 0x06, 0x8f, 0xb4, 0x82, 0x3c, 0x52, 0x5c, 0x97, 0x91, 0xd1, 0x99, 0x9f, 0x00, 0xec,
-	0x55, 0x63, 0x7d, 0x19, 0xb3, 0xd1, 0xcb, 0x5a, 0x63, 0xa8, 0xcb, 0x63, 0x5c, 0xd6, 0xfc, 0xed,
-	0x2a, 0x66, 0xcb, 0xde, 0x37, 0xda, 0xb2, 0xb8, 0x2e, 0x9b, 0x0c, 0xda, 0xfc, 0xed, 0x2b, 0xe0,
-	0xe8, 0x6e, 0x8d, 0x3a, 0xba, 0x12, 0xb0, 0xfe, 0xe2, 0x6b, 0xd0, 0x6c, 0x0d, 0xfe, 0x3e, 0x3c,
-	0xab, 0x9d, 0xc7, 0x9d, 0x9d, 0x66, 0xdc, 0x6e, 0x74, 0x9b, 0x3b, 0x1c, 0xf4, 0x6c, 0x78, 0xb9,
-	0x73, 0xb5, 0xbb, 0xd3, 0xea, 0x0e, 0xa2, 0x7e, 0xb7, 0xd1, 0xde, 0x61, 0x1c, 0xfc, 0x42, 0xc2,
-	0xbf, 0xfe, 0x3f, 0x00, 0x00, 0xff, 0xff, 0xf6, 0x2d, 0x9b, 0x88, 0x4e, 0x25, 0x00, 0x00,
+	// 9550 bytes of the wire-encoded FileDescriptorProto
+	0x0a, 0x0a, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x67, 0x6f,
+	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74,
+	0x22, 0xd0, 0x2a, 0x0a, 0x0c, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65,
+	0x73, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6e,
+	0x74, 0x33, 0x32, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f,
+	0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69,
+	0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03,
+	0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12,
+	0x27, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x75, 0x69, 0x6e, 0x74,
+	0x33, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
+	0x61, 0x6c, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69,
+	0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28,
+	0x04, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x69, 0x6e, 0x74, 0x36,
+	0x34, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x69,
+	0x6e, 0x74, 0x33, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69,
+	0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x70,
+	0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x06, 0x20,
+	0x01, 0x28, 0x12, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x69, 0x6e,
+	0x74, 0x36, 0x34, 0x12, 0x29, 0x0a, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f,
+	0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x07, 0x52, 0x0f, 0x6f,
+	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x29,
+	0x0a, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64,
+	0x36, 0x34, 0x18, 0x08, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
+	0x61, 0x6c, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x2b, 0x0a, 0x11, 0x6f, 0x70, 0x74,
+	0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x09,
+	0x20, 0x01, 0x28, 0x0f, 0x52, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x66,
+	0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x2b, 0x0a, 0x11, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
+	0x61, 0x6c, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x0a, 0x20, 0x01, 0x28,
+	0x10, 0x52, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x66, 0x69, 0x78, 0x65,
+	0x64, 0x36, 0x34, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f,
+	0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x6f, 0x70, 0x74,
+	0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x70,
+	0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x0c, 0x20,
+	0x01, 0x28, 0x01, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x75,
+	0x62, 0x6c, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f,
+	0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6f, 0x70, 0x74, 0x69,
+	0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69,
+	0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28,
+	0x09, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e,
+	0x67, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x79,
+	0x74, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f,
+	0x6e, 0x61, 0x6c, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x54, 0x0a, 0x0d, 0x6f, 0x70, 0x74, 0x69,
+	0x6f, 0x6e, 0x61, 0x6c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0a, 0x32,
+	0x2e, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
+	0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65,
+	0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52,
+	0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x66,
+	0x0a, 0x17, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65,
+	0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32,
+	0x2e, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
+	0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65,
+	0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52,
+	0x15, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d,
+	0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x5d, 0x0a, 0x14, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
+	0x61, 0x6c, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x15,
+	0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70,
+	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c,
+	0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75,
+	0x6d, 0x52, 0x12, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x65, 0x73, 0x74, 0x65,
+	0x64, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65,
+	0x64, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, 0x72,
+	0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x25, 0x0a, 0x0e,
+	0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x20,
+	0x20, 0x03, 0x28, 0x03, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e,
+	0x74, 0x36, 0x34, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f,
+	0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x21, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0e, 0x72, 0x65,
+	0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x27, 0x0a, 0x0f,
+	0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18,
+	0x22, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x55,
+	0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65,
+	0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x23, 0x20, 0x03, 0x28, 0x11, 0x52, 0x0e,
+	0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x27,
+	0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36,
+	0x34, 0x18, 0x24, 0x20, 0x03, 0x28, 0x12, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65,
+	0x64, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61,
+	0x74, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x25, 0x20, 0x03, 0x28,
+	0x07, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64,
+	0x33, 0x32, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66,
+	0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x26, 0x20, 0x03, 0x28, 0x06, 0x52, 0x0f, 0x72, 0x65,
+	0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x2b, 0x0a,
+	0x11, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64,
+	0x33, 0x32, 0x18, 0x27, 0x20, 0x03, 0x28, 0x0f, 0x52, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74,
+	0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x65,
+	0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18,
+	0x28, 0x20, 0x03, 0x28, 0x10, 0x52, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53,
+	0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61,
+	0x74, 0x65, 0x64, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x29, 0x20, 0x03, 0x28, 0x02, 0x52,
+	0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x27,
+	0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c,
+	0x65, 0x18, 0x2a, 0x20, 0x03, 0x28, 0x01, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65,
+	0x64, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61,
+	0x74, 0x65, 0x64, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x2b, 0x20, 0x03, 0x28, 0x08, 0x52, 0x0c,
+	0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x27, 0x0a, 0x0f,
+	0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18,
+	0x2c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53,
+	0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65,
+	0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x2d, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0d, 0x72,
+	0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x54, 0x0a, 0x0d,
+	0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x2e, 0x20,
+	0x03, 0x28, 0x0a, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72,
+	0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c,
+	0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x47, 0x72,
+	0x6f, 0x75, 0x70, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x67, 0x72, 0x6f,
+	0x75, 0x70, 0x12, 0x66, 0x0a, 0x17, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6e,
+	0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x30, 0x20,
+	0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72,
+	0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c,
+	0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73,
+	0x61, 0x67, 0x65, 0x52, 0x15, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4e, 0x65, 0x73,
+	0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x5d, 0x0a, 0x14, 0x72, 0x65,
+	0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e,
+	0x75, 0x6d, 0x18, 0x33, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f,
+	0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65,
+	0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65,
+	0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x12, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4e,
+	0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x5b, 0x0a, 0x0f, 0x6d, 0x61, 0x70,
+	0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x38, 0x20, 0x03,
+	0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f,
+	0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54,
+	0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x49, 0x6e, 0x74,
+	0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33,
+	0x32, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x5b, 0x0a, 0x0f, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e,
+	0x74, 0x36, 0x34, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x39, 0x20, 0x03, 0x28, 0x0b, 0x32,
+	0x33, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
+	0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65,
+	0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x45,
+	0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x49, 0x6e,
+	0x74, 0x36, 0x34, 0x12, 0x61, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33,
+	0x32, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x3a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35,
+	0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74,
+	0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73,
+	0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32,
+	0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32,
+	0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x61, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69,
+	0x6e, 0x74, 0x36, 0x34, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x3b, 0x20, 0x03, 0x28,
+	0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+	0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79,
+	0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x55, 0x69, 0x6e,
+	0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e,
+	0x74, 0x36, 0x34, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x61, 0x0a, 0x11, 0x6d, 0x61, 0x70,
+	0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x3c,
+	0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70,
+	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c,
+	0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32,
+	0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6d, 0x61, 0x70,
+	0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x61, 0x0a, 0x11,
+	0x6d, 0x61, 0x70, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36,
+	0x34, 0x18, 0x3d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74,
+	0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73,
+	0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x69, 0x6e,
+	0x74, 0x36, 0x34, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f,
+	0x6d, 0x61, 0x70, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12,
+	0x67, 0x0a, 0x13, 0x6d, 0x61, 0x70, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x5f, 0x66,
+	0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x3e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67,
+	0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73,
+	0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d,
+	0x61, 0x70, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32,
+	0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x6d, 0x61, 0x70, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33,
+	0x32, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x67, 0x0a, 0x13, 0x6d, 0x61, 0x70, 0x5f,
+	0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18,
+	0x3f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
+	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41,
+	0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x46, 0x69, 0x78, 0x65, 0x64,
+	0x36, 0x34, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11,
+	0x6d, 0x61, 0x70, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36,
+	0x34, 0x12, 0x6d, 0x0a, 0x15, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33,
+	0x32, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x40, 0x20, 0x03, 0x28, 0x0b,
+	0x32, 0x39, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+	0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70,
+	0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x53, 0x66,
+	0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x13, 0x6d, 0x61, 0x70,
+	0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32,
+	0x12, 0x6d, 0x0a, 0x15, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34,
+	0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x41, 0x20, 0x03, 0x28, 0x0b, 0x32,
+	0x39, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
+	0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65,
+	0x73, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x53, 0x66, 0x69,
+	0x78, 0x65, 0x64, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x13, 0x6d, 0x61, 0x70, 0x53,
+	0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12,
+	0x5b, 0x0a, 0x0f, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x66, 0x6c, 0x6f,
+	0x61, 0x74, 0x18, 0x42, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f,
+	0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65,
+	0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e,
+	0x74, 0x33, 0x32, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6d,
+	0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x5e, 0x0a, 0x10,
+	0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65,
+	0x18, 0x43, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74,
+	0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33,
+	0x32, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x6d, 0x61,
+	0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x55, 0x0a, 0x0d,
+	0x6d, 0x61, 0x70, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x44, 0x20,
+	0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72,
+	0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c,
+	0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x42, 0x6f, 0x6f,
+	0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x6d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x42,
+	0x6f, 0x6f, 0x6c, 0x12, 0x61, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e,
+	0x67, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x45, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35,
+	0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74,
+	0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73,
+	0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67,
+	0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67,
+	0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x5e, 0x0a, 0x10, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74,
+	0x72, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x46, 0x20, 0x03, 0x28, 0x0b,
+	0x32, 0x34, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+	0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70,
+	0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x79, 0x74, 0x65,
+	0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e,
+	0x67, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x77, 0x0a, 0x19, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74,
+	0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73,
+	0x61, 0x67, 0x65, 0x18, 0x47, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x70, 0x72,
+	0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54,
+	0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x53,
+	0x74, 0x72, 0x69, 0x6e, 0x67, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61,
+	0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x16, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69,
+	0x6e, 0x67, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12,
+	0x6e, 0x0a, 0x16, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6e, 0x65,
+	0x73, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x49, 0x20, 0x03, 0x28, 0x0b, 0x32,
+	0x39, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
+	0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65,
+	0x73, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4e, 0x65, 0x73, 0x74, 0x65,
+	0x64, 0x45, 0x6e, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x13, 0x6d, 0x61, 0x70, 0x53,
+	0x74, 0x72, 0x69, 0x6e, 0x67, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x12,
+	0x23, 0x0a, 0x0c, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18,
+	0x6f, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x55, 0x69,
+	0x6e, 0x74, 0x33, 0x32, 0x12, 0x62, 0x0a, 0x14, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x6e, 0x65,
+	0x73, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x70, 0x20, 0x01,
+	0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f,
+	0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54,
+	0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61,
+	0x67, 0x65, 0x48, 0x00, 0x52, 0x12, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x4e, 0x65, 0x73, 0x74, 0x65,
+	0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x6f, 0x6e, 0x65, 0x6f,
+	0x66, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x71, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00,
+	0x52, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x21, 0x0a,
+	0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x72, 0x20, 0x01,
+	0x28, 0x0c, 0x48, 0x00, 0x52, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x42, 0x79, 0x74, 0x65, 0x73,
+	0x12, 0x1f, 0x0a, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x73,
+	0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x42, 0x6f, 0x6f,
+	0x6c, 0x12, 0x23, 0x0a, 0x0c, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36,
+	0x34, 0x18, 0x74, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66,
+	0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x21, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f,
+	0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x75, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0a, 0x6f,
+	0x6e, 0x65, 0x6f, 0x66, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x23, 0x0a, 0x0c, 0x6f, 0x6e, 0x65,
+	0x6f, 0x66, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x76, 0x20, 0x01, 0x28, 0x01, 0x48,
+	0x00, 0x52, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x4c,
+	0x0a, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x77, 0x20, 0x01,
+	0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f,
+	0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54,
+	0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x48,
+	0x00, 0x52, 0x09, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x45, 0x6e, 0x75, 0x6d, 0x1a, 0x61, 0x0a, 0x0d,
+	0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x0c, 0x0a,
+	0x01, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x61, 0x12, 0x42, 0x0a, 0x0b, 0x63,
+	0x6f, 0x72, 0x65, 0x63, 0x75, 0x72, 0x73, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
+	0x32, 0x20, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+	0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70,
+	0x65, 0x73, 0x52, 0x0b, 0x63, 0x6f, 0x72, 0x65, 0x63, 0x75, 0x72, 0x73, 0x69, 0x76, 0x65, 0x1a,
+	0x1d, 0x0a, 0x0d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70,
+	0x12, 0x0c, 0x0a, 0x01, 0x61, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x61, 0x1a, 0x1d,
+	0x0a, 0x0d, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12,
+	0x0c, 0x0a, 0x01, 0x61, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x61, 0x1a, 0x40, 0x0a,
+	0x12, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e,
+	0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,
+	0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
+	0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a,
+	0x40, 0x0a, 0x12, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x49, 0x6e, 0x74, 0x36, 0x34,
+	0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
+	0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
+	0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
+	0x01, 0x1a, 0x42, 0x0a, 0x14, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x55, 0x69,
+	0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
+	0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76,
+	0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
+	0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x14, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74,
+	0x36, 0x34, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a,
+	0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
+	0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05,
+	0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x14, 0x4d, 0x61, 0x70,
+	0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72,
+	0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x03,
+	0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
+	0x28, 0x11, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a,
+	0x14, 0x4d, 0x61, 0x70, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34,
+	0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
+	0x28, 0x12, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
+	0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
+	0x01, 0x1a, 0x44, 0x0a, 0x16, 0x4d, 0x61, 0x70, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x46,
+	0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
+	0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x07, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a,
+	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x07, 0x52, 0x05, 0x76, 0x61,
+	0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x44, 0x0a, 0x16, 0x4d, 0x61, 0x70, 0x46, 0x69,
+	0x78, 0x65, 0x64, 0x36, 0x34, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72,
+	0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x06, 0x52, 0x03,
+	0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
+	0x28, 0x06, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x46, 0x0a,
+	0x18, 0x4d, 0x61, 0x70, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x53, 0x66, 0x69, 0x78,
+	0x65, 0x64, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
+	0x18, 0x01, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76,
+	0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
+	0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x46, 0x0a, 0x18, 0x4d, 0x61, 0x70, 0x53, 0x66, 0x69, 0x78,
+	0x65, 0x64, 0x36, 0x34, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72,
+	0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x10, 0x52, 0x03,
+	0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
+	0x28, 0x10, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x40, 0x0a,
+	0x12, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x45, 0x6e,
+	0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,
+	0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
+	0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a,
+	0x41, 0x0a, 0x13, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x44, 0x6f, 0x75, 0x62, 0x6c,
+	0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
+	0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
+	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
+	0x38, 0x01, 0x1a, 0x3e, 0x0a, 0x10, 0x4d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x42, 0x6f, 0x6f,
+	0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
+	0x01, 0x28, 0x08, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
+	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
+	0x38, 0x01, 0x1a, 0x42, 0x0a, 0x14, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x53,
+	0x74, 0x72, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
+	0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05,
+	0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c,
+	0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x41, 0x0a, 0x13, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72,
+	0x69, 0x6e, 0x67, 0x42, 0x79, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a,
+	0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
+	0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05,
+	0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x79, 0x0a, 0x1b, 0x4d, 0x61, 0x70,
+	0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73,
+	0x61, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
+	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x44, 0x0a, 0x05, 0x76, 0x61,
+	0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x70, 0x72,
+	0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54,
+	0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74,
+	0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
+	0x3a, 0x02, 0x38, 0x01, 0x1a, 0x73, 0x0a, 0x18, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e,
+	0x67, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79,
+	0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b,
+	0x65, 0x79, 0x12, 0x41, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
+	0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+	0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79,
+	0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05,
+	0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x39, 0x0a, 0x0a, 0x4e, 0x65, 0x73,
+	0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x07, 0x0a, 0x03, 0x46, 0x4f, 0x4f, 0x10, 0x00,
+	0x12, 0x07, 0x0a, 0x03, 0x42, 0x41, 0x52, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x42, 0x41, 0x5a,
+	0x10, 0x02, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x45, 0x47, 0x10, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+	0xff, 0xff, 0xff, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x66, 0x69,
+	0x65, 0x6c, 0x64, 0x22, 0x1d, 0x0a, 0x11, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78,
+	0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2a, 0x08, 0x08, 0x01, 0x10, 0x80, 0x80, 0x80,
+	0x80, 0x02, 0x22, 0x27, 0x0a, 0x17, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x47, 0x72,
+	0x6f, 0x75, 0x70, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0c, 0x0a,
+	0x01, 0x61, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x61, 0x22, 0x27, 0x0a, 0x17, 0x52,
+	0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x65, 0x78, 0x74,
+	0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0c, 0x0a, 0x01, 0x61, 0x18, 0x2f, 0x20, 0x01, 0x28,
+	0x05, 0x52, 0x01, 0x61, 0x3a, 0x5f, 0x0a, 0x18, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c,
+	0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
+	0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+	0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74,
+	0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x6f,
+	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x78, 0x74, 0x65,
+	0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x5f, 0x0a, 0x18, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61,
+	0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,
+	0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+	0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78,
+	0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x16,
+	0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x78, 0x74,
+	0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x61, 0x0a, 0x19, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
+	0x61, 0x6c, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73,
+	0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72,
+	0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c,
+	0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d,
+	0x52, 0x17, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32,
+	0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x61, 0x0a, 0x19, 0x6f, 0x70, 0x74,
+	0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x65, 0x78, 0x74,
+	0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74,
+	0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20,
+	0x01, 0x28, 0x04, 0x52, 0x17, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x69, 0x6e,
+	0x74, 0x36, 0x34, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x61, 0x0a, 0x19,
+	0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f,
+	0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72,
+	0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54,
+	0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73,
+	0x18, 0x05, 0x20, 0x01, 0x28, 0x11, 0x52, 0x17, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c,
+	0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a,
+	0x61, 0x0a, 0x19, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x6e, 0x74,
+	0x36, 0x34, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67,
+	0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73,
+	0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
+	0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x17, 0x6f, 0x70, 0x74, 0x69, 0x6f,
+	0x6e, 0x61, 0x6c, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
+	0x6f, 0x6e, 0x3a, 0x63, 0x0a, 0x1a, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66,
+	0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
+	0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+	0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74,
+	0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x07, 0x52, 0x18, 0x6f,
+	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x45, 0x78,
+	0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x63, 0x0a, 0x1a, 0x6f, 0x70, 0x74, 0x69, 0x6f,
+	0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x5f, 0x65, 0x78, 0x74, 0x65,
+	0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
+	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41,
+	0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x01,
+	0x28, 0x06, 0x52, 0x18, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x78, 0x65,
+	0x64, 0x36, 0x34, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x65, 0x0a, 0x1b,
+	0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33,
+	0x32, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f,
+	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74,
+	0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,
+	0x6e, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x19, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
+	0x61, 0x6c, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73,
+	0x69, 0x6f, 0x6e, 0x3a, 0x65, 0x0a, 0x1b, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f,
+	0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
+	0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f,
+	0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45,
+	0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x10, 0x52,
+	0x19, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36,
+	0x34, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x5f, 0x0a, 0x18, 0x6f, 0x70,
+	0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x5f, 0x65, 0x78, 0x74,
+	0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74,
+	0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0b, 0x20,
+	0x01, 0x28, 0x02, 0x52, 0x16, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x6c, 0x6f,
+	0x61, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x61, 0x0a, 0x19, 0x6f,
+	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x65,
+	0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f,
+	0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65,
+	0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18,
+	0x0c, 0x20, 0x01, 0x28, 0x01, 0x52, 0x17, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44,
+	0x6f, 0x75, 0x62, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x5d,
+	0x0a, 0x17, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x5f,
+	0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72,
+	0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54,
+	0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73,
+	0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c,
+	0x42, 0x6f, 0x6f, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x61, 0x0a,
+	0x19, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67,
+	0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70,
+	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e,
+	0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
+	0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61,
+	0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
+	0x3a, 0x5f, 0x0a, 0x18, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74,
+	0x65, 0x73, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67,
+	0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73,
+	0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
+	0x6f, 0x6e, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x16, 0x6f, 0x70, 0x74, 0x69, 0x6f,
+	0x6e, 0x61, 0x6c, 0x42, 0x79, 0x74, 0x65, 0x73, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,
+	0x6e, 0x3a, 0x8b, 0x01, 0x0a, 0x17, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x67, 0x72,
+	0x6f, 0x75, 0x70, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e,
+	0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65,
+	0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73,
+	0x69, 0x6f, 0x6e, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0a, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x70,
+	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e,
+	0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x65, 0x78,
+	0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x16, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61,
+	0x6c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a,
+	0xa0, 0x01, 0x0a, 0x21, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6e, 0x65, 0x73,
+	0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65,
+	0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
+	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41,
+	0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x12, 0x20, 0x01,
+	0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f,
+	0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54,
+	0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61,
+	0x67, 0x65, 0x52, 0x1e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x65, 0x73, 0x74,
+	0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
+	0x6f, 0x6e, 0x3a, 0x97, 0x01, 0x0a, 0x1e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f,
+	0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x5f, 0x65, 0x78, 0x74, 0x65,
+	0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
+	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41,
+	0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x15, 0x20, 0x01,
+	0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f,
+	0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54,
+	0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52,
+	0x1b, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45,
+	0x6e, 0x75, 0x6d, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x5f, 0x0a, 0x18,
+	0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x65,
+	0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f,
+	0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65,
+	0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18,
+	0x1f, 0x20, 0x03, 0x28, 0x05, 0x52, 0x16, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x49,
+	0x6e, 0x74, 0x33, 0x32, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x5f, 0x0a,
+	0x18, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f,
+	0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72,
+	0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54,
+	0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73,
+	0x18, 0x20, 0x20, 0x03, 0x28, 0x03, 0x52, 0x16, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64,
+	0x49, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x61,
+	0x0a, 0x19, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33,
+	0x32, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f,
+	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74,
+	0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,
+	0x6e, 0x73, 0x18, 0x21, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x17, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74,
+	0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,
+	0x6e, 0x3a, 0x61, 0x0a, 0x19, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x69,
+	0x6e, 0x74, 0x36, 0x34, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25,
+	0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74,
+	0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e,
+	0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x22, 0x20, 0x03, 0x28, 0x04, 0x52, 0x17, 0x72, 0x65, 0x70,
+	0x65, 0x61, 0x74, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x78, 0x74, 0x65, 0x6e,
+	0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x61, 0x0a, 0x19, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64,
+	0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,
+	0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+	0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78,
+	0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x23, 0x20, 0x03, 0x28, 0x11, 0x52, 0x17,
+	0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x78,
+	0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x61, 0x0a, 0x19, 0x72, 0x65, 0x70, 0x65, 0x61,
+	0x74, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e,
+	0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70,
+	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c,
+	0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x24, 0x20, 0x03, 0x28,
+	0x12, 0x52, 0x17, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x36,
+	0x34, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x63, 0x0a, 0x1a, 0x72, 0x65,
+	0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x5f, 0x65,
+	0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f,
+	0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65,
+	0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18,
+	0x25, 0x20, 0x03, 0x28, 0x07, 0x52, 0x18, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46,
+	0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a,
+	0x63, 0x0a, 0x1a, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65,
+	0x64, 0x36, 0x34, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e,
+	0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65,
+	0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73,
+	0x69, 0x6f, 0x6e, 0x73, 0x18, 0x26, 0x20, 0x03, 0x28, 0x06, 0x52, 0x18, 0x72, 0x65, 0x70, 0x65,
+	0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x45, 0x78, 0x74, 0x65, 0x6e,
+	0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x65, 0x0a, 0x1b, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64,
+	0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73,
+	0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72,
+	0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c,
+	0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x27, 0x20, 0x03, 0x28, 0x0f,
+	0x52, 0x19, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64,
+	0x33, 0x32, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x65, 0x0a, 0x1b, 0x72,
+	0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34,
+	0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70,
+	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e,
+	0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
+	0x73, 0x18, 0x28, 0x20, 0x03, 0x28, 0x10, 0x52, 0x19, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65,
+	0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
+	0x6f, 0x6e, 0x3a, 0x5f, 0x0a, 0x18, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66,
+	0x6c, 0x6f, 0x61, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25,
+	0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74,
+	0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e,
+	0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x29, 0x20, 0x03, 0x28, 0x02, 0x52, 0x16, 0x72, 0x65, 0x70,
+	0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73,
+	0x69, 0x6f, 0x6e, 0x3a, 0x61, 0x0a, 0x19, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f,
+	0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
+	0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+	0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74,
+	0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x2a, 0x20, 0x03, 0x28, 0x01, 0x52, 0x17, 0x72,
+	0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x45, 0x78, 0x74,
+	0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x5d, 0x0a, 0x17, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74,
+	0x65, 0x64, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,
+	0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+	0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78,
+	0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x2b, 0x20, 0x03, 0x28, 0x08, 0x52, 0x15,
+	0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x6f, 0x6f, 0x6c, 0x45, 0x78, 0x74, 0x65,
+	0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x61, 0x0a, 0x19, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65,
+	0x64, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
+	0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f,
+	0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45,
+	0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x2c, 0x20, 0x03, 0x28, 0x09, 0x52,
+	0x17, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x45,
+	0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x5f, 0x0a, 0x18, 0x72, 0x65, 0x70, 0x65,
+	0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e,
+	0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70,
+	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c,
+	0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x2d, 0x20, 0x03, 0x28,
+	0x0c, 0x52, 0x16, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73,
+	0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x8b, 0x01, 0x0a, 0x17, 0x72, 0x65,
+	0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x65, 0x78, 0x74, 0x65,
+	0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
+	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41,
+	0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x2e, 0x20, 0x03,
+	0x28, 0x0a, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f,
+	0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64,
+	0x47, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52,
+	0x16, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x45, 0x78,
+	0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0xa0, 0x01, 0x0a, 0x21, 0x72, 0x65, 0x70, 0x65,
+	0x61, 0x74, 0x65, 0x64, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73,
+	0x61, 0x67, 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e,
+	0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65,
+	0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73,
+	0x69, 0x6f, 0x6e, 0x73, 0x18, 0x30, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x70,
+	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e,
+	0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73,
+	0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x1e, 0x72, 0x65, 0x70, 0x65,
+	0x61, 0x74, 0x65, 0x64, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
+	0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x97, 0x01, 0x0a, 0x1e, 0x72,
+	0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x65,
+	0x6e, 0x75, 0x6d, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e,
+	0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65,
+	0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73,
+	0x69, 0x6f, 0x6e, 0x73, 0x18, 0x33, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x70,
+	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e,
+	0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73,
+	0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x1b, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65,
+	0x64, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x45, 0x78, 0x74, 0x65, 0x6e,
+	0x73, 0x69, 0x6f, 0x6e, 0x42, 0x38, 0x5a, 0x36, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63,
+	0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
+	0x75, 0x66, 0x2f, 0x76, 0x32, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74,
+	0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74,
 }
 
-func init() {
-	xxx_Test_protoFile_FileDesc.Messages = xxx_Test_protoFile_MessageDescs[0:4]
-	xxx_Test_protoFile_MessageDescs[0].Enums = xxx_Test_protoFile_EnumDescs[0:1]
-	xxx_Test_protoFile_MessageDescs[0].Messages = xxx_Test_protoFile_MessageDescs[4:24]
-	xxx_Test_protoFile_MessageDescs[0].Fields[15].MessageType = xxx_Test_protoFile_MessageTypes[5].Type
-	xxx_Test_protoFile_MessageDescs[0].Fields[16].MessageType = xxx_Test_protoFile_MessageTypes[4].Type
-	xxx_Test_protoFile_MessageDescs[0].Fields[17].EnumType = xxx_Test_protoFile_EnumTypes[0]
-	xxx_Test_protoFile_MessageDescs[0].Fields[33].MessageType = xxx_Test_protoFile_MessageTypes[6].Type
-	xxx_Test_protoFile_MessageDescs[0].Fields[34].MessageType = xxx_Test_protoFile_MessageTypes[4].Type
-	xxx_Test_protoFile_MessageDescs[0].Fields[35].EnumType = xxx_Test_protoFile_EnumTypes[0]
-	xxx_Test_protoFile_MessageDescs[0].Fields[36].MessageType = xxx_Test_protoFile_MessageDescs[7].Reference()
-	xxx_Test_protoFile_MessageDescs[0].Fields[37].MessageType = xxx_Test_protoFile_MessageDescs[8].Reference()
-	xxx_Test_protoFile_MessageDescs[0].Fields[38].MessageType = xxx_Test_protoFile_MessageDescs[9].Reference()
-	xxx_Test_protoFile_MessageDescs[0].Fields[39].MessageType = xxx_Test_protoFile_MessageDescs[10].Reference()
-	xxx_Test_protoFile_MessageDescs[0].Fields[40].MessageType = xxx_Test_protoFile_MessageDescs[11].Reference()
-	xxx_Test_protoFile_MessageDescs[0].Fields[41].MessageType = xxx_Test_protoFile_MessageDescs[12].Reference()
-	xxx_Test_protoFile_MessageDescs[0].Fields[42].MessageType = xxx_Test_protoFile_MessageDescs[13].Reference()
-	xxx_Test_protoFile_MessageDescs[0].Fields[43].MessageType = xxx_Test_protoFile_MessageDescs[14].Reference()
-	xxx_Test_protoFile_MessageDescs[0].Fields[44].MessageType = xxx_Test_protoFile_MessageDescs[15].Reference()
-	xxx_Test_protoFile_MessageDescs[0].Fields[45].MessageType = xxx_Test_protoFile_MessageDescs[16].Reference()
-	xxx_Test_protoFile_MessageDescs[0].Fields[46].MessageType = xxx_Test_protoFile_MessageDescs[17].Reference()
-	xxx_Test_protoFile_MessageDescs[0].Fields[47].MessageType = xxx_Test_protoFile_MessageDescs[18].Reference()
-	xxx_Test_protoFile_MessageDescs[0].Fields[48].MessageType = xxx_Test_protoFile_MessageDescs[19].Reference()
-	xxx_Test_protoFile_MessageDescs[0].Fields[49].MessageType = xxx_Test_protoFile_MessageDescs[20].Reference()
-	xxx_Test_protoFile_MessageDescs[0].Fields[50].MessageType = xxx_Test_protoFile_MessageDescs[21].Reference()
-	xxx_Test_protoFile_MessageDescs[0].Fields[51].MessageType = xxx_Test_protoFile_MessageDescs[22].Reference()
-	xxx_Test_protoFile_MessageDescs[0].Fields[52].MessageType = xxx_Test_protoFile_MessageDescs[23].Reference()
-	xxx_Test_protoFile_MessageDescs[0].Fields[54].MessageType = xxx_Test_protoFile_MessageTypes[4].Type
-	xxx_Test_protoFile_MessageDescs[0].Fields[61].EnumType = xxx_Test_protoFile_EnumTypes[0]
-	xxx_Test_protoFile_MessageDescs[4].Fields[1].MessageType = xxx_Test_protoFile_MessageTypes[0].Type
-	xxx_Test_protoFile_MessageDescs[22].Fields[1].MessageType = xxx_Test_protoFile_MessageTypes[4].Type
-	xxx_Test_protoFile_MessageDescs[23].Fields[1].EnumType = xxx_Test_protoFile_EnumTypes[0]
-	var err error
-	Test_protoFile, err = prototype.NewFile(&xxx_Test_protoFile_FileDesc)
-	if err != nil {
-		panic(err)
-	}
-}
+var fileDescriptor_c161fcfdc0c3ff1e_gzipped = func() []byte {
+	bb := new(bytes.Buffer)
+	zw, _ := gzip.NewWriterLevel(bb, gzip.NoCompression)
+	zw.Write(fileDescriptor_c161fcfdc0c3ff1e)
+	zw.Close()
+	return bb.Bytes()
+}()
 
 const _ = protoimpl.EnforceVersion(protoimpl.Version - 0)
 
 var Test_protoFile protoreflect.FileDescriptor
 
-var xxx_Test_protoFile_FileDesc = prototype.File{
-	Syntax:  protoreflect.Proto2,
-	Path:    "test.proto",
-	Package: "goproto.proto.test",
+var xxx_Test_protoFile_enumTypes [1]protoreflect.EnumType
+var xxx_Test_protoFile_messageTypes [24]protoimpl.MessageType
+var xxx_Test_protoFile_goTypes = []interface{}{
+	(TestAllTypes_NestedEnum)(0),       // 0: goproto.proto.test.TestAllTypes.NestedEnum
+	(*TestAllTypes)(nil),               // 1: goproto.proto.test.TestAllTypes
+	(*TestAllExtensions)(nil),          // 2: goproto.proto.test.TestAllExtensions
+	(*OptionalGroupExtension)(nil),     // 3: goproto.proto.test.OptionalGroup_extension
+	(*RepeatedGroupExtension)(nil),     // 4: goproto.proto.test.RepeatedGroup_extension
+	(*TestAllTypes_NestedMessage)(nil), // 5: goproto.proto.test.TestAllTypes.NestedMessage
+	(*TestAllTypes_OptionalGroup)(nil), // 6: goproto.proto.test.TestAllTypes.OptionalGroup
+	(*TestAllTypes_RepeatedGroup)(nil), // 7: goproto.proto.test.TestAllTypes.RepeatedGroup
+	nil,                                // 8: goproto.proto.test.TestAllTypes.MapInt32Int32Entry
+	nil,                                // 9: goproto.proto.test.TestAllTypes.MapInt64Int64Entry
+	nil,                                // 10: goproto.proto.test.TestAllTypes.MapUint32Uint32Entry
+	nil,                                // 11: goproto.proto.test.TestAllTypes.MapUint64Uint64Entry
+	nil,                                // 12: goproto.proto.test.TestAllTypes.MapSint32Sint32Entry
+	nil,                                // 13: goproto.proto.test.TestAllTypes.MapSint64Sint64Entry
+	nil,                                // 14: goproto.proto.test.TestAllTypes.MapFixed32Fixed32Entry
+	nil,                                // 15: goproto.proto.test.TestAllTypes.MapFixed64Fixed64Entry
+	nil,                                // 16: goproto.proto.test.TestAllTypes.MapSfixed32Sfixed32Entry
+	nil,                                // 17: goproto.proto.test.TestAllTypes.MapSfixed64Sfixed64Entry
+	nil,                                // 18: goproto.proto.test.TestAllTypes.MapInt32FloatEntry
+	nil,                                // 19: goproto.proto.test.TestAllTypes.MapInt32DoubleEntry
+	nil,                                // 20: goproto.proto.test.TestAllTypes.MapBoolBoolEntry
+	nil,                                // 21: goproto.proto.test.TestAllTypes.MapStringStringEntry
+	nil,                                // 22: goproto.proto.test.TestAllTypes.MapStringBytesEntry
+	nil,                                // 23: goproto.proto.test.TestAllTypes.MapStringNestedMessageEntry
+	nil,                                // 24: goproto.proto.test.TestAllTypes.MapStringNestedEnumEntry
 }
-var xxx_Test_protoFile_EnumTypes = [1]protoreflect.EnumType{
-	prototype.GoEnum(
-		xxx_Test_protoFile_EnumDescs[0].Reference(),
-		func(_ protoreflect.EnumType, n protoreflect.EnumNumber) protoreflect.Enum {
-			return TestAllTypes_NestedEnum(n)
-		},
-	),
+var xxx_Test_protoFile_depIdxs = []int32{
+	2,  // goproto.proto.test.optional_int32_extension:extendee -> goproto.proto.test.TestAllExtensions
+	2,  // goproto.proto.test.optional_int64_extension:extendee -> goproto.proto.test.TestAllExtensions
+	2,  // goproto.proto.test.optional_uint32_extension:extendee -> goproto.proto.test.TestAllExtensions
+	2,  // goproto.proto.test.optional_uint64_extension:extendee -> goproto.proto.test.TestAllExtensions
+	2,  // goproto.proto.test.optional_sint32_extension:extendee -> goproto.proto.test.TestAllExtensions
+	2,  // goproto.proto.test.optional_sint64_extension:extendee -> goproto.proto.test.TestAllExtensions
+	2,  // goproto.proto.test.optional_fixed32_extension:extendee -> goproto.proto.test.TestAllExtensions
+	2,  // goproto.proto.test.optional_fixed64_extension:extendee -> goproto.proto.test.TestAllExtensions
+	2,  // goproto.proto.test.optional_sfixed32_extension:extendee -> goproto.proto.test.TestAllExtensions
+	2,  // goproto.proto.test.optional_sfixed64_extension:extendee -> goproto.proto.test.TestAllExtensions
+	2,  // goproto.proto.test.optional_float_extension:extendee -> goproto.proto.test.TestAllExtensions
+	2,  // goproto.proto.test.optional_double_extension:extendee -> goproto.proto.test.TestAllExtensions
+	2,  // goproto.proto.test.optional_bool_extension:extendee -> goproto.proto.test.TestAllExtensions
+	2,  // goproto.proto.test.optional_string_extension:extendee -> goproto.proto.test.TestAllExtensions
+	2,  // goproto.proto.test.optional_bytes_extension:extendee -> goproto.proto.test.TestAllExtensions
+	2,  // goproto.proto.test.optionalgroup_extension:extendee -> goproto.proto.test.TestAllExtensions
+	2,  // goproto.proto.test.optional_nested_message_extension:extendee -> goproto.proto.test.TestAllExtensions
+	2,  // goproto.proto.test.optional_nested_enum_extension:extendee -> goproto.proto.test.TestAllExtensions
+	2,  // goproto.proto.test.repeated_int32_extension:extendee -> goproto.proto.test.TestAllExtensions
+	2,  // goproto.proto.test.repeated_int64_extension:extendee -> goproto.proto.test.TestAllExtensions
+	2,  // goproto.proto.test.repeated_uint32_extension:extendee -> goproto.proto.test.TestAllExtensions
+	2,  // goproto.proto.test.repeated_uint64_extension:extendee -> goproto.proto.test.TestAllExtensions
+	2,  // goproto.proto.test.repeated_sint32_extension:extendee -> goproto.proto.test.TestAllExtensions
+	2,  // goproto.proto.test.repeated_sint64_extension:extendee -> goproto.proto.test.TestAllExtensions
+	2,  // goproto.proto.test.repeated_fixed32_extension:extendee -> goproto.proto.test.TestAllExtensions
+	2,  // goproto.proto.test.repeated_fixed64_extension:extendee -> goproto.proto.test.TestAllExtensions
+	2,  // goproto.proto.test.repeated_sfixed32_extension:extendee -> goproto.proto.test.TestAllExtensions
+	2,  // goproto.proto.test.repeated_sfixed64_extension:extendee -> goproto.proto.test.TestAllExtensions
+	2,  // goproto.proto.test.repeated_float_extension:extendee -> goproto.proto.test.TestAllExtensions
+	2,  // goproto.proto.test.repeated_double_extension:extendee -> goproto.proto.test.TestAllExtensions
+	2,  // goproto.proto.test.repeated_bool_extension:extendee -> goproto.proto.test.TestAllExtensions
+	2,  // goproto.proto.test.repeated_string_extension:extendee -> goproto.proto.test.TestAllExtensions
+	2,  // goproto.proto.test.repeated_bytes_extension:extendee -> goproto.proto.test.TestAllExtensions
+	2,  // goproto.proto.test.repeatedgroup_extension:extendee -> goproto.proto.test.TestAllExtensions
+	2,  // goproto.proto.test.repeated_nested_message_extension:extendee -> goproto.proto.test.TestAllExtensions
+	2,  // goproto.proto.test.repeated_nested_enum_extension:extendee -> goproto.proto.test.TestAllExtensions
+	6,  // goproto.proto.test.TestAllTypes.optionalgroup:type_name -> goproto.proto.test.TestAllTypes.OptionalGroup
+	5,  // goproto.proto.test.TestAllTypes.optional_nested_message:type_name -> goproto.proto.test.TestAllTypes.NestedMessage
+	0,  // goproto.proto.test.TestAllTypes.optional_nested_enum:type_name -> goproto.proto.test.TestAllTypes.NestedEnum
+	7,  // goproto.proto.test.TestAllTypes.repeatedgroup:type_name -> goproto.proto.test.TestAllTypes.RepeatedGroup
+	5,  // goproto.proto.test.TestAllTypes.repeated_nested_message:type_name -> goproto.proto.test.TestAllTypes.NestedMessage
+	0,  // goproto.proto.test.TestAllTypes.repeated_nested_enum:type_name -> goproto.proto.test.TestAllTypes.NestedEnum
+	8,  // goproto.proto.test.TestAllTypes.map_int32_int32:type_name -> goproto.proto.test.TestAllTypes.MapInt32Int32Entry
+	9,  // goproto.proto.test.TestAllTypes.map_int64_int64:type_name -> goproto.proto.test.TestAllTypes.MapInt64Int64Entry
+	10, // goproto.proto.test.TestAllTypes.map_uint32_uint32:type_name -> goproto.proto.test.TestAllTypes.MapUint32Uint32Entry
+	11, // goproto.proto.test.TestAllTypes.map_uint64_uint64:type_name -> goproto.proto.test.TestAllTypes.MapUint64Uint64Entry
+	12, // goproto.proto.test.TestAllTypes.map_sint32_sint32:type_name -> goproto.proto.test.TestAllTypes.MapSint32Sint32Entry
+	13, // goproto.proto.test.TestAllTypes.map_sint64_sint64:type_name -> goproto.proto.test.TestAllTypes.MapSint64Sint64Entry
+	14, // goproto.proto.test.TestAllTypes.map_fixed32_fixed32:type_name -> goproto.proto.test.TestAllTypes.MapFixed32Fixed32Entry
+	15, // goproto.proto.test.TestAllTypes.map_fixed64_fixed64:type_name -> goproto.proto.test.TestAllTypes.MapFixed64Fixed64Entry
+	16, // goproto.proto.test.TestAllTypes.map_sfixed32_sfixed32:type_name -> goproto.proto.test.TestAllTypes.MapSfixed32Sfixed32Entry
+	17, // goproto.proto.test.TestAllTypes.map_sfixed64_sfixed64:type_name -> goproto.proto.test.TestAllTypes.MapSfixed64Sfixed64Entry
+	18, // goproto.proto.test.TestAllTypes.map_int32_float:type_name -> goproto.proto.test.TestAllTypes.MapInt32FloatEntry
+	19, // goproto.proto.test.TestAllTypes.map_int32_double:type_name -> goproto.proto.test.TestAllTypes.MapInt32DoubleEntry
+	20, // goproto.proto.test.TestAllTypes.map_bool_bool:type_name -> goproto.proto.test.TestAllTypes.MapBoolBoolEntry
+	21, // goproto.proto.test.TestAllTypes.map_string_string:type_name -> goproto.proto.test.TestAllTypes.MapStringStringEntry
+	22, // goproto.proto.test.TestAllTypes.map_string_bytes:type_name -> goproto.proto.test.TestAllTypes.MapStringBytesEntry
+	23, // goproto.proto.test.TestAllTypes.map_string_nested_message:type_name -> goproto.proto.test.TestAllTypes.MapStringNestedMessageEntry
+	24, // goproto.proto.test.TestAllTypes.map_string_nested_enum:type_name -> goproto.proto.test.TestAllTypes.MapStringNestedEnumEntry
+	5,  // goproto.proto.test.TestAllTypes.oneof_nested_message:type_name -> goproto.proto.test.TestAllTypes.NestedMessage
+	0,  // goproto.proto.test.TestAllTypes.oneof_enum:type_name -> goproto.proto.test.TestAllTypes.NestedEnum
+	1,  // goproto.proto.test.TestAllTypes.NestedMessage.corecursive:type_name -> goproto.proto.test.TestAllTypes
+	5,  // goproto.proto.test.TestAllTypes.MapStringNestedMessageEntry.value:type_name -> goproto.proto.test.TestAllTypes.NestedMessage
+	0,  // goproto.proto.test.TestAllTypes.MapStringNestedEnumEntry.value:type_name -> goproto.proto.test.TestAllTypes.NestedEnum
+	3,  // goproto.proto.test.optionalgroup_extension:type_name -> goproto.proto.test.OptionalGroup_extension
+	5,  // goproto.proto.test.optional_nested_message_extension:type_name -> goproto.proto.test.TestAllTypes.NestedMessage
+	0,  // goproto.proto.test.optional_nested_enum_extension:type_name -> goproto.proto.test.TestAllTypes.NestedEnum
+	4,  // goproto.proto.test.repeatedgroup_extension:type_name -> goproto.proto.test.RepeatedGroup_extension
+	5,  // goproto.proto.test.repeated_nested_message_extension:type_name -> goproto.proto.test.TestAllTypes.NestedMessage
+	0,  // goproto.proto.test.repeated_nested_enum_extension:type_name -> goproto.proto.test.TestAllTypes.NestedEnum
 }
-var xxx_Test_protoFile_EnumDescs = [1]prototype.Enum{
-	{
-		Name: "NestedEnum",
-		Values: []prototype.EnumValue{
-			{Name: "FOO", Number: 0},
-			{Name: "BAR", Number: 1},
-			{Name: "BAZ", Number: 2},
-			{Name: "NEG", Number: -1},
-		},
-	},
-}
-var xxx_Test_protoFile_MessageTypes = [24]protoimpl.MessageType{
-	{Type: prototype.GoMessage(
-		xxx_Test_protoFile_MessageDescs[0].Reference(),
-		func(protoreflect.MessageType) protoreflect.Message {
-			return xxx_TestAllTypes{new(TestAllTypes)}
-		},
-	)},
-	{Type: prototype.GoMessage(
-		xxx_Test_protoFile_MessageDescs[1].Reference(),
-		func(protoreflect.MessageType) protoreflect.Message {
-			return xxx_TestAllExtensions{new(TestAllExtensions)}
-		},
-	)},
-	{Type: prototype.GoMessage(
-		xxx_Test_protoFile_MessageDescs[2].Reference(),
-		func(protoreflect.MessageType) protoreflect.Message {
-			return xxx_OptionalGroupExtension{new(OptionalGroupExtension)}
-		},
-	)},
-	{Type: prototype.GoMessage(
-		xxx_Test_protoFile_MessageDescs[3].Reference(),
-		func(protoreflect.MessageType) protoreflect.Message {
-			return xxx_RepeatedGroupExtension{new(RepeatedGroupExtension)}
-		},
-	)},
-	{Type: prototype.GoMessage(
-		xxx_Test_protoFile_MessageDescs[4].Reference(),
-		func(protoreflect.MessageType) protoreflect.Message {
-			return xxx_TestAllTypes_NestedMessage{new(TestAllTypes_NestedMessage)}
-		},
-	)},
-	{Type: prototype.GoMessage(
-		xxx_Test_protoFile_MessageDescs[5].Reference(),
-		func(protoreflect.MessageType) protoreflect.Message {
-			return xxx_TestAllTypes_OptionalGroup{new(TestAllTypes_OptionalGroup)}
-		},
-	)},
-	{Type: prototype.GoMessage(
-		xxx_Test_protoFile_MessageDescs[6].Reference(),
-		func(protoreflect.MessageType) protoreflect.Message {
-			return xxx_TestAllTypes_RepeatedGroup{new(TestAllTypes_RepeatedGroup)}
-		},
-	)},
-	{ /* no message type for TestAllTypes_MapInt32Int32Entry */ },
-	{ /* no message type for TestAllTypes_MapInt64Int64Entry */ },
-	{ /* no message type for TestAllTypes_MapUint32Uint32Entry */ },
-	{ /* no message type for TestAllTypes_MapUint64Uint64Entry */ },
-	{ /* no message type for TestAllTypes_MapSint32Sint32Entry */ },
-	{ /* no message type for TestAllTypes_MapSint64Sint64Entry */ },
-	{ /* no message type for TestAllTypes_MapFixed32Fixed32Entry */ },
-	{ /* no message type for TestAllTypes_MapFixed64Fixed64Entry */ },
-	{ /* no message type for TestAllTypes_MapSfixed32Sfixed32Entry */ },
-	{ /* no message type for TestAllTypes_MapSfixed64Sfixed64Entry */ },
-	{ /* no message type for TestAllTypes_MapInt32FloatEntry */ },
-	{ /* no message type for TestAllTypes_MapInt32DoubleEntry */ },
-	{ /* no message type for TestAllTypes_MapBoolBoolEntry */ },
-	{ /* no message type for TestAllTypes_MapStringStringEntry */ },
-	{ /* no message type for TestAllTypes_MapStringBytesEntry */ },
-	{ /* no message type for TestAllTypes_MapStringNestedMessageEntry */ },
-	{ /* no message type for TestAllTypes_MapStringNestedEnumEntry */ },
-}
-var xxx_Test_protoFile_MessageDescs = [24]prototype.Message{
-	{
-		Name: "TestAllTypes",
-		Fields: []prototype.Field{
-			{
-				Name:        "optional_int32",
-				Number:      1,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.Int32Kind,
-				JSONName:    "optionalInt32",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "optional_int64",
-				Number:      2,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.Int64Kind,
-				JSONName:    "optionalInt64",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "optional_uint32",
-				Number:      3,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.Uint32Kind,
-				JSONName:    "optionalUint32",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "optional_uint64",
-				Number:      4,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.Uint64Kind,
-				JSONName:    "optionalUint64",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "optional_sint32",
-				Number:      5,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.Sint32Kind,
-				JSONName:    "optionalSint32",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "optional_sint64",
-				Number:      6,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.Sint64Kind,
-				JSONName:    "optionalSint64",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "optional_fixed32",
-				Number:      7,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.Fixed32Kind,
-				JSONName:    "optionalFixed32",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "optional_fixed64",
-				Number:      8,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.Fixed64Kind,
-				JSONName:    "optionalFixed64",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "optional_sfixed32",
-				Number:      9,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.Sfixed32Kind,
-				JSONName:    "optionalSfixed32",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "optional_sfixed64",
-				Number:      10,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.Sfixed64Kind,
-				JSONName:    "optionalSfixed64",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "optional_float",
-				Number:      11,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.FloatKind,
-				JSONName:    "optionalFloat",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "optional_double",
-				Number:      12,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.DoubleKind,
-				JSONName:    "optionalDouble",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "optional_bool",
-				Number:      13,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.BoolKind,
-				JSONName:    "optionalBool",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "optional_string",
-				Number:      14,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.StringKind,
-				JSONName:    "optionalString",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "optional_bytes",
-				Number:      15,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.BytesKind,
-				JSONName:    "optionalBytes",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "optionalgroup",
-				Number:      16,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.GroupKind,
-				JSONName:    "optionalgroup",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "optional_nested_message",
-				Number:      18,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.MessageKind,
-				JSONName:    "optionalNestedMessage",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "optional_nested_enum",
-				Number:      21,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.EnumKind,
-				JSONName:    "optionalNestedEnum",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "repeated_int32",
-				Number:      31,
-				Cardinality: protoreflect.Repeated,
-				Kind:        protoreflect.Int32Kind,
-				JSONName:    "repeatedInt32",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "repeated_int64",
-				Number:      32,
-				Cardinality: protoreflect.Repeated,
-				Kind:        protoreflect.Int64Kind,
-				JSONName:    "repeatedInt64",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "repeated_uint32",
-				Number:      33,
-				Cardinality: protoreflect.Repeated,
-				Kind:        protoreflect.Uint32Kind,
-				JSONName:    "repeatedUint32",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "repeated_uint64",
-				Number:      34,
-				Cardinality: protoreflect.Repeated,
-				Kind:        protoreflect.Uint64Kind,
-				JSONName:    "repeatedUint64",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "repeated_sint32",
-				Number:      35,
-				Cardinality: protoreflect.Repeated,
-				Kind:        protoreflect.Sint32Kind,
-				JSONName:    "repeatedSint32",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "repeated_sint64",
-				Number:      36,
-				Cardinality: protoreflect.Repeated,
-				Kind:        protoreflect.Sint64Kind,
-				JSONName:    "repeatedSint64",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "repeated_fixed32",
-				Number:      37,
-				Cardinality: protoreflect.Repeated,
-				Kind:        protoreflect.Fixed32Kind,
-				JSONName:    "repeatedFixed32",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "repeated_fixed64",
-				Number:      38,
-				Cardinality: protoreflect.Repeated,
-				Kind:        protoreflect.Fixed64Kind,
-				JSONName:    "repeatedFixed64",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "repeated_sfixed32",
-				Number:      39,
-				Cardinality: protoreflect.Repeated,
-				Kind:        protoreflect.Sfixed32Kind,
-				JSONName:    "repeatedSfixed32",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "repeated_sfixed64",
-				Number:      40,
-				Cardinality: protoreflect.Repeated,
-				Kind:        protoreflect.Sfixed64Kind,
-				JSONName:    "repeatedSfixed64",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "repeated_float",
-				Number:      41,
-				Cardinality: protoreflect.Repeated,
-				Kind:        protoreflect.FloatKind,
-				JSONName:    "repeatedFloat",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "repeated_double",
-				Number:      42,
-				Cardinality: protoreflect.Repeated,
-				Kind:        protoreflect.DoubleKind,
-				JSONName:    "repeatedDouble",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "repeated_bool",
-				Number:      43,
-				Cardinality: protoreflect.Repeated,
-				Kind:        protoreflect.BoolKind,
-				JSONName:    "repeatedBool",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "repeated_string",
-				Number:      44,
-				Cardinality: protoreflect.Repeated,
-				Kind:        protoreflect.StringKind,
-				JSONName:    "repeatedString",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "repeated_bytes",
-				Number:      45,
-				Cardinality: protoreflect.Repeated,
-				Kind:        protoreflect.BytesKind,
-				JSONName:    "repeatedBytes",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "repeatedgroup",
-				Number:      46,
-				Cardinality: protoreflect.Repeated,
-				Kind:        protoreflect.GroupKind,
-				JSONName:    "repeatedgroup",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "repeated_nested_message",
-				Number:      48,
-				Cardinality: protoreflect.Repeated,
-				Kind:        protoreflect.MessageKind,
-				JSONName:    "repeatedNestedMessage",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "repeated_nested_enum",
-				Number:      51,
-				Cardinality: protoreflect.Repeated,
-				Kind:        protoreflect.EnumKind,
-				JSONName:    "repeatedNestedEnum",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "map_int32_int32",
-				Number:      56,
-				Cardinality: protoreflect.Repeated,
-				Kind:        protoreflect.MessageKind,
-				JSONName:    "mapInt32Int32",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "map_int64_int64",
-				Number:      57,
-				Cardinality: protoreflect.Repeated,
-				Kind:        protoreflect.MessageKind,
-				JSONName:    "mapInt64Int64",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "map_uint32_uint32",
-				Number:      58,
-				Cardinality: protoreflect.Repeated,
-				Kind:        protoreflect.MessageKind,
-				JSONName:    "mapUint32Uint32",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "map_uint64_uint64",
-				Number:      59,
-				Cardinality: protoreflect.Repeated,
-				Kind:        protoreflect.MessageKind,
-				JSONName:    "mapUint64Uint64",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "map_sint32_sint32",
-				Number:      60,
-				Cardinality: protoreflect.Repeated,
-				Kind:        protoreflect.MessageKind,
-				JSONName:    "mapSint32Sint32",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "map_sint64_sint64",
-				Number:      61,
-				Cardinality: protoreflect.Repeated,
-				Kind:        protoreflect.MessageKind,
-				JSONName:    "mapSint64Sint64",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "map_fixed32_fixed32",
-				Number:      62,
-				Cardinality: protoreflect.Repeated,
-				Kind:        protoreflect.MessageKind,
-				JSONName:    "mapFixed32Fixed32",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "map_fixed64_fixed64",
-				Number:      63,
-				Cardinality: protoreflect.Repeated,
-				Kind:        protoreflect.MessageKind,
-				JSONName:    "mapFixed64Fixed64",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "map_sfixed32_sfixed32",
-				Number:      64,
-				Cardinality: protoreflect.Repeated,
-				Kind:        protoreflect.MessageKind,
-				JSONName:    "mapSfixed32Sfixed32",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "map_sfixed64_sfixed64",
-				Number:      65,
-				Cardinality: protoreflect.Repeated,
-				Kind:        protoreflect.MessageKind,
-				JSONName:    "mapSfixed64Sfixed64",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "map_int32_float",
-				Number:      66,
-				Cardinality: protoreflect.Repeated,
-				Kind:        protoreflect.MessageKind,
-				JSONName:    "mapInt32Float",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "map_int32_double",
-				Number:      67,
-				Cardinality: protoreflect.Repeated,
-				Kind:        protoreflect.MessageKind,
-				JSONName:    "mapInt32Double",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "map_bool_bool",
-				Number:      68,
-				Cardinality: protoreflect.Repeated,
-				Kind:        protoreflect.MessageKind,
-				JSONName:    "mapBoolBool",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "map_string_string",
-				Number:      69,
-				Cardinality: protoreflect.Repeated,
-				Kind:        protoreflect.MessageKind,
-				JSONName:    "mapStringString",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "map_string_bytes",
-				Number:      70,
-				Cardinality: protoreflect.Repeated,
-				Kind:        protoreflect.MessageKind,
-				JSONName:    "mapStringBytes",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "map_string_nested_message",
-				Number:      71,
-				Cardinality: protoreflect.Repeated,
-				Kind:        protoreflect.MessageKind,
-				JSONName:    "mapStringNestedMessage",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "map_string_nested_enum",
-				Number:      73,
-				Cardinality: protoreflect.Repeated,
-				Kind:        protoreflect.MessageKind,
-				JSONName:    "mapStringNestedEnum",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "oneof_uint32",
-				Number:      111,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.Uint32Kind,
-				JSONName:    "oneofUint32",
-				OneofName:   "oneof_field",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "oneof_nested_message",
-				Number:      112,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.MessageKind,
-				JSONName:    "oneofNestedMessage",
-				OneofName:   "oneof_field",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "oneof_string",
-				Number:      113,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.StringKind,
-				JSONName:    "oneofString",
-				OneofName:   "oneof_field",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "oneof_bytes",
-				Number:      114,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.BytesKind,
-				JSONName:    "oneofBytes",
-				OneofName:   "oneof_field",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "oneof_bool",
-				Number:      115,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.BoolKind,
-				JSONName:    "oneofBool",
-				OneofName:   "oneof_field",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "oneof_uint64",
-				Number:      116,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.Uint64Kind,
-				JSONName:    "oneofUint64",
-				OneofName:   "oneof_field",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "oneof_float",
-				Number:      117,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.FloatKind,
-				JSONName:    "oneofFloat",
-				OneofName:   "oneof_field",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "oneof_double",
-				Number:      118,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.DoubleKind,
-				JSONName:    "oneofDouble",
-				OneofName:   "oneof_field",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "oneof_enum",
-				Number:      119,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.EnumKind,
-				JSONName:    "oneofEnum",
-				OneofName:   "oneof_field",
-				IsPacked:    prototype.False,
-			},
-		},
-		Oneofs: []prototype.Oneof{
-			{Name: "oneof_field"},
-		},
-	},
-	{
-		Name:            "TestAllExtensions",
-		ExtensionRanges: [][2]protoreflect.FieldNumber{{1, 536870912}},
-	},
-	{
-		Name: "OptionalGroup_extension",
-		Fields: []prototype.Field{
-			{
-				Name:        "a",
-				Number:      17,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.Int32Kind,
-				JSONName:    "a",
-				IsPacked:    prototype.False,
-			},
-		},
-	},
-	{
-		Name: "RepeatedGroup_extension",
-		Fields: []prototype.Field{
-			{
-				Name:        "a",
-				Number:      47,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.Int32Kind,
-				JSONName:    "a",
-				IsPacked:    prototype.False,
-			},
-		},
-	},
-	{
-		Name: "NestedMessage",
-		Fields: []prototype.Field{
-			{
-				Name:        "a",
-				Number:      1,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.Int32Kind,
-				JSONName:    "a",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "corecursive",
-				Number:      2,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.MessageKind,
-				JSONName:    "corecursive",
-				IsPacked:    prototype.False,
-			},
-		},
-	},
-	{
-		Name: "OptionalGroup",
-		Fields: []prototype.Field{
-			{
-				Name:        "a",
-				Number:      17,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.Int32Kind,
-				JSONName:    "a",
-				IsPacked:    prototype.False,
-			},
-		},
-	},
-	{
-		Name: "RepeatedGroup",
-		Fields: []prototype.Field{
-			{
-				Name:        "a",
-				Number:      47,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.Int32Kind,
-				JSONName:    "a",
-				IsPacked:    prototype.False,
-			},
-		},
-	},
-	{
-		Name: "MapInt32Int32Entry",
-		Fields: []prototype.Field{
-			{
-				Name:        "key",
-				Number:      1,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.Int32Kind,
-				JSONName:    "key",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "value",
-				Number:      2,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.Int32Kind,
-				JSONName:    "value",
-				IsPacked:    prototype.False,
-			},
-		},
-		IsMapEntry: true,
-	},
-	{
-		Name: "MapInt64Int64Entry",
-		Fields: []prototype.Field{
-			{
-				Name:        "key",
-				Number:      1,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.Int64Kind,
-				JSONName:    "key",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "value",
-				Number:      2,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.Int64Kind,
-				JSONName:    "value",
-				IsPacked:    prototype.False,
-			},
-		},
-		IsMapEntry: true,
-	},
-	{
-		Name: "MapUint32Uint32Entry",
-		Fields: []prototype.Field{
-			{
-				Name:        "key",
-				Number:      1,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.Uint32Kind,
-				JSONName:    "key",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "value",
-				Number:      2,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.Uint32Kind,
-				JSONName:    "value",
-				IsPacked:    prototype.False,
-			},
-		},
-		IsMapEntry: true,
-	},
-	{
-		Name: "MapUint64Uint64Entry",
-		Fields: []prototype.Field{
-			{
-				Name:        "key",
-				Number:      1,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.Uint64Kind,
-				JSONName:    "key",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "value",
-				Number:      2,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.Uint64Kind,
-				JSONName:    "value",
-				IsPacked:    prototype.False,
-			},
-		},
-		IsMapEntry: true,
-	},
-	{
-		Name: "MapSint32Sint32Entry",
-		Fields: []prototype.Field{
-			{
-				Name:        "key",
-				Number:      1,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.Sint32Kind,
-				JSONName:    "key",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "value",
-				Number:      2,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.Sint32Kind,
-				JSONName:    "value",
-				IsPacked:    prototype.False,
-			},
-		},
-		IsMapEntry: true,
-	},
-	{
-		Name: "MapSint64Sint64Entry",
-		Fields: []prototype.Field{
-			{
-				Name:        "key",
-				Number:      1,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.Sint64Kind,
-				JSONName:    "key",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "value",
-				Number:      2,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.Sint64Kind,
-				JSONName:    "value",
-				IsPacked:    prototype.False,
-			},
-		},
-		IsMapEntry: true,
-	},
-	{
-		Name: "MapFixed32Fixed32Entry",
-		Fields: []prototype.Field{
-			{
-				Name:        "key",
-				Number:      1,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.Fixed32Kind,
-				JSONName:    "key",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "value",
-				Number:      2,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.Fixed32Kind,
-				JSONName:    "value",
-				IsPacked:    prototype.False,
-			},
-		},
-		IsMapEntry: true,
-	},
-	{
-		Name: "MapFixed64Fixed64Entry",
-		Fields: []prototype.Field{
-			{
-				Name:        "key",
-				Number:      1,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.Fixed64Kind,
-				JSONName:    "key",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "value",
-				Number:      2,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.Fixed64Kind,
-				JSONName:    "value",
-				IsPacked:    prototype.False,
-			},
-		},
-		IsMapEntry: true,
-	},
-	{
-		Name: "MapSfixed32Sfixed32Entry",
-		Fields: []prototype.Field{
-			{
-				Name:        "key",
-				Number:      1,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.Sfixed32Kind,
-				JSONName:    "key",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "value",
-				Number:      2,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.Sfixed32Kind,
-				JSONName:    "value",
-				IsPacked:    prototype.False,
-			},
-		},
-		IsMapEntry: true,
-	},
-	{
-		Name: "MapSfixed64Sfixed64Entry",
-		Fields: []prototype.Field{
-			{
-				Name:        "key",
-				Number:      1,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.Sfixed64Kind,
-				JSONName:    "key",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "value",
-				Number:      2,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.Sfixed64Kind,
-				JSONName:    "value",
-				IsPacked:    prototype.False,
-			},
-		},
-		IsMapEntry: true,
-	},
-	{
-		Name: "MapInt32FloatEntry",
-		Fields: []prototype.Field{
-			{
-				Name:        "key",
-				Number:      1,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.Int32Kind,
-				JSONName:    "key",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "value",
-				Number:      2,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.FloatKind,
-				JSONName:    "value",
-				IsPacked:    prototype.False,
-			},
-		},
-		IsMapEntry: true,
-	},
-	{
-		Name: "MapInt32DoubleEntry",
-		Fields: []prototype.Field{
-			{
-				Name:        "key",
-				Number:      1,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.Int32Kind,
-				JSONName:    "key",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "value",
-				Number:      2,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.DoubleKind,
-				JSONName:    "value",
-				IsPacked:    prototype.False,
-			},
-		},
-		IsMapEntry: true,
-	},
-	{
-		Name: "MapBoolBoolEntry",
-		Fields: []prototype.Field{
-			{
-				Name:        "key",
-				Number:      1,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.BoolKind,
-				JSONName:    "key",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "value",
-				Number:      2,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.BoolKind,
-				JSONName:    "value",
-				IsPacked:    prototype.False,
-			},
-		},
-		IsMapEntry: true,
-	},
-	{
-		Name: "MapStringStringEntry",
-		Fields: []prototype.Field{
-			{
-				Name:        "key",
-				Number:      1,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.StringKind,
-				JSONName:    "key",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "value",
-				Number:      2,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.StringKind,
-				JSONName:    "value",
-				IsPacked:    prototype.False,
-			},
-		},
-		IsMapEntry: true,
-	},
-	{
-		Name: "MapStringBytesEntry",
-		Fields: []prototype.Field{
-			{
-				Name:        "key",
-				Number:      1,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.StringKind,
-				JSONName:    "key",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "value",
-				Number:      2,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.BytesKind,
-				JSONName:    "value",
-				IsPacked:    prototype.False,
-			},
-		},
-		IsMapEntry: true,
-	},
-	{
-		Name: "MapStringNestedMessageEntry",
-		Fields: []prototype.Field{
-			{
-				Name:        "key",
-				Number:      1,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.StringKind,
-				JSONName:    "key",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "value",
-				Number:      2,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.MessageKind,
-				JSONName:    "value",
-				IsPacked:    prototype.False,
-			},
-		},
-		IsMapEntry: true,
-	},
-	{
-		Name: "MapStringNestedEnumEntry",
-		Fields: []prototype.Field{
-			{
-				Name:        "key",
-				Number:      1,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.StringKind,
-				JSONName:    "key",
-				IsPacked:    prototype.False,
-			},
-			{
-				Name:        "value",
-				Number:      2,
-				Cardinality: protoreflect.Optional,
-				Kind:        protoreflect.EnumKind,
-				JSONName:    "value",
-				IsPacked:    prototype.False,
-			},
-		},
-		IsMapEntry: true,
-	},
+
+func init() {
+	var messageTypes [24]protoreflect.MessageType
+	var extensionTypes [36]protoreflect.ExtensionType
+	Test_protoFile = protoimpl.FileBuilder{
+		RawDescriptor:        fileDescriptor_c161fcfdc0c3ff1e,
+		GoTypes:              xxx_Test_protoFile_goTypes,
+		DependencyIndexes:    xxx_Test_protoFile_depIdxs,
+		EnumOutputTypes:      xxx_Test_protoFile_enumTypes[:],
+		MessageOutputTypes:   messageTypes[:],
+		ExtensionOutputTypes: extensionTypes[:],
+	}.Init()
+	messageGoTypes := xxx_Test_protoFile_goTypes[1:][:24]
+	for i, mt := range messageTypes[:] {
+		xxx_Test_protoFile_messageTypes[i].GoType = reflect.TypeOf(messageGoTypes[i])
+		xxx_Test_protoFile_messageTypes[i].PBType = mt
+	}
+	E_OptionalInt32Extension.Type = extensionTypes[0]
+	E_OptionalInt64Extension.Type = extensionTypes[1]
+	E_OptionalUint32Extension.Type = extensionTypes[2]
+	E_OptionalUint64Extension.Type = extensionTypes[3]
+	E_OptionalSint32Extension.Type = extensionTypes[4]
+	E_OptionalSint64Extension.Type = extensionTypes[5]
+	E_OptionalFixed32Extension.Type = extensionTypes[6]
+	E_OptionalFixed64Extension.Type = extensionTypes[7]
+	E_OptionalSfixed32Extension.Type = extensionTypes[8]
+	E_OptionalSfixed64Extension.Type = extensionTypes[9]
+	E_OptionalFloatExtension.Type = extensionTypes[10]
+	E_OptionalDoubleExtension.Type = extensionTypes[11]
+	E_OptionalBoolExtension.Type = extensionTypes[12]
+	E_OptionalStringExtension.Type = extensionTypes[13]
+	E_OptionalBytesExtension.Type = extensionTypes[14]
+	E_OptionalgroupExtension.Type = extensionTypes[15]
+	E_OptionalNestedMessageExtension.Type = extensionTypes[16]
+	E_OptionalNestedEnumExtension.Type = extensionTypes[17]
+	E_RepeatedInt32Extension.Type = extensionTypes[18]
+	E_RepeatedInt64Extension.Type = extensionTypes[19]
+	E_RepeatedUint32Extension.Type = extensionTypes[20]
+	E_RepeatedUint64Extension.Type = extensionTypes[21]
+	E_RepeatedSint32Extension.Type = extensionTypes[22]
+	E_RepeatedSint64Extension.Type = extensionTypes[23]
+	E_RepeatedFixed32Extension.Type = extensionTypes[24]
+	E_RepeatedFixed64Extension.Type = extensionTypes[25]
+	E_RepeatedSfixed32Extension.Type = extensionTypes[26]
+	E_RepeatedSfixed64Extension.Type = extensionTypes[27]
+	E_RepeatedFloatExtension.Type = extensionTypes[28]
+	E_RepeatedDoubleExtension.Type = extensionTypes[29]
+	E_RepeatedBoolExtension.Type = extensionTypes[30]
+	E_RepeatedStringExtension.Type = extensionTypes[31]
+	E_RepeatedBytesExtension.Type = extensionTypes[32]
+	E_RepeatedgroupExtension.Type = extensionTypes[33]
+	E_RepeatedNestedMessageExtension.Type = extensionTypes[34]
+	E_RepeatedNestedEnumExtension.Type = extensionTypes[35]
+	xxx_Test_protoFile_goTypes = nil
+	xxx_Test_protoFile_depIdxs = nil
 }