diff --git a/CHANGELOG.md b/CHANGELOG.md index e5862af..083803e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,77 @@ # Table of Contents +- [v0.9.0](#v050) +- [v0.8.0](#v040) +- [v0.7.1](#v031) +- [v0.6.0](#v060) - [v0.5.0](#v050) - [v0.4.0](#v040) - [v0.3.1](#v031) +## [v0.9.0] + +> Released 2022/12/07 + +### Changes + +- Fixed parameter type of `kong.service.request.set_raw_body`, return type of + `kong.service.response.get_raw_body`, + and body parameter type of `kong.response.exit` to `[]byte`. + Note that old version (before 3.0.1, or commits before cd2bcf9) of kong is incompatible after this change. + [#132](https://github.com/Kong/go-pdk/pull/132) + [kong/kong#9526](https://github.com/Kong/kong/pull/9526) + +## [v0.8.0] + +> Released 2021/06/09 + +### Changes + +- fix kong.Request.GetRawBody() with buffered content by @javierguerragiraldez in [#91](https://github.com/Kong/go-pdk/pull/91) +- avoid pass-by-value of objects that contain locks. by @javierguerragiraldez in [#79](https://github.com/Kong/go-pdk/pull/79) +- bump go version by @fffonion in [#112](https://github.com/Kong/go-pdk/pull/112) + +### Addtions + +- chore(*) add dependabot by @mayocream in [#98](https://github.com/Kong/go-pdk/pull/98) + +## [v0.7.1] + +> Released 2021/10/16 + +### Changes + +- fix testing: don't break when the plugin Exit()s [#73](https://github.com/Kong/go-pdk/pull/73) +- Ignore unexported struct fields in config struct by @ctrox [#69](https://github.com/Kong/go-pdk/pull/69) +- Start every Headers field empty but non-null [#74](https://github.com/Kong/go-pdk/pull/74) + +### Additions + +- Feat/plugin testing [#64](https://github.com/Kong/go-pdk/pull/64) +- Add godoc comments [#65](https://github.com/Kong/go-pdk/pull/65) + +## [v0.7.0] + +> Released 2021/10/16 + +New ProtoBuf-based communications with Kong. Requires Kong 2.4. + +## [v0.6.1] + +> Released 2021/04/14 + +### Changes + +- API bugfix: port values were given as string instead of Int + +## [v0.6.0] + +> Released 2021/04/14 + +### Additions + +- New Embedded Server to replace the go-pluginserver. Requires Kong v2.3. + ## [v0.5.0] > Released 2020/05/27 @@ -52,6 +120,10 @@ [Back to TOC](#table-of-contents) +[v0.9.0]: https://github.com/Kong/kong/compare/v0.8.0..v0.9.0 +[v0.8.0]: https://github.com/Kong/kong/compare/v0.7.0..v0.8.0 +[v0.7.0]: https://github.com/Kong/kong/compare/v0.6.1..v0.7.0 +[v0.6.0]: https://github.com/Kong/kong/compare/v0.5.0..v0.6.0 [v0.5.0]: https://github.com/Kong/kong/compare/v0.4.0..v0.5.0 [v0.4.0]: https://github.com/Kong/kong/compare/v0.3.1..v0.4.0 [v0.3.1]: https://github.com/Kong/kong/compare/v0.3.0..v0.3.1 diff --git a/bridge/bridge.go b/bridge/bridge.go index 164a569..f32377b 100644 --- a/bridge/bridge.go +++ b/bridge/bridge.go @@ -65,6 +65,10 @@ func WrapString(s string) *kong_plugin_protocol.String { return &kong_plugin_protocol.String{V: s} } +func WrapByteString(s []byte) *kong_plugin_protocol.ByteString { + return &kong_plugin_protocol.ByteString{V: s} +} + func WrapHeaders(h map[string][]string) (*structpb.Struct, error) { h2 := make(map[string]interface{}, len(h)) for k, v := range h { diff --git a/response/response.go b/response/response.go index e009b40..1fccdf8 100644 --- a/response/response.go +++ b/response/response.go @@ -220,7 +220,7 @@ func (r Response) SetHeaders(headers map[string][]string) error { // Unless manually specified, this method will automatically set the // Content-Length header in the produced response for convenience. -func (r Response) Exit(status int, body string, headers map[string][]string) { +func (r Response) Exit(status int, body []byte, headers map[string][]string) { h, _ := bridge.WrapHeaders(headers) arg := kong_plugin_protocol.ExitArgs{ Status: int32(status), diff --git a/server/kong_plugin_protocol/pluginsocket.pb.go b/server/kong_plugin_protocol/pluginsocket.pb.go index 98f1daa..617329a 100644 --- a/server/kong_plugin_protocol/pluginsocket.pb.go +++ b/server/kong_plugin_protocol/pluginsocket.pb.go @@ -1014,20 +1014,67 @@ func (x *String) GetV() string { return "" } +type ByteString struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + V []byte `protobuf:"bytes,1,opt,name=v,proto3" json:"v,omitempty"` +} + +func (x *ByteString) Reset() { + *x = ByteString{} + if protoimpl.UnsafeEnabled { + mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ByteString) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ByteString) ProtoMessage() {} + +func (x *ByteString) ProtoReflect() protoreflect.Message { + mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ByteString.ProtoReflect.Descriptor instead. +func (*ByteString) Descriptor() ([]byte, []int) { + return file_server_kong_plugin_protocol_pluginsocket_proto_rawDescGZIP(), []int{16} +} + +func (x *ByteString) GetV() []byte { + if x != nil { + return x.V + } + return nil +} + type ExitArgs struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"` - Body string `protobuf:"bytes,2,opt,name=body,proto3" json:"body,omitempty"` + Body []byte `protobuf:"bytes,2,opt,name=body,proto3" json:"body,omitempty"` Headers *structpb.Struct `protobuf:"bytes,3,opt,name=headers,proto3" json:"headers,omitempty"` } func (x *ExitArgs) Reset() { *x = ExitArgs{} if protoimpl.UnsafeEnabled { - mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[16] + mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1040,7 +1087,7 @@ func (x *ExitArgs) String() string { func (*ExitArgs) ProtoMessage() {} func (x *ExitArgs) ProtoReflect() protoreflect.Message { - mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[16] + mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1053,7 +1100,7 @@ func (x *ExitArgs) ProtoReflect() protoreflect.Message { // Deprecated: Use ExitArgs.ProtoReflect.Descriptor instead. func (*ExitArgs) Descriptor() ([]byte, []int) { - return file_server_kong_plugin_protocol_pluginsocket_proto_rawDescGZIP(), []int{16} + return file_server_kong_plugin_protocol_pluginsocket_proto_rawDescGZIP(), []int{17} } func (x *ExitArgs) GetStatus() int32 { @@ -1063,11 +1110,11 @@ func (x *ExitArgs) GetStatus() int32 { return 0 } -func (x *ExitArgs) GetBody() string { +func (x *ExitArgs) GetBody() []byte { if x != nil { return x.Body } - return "" + return nil } func (x *ExitArgs) GetHeaders() *structpb.Struct { @@ -1088,7 +1135,7 @@ type ServiceKey struct { func (x *ServiceKey) Reset() { *x = ServiceKey{} if protoimpl.UnsafeEnabled { - mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[17] + mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1101,7 +1148,7 @@ func (x *ServiceKey) String() string { func (*ServiceKey) ProtoMessage() {} func (x *ServiceKey) ProtoReflect() protoreflect.Message { - mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[17] + mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1114,7 +1161,7 @@ func (x *ServiceKey) ProtoReflect() protoreflect.Message { // Deprecated: Use ServiceKey.ProtoReflect.Descriptor instead. func (*ServiceKey) Descriptor() ([]byte, []int) { - return file_server_kong_plugin_protocol_pluginsocket_proto_rawDescGZIP(), []int{17} + return file_server_kong_plugin_protocol_pluginsocket_proto_rawDescGZIP(), []int{18} } func (x *ServiceKey) GetId() string { @@ -1135,7 +1182,7 @@ type CertificateKey struct { func (x *CertificateKey) Reset() { *x = CertificateKey{} if protoimpl.UnsafeEnabled { - mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[18] + mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1148,7 +1195,7 @@ func (x *CertificateKey) String() string { func (*CertificateKey) ProtoMessage() {} func (x *CertificateKey) ProtoReflect() protoreflect.Message { - mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[18] + mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1161,7 +1208,7 @@ func (x *CertificateKey) ProtoReflect() protoreflect.Message { // Deprecated: Use CertificateKey.ProtoReflect.Descriptor instead. func (*CertificateKey) Descriptor() ([]byte, []int) { - return file_server_kong_plugin_protocol_pluginsocket_proto_rawDescGZIP(), []int{18} + return file_server_kong_plugin_protocol_pluginsocket_proto_rawDescGZIP(), []int{19} } func (x *CertificateKey) GetId() string { @@ -1186,7 +1233,7 @@ type RawBodyResult struct { func (x *RawBodyResult) Reset() { *x = RawBodyResult{} if protoimpl.UnsafeEnabled { - mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[19] + mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1199,7 +1246,7 @@ func (x *RawBodyResult) String() string { func (*RawBodyResult) ProtoMessage() {} func (x *RawBodyResult) ProtoReflect() protoreflect.Message { - mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[19] + mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1212,7 +1259,7 @@ func (x *RawBodyResult) ProtoReflect() protoreflect.Message { // Deprecated: Use RawBodyResult.ProtoReflect.Descriptor instead. func (*RawBodyResult) Descriptor() ([]byte, []int) { - return file_server_kong_plugin_protocol_pluginsocket_proto_rawDescGZIP(), []int{19} + return file_server_kong_plugin_protocol_pluginsocket_proto_rawDescGZIP(), []int{20} } func (m *RawBodyResult) GetKind() isRawBodyResult_Kind { @@ -1279,7 +1326,7 @@ type UriCapturesResult struct { func (x *UriCapturesResult) Reset() { *x = UriCapturesResult{} if protoimpl.UnsafeEnabled { - mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[20] + mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1292,7 +1339,7 @@ func (x *UriCapturesResult) String() string { func (*UriCapturesResult) ProtoMessage() {} func (x *UriCapturesResult) ProtoReflect() protoreflect.Message { - mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[20] + mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1305,7 +1352,7 @@ func (x *UriCapturesResult) ProtoReflect() protoreflect.Message { // Deprecated: Use UriCapturesResult.ProtoReflect.Descriptor instead. func (*UriCapturesResult) Descriptor() ([]byte, []int) { - return file_server_kong_plugin_protocol_pluginsocket_proto_rawDescGZIP(), []int{20} + return file_server_kong_plugin_protocol_pluginsocket_proto_rawDescGZIP(), []int{21} } func (x *UriCapturesResult) GetUnnamed() [][]byte { @@ -1350,7 +1397,7 @@ type Route struct { func (x *Route) Reset() { *x = Route{} if protoimpl.UnsafeEnabled { - mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[21] + mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1363,7 +1410,7 @@ func (x *Route) String() string { func (*Route) ProtoMessage() {} func (x *Route) ProtoReflect() protoreflect.Message { - mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[21] + mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1376,7 +1423,7 @@ func (x *Route) ProtoReflect() protoreflect.Message { // Deprecated: Use Route.ProtoReflect.Descriptor instead. func (*Route) Descriptor() ([]byte, []int) { - return file_server_kong_plugin_protocol_pluginsocket_proto_rawDescGZIP(), []int{21} + return file_server_kong_plugin_protocol_pluginsocket_proto_rawDescGZIP(), []int{22} } func (x *Route) GetId() string { @@ -1529,7 +1576,7 @@ type Service struct { func (x *Service) Reset() { *x = Service{} if protoimpl.UnsafeEnabled { - mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[22] + mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1542,7 +1589,7 @@ func (x *Service) String() string { func (*Service) ProtoMessage() {} func (x *Service) ProtoReflect() protoreflect.Message { - mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[22] + mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1555,7 +1602,7 @@ func (x *Service) ProtoReflect() protoreflect.Message { // Deprecated: Use Service.ProtoReflect.Descriptor instead. func (*Service) Descriptor() ([]byte, []int) { - return file_server_kong_plugin_protocol_pluginsocket_proto_rawDescGZIP(), []int{22} + return file_server_kong_plugin_protocol_pluginsocket_proto_rawDescGZIP(), []int{23} } func (x *Service) GetId() string { @@ -1668,7 +1715,7 @@ type Target struct { func (x *Target) Reset() { *x = Target{} if protoimpl.UnsafeEnabled { - mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[23] + mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1681,7 +1728,7 @@ func (x *Target) String() string { func (*Target) ProtoMessage() {} func (x *Target) ProtoReflect() protoreflect.Message { - mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[23] + mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1694,7 +1741,7 @@ func (x *Target) ProtoReflect() protoreflect.Message { // Deprecated: Use Target.ProtoReflect.Descriptor instead. func (*Target) Descriptor() ([]byte, []int) { - return file_server_kong_plugin_protocol_pluginsocket_proto_rawDescGZIP(), []int{23} + return file_server_kong_plugin_protocol_pluginsocket_proto_rawDescGZIP(), []int{24} } func (x *Target) GetHost() string { @@ -1723,7 +1770,7 @@ type ConsumerSpec struct { func (x *ConsumerSpec) Reset() { *x = ConsumerSpec{} if protoimpl.UnsafeEnabled { - mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[24] + mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1736,7 +1783,7 @@ func (x *ConsumerSpec) String() string { func (*ConsumerSpec) ProtoMessage() {} func (x *ConsumerSpec) ProtoReflect() protoreflect.Message { - mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[24] + mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1749,7 +1796,7 @@ func (x *ConsumerSpec) ProtoReflect() protoreflect.Message { // Deprecated: Use ConsumerSpec.ProtoReflect.Descriptor instead. func (*ConsumerSpec) Descriptor() ([]byte, []int) { - return file_server_kong_plugin_protocol_pluginsocket_proto_rawDescGZIP(), []int{24} + return file_server_kong_plugin_protocol_pluginsocket_proto_rawDescGZIP(), []int{25} } func (x *ConsumerSpec) GetId() string { @@ -1781,7 +1828,7 @@ type Consumer struct { func (x *Consumer) Reset() { *x = Consumer{} if protoimpl.UnsafeEnabled { - mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[25] + mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1794,7 +1841,7 @@ func (x *Consumer) String() string { func (*Consumer) ProtoMessage() {} func (x *Consumer) ProtoReflect() protoreflect.Message { - mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[25] + mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1807,7 +1854,7 @@ func (x *Consumer) ProtoReflect() protoreflect.Message { // Deprecated: Use Consumer.ProtoReflect.Descriptor instead. func (*Consumer) Descriptor() ([]byte, []int) { - return file_server_kong_plugin_protocol_pluginsocket_proto_rawDescGZIP(), []int{25} + return file_server_kong_plugin_protocol_pluginsocket_proto_rawDescGZIP(), []int{26} } func (x *Consumer) GetId() string { @@ -1857,7 +1904,7 @@ type AuthenticatedCredential struct { func (x *AuthenticatedCredential) Reset() { *x = AuthenticatedCredential{} if protoimpl.UnsafeEnabled { - mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[26] + mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1870,7 +1917,7 @@ func (x *AuthenticatedCredential) String() string { func (*AuthenticatedCredential) ProtoMessage() {} func (x *AuthenticatedCredential) ProtoReflect() protoreflect.Message { - mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[26] + mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1883,7 +1930,7 @@ func (x *AuthenticatedCredential) ProtoReflect() protoreflect.Message { // Deprecated: Use AuthenticatedCredential.ProtoReflect.Descriptor instead. func (*AuthenticatedCredential) Descriptor() ([]byte, []int) { - return file_server_kong_plugin_protocol_pluginsocket_proto_rawDescGZIP(), []int{26} + return file_server_kong_plugin_protocol_pluginsocket_proto_rawDescGZIP(), []int{27} } func (x *AuthenticatedCredential) GetId() string { @@ -1912,7 +1959,7 @@ type AuthenticateArgs struct { func (x *AuthenticateArgs) Reset() { *x = AuthenticateArgs{} if protoimpl.UnsafeEnabled { - mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[27] + mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1925,7 +1972,7 @@ func (x *AuthenticateArgs) String() string { func (*AuthenticateArgs) ProtoMessage() {} func (x *AuthenticateArgs) ProtoReflect() protoreflect.Message { - mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[27] + mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1938,7 +1985,7 @@ func (x *AuthenticateArgs) ProtoReflect() protoreflect.Message { // Deprecated: Use AuthenticateArgs.ProtoReflect.Descriptor instead. func (*AuthenticateArgs) Descriptor() ([]byte, []int) { - return file_server_kong_plugin_protocol_pluginsocket_proto_rawDescGZIP(), []int{27} + return file_server_kong_plugin_protocol_pluginsocket_proto_rawDescGZIP(), []int{28} } func (x *AuthenticateArgs) GetConsumer() *Consumer { @@ -1967,7 +2014,7 @@ type MemoryStats struct { func (x *MemoryStats) Reset() { *x = MemoryStats{} if protoimpl.UnsafeEnabled { - mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[28] + mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1980,7 +2027,7 @@ func (x *MemoryStats) String() string { func (*MemoryStats) ProtoMessage() {} func (x *MemoryStats) ProtoReflect() protoreflect.Message { - mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[28] + mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1993,7 +2040,7 @@ func (x *MemoryStats) ProtoReflect() protoreflect.Message { // Deprecated: Use MemoryStats.ProtoReflect.Descriptor instead. func (*MemoryStats) Descriptor() ([]byte, []int) { - return file_server_kong_plugin_protocol_pluginsocket_proto_rawDescGZIP(), []int{28} + return file_server_kong_plugin_protocol_pluginsocket_proto_rawDescGZIP(), []int{29} } func (x *MemoryStats) GetLuaSharedDicts() *MemoryStats_LuaSharedDicts { @@ -2021,7 +2068,7 @@ type StringMap struct { func (x *StringMap) Reset() { *x = StringMap{} if protoimpl.UnsafeEnabled { - mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[29] + mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2034,7 +2081,7 @@ func (x *StringMap) String() string { func (*StringMap) ProtoMessage() {} func (x *StringMap) ProtoReflect() protoreflect.Message { - mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[29] + mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2047,7 +2094,7 @@ func (x *StringMap) ProtoReflect() protoreflect.Message { // Deprecated: Use StringMap.ProtoReflect.Descriptor instead. func (*StringMap) Descriptor() ([]byte, []int) { - return file_server_kong_plugin_protocol_pluginsocket_proto_rawDescGZIP(), []int{29} + return file_server_kong_plugin_protocol_pluginsocket_proto_rawDescGZIP(), []int{30} } func (x *StringMap) GetM() map[string]string { @@ -2080,7 +2127,7 @@ type PdkArg struct { func (x *PdkArg) Reset() { *x = PdkArg{} if protoimpl.UnsafeEnabled { - mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[30] + mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2093,7 +2140,7 @@ func (x *PdkArg) String() string { func (*PdkArg) ProtoMessage() {} func (x *PdkArg) ProtoReflect() protoreflect.Message { - mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[30] + mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2106,7 +2153,7 @@ func (x *PdkArg) ProtoReflect() protoreflect.Message { // Deprecated: Use PdkArg.ProtoReflect.Descriptor instead. func (*PdkArg) Descriptor() ([]byte, []int) { - return file_server_kong_plugin_protocol_pluginsocket_proto_rawDescGZIP(), []int{30} + return file_server_kong_plugin_protocol_pluginsocket_proto_rawDescGZIP(), []int{31} } func (m *PdkArg) GetData() isPdkArg_Data { @@ -2277,7 +2324,7 @@ type PdkCall struct { func (x *PdkCall) Reset() { *x = PdkCall{} if protoimpl.UnsafeEnabled { - mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[31] + mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2290,7 +2337,7 @@ func (x *PdkCall) String() string { func (*PdkCall) ProtoMessage() {} func (x *PdkCall) ProtoReflect() protoreflect.Message { - mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[31] + mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2303,7 +2350,7 @@ func (x *PdkCall) ProtoReflect() protoreflect.Message { // Deprecated: Use PdkCall.ProtoReflect.Descriptor instead. func (*PdkCall) Descriptor() ([]byte, []int) { - return file_server_kong_plugin_protocol_pluginsocket_proto_rawDescGZIP(), []int{31} + return file_server_kong_plugin_protocol_pluginsocket_proto_rawDescGZIP(), []int{32} } func (x *PdkCall) GetSequence() int64 { @@ -2348,7 +2395,7 @@ type PdkReturn struct { func (x *PdkReturn) Reset() { *x = PdkReturn{} if protoimpl.UnsafeEnabled { - mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[32] + mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2361,7 +2408,7 @@ func (x *PdkReturn) String() string { func (*PdkReturn) ProtoMessage() {} func (x *PdkReturn) ProtoReflect() protoreflect.Message { - mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[32] + mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2374,7 +2421,7 @@ func (x *PdkReturn) ProtoReflect() protoreflect.Message { // Deprecated: Use PdkReturn.ProtoReflect.Descriptor instead. func (*PdkReturn) Descriptor() ([]byte, []int) { - return file_server_kong_plugin_protocol_pluginsocket_proto_rawDescGZIP(), []int{32} + return file_server_kong_plugin_protocol_pluginsocket_proto_rawDescGZIP(), []int{33} } func (x *PdkReturn) GetSequence() int64 { @@ -2417,7 +2464,7 @@ type MemoryStats_LuaSharedDicts struct { func (x *MemoryStats_LuaSharedDicts) Reset() { *x = MemoryStats_LuaSharedDicts{} if protoimpl.UnsafeEnabled { - mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[34] + mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2430,7 +2477,7 @@ func (x *MemoryStats_LuaSharedDicts) String() string { func (*MemoryStats_LuaSharedDicts) ProtoMessage() {} func (x *MemoryStats_LuaSharedDicts) ProtoReflect() protoreflect.Message { - mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[34] + mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2443,7 +2490,7 @@ func (x *MemoryStats_LuaSharedDicts) ProtoReflect() protoreflect.Message { // Deprecated: Use MemoryStats_LuaSharedDicts.ProtoReflect.Descriptor instead. func (*MemoryStats_LuaSharedDicts) Descriptor() ([]byte, []int) { - return file_server_kong_plugin_protocol_pluginsocket_proto_rawDescGZIP(), []int{28, 0} + return file_server_kong_plugin_protocol_pluginsocket_proto_rawDescGZIP(), []int{29, 0} } func (x *MemoryStats_LuaSharedDicts) GetKong() *MemoryStats_LuaSharedDicts_DictStats { @@ -2472,7 +2519,7 @@ type MemoryStats_WorkerLuaVm struct { func (x *MemoryStats_WorkerLuaVm) Reset() { *x = MemoryStats_WorkerLuaVm{} if protoimpl.UnsafeEnabled { - mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[35] + mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2485,7 +2532,7 @@ func (x *MemoryStats_WorkerLuaVm) String() string { func (*MemoryStats_WorkerLuaVm) ProtoMessage() {} func (x *MemoryStats_WorkerLuaVm) ProtoReflect() protoreflect.Message { - mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[35] + mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2498,7 +2545,7 @@ func (x *MemoryStats_WorkerLuaVm) ProtoReflect() protoreflect.Message { // Deprecated: Use MemoryStats_WorkerLuaVm.ProtoReflect.Descriptor instead. func (*MemoryStats_WorkerLuaVm) Descriptor() ([]byte, []int) { - return file_server_kong_plugin_protocol_pluginsocket_proto_rawDescGZIP(), []int{28, 1} + return file_server_kong_plugin_protocol_pluginsocket_proto_rawDescGZIP(), []int{29, 1} } func (x *MemoryStats_WorkerLuaVm) GetHttpAllocatedGc() int64 { @@ -2527,7 +2574,7 @@ type MemoryStats_LuaSharedDicts_DictStats struct { func (x *MemoryStats_LuaSharedDicts_DictStats) Reset() { *x = MemoryStats_LuaSharedDicts_DictStats{} if protoimpl.UnsafeEnabled { - mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[36] + mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2540,7 +2587,7 @@ func (x *MemoryStats_LuaSharedDicts_DictStats) String() string { func (*MemoryStats_LuaSharedDicts_DictStats) ProtoMessage() {} func (x *MemoryStats_LuaSharedDicts_DictStats) ProtoReflect() protoreflect.Message { - mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[36] + mi := &file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2553,7 +2600,7 @@ func (x *MemoryStats_LuaSharedDicts_DictStats) ProtoReflect() protoreflect.Messa // Deprecated: Use MemoryStats_LuaSharedDicts_DictStats.ProtoReflect.Descriptor instead. func (*MemoryStats_LuaSharedDicts_DictStats) Descriptor() ([]byte, []int) { - return file_server_kong_plugin_protocol_pluginsocket_proto_rawDescGZIP(), []int{28, 0, 0} + return file_server_kong_plugin_protocol_pluginsocket_proto_rawDescGZIP(), []int{29, 0, 0} } func (x *MemoryStats_LuaSharedDicts_DictStats) GetAllocatedSlabs() int64 { @@ -2707,553 +2754,555 @@ var file_server_kong_plugin_protocol_pluginsocket_proto_rawDesc = []byte{ 0x05, 0x52, 0x01, 0x76, 0x22, 0x16, 0x0a, 0x06, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x0c, 0x0a, 0x01, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x01, 0x76, 0x22, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x0c, 0x0a, 0x01, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x01, 0x76, 0x22, 0x69, 0x0a, 0x08, 0x45, 0x78, 0x69, 0x74, 0x41, 0x72, 0x67, 0x73, - 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x31, 0x0a, 0x07, - 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x22, - 0x1c, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x0e, 0x0a, - 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x20, 0x0a, - 0x0e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, - 0x72, 0x0a, 0x0d, 0x52, 0x61, 0x77, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x12, 0x1a, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0c, 0x48, 0x00, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0d, - 0x62, 0x6f, 0x64, 0x79, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x62, 0x6f, 0x64, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x70, - 0x61, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x06, 0x0a, 0x04, 0x6b, - 0x69, 0x6e, 0x64, 0x22, 0xb1, 0x01, 0x0a, 0x11, 0x55, 0x72, 0x69, 0x43, 0x61, 0x70, 0x74, 0x75, - 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x6e, 0x6e, - 0x61, 0x6d, 0x65, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x07, 0x75, 0x6e, 0x6e, 0x61, - 0x6d, 0x65, 0x64, 0x12, 0x48, 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, - 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x55, 0x72, 0x69, 0x43, 0x61, 0x70, - 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x4e, 0x61, 0x6d, 0x65, - 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x1a, 0x38, 0x0a, - 0x0a, 0x4e, 0x61, 0x6d, 0x65, 0x64, 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, 0x22, 0xb1, 0x04, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, + 0x09, 0x52, 0x01, 0x76, 0x22, 0x1a, 0x0a, 0x0a, 0x42, 0x79, 0x74, 0x65, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x12, 0x0c, 0x0a, 0x01, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x01, 0x76, + 0x22, 0x69, 0x0a, 0x08, 0x45, 0x78, 0x69, 0x74, 0x41, 0x72, 0x67, 0x73, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x31, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x22, 0x1c, 0x0a, 0x0a, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x20, 0x0a, 0x0e, 0x43, 0x65, 0x72, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x72, 0x0a, 0x0d, 0x52, + 0x61, 0x77, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1a, 0x0a, 0x07, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, + 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0d, 0x62, 0x6f, 0x64, 0x79, + 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x0c, 0x62, 0x6f, 0x64, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x70, 0x61, 0x74, 0x68, 0x12, + 0x16, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x06, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x22, + 0xb1, 0x01, 0x0a, 0x11, 0x55, 0x72, 0x69, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x07, 0x75, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x12, + 0x48, 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, + 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x55, 0x72, 0x69, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x1a, 0x38, 0x0a, 0x0a, 0x4e, 0x61, 0x6d, + 0x65, 0x64, 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, 0x22, 0xb1, 0x04, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, + 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x12, 0x18, 0x0a, + 0x07, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, + 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x6f, 0x73, 0x74, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x68, 0x6f, 0x73, 0x74, 0x73, 0x12, 0x14, 0x0a, + 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x70, 0x61, + 0x74, 0x68, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x09, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x3b, 0x0a, + 0x1a, 0x68, 0x74, 0x74, 0x70, 0x73, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x17, 0x68, 0x74, 0x74, 0x70, 0x73, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, + 0x67, 0x65, 0x78, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0d, 0x72, 0x65, 0x67, 0x65, 0x78, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x69, 0x70, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x74, 0x72, 0x69, 0x70, 0x50, 0x61, 0x74, 0x68, + 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x5f, 0x68, 0x6f, 0x73, + 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6e, 0x69, 0x73, 0x18, 0x0e, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x04, 0x73, 0x6e, 0x69, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x11, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x3a, 0x0a, 0x07, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6b, + 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x07, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x22, 0xb7, 0x03, 0x0a, 0x07, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, + 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x68, + 0x6f, 0x73, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, + 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, + 0x6f, 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, + 0x12, 0x23, 0x0a, 0x0d, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, + 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x77, 0x72, 0x69, 0x74, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x65, 0x61, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x53, 0x0a, 0x12, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, + 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, + 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x11, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x22, 0x30, 0x0a, 0x06, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x68, + 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, + 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, + 0x6f, 0x72, 0x74, 0x22, 0x3f, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x53, + 0x70, 0x65, 0x63, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x62, 0x79, 0x55, 0x73, 0x65, 0x72, + 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x86, 0x01, 0x0a, 0x08, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, + 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, - 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x18, 0x06, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x68, - 0x6f, 0x73, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x68, 0x6f, 0x73, 0x74, - 0x73, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x73, 0x12, 0x3b, 0x0a, 0x1a, 0x68, 0x74, 0x74, 0x70, 0x73, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x17, 0x68, 0x74, 0x74, 0x70, 0x73, 0x52, 0x65, 0x64, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x25, - 0x0a, 0x0e, 0x72, 0x65, 0x67, 0x65, 0x78, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x65, 0x67, 0x65, 0x78, 0x50, 0x72, 0x69, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x69, 0x70, 0x5f, 0x70, - 0x61, 0x74, 0x68, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x74, 0x72, 0x69, 0x70, - 0x50, 0x61, 0x74, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x70, 0x72, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6e, 0x69, - 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x73, 0x6e, 0x69, 0x73, 0x12, 0x18, 0x0a, - 0x07, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x65, 0x73, 0x74, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x64, - 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, - 0x61, 0x67, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, - 0x3a, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x20, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4b, - 0x65, 0x79, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x22, 0xb7, 0x03, 0x0a, 0x07, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x74, - 0x72, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x65, 0x74, 0x72, - 0x69, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, - 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, - 0x6f, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x27, 0x0a, 0x0f, 0x63, - 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54, 0x69, 0x6d, - 0x65, 0x6f, 0x75, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x77, 0x72, 0x69, - 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x61, - 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0b, 0x72, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x12, 0x0a, 0x04, - 0x74, 0x61, 0x67, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, - 0x12, 0x53, 0x0a, 0x12, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6b, - 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, - 0x65, 0x79, 0x52, 0x11, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x65, 0x22, 0x30, 0x0a, 0x06, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, - 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, - 0x6f, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x3f, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x73, 0x75, - 0x6d, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x79, 0x5f, 0x75, 0x73, - 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x62, 0x79, - 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x86, 0x01, 0x0a, 0x08, 0x43, 0x6f, 0x6e, - 0x73, 0x75, 0x6d, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x12, 0x0a, - 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, - 0x73, 0x22, 0x4a, 0x0a, 0x17, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, - 0x65, 0x64, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x0e, 0x0a, 0x02, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0b, - 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x49, 0x64, 0x22, 0x9d, 0x01, - 0x0a, 0x10, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x41, 0x72, - 0x67, 0x73, 0x12, 0x3a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, - 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x6f, 0x6e, 0x73, - 0x75, 0x6d, 0x65, 0x72, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x12, 0x4d, - 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, - 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, - 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, - 0x6c, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x22, 0xa2, 0x04, - 0x0a, 0x0b, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x5a, 0x0a, - 0x10, 0x6c, 0x75, 0x61, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x64, 0x69, 0x63, 0x74, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, - 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, - 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x4c, 0x75, 0x61, 0x53, 0x68, - 0x61, 0x72, 0x65, 0x64, 0x44, 0x69, 0x63, 0x74, 0x73, 0x52, 0x0e, 0x6c, 0x75, 0x61, 0x53, 0x68, - 0x61, 0x72, 0x65, 0x64, 0x44, 0x69, 0x63, 0x74, 0x73, 0x12, 0x55, 0x0a, 0x0f, 0x77, 0x6f, 0x72, - 0x6b, 0x65, 0x72, 0x73, 0x5f, 0x6c, 0x75, 0x61, 0x5f, 0x76, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, - 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, - 0x53, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x4c, 0x75, 0x61, 0x56, - 0x6d, 0x52, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x73, 0x4c, 0x75, 0x61, 0x56, 0x6d, 0x73, - 0x1a, 0x92, 0x02, 0x0a, 0x0e, 0x4c, 0x75, 0x61, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x44, 0x69, - 0x63, 0x74, 0x73, 0x12, 0x4e, 0x0a, 0x04, 0x6b, 0x6f, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x3a, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x53, - 0x74, 0x61, 0x74, 0x73, 0x2e, 0x4c, 0x75, 0x61, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x44, 0x69, - 0x63, 0x74, 0x73, 0x2e, 0x44, 0x69, 0x63, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x04, 0x6b, - 0x6f, 0x6e, 0x67, 0x12, 0x5e, 0x0a, 0x0d, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x64, 0x62, 0x5f, 0x63, - 0x61, 0x63, 0x68, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6b, 0x6f, 0x6e, - 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x4c, 0x75, - 0x61, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x44, 0x69, 0x63, 0x74, 0x73, 0x2e, 0x44, 0x69, 0x63, - 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x0b, 0x6b, 0x6f, 0x6e, 0x67, 0x44, 0x62, 0x43, 0x61, - 0x63, 0x68, 0x65, 0x1a, 0x50, 0x0a, 0x09, 0x44, 0x69, 0x63, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, - 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x6c, - 0x61, 0x62, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x63, - 0x61, 0x74, 0x65, 0x64, 0x53, 0x6c, 0x61, 0x62, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x70, - 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x63, 0x61, 0x70, - 0x61, 0x63, 0x69, 0x74, 0x79, 0x1a, 0x4b, 0x0a, 0x0b, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x4c, - 0x75, 0x61, 0x56, 0x6d, 0x12, 0x2a, 0x0a, 0x11, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x61, 0x6c, 0x6c, - 0x6f, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x67, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x0f, 0x68, 0x74, 0x74, 0x70, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x64, 0x47, 0x63, - 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x70, - 0x69, 0x64, 0x22, 0x77, 0x0a, 0x09, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x70, 0x12, - 0x34, 0x0a, 0x01, 0x6d, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6b, 0x6f, 0x6e, - 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x70, 0x2e, 0x4d, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x01, 0x6d, 0x1a, 0x34, 0x0a, 0x06, 0x4d, 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, 0x22, 0xe0, 0x03, 0x0a, 0x06, - 0x50, 0x64, 0x6b, 0x41, 0x72, 0x67, 0x12, 0x0e, 0x0a, 0x01, 0x62, 0x18, 0x1f, 0x20, 0x01, 0x28, - 0x08, 0x48, 0x00, 0x52, 0x01, 0x62, 0x12, 0x0e, 0x0a, 0x01, 0x69, 0x18, 0x20, 0x20, 0x01, 0x28, - 0x03, 0x48, 0x00, 0x52, 0x01, 0x69, 0x12, 0x0e, 0x0a, 0x01, 0x66, 0x18, 0x21, 0x20, 0x01, 0x28, - 0x01, 0x48, 0x00, 0x52, 0x01, 0x66, 0x12, 0x0e, 0x0a, 0x01, 0x73, 0x18, 0x22, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x01, 0x73, 0x12, 0x2f, 0x0a, 0x01, 0x6d, 0x18, 0x23, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1f, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4d, - 0x61, 0x70, 0x48, 0x00, 0x52, 0x01, 0x6d, 0x12, 0x16, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x18, 0x24, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, - 0x4f, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x18, 0x28, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, - 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x65, - 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x61, 0x6c, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, - 0x12, 0x33, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1b, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x48, 0x00, 0x52, 0x05, - 0x72, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x39, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, - 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x48, 0x00, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x12, 0x3c, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x18, 0x2b, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, - 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, - 0x65, 0x72, 0x48, 0x00, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x12, 0x46, - 0x0a, 0x0c, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x2c, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, - 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, - 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x48, 0x00, 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x6f, 0x72, - 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x84, - 0x01, 0x0a, 0x07, 0x50, 0x64, 0x6b, 0x43, 0x61, 0x6c, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, - 0x64, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x6d, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x63, 0x6d, 0x64, 0x12, 0x30, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x1f, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x64, 0x6b, 0x41, 0x72, 0x67, 0x52, - 0x04, 0x61, 0x72, 0x67, 0x73, 0x22, 0x84, 0x01, 0x0a, 0x09, 0x50, 0x64, 0x6b, 0x52, 0x65, 0x74, - 0x75, 0x72, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, - 0x19, 0x0a, 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x6d, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x6d, 0x64, 0x12, 0x2e, 0x0a, 0x03, - 0x61, 0x72, 0x67, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, - 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x2e, 0x50, 0x64, 0x6b, 0x41, 0x72, 0x67, 0x52, 0x03, 0x61, 0x72, 0x67, 0x32, 0xdf, 0x2c, 0x0a, - 0x04, 0x4b, 0x6f, 0x6e, 0x67, 0x12, 0x44, 0x0a, 0x0c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, - 0x47, 0x65, 0x74, 0x49, 0x70, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, + 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, + 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x22, 0x4a, 0x0a, + 0x17, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x43, 0x72, + 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, + 0x75, 0x6d, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, + 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x49, 0x64, 0x22, 0x9d, 0x01, 0x0a, 0x10, 0x41, 0x75, + 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x41, 0x72, 0x67, 0x73, 0x12, 0x3a, + 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1e, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, + 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x0a, 0x63, 0x72, + 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, + 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, + 0x74, 0x65, 0x64, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x0a, 0x63, + 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x22, 0xa2, 0x04, 0x0a, 0x0b, 0x4d, 0x65, + 0x6d, 0x6f, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x5a, 0x0a, 0x10, 0x6c, 0x75, 0x61, + 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x64, 0x69, 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, + 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x72, + 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x4c, 0x75, 0x61, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, + 0x44, 0x69, 0x63, 0x74, 0x73, 0x52, 0x0e, 0x6c, 0x75, 0x61, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, + 0x44, 0x69, 0x63, 0x74, 0x73, 0x12, 0x55, 0x0a, 0x0f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x73, + 0x5f, 0x6c, 0x75, 0x61, 0x5f, 0x76, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, + 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, + 0x73, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x4c, 0x75, 0x61, 0x56, 0x6d, 0x52, 0x0d, 0x77, + 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x73, 0x4c, 0x75, 0x61, 0x56, 0x6d, 0x73, 0x1a, 0x92, 0x02, 0x0a, + 0x0e, 0x4c, 0x75, 0x61, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x44, 0x69, 0x63, 0x74, 0x73, 0x12, + 0x4e, 0x0a, 0x04, 0x6b, 0x6f, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x4d, 0x0a, 0x15, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, - 0x65, 0x64, 0x49, 0x70, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x6b, - 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x43, 0x0a, 0x0e, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x19, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, - 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x49, 0x6e, 0x74, 0x12, - 0x4c, 0x0a, 0x17, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, - 0x77, 0x61, 0x72, 0x64, 0x65, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x1a, 0x19, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, - 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x49, 0x6e, 0x74, 0x12, 0x5d, 0x0a, - 0x14, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x47, 0x65, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2d, 0x2e, + 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, + 0x2e, 0x4c, 0x75, 0x61, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x44, 0x69, 0x63, 0x74, 0x73, 0x2e, + 0x44, 0x69, 0x63, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x04, 0x6b, 0x6f, 0x6e, 0x67, 0x12, + 0x5e, 0x0a, 0x0d, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x64, 0x62, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, + 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x65, + 0x6d, 0x6f, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x4c, 0x75, 0x61, 0x53, 0x68, 0x61, + 0x72, 0x65, 0x64, 0x44, 0x69, 0x63, 0x74, 0x73, 0x2e, 0x44, 0x69, 0x63, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x73, 0x52, 0x0b, 0x6b, 0x6f, 0x6e, 0x67, 0x44, 0x62, 0x43, 0x61, 0x63, 0x68, 0x65, 0x1a, + 0x50, 0x0a, 0x09, 0x44, 0x69, 0x63, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, + 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x64, + 0x53, 0x6c, 0x61, 0x62, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, + 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, + 0x79, 0x1a, 0x4b, 0x0a, 0x0b, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x4c, 0x75, 0x61, 0x56, 0x6d, + 0x12, 0x2a, 0x0a, 0x11, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x65, 0x64, 0x5f, 0x67, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x68, 0x74, 0x74, + 0x70, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x64, 0x47, 0x63, 0x12, 0x10, 0x0a, 0x03, + 0x70, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x70, 0x69, 0x64, 0x22, 0x77, + 0x0a, 0x09, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x70, 0x12, 0x34, 0x0a, 0x01, 0x6d, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, + 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x70, 0x2e, 0x4d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x01, + 0x6d, 0x1a, 0x34, 0x0a, 0x06, 0x4d, 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, 0x22, 0xe0, 0x03, 0x0a, 0x06, 0x50, 0x64, 0x6b, 0x41, + 0x72, 0x67, 0x12, 0x0e, 0x0a, 0x01, 0x62, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, + 0x01, 0x62, 0x12, 0x0e, 0x0a, 0x01, 0x69, 0x18, 0x20, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, + 0x01, 0x69, 0x12, 0x0e, 0x0a, 0x01, 0x66, 0x18, 0x21, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, + 0x01, 0x66, 0x12, 0x0e, 0x0a, 0x01, 0x73, 0x18, 0x22, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x01, 0x73, 0x12, 0x2f, 0x0a, 0x01, 0x6d, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, - 0x65, 0x64, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x59, 0x0a, 0x13, - 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x4c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x75, - 0x6d, 0x65, 0x72, 0x12, 0x22, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, - 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x75, - 0x6d, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x1a, 0x1e, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, - 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, - 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x12, 0x4c, 0x0a, 0x12, 0x43, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x5f, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x12, 0x16, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1e, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, - 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x6f, 0x6e, - 0x73, 0x75, 0x6d, 0x65, 0x72, 0x12, 0x55, 0x0a, 0x13, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, - 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x26, 0x2e, 0x6b, - 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x41, 0x72, 0x67, 0x73, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4e, 0x0a, 0x12, - 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x12, 0x1a, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, - 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x1a, 0x1c, + 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x70, 0x48, 0x00, + 0x52, 0x01, 0x6d, 0x12, 0x16, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x24, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x4f, 0x0a, 0x0a, 0x63, + 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2d, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, + 0x61, 0x74, 0x65, 0x64, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x48, 0x00, + 0x52, 0x0a, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x33, 0x0a, 0x05, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6b, 0x6f, + 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x48, 0x00, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x74, + 0x65, 0x12, 0x39, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x2a, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, + 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x48, 0x00, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x3c, 0x0a, 0x08, + 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x5a, 0x0a, 0x0d, - 0x43, 0x74, 0x78, 0x5f, 0x53, 0x65, 0x74, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x12, 0x18, 0x2e, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x48, 0x00, + 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x12, 0x46, 0x0a, 0x0c, 0x6d, 0x65, + 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x53, 0x74, + 0x61, 0x74, 0x73, 0x48, 0x00, 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x53, 0x74, 0x61, + 0x74, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x84, 0x01, 0x0a, 0x07, 0x50, + 0x64, 0x6b, 0x43, 0x61, 0x6c, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x10, 0x0a, + 0x03, 0x63, 0x6d, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x6d, 0x64, 0x12, + 0x30, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4b, 0x56, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, - 0x17, 0xba, 0xb5, 0x18, 0x13, 0x6b, 0x6f, 0x6e, 0x67, 0x2e, 0x63, 0x74, 0x78, 0x2e, 0x73, 0x68, - 0x61, 0x72, 0x65, 0x64, 0x2e, 0x73, 0x65, 0x74, 0x12, 0x5e, 0x0a, 0x0d, 0x43, 0x74, 0x78, 0x5f, - 0x47, 0x65, 0x74, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x12, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, + 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x64, 0x6b, 0x41, 0x72, 0x67, 0x52, 0x04, 0x61, 0x72, 0x67, + 0x73, 0x22, 0x84, 0x01, 0x0a, 0x09, 0x50, 0x64, 0x6b, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x12, + 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x6d, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x6d, 0x64, 0x12, 0x2e, 0x0a, 0x03, 0x61, 0x72, 0x67, 0x18, + 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, + 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x64, 0x6b, + 0x41, 0x72, 0x67, 0x52, 0x03, 0x61, 0x72, 0x67, 0x32, 0xe7, 0x2c, 0x0a, 0x04, 0x4b, 0x6f, 0x6e, + 0x67, 0x12, 0x44, 0x0a, 0x0c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x47, 0x65, 0x74, 0x49, + 0x70, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, - 0x17, 0xba, 0xb5, 0x18, 0x13, 0x6b, 0x6f, 0x6e, 0x67, 0x2e, 0x63, 0x74, 0x78, 0x2e, 0x73, 0x68, - 0x61, 0x72, 0x65, 0x64, 0x2e, 0x67, 0x65, 0x74, 0x12, 0x48, 0x0a, 0x0c, 0x49, 0x70, 0x5f, 0x49, - 0x73, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x12, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, + 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x4d, 0x0a, 0x15, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x5f, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x65, 0x64, 0x49, 0x70, + 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, - 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x1a, 0x1a, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, - 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x6f, - 0x6f, 0x6c, 0x12, 0x3f, 0x0a, 0x09, 0x4c, 0x6f, 0x67, 0x5f, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x12, - 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x12, 0x3e, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x5f, 0x43, 0x72, 0x69, 0x74, 0x12, - 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x12, 0x3d, 0x0a, 0x07, 0x4c, 0x6f, 0x67, 0x5f, 0x45, 0x72, 0x72, 0x12, 0x1a, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x12, 0x3e, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x5f, 0x57, 0x61, 0x72, 0x6e, 0x12, 0x1a, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x12, 0x40, 0x0a, 0x0a, 0x4c, 0x6f, 0x67, 0x5f, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, - 0x12, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3e, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x5f, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3f, 0x0a, 0x09, 0x4c, 0x6f, 0x67, 0x5f, 0x44, 0x65, 0x62, 0x75, - 0x67, 0x12, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x49, 0x0a, 0x15, 0x4c, 0x6f, 0x67, 0x5f, 0x53, 0x65, 0x74, - 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, - 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4b, 0x56, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x43, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x5f, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x12, 0x45, 0x0a, 0x0d, 0x4c, 0x6f, 0x67, 0x5f, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, - 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, + 0x1a, 0x19, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x49, 0x6e, 0x74, 0x12, 0x4c, 0x0a, 0x17, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, + 0x65, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x19, + 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x49, 0x6e, 0x74, 0x12, 0x5d, 0x0a, 0x14, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x5f, 0x47, 0x65, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, + 0x6c, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2d, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x4a, 0x0a, 0x0c, 0x4e, 0x67, 0x69, 0x6e, 0x78, - 0x5f, 0x47, 0x65, 0x74, 0x56, 0x61, 0x72, 0x12, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, - 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x1a, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, - 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x12, 0x4f, 0x0a, 0x17, 0x4e, 0x67, 0x69, 0x6e, 0x78, 0x5f, 0x47, 0x65, 0x74, - 0x54, 0x6c, 0x73, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x12, 0x16, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, - 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x12, 0x46, 0x0a, 0x0c, 0x4e, 0x67, 0x69, 0x6e, 0x78, 0x5f, 0x53, 0x65, - 0x74, 0x43, 0x74, 0x78, 0x12, 0x18, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, - 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4b, 0x56, 0x1a, 0x1c, + 0x2e, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x43, 0x72, + 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x59, 0x0a, 0x13, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x5f, 0x4c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x12, + 0x22, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x53, + 0x70, 0x65, 0x63, 0x1a, 0x1e, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, + 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x75, + 0x6d, 0x65, 0x72, 0x12, 0x4c, 0x0a, 0x12, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x47, 0x65, + 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x1a, 0x1e, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, + 0x72, 0x12, 0x55, 0x0a, 0x13, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x41, 0x75, 0x74, 0x68, + 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x26, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, + 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, + 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x41, 0x72, 0x67, 0x73, + 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4e, 0x0a, 0x12, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x5f, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x1a, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x44, 0x0a, 0x0c, - 0x4e, 0x67, 0x69, 0x6e, 0x78, 0x5f, 0x47, 0x65, 0x74, 0x43, 0x74, 0x78, 0x12, 0x1c, 0x2e, 0x6b, - 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x12, 0x4a, 0x0a, 0x12, 0x4e, 0x67, 0x69, 0x6e, 0x78, 0x5f, 0x52, 0x65, 0x71, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x1a, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, + 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x5a, 0x0a, 0x0d, 0x43, 0x74, 0x78, 0x5f, + 0x53, 0x65, 0x74, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x12, 0x18, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, + 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x2e, 0x4b, 0x56, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x17, 0xba, 0xb5, 0x18, + 0x13, 0x6b, 0x6f, 0x6e, 0x67, 0x2e, 0x63, 0x74, 0x78, 0x2e, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, + 0x2e, 0x73, 0x65, 0x74, 0x12, 0x5e, 0x0a, 0x0d, 0x43, 0x74, 0x78, 0x5f, 0x47, 0x65, 0x74, 0x53, + 0x68, 0x61, 0x72, 0x65, 0x64, 0x12, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, + 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x17, 0xba, 0xb5, 0x18, + 0x13, 0x6b, 0x6f, 0x6e, 0x67, 0x2e, 0x63, 0x74, 0x78, 0x2e, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, + 0x2e, 0x67, 0x65, 0x74, 0x12, 0x48, 0x0a, 0x0c, 0x49, 0x70, 0x5f, 0x49, 0x73, 0x54, 0x72, 0x75, + 0x73, 0x74, 0x65, 0x64, 0x12, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, + 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x1a, 0x1a, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, + 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x3f, + 0x0a, 0x09, 0x4c, 0x6f, 0x67, 0x5f, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x12, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, + 0x3e, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x5f, 0x43, 0x72, 0x69, 0x74, 0x12, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, + 0x3d, 0x0a, 0x07, 0x4c, 0x6f, 0x67, 0x5f, 0x45, 0x72, 0x72, 0x12, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3e, + 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x5f, 0x57, 0x61, 0x72, 0x6e, 0x12, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x40, + 0x0a, 0x0a, 0x4c, 0x6f, 0x67, 0x5f, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x1a, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4a, - 0x0a, 0x12, 0x4e, 0x67, 0x69, 0x6e, 0x78, 0x5f, 0x47, 0x65, 0x74, 0x53, 0x75, 0x62, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x6b, - 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x42, 0x0a, 0x0a, 0x4e, 0x6f, - 0x64, 0x65, 0x5f, 0x47, 0x65, 0x74, 0x49, 0x64, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x12, 0x3e, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x5f, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x1a, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x50, - 0x0a, 0x13, 0x4e, 0x6f, 0x64, 0x65, 0x5f, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, - 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x21, 0x2e, - 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, - 0x12, 0x49, 0x0a, 0x11, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x47, 0x65, 0x74, 0x53, - 0x63, 0x68, 0x65, 0x6d, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, - 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x47, 0x0a, 0x0f, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x16, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, - 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x12, 0x44, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, - 0x47, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, - 0x19, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x49, 0x6e, 0x74, 0x12, 0x52, 0x0a, 0x1a, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, - 0x65, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x1a, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x50, - 0x0a, 0x18, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, - 0x77, 0x61, 0x72, 0x64, 0x65, 0x64, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x12, 0x3f, 0x0a, 0x09, 0x4c, 0x6f, 0x67, 0x5f, 0x44, 0x65, 0x62, 0x75, 0x67, 0x12, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x12, 0x49, 0x0a, 0x15, 0x4c, 0x6f, 0x67, 0x5f, 0x53, 0x65, 0x74, 0x53, 0x65, 0x72, 0x69, + 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x2e, 0x6b, 0x6f, 0x6e, + 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x2e, 0x4b, 0x56, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x45, 0x0a, 0x0d, + 0x4c, 0x6f, 0x67, 0x5f, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x12, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, + 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x12, 0x4a, 0x0a, 0x0c, 0x4e, 0x67, 0x69, 0x6e, 0x78, 0x5f, 0x47, 0x65, 0x74, + 0x56, 0x61, 0x72, 0x12, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, + 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x1a, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, + 0x4f, 0x0a, 0x17, 0x4e, 0x67, 0x69, 0x6e, 0x78, 0x5f, 0x47, 0x65, 0x74, 0x54, 0x6c, 0x73, 0x31, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x12, 0x4d, 0x0a, 0x18, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x47, 0x65, 0x74, 0x46, - 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x65, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x19, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, - 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x49, 0x6e, 0x74, 0x12, - 0x4e, 0x0a, 0x16, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x47, 0x65, 0x74, 0x48, 0x74, - 0x74, 0x70, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x1a, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, - 0x49, 0x0a, 0x11, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x47, 0x65, 0x74, 0x4d, 0x65, - 0x74, 0x68, 0x6f, 0x64, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x12, 0x46, 0x0a, 0x0c, 0x4e, 0x67, 0x69, 0x6e, 0x78, 0x5f, 0x53, 0x65, 0x74, 0x43, 0x74, 0x78, + 0x12, 0x18, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4b, 0x56, 0x1a, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, + 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x44, 0x0a, 0x0c, 0x4e, 0x67, 0x69, 0x6e, + 0x78, 0x5f, 0x47, 0x65, 0x74, 0x43, 0x74, 0x78, 0x12, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, + 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x4a, + 0x0a, 0x12, 0x4e, 0x67, 0x69, 0x6e, 0x78, 0x5f, 0x52, 0x65, 0x71, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x47, 0x0a, 0x0f, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x16, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, - 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x12, 0x50, 0x0a, 0x18, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x47, - 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x57, 0x69, 0x74, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, - 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, - 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x4b, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x5f, 0x47, 0x65, 0x74, 0x52, 0x61, 0x77, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x16, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, - 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x12, 0x51, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x47, 0x65, - 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x72, 0x67, 0x12, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, + 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x12, 0x4e, 0x67, + 0x69, 0x6e, 0x78, 0x5f, 0x47, 0x65, 0x74, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, + 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, + 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x42, 0x0a, 0x0a, 0x4e, 0x6f, 0x64, 0x65, 0x5f, 0x47, + 0x65, 0x74, 0x49, 0x64, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x6b, + 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x50, 0x0a, 0x13, 0x4e, 0x6f, + 0x64, 0x65, 0x5f, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, + 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x21, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x1a, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, - 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x46, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x5f, 0x47, 0x65, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x19, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, + 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x49, 0x0a, 0x11, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, + 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x2e, 0x49, 0x6e, 0x74, 0x1a, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12, 0x4f, 0x0a, - 0x11, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, + 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x47, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x5f, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x1a, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x48, - 0x0a, 0x12, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x73, 0x12, 0x19, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, - 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x49, 0x6e, 0x74, 0x1a, - 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12, 0x51, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x5f, 0x47, 0x65, 0x74, 0x52, 0x61, 0x77, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x16, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x23, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, - 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x52, 0x61, - 0x77, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x59, 0x0a, 0x16, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x47, 0x65, 0x74, 0x55, 0x72, 0x69, 0x43, 0x61, 0x70, - 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x27, 0x2e, + 0x12, 0x44, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x47, 0x65, 0x74, 0x50, + 0x6f, 0x72, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x19, 0x2e, 0x6b, 0x6f, + 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x2e, 0x49, 0x6e, 0x74, 0x12, 0x52, 0x0a, 0x1a, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x5f, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x65, 0x64, 0x53, 0x63, + 0x68, 0x65, 0x6d, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x6b, + 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x50, 0x0a, 0x18, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, + 0x65, 0x64, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, + 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x4d, 0x0a, 0x18, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x77, 0x61, + 0x72, 0x64, 0x65, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x1a, 0x19, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x49, 0x6e, 0x74, 0x12, 0x4e, 0x0a, 0x16, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x47, 0x65, 0x74, 0x48, 0x74, 0x74, 0x70, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x55, 0x72, 0x69, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x73, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x47, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x5f, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x19, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, - 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x49, 0x6e, 0x74, 0x12, - 0x50, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x47, 0x65, 0x74, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, + 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x49, 0x0a, 0x11, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, + 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, + 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x47, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x5f, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x1a, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, + 0x50, 0x0a, 0x18, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x47, 0x65, 0x74, 0x50, 0x61, + 0x74, 0x68, 0x57, 0x69, 0x74, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, + 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x12, 0x4b, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x47, 0x65, 0x74, + 0x52, 0x61, 0x77, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x1a, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x51, + 0x0a, 0x13, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x47, 0x65, 0x74, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x41, 0x72, 0x67, 0x12, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x1a, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x12, 0x49, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x47, 0x65, - 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x19, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, - 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, - 0x49, 0x6e, 0x74, 0x1a, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12, 0x4a, 0x0a, 0x12, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x47, 0x65, 0x74, 0x53, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, - 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x47, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x53, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x19, + 0x67, 0x12, 0x46, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x47, 0x65, 0x74, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x19, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, + 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x49, 0x6e, 0x74, + 0x1a, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12, 0x4f, 0x0a, 0x11, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x5f, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x49, 0x6e, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x12, 0x46, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x53, 0x65, - 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, - 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4b, - 0x56, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x46, 0x0a, 0x12, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x41, 0x64, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, - 0x18, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4b, 0x56, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x12, 0x4c, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x43, 0x6c, - 0x65, 0x61, 0x72, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x1a, 0x1c, 0x2e, 0x6b, + 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x48, 0x0a, 0x12, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, + 0x12, 0x19, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x49, 0x6e, 0x74, 0x1a, 0x17, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, + 0x72, 0x75, 0x63, 0x74, 0x12, 0x51, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, + 0x47, 0x65, 0x74, 0x52, 0x61, 0x77, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x1a, 0x23, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, + 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x52, 0x61, 0x77, 0x42, 0x6f, 0x64, + 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x59, 0x0a, 0x16, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x5f, 0x47, 0x65, 0x74, 0x55, 0x72, 0x69, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, + 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x27, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, - 0x46, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x53, 0x65, 0x74, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x1a, - 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x47, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x5f, 0x45, 0x78, 0x69, 0x74, 0x12, 0x1e, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, - 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, - 0x45, 0x78, 0x69, 0x74, 0x41, 0x72, 0x67, 0x73, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x2e, 0x55, 0x72, 0x69, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x12, 0x47, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x47, + 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x12, 0x46, 0x0a, 0x0f, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x47, 0x65, 0x74, 0x52, 0x6f, - 0x75, 0x74, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1b, 0x2e, 0x6b, 0x6f, - 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x4a, 0x0a, 0x11, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x72, 0x5f, 0x47, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x16, 0x2e, + 0x1a, 0x19, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x49, 0x6e, 0x74, 0x12, 0x50, 0x0a, 0x12, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x12, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x1a, + 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x49, 0x0a, + 0x13, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x73, 0x12, 0x19, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, + 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x49, 0x6e, 0x74, 0x1a, + 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12, 0x4a, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x47, 0x65, 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x16, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, + 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x12, 0x47, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x5f, 0x53, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x19, 0x2e, 0x6b, 0x6f, 0x6e, + 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x2e, 0x49, 0x6e, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x46, 0x0a, + 0x12, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x53, 0x65, 0x74, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x12, 0x18, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, + 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4b, 0x56, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1d, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, - 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x12, 0x4b, 0x0a, 0x13, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, - 0x53, 0x65, 0x74, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x1c, 0x2e, 0x6b, 0x6f, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x46, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x5f, 0x41, 0x64, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6f, 0x6c, 0x2e, 0x4b, 0x56, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4c, 0x0a, + 0x14, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, + 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x46, 0x0a, 0x13, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x53, 0x65, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x73, 0x12, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x12, 0x47, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, + 0x45, 0x78, 0x69, 0x74, 0x12, 0x1e, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, + 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x78, 0x69, 0x74, + 0x41, 0x72, 0x67, 0x73, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x46, 0x0a, 0x0f, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1b, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, + 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x12, 0x4a, 0x0a, 0x11, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x47, + 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x12, 0x49, 0x0a, 0x11, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x53, 0x65, 0x74, - 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, - 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x51, 0x0a, 0x19, + 0x79, 0x1a, 0x1d, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x12, 0x4b, 0x0a, 0x13, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x53, 0x65, 0x74, 0x55, + 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, + 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x49, 0x0a, + 0x11, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x53, 0x65, 0x74, 0x54, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x12, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, + 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x51, 0x0a, 0x19, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x53, 0x65, 0x74, 0x53, + 0x63, 0x68, 0x65, 0x6d, 0x65, 0x12, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, + 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4f, 0x0a, 0x17, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x53, + 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, + 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x53, 0x0a, 0x1b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, - 0x53, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x12, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, - 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, - 0x4f, 0x0a, 0x17, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x5f, 0x53, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, - 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x53, 0x65, 0x74, 0x52, 0x61, 0x77, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x1c, 0x2e, 0x6b, 0x6f, + 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x12, 0x51, 0x0a, 0x19, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x5f, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1c, + 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x1a, 0x16, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4b, 0x0a, 0x18, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x53, 0x65, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x12, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x12, 0x4d, 0x0a, 0x19, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x5f, 0x53, 0x65, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, + 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4b, 0x56, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x12, 0x53, 0x0a, 0x1b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x5f, 0x53, 0x65, 0x74, 0x52, 0x61, 0x77, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, - 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x1a, 0x16, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x51, 0x0a, 0x19, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x68, - 0x6f, 0x64, 0x12, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, - 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4b, 0x0a, 0x18, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x53, 0x65, 0x74, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x12, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x1a, 0x16, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4d, 0x0a, 0x19, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x53, 0x65, 0x74, 0x48, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x12, 0x18, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, - 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4b, 0x56, 0x1a, 0x16, 0x2e, 0x67, + 0x12, 0x4d, 0x0a, 0x19, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x5f, 0x41, 0x64, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x2e, + 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4b, 0x56, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, + 0x53, 0x0a, 0x1b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x5f, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1c, + 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4d, 0x0a, 0x19, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x41, 0x64, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x12, 0x18, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4b, 0x56, 0x1a, 0x16, 0x2e, 0x67, 0x6f, + 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4d, 0x0a, 0x1a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x53, 0x65, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x73, 0x12, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x12, 0x53, 0x0a, 0x1b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x48, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, - 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4d, 0x0a, 0x1a, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x53, 0x65, 0x74, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x1a, - 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x52, 0x0a, 0x1a, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x53, 0x65, 0x74, 0x52, 0x61, - 0x77, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, - 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x72, + 0x70, 0x74, 0x79, 0x12, 0x56, 0x0a, 0x1a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x53, 0x65, 0x74, 0x52, 0x61, 0x77, 0x42, 0x6f, 0x64, + 0x79, 0x12, 0x20, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4f, 0x0a, 0x1a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, @@ -3271,19 +3320,19 @@ var file_server_kong_plugin_protocol_pluginsocket_proto_rawDesc = []byte{ 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x19, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x49, 0x6e, 0x74, 0x1a, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12, 0x53, 0x0a, 0x1b, 0x53, 0x65, 0x72, + 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12, 0x57, 0x0a, 0x1b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x47, 0x65, 0x74, 0x52, 0x61, 0x77, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x1a, 0x1c, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x40, - 0x0a, 0x0a, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, - 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xd7, 0x86, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, - 0x42, 0x18, 0x5a, 0x16, 0x2e, 0x2f, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, - 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x1a, 0x20, 0x2e, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x40, 0x0a, 0x0a, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0xd7, 0x86, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, + 0x4e, 0x61, 0x6d, 0x65, 0x42, 0x18, 0x5a, 0x16, 0x2e, 0x2f, 0x6b, 0x6f, 0x6e, 0x67, 0x5f, 0x70, + 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3298,7 +3347,7 @@ func file_server_kong_plugin_protocol_pluginsocket_proto_rawDescGZIP() []byte { return file_server_kong_plugin_protocol_pluginsocket_proto_rawDescData } -var file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes = make([]protoimpl.MessageInfo, 38) +var file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes = make([]protoimpl.MessageInfo, 39) var file_server_kong_plugin_protocol_pluginsocket_proto_goTypes = []interface{}{ (*CmdGetPluginNames)(nil), // 0: kong_plugin_protocol.CmdGetPluginNames (*CmdGetPluginInfo)(nil), // 1: kong_plugin_protocol.CmdGetPluginInfo @@ -3316,33 +3365,34 @@ var file_server_kong_plugin_protocol_pluginsocket_proto_goTypes = []interface{}{ (*Int)(nil), // 13: kong_plugin_protocol.Int (*Number)(nil), // 14: kong_plugin_protocol.Number (*String)(nil), // 15: kong_plugin_protocol.String - (*ExitArgs)(nil), // 16: kong_plugin_protocol.ExitArgs - (*ServiceKey)(nil), // 17: kong_plugin_protocol.ServiceKey - (*CertificateKey)(nil), // 18: kong_plugin_protocol.CertificateKey - (*RawBodyResult)(nil), // 19: kong_plugin_protocol.RawBodyResult - (*UriCapturesResult)(nil), // 20: kong_plugin_protocol.UriCapturesResult - (*Route)(nil), // 21: kong_plugin_protocol.Route - (*Service)(nil), // 22: kong_plugin_protocol.Service - (*Target)(nil), // 23: kong_plugin_protocol.Target - (*ConsumerSpec)(nil), // 24: kong_plugin_protocol.ConsumerSpec - (*Consumer)(nil), // 25: kong_plugin_protocol.Consumer - (*AuthenticatedCredential)(nil), // 26: kong_plugin_protocol.AuthenticatedCredential - (*AuthenticateArgs)(nil), // 27: kong_plugin_protocol.AuthenticateArgs - (*MemoryStats)(nil), // 28: kong_plugin_protocol.MemoryStats - (*StringMap)(nil), // 29: kong_plugin_protocol.StringMap - (*PdkArg)(nil), // 30: kong_plugin_protocol.PdkArg - (*PdkCall)(nil), // 31: kong_plugin_protocol.PdkCall - (*PdkReturn)(nil), // 32: kong_plugin_protocol.PdkReturn - nil, // 33: kong_plugin_protocol.UriCapturesResult.NamedEntry - (*MemoryStats_LuaSharedDicts)(nil), // 34: kong_plugin_protocol.MemoryStats.LuaSharedDicts - (*MemoryStats_WorkerLuaVm)(nil), // 35: kong_plugin_protocol.MemoryStats.WorkerLuaVm - (*MemoryStats_LuaSharedDicts_DictStats)(nil), // 36: kong_plugin_protocol.MemoryStats.LuaSharedDicts.DictStats - nil, // 37: kong_plugin_protocol.StringMap.MEntry - (*structpb.Value)(nil), // 38: google.protobuf.Value - (*structpb.Struct)(nil), // 39: google.protobuf.Struct - (*descriptorpb.MethodOptions)(nil), // 40: google.protobuf.MethodOptions - (*emptypb.Empty)(nil), // 41: google.protobuf.Empty - (*structpb.ListValue)(nil), // 42: google.protobuf.ListValue + (*ByteString)(nil), // 16: kong_plugin_protocol.ByteString + (*ExitArgs)(nil), // 17: kong_plugin_protocol.ExitArgs + (*ServiceKey)(nil), // 18: kong_plugin_protocol.ServiceKey + (*CertificateKey)(nil), // 19: kong_plugin_protocol.CertificateKey + (*RawBodyResult)(nil), // 20: kong_plugin_protocol.RawBodyResult + (*UriCapturesResult)(nil), // 21: kong_plugin_protocol.UriCapturesResult + (*Route)(nil), // 22: kong_plugin_protocol.Route + (*Service)(nil), // 23: kong_plugin_protocol.Service + (*Target)(nil), // 24: kong_plugin_protocol.Target + (*ConsumerSpec)(nil), // 25: kong_plugin_protocol.ConsumerSpec + (*Consumer)(nil), // 26: kong_plugin_protocol.Consumer + (*AuthenticatedCredential)(nil), // 27: kong_plugin_protocol.AuthenticatedCredential + (*AuthenticateArgs)(nil), // 28: kong_plugin_protocol.AuthenticateArgs + (*MemoryStats)(nil), // 29: kong_plugin_protocol.MemoryStats + (*StringMap)(nil), // 30: kong_plugin_protocol.StringMap + (*PdkArg)(nil), // 31: kong_plugin_protocol.PdkArg + (*PdkCall)(nil), // 32: kong_plugin_protocol.PdkCall + (*PdkReturn)(nil), // 33: kong_plugin_protocol.PdkReturn + nil, // 34: kong_plugin_protocol.UriCapturesResult.NamedEntry + (*MemoryStats_LuaSharedDicts)(nil), // 35: kong_plugin_protocol.MemoryStats.LuaSharedDicts + (*MemoryStats_WorkerLuaVm)(nil), // 36: kong_plugin_protocol.MemoryStats.WorkerLuaVm + (*MemoryStats_LuaSharedDicts_DictStats)(nil), // 37: kong_plugin_protocol.MemoryStats.LuaSharedDicts.DictStats + nil, // 38: kong_plugin_protocol.StringMap.MEntry + (*structpb.Value)(nil), // 39: google.protobuf.Value + (*structpb.Struct)(nil), // 40: google.protobuf.Struct + (*descriptorpb.MethodOptions)(nil), // 41: google.protobuf.MethodOptions + (*emptypb.Empty)(nil), // 42: google.protobuf.Empty + (*structpb.ListValue)(nil), // 43: google.protobuf.ListValue } var file_server_kong_plugin_protocol_pluginsocket_proto_depIdxs = []int32{ 0, // 0: kong_plugin_protocol.RpcCall.cmd_get_plugin_names:type_name -> kong_plugin_protocol.CmdGetPluginNames @@ -3351,134 +3401,134 @@ var file_server_kong_plugin_protocol_pluginsocket_proto_depIdxs = []int32{ 3, // 3: kong_plugin_protocol.RpcCall.cmd_get_instance_status:type_name -> kong_plugin_protocol.CmdGetInstanceStatus 4, // 4: kong_plugin_protocol.RpcCall.cmd_close_instance:type_name -> kong_plugin_protocol.CmdCloseInstance 5, // 5: kong_plugin_protocol.RpcCall.cmd_handle_event:type_name -> kong_plugin_protocol.CmdHandleEvent - 38, // 6: kong_plugin_protocol.InstanceStatus.config:type_name -> google.protobuf.Value + 39, // 6: kong_plugin_protocol.InstanceStatus.config:type_name -> google.protobuf.Value 7, // 7: kong_plugin_protocol.RpcReturn.plugin_names:type_name -> kong_plugin_protocol.PluginNames 8, // 8: kong_plugin_protocol.RpcReturn.plugin_info:type_name -> kong_plugin_protocol.PluginInfo 9, // 9: kong_plugin_protocol.RpcReturn.instance_status:type_name -> kong_plugin_protocol.InstanceStatus - 38, // 10: kong_plugin_protocol.KV.v:type_name -> google.protobuf.Value - 39, // 11: kong_plugin_protocol.ExitArgs.headers:type_name -> google.protobuf.Struct - 33, // 12: kong_plugin_protocol.UriCapturesResult.named:type_name -> kong_plugin_protocol.UriCapturesResult.NamedEntry - 17, // 13: kong_plugin_protocol.Route.service:type_name -> kong_plugin_protocol.ServiceKey - 18, // 14: kong_plugin_protocol.Service.client_certificate:type_name -> kong_plugin_protocol.CertificateKey - 25, // 15: kong_plugin_protocol.AuthenticateArgs.consumer:type_name -> kong_plugin_protocol.Consumer - 26, // 16: kong_plugin_protocol.AuthenticateArgs.credential:type_name -> kong_plugin_protocol.AuthenticatedCredential - 34, // 17: kong_plugin_protocol.MemoryStats.lua_shared_dicts:type_name -> kong_plugin_protocol.MemoryStats.LuaSharedDicts - 35, // 18: kong_plugin_protocol.MemoryStats.workers_lua_vms:type_name -> kong_plugin_protocol.MemoryStats.WorkerLuaVm - 37, // 19: kong_plugin_protocol.StringMap.m:type_name -> kong_plugin_protocol.StringMap.MEntry - 29, // 20: kong_plugin_protocol.PdkArg.m:type_name -> kong_plugin_protocol.StringMap - 26, // 21: kong_plugin_protocol.PdkArg.credential:type_name -> kong_plugin_protocol.AuthenticatedCredential - 21, // 22: kong_plugin_protocol.PdkArg.route:type_name -> kong_plugin_protocol.Route - 22, // 23: kong_plugin_protocol.PdkArg.service:type_name -> kong_plugin_protocol.Service - 25, // 24: kong_plugin_protocol.PdkArg.consumer:type_name -> kong_plugin_protocol.Consumer - 28, // 25: kong_plugin_protocol.PdkArg.memory_stats:type_name -> kong_plugin_protocol.MemoryStats - 30, // 26: kong_plugin_protocol.PdkCall.args:type_name -> kong_plugin_protocol.PdkArg - 30, // 27: kong_plugin_protocol.PdkReturn.arg:type_name -> kong_plugin_protocol.PdkArg - 36, // 28: kong_plugin_protocol.MemoryStats.LuaSharedDicts.kong:type_name -> kong_plugin_protocol.MemoryStats.LuaSharedDicts.DictStats - 36, // 29: kong_plugin_protocol.MemoryStats.LuaSharedDicts.kong_db_cache:type_name -> kong_plugin_protocol.MemoryStats.LuaSharedDicts.DictStats - 40, // 30: kong_plugin_protocol.MethodName:extendee -> google.protobuf.MethodOptions - 41, // 31: kong_plugin_protocol.Kong.Client_GetIp:input_type -> google.protobuf.Empty - 41, // 32: kong_plugin_protocol.Kong.Client_GetForwardedIp:input_type -> google.protobuf.Empty - 41, // 33: kong_plugin_protocol.Kong.Client_GetPort:input_type -> google.protobuf.Empty - 41, // 34: kong_plugin_protocol.Kong.Client_GetForwardedPort:input_type -> google.protobuf.Empty - 41, // 35: kong_plugin_protocol.Kong.Client_GetCredential:input_type -> google.protobuf.Empty - 24, // 36: kong_plugin_protocol.Kong.Client_LoadConsumer:input_type -> kong_plugin_protocol.ConsumerSpec - 41, // 37: kong_plugin_protocol.Kong.Client_GetConsumer:input_type -> google.protobuf.Empty - 27, // 38: kong_plugin_protocol.Kong.Client_Authenticate:input_type -> kong_plugin_protocol.AuthenticateArgs + 39, // 10: kong_plugin_protocol.KV.v:type_name -> google.protobuf.Value + 40, // 11: kong_plugin_protocol.ExitArgs.headers:type_name -> google.protobuf.Struct + 34, // 12: kong_plugin_protocol.UriCapturesResult.named:type_name -> kong_plugin_protocol.UriCapturesResult.NamedEntry + 18, // 13: kong_plugin_protocol.Route.service:type_name -> kong_plugin_protocol.ServiceKey + 19, // 14: kong_plugin_protocol.Service.client_certificate:type_name -> kong_plugin_protocol.CertificateKey + 26, // 15: kong_plugin_protocol.AuthenticateArgs.consumer:type_name -> kong_plugin_protocol.Consumer + 27, // 16: kong_plugin_protocol.AuthenticateArgs.credential:type_name -> kong_plugin_protocol.AuthenticatedCredential + 35, // 17: kong_plugin_protocol.MemoryStats.lua_shared_dicts:type_name -> kong_plugin_protocol.MemoryStats.LuaSharedDicts + 36, // 18: kong_plugin_protocol.MemoryStats.workers_lua_vms:type_name -> kong_plugin_protocol.MemoryStats.WorkerLuaVm + 38, // 19: kong_plugin_protocol.StringMap.m:type_name -> kong_plugin_protocol.StringMap.MEntry + 30, // 20: kong_plugin_protocol.PdkArg.m:type_name -> kong_plugin_protocol.StringMap + 27, // 21: kong_plugin_protocol.PdkArg.credential:type_name -> kong_plugin_protocol.AuthenticatedCredential + 22, // 22: kong_plugin_protocol.PdkArg.route:type_name -> kong_plugin_protocol.Route + 23, // 23: kong_plugin_protocol.PdkArg.service:type_name -> kong_plugin_protocol.Service + 26, // 24: kong_plugin_protocol.PdkArg.consumer:type_name -> kong_plugin_protocol.Consumer + 29, // 25: kong_plugin_protocol.PdkArg.memory_stats:type_name -> kong_plugin_protocol.MemoryStats + 31, // 26: kong_plugin_protocol.PdkCall.args:type_name -> kong_plugin_protocol.PdkArg + 31, // 27: kong_plugin_protocol.PdkReturn.arg:type_name -> kong_plugin_protocol.PdkArg + 37, // 28: kong_plugin_protocol.MemoryStats.LuaSharedDicts.kong:type_name -> kong_plugin_protocol.MemoryStats.LuaSharedDicts.DictStats + 37, // 29: kong_plugin_protocol.MemoryStats.LuaSharedDicts.kong_db_cache:type_name -> kong_plugin_protocol.MemoryStats.LuaSharedDicts.DictStats + 41, // 30: kong_plugin_protocol.MethodName:extendee -> google.protobuf.MethodOptions + 42, // 31: kong_plugin_protocol.Kong.Client_GetIp:input_type -> google.protobuf.Empty + 42, // 32: kong_plugin_protocol.Kong.Client_GetForwardedIp:input_type -> google.protobuf.Empty + 42, // 33: kong_plugin_protocol.Kong.Client_GetPort:input_type -> google.protobuf.Empty + 42, // 34: kong_plugin_protocol.Kong.Client_GetForwardedPort:input_type -> google.protobuf.Empty + 42, // 35: kong_plugin_protocol.Kong.Client_GetCredential:input_type -> google.protobuf.Empty + 25, // 36: kong_plugin_protocol.Kong.Client_LoadConsumer:input_type -> kong_plugin_protocol.ConsumerSpec + 42, // 37: kong_plugin_protocol.Kong.Client_GetConsumer:input_type -> google.protobuf.Empty + 28, // 38: kong_plugin_protocol.Kong.Client_Authenticate:input_type -> kong_plugin_protocol.AuthenticateArgs 12, // 39: kong_plugin_protocol.Kong.Client_GetProtocol:input_type -> kong_plugin_protocol.Bool 11, // 40: kong_plugin_protocol.Kong.Ctx_SetShared:input_type -> kong_plugin_protocol.KV 15, // 41: kong_plugin_protocol.Kong.Ctx_GetShared:input_type -> kong_plugin_protocol.String 15, // 42: kong_plugin_protocol.Kong.Ip_IsTrusted:input_type -> kong_plugin_protocol.String - 42, // 43: kong_plugin_protocol.Kong.Log_Alert:input_type -> google.protobuf.ListValue - 42, // 44: kong_plugin_protocol.Kong.Log_Crit:input_type -> google.protobuf.ListValue - 42, // 45: kong_plugin_protocol.Kong.Log_Err:input_type -> google.protobuf.ListValue - 42, // 46: kong_plugin_protocol.Kong.Log_Warn:input_type -> google.protobuf.ListValue - 42, // 47: kong_plugin_protocol.Kong.Log_Notice:input_type -> google.protobuf.ListValue - 42, // 48: kong_plugin_protocol.Kong.Log_Info:input_type -> google.protobuf.ListValue - 42, // 49: kong_plugin_protocol.Kong.Log_Debug:input_type -> google.protobuf.ListValue + 43, // 43: kong_plugin_protocol.Kong.Log_Alert:input_type -> google.protobuf.ListValue + 43, // 44: kong_plugin_protocol.Kong.Log_Crit:input_type -> google.protobuf.ListValue + 43, // 45: kong_plugin_protocol.Kong.Log_Err:input_type -> google.protobuf.ListValue + 43, // 46: kong_plugin_protocol.Kong.Log_Warn:input_type -> google.protobuf.ListValue + 43, // 47: kong_plugin_protocol.Kong.Log_Notice:input_type -> google.protobuf.ListValue + 43, // 48: kong_plugin_protocol.Kong.Log_Info:input_type -> google.protobuf.ListValue + 43, // 49: kong_plugin_protocol.Kong.Log_Debug:input_type -> google.protobuf.ListValue 11, // 50: kong_plugin_protocol.Kong.Log_SetSerializeValue:input_type -> kong_plugin_protocol.KV - 41, // 51: kong_plugin_protocol.Kong.Log_Serialize:input_type -> google.protobuf.Empty + 42, // 51: kong_plugin_protocol.Kong.Log_Serialize:input_type -> google.protobuf.Empty 15, // 52: kong_plugin_protocol.Kong.Nginx_GetVar:input_type -> kong_plugin_protocol.String - 41, // 53: kong_plugin_protocol.Kong.Nginx_GetTls1VersionStr:input_type -> google.protobuf.Empty + 42, // 53: kong_plugin_protocol.Kong.Nginx_GetTls1VersionStr:input_type -> google.protobuf.Empty 11, // 54: kong_plugin_protocol.Kong.Nginx_SetCtx:input_type -> kong_plugin_protocol.KV 15, // 55: kong_plugin_protocol.Kong.Nginx_GetCtx:input_type -> kong_plugin_protocol.String - 41, // 56: kong_plugin_protocol.Kong.Nginx_ReqStartTime:input_type -> google.protobuf.Empty - 41, // 57: kong_plugin_protocol.Kong.Nginx_GetSubsystem:input_type -> google.protobuf.Empty - 41, // 58: kong_plugin_protocol.Kong.Node_GetId:input_type -> google.protobuf.Empty - 41, // 59: kong_plugin_protocol.Kong.Node_GetMemoryStats:input_type -> google.protobuf.Empty - 41, // 60: kong_plugin_protocol.Kong.Request_GetScheme:input_type -> google.protobuf.Empty - 41, // 61: kong_plugin_protocol.Kong.Request_GetHost:input_type -> google.protobuf.Empty - 41, // 62: kong_plugin_protocol.Kong.Request_GetPort:input_type -> google.protobuf.Empty - 41, // 63: kong_plugin_protocol.Kong.Request_GetForwardedScheme:input_type -> google.protobuf.Empty - 41, // 64: kong_plugin_protocol.Kong.Request_GetForwardedHost:input_type -> google.protobuf.Empty - 41, // 65: kong_plugin_protocol.Kong.Request_GetForwardedPort:input_type -> google.protobuf.Empty - 41, // 66: kong_plugin_protocol.Kong.Request_GetHttpVersion:input_type -> google.protobuf.Empty - 41, // 67: kong_plugin_protocol.Kong.Request_GetMethod:input_type -> google.protobuf.Empty - 41, // 68: kong_plugin_protocol.Kong.Request_GetPath:input_type -> google.protobuf.Empty - 41, // 69: kong_plugin_protocol.Kong.Request_GetPathWithQuery:input_type -> google.protobuf.Empty - 41, // 70: kong_plugin_protocol.Kong.Request_GetRawQuery:input_type -> google.protobuf.Empty + 42, // 56: kong_plugin_protocol.Kong.Nginx_ReqStartTime:input_type -> google.protobuf.Empty + 42, // 57: kong_plugin_protocol.Kong.Nginx_GetSubsystem:input_type -> google.protobuf.Empty + 42, // 58: kong_plugin_protocol.Kong.Node_GetId:input_type -> google.protobuf.Empty + 42, // 59: kong_plugin_protocol.Kong.Node_GetMemoryStats:input_type -> google.protobuf.Empty + 42, // 60: kong_plugin_protocol.Kong.Request_GetScheme:input_type -> google.protobuf.Empty + 42, // 61: kong_plugin_protocol.Kong.Request_GetHost:input_type -> google.protobuf.Empty + 42, // 62: kong_plugin_protocol.Kong.Request_GetPort:input_type -> google.protobuf.Empty + 42, // 63: kong_plugin_protocol.Kong.Request_GetForwardedScheme:input_type -> google.protobuf.Empty + 42, // 64: kong_plugin_protocol.Kong.Request_GetForwardedHost:input_type -> google.protobuf.Empty + 42, // 65: kong_plugin_protocol.Kong.Request_GetForwardedPort:input_type -> google.protobuf.Empty + 42, // 66: kong_plugin_protocol.Kong.Request_GetHttpVersion:input_type -> google.protobuf.Empty + 42, // 67: kong_plugin_protocol.Kong.Request_GetMethod:input_type -> google.protobuf.Empty + 42, // 68: kong_plugin_protocol.Kong.Request_GetPath:input_type -> google.protobuf.Empty + 42, // 69: kong_plugin_protocol.Kong.Request_GetPathWithQuery:input_type -> google.protobuf.Empty + 42, // 70: kong_plugin_protocol.Kong.Request_GetRawQuery:input_type -> google.protobuf.Empty 15, // 71: kong_plugin_protocol.Kong.Request_GetQueryArg:input_type -> kong_plugin_protocol.String 13, // 72: kong_plugin_protocol.Kong.Request_GetQuery:input_type -> kong_plugin_protocol.Int 15, // 73: kong_plugin_protocol.Kong.Request_GetHeader:input_type -> kong_plugin_protocol.String 13, // 74: kong_plugin_protocol.Kong.Request_GetHeaders:input_type -> kong_plugin_protocol.Int - 41, // 75: kong_plugin_protocol.Kong.Request_GetRawBody:input_type -> google.protobuf.Empty - 41, // 76: kong_plugin_protocol.Kong.Request_GetUriCaptures:input_type -> google.protobuf.Empty - 41, // 77: kong_plugin_protocol.Kong.Response_GetStatus:input_type -> google.protobuf.Empty + 42, // 75: kong_plugin_protocol.Kong.Request_GetRawBody:input_type -> google.protobuf.Empty + 42, // 76: kong_plugin_protocol.Kong.Request_GetUriCaptures:input_type -> google.protobuf.Empty + 42, // 77: kong_plugin_protocol.Kong.Response_GetStatus:input_type -> google.protobuf.Empty 15, // 78: kong_plugin_protocol.Kong.Response_GetHeader:input_type -> kong_plugin_protocol.String 13, // 79: kong_plugin_protocol.Kong.Response_GetHeaders:input_type -> kong_plugin_protocol.Int - 41, // 80: kong_plugin_protocol.Kong.Response_GetSource:input_type -> google.protobuf.Empty + 42, // 80: kong_plugin_protocol.Kong.Response_GetSource:input_type -> google.protobuf.Empty 13, // 81: kong_plugin_protocol.Kong.Response_SetStatus:input_type -> kong_plugin_protocol.Int 11, // 82: kong_plugin_protocol.Kong.Response_SetHeader:input_type -> kong_plugin_protocol.KV 11, // 83: kong_plugin_protocol.Kong.Response_AddHeader:input_type -> kong_plugin_protocol.KV 15, // 84: kong_plugin_protocol.Kong.Response_ClearHeader:input_type -> kong_plugin_protocol.String - 39, // 85: kong_plugin_protocol.Kong.Response_SetHeaders:input_type -> google.protobuf.Struct - 16, // 86: kong_plugin_protocol.Kong.Response_Exit:input_type -> kong_plugin_protocol.ExitArgs - 41, // 87: kong_plugin_protocol.Kong.Router_GetRoute:input_type -> google.protobuf.Empty - 41, // 88: kong_plugin_protocol.Kong.Router_GetService:input_type -> google.protobuf.Empty + 40, // 85: kong_plugin_protocol.Kong.Response_SetHeaders:input_type -> google.protobuf.Struct + 17, // 86: kong_plugin_protocol.Kong.Response_Exit:input_type -> kong_plugin_protocol.ExitArgs + 42, // 87: kong_plugin_protocol.Kong.Router_GetRoute:input_type -> google.protobuf.Empty + 42, // 88: kong_plugin_protocol.Kong.Router_GetService:input_type -> google.protobuf.Empty 15, // 89: kong_plugin_protocol.Kong.Service_SetUpstream:input_type -> kong_plugin_protocol.String - 23, // 90: kong_plugin_protocol.Kong.Service_SetTarget:input_type -> kong_plugin_protocol.Target + 24, // 90: kong_plugin_protocol.Kong.Service_SetTarget:input_type -> kong_plugin_protocol.Target 15, // 91: kong_plugin_protocol.Kong.Service_Request_SetScheme:input_type -> kong_plugin_protocol.String 15, // 92: kong_plugin_protocol.Kong.Service_Request_SetPath:input_type -> kong_plugin_protocol.String 15, // 93: kong_plugin_protocol.Kong.Service_Request_SetRawQuery:input_type -> kong_plugin_protocol.String 15, // 94: kong_plugin_protocol.Kong.Service_Request_SetMethod:input_type -> kong_plugin_protocol.String - 39, // 95: kong_plugin_protocol.Kong.Service_Request_SetQuery:input_type -> google.protobuf.Struct + 40, // 95: kong_plugin_protocol.Kong.Service_Request_SetQuery:input_type -> google.protobuf.Struct 11, // 96: kong_plugin_protocol.Kong.Service_Request_SetHeader:input_type -> kong_plugin_protocol.KV 11, // 97: kong_plugin_protocol.Kong.Service_Request_AddHeader:input_type -> kong_plugin_protocol.KV 15, // 98: kong_plugin_protocol.Kong.Service_Request_ClearHeader:input_type -> kong_plugin_protocol.String - 39, // 99: kong_plugin_protocol.Kong.Service_Request_SetHeaders:input_type -> google.protobuf.Struct - 15, // 100: kong_plugin_protocol.Kong.Service_Request_SetRawBody:input_type -> kong_plugin_protocol.String - 41, // 101: kong_plugin_protocol.Kong.Service_Response_GetStatus:input_type -> google.protobuf.Empty + 40, // 99: kong_plugin_protocol.Kong.Service_Request_SetHeaders:input_type -> google.protobuf.Struct + 16, // 100: kong_plugin_protocol.Kong.Service_Request_SetRawBody:input_type -> kong_plugin_protocol.ByteString + 42, // 101: kong_plugin_protocol.Kong.Service_Response_GetStatus:input_type -> google.protobuf.Empty 15, // 102: kong_plugin_protocol.Kong.Service_Response_GetHeader:input_type -> kong_plugin_protocol.String 13, // 103: kong_plugin_protocol.Kong.Service_Response_GetHeaders:input_type -> kong_plugin_protocol.Int - 41, // 104: kong_plugin_protocol.Kong.Service_Response_GetRawBody:input_type -> google.protobuf.Empty + 42, // 104: kong_plugin_protocol.Kong.Service_Response_GetRawBody:input_type -> google.protobuf.Empty 15, // 105: kong_plugin_protocol.Kong.Client_GetIp:output_type -> kong_plugin_protocol.String 15, // 106: kong_plugin_protocol.Kong.Client_GetForwardedIp:output_type -> kong_plugin_protocol.String 13, // 107: kong_plugin_protocol.Kong.Client_GetPort:output_type -> kong_plugin_protocol.Int 13, // 108: kong_plugin_protocol.Kong.Client_GetForwardedPort:output_type -> kong_plugin_protocol.Int - 26, // 109: kong_plugin_protocol.Kong.Client_GetCredential:output_type -> kong_plugin_protocol.AuthenticatedCredential - 25, // 110: kong_plugin_protocol.Kong.Client_LoadConsumer:output_type -> kong_plugin_protocol.Consumer - 25, // 111: kong_plugin_protocol.Kong.Client_GetConsumer:output_type -> kong_plugin_protocol.Consumer - 41, // 112: kong_plugin_protocol.Kong.Client_Authenticate:output_type -> google.protobuf.Empty + 27, // 109: kong_plugin_protocol.Kong.Client_GetCredential:output_type -> kong_plugin_protocol.AuthenticatedCredential + 26, // 110: kong_plugin_protocol.Kong.Client_LoadConsumer:output_type -> kong_plugin_protocol.Consumer + 26, // 111: kong_plugin_protocol.Kong.Client_GetConsumer:output_type -> kong_plugin_protocol.Consumer + 42, // 112: kong_plugin_protocol.Kong.Client_Authenticate:output_type -> google.protobuf.Empty 15, // 113: kong_plugin_protocol.Kong.Client_GetProtocol:output_type -> kong_plugin_protocol.String - 41, // 114: kong_plugin_protocol.Kong.Ctx_SetShared:output_type -> google.protobuf.Empty - 38, // 115: kong_plugin_protocol.Kong.Ctx_GetShared:output_type -> google.protobuf.Value + 42, // 114: kong_plugin_protocol.Kong.Ctx_SetShared:output_type -> google.protobuf.Empty + 39, // 115: kong_plugin_protocol.Kong.Ctx_GetShared:output_type -> google.protobuf.Value 12, // 116: kong_plugin_protocol.Kong.Ip_IsTrusted:output_type -> kong_plugin_protocol.Bool - 41, // 117: kong_plugin_protocol.Kong.Log_Alert:output_type -> google.protobuf.Empty - 41, // 118: kong_plugin_protocol.Kong.Log_Crit:output_type -> google.protobuf.Empty - 41, // 119: kong_plugin_protocol.Kong.Log_Err:output_type -> google.protobuf.Empty - 41, // 120: kong_plugin_protocol.Kong.Log_Warn:output_type -> google.protobuf.Empty - 41, // 121: kong_plugin_protocol.Kong.Log_Notice:output_type -> google.protobuf.Empty - 41, // 122: kong_plugin_protocol.Kong.Log_Info:output_type -> google.protobuf.Empty - 41, // 123: kong_plugin_protocol.Kong.Log_Debug:output_type -> google.protobuf.Empty - 41, // 124: kong_plugin_protocol.Kong.Log_SetSerializeValue:output_type -> google.protobuf.Empty + 42, // 117: kong_plugin_protocol.Kong.Log_Alert:output_type -> google.protobuf.Empty + 42, // 118: kong_plugin_protocol.Kong.Log_Crit:output_type -> google.protobuf.Empty + 42, // 119: kong_plugin_protocol.Kong.Log_Err:output_type -> google.protobuf.Empty + 42, // 120: kong_plugin_protocol.Kong.Log_Warn:output_type -> google.protobuf.Empty + 42, // 121: kong_plugin_protocol.Kong.Log_Notice:output_type -> google.protobuf.Empty + 42, // 122: kong_plugin_protocol.Kong.Log_Info:output_type -> google.protobuf.Empty + 42, // 123: kong_plugin_protocol.Kong.Log_Debug:output_type -> google.protobuf.Empty + 42, // 124: kong_plugin_protocol.Kong.Log_SetSerializeValue:output_type -> google.protobuf.Empty 15, // 125: kong_plugin_protocol.Kong.Log_Serialize:output_type -> kong_plugin_protocol.String 15, // 126: kong_plugin_protocol.Kong.Nginx_GetVar:output_type -> kong_plugin_protocol.String 15, // 127: kong_plugin_protocol.Kong.Nginx_GetTls1VersionStr:output_type -> kong_plugin_protocol.String 15, // 128: kong_plugin_protocol.Kong.Nginx_SetCtx:output_type -> kong_plugin_protocol.String - 38, // 129: kong_plugin_protocol.Kong.Nginx_GetCtx:output_type -> google.protobuf.Value + 39, // 129: kong_plugin_protocol.Kong.Nginx_GetCtx:output_type -> google.protobuf.Value 14, // 130: kong_plugin_protocol.Kong.Nginx_ReqStartTime:output_type -> kong_plugin_protocol.Number 15, // 131: kong_plugin_protocol.Kong.Nginx_GetSubsystem:output_type -> kong_plugin_protocol.String 15, // 132: kong_plugin_protocol.Kong.Node_GetId:output_type -> kong_plugin_protocol.String - 28, // 133: kong_plugin_protocol.Kong.Node_GetMemoryStats:output_type -> kong_plugin_protocol.MemoryStats + 29, // 133: kong_plugin_protocol.Kong.Node_GetMemoryStats:output_type -> kong_plugin_protocol.MemoryStats 15, // 134: kong_plugin_protocol.Kong.Request_GetScheme:output_type -> kong_plugin_protocol.String 15, // 135: kong_plugin_protocol.Kong.Request_GetHost:output_type -> kong_plugin_protocol.String 13, // 136: kong_plugin_protocol.Kong.Request_GetPort:output_type -> kong_plugin_protocol.Int @@ -3491,39 +3541,39 @@ var file_server_kong_plugin_protocol_pluginsocket_proto_depIdxs = []int32{ 15, // 143: kong_plugin_protocol.Kong.Request_GetPathWithQuery:output_type -> kong_plugin_protocol.String 15, // 144: kong_plugin_protocol.Kong.Request_GetRawQuery:output_type -> kong_plugin_protocol.String 15, // 145: kong_plugin_protocol.Kong.Request_GetQueryArg:output_type -> kong_plugin_protocol.String - 39, // 146: kong_plugin_protocol.Kong.Request_GetQuery:output_type -> google.protobuf.Struct + 40, // 146: kong_plugin_protocol.Kong.Request_GetQuery:output_type -> google.protobuf.Struct 15, // 147: kong_plugin_protocol.Kong.Request_GetHeader:output_type -> kong_plugin_protocol.String - 39, // 148: kong_plugin_protocol.Kong.Request_GetHeaders:output_type -> google.protobuf.Struct - 19, // 149: kong_plugin_protocol.Kong.Request_GetRawBody:output_type -> kong_plugin_protocol.RawBodyResult - 20, // 150: kong_plugin_protocol.Kong.Request_GetUriCaptures:output_type -> kong_plugin_protocol.UriCapturesResult + 40, // 148: kong_plugin_protocol.Kong.Request_GetHeaders:output_type -> google.protobuf.Struct + 20, // 149: kong_plugin_protocol.Kong.Request_GetRawBody:output_type -> kong_plugin_protocol.RawBodyResult + 21, // 150: kong_plugin_protocol.Kong.Request_GetUriCaptures:output_type -> kong_plugin_protocol.UriCapturesResult 13, // 151: kong_plugin_protocol.Kong.Response_GetStatus:output_type -> kong_plugin_protocol.Int 15, // 152: kong_plugin_protocol.Kong.Response_GetHeader:output_type -> kong_plugin_protocol.String - 39, // 153: kong_plugin_protocol.Kong.Response_GetHeaders:output_type -> google.protobuf.Struct + 40, // 153: kong_plugin_protocol.Kong.Response_GetHeaders:output_type -> google.protobuf.Struct 15, // 154: kong_plugin_protocol.Kong.Response_GetSource:output_type -> kong_plugin_protocol.String - 41, // 155: kong_plugin_protocol.Kong.Response_SetStatus:output_type -> google.protobuf.Empty - 41, // 156: kong_plugin_protocol.Kong.Response_SetHeader:output_type -> google.protobuf.Empty - 41, // 157: kong_plugin_protocol.Kong.Response_AddHeader:output_type -> google.protobuf.Empty - 41, // 158: kong_plugin_protocol.Kong.Response_ClearHeader:output_type -> google.protobuf.Empty - 41, // 159: kong_plugin_protocol.Kong.Response_SetHeaders:output_type -> google.protobuf.Empty - 41, // 160: kong_plugin_protocol.Kong.Response_Exit:output_type -> google.protobuf.Empty - 21, // 161: kong_plugin_protocol.Kong.Router_GetRoute:output_type -> kong_plugin_protocol.Route - 22, // 162: kong_plugin_protocol.Kong.Router_GetService:output_type -> kong_plugin_protocol.Service - 41, // 163: kong_plugin_protocol.Kong.Service_SetUpstream:output_type -> google.protobuf.Empty - 41, // 164: kong_plugin_protocol.Kong.Service_SetTarget:output_type -> google.protobuf.Empty - 41, // 165: kong_plugin_protocol.Kong.Service_Request_SetScheme:output_type -> google.protobuf.Empty - 41, // 166: kong_plugin_protocol.Kong.Service_Request_SetPath:output_type -> google.protobuf.Empty - 41, // 167: kong_plugin_protocol.Kong.Service_Request_SetRawQuery:output_type -> google.protobuf.Empty - 41, // 168: kong_plugin_protocol.Kong.Service_Request_SetMethod:output_type -> google.protobuf.Empty - 41, // 169: kong_plugin_protocol.Kong.Service_Request_SetQuery:output_type -> google.protobuf.Empty - 41, // 170: kong_plugin_protocol.Kong.Service_Request_SetHeader:output_type -> google.protobuf.Empty - 41, // 171: kong_plugin_protocol.Kong.Service_Request_AddHeader:output_type -> google.protobuf.Empty - 41, // 172: kong_plugin_protocol.Kong.Service_Request_ClearHeader:output_type -> google.protobuf.Empty - 41, // 173: kong_plugin_protocol.Kong.Service_Request_SetHeaders:output_type -> google.protobuf.Empty - 41, // 174: kong_plugin_protocol.Kong.Service_Request_SetRawBody:output_type -> google.protobuf.Empty + 42, // 155: kong_plugin_protocol.Kong.Response_SetStatus:output_type -> google.protobuf.Empty + 42, // 156: kong_plugin_protocol.Kong.Response_SetHeader:output_type -> google.protobuf.Empty + 42, // 157: kong_plugin_protocol.Kong.Response_AddHeader:output_type -> google.protobuf.Empty + 42, // 158: kong_plugin_protocol.Kong.Response_ClearHeader:output_type -> google.protobuf.Empty + 42, // 159: kong_plugin_protocol.Kong.Response_SetHeaders:output_type -> google.protobuf.Empty + 42, // 160: kong_plugin_protocol.Kong.Response_Exit:output_type -> google.protobuf.Empty + 22, // 161: kong_plugin_protocol.Kong.Router_GetRoute:output_type -> kong_plugin_protocol.Route + 23, // 162: kong_plugin_protocol.Kong.Router_GetService:output_type -> kong_plugin_protocol.Service + 42, // 163: kong_plugin_protocol.Kong.Service_SetUpstream:output_type -> google.protobuf.Empty + 42, // 164: kong_plugin_protocol.Kong.Service_SetTarget:output_type -> google.protobuf.Empty + 42, // 165: kong_plugin_protocol.Kong.Service_Request_SetScheme:output_type -> google.protobuf.Empty + 42, // 166: kong_plugin_protocol.Kong.Service_Request_SetPath:output_type -> google.protobuf.Empty + 42, // 167: kong_plugin_protocol.Kong.Service_Request_SetRawQuery:output_type -> google.protobuf.Empty + 42, // 168: kong_plugin_protocol.Kong.Service_Request_SetMethod:output_type -> google.protobuf.Empty + 42, // 169: kong_plugin_protocol.Kong.Service_Request_SetQuery:output_type -> google.protobuf.Empty + 42, // 170: kong_plugin_protocol.Kong.Service_Request_SetHeader:output_type -> google.protobuf.Empty + 42, // 171: kong_plugin_protocol.Kong.Service_Request_AddHeader:output_type -> google.protobuf.Empty + 42, // 172: kong_plugin_protocol.Kong.Service_Request_ClearHeader:output_type -> google.protobuf.Empty + 42, // 173: kong_plugin_protocol.Kong.Service_Request_SetHeaders:output_type -> google.protobuf.Empty + 42, // 174: kong_plugin_protocol.Kong.Service_Request_SetRawBody:output_type -> google.protobuf.Empty 13, // 175: kong_plugin_protocol.Kong.Service_Response_GetStatus:output_type -> kong_plugin_protocol.Int 15, // 176: kong_plugin_protocol.Kong.Service_Response_GetHeader:output_type -> kong_plugin_protocol.String - 39, // 177: kong_plugin_protocol.Kong.Service_Response_GetHeaders:output_type -> google.protobuf.Struct - 15, // 178: kong_plugin_protocol.Kong.Service_Response_GetRawBody:output_type -> kong_plugin_protocol.String + 40, // 177: kong_plugin_protocol.Kong.Service_Response_GetHeaders:output_type -> google.protobuf.Struct + 16, // 178: kong_plugin_protocol.Kong.Service_Response_GetRawBody:output_type -> kong_plugin_protocol.ByteString 105, // [105:179] is the sub-list for method output_type 31, // [31:105] is the sub-list for method input_type 31, // [31:31] is the sub-list for extension type_name @@ -3730,7 +3780,7 @@ func file_server_kong_plugin_protocol_pluginsocket_proto_init() { } } file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExitArgs); i { + switch v := v.(*ByteString); i { case 0: return &v.state case 1: @@ -3742,7 +3792,7 @@ func file_server_kong_plugin_protocol_pluginsocket_proto_init() { } } file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ServiceKey); i { + switch v := v.(*ExitArgs); i { case 0: return &v.state case 1: @@ -3754,7 +3804,7 @@ func file_server_kong_plugin_protocol_pluginsocket_proto_init() { } } file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CertificateKey); i { + switch v := v.(*ServiceKey); i { case 0: return &v.state case 1: @@ -3766,7 +3816,7 @@ func file_server_kong_plugin_protocol_pluginsocket_proto_init() { } } file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RawBodyResult); i { + switch v := v.(*CertificateKey); i { case 0: return &v.state case 1: @@ -3778,7 +3828,7 @@ func file_server_kong_plugin_protocol_pluginsocket_proto_init() { } } file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UriCapturesResult); i { + switch v := v.(*RawBodyResult); i { case 0: return &v.state case 1: @@ -3790,7 +3840,7 @@ func file_server_kong_plugin_protocol_pluginsocket_proto_init() { } } file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Route); i { + switch v := v.(*UriCapturesResult); i { case 0: return &v.state case 1: @@ -3802,7 +3852,7 @@ func file_server_kong_plugin_protocol_pluginsocket_proto_init() { } } file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Service); i { + switch v := v.(*Route); i { case 0: return &v.state case 1: @@ -3814,7 +3864,7 @@ func file_server_kong_plugin_protocol_pluginsocket_proto_init() { } } file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Target); i { + switch v := v.(*Service); i { case 0: return &v.state case 1: @@ -3826,7 +3876,7 @@ func file_server_kong_plugin_protocol_pluginsocket_proto_init() { } } file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ConsumerSpec); i { + switch v := v.(*Target); i { case 0: return &v.state case 1: @@ -3838,7 +3888,7 @@ func file_server_kong_plugin_protocol_pluginsocket_proto_init() { } } file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Consumer); i { + switch v := v.(*ConsumerSpec); i { case 0: return &v.state case 1: @@ -3850,7 +3900,7 @@ func file_server_kong_plugin_protocol_pluginsocket_proto_init() { } } file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AuthenticatedCredential); i { + switch v := v.(*Consumer); i { case 0: return &v.state case 1: @@ -3862,7 +3912,7 @@ func file_server_kong_plugin_protocol_pluginsocket_proto_init() { } } file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AuthenticateArgs); i { + switch v := v.(*AuthenticatedCredential); i { case 0: return &v.state case 1: @@ -3874,7 +3924,7 @@ func file_server_kong_plugin_protocol_pluginsocket_proto_init() { } } file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MemoryStats); i { + switch v := v.(*AuthenticateArgs); i { case 0: return &v.state case 1: @@ -3886,7 +3936,7 @@ func file_server_kong_plugin_protocol_pluginsocket_proto_init() { } } file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StringMap); i { + switch v := v.(*MemoryStats); i { case 0: return &v.state case 1: @@ -3898,7 +3948,7 @@ func file_server_kong_plugin_protocol_pluginsocket_proto_init() { } } file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PdkArg); i { + switch v := v.(*StringMap); i { case 0: return &v.state case 1: @@ -3910,7 +3960,7 @@ func file_server_kong_plugin_protocol_pluginsocket_proto_init() { } } file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PdkCall); i { + switch v := v.(*PdkArg); i { case 0: return &v.state case 1: @@ -3922,6 +3972,18 @@ func file_server_kong_plugin_protocol_pluginsocket_proto_init() { } } file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PdkCall); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PdkReturn); i { case 0: return &v.state @@ -3933,7 +3995,7 @@ func file_server_kong_plugin_protocol_pluginsocket_proto_init() { return nil } } - file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MemoryStats_LuaSharedDicts); i { case 0: return &v.state @@ -3945,7 +4007,7 @@ func file_server_kong_plugin_protocol_pluginsocket_proto_init() { return nil } } - file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MemoryStats_WorkerLuaVm); i { case 0: return &v.state @@ -3957,7 +4019,7 @@ func file_server_kong_plugin_protocol_pluginsocket_proto_init() { return nil } } - file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MemoryStats_LuaSharedDicts_DictStats); i { case 0: return &v.state @@ -3983,12 +4045,12 @@ func file_server_kong_plugin_protocol_pluginsocket_proto_init() { (*RpcReturn_PluginInfo)(nil), (*RpcReturn_InstanceStatus)(nil), } - file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[19].OneofWrappers = []interface{}{ + file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[20].OneofWrappers = []interface{}{ (*RawBodyResult_Content)(nil), (*RawBodyResult_BodyFilepath)(nil), (*RawBodyResult_Error)(nil), } - file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[30].OneofWrappers = []interface{}{ + file_server_kong_plugin_protocol_pluginsocket_proto_msgTypes[31].OneofWrappers = []interface{}{ (*PdkArg_B)(nil), (*PdkArg_I)(nil), (*PdkArg_F)(nil), @@ -4007,7 +4069,7 @@ func file_server_kong_plugin_protocol_pluginsocket_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_server_kong_plugin_protocol_pluginsocket_proto_rawDesc, NumEnums: 0, - NumMessages: 38, + NumMessages: 39, NumExtensions: 1, NumServices: 1, }, diff --git a/server/kong_plugin_protocol/pluginsocket.proto b/server/kong_plugin_protocol/pluginsocket.proto index 5bea682..0ba20a5 100644 --- a/server/kong_plugin_protocol/pluginsocket.proto +++ b/server/kong_plugin_protocol/pluginsocket.proto @@ -99,9 +99,13 @@ message String { string v = 1; } +message ByteString { + bytes v = 1; +} + message ExitArgs { int32 status = 1; - string body = 2; + bytes body = 2; google.protobuf.Struct headers = 3; } @@ -336,10 +340,10 @@ service Kong { rpc Service_Request_AddHeader(KV) returns (google.protobuf.Empty); rpc Service_Request_ClearHeader(String) returns (google.protobuf.Empty); rpc Service_Request_SetHeaders(google.protobuf.Struct) returns (google.protobuf.Empty); - rpc Service_Request_SetRawBody(String) returns (google.protobuf.Empty); + rpc Service_Request_SetRawBody(ByteString) returns (google.protobuf.Empty); rpc Service_Response_GetStatus(google.protobuf.Empty) returns (Int); rpc Service_Response_GetHeader(String) returns (String); rpc Service_Response_GetHeaders(Int) returns (google.protobuf.Struct); - rpc Service_Response_GetRawBody(google.protobuf.Empty) returns (String); + rpc Service_Response_GetRawBody(google.protobuf.Empty) returns (ByteString); } diff --git a/test/test.go b/test/test.go index 496c64f..005762f 100644 --- a/test/test.go +++ b/test/test.go @@ -78,7 +78,7 @@ type Request struct { Method string Url string Headers http.Header - Body string + Body []byte } func (req Request) clone() Request { @@ -111,7 +111,7 @@ func (req *Request) Validate() error { req.Headers = mergeHeaders(make(http.Header), req.Headers) if req.Method == "GET" { - if req.Body != "" { + if len(req.Body) != 0 { return fmt.Errorf("GET requests must not have body, found \"%v\"", req.Body) } return nil @@ -148,7 +148,7 @@ type Response struct { Status int Message string Headers http.Header - Body string + Body []byte } func (res *Response) merge(other Response) { @@ -165,7 +165,7 @@ func (res *Response) merge(other Response) { res.Headers = other.Headers.Clone() } } - if other.Body != "" { + if len(other.Body) != 0 { res.Body = other.Body } } @@ -376,7 +376,7 @@ func (e *TestEnv) Handle(method string, args_d []byte) []byte { out = bridge.WrapString(e.ClientReq.Headers.Get(args.V)) case "kong.request.get_raw_body": - out = bridge.WrapString(e.ClientReq.Body) + out = bridge.WrapByteString(e.ClientReq.Body) case "kong.request.get_headers": out, err = bridge.WrapHeaders(e.ClientReq.Headers) @@ -511,7 +511,7 @@ func (e *TestEnv) Handle(method string, args_d []byte) []byte { mergeHeaders(e.ServiceReq.Headers, headers) case "kong.service.request.set_raw_body": - args := kong_plugin_protocol.String{} + args := kong_plugin_protocol.ByteString{} e.noErr(proto.Unmarshal(args_d, &args)) e.ServiceRes.Body = args.V @@ -527,7 +527,7 @@ func (e *TestEnv) Handle(method string, args_d []byte) []byte { out = bridge.WrapString(e.ServiceRes.Headers.Get(args.V)) case "kong.service.response.get_raw_body": - out = bridge.WrapString(e.ServiceRes.Body) + out = bridge.WrapByteString(e.ServiceRes.Body) default: e.t.Errorf("unknown method: \"%v\"", method)