From cbdc4f0dadce29a2e1fcdc322d8757052e1f8aa3 Mon Sep 17 00:00:00 2001 From: Alexander Cristurean Date: Fri, 12 Jul 2024 15:01:57 +0300 Subject: [PATCH 01/12] changed proto definition along with converting system. --- .../hyperOutportBlocks/grpcBlockService.pb.go | 187 +- .../grpcBlockService_grpc.pb.go | 6 +- .../hyperOutportBlock.pb.go | 2673 ++++++++++------- .../hyperOutportBlock.proto | 31 + process/outportBlockConverter.go | 336 +++ 5 files changed, 2031 insertions(+), 1202 deletions(-) diff --git a/data/hyperOutportBlocks/grpcBlockService.pb.go b/data/hyperOutportBlocks/grpcBlockService.pb.go index 54c3832..b46e69a 100644 --- a/data/hyperOutportBlocks/grpcBlockService.pb.go +++ b/data/hyperOutportBlocks/grpcBlockService.pb.go @@ -2,7 +2,7 @@ // versions: // protoc-gen-go v1.28.1 // protoc v3.6.1 -// source: data/hyperOutportBlocks/grpcBlockService.proto +// source: grpcBlockService.proto package hyperOutportBlocks @@ -32,7 +32,7 @@ type BlockHashRequest struct { func (x *BlockHashRequest) Reset() { *x = BlockHashRequest{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_grpcBlockService_proto_msgTypes[0] + mi := &file_grpcBlockService_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -45,7 +45,7 @@ func (x *BlockHashRequest) String() string { func (*BlockHashRequest) ProtoMessage() {} func (x *BlockHashRequest) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_grpcBlockService_proto_msgTypes[0] + mi := &file_grpcBlockService_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -58,7 +58,7 @@ func (x *BlockHashRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BlockHashRequest.ProtoReflect.Descriptor instead. func (*BlockHashRequest) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_grpcBlockService_proto_rawDescGZIP(), []int{0} + return file_grpcBlockService_proto_rawDescGZIP(), []int{0} } func (x *BlockHashRequest) GetHash() string { @@ -80,7 +80,7 @@ type BlockHashStreamRequest struct { func (x *BlockHashStreamRequest) Reset() { *x = BlockHashStreamRequest{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_grpcBlockService_proto_msgTypes[1] + mi := &file_grpcBlockService_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -93,7 +93,7 @@ func (x *BlockHashStreamRequest) String() string { func (*BlockHashStreamRequest) ProtoMessage() {} func (x *BlockHashStreamRequest) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_grpcBlockService_proto_msgTypes[1] + mi := &file_grpcBlockService_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -106,7 +106,7 @@ func (x *BlockHashStreamRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BlockHashStreamRequest.ProtoReflect.Descriptor instead. func (*BlockHashStreamRequest) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_grpcBlockService_proto_rawDescGZIP(), []int{1} + return file_grpcBlockService_proto_rawDescGZIP(), []int{1} } func (x *BlockHashStreamRequest) GetHash() string { @@ -134,7 +134,7 @@ type BlockNonceRequest struct { func (x *BlockNonceRequest) Reset() { *x = BlockNonceRequest{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_grpcBlockService_proto_msgTypes[2] + mi := &file_grpcBlockService_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -147,7 +147,7 @@ func (x *BlockNonceRequest) String() string { func (*BlockNonceRequest) ProtoMessage() {} func (x *BlockNonceRequest) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_grpcBlockService_proto_msgTypes[2] + mi := &file_grpcBlockService_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -160,7 +160,7 @@ func (x *BlockNonceRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BlockNonceRequest.ProtoReflect.Descriptor instead. func (*BlockNonceRequest) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_grpcBlockService_proto_rawDescGZIP(), []int{2} + return file_grpcBlockService_proto_rawDescGZIP(), []int{2} } func (x *BlockNonceRequest) GetNonce() uint64 { @@ -182,7 +182,7 @@ type BlockNonceStreamRequest struct { func (x *BlockNonceStreamRequest) Reset() { *x = BlockNonceStreamRequest{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_grpcBlockService_proto_msgTypes[3] + mi := &file_grpcBlockService_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -195,7 +195,7 @@ func (x *BlockNonceStreamRequest) String() string { func (*BlockNonceStreamRequest) ProtoMessage() {} func (x *BlockNonceStreamRequest) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_grpcBlockService_proto_msgTypes[3] + mi := &file_grpcBlockService_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -208,7 +208,7 @@ func (x *BlockNonceStreamRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BlockNonceStreamRequest.ProtoReflect.Descriptor instead. func (*BlockNonceStreamRequest) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_grpcBlockService_proto_rawDescGZIP(), []int{3} + return file_grpcBlockService_proto_rawDescGZIP(), []int{3} } func (x *BlockNonceStreamRequest) GetNonce() uint64 { @@ -225,80 +225,79 @@ func (x *BlockNonceStreamRequest) GetPollingInterval() *duration.Duration { return nil } -var File_data_hyperOutportBlocks_grpcBlockService_proto protoreflect.FileDescriptor - -var file_data_hyperOutportBlocks_grpcBlockService_proto_rawDesc = []byte{ - 0x0a, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x68, 0x79, 0x70, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, - 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x12, 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x68, 0x79, - 0x70, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, - 0x2f, 0x68, 0x79, 0x70, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x26, 0x0a, 0x10, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, - 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, - 0x22, 0x71, 0x0a, 0x16, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, - 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x43, - 0x0a, 0x0f, 0x70, 0x6f, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, - 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x0f, 0x70, 0x6f, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x76, 0x61, 0x6c, 0x22, 0x29, 0x0a, 0x11, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x6f, 0x6e, 0x63, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x22, 0x74, - 0x0a, 0x17, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x12, - 0x43, 0x0a, 0x0f, 0x70, 0x6f, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, - 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x70, 0x6f, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x76, 0x61, 0x6c, 0x32, 0xa9, 0x01, 0x0a, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x12, 0x4b, 0x0a, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x42, 0x79, - 0x48, 0x61, 0x73, 0x68, 0x12, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x79, 0x70, 0x65, - 0x72, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x00, 0x30, - 0x01, 0x12, 0x4d, 0x0a, 0x0d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x42, 0x79, 0x4e, 0x6f, 0x6e, - 0x63, 0x65, 0x12, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x79, 0x70, 0x65, 0x72, - 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x00, 0x30, 0x01, - 0x32, 0x9c, 0x01, 0x0a, 0x0a, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x46, 0x65, 0x74, 0x63, 0x68, 0x12, - 0x45, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x79, 0x48, 0x61, 0x73, - 0x68, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, - 0x61, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, +var File_grpcBlockService_proto protoreflect.FileDescriptor + +var file_grpcBlockService_proto_rawDesc = []byte{ + 0x0a, 0x16, 0x67, 0x72, 0x70, 0x63, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x68, 0x79, 0x70, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x6f, + 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x2f, 0x68, 0x79, 0x70, 0x65, 0x72, 0x4f, 0x75, + 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x22, 0x26, 0x0a, 0x10, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x22, 0x71, 0x0a, 0x16, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x48, 0x61, 0x73, 0x68, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x43, 0x0a, 0x0f, 0x70, 0x6f, 0x6c, 0x6c, 0x69, 0x6e, + 0x67, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x70, 0x6f, 0x6c, 0x6c, + 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22, 0x29, 0x0a, 0x11, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x22, 0x74, 0x0a, 0x17, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, + 0x6f, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x43, 0x0a, 0x0f, 0x70, 0x6f, 0x6c, 0x6c, 0x69, + 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x70, 0x6f, 0x6c, + 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x32, 0xa9, 0x01, 0x0a, + 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x4b, 0x0a, 0x0c, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1d, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x79, 0x70, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x00, 0x30, 0x01, 0x12, 0x4d, 0x0a, 0x0d, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x73, 0x42, 0x79, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x1e, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x79, 0x70, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x42, 0x79, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x79, 0x70, 0x65, - 0x72, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x00, 0x42, - 0x51, 0x5a, 0x4f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x76, 0x65, 0x72, 0x73, 0x78, 0x2f, 0x6d, 0x78, 0x2d, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x2d, 0x77, 0x73, 0x2d, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2d, 0x66, - 0x69, 0x72, 0x65, 0x68, 0x6f, 0x73, 0x65, 0x2d, 0x67, 0x6f, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, - 0x68, 0x79, 0x70, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x00, 0x30, 0x01, 0x32, 0x9c, 0x01, 0x0a, 0x0a, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x46, 0x65, 0x74, 0x63, 0x68, 0x12, 0x45, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x79, 0x70, 0x65, 0x72, + 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x00, 0x12, 0x47, + 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x79, 0x4e, 0x6f, 0x6e, 0x63, + 0x65, 0x12, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, + 0x6f, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x79, 0x70, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x00, 0x42, 0x51, 0x5a, 0x4f, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x76, 0x65, 0x72, 0x73, 0x78, + 0x2f, 0x6d, 0x78, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2d, 0x77, 0x73, 0x2d, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2d, 0x66, 0x69, 0x72, 0x65, 0x68, 0x6f, 0x73, 0x65, 0x2d, + 0x67, 0x6f, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x68, 0x79, 0x70, 0x65, 0x72, 0x4f, 0x75, 0x74, + 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( - file_data_hyperOutportBlocks_grpcBlockService_proto_rawDescOnce sync.Once - file_data_hyperOutportBlocks_grpcBlockService_proto_rawDescData = file_data_hyperOutportBlocks_grpcBlockService_proto_rawDesc + file_grpcBlockService_proto_rawDescOnce sync.Once + file_grpcBlockService_proto_rawDescData = file_grpcBlockService_proto_rawDesc ) -func file_data_hyperOutportBlocks_grpcBlockService_proto_rawDescGZIP() []byte { - file_data_hyperOutportBlocks_grpcBlockService_proto_rawDescOnce.Do(func() { - file_data_hyperOutportBlocks_grpcBlockService_proto_rawDescData = protoimpl.X.CompressGZIP(file_data_hyperOutportBlocks_grpcBlockService_proto_rawDescData) +func file_grpcBlockService_proto_rawDescGZIP() []byte { + file_grpcBlockService_proto_rawDescOnce.Do(func() { + file_grpcBlockService_proto_rawDescData = protoimpl.X.CompressGZIP(file_grpcBlockService_proto_rawDescData) }) - return file_data_hyperOutportBlocks_grpcBlockService_proto_rawDescData + return file_grpcBlockService_proto_rawDescData } -var file_data_hyperOutportBlocks_grpcBlockService_proto_msgTypes = make([]protoimpl.MessageInfo, 4) -var file_data_hyperOutportBlocks_grpcBlockService_proto_goTypes = []interface{}{ +var file_grpcBlockService_proto_msgTypes = make([]protoimpl.MessageInfo, 4) +var file_grpcBlockService_proto_goTypes = []interface{}{ (*BlockHashRequest)(nil), // 0: proto.BlockHashRequest (*BlockHashStreamRequest)(nil), // 1: proto.BlockHashStreamRequest (*BlockNonceRequest)(nil), // 2: proto.BlockNonceRequest @@ -306,7 +305,7 @@ var file_data_hyperOutportBlocks_grpcBlockService_proto_goTypes = []interface{}{ (*duration.Duration)(nil), // 4: google.protobuf.Duration (*HyperOutportBlock)(nil), // 5: proto.HyperOutportBlock } -var file_data_hyperOutportBlocks_grpcBlockService_proto_depIdxs = []int32{ +var file_grpcBlockService_proto_depIdxs = []int32{ 4, // 0: proto.BlockHashStreamRequest.pollingInterval:type_name -> google.protobuf.Duration 4, // 1: proto.BlockNonceStreamRequest.pollingInterval:type_name -> google.protobuf.Duration 1, // 2: proto.BlockStream.BlocksByHash:input_type -> proto.BlockHashStreamRequest @@ -324,14 +323,14 @@ var file_data_hyperOutportBlocks_grpcBlockService_proto_depIdxs = []int32{ 0, // [0:2] is the sub-list for field type_name } -func init() { file_data_hyperOutportBlocks_grpcBlockService_proto_init() } -func file_data_hyperOutportBlocks_grpcBlockService_proto_init() { - if File_data_hyperOutportBlocks_grpcBlockService_proto != nil { +func init() { file_grpcBlockService_proto_init() } +func file_grpcBlockService_proto_init() { + if File_grpcBlockService_proto != nil { return } file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() if !protoimpl.UnsafeEnabled { - file_data_hyperOutportBlocks_grpcBlockService_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_grpcBlockService_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockHashRequest); i { case 0: return &v.state @@ -343,7 +342,7 @@ func file_data_hyperOutportBlocks_grpcBlockService_proto_init() { return nil } } - file_data_hyperOutportBlocks_grpcBlockService_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_grpcBlockService_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockHashStreamRequest); i { case 0: return &v.state @@ -355,7 +354,7 @@ func file_data_hyperOutportBlocks_grpcBlockService_proto_init() { return nil } } - file_data_hyperOutportBlocks_grpcBlockService_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_grpcBlockService_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockNonceRequest); i { case 0: return &v.state @@ -367,7 +366,7 @@ func file_data_hyperOutportBlocks_grpcBlockService_proto_init() { return nil } } - file_data_hyperOutportBlocks_grpcBlockService_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_grpcBlockService_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockNonceStreamRequest); i { case 0: return &v.state @@ -384,18 +383,18 @@ func file_data_hyperOutportBlocks_grpcBlockService_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_data_hyperOutportBlocks_grpcBlockService_proto_rawDesc, + RawDescriptor: file_grpcBlockService_proto_rawDesc, NumEnums: 0, NumMessages: 4, NumExtensions: 0, NumServices: 2, }, - GoTypes: file_data_hyperOutportBlocks_grpcBlockService_proto_goTypes, - DependencyIndexes: file_data_hyperOutportBlocks_grpcBlockService_proto_depIdxs, - MessageInfos: file_data_hyperOutportBlocks_grpcBlockService_proto_msgTypes, + GoTypes: file_grpcBlockService_proto_goTypes, + DependencyIndexes: file_grpcBlockService_proto_depIdxs, + MessageInfos: file_grpcBlockService_proto_msgTypes, }.Build() - File_data_hyperOutportBlocks_grpcBlockService_proto = out.File - file_data_hyperOutportBlocks_grpcBlockService_proto_rawDesc = nil - file_data_hyperOutportBlocks_grpcBlockService_proto_goTypes = nil - file_data_hyperOutportBlocks_grpcBlockService_proto_depIdxs = nil + File_grpcBlockService_proto = out.File + file_grpcBlockService_proto_rawDesc = nil + file_grpcBlockService_proto_goTypes = nil + file_grpcBlockService_proto_depIdxs = nil } diff --git a/data/hyperOutportBlocks/grpcBlockService_grpc.pb.go b/data/hyperOutportBlocks/grpcBlockService_grpc.pb.go index 2e70d93..6a41bab 100644 --- a/data/hyperOutportBlocks/grpcBlockService_grpc.pb.go +++ b/data/hyperOutportBlocks/grpcBlockService_grpc.pb.go @@ -2,7 +2,7 @@ // versions: // - protoc-gen-go-grpc v1.2.0 // - protoc v3.6.1 -// source: data/hyperOutportBlocks/grpcBlockService.proto +// source: grpcBlockService.proto package hyperOutportBlocks @@ -191,7 +191,7 @@ var BlockStream_ServiceDesc = grpc.ServiceDesc{ ServerStreams: true, }, }, - Metadata: "data/hyperOutportBlocks/grpcBlockService.proto", + Metadata: "grpcBlockService.proto", } // BlockFetchClient is the client API for BlockFetch service. @@ -313,5 +313,5 @@ var BlockFetch_ServiceDesc = grpc.ServiceDesc{ }, }, Streams: []grpc.StreamDesc{}, - Metadata: "data/hyperOutportBlocks/grpcBlockService.proto", + Metadata: "grpcBlockService.proto", } diff --git a/data/hyperOutportBlocks/hyperOutportBlock.pb.go b/data/hyperOutportBlocks/hyperOutportBlock.pb.go index 7297a36..dd8e58f 100644 --- a/data/hyperOutportBlocks/hyperOutportBlock.pb.go +++ b/data/hyperOutportBlocks/hyperOutportBlock.pb.go @@ -2,7 +2,7 @@ // versions: // protoc-gen-go v1.28.1 // protoc v3.6.1 -// source: data/hyperOutportBlocks/hyperOutportBlock.proto +// source: hyperOutportBlock.proto package hyperOutportBlocks @@ -69,11 +69,11 @@ func (x PeerAction) String() string { } func (PeerAction) Descriptor() protoreflect.EnumDescriptor { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_enumTypes[0].Descriptor() + return file_hyperOutportBlock_proto_enumTypes[0].Descriptor() } func (PeerAction) Type() protoreflect.EnumType { - return &file_data_hyperOutportBlocks_hyperOutportBlock_proto_enumTypes[0] + return &file_hyperOutportBlock_proto_enumTypes[0] } func (x PeerAction) Number() protoreflect.EnumNumber { @@ -82,7 +82,7 @@ func (x PeerAction) Number() protoreflect.EnumNumber { // Deprecated: Use PeerAction.Descriptor instead. func (PeerAction) EnumDescriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{0} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{0} } type Type int32 @@ -130,11 +130,11 @@ func (x Type) String() string { } func (Type) Descriptor() protoreflect.EnumDescriptor { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_enumTypes[1].Descriptor() + return file_hyperOutportBlock_proto_enumTypes[1].Descriptor() } func (Type) Type() protoreflect.EnumType { - return &file_data_hyperOutportBlocks_hyperOutportBlock_proto_enumTypes[1] + return &file_hyperOutportBlock_proto_enumTypes[1] } func (x Type) Number() protoreflect.EnumNumber { @@ -143,7 +143,7 @@ func (x Type) Number() protoreflect.EnumNumber { // Deprecated: Use Type.Descriptor instead. func (Type) EnumDescriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{1} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{1} } type HyperOutportBlock struct { @@ -158,7 +158,7 @@ type HyperOutportBlock struct { func (x *HyperOutportBlock) Reset() { *x = HyperOutportBlock{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[0] + mi := &file_hyperOutportBlock_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -171,7 +171,7 @@ func (x *HyperOutportBlock) String() string { func (*HyperOutportBlock) ProtoMessage() {} func (x *HyperOutportBlock) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[0] + mi := &file_hyperOutportBlock_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -184,7 +184,7 @@ func (x *HyperOutportBlock) ProtoReflect() protoreflect.Message { // Deprecated: Use HyperOutportBlock.ProtoReflect.Descriptor instead. func (*HyperOutportBlock) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{0} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{0} } func (x *HyperOutportBlock) GetMetaOutportBlock() *MetaOutportBlock { @@ -213,7 +213,7 @@ type NotarizedHeaderOutportData struct { func (x *NotarizedHeaderOutportData) Reset() { *x = NotarizedHeaderOutportData{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[1] + mi := &file_hyperOutportBlock_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -226,7 +226,7 @@ func (x *NotarizedHeaderOutportData) String() string { func (*NotarizedHeaderOutportData) ProtoMessage() {} func (x *NotarizedHeaderOutportData) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[1] + mi := &file_hyperOutportBlock_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -239,7 +239,7 @@ func (x *NotarizedHeaderOutportData) ProtoReflect() protoreflect.Message { // Deprecated: Use NotarizedHeaderOutportData.ProtoReflect.Descriptor instead. func (*NotarizedHeaderOutportData) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{1} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{1} } func (x *NotarizedHeaderOutportData) GetNotarizedHeaderHash() string { @@ -276,7 +276,7 @@ type MetaOutportBlock struct { func (x *MetaOutportBlock) Reset() { *x = MetaOutportBlock{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[2] + mi := &file_hyperOutportBlock_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -289,7 +289,7 @@ func (x *MetaOutportBlock) String() string { func (*MetaOutportBlock) ProtoMessage() {} func (x *MetaOutportBlock) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[2] + mi := &file_hyperOutportBlock_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -302,7 +302,7 @@ func (x *MetaOutportBlock) ProtoReflect() protoreflect.Message { // Deprecated: Use MetaOutportBlock.ProtoReflect.Descriptor instead. func (*MetaOutportBlock) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{2} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{2} } func (x *MetaOutportBlock) GetShardID() uint32 { @@ -395,7 +395,7 @@ type ShardOutportBlock struct { func (x *ShardOutportBlock) Reset() { *x = ShardOutportBlock{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[3] + mi := &file_hyperOutportBlock_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -408,7 +408,7 @@ func (x *ShardOutportBlock) String() string { func (*ShardOutportBlock) ProtoMessage() {} func (x *ShardOutportBlock) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[3] + mi := &file_hyperOutportBlock_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -421,7 +421,7 @@ func (x *ShardOutportBlock) ProtoReflect() protoreflect.Message { // Deprecated: Use ShardOutportBlock.ProtoReflect.Descriptor instead. func (*ShardOutportBlock) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{3} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{3} } func (x *ShardOutportBlock) GetShardID() uint32 { @@ -494,6 +494,220 @@ func (x *ShardOutportBlock) GetHighestFinalBlockHash() []byte { return nil } +type ShardOutportBlockV2 struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ShardID uint32 `protobuf:"varint,1,opt,name=ShardID,proto3" json:"ShardID,omitempty"` + BlockData *BlockData `protobuf:"bytes,2,opt,name=BlockData,proto3" json:"BlockData,omitempty"` + TransactionPool *TransactionPoolV2 `protobuf:"bytes,3,opt,name=TransactionPool,proto3" json:"TransactionPool,omitempty"` + HeaderGasConsumption *HeaderGasConsumption `protobuf:"bytes,4,opt,name=HeaderGasConsumption,proto3" json:"HeaderGasConsumption,omitempty"` + AlteredAccounts map[string]*AlteredAccount `protobuf:"bytes,5,rep,name=AlteredAccounts,proto3" json:"AlteredAccounts,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + NotarizedHeadersHashes []string `protobuf:"bytes,6,rep,name=NotarizedHeadersHashes,proto3" json:"NotarizedHeadersHashes,omitempty"` + NumberOfShards uint32 `protobuf:"varint,7,opt,name=NumberOfShards,proto3" json:"NumberOfShards,omitempty"` + SignersIndexes []uint64 `protobuf:"varint,8,rep,packed,name=SignersIndexes,proto3" json:"SignersIndexes,omitempty"` + HighestFinalBlockNonce uint64 `protobuf:"varint,9,opt,name=HighestFinalBlockNonce,proto3" json:"HighestFinalBlockNonce,omitempty"` + HighestFinalBlockHash []byte `protobuf:"bytes,10,opt,name=HighestFinalBlockHash,proto3" json:"HighestFinalBlockHash,omitempty"` +} + +func (x *ShardOutportBlockV2) Reset() { + *x = ShardOutportBlockV2{} + if protoimpl.UnsafeEnabled { + mi := &file_hyperOutportBlock_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ShardOutportBlockV2) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ShardOutportBlockV2) ProtoMessage() {} + +func (x *ShardOutportBlockV2) ProtoReflect() protoreflect.Message { + mi := &file_hyperOutportBlock_proto_msgTypes[4] + 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 ShardOutportBlockV2.ProtoReflect.Descriptor instead. +func (*ShardOutportBlockV2) Descriptor() ([]byte, []int) { + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{4} +} + +func (x *ShardOutportBlockV2) GetShardID() uint32 { + if x != nil { + return x.ShardID + } + return 0 +} + +func (x *ShardOutportBlockV2) GetBlockData() *BlockData { + if x != nil { + return x.BlockData + } + return nil +} + +func (x *ShardOutportBlockV2) GetTransactionPool() *TransactionPoolV2 { + if x != nil { + return x.TransactionPool + } + return nil +} + +func (x *ShardOutportBlockV2) GetHeaderGasConsumption() *HeaderGasConsumption { + if x != nil { + return x.HeaderGasConsumption + } + return nil +} + +func (x *ShardOutportBlockV2) GetAlteredAccounts() map[string]*AlteredAccount { + if x != nil { + return x.AlteredAccounts + } + return nil +} + +func (x *ShardOutportBlockV2) GetNotarizedHeadersHashes() []string { + if x != nil { + return x.NotarizedHeadersHashes + } + return nil +} + +func (x *ShardOutportBlockV2) GetNumberOfShards() uint32 { + if x != nil { + return x.NumberOfShards + } + return 0 +} + +func (x *ShardOutportBlockV2) GetSignersIndexes() []uint64 { + if x != nil { + return x.SignersIndexes + } + return nil +} + +func (x *ShardOutportBlockV2) GetHighestFinalBlockNonce() uint64 { + if x != nil { + return x.HighestFinalBlockNonce + } + return 0 +} + +func (x *ShardOutportBlockV2) GetHighestFinalBlockHash() []byte { + if x != nil { + return x.HighestFinalBlockHash + } + return nil +} + +type TransactionPoolV2 struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Transactions map[string]*TxInfoV2 `protobuf:"bytes,1,rep,name=Transactions,proto3" json:"Transactions,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Rewards map[string]*RewardInfo `protobuf:"bytes,3,rep,name=Rewards,proto3" json:"Rewards,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Receipts map[string]*Receipt `protobuf:"bytes,4,rep,name=Receipts,proto3" json:"Receipts,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + InvalidTxs map[string]*TxInfo `protobuf:"bytes,5,rep,name=InvalidTxs,proto3" json:"InvalidTxs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Logs []*LogData `protobuf:"bytes,6,rep,name=Logs,proto3" json:"Logs,omitempty"` + ScheduledExecutedSCRSHashesPrevBlock []string `protobuf:"bytes,7,rep,name=ScheduledExecutedSCRSHashesPrevBlock,proto3" json:"ScheduledExecutedSCRSHashesPrevBlock,omitempty"` + ScheduledExecutedInvalidTxsHashesPrevBlock []string `protobuf:"bytes,8,rep,name=ScheduledExecutedInvalidTxsHashesPrevBlock,proto3" json:"ScheduledExecutedInvalidTxsHashesPrevBlock,omitempty"` +} + +func (x *TransactionPoolV2) Reset() { + *x = TransactionPoolV2{} + if protoimpl.UnsafeEnabled { + mi := &file_hyperOutportBlock_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TransactionPoolV2) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TransactionPoolV2) ProtoMessage() {} + +func (x *TransactionPoolV2) ProtoReflect() protoreflect.Message { + mi := &file_hyperOutportBlock_proto_msgTypes[5] + 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 TransactionPoolV2.ProtoReflect.Descriptor instead. +func (*TransactionPoolV2) Descriptor() ([]byte, []int) { + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{5} +} + +func (x *TransactionPoolV2) GetTransactions() map[string]*TxInfoV2 { + if x != nil { + return x.Transactions + } + return nil +} + +func (x *TransactionPoolV2) GetRewards() map[string]*RewardInfo { + if x != nil { + return x.Rewards + } + return nil +} + +func (x *TransactionPoolV2) GetReceipts() map[string]*Receipt { + if x != nil { + return x.Receipts + } + return nil +} + +func (x *TransactionPoolV2) GetInvalidTxs() map[string]*TxInfo { + if x != nil { + return x.InvalidTxs + } + return nil +} + +func (x *TransactionPoolV2) GetLogs() []*LogData { + if x != nil { + return x.Logs + } + return nil +} + +func (x *TransactionPoolV2) GetScheduledExecutedSCRSHashesPrevBlock() []string { + if x != nil { + return x.ScheduledExecutedSCRSHashesPrevBlock + } + return nil +} + +func (x *TransactionPoolV2) GetScheduledExecutedInvalidTxsHashesPrevBlock() []string { + if x != nil { + return x.ScheduledExecutedInvalidTxsHashesPrevBlock + } + return nil +} + // Header holds the metadata of a block. This is the part that is being hashed and run through consensus. // The header holds the hash of the body and also the link to the previous block header hash type Header struct { @@ -530,7 +744,7 @@ type Header struct { func (x *Header) Reset() { *x = Header{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[4] + mi := &file_hyperOutportBlock_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -543,7 +757,7 @@ func (x *Header) String() string { func (*Header) ProtoMessage() {} func (x *Header) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[4] + mi := &file_hyperOutportBlock_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -556,7 +770,7 @@ func (x *Header) ProtoReflect() protoreflect.Message { // Deprecated: Use Header.ProtoReflect.Descriptor instead. func (*Header) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{4} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{6} } func (x *Header) GetNonce() uint64 { @@ -762,7 +976,7 @@ type MetaHeader struct { func (x *MetaHeader) Reset() { *x = MetaHeader{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[5] + mi := &file_hyperOutportBlock_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -775,7 +989,7 @@ func (x *MetaHeader) String() string { func (*MetaHeader) ProtoMessage() {} func (x *MetaHeader) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[5] + mi := &file_hyperOutportBlock_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -788,7 +1002,7 @@ func (x *MetaHeader) ProtoReflect() protoreflect.Message { // Deprecated: Use MetaHeader.ProtoReflect.Descriptor instead. func (*MetaHeader) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{5} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{7} } func (x *MetaHeader) GetNonce() uint64 { @@ -982,7 +1196,7 @@ type MiniBlockHeader struct { func (x *MiniBlockHeader) Reset() { *x = MiniBlockHeader{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[6] + mi := &file_hyperOutportBlock_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -995,7 +1209,7 @@ func (x *MiniBlockHeader) String() string { func (*MiniBlockHeader) ProtoMessage() {} func (x *MiniBlockHeader) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[6] + mi := &file_hyperOutportBlock_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1008,7 +1222,7 @@ func (x *MiniBlockHeader) ProtoReflect() protoreflect.Message { // Deprecated: Use MiniBlockHeader.ProtoReflect.Descriptor instead. func (*MiniBlockHeader) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{6} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{8} } func (x *MiniBlockHeader) GetHash() []byte { @@ -1066,7 +1280,7 @@ type PeerChange struct { func (x *PeerChange) Reset() { *x = PeerChange{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[7] + mi := &file_hyperOutportBlock_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1079,7 +1293,7 @@ func (x *PeerChange) String() string { func (*PeerChange) ProtoMessage() {} func (x *PeerChange) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[7] + mi := &file_hyperOutportBlock_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1092,7 +1306,7 @@ func (x *PeerChange) ProtoReflect() protoreflect.Message { // Deprecated: Use PeerChange.ProtoReflect.Descriptor instead. func (*PeerChange) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{7} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{9} } func (x *PeerChange) GetPubKey() []byte { @@ -1131,7 +1345,7 @@ type BlockData struct { func (x *BlockData) Reset() { *x = BlockData{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[8] + mi := &file_hyperOutportBlock_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1144,7 +1358,7 @@ func (x *BlockData) String() string { func (*BlockData) ProtoMessage() {} func (x *BlockData) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[8] + mi := &file_hyperOutportBlock_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1157,7 +1371,7 @@ func (x *BlockData) ProtoReflect() protoreflect.Message { // Deprecated: Use BlockData.ProtoReflect.Descriptor instead. func (*BlockData) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{8} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{10} } func (x *BlockData) GetShardID() uint32 { @@ -1266,7 +1480,7 @@ type MetaBlockData struct { func (x *MetaBlockData) Reset() { *x = MetaBlockData{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[9] + mi := &file_hyperOutportBlock_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1279,7 +1493,7 @@ func (x *MetaBlockData) String() string { func (*MetaBlockData) ProtoMessage() {} func (x *MetaBlockData) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[9] + mi := &file_hyperOutportBlock_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1292,7 +1506,7 @@ func (x *MetaBlockData) ProtoReflect() protoreflect.Message { // Deprecated: Use MetaBlockData.ProtoReflect.Descriptor instead. func (*MetaBlockData) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{9} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{11} } func (x *MetaBlockData) GetShardID() uint32 { @@ -1403,7 +1617,7 @@ type ShardData struct { func (x *ShardData) Reset() { *x = ShardData{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[10] + mi := &file_hyperOutportBlock_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1416,7 +1630,7 @@ func (x *ShardData) String() string { func (*ShardData) ProtoMessage() {} func (x *ShardData) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[10] + mi := &file_hyperOutportBlock_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1429,7 +1643,7 @@ func (x *ShardData) ProtoReflect() protoreflect.Message { // Deprecated: Use ShardData.ProtoReflect.Descriptor instead. func (*ShardData) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{10} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{12} } func (x *ShardData) GetShardID() uint32 { @@ -1543,7 +1757,7 @@ type EpochStart struct { func (x *EpochStart) Reset() { *x = EpochStart{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[11] + mi := &file_hyperOutportBlock_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1556,7 +1770,7 @@ func (x *EpochStart) String() string { func (*EpochStart) ProtoMessage() {} func (x *EpochStart) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[11] + mi := &file_hyperOutportBlock_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1569,7 +1783,7 @@ func (x *EpochStart) ProtoReflect() protoreflect.Message { // Deprecated: Use EpochStart.ProtoReflect.Descriptor instead. func (*EpochStart) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{11} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{13} } func (x *EpochStart) GetLastFinalizedHeaders() []*EpochStartShardData { @@ -1606,7 +1820,7 @@ type EpochStartShardData struct { func (x *EpochStartShardData) Reset() { *x = EpochStartShardData{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[12] + mi := &file_hyperOutportBlock_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1619,7 +1833,7 @@ func (x *EpochStartShardData) String() string { func (*EpochStartShardData) ProtoMessage() {} func (x *EpochStartShardData) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[12] + mi := &file_hyperOutportBlock_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1632,7 +1846,7 @@ func (x *EpochStartShardData) ProtoReflect() protoreflect.Message { // Deprecated: Use EpochStartShardData.ProtoReflect.Descriptor instead. func (*EpochStartShardData) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{12} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{14} } func (x *EpochStartShardData) GetShardID() uint32 { @@ -1723,7 +1937,7 @@ type Economics struct { func (x *Economics) Reset() { *x = Economics{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[13] + mi := &file_hyperOutportBlock_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1736,7 +1950,7 @@ func (x *Economics) String() string { func (*Economics) ProtoMessage() {} func (x *Economics) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[13] + mi := &file_hyperOutportBlock_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1749,7 +1963,7 @@ func (x *Economics) ProtoReflect() protoreflect.Message { // Deprecated: Use Economics.ProtoReflect.Descriptor instead. func (*Economics) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{13} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{15} } func (x *Economics) GetTotalSupply() []byte { @@ -1826,7 +2040,7 @@ type PeerData struct { func (x *PeerData) Reset() { *x = PeerData{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[14] + mi := &file_hyperOutportBlock_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1839,7 +2053,7 @@ func (x *PeerData) String() string { func (*PeerData) ProtoMessage() {} func (x *PeerData) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[14] + mi := &file_hyperOutportBlock_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1852,7 +2066,7 @@ func (x *PeerData) ProtoReflect() protoreflect.Message { // Deprecated: Use PeerData.ProtoReflect.Descriptor instead. func (*PeerData) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{14} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{16} } func (x *PeerData) GetAddress() []byte { @@ -1908,7 +2122,7 @@ type TransactionPool struct { func (x *TransactionPool) Reset() { *x = TransactionPool{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[15] + mi := &file_hyperOutportBlock_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1921,7 +2135,7 @@ func (x *TransactionPool) String() string { func (*TransactionPool) ProtoMessage() {} func (x *TransactionPool) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[15] + mi := &file_hyperOutportBlock_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1934,7 +2148,7 @@ func (x *TransactionPool) ProtoReflect() protoreflect.Message { // Deprecated: Use TransactionPool.ProtoReflect.Descriptor instead. func (*TransactionPool) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{15} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{17} } func (x *TransactionPool) GetTransactions() map[string]*TxInfo { @@ -2006,7 +2220,7 @@ type FeeInfo struct { func (x *FeeInfo) Reset() { *x = FeeInfo{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[16] + mi := &file_hyperOutportBlock_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2019,7 +2233,7 @@ func (x *FeeInfo) String() string { func (*FeeInfo) ProtoMessage() {} func (x *FeeInfo) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[16] + mi := &file_hyperOutportBlock_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2032,7 +2246,7 @@ func (x *FeeInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use FeeInfo.ProtoReflect.Descriptor instead. func (*FeeInfo) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{16} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{18} } func (x *FeeInfo) GetGasUsed() uint64 { @@ -2069,7 +2283,7 @@ type TxInfo struct { func (x *TxInfo) Reset() { *x = TxInfo{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[17] + mi := &file_hyperOutportBlock_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2082,7 +2296,7 @@ func (x *TxInfo) String() string { func (*TxInfo) ProtoMessage() {} func (x *TxInfo) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[17] + mi := &file_hyperOutportBlock_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2095,7 +2309,7 @@ func (x *TxInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use TxInfo.ProtoReflect.Descriptor instead. func (*TxInfo) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{17} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{19} } func (x *TxInfo) GetTransaction() *Transaction { @@ -2119,6 +2333,85 @@ func (x *TxInfo) GetExecutionOrder() uint32 { return 0 } +type TxInfoV2 struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Transaction *Transaction `protobuf:"bytes,1,opt,name=Transaction,proto3" json:"Transaction,omitempty"` + FeeInfo *FeeInfo `protobuf:"bytes,2,opt,name=FeeInfo,proto3" json:"FeeInfo,omitempty"` + ExecutionOrder uint32 `protobuf:"varint,3,opt,name=ExecutionOrder,proto3" json:"ExecutionOrder,omitempty"` + SmartContractResults *SCRInfo `protobuf:"bytes,4,opt,name=SmartContractResults,proto3" json:"SmartContractResults,omitempty"` + Logs []*Log `protobuf:"bytes,5,rep,name=Logs,proto3" json:"Logs,omitempty"` +} + +func (x *TxInfoV2) Reset() { + *x = TxInfoV2{} + if protoimpl.UnsafeEnabled { + mi := &file_hyperOutportBlock_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TxInfoV2) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TxInfoV2) ProtoMessage() {} + +func (x *TxInfoV2) ProtoReflect() protoreflect.Message { + mi := &file_hyperOutportBlock_proto_msgTypes[20] + 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 TxInfoV2.ProtoReflect.Descriptor instead. +func (*TxInfoV2) Descriptor() ([]byte, []int) { + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{20} +} + +func (x *TxInfoV2) GetTransaction() *Transaction { + if x != nil { + return x.Transaction + } + return nil +} + +func (x *TxInfoV2) GetFeeInfo() *FeeInfo { + if x != nil { + return x.FeeInfo + } + return nil +} + +func (x *TxInfoV2) GetExecutionOrder() uint32 { + if x != nil { + return x.ExecutionOrder + } + return 0 +} + +func (x *TxInfoV2) GetSmartContractResults() *SCRInfo { + if x != nil { + return x.SmartContractResults + } + return nil +} + +func (x *TxInfoV2) GetLogs() []*Log { + if x != nil { + return x.Logs + } + return nil +} + type SCRInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2132,7 +2425,7 @@ type SCRInfo struct { func (x *SCRInfo) Reset() { *x = SCRInfo{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[18] + mi := &file_hyperOutportBlock_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2145,7 +2438,7 @@ func (x *SCRInfo) String() string { func (*SCRInfo) ProtoMessage() {} func (x *SCRInfo) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[18] + mi := &file_hyperOutportBlock_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2158,7 +2451,7 @@ func (x *SCRInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use SCRInfo.ProtoReflect.Descriptor instead. func (*SCRInfo) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{18} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{21} } func (x *SCRInfo) GetSmartContractResult() *SmartContractResult { @@ -2194,7 +2487,7 @@ type LogData struct { func (x *LogData) Reset() { *x = LogData{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[19] + mi := &file_hyperOutportBlock_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2207,7 +2500,7 @@ func (x *LogData) String() string { func (*LogData) ProtoMessage() {} func (x *LogData) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[19] + mi := &file_hyperOutportBlock_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2220,7 +2513,7 @@ func (x *LogData) ProtoReflect() protoreflect.Message { // Deprecated: Use LogData.ProtoReflect.Descriptor instead. func (*LogData) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{19} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{22} } func (x *LogData) GetTxHash() string { @@ -2249,7 +2542,7 @@ type RewardInfo struct { func (x *RewardInfo) Reset() { *x = RewardInfo{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[20] + mi := &file_hyperOutportBlock_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2262,7 +2555,7 @@ func (x *RewardInfo) String() string { func (*RewardInfo) ProtoMessage() {} func (x *RewardInfo) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[20] + mi := &file_hyperOutportBlock_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2275,7 +2568,7 @@ func (x *RewardInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use RewardInfo.ProtoReflect.Descriptor instead. func (*RewardInfo) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{20} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{23} } func (x *RewardInfo) GetReward() *RewardTx { @@ -2306,7 +2599,7 @@ type HeaderGasConsumption struct { func (x *HeaderGasConsumption) Reset() { *x = HeaderGasConsumption{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[21] + mi := &file_hyperOutportBlock_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2319,7 +2612,7 @@ func (x *HeaderGasConsumption) String() string { func (*HeaderGasConsumption) ProtoMessage() {} func (x *HeaderGasConsumption) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[21] + mi := &file_hyperOutportBlock_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2332,7 +2625,7 @@ func (x *HeaderGasConsumption) ProtoReflect() protoreflect.Message { // Deprecated: Use HeaderGasConsumption.ProtoReflect.Descriptor instead. func (*HeaderGasConsumption) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{21} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{24} } func (x *HeaderGasConsumption) GetGasProvided() uint64 { @@ -2375,7 +2668,7 @@ type ValidatorRatingInfo struct { func (x *ValidatorRatingInfo) Reset() { *x = ValidatorRatingInfo{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[22] + mi := &file_hyperOutportBlock_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2388,7 +2681,7 @@ func (x *ValidatorRatingInfo) String() string { func (*ValidatorRatingInfo) ProtoMessage() {} func (x *ValidatorRatingInfo) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[22] + mi := &file_hyperOutportBlock_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2401,7 +2694,7 @@ func (x *ValidatorRatingInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ValidatorRatingInfo.ProtoReflect.Descriptor instead. func (*ValidatorRatingInfo) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{22} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{25} } func (x *ValidatorRatingInfo) GetPublicKey() string { @@ -2431,7 +2724,7 @@ type ValidatorsRating struct { func (x *ValidatorsRating) Reset() { *x = ValidatorsRating{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[23] + mi := &file_hyperOutportBlock_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2444,7 +2737,7 @@ func (x *ValidatorsRating) String() string { func (*ValidatorsRating) ProtoMessage() {} func (x *ValidatorsRating) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[23] + mi := &file_hyperOutportBlock_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2457,7 +2750,7 @@ func (x *ValidatorsRating) ProtoReflect() protoreflect.Message { // Deprecated: Use ValidatorsRating.ProtoReflect.Descriptor instead. func (*ValidatorsRating) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{23} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{26} } func (x *ValidatorsRating) GetShardID() uint32 { @@ -2497,7 +2790,7 @@ type RoundInfo struct { func (x *RoundInfo) Reset() { *x = RoundInfo{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[24] + mi := &file_hyperOutportBlock_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2510,7 +2803,7 @@ func (x *RoundInfo) String() string { func (*RoundInfo) ProtoMessage() {} func (x *RoundInfo) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[24] + mi := &file_hyperOutportBlock_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2523,7 +2816,7 @@ func (x *RoundInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use RoundInfo.ProtoReflect.Descriptor instead. func (*RoundInfo) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{24} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{27} } func (x *RoundInfo) GetRound() uint64 { @@ -2580,7 +2873,7 @@ type RoundsInfo struct { func (x *RoundsInfo) Reset() { *x = RoundsInfo{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[25] + mi := &file_hyperOutportBlock_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2593,7 +2886,7 @@ func (x *RoundsInfo) String() string { func (*RoundsInfo) ProtoMessage() {} func (x *RoundsInfo) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[25] + mi := &file_hyperOutportBlock_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2606,7 +2899,7 @@ func (x *RoundsInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use RoundsInfo.ProtoReflect.Descriptor instead. func (*RoundsInfo) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{25} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{28} } func (x *RoundsInfo) GetShardID() uint32 { @@ -2634,7 +2927,7 @@ type PubKeys struct { func (x *PubKeys) Reset() { *x = PubKeys{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[26] + mi := &file_hyperOutportBlock_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2647,7 +2940,7 @@ func (x *PubKeys) String() string { func (*PubKeys) ProtoMessage() {} func (x *PubKeys) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[26] + mi := &file_hyperOutportBlock_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2660,7 +2953,7 @@ func (x *PubKeys) ProtoReflect() protoreflect.Message { // Deprecated: Use PubKeys.ProtoReflect.Descriptor instead. func (*PubKeys) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{26} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{29} } func (x *PubKeys) GetKeys() [][]byte { @@ -2683,7 +2976,7 @@ type ValidatorsPubKeys struct { func (x *ValidatorsPubKeys) Reset() { *x = ValidatorsPubKeys{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[27] + mi := &file_hyperOutportBlock_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2696,7 +2989,7 @@ func (x *ValidatorsPubKeys) String() string { func (*ValidatorsPubKeys) ProtoMessage() {} func (x *ValidatorsPubKeys) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[27] + mi := &file_hyperOutportBlock_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2709,7 +3002,7 @@ func (x *ValidatorsPubKeys) ProtoReflect() protoreflect.Message { // Deprecated: Use ValidatorsPubKeys.ProtoReflect.Descriptor instead. func (*ValidatorsPubKeys) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{27} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{30} } func (x *ValidatorsPubKeys) GetShardID() uint32 { @@ -2746,7 +3039,7 @@ type Accounts struct { func (x *Accounts) Reset() { *x = Accounts{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[28] + mi := &file_hyperOutportBlock_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2759,7 +3052,7 @@ func (x *Accounts) String() string { func (*Accounts) ProtoMessage() {} func (x *Accounts) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[28] + mi := &file_hyperOutportBlock_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2772,7 +3065,7 @@ func (x *Accounts) ProtoReflect() protoreflect.Message { // Deprecated: Use Accounts.ProtoReflect.Descriptor instead. func (*Accounts) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{28} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{31} } func (x *Accounts) GetShardID() uint32 { @@ -2808,7 +3101,7 @@ type FinalizedBlock struct { func (x *FinalizedBlock) Reset() { *x = FinalizedBlock{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[29] + mi := &file_hyperOutportBlock_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2821,7 +3114,7 @@ func (x *FinalizedBlock) String() string { func (*FinalizedBlock) ProtoMessage() {} func (x *FinalizedBlock) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[29] + mi := &file_hyperOutportBlock_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2834,7 +3127,7 @@ func (x *FinalizedBlock) ProtoReflect() protoreflect.Message { // Deprecated: Use FinalizedBlock.ProtoReflect.Descriptor instead. func (*FinalizedBlock) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{29} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{32} } func (x *FinalizedBlock) GetShardID() uint32 { @@ -2862,7 +3155,7 @@ type Shard struct { func (x *Shard) Reset() { *x = Shard{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[30] + mi := &file_hyperOutportBlock_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2875,7 +3168,7 @@ func (x *Shard) String() string { func (*Shard) ProtoMessage() {} func (x *Shard) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[30] + mi := &file_hyperOutportBlock_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2888,7 +3181,7 @@ func (x *Shard) ProtoReflect() protoreflect.Message { // Deprecated: Use Shard.ProtoReflect.Descriptor instead. func (*Shard) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{30} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{33} } func (x *Shard) GetShardID() uint32 { @@ -2909,7 +3202,7 @@ type Body struct { func (x *Body) Reset() { *x = Body{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[31] + mi := &file_hyperOutportBlock_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2922,7 +3215,7 @@ func (x *Body) String() string { func (*Body) ProtoMessage() {} func (x *Body) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[31] + mi := &file_hyperOutportBlock_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2935,7 +3228,7 @@ func (x *Body) ProtoReflect() protoreflect.Message { // Deprecated: Use Body.ProtoReflect.Descriptor instead. func (*Body) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{31} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{34} } func (x *Body) GetMiniBlocks() []*MiniBlock { @@ -2960,7 +3253,7 @@ type MiniBlock struct { func (x *MiniBlock) Reset() { *x = MiniBlock{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[32] + mi := &file_hyperOutportBlock_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2973,7 +3266,7 @@ func (x *MiniBlock) String() string { func (*MiniBlock) ProtoMessage() {} func (x *MiniBlock) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[32] + mi := &file_hyperOutportBlock_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2986,7 +3279,7 @@ func (x *MiniBlock) ProtoReflect() protoreflect.Message { // Deprecated: Use MiniBlock.ProtoReflect.Descriptor instead. func (*MiniBlock) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{32} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{35} } func (x *MiniBlock) GetTxHashes() [][]byte { @@ -3050,7 +3343,7 @@ type Transaction struct { func (x *Transaction) Reset() { *x = Transaction{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[33] + mi := &file_hyperOutportBlock_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3063,7 +3356,7 @@ func (x *Transaction) String() string { func (*Transaction) ProtoMessage() {} func (x *Transaction) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[33] + mi := &file_hyperOutportBlock_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3076,7 +3369,7 @@ func (x *Transaction) ProtoReflect() protoreflect.Message { // Deprecated: Use Transaction.ProtoReflect.Descriptor instead. func (*Transaction) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{33} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{36} } func (x *Transaction) GetNonce() uint64 { @@ -3210,7 +3503,7 @@ type SmartContractResult struct { func (x *SmartContractResult) Reset() { *x = SmartContractResult{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[34] + mi := &file_hyperOutportBlock_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3223,7 +3516,7 @@ func (x *SmartContractResult) String() string { func (*SmartContractResult) ProtoMessage() {} func (x *SmartContractResult) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[34] + mi := &file_hyperOutportBlock_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3236,7 +3529,7 @@ func (x *SmartContractResult) ProtoReflect() protoreflect.Message { // Deprecated: Use SmartContractResult.ProtoReflect.Descriptor instead. func (*SmartContractResult) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{34} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{37} } func (x *SmartContractResult) GetNonce() uint64 { @@ -3363,7 +3656,7 @@ type Log struct { func (x *Log) Reset() { *x = Log{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[35] + mi := &file_hyperOutportBlock_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3376,7 +3669,7 @@ func (x *Log) String() string { func (*Log) ProtoMessage() {} func (x *Log) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[35] + mi := &file_hyperOutportBlock_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3389,7 +3682,7 @@ func (x *Log) ProtoReflect() protoreflect.Message { // Deprecated: Use Log.ProtoReflect.Descriptor instead. func (*Log) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{35} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{38} } func (x *Log) GetAddress() []byte { @@ -3421,7 +3714,7 @@ type Event struct { func (x *Event) Reset() { *x = Event{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[36] + mi := &file_hyperOutportBlock_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3434,7 +3727,7 @@ func (x *Event) String() string { func (*Event) ProtoMessage() {} func (x *Event) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[36] + mi := &file_hyperOutportBlock_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3447,7 +3740,7 @@ func (x *Event) ProtoReflect() protoreflect.Message { // Deprecated: Use Event.ProtoReflect.Descriptor instead. func (*Event) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{36} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{39} } func (x *Event) GetAddress() []byte { @@ -3499,7 +3792,7 @@ type RewardTx struct { func (x *RewardTx) Reset() { *x = RewardTx{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[37] + mi := &file_hyperOutportBlock_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3512,7 +3805,7 @@ func (x *RewardTx) String() string { func (*RewardTx) ProtoMessage() {} func (x *RewardTx) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[37] + mi := &file_hyperOutportBlock_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3525,7 +3818,7 @@ func (x *RewardTx) ProtoReflect() protoreflect.Message { // Deprecated: Use RewardTx.ProtoReflect.Descriptor instead. func (*RewardTx) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{37} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{40} } func (x *RewardTx) GetRound() uint64 { @@ -3571,7 +3864,7 @@ type AlteredAccount struct { func (x *AlteredAccount) Reset() { *x = AlteredAccount{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[38] + mi := &file_hyperOutportBlock_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3584,7 +3877,7 @@ func (x *AlteredAccount) String() string { func (*AlteredAccount) ProtoMessage() {} func (x *AlteredAccount) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[38] + mi := &file_hyperOutportBlock_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3597,7 +3890,7 @@ func (x *AlteredAccount) ProtoReflect() protoreflect.Message { // Deprecated: Use AlteredAccount.ProtoReflect.Descriptor instead. func (*AlteredAccount) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{38} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{41} } func (x *AlteredAccount) GetAddress() string { @@ -3651,7 +3944,7 @@ type AccountTokenData struct { func (x *AccountTokenData) Reset() { *x = AccountTokenData{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[39] + mi := &file_hyperOutportBlock_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3664,7 +3957,7 @@ func (x *AccountTokenData) String() string { func (*AccountTokenData) ProtoMessage() {} func (x *AccountTokenData) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[39] + mi := &file_hyperOutportBlock_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3677,7 +3970,7 @@ func (x *AccountTokenData) ProtoReflect() protoreflect.Message { // Deprecated: Use AccountTokenData.ProtoReflect.Descriptor instead. func (*AccountTokenData) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{39} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{42} } func (x *AccountTokenData) GetNonce() uint64 { @@ -3739,7 +4032,7 @@ type TokenMetaData struct { func (x *TokenMetaData) Reset() { *x = TokenMetaData{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[40] + mi := &file_hyperOutportBlock_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3752,7 +4045,7 @@ func (x *TokenMetaData) String() string { func (*TokenMetaData) ProtoMessage() {} func (x *TokenMetaData) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[40] + mi := &file_hyperOutportBlock_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3765,7 +4058,7 @@ func (x *TokenMetaData) ProtoReflect() protoreflect.Message { // Deprecated: Use TokenMetaData.ProtoReflect.Descriptor instead. func (*TokenMetaData) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{40} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{43} } func (x *TokenMetaData) GetNonce() uint64 { @@ -3828,7 +4121,7 @@ type AdditionalAccountTokenData struct { func (x *AdditionalAccountTokenData) Reset() { *x = AdditionalAccountTokenData{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[41] + mi := &file_hyperOutportBlock_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3841,7 +4134,7 @@ func (x *AdditionalAccountTokenData) String() string { func (*AdditionalAccountTokenData) ProtoMessage() {} func (x *AdditionalAccountTokenData) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[41] + mi := &file_hyperOutportBlock_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3854,7 +4147,7 @@ func (x *AdditionalAccountTokenData) ProtoReflect() protoreflect.Message { // Deprecated: Use AdditionalAccountTokenData.ProtoReflect.Descriptor instead. func (*AdditionalAccountTokenData) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{41} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{44} } func (x *AdditionalAccountTokenData) GetIsNFTCreate() bool { @@ -3882,7 +4175,7 @@ type AdditionalAccountData struct { func (x *AdditionalAccountData) Reset() { *x = AdditionalAccountData{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[42] + mi := &file_hyperOutportBlock_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3895,7 +4188,7 @@ func (x *AdditionalAccountData) String() string { func (*AdditionalAccountData) ProtoMessage() {} func (x *AdditionalAccountData) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[42] + mi := &file_hyperOutportBlock_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3908,7 +4201,7 @@ func (x *AdditionalAccountData) ProtoReflect() protoreflect.Message { // Deprecated: Use AdditionalAccountData.ProtoReflect.Descriptor instead. func (*AdditionalAccountData) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{42} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{45} } func (x *AdditionalAccountData) GetIsSender() bool { @@ -3981,7 +4274,7 @@ type Receipt struct { func (x *Receipt) Reset() { *x = Receipt{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[43] + mi := &file_hyperOutportBlock_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3994,7 +4287,7 @@ func (x *Receipt) String() string { func (*Receipt) ProtoMessage() {} func (x *Receipt) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[43] + mi := &file_hyperOutportBlock_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4007,7 +4300,7 @@ func (x *Receipt) ProtoReflect() protoreflect.Message { // Deprecated: Use Receipt.ProtoReflect.Descriptor instead. func (*Receipt) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{43} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{46} } func (x *Receipt) GetValue() []byte { @@ -4049,7 +4342,7 @@ type BigInt struct { func (x *BigInt) Reset() { *x = BigInt{} if protoimpl.UnsafeEnabled { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[44] + mi := &file_hyperOutportBlock_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4062,7 +4355,7 @@ func (x *BigInt) String() string { func (*BigInt) ProtoMessage() {} func (x *BigInt) ProtoReflect() protoreflect.Message { - mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[44] + mi := &file_hyperOutportBlock_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4075,7 +4368,7 @@ func (x *BigInt) ProtoReflect() protoreflect.Message { // Deprecated: Use BigInt.ProtoReflect.Descriptor instead. func (*BigInt) Descriptor() ([]byte, []int) { - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{44} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{47} } func (x *BigInt) GetBytes() []byte { @@ -4085,949 +4378,1083 @@ func (x *BigInt) GetBytes() []byte { return nil } -var File_data_hyperOutportBlocks_hyperOutportBlock_proto protoreflect.FileDescriptor - -var file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDesc = []byte{ - 0x0a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x68, 0x79, 0x70, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, - 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x2f, 0x68, 0x79, 0x70, 0x65, 0x72, 0x4f, - 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x12, 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xbd, 0x01, 0x0a, 0x11, 0x48, 0x79, 0x70, - 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x43, - 0x0a, 0x10, 0x4d, 0x65, 0x74, 0x61, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x52, 0x10, 0x4d, 0x65, 0x74, 0x61, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x12, 0x63, 0x0a, 0x1b, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x61, - 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x1b, 0x4e, 0x6f, 0x74, - 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x4f, 0x75, 0x74, - 0x70, 0x6f, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x22, 0x8c, 0x01, 0x0a, 0x1a, 0x4e, 0x6f, 0x74, - 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, - 0x6f, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x30, 0x0a, 0x13, 0x4e, 0x6f, 0x74, 0x61, 0x72, - 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3c, 0x0a, 0x0c, 0x4f, 0x75, 0x74, - 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, - 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x0c, 0x4f, 0x75, 0x74, 0x70, 0x6f, - 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x9c, 0x05, 0x0a, 0x10, 0x4d, 0x65, 0x74, 0x61, - 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x18, 0x0a, 0x07, - 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, - 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x32, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, - 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x52, - 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x40, 0x0a, 0x0f, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x0f, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x4f, 0x0a, 0x14, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, - 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, - 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x56, 0x0a, - 0x0f, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, - 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, - 0x65, 0x74, 0x61, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, - 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, - 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, - 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x16, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x26, 0x0a, - 0x0e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x53, - 0x68, 0x61, 0x72, 0x64, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, - 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0e, 0x53, - 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x12, 0x36, 0x0a, - 0x16, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x48, - 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, - 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x15, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, - 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x1a, 0x59, 0x0a, 0x14, 0x41, - 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x6c, 0x74, - 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x9a, 0x05, 0x0a, 0x11, 0x53, 0x68, 0x61, 0x72, 0x64, - 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x18, 0x0a, 0x07, - 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, - 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x2e, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, - 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x40, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x4f, 0x0a, 0x14, 0x48, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, - 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x57, 0x0a, 0x0f, 0x41, 0x6c, 0x74, - 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, - 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x41, 0x6c, 0x74, - 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x0f, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x16, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x53, 0x68, 0x61, 0x72, - 0x64, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x64, - 0x65, 0x78, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0e, 0x53, 0x69, 0x67, 0x6e, - 0x65, 0x72, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x48, 0x69, - 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, - 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x48, 0x69, 0x67, 0x68, - 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x6f, 0x6e, - 0x63, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, - 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x15, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x1a, 0x59, 0x0a, 0x14, 0x41, 0x6c, 0x74, 0x65, - 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, +var File_hyperOutportBlock_proto protoreflect.FileDescriptor + +var file_hyperOutportBlock_proto_rawDesc = []byte{ + 0x0a, 0x17, 0x68, 0x79, 0x70, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x22, 0xbd, 0x01, 0x0a, 0x11, 0x48, 0x79, 0x70, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, + 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x43, 0x0a, 0x10, 0x4d, 0x65, 0x74, 0x61, 0x4f, 0x75, + 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x4f, 0x75, 0x74, + 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x10, 0x4d, 0x65, 0x74, 0x61, 0x4f, + 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x63, 0x0a, 0x1b, 0x4e, + 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x4f, + 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, + 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x1b, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x73, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, + 0x22, 0x8c, 0x01, 0x0a, 0x1a, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x30, 0x0a, 0x13, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x4e, 0x6f, + 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, + 0x68, 0x12, 0x3c, 0x0a, 0x0c, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x53, 0x68, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x52, 0x0c, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, + 0x9c, 0x05, 0x0a, 0x10, 0x4d, 0x65, 0x74, 0x61, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x32, + 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x40, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, + 0x6f, 0x6f, 0x6c, 0x52, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x4f, 0x0a, 0x14, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, + 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x14, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x56, 0x0a, 0x0f, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x4f, 0x75, 0x74, 0x70, 0x6f, + 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x41, 0x6c, + 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x36, 0x0a, + 0x16, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x16, 0x4e, + 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x48, + 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, + 0x66, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x12, 0x26, 0x0a, + 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x18, + 0x08, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, + 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, + 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x34, 0x0a, + 0x15, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x15, 0x48, 0x69, + 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, + 0x61, 0x73, 0x68, 0x1a, 0x59, 0x0a, 0x14, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2b, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x9a, + 0x05, 0x0a, 0x11, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x2e, + 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x40, + 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, + 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x52, + 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, + 0x12, 0x4f, 0x0a, 0x14, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, + 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, + 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x57, 0x0a, 0x0f, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x41, 0x6c, 0x74, 0x65, 0x72, + 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x4e, 0x6f, + 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x48, 0x61, + 0x73, 0x68, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x16, 0x4e, 0x6f, 0x74, 0x61, + 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x48, 0x61, 0x73, 0x68, + 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x53, 0x68, + 0x61, 0x72, 0x64, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x4f, 0x66, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x69, + 0x67, 0x6e, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, + 0x28, 0x04, 0x52, 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x65, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, + 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x16, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x48, 0x69, + 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, + 0x61, 0x73, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x15, 0x48, 0x69, 0x67, 0x68, 0x65, + 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, + 0x1a, 0x59, 0x0a, 0x14, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xa0, 0x05, 0x0a, 0x13, + 0x53, 0x68, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x56, 0x32, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x2e, 0x0a, + 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, + 0x74, 0x61, 0x52, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x42, 0x0a, + 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x56, 0x32, + 0x52, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, + 0x6c, 0x12, 0x4f, 0x0a, 0x14, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, + 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, + 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x48, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x59, 0x0a, 0x0f, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x32, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x41, 0x6c, + 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x36, 0x0a, + 0x16, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x16, 0x4e, + 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x48, + 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, + 0x66, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x12, 0x26, 0x0a, + 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x18, + 0x08, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, + 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, + 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x34, 0x0a, + 0x15, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x15, 0x48, 0x69, + 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, + 0x61, 0x73, 0x68, 0x1a, 0x59, 0x0a, 0x14, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2b, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xc6, + 0x06, 0x0a, 0x11, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, + 0x6f, 0x6c, 0x56, 0x32, 0x12, 0x4e, 0x0a, 0x0c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, + 0x6f, 0x6c, 0x56, 0x32, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3f, 0x0a, 0x07, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x56, 0x32, 0x2e, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x42, 0x0a, 0x08, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x56, + 0x32, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x08, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x12, 0x48, 0x0a, 0x0a, 0x49, 0x6e, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x56, 0x32, 0x2e, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, + 0x78, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x54, 0x78, 0x73, 0x12, 0x22, 0x0a, 0x04, 0x4c, 0x6f, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x6f, 0x67, 0x44, 0x61, 0x74, + 0x61, 0x52, 0x04, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x52, 0x0a, 0x24, 0x53, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x53, 0x43, 0x52, 0x53, + 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x24, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, + 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x53, 0x43, 0x52, 0x53, 0x48, 0x61, 0x73, 0x68, + 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x5e, 0x0a, 0x2a, 0x53, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, + 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, + 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x2a, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x65, 0x64, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x48, 0x61, 0x73, 0x68, + 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0x50, 0x0a, 0x11, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, - 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x22, 0xdc, 0x06, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x14, - 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, - 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x50, 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, - 0x12, 0x22, 0x0a, 0x0c, 0x50, 0x72, 0x65, 0x76, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x50, 0x72, 0x65, 0x76, 0x52, 0x61, 0x6e, 0x64, - 0x53, 0x65, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, - 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x42, 0x69, 0x74, 0x6d, 0x61, - 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, - 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, - 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, - 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x14, - 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, - 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x31, 0x0a, 0x0d, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0d, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, - 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x4c, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, - 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x42, 0x0a, 0x10, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x10, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x33, 0x0a, 0x0b, 0x50, 0x65, 0x65, - 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x52, 0x0b, 0x50, 0x65, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x1a, - 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x08, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x28, 0x0a, 0x0f, 0x4d, 0x65, - 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x10, 0x20, - 0x03, 0x28, 0x0c, 0x52, 0x0f, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, - 0x73, 0x68, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x54, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2e, - 0x0a, 0x12, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, - 0x48, 0x61, 0x73, 0x68, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, 0x45, 0x70, 0x6f, 0x63, - 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x61, 0x73, 0x68, 0x12, 0x22, - 0x0a, 0x0c, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x48, 0x61, 0x73, 0x68, 0x18, 0x13, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x48, 0x61, - 0x73, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x18, 0x14, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x07, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x12, 0x28, 0x0a, 0x0f, - 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, - 0x15, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, - 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x0f, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, - 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, - 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, - 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x64, 0x22, 0xac, 0x07, 0x0a, 0x0a, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x14, 0x0a, - 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x6f, - 0x75, 0x6e, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, - 0x70, 0x12, 0x2e, 0x0a, 0x09, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x05, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x68, 0x61, - 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x2b, 0x0a, 0x08, 0x50, 0x65, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x06, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x65, 0x65, 0x72, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x50, 0x65, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, - 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x28, 0x0a, 0x0f, - 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x53, 0x69, 0x67, - 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, - 0x73, 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x50, - 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x12, 0x1a, 0x0a, 0x08, - 0x50, 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, - 0x50, 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x50, 0x72, 0x65, 0x76, - 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, - 0x50, 0x72, 0x65, 0x76, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, - 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, - 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x74, - 0x48, 0x61, 0x73, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x6f, 0x6f, 0x74, - 0x48, 0x61, 0x73, 0x68, 0x12, 0x36, 0x0a, 0x16, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0e, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x16, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, - 0x74, 0x61, 0x74, 0x73, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x42, 0x0a, 0x10, - 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, - 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, - 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x10, - 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, - 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x48, 0x61, 0x73, 0x68, - 0x18, 0x11, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, - 0x48, 0x61, 0x73, 0x68, 0x12, 0x31, 0x0a, 0x0a, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x0a, 0x45, 0x70, 0x6f, - 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x61, 0x69, 0x6e, - 0x49, 0x44, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, - 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x53, 0x6f, 0x66, 0x74, - 0x77, 0x61, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x41, - 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x18, 0x15, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, - 0x64, 0x46, 0x65, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, - 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x49, 0x6e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, - 0x16, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x16, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, - 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x49, 0x6e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x24, 0x0a, - 0x0d, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x18, 0x17, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, - 0x65, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x44, 0x65, 0x76, 0x46, 0x65, 0x65, 0x73, 0x49, 0x6e, - 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x44, 0x65, 0x76, - 0x46, 0x65, 0x65, 0x73, 0x49, 0x6e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x54, - 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x54, 0x78, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x64, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x64, 0x22, 0xcc, 0x01, 0x0a, 0x0f, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x04, 0x48, 0x61, 0x73, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, - 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, - 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x78, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x54, 0x78, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, - 0x22, 0x46, 0x0a, 0x0a, 0x50, 0x65, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, - 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, - 0x64, 0x44, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x53, 0x68, 0x61, - 0x72, 0x64, 0x49, 0x64, 0x44, 0x65, 0x73, 0x74, 0x22, 0xb3, 0x04, 0x0a, 0x09, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, - 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, - 0x12, 0x25, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, - 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x48, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x48, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x48, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1f, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x42, 0x6f, - 0x64, 0x79, 0x52, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x44, 0x0a, 0x14, 0x49, 0x6e, 0x74, 0x72, + 0x65, 0x79, 0x12, 0x25, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, + 0x56, 0x32, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x4d, 0x0a, + 0x0c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x27, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x4b, 0x0a, 0x0d, + 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x24, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x4c, 0x0a, 0x0f, 0x49, 0x6e, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x23, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xdc, 0x06, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x65, 0x76, + 0x48, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x50, 0x72, 0x65, 0x76, + 0x48, 0x61, 0x73, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x50, 0x72, 0x65, 0x76, 0x52, 0x61, 0x6e, 0x64, + 0x53, 0x65, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x50, 0x72, 0x65, 0x76, + 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x64, + 0x53, 0x65, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x64, + 0x53, 0x65, 0x65, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x42, + 0x69, 0x74, 0x6d, 0x61, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x50, 0x75, 0x62, + 0x4b, 0x65, 0x79, 0x73, 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, + 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, + 0x72, 0x64, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, + 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, + 0x6d, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, + 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x31, + 0x0a, 0x0d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x0d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, + 0x28, 0x0a, 0x0f, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x42, 0x0a, 0x10, 0x4d, 0x69, 0x6e, + 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x69, 0x6e, 0x69, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x10, 0x4d, 0x69, 0x6e, + 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x33, 0x0a, + 0x0b, 0x50, 0x65, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0b, 0x50, 0x65, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0f, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x28, + 0x0a, 0x0f, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x65, + 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0f, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x78, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x54, 0x78, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x4d, 0x65, 0x74, 0x61, 0x48, 0x61, 0x73, 0x68, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, + 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x61, + 0x73, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x48, 0x61, + 0x73, 0x68, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, + 0x74, 0x73, 0x48, 0x61, 0x73, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, + 0x44, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, + 0x12, 0x28, 0x0a, 0x0f, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x53, 0x6f, 0x66, 0x74, 0x77, + 0x61, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x41, 0x63, + 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x18, 0x16, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, + 0x46, 0x65, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, + 0x72, 0x46, 0x65, 0x65, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x44, 0x65, 0x76, + 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x22, 0xac, 0x07, 0x0a, 0x0a, 0x4d, 0x65, 0x74, 0x61, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x45, + 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, 0x70, 0x6f, 0x63, + 0x68, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, + 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x54, 0x69, 0x6d, 0x65, + 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x2e, 0x0a, 0x09, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x6e, + 0x66, 0x6f, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x53, 0x68, 0x61, 0x72, + 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2b, 0x0a, 0x08, 0x50, 0x65, 0x65, 0x72, 0x49, 0x6e, 0x66, + 0x6f, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x50, 0x65, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x50, 0x65, 0x65, 0x72, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x12, 0x28, 0x0a, 0x0f, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x4c, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x75, + 0x62, 0x4b, 0x65, 0x79, 0x73, 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x0d, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, + 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x08, 0x50, 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x12, 0x22, 0x0a, 0x0c, + 0x50, 0x72, 0x65, 0x76, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x0c, 0x50, 0x72, 0x65, 0x76, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, + 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, + 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, + 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x36, 0x0a, 0x16, 0x56, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, + 0x73, 0x68, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x16, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, + 0x12, 0x42, 0x0a, 0x10, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x52, 0x10, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, + 0x48, 0x61, 0x73, 0x68, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x52, 0x65, 0x63, 0x65, + 0x69, 0x70, 0x74, 0x73, 0x48, 0x61, 0x73, 0x68, 0x12, 0x31, 0x0a, 0x0a, 0x45, 0x70, 0x6f, 0x63, + 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, + 0x0a, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x43, + 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x43, 0x68, + 0x61, 0x69, 0x6e, 0x49, 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, + 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, + 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x28, 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, + 0x65, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, + 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x41, 0x63, 0x63, + 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x49, 0x6e, 0x45, 0x70, + 0x6f, 0x63, 0x68, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x16, 0x41, 0x63, 0x63, 0x75, 0x6d, + 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x49, 0x6e, 0x45, 0x70, 0x6f, 0x63, + 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, + 0x65, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, + 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x44, 0x65, 0x76, 0x46, 0x65, + 0x65, 0x73, 0x49, 0x6e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x0e, 0x44, 0x65, 0x76, 0x46, 0x65, 0x65, 0x73, 0x49, 0x6e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, + 0x18, 0x0a, 0x07, 0x54, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x07, 0x54, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x64, 0x22, 0xcc, 0x01, 0x0a, 0x0f, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x61, 0x73, + 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x48, 0x61, 0x73, 0x68, 0x12, 0x24, 0x0a, + 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, + 0x64, 0x49, 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x53, + 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x52, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x18, 0x0a, + 0x07, 0x54, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, + 0x54, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x64, 0x22, 0x46, 0x0a, 0x0a, 0x50, 0x65, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x06, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x68, + 0x61, 0x72, 0x64, 0x49, 0x64, 0x44, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0b, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x64, 0x44, 0x65, 0x73, 0x74, 0x22, 0xb3, 0x04, 0x0a, + 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, + 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, + 0x72, 0x64, 0x49, 0x44, 0x12, 0x25, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1f, 0x0a, 0x04, 0x42, + 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x44, 0x0a, 0x14, + 0x49, 0x6e, 0x74, 0x72, 0x61, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x14, 0x49, 0x6e, + 0x74, 0x72, 0x61, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x52, + 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x53, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, + 0x12, 0x3a, 0x0a, 0x18, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x41, 0x63, 0x63, + 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x18, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x41, 0x63, 0x63, + 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x16, + 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, + 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x16, 0x53, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, + 0x46, 0x65, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x64, 0x47, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, + 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x15, 0x53, 0x63, 0x68, 0x65, + 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, + 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x64, 0x47, 0x61, 0x73, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x12, 0x32, + 0x0a, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x52, 0x65, + 0x66, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x53, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x52, 0x65, 0x66, 0x75, 0x6e, 0x64, + 0x65, 0x64, 0x22, 0xbb, 0x04, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x29, + 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1f, 0x0a, 0x04, 0x42, 0x6f, 0x64, + 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x44, 0x0a, 0x14, 0x49, 0x6e, + 0x74, 0x72, 0x61, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x14, 0x49, 0x6e, 0x74, 0x72, 0x61, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, - 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, - 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x14, 0x49, 0x6e, 0x74, 0x72, 0x61, 0x53, - 0x68, 0x61, 0x72, 0x64, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x2c, - 0x0a, 0x11, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x48, - 0x61, 0x73, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x53, 0x63, 0x68, 0x65, 0x64, - 0x75, 0x6c, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3a, 0x0a, 0x18, - 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, - 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x18, - 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, - 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x53, 0x63, 0x68, 0x65, + 0x12, 0x2c, 0x0a, 0x11, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x52, 0x6f, 0x6f, + 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x53, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3a, + 0x0a, 0x18, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x41, 0x63, 0x63, 0x75, 0x6d, + 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x18, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x41, 0x63, 0x63, 0x75, 0x6d, + 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x53, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, + 0x46, 0x65, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x16, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, - 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x16, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, - 0x6c, 0x65, 0x64, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, - 0x12, 0x32, 0x0a, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, - 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, - 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x15, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, - 0x64, 0x47, 0x61, 0x73, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x15, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, - 0x73, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x53, 0x63, - 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x52, 0x65, 0x66, 0x75, 0x6e, 0x64, - 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, - 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x52, 0x65, 0x66, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x22, 0xbb, - 0x04, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x29, 0x0a, 0x06, 0x48, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, - 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1f, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x42, 0x6f, 0x64, 0x79, - 0x52, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x44, 0x0a, 0x14, 0x49, 0x6e, 0x74, 0x72, 0x61, 0x53, - 0x68, 0x61, 0x72, 0x64, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x06, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x69, 0x6e, - 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x14, 0x49, 0x6e, 0x74, 0x72, 0x61, 0x53, 0x68, 0x61, - 0x72, 0x64, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x2c, 0x0a, 0x11, - 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, - 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, - 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3a, 0x0a, 0x18, 0x53, 0x63, - 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, - 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x18, 0x53, 0x63, - 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, - 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, - 0x6c, 0x65, 0x64, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x16, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, - 0x64, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x12, 0x32, - 0x0a, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x53, 0x63, - 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x64, 0x12, 0x34, 0x0a, 0x15, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, - 0x61, 0x73, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x15, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x50, - 0x65, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x53, 0x63, 0x68, 0x65, + 0x65, 0x73, 0x12, 0x32, 0x0a, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, + 0x61, 0x73, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x50, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x15, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, + 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, + 0x47, 0x61, 0x73, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x14, + 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x52, 0x65, 0x66, 0x75, + 0x6e, 0x64, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x52, 0x65, 0x66, 0x75, 0x6e, 0x64, 0x65, 0x64, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, - 0x64, 0x47, 0x61, 0x73, 0x52, 0x65, 0x66, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x22, 0x97, 0x04, 0x0a, - 0x09, 0x53, 0x68, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, - 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, - 0x72, 0x64, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, - 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x48, 0x61, 0x73, 0x68, 0x12, 0x4c, 0x0a, 0x15, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4d, 0x69, 0x6e, - 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x69, 0x6e, 0x69, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x15, 0x53, 0x68, 0x61, - 0x72, 0x64, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x50, 0x72, 0x65, 0x76, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, - 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x50, 0x72, 0x65, 0x76, 0x52, 0x61, - 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, - 0x73, 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x50, - 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x12, 0x1c, 0x0a, 0x09, - 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x78, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x54, 0x78, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, - 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x50, 0x72, - 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x32, 0x0a, 0x14, + 0x22, 0x97, 0x04, 0x0a, 0x09, 0x53, 0x68, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, + 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x48, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x4c, 0x0a, 0x15, 0x53, 0x68, 0x61, 0x72, + 0x64, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, + 0x15, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x50, 0x72, 0x65, 0x76, 0x52, 0x61, + 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x50, 0x72, + 0x65, 0x76, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x75, + 0x62, 0x4b, 0x65, 0x79, 0x73, 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x0d, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, + 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x54, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x54, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, + 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1a, + 0x0a, 0x08, 0x50, 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x08, 0x50, 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, + 0x6e, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, + 0x12, 0x32, 0x0a, 0x14, 0x4e, 0x75, 0x6d, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x69, + 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x4e, 0x75, 0x6d, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x4e, 0x75, 0x6d, 0x50, - 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, - 0x12, 0x28, 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, - 0x65, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x41, 0x63, 0x63, 0x75, 0x6d, - 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, - 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x0d, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, - 0x12, 0x34, 0x0a, 0x15, 0x4c, 0x61, 0x73, 0x74, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, - 0x4d, 0x65, 0x74, 0x61, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x15, 0x4c, 0x61, 0x73, 0x74, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x4d, 0x65, 0x74, - 0x61, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x0a, 0x45, 0x70, 0x6f, 0x63, 0x68, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x4e, 0x0a, 0x14, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, - 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x70, 0x6f, 0x63, - 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, - 0x14, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x2e, 0x0a, 0x09, 0x45, 0x63, 0x6f, 0x6e, 0x6f, 0x6d, 0x69, - 0x63, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x45, 0x63, 0x6f, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x73, 0x52, 0x09, 0x45, 0x63, 0x6f, 0x6e, - 0x6f, 0x6d, 0x69, 0x63, 0x73, 0x22, 0x99, 0x03, 0x0a, 0x13, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, - 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, - 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x48, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x48, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x74, 0x48, - 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x6f, 0x6f, 0x74, 0x48, - 0x61, 0x73, 0x68, 0x12, 0x34, 0x0a, 0x15, 0x46, 0x69, 0x72, 0x73, 0x74, 0x50, 0x65, 0x6e, 0x64, - 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x15, 0x46, 0x69, 0x72, 0x73, 0x74, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, - 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x34, 0x0a, 0x15, 0x4c, 0x61, 0x73, - 0x74, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x15, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, - 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, - 0x50, 0x0a, 0x17, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x17, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x73, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x14, 0x0a, - 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, 0x70, - 0x6f, 0x63, 0x68, 0x12, 0x2c, 0x0a, 0x11, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, - 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, - 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, - 0x68, 0x22, 0xfd, 0x02, 0x0a, 0x09, 0x45, 0x63, 0x6f, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x73, 0x12, - 0x20, 0x0a, 0x0b, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, 0x6c, - 0x79, 0x12, 0x2c, 0x0a, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x6f, 0x44, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x54, 0x6f, - 0x74, 0x61, 0x6c, 0x54, 0x6f, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, - 0x2a, 0x0a, 0x10, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4e, 0x65, 0x77, 0x6c, 0x79, 0x4d, 0x69, 0x6e, - 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x54, 0x6f, 0x74, 0x61, 0x6c, - 0x4e, 0x65, 0x77, 0x6c, 0x79, 0x4d, 0x69, 0x6e, 0x74, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x65, 0x72, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x4a, 0x0a, 0x20, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, - 0x46, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x75, 0x73, 0x74, 0x61, - 0x69, 0x6e, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x20, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x46, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x53, 0x75, 0x73, 0x74, 0x61, 0x69, 0x6e, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, - 0x30, 0x0a, 0x13, 0x50, 0x72, 0x65, 0x76, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, 0x50, 0x72, - 0x65, 0x76, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x6f, 0x75, 0x6e, - 0x64, 0x12, 0x2e, 0x0a, 0x12, 0x50, 0x72, 0x65, 0x76, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, - 0x61, 0x72, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, 0x50, - 0x72, 0x65, 0x76, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x48, 0x61, 0x73, - 0x68, 0x22, 0xad, 0x01, 0x0a, 0x08, 0x50, 0x65, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, - 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x75, 0x62, 0x6c, - 0x69, 0x63, 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x50, 0x75, 0x62, - 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x29, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, - 0x65, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, - 0x20, 0x0a, 0x0b, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x22, 0xf9, 0x07, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x4c, 0x0a, 0x0c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, - 0x6f, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x12, 0x64, 0x0a, 0x14, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x30, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x2e, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x14, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, - 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x3d, 0x0a, 0x07, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, - 0x6f, 0x6c, 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x07, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x40, 0x0a, 0x08, 0x52, 0x65, 0x63, 0x65, - 0x69, 0x70, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, - 0x6f, 0x6c, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x08, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x12, 0x46, 0x0a, 0x0a, 0x49, 0x6e, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, + 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, + 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x41, + 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x12, 0x24, + 0x0a, 0x0d, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, + 0x46, 0x65, 0x65, 0x73, 0x12, 0x34, 0x0a, 0x15, 0x4c, 0x61, 0x73, 0x74, 0x49, 0x6e, 0x63, 0x6c, + 0x75, 0x64, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x15, 0x4c, 0x61, 0x73, 0x74, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, + 0x64, 0x4d, 0x65, 0x74, 0x61, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x0a, 0x45, + 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x4e, 0x0a, 0x14, 0x4c, 0x61, 0x73, + 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x14, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, + 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x2e, 0x0a, 0x09, 0x45, 0x63, 0x6f, + 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x63, 0x6f, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x73, 0x52, 0x09, + 0x45, 0x63, 0x6f, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x73, 0x22, 0x99, 0x03, 0x0a, 0x13, 0x45, 0x70, + 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x52, + 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, + 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x34, 0x0a, 0x15, 0x46, 0x69, 0x72, 0x73, 0x74, + 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x15, 0x46, 0x69, 0x72, 0x73, 0x74, 0x50, 0x65, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x34, 0x0a, + 0x15, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x4d, 0x65, 0x74, + 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x15, 0x4c, 0x61, + 0x73, 0x74, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x12, 0x50, 0x0a, 0x17, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x69, + 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x69, 0x6e, + 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x17, 0x50, 0x65, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x4e, + 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x2c, 0x0a, 0x11, 0x53, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x11, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x52, 0x6f, 0x6f, + 0x74, 0x48, 0x61, 0x73, 0x68, 0x22, 0xfd, 0x02, 0x0a, 0x09, 0x45, 0x63, 0x6f, 0x6e, 0x6f, 0x6d, + 0x69, 0x63, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, + 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, + 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x2c, 0x0a, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x6f, + 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x6f, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4e, 0x65, 0x77, 0x6c, + 0x79, 0x4d, 0x69, 0x6e, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x54, + 0x6f, 0x74, 0x61, 0x6c, 0x4e, 0x65, 0x77, 0x6c, 0x79, 0x4d, 0x69, 0x6e, 0x74, 0x65, 0x64, 0x12, + 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x65, 0x72, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x73, 0x50, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x4a, 0x0a, 0x20, 0x52, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x73, 0x46, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, + 0x75, 0x73, 0x74, 0x61, 0x69, 0x6e, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x20, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x46, 0x6f, 0x72, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x75, 0x73, 0x74, 0x61, 0x69, 0x6e, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x72, 0x69, + 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x50, 0x72, 0x65, 0x76, 0x45, 0x70, 0x6f, 0x63, 0x68, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x13, 0x50, 0x72, 0x65, 0x76, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x2e, 0x0a, 0x12, 0x50, 0x72, 0x65, 0x76, 0x45, 0x70, 0x6f, + 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x12, 0x50, 0x72, 0x65, 0x76, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x48, 0x61, 0x73, 0x68, 0x22, 0xad, 0x01, 0x0a, 0x08, 0x50, 0x65, 0x65, 0x72, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1c, 0x0a, 0x09, + 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x09, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x29, 0x0a, 0x06, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, + 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, + 0x61, 0x6d, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0xf9, 0x07, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x4c, 0x0a, 0x0c, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x28, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x64, 0x0a, 0x14, 0x53, 0x6d, 0x61, 0x72, 0x74, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x2e, 0x53, 0x6d, + 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x14, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x3d, 0x0a, + 0x07, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x2e, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, - 0x78, 0x73, 0x12, 0x22, 0x0a, 0x04, 0x4c, 0x6f, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x6f, 0x67, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x04, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x52, 0x0a, 0x24, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, + 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x07, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x40, 0x0a, 0x08, + 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x12, 0x46, + 0x0a, 0x0a, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x18, 0x05, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x2e, 0x49, 0x6e, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x54, 0x78, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x49, 0x6e, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x12, 0x22, 0x0a, 0x04, 0x4c, 0x6f, 0x67, 0x73, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x6f, 0x67, + 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x52, 0x0a, 0x24, 0x53, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x53, + 0x43, 0x52, 0x53, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x24, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x53, 0x43, 0x52, 0x53, 0x48, - 0x61, 0x73, 0x68, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x24, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x53, 0x43, 0x52, 0x53, 0x48, 0x61, 0x73, 0x68, 0x65, - 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x5e, 0x0a, 0x2a, 0x53, 0x63, - 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x49, - 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x50, - 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x2a, - 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, - 0x64, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, - 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0x4e, 0x0a, 0x11, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, - 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, - 0x79, 0x12, 0x23, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x57, 0x0a, 0x19, 0x53, 0x6d, - 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x61, 0x73, 0x68, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x5e, + 0x0a, 0x2a, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x65, 0x64, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x48, 0x61, 0x73, + 0x68, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x08, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x2a, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x48, + 0x61, 0x73, 0x68, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0x4e, + 0x0a, 0x11, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x78, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x57, + 0x0a, 0x19, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x24, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x43, 0x52, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x4d, 0x0a, 0x0c, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x27, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x4b, 0x0a, 0x0d, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x53, 0x43, 0x52, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x1a, 0x4d, 0x0a, 0x0c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x27, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, - 0x38, 0x01, 0x1a, 0x4b, 0x0a, 0x0d, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x63, - 0x65, 0x69, 0x70, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, - 0x4c, 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x78, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x5d, 0x0a, - 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x61, 0x73, 0x55, - 0x73, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x47, 0x61, 0x73, 0x55, 0x73, - 0x65, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x46, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x03, 0x46, 0x65, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x50, - 0x61, 0x69, 0x64, 0x46, 0x65, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x49, 0x6e, - 0x69, 0x74, 0x69, 0x61, 0x6c, 0x50, 0x61, 0x69, 0x64, 0x46, 0x65, 0x65, 0x22, 0x90, 0x01, 0x0a, - 0x06, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x34, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, - 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, - 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x22, - 0xa9, 0x01, 0x0a, 0x07, 0x53, 0x43, 0x52, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4c, 0x0a, 0x13, 0x53, - 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x52, 0x13, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x28, 0x0a, 0x07, 0x46, 0x65, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x46, 0x65, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x45, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x22, 0x3f, 0x0a, 0x07, 0x4c, - 0x6f, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1c, - 0x0a, 0x03, 0x4c, 0x6f, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x6f, 0x67, 0x52, 0x03, 0x4c, 0x6f, 0x67, 0x22, 0x5d, 0x0a, 0x0a, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x27, 0x0a, 0x06, 0x52, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x54, 0x78, 0x52, 0x06, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x45, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x22, 0xa6, 0x01, 0x0a, 0x14, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x47, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x47, 0x61, 0x73, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x47, 0x61, 0x73, 0x52, 0x65, 0x66, - 0x75, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x47, 0x61, 0x73, - 0x52, 0x65, 0x66, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x47, 0x61, 0x73, 0x50, - 0x65, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, - 0x47, 0x61, 0x73, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x0e, - 0x4d, 0x61, 0x78, 0x47, 0x61, 0x73, 0x50, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x4d, 0x61, 0x78, 0x47, 0x61, 0x73, 0x50, 0x65, 0x72, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x4b, 0x0a, 0x13, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x50, - 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x61, 0x74, - 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x52, 0x61, 0x74, 0x69, 0x6e, - 0x67, 0x22, 0x92, 0x01, 0x0a, 0x10, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, - 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, - 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, - 0x12, 0x14, 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x4e, 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x73, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x14, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x61, 0x74, 0x69, - 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xc3, 0x01, 0x0a, 0x09, 0x52, 0x6f, 0x75, 0x6e, 0x64, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x69, - 0x67, 0x6e, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x04, 0x52, 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, - 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x57, 0x61, 0x73, 0x50, 0x72, - 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x57, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x12, 0x18, - 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, - 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x1c, - 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x58, 0x0a, 0x0a, - 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, - 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, - 0x72, 0x64, 0x49, 0x44, 0x12, 0x30, 0x0a, 0x0a, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x49, 0x6e, - 0x66, 0x6f, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x52, 0x6f, 0x75, 0x6e, - 0x64, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x1d, 0x0a, 0x07, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, - 0x73, 0x12, 0x12, 0x0a, 0x04, 0x4b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, - 0x04, 0x4b, 0x65, 0x79, 0x73, 0x22, 0x8c, 0x02, 0x0a, 0x11, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x53, - 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, - 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x6c, 0x0a, 0x16, 0x53, 0x68, 0x61, 0x72, 0x64, 0x56, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x2e, - 0x53, 0x68, 0x61, 0x72, 0x64, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x50, - 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x16, 0x53, 0x68, 0x61, - 0x72, 0x64, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x50, 0x75, 0x62, 0x4b, - 0x65, 0x79, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0x59, 0x0a, 0x1b, 0x53, 0x68, 0x61, + 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x1a, 0x4c, 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x22, 0x5d, 0x0a, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, + 0x47, 0x61, 0x73, 0x55, 0x73, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x47, + 0x61, 0x73, 0x55, 0x73, 0x65, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x46, 0x65, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x03, 0x46, 0x65, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x49, 0x6e, 0x69, 0x74, + 0x69, 0x61, 0x6c, 0x50, 0x61, 0x69, 0x64, 0x46, 0x65, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x0e, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x50, 0x61, 0x69, 0x64, 0x46, 0x65, 0x65, + 0x22, 0x90, 0x01, 0x0a, 0x06, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x34, 0x0a, 0x0b, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x28, 0x0a, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x65, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x26, 0x0a, 0x0e, 0x45, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x22, 0xf6, 0x01, 0x0a, 0x08, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x32, + 0x12, 0x34, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x42, 0x0a, 0x14, 0x53, 0x6d, 0x61, 0x72, + 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, + 0x43, 0x52, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x14, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x1e, 0x0a, 0x04, + 0x4c, 0x6f, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x4c, 0x6f, 0x67, 0x52, 0x04, 0x4c, 0x6f, 0x67, 0x73, 0x22, 0xa9, 0x01, 0x0a, + 0x07, 0x53, 0x43, 0x52, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4c, 0x0a, 0x13, 0x53, 0x6d, 0x61, 0x72, + 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x6d, + 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x52, 0x13, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x28, 0x0a, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x22, 0x3f, 0x0a, 0x07, 0x4c, 0x6f, 0x67, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1c, 0x0a, 0x03, 0x4c, + 0x6f, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x4c, 0x6f, 0x67, 0x52, 0x03, 0x4c, 0x6f, 0x67, 0x22, 0x5d, 0x0a, 0x0a, 0x52, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x27, 0x0a, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x54, 0x78, 0x52, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x22, 0xa6, 0x01, 0x0a, 0x14, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x47, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x47, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x76, 0x69, + 0x64, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x47, 0x61, 0x73, 0x52, 0x65, 0x66, 0x75, 0x6e, 0x64, + 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x47, 0x61, 0x73, 0x52, 0x65, 0x66, + 0x75, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x47, 0x61, 0x73, 0x50, 0x65, 0x6e, 0x61, + 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x47, 0x61, 0x73, + 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x4d, 0x61, 0x78, + 0x47, 0x61, 0x73, 0x50, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0e, 0x4d, 0x61, 0x78, 0x47, 0x61, 0x73, 0x50, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x22, 0x4b, 0x0a, 0x13, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x61, + 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x75, 0x62, 0x6c, + 0x69, 0x63, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x50, 0x75, 0x62, + 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x92, + 0x01, 0x0a, 0x10, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x61, 0x74, + 0x69, 0x6e, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x14, 0x0a, + 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, 0x70, + 0x6f, 0x63, 0x68, 0x12, 0x4e, 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x73, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x6f, 0x72, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x14, 0x56, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x49, + 0x6e, 0x66, 0x6f, 0x22, 0xc3, 0x01, 0x0a, 0x09, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x65, + 0x72, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x52, + 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x12, + 0x2a, 0x0a, 0x10, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x57, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x70, 0x6f, + 0x73, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x57, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, + 0x68, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, + 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x58, 0x0a, 0x0a, 0x52, 0x6f, 0x75, + 0x6e, 0x64, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, + 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, + 0x44, 0x12, 0x30, 0x0a, 0x0a, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x6f, + 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x49, + 0x6e, 0x66, 0x6f, 0x22, 0x1d, 0x0a, 0x07, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x12, + 0x0a, 0x04, 0x4b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x04, 0x4b, 0x65, + 0x79, 0x73, 0x22, 0x8c, 0x02, 0x0a, 0x11, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, + 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, + 0x49, 0x44, 0x12, 0x6c, 0x0a, 0x16, 0x53, 0x68, 0x61, 0x72, 0x64, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x50, 0x75, 0x62, 0x4b, - 0x65, 0x79, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x02, 0x38, 0x01, 0x22, 0xf7, 0x01, 0x0a, 0x08, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x73, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x12, 0x4e, 0x0a, 0x0f, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2e, 0x41, 0x6c, - 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x0f, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x73, 0x1a, 0x59, 0x0a, 0x14, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2b, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4a, - 0x0a, 0x0e, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x65, 0x79, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x16, 0x53, 0x68, 0x61, 0x72, 0x64, 0x56, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, + 0x12, 0x14, 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0x59, 0x0a, 0x1b, 0x53, 0x68, 0x61, 0x72, 0x64, 0x56, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, + 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x22, 0xf7, 0x01, 0x0a, 0x08, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x18, + 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x12, 0x4e, 0x0a, 0x0f, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, + 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x0f, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, + 0x1a, 0x59, 0x0a, 0x14, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4a, 0x0a, 0x0e, 0x46, + 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x18, 0x0a, + 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, + 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x48, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x22, 0x21, 0x0a, 0x05, 0x53, 0x68, 0x61, 0x72, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x22, 0x21, 0x0a, 0x05, 0x53, 0x68, - 0x61, 0x72, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x22, 0x38, 0x0a, - 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x30, 0x0a, 0x0a, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x0a, 0x4d, 0x69, 0x6e, - 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x22, 0xb4, 0x01, 0x0a, 0x09, 0x4d, 0x69, 0x6e, 0x69, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x08, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, - 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x53, 0x68, 0x61, - 0x72, 0x64, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x52, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x53, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, - 0x44, 0x12, 0x1f, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x22, 0xbb, - 0x03, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, - 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, - 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x63, - 0x76, 0x41, 0x64, 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x52, 0x63, 0x76, - 0x41, 0x64, 0x64, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x63, 0x76, 0x55, 0x73, 0x65, 0x72, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x52, 0x63, 0x76, 0x55, 0x73, - 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x6e, 0x64, 0x41, 0x64, 0x64, - 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x53, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, - 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x53, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x47, 0x61, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x08, 0x47, 0x61, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, - 0x74, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, - 0x0a, 0x07, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x07, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x07, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x47, 0x75, - 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x0c, 0x47, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x12, 0x2c, - 0x0a, 0x11, 0x47, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, - 0x75, 0x72, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x47, 0x75, 0x61, 0x72, 0x64, - 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0xf1, 0x03, 0x0a, - 0x13, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x52, 0x63, 0x76, 0x41, 0x64, 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x07, 0x52, 0x63, 0x76, 0x41, 0x64, 0x64, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x6e, - 0x64, 0x41, 0x64, 0x64, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x53, 0x6e, 0x64, - 0x41, 0x64, 0x64, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, - 0x64, 0x64, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x52, 0x65, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, - 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x52, 0x65, - 0x6c, 0x61, 0x79, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, - 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x12, - 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x65, 0x76, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x50, 0x72, 0x65, 0x76, 0x54, 0x78, 0x48, 0x61, - 0x73, 0x68, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x54, 0x78, - 0x48, 0x61, 0x73, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x4f, 0x72, 0x69, 0x67, - 0x69, 0x6e, 0x61, 0x6c, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, - 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x47, 0x61, - 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, - 0x63, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, - 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x61, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x43, 0x61, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, - 0x0a, 0x0c, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0e, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x12, 0x24, 0x0a, 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, - 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x72, 0x69, 0x67, - 0x69, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x0e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x22, 0x45, 0x0a, 0x03, 0x4c, 0x6f, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x24, 0x0a, 0x06, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, - 0x06, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x95, 0x01, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x49, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x0a, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x54, - 0x6f, 0x70, 0x69, 0x63, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x06, 0x54, 0x6f, 0x70, - 0x69, 0x63, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x26, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0c, 0x52, - 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x22, - 0x66, 0x0a, 0x08, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x54, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x52, - 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, - 0x64, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, + 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x22, 0x38, 0x0a, 0x04, 0x42, 0x6f, + 0x64, 0x79, 0x12, 0x30, 0x0a, 0x0a, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, + 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x0a, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x73, 0x22, 0xb4, 0x01, 0x0a, 0x09, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0c, 0x52, 0x08, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x28, + 0x0a, 0x0f, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x1f, + 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0b, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x22, 0xbb, 0x03, 0x0a, 0x0b, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x4e, + 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x63, 0x76, 0x41, 0x64, - 0x64, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x52, 0x63, 0x76, 0x41, 0x64, 0x64, - 0x72, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x22, 0xd1, 0x01, 0x0a, 0x0e, 0x41, 0x6c, 0x74, 0x65, - 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x42, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x42, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x44, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x41, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x22, 0xff, 0x01, 0x0a, 0x10, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, - 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, - 0x12, 0x30, 0x0a, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x49, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x44, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x70, 0x72, 0x6f, + 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x52, 0x63, 0x76, 0x41, 0x64, 0x64, + 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x63, 0x76, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x52, 0x63, 0x76, 0x55, 0x73, 0x65, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x53, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, 0x12, 0x20, 0x0a, + 0x0b, 0x53, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x0b, 0x53, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x08, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x47, + 0x61, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x47, + 0x61, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x43, + 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x43, 0x68, + 0x61, 0x69, 0x6e, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x1c, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x47, 0x75, 0x61, 0x72, 0x64, + 0x69, 0x61, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x47, + 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x47, + 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x47, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, + 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0xf1, 0x03, 0x0a, 0x13, 0x53, 0x6d, + 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x52, 0x63, 0x76, 0x41, 0x64, 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, + 0x52, 0x63, 0x76, 0x41, 0x64, 0x64, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x6e, 0x64, 0x41, 0x64, + 0x64, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x53, 0x6e, 0x64, 0x41, 0x64, 0x64, + 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, + 0x64, 0x64, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x52, 0x65, 0x6c, 0x61, 0x79, + 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x44, + 0x61, 0x74, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x65, 0x76, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x50, 0x72, 0x65, 0x76, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, + 0x26, 0x0a, 0x0e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x54, 0x78, 0x48, 0x61, 0x73, + 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, + 0x6c, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x73, 0x4c, 0x69, + 0x6d, 0x69, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x47, 0x61, 0x73, 0x4c, 0x69, + 0x6d, 0x69, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x43, 0x61, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x08, 0x43, 0x61, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x43, + 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x0c, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, + 0x24, 0x0a, 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, + 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x4f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x45, 0x0a, + 0x03, 0x4c, 0x6f, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x24, + 0x0a, 0x06, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x22, 0x95, 0x01, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x18, + 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x49, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x49, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x6f, 0x70, 0x69, + 0x63, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x06, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x73, + 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x26, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0e, 0x41, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x22, 0x66, 0x0a, 0x08, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x54, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x14, + 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x63, 0x76, 0x41, 0x64, 0x64, 0x72, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x52, 0x63, 0x76, 0x41, 0x64, 0x64, 0x72, 0x12, 0x14, + 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, + 0x70, 0x6f, 0x63, 0x68, 0x22, 0xd1, 0x01, 0x0a, 0x0e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, + 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x73, 0x12, 0x44, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x44, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x41, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x22, 0xb9, 0x01, - 0x0a, 0x0d, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, - 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x6f, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x52, 0x6f, 0x79, 0x61, 0x6c, 0x74, 0x69, 0x65, 0x73, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x52, 0x6f, 0x79, 0x61, 0x6c, 0x74, 0x69, 0x65, - 0x73, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x61, 0x73, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x04, 0x48, 0x61, 0x73, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x52, 0x49, 0x73, 0x18, 0x06, 0x20, - 0x03, 0x28, 0x0c, 0x52, 0x04, 0x55, 0x52, 0x49, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x22, 0x3e, 0x0a, 0x1a, 0x41, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x73, 0x4e, 0x46, 0x54, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x49, 0x73, - 0x4e, 0x46, 0x54, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x22, 0xa3, 0x02, 0x0a, 0x15, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x49, 0x73, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, - 0x26, 0x0a, 0x0e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x75, 0x72, 0x72, 0x65, - 0x6e, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x43, - 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x55, - 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x55, - 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x44, 0x65, 0x76, 0x65, 0x6c, - 0x6f, 0x70, 0x65, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x10, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x52, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x64, 0x65, 0x48, 0x61, 0x73, 0x68, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x43, 0x6f, 0x64, 0x65, 0x48, 0x61, 0x73, 0x68, 0x12, - 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x08, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x43, - 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x0c, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, - 0x65, 0x0a, 0x07, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x53, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x07, 0x53, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, - 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, - 0x0a, 0x06, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, - 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x22, 0x1e, 0x0a, 0x06, 0x42, 0x69, 0x67, 0x49, 0x6e, 0x74, - 0x12, 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x2a, 0xa4, 0x01, 0x0a, 0x0a, 0x50, 0x65, 0x65, 0x72, 0x41, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x11, 0x0a, 0x0d, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x65, 0x65, 0x72, - 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x12, 0x11, - 0x0a, 0x0d, 0x50, 0x65, 0x65, 0x72, 0x55, 0x6e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x10, - 0x02, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x65, 0x65, 0x72, 0x44, 0x65, 0x72, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x65, 0x65, - 0x72, 0x4a, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x65, 0x65, - 0x72, 0x55, 0x6e, 0x4a, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x50, - 0x65, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x65, 0x64, 0x10, 0x06, 0x12, 0x0f, 0x0a, 0x0b, - 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x10, 0x07, 0x2a, 0x88, 0x01, - 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x78, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x10, 0x1e, 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x65, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x10, 0x3c, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0x5a, - 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x10, 0x78, 0x12, 0x11, 0x0a, 0x0c, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x10, 0x96, 0x01, 0x12, 0x11, 0x0a, 0x0c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0xff, 0x01, 0x42, 0x51, 0x5a, 0x4f, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x76, 0x65, 0x72, 0x73, - 0x78, 0x2f, 0x6d, 0x78, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2d, 0x77, 0x73, 0x2d, 0x63, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2d, 0x66, 0x69, 0x72, 0x65, 0x68, 0x6f, 0x73, 0x65, - 0x2d, 0x67, 0x6f, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x68, 0x79, 0x70, 0x65, 0x72, 0x4f, 0x75, - 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x22, 0xff, 0x01, 0x0a, 0x10, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, + 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, + 0x6e, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1e, 0x0a, + 0x0a, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x30, 0x0a, + 0x08, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, + 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x49, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, + 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x41, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x22, 0xb9, 0x01, 0x0a, 0x0d, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, + 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, + 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, + 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, + 0x12, 0x1c, 0x0a, 0x09, 0x52, 0x6f, 0x79, 0x61, 0x6c, 0x74, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x09, 0x52, 0x6f, 0x79, 0x61, 0x6c, 0x74, 0x69, 0x65, 0x73, 0x12, 0x12, + 0x0a, 0x04, 0x48, 0x61, 0x73, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x48, 0x61, + 0x73, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x52, 0x49, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0c, + 0x52, 0x04, 0x55, 0x52, 0x49, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x22, 0x3e, 0x0a, 0x1a, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x73, 0x4e, 0x46, 0x54, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x49, 0x73, 0x4e, 0x46, 0x54, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x22, 0xa3, 0x02, 0x0a, 0x15, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x08, 0x49, 0x73, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, + 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4f, + 0x77, 0x6e, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x43, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, + 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, + 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, + 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x64, 0x65, 0x48, 0x61, 0x73, 0x68, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x08, 0x43, 0x6f, 0x64, 0x65, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1a, 0x0a, 0x08, + 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, + 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x6f, 0x64, 0x65, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, + 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x65, 0x0a, 0x07, + 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x53, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, + 0x53, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x54, + 0x78, 0x48, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x54, 0x78, 0x48, + 0x61, 0x73, 0x68, 0x22, 0x1e, 0x0a, 0x06, 0x42, 0x69, 0x67, 0x49, 0x6e, 0x74, 0x12, 0x14, 0x0a, + 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x2a, 0xa4, 0x01, 0x0a, 0x0a, 0x50, 0x65, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x11, 0x0a, 0x0d, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x50, + 0x65, 0x65, 0x72, 0x55, 0x6e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x10, 0x02, 0x12, 0x16, + 0x0a, 0x12, 0x50, 0x65, 0x65, 0x72, 0x44, 0x65, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x65, 0x65, 0x72, 0x4a, 0x61, + 0x69, 0x6c, 0x65, 0x64, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x65, 0x65, 0x72, 0x55, 0x6e, + 0x4a, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x65, 0x65, 0x72, + 0x53, 0x6c, 0x61, 0x73, 0x68, 0x65, 0x64, 0x10, 0x06, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x65, 0x65, + 0x72, 0x52, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x10, 0x07, 0x2a, 0x88, 0x01, 0x0a, 0x04, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x78, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0x00, + 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0x1e, + 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x65, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0x3c, 0x12, + 0x1c, 0x0a, 0x18, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0x5a, 0x12, 0x10, 0x0a, + 0x0c, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0x78, 0x12, + 0x11, 0x0a, 0x0c, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x10, + 0x96, 0x01, 0x12, 0x11, 0x0a, 0x0c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x10, 0xff, 0x01, 0x42, 0x51, 0x5a, 0x4f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x76, 0x65, 0x72, 0x73, 0x78, 0x2f, 0x6d, + 0x78, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2d, 0x77, 0x73, 0x2d, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x2d, 0x66, 0x69, 0x72, 0x65, 0x68, 0x6f, 0x73, 0x65, 0x2d, 0x67, 0x6f, + 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x68, 0x79, 0x70, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x6f, + 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( - file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescOnce sync.Once - file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescData = file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDesc + file_hyperOutportBlock_proto_rawDescOnce sync.Once + file_hyperOutportBlock_proto_rawDescData = file_hyperOutportBlock_proto_rawDesc ) -func file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP() []byte { - file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescOnce.Do(func() { - file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescData = protoimpl.X.CompressGZIP(file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescData) +func file_hyperOutportBlock_proto_rawDescGZIP() []byte { + file_hyperOutportBlock_proto_rawDescOnce.Do(func() { + file_hyperOutportBlock_proto_rawDescData = protoimpl.X.CompressGZIP(file_hyperOutportBlock_proto_rawDescData) }) - return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescData + return file_hyperOutportBlock_proto_rawDescData } -var file_data_hyperOutportBlocks_hyperOutportBlock_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes = make([]protoimpl.MessageInfo, 54) -var file_data_hyperOutportBlocks_hyperOutportBlock_proto_goTypes = []interface{}{ +var file_hyperOutportBlock_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_hyperOutportBlock_proto_msgTypes = make([]protoimpl.MessageInfo, 62) +var file_hyperOutportBlock_proto_goTypes = []interface{}{ (PeerAction)(0), // 0: proto.PeerAction (Type)(0), // 1: proto.Type (*HyperOutportBlock)(nil), // 2: proto.HyperOutportBlock (*NotarizedHeaderOutportData)(nil), // 3: proto.NotarizedHeaderOutportData (*MetaOutportBlock)(nil), // 4: proto.MetaOutportBlock (*ShardOutportBlock)(nil), // 5: proto.ShardOutportBlock - (*Header)(nil), // 6: proto.Header - (*MetaHeader)(nil), // 7: proto.MetaHeader - (*MiniBlockHeader)(nil), // 8: proto.MiniBlockHeader - (*PeerChange)(nil), // 9: proto.PeerChange - (*BlockData)(nil), // 10: proto.BlockData - (*MetaBlockData)(nil), // 11: proto.MetaBlockData - (*ShardData)(nil), // 12: proto.ShardData - (*EpochStart)(nil), // 13: proto.EpochStart - (*EpochStartShardData)(nil), // 14: proto.EpochStartShardData - (*Economics)(nil), // 15: proto.Economics - (*PeerData)(nil), // 16: proto.PeerData - (*TransactionPool)(nil), // 17: proto.TransactionPool - (*FeeInfo)(nil), // 18: proto.FeeInfo - (*TxInfo)(nil), // 19: proto.TxInfo - (*SCRInfo)(nil), // 20: proto.SCRInfo - (*LogData)(nil), // 21: proto.LogData - (*RewardInfo)(nil), // 22: proto.RewardInfo - (*HeaderGasConsumption)(nil), // 23: proto.HeaderGasConsumption - (*ValidatorRatingInfo)(nil), // 24: proto.ValidatorRatingInfo - (*ValidatorsRating)(nil), // 25: proto.ValidatorsRating - (*RoundInfo)(nil), // 26: proto.RoundInfo - (*RoundsInfo)(nil), // 27: proto.RoundsInfo - (*PubKeys)(nil), // 28: proto.PubKeys - (*ValidatorsPubKeys)(nil), // 29: proto.ValidatorsPubKeys - (*Accounts)(nil), // 30: proto.Accounts - (*FinalizedBlock)(nil), // 31: proto.FinalizedBlock - (*Shard)(nil), // 32: proto.Shard - (*Body)(nil), // 33: proto.Body - (*MiniBlock)(nil), // 34: proto.MiniBlock - (*Transaction)(nil), // 35: proto.Transaction - (*SmartContractResult)(nil), // 36: proto.SmartContractResult - (*Log)(nil), // 37: proto.Log - (*Event)(nil), // 38: proto.Event - (*RewardTx)(nil), // 39: proto.RewardTx - (*AlteredAccount)(nil), // 40: proto.AlteredAccount - (*AccountTokenData)(nil), // 41: proto.AccountTokenData - (*TokenMetaData)(nil), // 42: proto.TokenMetaData - (*AdditionalAccountTokenData)(nil), // 43: proto.AdditionalAccountTokenData - (*AdditionalAccountData)(nil), // 44: proto.AdditionalAccountData - (*Receipt)(nil), // 45: proto.Receipt - (*BigInt)(nil), // 46: proto.BigInt - nil, // 47: proto.MetaOutportBlock.AlteredAccountsEntry - nil, // 48: proto.ShardOutportBlock.AlteredAccountsEntry - nil, // 49: proto.TransactionPool.TransactionsEntry - nil, // 50: proto.TransactionPool.SmartContractResultsEntry - nil, // 51: proto.TransactionPool.RewardsEntry - nil, // 52: proto.TransactionPool.ReceiptsEntry - nil, // 53: proto.TransactionPool.InvalidTxsEntry - nil, // 54: proto.ValidatorsPubKeys.ShardValidatorsPubKeysEntry - nil, // 55: proto.Accounts.AlteredAccountsEntry -} -var file_data_hyperOutportBlocks_hyperOutportBlock_proto_depIdxs = []int32{ + (*ShardOutportBlockV2)(nil), // 6: proto.ShardOutportBlockV2 + (*TransactionPoolV2)(nil), // 7: proto.TransactionPoolV2 + (*Header)(nil), // 8: proto.Header + (*MetaHeader)(nil), // 9: proto.MetaHeader + (*MiniBlockHeader)(nil), // 10: proto.MiniBlockHeader + (*PeerChange)(nil), // 11: proto.PeerChange + (*BlockData)(nil), // 12: proto.BlockData + (*MetaBlockData)(nil), // 13: proto.MetaBlockData + (*ShardData)(nil), // 14: proto.ShardData + (*EpochStart)(nil), // 15: proto.EpochStart + (*EpochStartShardData)(nil), // 16: proto.EpochStartShardData + (*Economics)(nil), // 17: proto.Economics + (*PeerData)(nil), // 18: proto.PeerData + (*TransactionPool)(nil), // 19: proto.TransactionPool + (*FeeInfo)(nil), // 20: proto.FeeInfo + (*TxInfo)(nil), // 21: proto.TxInfo + (*TxInfoV2)(nil), // 22: proto.TxInfoV2 + (*SCRInfo)(nil), // 23: proto.SCRInfo + (*LogData)(nil), // 24: proto.LogData + (*RewardInfo)(nil), // 25: proto.RewardInfo + (*HeaderGasConsumption)(nil), // 26: proto.HeaderGasConsumption + (*ValidatorRatingInfo)(nil), // 27: proto.ValidatorRatingInfo + (*ValidatorsRating)(nil), // 28: proto.ValidatorsRating + (*RoundInfo)(nil), // 29: proto.RoundInfo + (*RoundsInfo)(nil), // 30: proto.RoundsInfo + (*PubKeys)(nil), // 31: proto.PubKeys + (*ValidatorsPubKeys)(nil), // 32: proto.ValidatorsPubKeys + (*Accounts)(nil), // 33: proto.Accounts + (*FinalizedBlock)(nil), // 34: proto.FinalizedBlock + (*Shard)(nil), // 35: proto.Shard + (*Body)(nil), // 36: proto.Body + (*MiniBlock)(nil), // 37: proto.MiniBlock + (*Transaction)(nil), // 38: proto.Transaction + (*SmartContractResult)(nil), // 39: proto.SmartContractResult + (*Log)(nil), // 40: proto.Log + (*Event)(nil), // 41: proto.Event + (*RewardTx)(nil), // 42: proto.RewardTx + (*AlteredAccount)(nil), // 43: proto.AlteredAccount + (*AccountTokenData)(nil), // 44: proto.AccountTokenData + (*TokenMetaData)(nil), // 45: proto.TokenMetaData + (*AdditionalAccountTokenData)(nil), // 46: proto.AdditionalAccountTokenData + (*AdditionalAccountData)(nil), // 47: proto.AdditionalAccountData + (*Receipt)(nil), // 48: proto.Receipt + (*BigInt)(nil), // 49: proto.BigInt + nil, // 50: proto.MetaOutportBlock.AlteredAccountsEntry + nil, // 51: proto.ShardOutportBlock.AlteredAccountsEntry + nil, // 52: proto.ShardOutportBlockV2.AlteredAccountsEntry + nil, // 53: proto.TransactionPoolV2.TransactionsEntry + nil, // 54: proto.TransactionPoolV2.RewardsEntry + nil, // 55: proto.TransactionPoolV2.ReceiptsEntry + nil, // 56: proto.TransactionPoolV2.InvalidTxsEntry + nil, // 57: proto.TransactionPool.TransactionsEntry + nil, // 58: proto.TransactionPool.SmartContractResultsEntry + nil, // 59: proto.TransactionPool.RewardsEntry + nil, // 60: proto.TransactionPool.ReceiptsEntry + nil, // 61: proto.TransactionPool.InvalidTxsEntry + nil, // 62: proto.ValidatorsPubKeys.ShardValidatorsPubKeysEntry + nil, // 63: proto.Accounts.AlteredAccountsEntry +} +var file_hyperOutportBlock_proto_depIdxs = []int32{ 4, // 0: proto.HyperOutportBlock.MetaOutportBlock:type_name -> proto.MetaOutportBlock 3, // 1: proto.HyperOutportBlock.NotarizedHeadersOutportData:type_name -> proto.NotarizedHeaderOutportData 5, // 2: proto.NotarizedHeaderOutportData.OutportBlock:type_name -> proto.ShardOutportBlock - 11, // 3: proto.MetaOutportBlock.BlockData:type_name -> proto.MetaBlockData - 17, // 4: proto.MetaOutportBlock.TransactionPool:type_name -> proto.TransactionPool - 23, // 5: proto.MetaOutportBlock.HeaderGasConsumption:type_name -> proto.HeaderGasConsumption - 47, // 6: proto.MetaOutportBlock.AlteredAccounts:type_name -> proto.MetaOutportBlock.AlteredAccountsEntry - 10, // 7: proto.ShardOutportBlock.BlockData:type_name -> proto.BlockData - 17, // 8: proto.ShardOutportBlock.TransactionPool:type_name -> proto.TransactionPool - 23, // 9: proto.ShardOutportBlock.HeaderGasConsumption:type_name -> proto.HeaderGasConsumption - 48, // 10: proto.ShardOutportBlock.AlteredAccounts:type_name -> proto.ShardOutportBlock.AlteredAccountsEntry - 1, // 11: proto.Header.BlockBodyType:type_name -> proto.Type - 8, // 12: proto.Header.MiniBlockHeaders:type_name -> proto.MiniBlockHeader - 9, // 13: proto.Header.PeerChanges:type_name -> proto.PeerChange - 12, // 14: proto.MetaHeader.ShardInfo:type_name -> proto.ShardData - 16, // 15: proto.MetaHeader.PeerInfo:type_name -> proto.PeerData - 8, // 16: proto.MetaHeader.MiniBlockHeaders:type_name -> proto.MiniBlockHeader - 13, // 17: proto.MetaHeader.EpochStart:type_name -> proto.EpochStart - 1, // 18: proto.MiniBlockHeader.Type:type_name -> proto.Type - 6, // 19: proto.BlockData.Header:type_name -> proto.Header - 33, // 20: proto.BlockData.Body:type_name -> proto.Body - 34, // 21: proto.BlockData.IntraShardMiniBlocks:type_name -> proto.MiniBlock - 7, // 22: proto.MetaBlockData.Header:type_name -> proto.MetaHeader - 33, // 23: proto.MetaBlockData.Body:type_name -> proto.Body - 34, // 24: proto.MetaBlockData.IntraShardMiniBlocks:type_name -> proto.MiniBlock - 8, // 25: proto.ShardData.ShardMiniBlockHeaders:type_name -> proto.MiniBlockHeader - 14, // 26: proto.EpochStart.LastFinalizedHeaders:type_name -> proto.EpochStartShardData - 15, // 27: proto.EpochStart.Economics:type_name -> proto.Economics - 8, // 28: proto.EpochStartShardData.PendingMiniBlockHeaders:type_name -> proto.MiniBlockHeader - 0, // 29: proto.PeerData.Action:type_name -> proto.PeerAction - 49, // 30: proto.TransactionPool.Transactions:type_name -> proto.TransactionPool.TransactionsEntry - 50, // 31: proto.TransactionPool.SmartContractResults:type_name -> proto.TransactionPool.SmartContractResultsEntry - 51, // 32: proto.TransactionPool.Rewards:type_name -> proto.TransactionPool.RewardsEntry - 52, // 33: proto.TransactionPool.Receipts:type_name -> proto.TransactionPool.ReceiptsEntry - 53, // 34: proto.TransactionPool.InvalidTxs:type_name -> proto.TransactionPool.InvalidTxsEntry - 21, // 35: proto.TransactionPool.Logs:type_name -> proto.LogData - 35, // 36: proto.TxInfo.Transaction:type_name -> proto.Transaction - 18, // 37: proto.TxInfo.FeeInfo:type_name -> proto.FeeInfo - 36, // 38: proto.SCRInfo.SmartContractResult:type_name -> proto.SmartContractResult - 18, // 39: proto.SCRInfo.FeeInfo:type_name -> proto.FeeInfo - 37, // 40: proto.LogData.Log:type_name -> proto.Log - 39, // 41: proto.RewardInfo.Reward:type_name -> proto.RewardTx - 24, // 42: proto.ValidatorsRating.ValidatorsRatingInfo:type_name -> proto.ValidatorRatingInfo - 26, // 43: proto.RoundsInfo.RoundsInfo:type_name -> proto.RoundInfo - 54, // 44: proto.ValidatorsPubKeys.ShardValidatorsPubKeys:type_name -> proto.ValidatorsPubKeys.ShardValidatorsPubKeysEntry - 55, // 45: proto.Accounts.AlteredAccounts:type_name -> proto.Accounts.AlteredAccountsEntry - 34, // 46: proto.Body.MiniBlocks:type_name -> proto.MiniBlock - 1, // 47: proto.MiniBlock.Type:type_name -> proto.Type - 38, // 48: proto.Log.Events:type_name -> proto.Event - 41, // 49: proto.AlteredAccount.Tokens:type_name -> proto.AccountTokenData - 44, // 50: proto.AlteredAccount.AdditionalData:type_name -> proto.AdditionalAccountData - 42, // 51: proto.AccountTokenData.MetaData:type_name -> proto.TokenMetaData - 43, // 52: proto.AccountTokenData.AdditionalData:type_name -> proto.AdditionalAccountTokenData - 40, // 53: proto.MetaOutportBlock.AlteredAccountsEntry.value:type_name -> proto.AlteredAccount - 40, // 54: proto.ShardOutportBlock.AlteredAccountsEntry.value:type_name -> proto.AlteredAccount - 19, // 55: proto.TransactionPool.TransactionsEntry.value:type_name -> proto.TxInfo - 20, // 56: proto.TransactionPool.SmartContractResultsEntry.value:type_name -> proto.SCRInfo - 22, // 57: proto.TransactionPool.RewardsEntry.value:type_name -> proto.RewardInfo - 45, // 58: proto.TransactionPool.ReceiptsEntry.value:type_name -> proto.Receipt - 19, // 59: proto.TransactionPool.InvalidTxsEntry.value:type_name -> proto.TxInfo - 28, // 60: proto.ValidatorsPubKeys.ShardValidatorsPubKeysEntry.value:type_name -> proto.PubKeys - 40, // 61: proto.Accounts.AlteredAccountsEntry.value:type_name -> proto.AlteredAccount - 62, // [62:62] is the sub-list for method output_type - 62, // [62:62] is the sub-list for method input_type - 62, // [62:62] is the sub-list for extension type_name - 62, // [62:62] is the sub-list for extension extendee - 0, // [0:62] is the sub-list for field type_name -} - -func init() { file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() } -func file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() { - if File_data_hyperOutportBlocks_hyperOutportBlock_proto != nil { + 13, // 3: proto.MetaOutportBlock.BlockData:type_name -> proto.MetaBlockData + 19, // 4: proto.MetaOutportBlock.TransactionPool:type_name -> proto.TransactionPool + 26, // 5: proto.MetaOutportBlock.HeaderGasConsumption:type_name -> proto.HeaderGasConsumption + 50, // 6: proto.MetaOutportBlock.AlteredAccounts:type_name -> proto.MetaOutportBlock.AlteredAccountsEntry + 12, // 7: proto.ShardOutportBlock.BlockData:type_name -> proto.BlockData + 19, // 8: proto.ShardOutportBlock.TransactionPool:type_name -> proto.TransactionPool + 26, // 9: proto.ShardOutportBlock.HeaderGasConsumption:type_name -> proto.HeaderGasConsumption + 51, // 10: proto.ShardOutportBlock.AlteredAccounts:type_name -> proto.ShardOutportBlock.AlteredAccountsEntry + 12, // 11: proto.ShardOutportBlockV2.BlockData:type_name -> proto.BlockData + 7, // 12: proto.ShardOutportBlockV2.TransactionPool:type_name -> proto.TransactionPoolV2 + 26, // 13: proto.ShardOutportBlockV2.HeaderGasConsumption:type_name -> proto.HeaderGasConsumption + 52, // 14: proto.ShardOutportBlockV2.AlteredAccounts:type_name -> proto.ShardOutportBlockV2.AlteredAccountsEntry + 53, // 15: proto.TransactionPoolV2.Transactions:type_name -> proto.TransactionPoolV2.TransactionsEntry + 54, // 16: proto.TransactionPoolV2.Rewards:type_name -> proto.TransactionPoolV2.RewardsEntry + 55, // 17: proto.TransactionPoolV2.Receipts:type_name -> proto.TransactionPoolV2.ReceiptsEntry + 56, // 18: proto.TransactionPoolV2.InvalidTxs:type_name -> proto.TransactionPoolV2.InvalidTxsEntry + 24, // 19: proto.TransactionPoolV2.Logs:type_name -> proto.LogData + 1, // 20: proto.Header.BlockBodyType:type_name -> proto.Type + 10, // 21: proto.Header.MiniBlockHeaders:type_name -> proto.MiniBlockHeader + 11, // 22: proto.Header.PeerChanges:type_name -> proto.PeerChange + 14, // 23: proto.MetaHeader.ShardInfo:type_name -> proto.ShardData + 18, // 24: proto.MetaHeader.PeerInfo:type_name -> proto.PeerData + 10, // 25: proto.MetaHeader.MiniBlockHeaders:type_name -> proto.MiniBlockHeader + 15, // 26: proto.MetaHeader.EpochStart:type_name -> proto.EpochStart + 1, // 27: proto.MiniBlockHeader.Type:type_name -> proto.Type + 8, // 28: proto.BlockData.Header:type_name -> proto.Header + 36, // 29: proto.BlockData.Body:type_name -> proto.Body + 37, // 30: proto.BlockData.IntraShardMiniBlocks:type_name -> proto.MiniBlock + 9, // 31: proto.MetaBlockData.Header:type_name -> proto.MetaHeader + 36, // 32: proto.MetaBlockData.Body:type_name -> proto.Body + 37, // 33: proto.MetaBlockData.IntraShardMiniBlocks:type_name -> proto.MiniBlock + 10, // 34: proto.ShardData.ShardMiniBlockHeaders:type_name -> proto.MiniBlockHeader + 16, // 35: proto.EpochStart.LastFinalizedHeaders:type_name -> proto.EpochStartShardData + 17, // 36: proto.EpochStart.Economics:type_name -> proto.Economics + 10, // 37: proto.EpochStartShardData.PendingMiniBlockHeaders:type_name -> proto.MiniBlockHeader + 0, // 38: proto.PeerData.Action:type_name -> proto.PeerAction + 57, // 39: proto.TransactionPool.Transactions:type_name -> proto.TransactionPool.TransactionsEntry + 58, // 40: proto.TransactionPool.SmartContractResults:type_name -> proto.TransactionPool.SmartContractResultsEntry + 59, // 41: proto.TransactionPool.Rewards:type_name -> proto.TransactionPool.RewardsEntry + 60, // 42: proto.TransactionPool.Receipts:type_name -> proto.TransactionPool.ReceiptsEntry + 61, // 43: proto.TransactionPool.InvalidTxs:type_name -> proto.TransactionPool.InvalidTxsEntry + 24, // 44: proto.TransactionPool.Logs:type_name -> proto.LogData + 38, // 45: proto.TxInfo.Transaction:type_name -> proto.Transaction + 20, // 46: proto.TxInfo.FeeInfo:type_name -> proto.FeeInfo + 38, // 47: proto.TxInfoV2.Transaction:type_name -> proto.Transaction + 20, // 48: proto.TxInfoV2.FeeInfo:type_name -> proto.FeeInfo + 23, // 49: proto.TxInfoV2.SmartContractResults:type_name -> proto.SCRInfo + 40, // 50: proto.TxInfoV2.Logs:type_name -> proto.Log + 39, // 51: proto.SCRInfo.SmartContractResult:type_name -> proto.SmartContractResult + 20, // 52: proto.SCRInfo.FeeInfo:type_name -> proto.FeeInfo + 40, // 53: proto.LogData.Log:type_name -> proto.Log + 42, // 54: proto.RewardInfo.Reward:type_name -> proto.RewardTx + 27, // 55: proto.ValidatorsRating.ValidatorsRatingInfo:type_name -> proto.ValidatorRatingInfo + 29, // 56: proto.RoundsInfo.RoundsInfo:type_name -> proto.RoundInfo + 62, // 57: proto.ValidatorsPubKeys.ShardValidatorsPubKeys:type_name -> proto.ValidatorsPubKeys.ShardValidatorsPubKeysEntry + 63, // 58: proto.Accounts.AlteredAccounts:type_name -> proto.Accounts.AlteredAccountsEntry + 37, // 59: proto.Body.MiniBlocks:type_name -> proto.MiniBlock + 1, // 60: proto.MiniBlock.Type:type_name -> proto.Type + 41, // 61: proto.Log.Events:type_name -> proto.Event + 44, // 62: proto.AlteredAccount.Tokens:type_name -> proto.AccountTokenData + 47, // 63: proto.AlteredAccount.AdditionalData:type_name -> proto.AdditionalAccountData + 45, // 64: proto.AccountTokenData.MetaData:type_name -> proto.TokenMetaData + 46, // 65: proto.AccountTokenData.AdditionalData:type_name -> proto.AdditionalAccountTokenData + 43, // 66: proto.MetaOutportBlock.AlteredAccountsEntry.value:type_name -> proto.AlteredAccount + 43, // 67: proto.ShardOutportBlock.AlteredAccountsEntry.value:type_name -> proto.AlteredAccount + 43, // 68: proto.ShardOutportBlockV2.AlteredAccountsEntry.value:type_name -> proto.AlteredAccount + 22, // 69: proto.TransactionPoolV2.TransactionsEntry.value:type_name -> proto.TxInfoV2 + 25, // 70: proto.TransactionPoolV2.RewardsEntry.value:type_name -> proto.RewardInfo + 48, // 71: proto.TransactionPoolV2.ReceiptsEntry.value:type_name -> proto.Receipt + 21, // 72: proto.TransactionPoolV2.InvalidTxsEntry.value:type_name -> proto.TxInfo + 21, // 73: proto.TransactionPool.TransactionsEntry.value:type_name -> proto.TxInfo + 23, // 74: proto.TransactionPool.SmartContractResultsEntry.value:type_name -> proto.SCRInfo + 25, // 75: proto.TransactionPool.RewardsEntry.value:type_name -> proto.RewardInfo + 48, // 76: proto.TransactionPool.ReceiptsEntry.value:type_name -> proto.Receipt + 21, // 77: proto.TransactionPool.InvalidTxsEntry.value:type_name -> proto.TxInfo + 31, // 78: proto.ValidatorsPubKeys.ShardValidatorsPubKeysEntry.value:type_name -> proto.PubKeys + 43, // 79: proto.Accounts.AlteredAccountsEntry.value:type_name -> proto.AlteredAccount + 80, // [80:80] is the sub-list for method output_type + 80, // [80:80] is the sub-list for method input_type + 80, // [80:80] is the sub-list for extension type_name + 80, // [80:80] is the sub-list for extension extendee + 0, // [0:80] is the sub-list for field type_name +} + +func init() { file_hyperOutportBlock_proto_init() } +func file_hyperOutportBlock_proto_init() { + if File_hyperOutportBlock_proto != nil { return } if !protoimpl.UnsafeEnabled { - file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_hyperOutportBlock_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HyperOutportBlock); i { case 0: return &v.state @@ -5039,7 +5466,7 @@ func file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() { return nil } } - file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_hyperOutportBlock_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NotarizedHeaderOutportData); i { case 0: return &v.state @@ -5051,7 +5478,7 @@ func file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() { return nil } } - file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_hyperOutportBlock_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MetaOutportBlock); i { case 0: return &v.state @@ -5063,7 +5490,7 @@ func file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() { return nil } } - file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_hyperOutportBlock_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ShardOutportBlock); i { case 0: return &v.state @@ -5075,7 +5502,31 @@ func file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() { return nil } } - file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_hyperOutportBlock_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ShardOutportBlockV2); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_hyperOutportBlock_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TransactionPoolV2); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_hyperOutportBlock_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Header); i { case 0: return &v.state @@ -5087,7 +5538,7 @@ func file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() { return nil } } - file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_hyperOutportBlock_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MetaHeader); i { case 0: return &v.state @@ -5099,7 +5550,7 @@ func file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() { return nil } } - file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_hyperOutportBlock_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MiniBlockHeader); i { case 0: return &v.state @@ -5111,7 +5562,7 @@ func file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() { return nil } } - file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_hyperOutportBlock_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PeerChange); i { case 0: return &v.state @@ -5123,7 +5574,7 @@ func file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() { return nil } } - file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_hyperOutportBlock_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockData); i { case 0: return &v.state @@ -5135,7 +5586,7 @@ func file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() { return nil } } - file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_hyperOutportBlock_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MetaBlockData); i { case 0: return &v.state @@ -5147,7 +5598,7 @@ func file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() { return nil } } - file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_hyperOutportBlock_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ShardData); i { case 0: return &v.state @@ -5159,7 +5610,7 @@ func file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() { return nil } } - file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_hyperOutportBlock_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EpochStart); i { case 0: return &v.state @@ -5171,7 +5622,7 @@ func file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() { return nil } } - file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_hyperOutportBlock_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EpochStartShardData); i { case 0: return &v.state @@ -5183,7 +5634,7 @@ func file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() { return nil } } - file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_hyperOutportBlock_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Economics); i { case 0: return &v.state @@ -5195,7 +5646,7 @@ func file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() { return nil } } - file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_hyperOutportBlock_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PeerData); i { case 0: return &v.state @@ -5207,7 +5658,7 @@ func file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() { return nil } } - file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_hyperOutportBlock_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TransactionPool); i { case 0: return &v.state @@ -5219,7 +5670,7 @@ func file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() { return nil } } - file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_hyperOutportBlock_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FeeInfo); i { case 0: return &v.state @@ -5231,7 +5682,7 @@ func file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() { return nil } } - file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_hyperOutportBlock_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TxInfo); i { case 0: return &v.state @@ -5243,7 +5694,19 @@ func file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() { return nil } } - file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_hyperOutportBlock_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TxInfoV2); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_hyperOutportBlock_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCRInfo); i { case 0: return &v.state @@ -5255,7 +5718,7 @@ func file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() { return nil } } - file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + file_hyperOutportBlock_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LogData); i { case 0: return &v.state @@ -5267,7 +5730,7 @@ func file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() { return nil } } - file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + file_hyperOutportBlock_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RewardInfo); i { case 0: return &v.state @@ -5279,7 +5742,7 @@ func file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() { return nil } } - file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + file_hyperOutportBlock_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HeaderGasConsumption); i { case 0: return &v.state @@ -5291,7 +5754,7 @@ func file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() { return nil } } - file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + file_hyperOutportBlock_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ValidatorRatingInfo); i { case 0: return &v.state @@ -5303,7 +5766,7 @@ func file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() { return nil } } - file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + file_hyperOutportBlock_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ValidatorsRating); i { case 0: return &v.state @@ -5315,7 +5778,7 @@ func file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() { return nil } } - file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + file_hyperOutportBlock_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RoundInfo); i { case 0: return &v.state @@ -5327,7 +5790,7 @@ func file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() { return nil } } - file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + file_hyperOutportBlock_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RoundsInfo); i { case 0: return &v.state @@ -5339,7 +5802,7 @@ func file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() { return nil } } - file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + file_hyperOutportBlock_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PubKeys); i { case 0: return &v.state @@ -5351,7 +5814,7 @@ func file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() { return nil } } - file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + file_hyperOutportBlock_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ValidatorsPubKeys); i { case 0: return &v.state @@ -5363,7 +5826,7 @@ func file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() { return nil } } - file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + file_hyperOutportBlock_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Accounts); i { case 0: return &v.state @@ -5375,7 +5838,7 @@ func file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() { return nil } } - file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + file_hyperOutportBlock_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FinalizedBlock); i { case 0: return &v.state @@ -5387,7 +5850,7 @@ func file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() { return nil } } - file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + file_hyperOutportBlock_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Shard); i { case 0: return &v.state @@ -5399,7 +5862,7 @@ func file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() { return nil } } - file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + file_hyperOutportBlock_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Body); i { case 0: return &v.state @@ -5411,7 +5874,7 @@ func file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() { return nil } } - file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + file_hyperOutportBlock_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MiniBlock); i { case 0: return &v.state @@ -5423,7 +5886,7 @@ func file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() { return nil } } - file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + file_hyperOutportBlock_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Transaction); i { case 0: return &v.state @@ -5435,7 +5898,7 @@ func file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() { return nil } } - file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + file_hyperOutportBlock_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SmartContractResult); i { case 0: return &v.state @@ -5447,7 +5910,7 @@ func file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() { return nil } } - file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + file_hyperOutportBlock_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Log); i { case 0: return &v.state @@ -5459,7 +5922,7 @@ func file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() { return nil } } - file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + file_hyperOutportBlock_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Event); i { case 0: return &v.state @@ -5471,7 +5934,7 @@ func file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() { return nil } } - file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + file_hyperOutportBlock_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RewardTx); i { case 0: return &v.state @@ -5483,7 +5946,7 @@ func file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() { return nil } } - file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + file_hyperOutportBlock_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AlteredAccount); i { case 0: return &v.state @@ -5495,7 +5958,7 @@ func file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() { return nil } } - file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + file_hyperOutportBlock_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AccountTokenData); i { case 0: return &v.state @@ -5507,7 +5970,7 @@ func file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() { return nil } } - file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + file_hyperOutportBlock_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TokenMetaData); i { case 0: return &v.state @@ -5519,7 +5982,7 @@ func file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() { return nil } } - file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + file_hyperOutportBlock_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AdditionalAccountTokenData); i { case 0: return &v.state @@ -5531,7 +5994,7 @@ func file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() { return nil } } - file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + file_hyperOutportBlock_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AdditionalAccountData); i { case 0: return &v.state @@ -5543,7 +6006,7 @@ func file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() { return nil } } - file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + file_hyperOutportBlock_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Receipt); i { case 0: return &v.state @@ -5555,7 +6018,7 @@ func file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() { return nil } } - file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + file_hyperOutportBlock_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BigInt); i { case 0: return &v.state @@ -5572,19 +6035,19 @@ func file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDesc, + RawDescriptor: file_hyperOutportBlock_proto_rawDesc, NumEnums: 2, - NumMessages: 54, + NumMessages: 62, NumExtensions: 0, NumServices: 0, }, - GoTypes: file_data_hyperOutportBlocks_hyperOutportBlock_proto_goTypes, - DependencyIndexes: file_data_hyperOutportBlocks_hyperOutportBlock_proto_depIdxs, - EnumInfos: file_data_hyperOutportBlocks_hyperOutportBlock_proto_enumTypes, - MessageInfos: file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes, + GoTypes: file_hyperOutportBlock_proto_goTypes, + DependencyIndexes: file_hyperOutportBlock_proto_depIdxs, + EnumInfos: file_hyperOutportBlock_proto_enumTypes, + MessageInfos: file_hyperOutportBlock_proto_msgTypes, }.Build() - File_data_hyperOutportBlocks_hyperOutportBlock_proto = out.File - file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDesc = nil - file_data_hyperOutportBlocks_hyperOutportBlock_proto_goTypes = nil - file_data_hyperOutportBlocks_hyperOutportBlock_proto_depIdxs = nil + File_hyperOutportBlock_proto = out.File + file_hyperOutportBlock_proto_rawDesc = nil + file_hyperOutportBlock_proto_goTypes = nil + file_hyperOutportBlock_proto_depIdxs = nil } diff --git a/data/hyperOutportBlocks/hyperOutportBlock.proto b/data/hyperOutportBlocks/hyperOutportBlock.proto index 9297908..b700b8d 100644 --- a/data/hyperOutportBlocks/hyperOutportBlock.proto +++ b/data/hyperOutportBlocks/hyperOutportBlock.proto @@ -43,6 +43,29 @@ message ShardOutportBlock { bytes HighestFinalBlockHash = 10; } +message ShardOutportBlockV2 { + uint32 ShardID = 1; + BlockData BlockData = 2; + TransactionPoolV2 TransactionPool = 3; + HeaderGasConsumption HeaderGasConsumption = 4; + map AlteredAccounts = 5; + repeated string NotarizedHeadersHashes = 6; + uint32 NumberOfShards = 7; + repeated uint64 SignersIndexes = 8; + uint64 HighestFinalBlockNonce = 9; + bytes HighestFinalBlockHash = 10; +} + +message TransactionPoolV2 { + map Transactions = 1; + map Rewards = 3; + map Receipts = 4; + map InvalidTxs = 5; + repeated LogData Logs = 6; + repeated string ScheduledExecutedSCRSHashesPrevBlock = 7; + repeated string ScheduledExecutedInvalidTxsHashesPrevBlock = 8; +} + // Header holds the metadata of a block. This is the part that is being hashed and run through consensus. // The header holds the hash of the body and also the link to the previous block header hash message Header { @@ -238,6 +261,14 @@ message TxInfo { uint32 ExecutionOrder = 3; } +message TxInfoV2 { + Transaction Transaction = 1; + FeeInfo FeeInfo = 2; + uint32 ExecutionOrder = 3; + SCRInfo SmartContractResults = 4; + repeated Log Logs = 5; +} + message SCRInfo { SmartContractResult SmartContractResult = 1; FeeInfo FeeInfo = 2; diff --git a/process/outportBlockConverter.go b/process/outportBlockConverter.go index 91c8851..dc1d4c2 100644 --- a/process/outportBlockConverter.go +++ b/process/outportBlockConverter.go @@ -40,6 +40,342 @@ func NewOutportBlockConverter( }, nil } +func (o *outportBlockConverter) HandleShardOutportBlockV2(outportBlock *outport.OutportBlock) (*hyperOutportBlocks.ShardOutportBlockV2, error) { + headerType := outportBlock.BlockData.HeaderType + + // check if the header type is supported by this function. + if headerType != string(core.ShardHeaderV1) && headerType != string(core.ShardHeaderV2) { + return nil, fmt.Errorf("cannot convert to shard outport block. header type: %s not supported", headerType) + } + + shardOutportBlock := &hyperOutportBlocks.ShardOutportBlockV2{ + BlockData: &hyperOutportBlocks.BlockData{}, + } + shardOutportBlock.ShardID = outportBlock.ShardID + blockData, err := o.handleBlockData(outportBlock.BlockData, shardOutportBlock.BlockData) + if err != nil { + return nil, fmt.Errorf("failed to migrate block data: %w", err) + } + err = o.handleTransactionPool(outportBlock.TransactionPool, shardOutportBlock.TransactionPool) + if err != nil { + return nil, fmt.Errorf("failed to migrate transacion pool: %w", err) + } + //TODO: add these + //handleHeaderGasConsumption() + //handleAlteredAccounts() + shardOutportBlock.BlockData = blockData + + shardOutportBlock.NotarizedHeadersHashes = outportBlock.NotarizedHeadersHashes + shardOutportBlock.NumberOfShards = outportBlock.NumberOfShards + shardOutportBlock.SignersIndexes = outportBlock.SignersIndexes + shardOutportBlock.HighestFinalBlockNonce = outportBlock.HighestFinalBlockNonce + shardOutportBlock.HighestFinalBlockHash = outportBlock.HighestFinalBlockHash + + return shardOutportBlock, nil +} + +func (o *outportBlockConverter) handleBlockData(blockData *outport.BlockData, shardBlockData *hyperOutportBlocks.BlockData) (*hyperOutportBlocks.BlockData, error) { + shardBlockData.ShardID = blockData.ShardID + shardBlockData.HeaderType = blockData.HeaderType + shardBlockData.HeaderHash = blockData.HeaderHash + + var err error + switch blockData.HeaderType { + case string(core.ShardHeaderV1): + err = o.handleHeaderV1(blockData.HeaderBytes, shardBlockData) + if err != nil { + return nil, err + } + + case string(core.ShardHeaderV2): + err = o.handleHeaderV2(blockData.HeaderBytes, shardBlockData) + if err != nil { + return nil, err + } + + default: + return nil, fmt.Errorf("unknown header type [%s]", blockData.HeaderType) + } + + return shardBlockData, nil +} + +func (o *outportBlockConverter) handleHeaderV1(headerBytes []byte, shardBlockData *hyperOutportBlocks.BlockData) error { + blockHeader := block.Header{} + err := o.gogoProtoMarshaller.Unmarshal(&blockHeader, headerBytes) + if err != nil { + return fmt.Errorf("failed to unmarshal: %w", err) + } + + header := shardBlockData.Header + header.Nonce = blockHeader.Nonce + header.PrevHash = blockHeader.PrevHash + header.PrevRandSeed = blockHeader.PrevRandSeed + header.RandSeed = blockHeader.RandSeed + header.PubKeysBitmap = blockHeader.PubKeysBitmap + header.ShardID = blockHeader.ShardID + header.TimeStamp = blockHeader.TimeStamp + header.Round = blockHeader.Round + header.Epoch = blockHeader.Epoch + header.BlockBodyType = hyperOutportBlocks.Type(blockHeader.BlockBodyType) + header.Signature = blockHeader.Signature + header.LeaderSignature = blockHeader.LeaderSignature + + miniBlockHeaders := make([]*hyperOutportBlocks.MiniBlockHeader, 0) + for _, miniBlockHeader := range blockHeader.MiniBlockHeaders { + mb := &hyperOutportBlocks.MiniBlockHeader{ + Hash: miniBlockHeader.Hash, + SenderShardID: miniBlockHeader.SenderShardID, + ReceiverShardID: miniBlockHeader.ReceiverShardID, + TxCount: miniBlockHeader.TxCount, + Type: hyperOutportBlocks.Type(miniBlockHeader.Type), + Reserved: miniBlockHeader.Reserved, + } + miniBlockHeaders = append(miniBlockHeaders, mb) + } + header.MiniBlockHeaders = miniBlockHeaders + + peerChanges := make([]*hyperOutportBlocks.PeerChange, 0) + for _, peerChange := range blockHeader.PeerChanges { + pc := &hyperOutportBlocks.PeerChange{ + PubKey: peerChange.PubKey, + ShardIdDest: peerChange.ShardIdDest, + } + + peerChanges = append(peerChanges, pc) + } + header.PeerChanges = peerChanges + + header.RootHash = blockHeader.RootHash + header.MetaBlockHashes = blockHeader.MetaBlockHashes + header.TxCount = blockHeader.TxCount + header.EpochStartMetaHash = blockHeader.EpochStartMetaHash + header.ReceiptsHash = blockHeader.ReceiptsHash + header.ChainID = blockHeader.ChainID + header.SoftwareVersion = blockHeader.SoftwareVersion + header.Reserved = blockHeader.Reserved + + accumulatedFees, err := o.castBigInt(blockHeader.AccumulatedFees) + if err != nil { + return fmt.Errorf("failed to cast accumulated fees: %w", err) + } + developerFees, err := o.castBigInt(blockHeader.DeveloperFees) + if err != nil { + return fmt.Errorf("failed to cast developer fees: %w", err) + } + + header.AccumulatedFees = accumulatedFees + header.DeveloperFees = developerFees + + return nil +} + +func (o *outportBlockConverter) handleHeaderV2(headerBytes []byte, shardBlockData *hyperOutportBlocks.BlockData) error { + blockHeader := block.HeaderV2{} + err := o.gogoProtoMarshaller.Unmarshal(&blockHeader, headerBytes) + if err != nil { + return fmt.Errorf("failed to unmarshal: %w", err) + } + + header := shardBlockData.Header + header.Nonce = blockHeader.Header.Nonce + header.PrevHash = blockHeader.Header.PrevHash + header.PrevRandSeed = blockHeader.Header.PrevRandSeed + header.RandSeed = blockHeader.Header.RandSeed + header.PubKeysBitmap = blockHeader.Header.PubKeysBitmap + header.ShardID = blockHeader.Header.ShardID + header.TimeStamp = blockHeader.Header.TimeStamp + header.Round = blockHeader.Header.Round + header.Epoch = blockHeader.Header.Epoch + header.BlockBodyType = hyperOutportBlocks.Type(blockHeader.Header.BlockBodyType) + header.Signature = blockHeader.Header.Signature + header.LeaderSignature = blockHeader.Header.LeaderSignature + + miniBlockHeaders := make([]*hyperOutportBlocks.MiniBlockHeader, 0) + for _, miniBlockHeader := range blockHeader.Header.MiniBlockHeaders { + mb := &hyperOutportBlocks.MiniBlockHeader{ + Hash: miniBlockHeader.Hash, + SenderShardID: miniBlockHeader.SenderShardID, + ReceiverShardID: miniBlockHeader.ReceiverShardID, + TxCount: miniBlockHeader.TxCount, + Type: hyperOutportBlocks.Type(miniBlockHeader.Type), + Reserved: miniBlockHeader.Reserved, + } + miniBlockHeaders = append(miniBlockHeaders, mb) + } + header.MiniBlockHeaders = miniBlockHeaders + + peerChanges := make([]*hyperOutportBlocks.PeerChange, 0) + for _, peerChange := range blockHeader.Header.PeerChanges { + pc := &hyperOutportBlocks.PeerChange{ + PubKey: peerChange.PubKey, + ShardIdDest: peerChange.ShardIdDest, + } + + peerChanges = append(peerChanges, pc) + } + header.PeerChanges = peerChanges + + header.RootHash = blockHeader.Header.RootHash + header.MetaBlockHashes = blockHeader.Header.MetaBlockHashes + header.TxCount = blockHeader.Header.TxCount + header.EpochStartMetaHash = blockHeader.Header.EpochStartMetaHash + header.ReceiptsHash = blockHeader.Header.ReceiptsHash + header.ChainID = blockHeader.Header.ChainID + header.SoftwareVersion = blockHeader.Header.SoftwareVersion + header.Reserved = blockHeader.Header.Reserved + + accumulatedFees, err := o.castBigInt(blockHeader.Header.AccumulatedFees) + if err != nil { + return fmt.Errorf("failed to cast accumulated fees: %w", err) + } + developerFees, err := o.castBigInt(blockHeader.Header.DeveloperFees) + if err != nil { + return fmt.Errorf("failed to cast developer fees: %w", err) + } + + header.AccumulatedFees = accumulatedFees + header.DeveloperFees = developerFees + + shardBlockData.ScheduledRootHash = blockHeader.ScheduledRootHash + shardBlockData.ScheduledAccumulatedFees, err = o.castBigInt(blockHeader.ScheduledAccumulatedFees) + if err != nil { + return fmt.Errorf("failed to cast scheduled fees: %w", err) + } + shardBlockData.ScheduledDeveloperFees, err = o.castBigInt(blockHeader.ScheduledDeveloperFees) + if err != nil { + return fmt.Errorf("failed to cast scheduled developer fees: %w", err) + } + shardBlockData.ScheduledGasProvided = blockHeader.ScheduledGasProvided + shardBlockData.ScheduledGasPenalized = blockHeader.ScheduledGasPenalized + shardBlockData.ScheduledGasRefunded = blockHeader.ScheduledGasRefunded + + return nil +} + +func (o *outportBlockConverter) handleTransactionPool(outportTxPool *outport.TransactionPool, shardTxPool *hyperOutportBlocks.TransactionPoolV2) error { + transactions := make(map[string]*hyperOutportBlocks.TxInfoV2, 0) + var err error + for txHash, tx := range outportTxPool.Transactions { + txInfo := &hyperOutportBlocks.TxInfoV2{} + + // TxInfo - Transaction + txInfo.Transaction.Nonce = tx.Transaction.Nonce + txInfo.Transaction.Value, err = o.castBigInt(tx.Transaction.Value) + if err != nil { + return fmt.Errorf("failed to cast transaction [%s] value: %w", txHash, err) + } + txInfo.Transaction.RcvAddr = tx.Transaction.RcvAddr + txInfo.Transaction.RcvUserName = tx.Transaction.RcvUserName + txInfo.Transaction.SndAddr = tx.Transaction.SndAddr + txInfo.Transaction.SndUserName = tx.Transaction.SndUserName + txInfo.Transaction.GasPrice = tx.Transaction.GasPrice + txInfo.Transaction.GasLimit = tx.Transaction.GasLimit + txInfo.Transaction.Data = tx.Transaction.Data + txInfo.Transaction.ChainID = tx.Transaction.ChainID + txInfo.Transaction.Version = tx.Transaction.Version + txInfo.Transaction.Signature = tx.Transaction.Signature + txInfo.Transaction.Options = tx.Transaction.Options + txInfo.Transaction.GuardianAddr = tx.Transaction.GuardianAddr + txInfo.Transaction.GuardianSignature = tx.Transaction.GuardianSignature + + // TxInfo - FeeInfo + txInfo.FeeInfo.GasUsed = tx.FeeInfo.GasUsed + txInfo.FeeInfo.Fee, err = o.castBigInt(tx.FeeInfo.Fee) + if err != nil { + return fmt.Errorf("failed to cast transaction [%s] fee: %w", txHash, err) + } + + txInfo.FeeInfo.InitialPaidFee, err = o.castBigInt(tx.FeeInfo.InitialPaidFee) + if err != nil { + return fmt.Errorf("failed to cast transaction [%s] initial paid fee: %w", txHash, err) + } + + txInfo.ExecutionOrder = tx.ExecutionOrder + + if sc, ok := outportTxPool.SmartContractResults[txHash]; ok { + txInfo.SmartContractResults.SmartContractResult.Nonce = sc.SmartContractResult.Nonce + txInfo.SmartContractResults.SmartContractResult.Value, err = o.castBigInt(sc.SmartContractResult.Value) + if err != nil { + return fmt.Errorf("failed to cast transaction [%s] smart contract result value: %s", txHash, sc.SmartContractResult.Value) + } + txInfo.SmartContractResults.SmartContractResult.RcvAddr = sc.SmartContractResult.RcvAddr + txInfo.SmartContractResults.SmartContractResult.SndAddr = sc.SmartContractResult.SndAddr + txInfo.SmartContractResults.SmartContractResult.RelayerAddr = sc.SmartContractResult.RelayerAddr + txInfo.SmartContractResults.SmartContractResult.RelayedValue, err = o.castBigInt(sc.SmartContractResult.RelayedValue) + if err != nil { + return fmt.Errorf("failed to cast transaction [%s] smart contract result relayed value: %s", txHash, sc.SmartContractResult.Value) + } + txInfo.SmartContractResults.SmartContractResult.Code = sc.SmartContractResult.Code + txInfo.SmartContractResults.SmartContractResult.Data = sc.SmartContractResult.Data + txInfo.SmartContractResults.SmartContractResult.PrevTxHash = sc.SmartContractResult.PrevTxHash + txInfo.SmartContractResults.SmartContractResult.OriginalTxHash = sc.SmartContractResult.OriginalTxHash + txInfo.SmartContractResults.SmartContractResult.GasLimit = sc.SmartContractResult.GasLimit + txInfo.SmartContractResults.SmartContractResult.GasPrice = sc.SmartContractResult.GasPrice + txInfo.SmartContractResults.SmartContractResult.CallType = int64(sc.SmartContractResult.CallType) + txInfo.SmartContractResults.SmartContractResult.CodeMetadata = sc.SmartContractResult.CodeMetadata + txInfo.SmartContractResults.SmartContractResult.ReturnMessage = sc.SmartContractResult.ReturnMessage + txInfo.SmartContractResults.SmartContractResult.OriginalSender = sc.SmartContractResult.OriginalSender + } + + // Logs + for _, logData := range outportTxPool.Logs { + events := make([]*hyperOutportBlocks.Event, len(logData.Log.Events)) + for i, event := range logData.Log.Events { + e := &hyperOutportBlocks.Event{} + + e.Address = event.Address + e.Identifier = event.Identifier + e.Topics = event.Topics + e.Data = event.Data + e.AdditionalData = event.AdditionalData + + events[i] = e + } + + ll := &hyperOutportBlocks.Log{ + Address: logData.Log.Address, + Events: events, + } + + if transactions[logData.TxHash].Logs == nil { + transactions[logData.TxHash].Logs = make([]*hyperOutportBlocks.Log, 0) + } + + transactions[logData.TxHash].Logs = append(transactions[logData.TxHash].Logs, ll) + } + + transactions[txHash] = txInfo + + for _, l := range outportTxPool.Logs { + if _, ok := transactions[l.TxHash]; ok { + events := make([]*hyperOutportBlocks.Event, len(l.Log.Events)) + for i, event := range l.Log.Events { + e := &hyperOutportBlocks.Event{} + + e.Address = event.Address + e.Identifier = event.Identifier + e.Topics = event.Topics + e.Data = event.Data + e.AdditionalData = event.AdditionalData + + events[i] = e + } + + ll := &hyperOutportBlocks.Log{ + Address: l.Log.Address, + Events: events, + } + + transactions[l.TxHash].Logs = append(transactions[l.TxHash].Logs, ll) + } + } + } + + shardTxPool.Transactions = transactions + return nil +} + // HandleShardOutportBlock will convert an outport.OutportBlock to data.ShardOutportBlock. func (o *outportBlockConverter) HandleShardOutportBlock(outportBlock *outport.OutportBlock) (*hyperOutportBlocks.ShardOutportBlock, error) { headerType := outportBlock.BlockData.HeaderType From 774931ac7c254f369058846fbafa404df6f0b77f Mon Sep 17 00:00:00 2001 From: Alexander Cristurean Date: Mon, 15 Jul 2024 17:47:08 +0300 Subject: [PATCH 02/12] added v2 for shard conversion. --- .../hyperOutportBlocks/grpcBlockService.pb.go | 2 +- process/outportBlockConverter.go | 325 ++++++++++++------ process/outportBlockConverter_test.go | 289 +++++++++++++++- 3 files changed, 506 insertions(+), 110 deletions(-) diff --git a/data/hyperOutportBlocks/grpcBlockService.pb.go b/data/hyperOutportBlocks/grpcBlockService.pb.go index b46e69a..002bedc 100644 --- a/data/hyperOutportBlocks/grpcBlockService.pb.go +++ b/data/hyperOutportBlocks/grpcBlockService.pb.go @@ -328,7 +328,7 @@ func file_grpcBlockService_proto_init() { if File_grpcBlockService_proto != nil { return } - file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() + file_hyperOutportBlock_proto_init() if !protoimpl.UnsafeEnabled { file_grpcBlockService_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockHashRequest); i { diff --git a/process/outportBlockConverter.go b/process/outportBlockConverter.go index dc1d4c2..99cacac 100644 --- a/process/outportBlockConverter.go +++ b/process/outportBlockConverter.go @@ -7,6 +7,7 @@ import ( "github.com/multiversx/mx-chain-core-go/core" "github.com/multiversx/mx-chain-core-go/core/check" coreData "github.com/multiversx/mx-chain-core-go/data" + "github.com/multiversx/mx-chain-core-go/data/alteredAccount" "github.com/multiversx/mx-chain-core-go/data/block" "github.com/multiversx/mx-chain-core-go/data/outport" "github.com/multiversx/mx-chain-core-go/marshal" @@ -48,22 +49,18 @@ func (o *outportBlockConverter) HandleShardOutportBlockV2(outportBlock *outport. return nil, fmt.Errorf("cannot convert to shard outport block. header type: %s not supported", headerType) } - shardOutportBlock := &hyperOutportBlocks.ShardOutportBlockV2{ - BlockData: &hyperOutportBlocks.BlockData{}, - } + shardOutportBlock := &hyperOutportBlocks.ShardOutportBlockV2{} shardOutportBlock.ShardID = outportBlock.ShardID - blockData, err := o.handleBlockData(outportBlock.BlockData, shardOutportBlock.BlockData) + err := o.handleBlockData(outportBlock.BlockData, shardOutportBlock) if err != nil { return nil, fmt.Errorf("failed to migrate block data: %w", err) } - err = o.handleTransactionPool(outportBlock.TransactionPool, shardOutportBlock.TransactionPool) + err = o.handleTransactionPool(outportBlock.TransactionPool, shardOutportBlock) if err != nil { return nil, fmt.Errorf("failed to migrate transacion pool: %w", err) } - //TODO: add these - //handleHeaderGasConsumption() - //handleAlteredAccounts() - shardOutportBlock.BlockData = blockData + handleHeaderGasConsumption(outportBlock.HeaderGasConsumption, shardOutportBlock) + handleAlteredAccounts(outportBlock.AlteredAccounts, shardOutportBlock) shardOutportBlock.NotarizedHeadersHashes = outportBlock.NotarizedHeadersHashes shardOutportBlock.NumberOfShards = outportBlock.NumberOfShards @@ -74,30 +71,39 @@ func (o *outportBlockConverter) HandleShardOutportBlockV2(outportBlock *outport. return shardOutportBlock, nil } -func (o *outportBlockConverter) handleBlockData(blockData *outport.BlockData, shardBlockData *hyperOutportBlocks.BlockData) (*hyperOutportBlocks.BlockData, error) { - shardBlockData.ShardID = blockData.ShardID - shardBlockData.HeaderType = blockData.HeaderType - shardBlockData.HeaderHash = blockData.HeaderHash +func (o *outportBlockConverter) handleBlockData(blockData *outport.BlockData, shardOutportBlock *hyperOutportBlocks.ShardOutportBlockV2) error { + if blockData == nil { + return nil + } + + shardOutportBlock.BlockData = &hyperOutportBlocks.BlockData{ + ShardID: blockData.ShardID, + Header: nil, + HeaderType: blockData.HeaderType, + HeaderHash: blockData.HeaderHash, + Body: nil, + IntraShardMiniBlocks: nil, + } var err error switch blockData.HeaderType { case string(core.ShardHeaderV1): - err = o.handleHeaderV1(blockData.HeaderBytes, shardBlockData) + err = o.handleHeaderV1(blockData.HeaderBytes, shardOutportBlock.BlockData) if err != nil { - return nil, err + return fmt.Errorf("failed to handle header v1: %w", err) } case string(core.ShardHeaderV2): - err = o.handleHeaderV2(blockData.HeaderBytes, shardBlockData) + err = o.handleHeaderV2(blockData.HeaderBytes, shardOutportBlock.BlockData) if err != nil { - return nil, err + return fmt.Errorf("failed to handle header v2: %w", err) } default: - return nil, fmt.Errorf("unknown header type [%s]", blockData.HeaderType) + return fmt.Errorf("unknown header type [%s]", blockData.HeaderType) } - return shardBlockData, nil + return nil } func (o *outportBlockConverter) handleHeaderV1(headerBytes []byte, shardBlockData *hyperOutportBlocks.BlockData) error { @@ -107,6 +113,7 @@ func (o *outportBlockConverter) handleHeaderV1(headerBytes []byte, shardBlockDat return fmt.Errorf("failed to unmarshal: %w", err) } + shardBlockData.Header = &hyperOutportBlocks.Header{} header := shardBlockData.Header header.Nonce = blockHeader.Nonce header.PrevHash = blockHeader.PrevHash @@ -253,104 +260,117 @@ func (o *outportBlockConverter) handleHeaderV2(headerBytes []byte, shardBlockDat return nil } -func (o *outportBlockConverter) handleTransactionPool(outportTxPool *outport.TransactionPool, shardTxPool *hyperOutportBlocks.TransactionPoolV2) error { - transactions := make(map[string]*hyperOutportBlocks.TxInfoV2, 0) - var err error - for txHash, tx := range outportTxPool.Transactions { - txInfo := &hyperOutportBlocks.TxInfoV2{} +func (o *outportBlockConverter) handleTransactionPool(outportTxPool *outport.TransactionPool, shardOutportBlockV2 *hyperOutportBlocks.ShardOutportBlockV2) error { + if outportTxPool == nil { + return nil + } - // TxInfo - Transaction - txInfo.Transaction.Nonce = tx.Transaction.Nonce - txInfo.Transaction.Value, err = o.castBigInt(tx.Transaction.Value) - if err != nil { - return fmt.Errorf("failed to cast transaction [%s] value: %w", txHash, err) - } - txInfo.Transaction.RcvAddr = tx.Transaction.RcvAddr - txInfo.Transaction.RcvUserName = tx.Transaction.RcvUserName - txInfo.Transaction.SndAddr = tx.Transaction.SndAddr - txInfo.Transaction.SndUserName = tx.Transaction.SndUserName - txInfo.Transaction.GasPrice = tx.Transaction.GasPrice - txInfo.Transaction.GasLimit = tx.Transaction.GasLimit - txInfo.Transaction.Data = tx.Transaction.Data - txInfo.Transaction.ChainID = tx.Transaction.ChainID - txInfo.Transaction.Version = tx.Transaction.Version - txInfo.Transaction.Signature = tx.Transaction.Signature - txInfo.Transaction.Options = tx.Transaction.Options - txInfo.Transaction.GuardianAddr = tx.Transaction.GuardianAddr - txInfo.Transaction.GuardianSignature = tx.Transaction.GuardianSignature - - // TxInfo - FeeInfo - txInfo.FeeInfo.GasUsed = tx.FeeInfo.GasUsed - txInfo.FeeInfo.Fee, err = o.castBigInt(tx.FeeInfo.Fee) - if err != nil { - return fmt.Errorf("failed to cast transaction [%s] fee: %w", txHash, err) - } + shardOutportBlockV2.TransactionPool = &hyperOutportBlocks.TransactionPoolV2{} - txInfo.FeeInfo.InitialPaidFee, err = o.castBigInt(tx.FeeInfo.InitialPaidFee) - if err != nil { - return fmt.Errorf("failed to cast transaction [%s] initial paid fee: %w", txHash, err) - } + if outportTxPool.Transactions != nil { + shardOutportBlockV2.TransactionPool.Transactions = make(map[string]*hyperOutportBlocks.TxInfoV2, len(outportTxPool.Transactions)) + } - txInfo.ExecutionOrder = tx.ExecutionOrder + if outportTxPool.Rewards != nil { + shardOutportBlockV2.TransactionPool.Rewards = make(map[string]*hyperOutportBlocks.RewardInfo, len(outportTxPool.Rewards)) + } + + if outportTxPool.Receipts != nil { + shardOutportBlockV2.TransactionPool.Receipts = make(map[string]*hyperOutportBlocks.Receipt, len(outportTxPool.Receipts)) + } + + if outportTxPool.InvalidTxs != nil { + shardOutportBlockV2.TransactionPool.InvalidTxs = make(map[string]*hyperOutportBlocks.TxInfo, len(outportTxPool.InvalidTxs)) + } + + shardOutportBlockV2.TransactionPool.ScheduledExecutedSCRSHashesPrevBlock = outportTxPool.ScheduledExecutedSCRSHashesPrevBlock + shardOutportBlockV2.TransactionPool.ScheduledExecutedInvalidTxsHashesPrevBlock = outportTxPool.ScheduledExecutedInvalidTxsHashesPrevBlock + + for txHash, tx := range outportTxPool.Transactions { + txInfo := &hyperOutportBlocks.TxInfoV2{} - if sc, ok := outportTxPool.SmartContractResults[txHash]; ok { - txInfo.SmartContractResults.SmartContractResult.Nonce = sc.SmartContractResult.Nonce - txInfo.SmartContractResults.SmartContractResult.Value, err = o.castBigInt(sc.SmartContractResult.Value) + // TxInfo - Transaction + if tx.Transaction != nil { + value, err := o.castBigInt(tx.Transaction.Value) if err != nil { - return fmt.Errorf("failed to cast transaction [%s] smart contract result value: %s", txHash, sc.SmartContractResult.Value) + return fmt.Errorf("failed to cast transaction [%s] value: %w", txHash, err) } - txInfo.SmartContractResults.SmartContractResult.RcvAddr = sc.SmartContractResult.RcvAddr - txInfo.SmartContractResults.SmartContractResult.SndAddr = sc.SmartContractResult.SndAddr - txInfo.SmartContractResults.SmartContractResult.RelayerAddr = sc.SmartContractResult.RelayerAddr - txInfo.SmartContractResults.SmartContractResult.RelayedValue, err = o.castBigInt(sc.SmartContractResult.RelayedValue) - if err != nil { - return fmt.Errorf("failed to cast transaction [%s] smart contract result relayed value: %s", txHash, sc.SmartContractResult.Value) + + txInfo.Transaction = &hyperOutportBlocks.Transaction{ + Nonce: tx.Transaction.Nonce, + Value: value, + RcvAddr: tx.Transaction.RcvAddr, + RcvUserName: tx.Transaction.RcvUserName, + SndAddr: tx.Transaction.SndAddr, + SndUserName: tx.Transaction.SndUserName, + GasPrice: tx.Transaction.GasPrice, + GasLimit: tx.Transaction.GasLimit, + Data: tx.Transaction.Data, + ChainID: tx.Transaction.ChainID, + Version: tx.Transaction.Version, + Signature: tx.Transaction.Signature, + Options: tx.Transaction.Options, + GuardianAddr: tx.Transaction.GuardianAddr, + GuardianSignature: tx.Transaction.GuardianSignature, } - txInfo.SmartContractResults.SmartContractResult.Code = sc.SmartContractResult.Code - txInfo.SmartContractResults.SmartContractResult.Data = sc.SmartContractResult.Data - txInfo.SmartContractResults.SmartContractResult.PrevTxHash = sc.SmartContractResult.PrevTxHash - txInfo.SmartContractResults.SmartContractResult.OriginalTxHash = sc.SmartContractResult.OriginalTxHash - txInfo.SmartContractResults.SmartContractResult.GasLimit = sc.SmartContractResult.GasLimit - txInfo.SmartContractResults.SmartContractResult.GasPrice = sc.SmartContractResult.GasPrice - txInfo.SmartContractResults.SmartContractResult.CallType = int64(sc.SmartContractResult.CallType) - txInfo.SmartContractResults.SmartContractResult.CodeMetadata = sc.SmartContractResult.CodeMetadata - txInfo.SmartContractResults.SmartContractResult.ReturnMessage = sc.SmartContractResult.ReturnMessage - txInfo.SmartContractResults.SmartContractResult.OriginalSender = sc.SmartContractResult.OriginalSender - } - // Logs - for _, logData := range outportTxPool.Logs { - events := make([]*hyperOutportBlocks.Event, len(logData.Log.Events)) - for i, event := range logData.Log.Events { - e := &hyperOutportBlocks.Event{} + // TxInfo - FeeInfo + if tx.FeeInfo != nil { + fee, err := o.castBigInt(tx.FeeInfo.Fee) + if err != nil { + return fmt.Errorf("failed to cast transaction [%s] fee: %w", txHash, err) + } - e.Address = event.Address - e.Identifier = event.Identifier - e.Topics = event.Topics - e.Data = event.Data - e.AdditionalData = event.AdditionalData + initialPaidFee, err := o.castBigInt(tx.FeeInfo.InitialPaidFee) + if err != nil { + return fmt.Errorf("failed to cast transaction [%s] initial paid fee: %w", txHash, err) + } - events[i] = e + txInfo.FeeInfo = &hyperOutportBlocks.FeeInfo{ + GasUsed: tx.FeeInfo.GasUsed, + Fee: fee, + InitialPaidFee: initialPaidFee, + } } - ll := &hyperOutportBlocks.Log{ - Address: logData.Log.Address, - Events: events, - } + txInfo.ExecutionOrder = tx.ExecutionOrder - if transactions[logData.TxHash].Logs == nil { - transactions[logData.TxHash].Logs = make([]*hyperOutportBlocks.Log, 0) + if sc, ok := outportTxPool.SmartContractResults[txHash]; ok { + txInfo.SmartContractResults = &hyperOutportBlocks.SCRInfo{ + SmartContractResult: &hyperOutportBlocks.SmartContractResult{}, + } + txInfo.SmartContractResults.SmartContractResult.Nonce = sc.SmartContractResult.Nonce + txInfo.SmartContractResults.SmartContractResult.Value, err = o.castBigInt(sc.SmartContractResult.Value) + if err != nil { + return fmt.Errorf("failed to cast transaction [%s] smart contract result value: %s", txHash, sc.SmartContractResult.Value) + } + txInfo.SmartContractResults.SmartContractResult.RcvAddr = sc.SmartContractResult.RcvAddr + txInfo.SmartContractResults.SmartContractResult.SndAddr = sc.SmartContractResult.SndAddr + txInfo.SmartContractResults.SmartContractResult.RelayerAddr = sc.SmartContractResult.RelayerAddr + txInfo.SmartContractResults.SmartContractResult.RelayedValue, err = o.castBigInt(sc.SmartContractResult.RelayedValue) + if err != nil { + return fmt.Errorf("failed to cast transaction [%s] smart contract result relayed value: %s", txHash, sc.SmartContractResult.Value) + } + txInfo.SmartContractResults.SmartContractResult.Code = sc.SmartContractResult.Code + txInfo.SmartContractResults.SmartContractResult.Data = sc.SmartContractResult.Data + txInfo.SmartContractResults.SmartContractResult.PrevTxHash = sc.SmartContractResult.PrevTxHash + txInfo.SmartContractResults.SmartContractResult.OriginalTxHash = sc.SmartContractResult.OriginalTxHash + txInfo.SmartContractResults.SmartContractResult.GasLimit = sc.SmartContractResult.GasLimit + txInfo.SmartContractResults.SmartContractResult.GasPrice = sc.SmartContractResult.GasPrice + txInfo.SmartContractResults.SmartContractResult.CallType = int64(sc.SmartContractResult.CallType) + txInfo.SmartContractResults.SmartContractResult.CodeMetadata = sc.SmartContractResult.CodeMetadata + txInfo.SmartContractResults.SmartContractResult.ReturnMessage = sc.SmartContractResult.ReturnMessage + txInfo.SmartContractResults.SmartContractResult.OriginalSender = sc.SmartContractResult.OriginalSender } - transactions[logData.TxHash].Logs = append(transactions[logData.TxHash].Logs, ll) - } - - transactions[txHash] = txInfo + if outportTxPool.Logs != nil { + txInfo.Logs = make([]*hyperOutportBlocks.Log, len(outportTxPool.Logs)) + } - for _, l := range outportTxPool.Logs { - if _, ok := transactions[l.TxHash]; ok { - events := make([]*hyperOutportBlocks.Event, len(l.Log.Events)) - for i, event := range l.Log.Events { + // Logs + for i, logData := range outportTxPool.Logs { + events := make([]*hyperOutportBlocks.Event, len(logData.Log.Events)) + for i, event := range logData.Log.Events { e := &hyperOutportBlocks.Event{} e.Address = event.Address @@ -363,19 +383,116 @@ func (o *outportBlockConverter) handleTransactionPool(outportTxPool *outport.Tra } ll := &hyperOutportBlocks.Log{ - Address: l.Log.Address, + Address: logData.Log.Address, Events: events, } - transactions[l.TxHash].Logs = append(transactions[l.TxHash].Logs, ll) + txInfo.Logs[i] = ll } + + shardOutportBlockV2.TransactionPool.Transactions[txHash] = txInfo } } - shardTxPool.Transactions = transactions + for txHash, reward := range outportTxPool.Rewards { + value, err := o.castBigInt(reward.Reward.Value) + if err != nil { + return fmt.Errorf("failed to cast reward tx value: %w", err) + } + + shardOutportBlockV2.TransactionPool.Rewards[txHash] = &hyperOutportBlocks.RewardInfo{ + Reward: &hyperOutportBlocks.RewardTx{ + Round: reward.Reward.Round, + Value: value, + RcvAddr: reward.Reward.RcvAddr, + Epoch: reward.Reward.Epoch, + }, + ExecutionOrder: reward.ExecutionOrder, + } + } + + for txHash, receipt := range outportTxPool.Receipts { + value, err := o.castBigInt(receipt.Value) + if err != nil { + return fmt.Errorf("failed to cast receipt tx value: %w", err) + } + shardOutportBlockV2.TransactionPool.Receipts[txHash] = &hyperOutportBlocks.Receipt{ + Value: value, + SndAddr: receipt.SndAddr, + Data: receipt.Data, + TxHash: receipt.TxHash, + } + } + + //TODO: add invalid txs + //shardOutportBlockV2.TransactionPool.InvalidTxs = outportTxPool.InvalidTxs + return nil } +func handleAlteredAccounts(alteredAccounts map[string]*alteredAccount.AlteredAccount, shardOutportBlock *hyperOutportBlocks.ShardOutportBlockV2) { + if alteredAccounts == nil { + return + } + + shardAlteredAccounts := make(map[string]*hyperOutportBlocks.AlteredAccount, len(alteredAccounts)) + for key, alteredAcc := range alteredAccounts { + tokens := make([]*hyperOutportBlocks.AccountTokenData, len(alteredAcc.Tokens)) + for i, tokenData := range alteredAcc.Tokens { + tokens[i] = &hyperOutportBlocks.AccountTokenData{ + Nonce: tokenData.Nonce, + Identifier: tokenData.Identifier, + Balance: tokenData.Balance, + Properties: tokenData.Properties, + MetaData: &hyperOutportBlocks.TokenMetaData{ + Nonce: tokenData.MetaData.Nonce, + Name: tokenData.MetaData.Name, + Creator: tokenData.MetaData.Creator, + Royalties: tokenData.MetaData.Royalties, + Hash: tokenData.MetaData.Hash, + URIs: tokenData.MetaData.URIs, + Attributes: tokenData.MetaData.Attributes, + }, + AdditionalData: &hyperOutportBlocks.AdditionalAccountTokenData{ + IsNFTCreate: tokenData.AdditionalData.IsNFTCreate, + }, + } + } + + shardAlteredAccounts[key] = &hyperOutportBlocks.AlteredAccount{ + Address: alteredAcc.Address, + Nonce: alteredAcc.Nonce, + Balance: alteredAcc.Balance, + Tokens: tokens, + AdditionalData: &hyperOutportBlocks.AdditionalAccountData{ + IsSender: alteredAcc.AdditionalData.IsSender, + BalanceChanged: alteredAcc.AdditionalData.BalanceChanged, + CurrentOwner: alteredAcc.AdditionalData.CurrentOwner, + UserName: alteredAcc.AdditionalData.UserName, + DeveloperRewards: alteredAcc.AdditionalData.DeveloperRewards, + CodeHash: alteredAcc.AdditionalData.CodeHash, + RootHash: alteredAcc.AdditionalData.RootHash, + CodeMetadata: alteredAcc.AdditionalData.CodeMetadata, + }, + } + } + + shardOutportBlock.AlteredAccounts = shardAlteredAccounts +} + +func handleHeaderGasConsumption(consumption *outport.HeaderGasConsumption, shardOutportBlock *hyperOutportBlocks.ShardOutportBlockV2) { + if consumption == nil { + return + } + + shardOutportBlock.HeaderGasConsumption = &hyperOutportBlocks.HeaderGasConsumption{ + GasProvided: consumption.GasProvided, + GasRefunded: consumption.GasRefunded, + GasPenalized: consumption.GasPenalized, + MaxGasPerBlock: consumption.MaxGasPerBlock, + } +} + // HandleShardOutportBlock will convert an outport.OutportBlock to data.ShardOutportBlock. func (o *outportBlockConverter) HandleShardOutportBlock(outportBlock *outport.OutportBlock) (*hyperOutportBlocks.ShardOutportBlock, error) { headerType := outportBlock.BlockData.HeaderType diff --git a/process/outportBlockConverter_test.go b/process/outportBlockConverter_test.go index 21d30c2..f16f6af 100644 --- a/process/outportBlockConverter_test.go +++ b/process/outportBlockConverter_test.go @@ -16,7 +16,6 @@ import ( type fieldsGetter interface { GetShardID() uint32 - GetTransactionPool() *data.TransactionPool GetHeaderGasConsumption() *data.HeaderGasConsumption GetAlteredAccounts() map[string]*data.AlteredAccount GetNotarizedHeadersHashes() []string @@ -26,6 +25,16 @@ type fieldsGetter interface { GetHighestFinalBlockHash() []byte } +type fieldsGetterV1 interface { + fieldsGetter + GetTransactionPool() *data.TransactionPool +} + +type fieldsGetterV2 interface { + fieldsGetter + GetTransactionPool() *data.TransactionPoolV2 +} + type blockDataGetter interface { GetShardID() uint32 GetHeaderType() string @@ -46,6 +55,43 @@ const ( outportBlockMetaBlockJSONPath = "../testscommon/testdata/outportBlockMetaBlock.json" ) +func TestOutportBlockConverter_HandleShardOutportBlockV2(t *testing.T) { + t.Parallel() + + jsonBytes, err := os.ReadFile(outportBlockHeaderV1JSONPath) + require.NoError(t, err, "failed to read test data") + + ob := &outport.OutportBlock{} + err = json.Unmarshal(jsonBytes, ob) + require.NoError(t, err, "failed to unmarshal test block") + + converter, err := process.NewOutportBlockConverter(gogoProtoMarshaller, protoMarshaller) + require.Nil(t, err) + + shardOutportBlock, err := converter.HandleShardOutportBlockV2(ob) + if err != nil { + panic(err) + } + + header := &block.Header{} + err = gogoProtoMarshaller.Unmarshal(header, ob.BlockData.HeaderBytes) + require.NoError(t, err, "failed to unmarshall outport block header bytes") + + checkHeaderV1ShardV2(t, header, shardOutportBlock) + checkFieldsV2(t, ob, shardOutportBlock) + checkBlockData(t, ob.BlockData, shardOutportBlock.BlockData) + + j, err := json.Marshal(shardOutportBlock) + if err != nil { + panic(err) + } + + err = os.WriteFile("./shardoutport.json", j, 0655) + if err != nil { + panic(err) + } +} + func TestHeaderConverter(t *testing.T) { t.Parallel() @@ -66,7 +112,7 @@ func TestHeaderConverter(t *testing.T) { require.NoError(t, err, "failed to unmarshall outport block header bytes") checkHeaderV1(t, header, shardOutportBlock) - checkFields(t, ob, shardOutportBlock) + checkFieldsV1(t, ob, shardOutportBlock) checkBlockData(t, ob.BlockData, shardOutportBlock.BlockData) } @@ -91,7 +137,7 @@ func TestHeaderV2Converter(t *testing.T) { require.NoError(t, err, "failed to unmarshall outport block header bytes") checkHeaderV2(t, &header, shardOutportBlock) - checkFields(t, &ob, shardOutportBlock) + checkFieldsV1(t, &ob, shardOutportBlock) checkBlockData(t, ob.BlockData, shardOutportBlock.BlockData) } @@ -114,10 +160,51 @@ func TestMetaBlockConverter(t *testing.T) { require.NoError(t, err, "failed to unmarshall outport block header bytes") checkHeaderMeta(t, &header, metaOutportBlock) - checkFields(t, &ob, metaOutportBlock) + checkFieldsV1(t, &ob, metaOutportBlock) checkBlockData(t, ob.BlockData, metaOutportBlock.BlockData) } +func checkHeaderV1ShardV2(t *testing.T, header *block.Header, shardOutportBlock *data.ShardOutportBlockV2) { + require.Equal(t, header.Nonce, shardOutportBlock.BlockData.Header.Nonce) + require.Equal(t, header.PrevHash, shardOutportBlock.BlockData.Header.PrevHash) + require.Equal(t, header.PrevRandSeed, shardOutportBlock.BlockData.Header.PrevRandSeed) + require.Equal(t, header.RandSeed, shardOutportBlock.BlockData.Header.RandSeed) + require.Equal(t, header.PubKeysBitmap, shardOutportBlock.BlockData.Header.PubKeysBitmap) + require.Equal(t, header.ShardID, shardOutportBlock.BlockData.Header.ShardID) + require.Equal(t, header.TimeStamp, shardOutportBlock.BlockData.Header.TimeStamp) + require.Equal(t, header.Round, shardOutportBlock.BlockData.Header.Round) + require.Equal(t, header.Epoch, shardOutportBlock.BlockData.Header.Epoch) + require.Equal(t, header.BlockBodyType.String(), shardOutportBlock.BlockData.Header.BlockBodyType.String()) + require.Equal(t, header.Signature, shardOutportBlock.BlockData.Header.Signature) + require.Equal(t, header.LeaderSignature, shardOutportBlock.BlockData.Header.LeaderSignature) + require.Equal(t, header.RootHash, shardOutportBlock.BlockData.Header.RootHash) + require.Equal(t, header.MetaBlockHashes, shardOutportBlock.BlockData.Header.MetaBlockHashes) + require.Equal(t, header.TxCount, shardOutportBlock.BlockData.Header.TxCount) + require.Equal(t, header.EpochStartMetaHash, shardOutportBlock.BlockData.Header.EpochStartMetaHash) + require.Equal(t, header.ReceiptsHash, shardOutportBlock.BlockData.Header.ReceiptsHash) + require.Equal(t, header.ChainID, shardOutportBlock.BlockData.Header.ChainID) + require.Equal(t, header.SoftwareVersion, shardOutportBlock.BlockData.Header.SoftwareVersion) + require.Equal(t, header.Reserved, shardOutportBlock.BlockData.Header.Reserved) + require.Equal(t, mustCastBigInt(t, header.AccumulatedFees), shardOutportBlock.BlockData.Header.AccumulatedFees) + require.Equal(t, mustCastBigInt(t, header.DeveloperFees), shardOutportBlock.BlockData.Header.DeveloperFees) + + // Block data - Header - Mini block headers. + for i, miniBlockHeader := range header.MiniBlockHeaders { + require.Equal(t, miniBlockHeader.Hash, shardOutportBlock.BlockData.Header.MiniBlockHeaders[i].Hash) + require.Equal(t, miniBlockHeader.SenderShardID, shardOutportBlock.BlockData.Header.MiniBlockHeaders[i].SenderShardID) + require.Equal(t, miniBlockHeader.ReceiverShardID, shardOutportBlock.BlockData.Header.MiniBlockHeaders[i].ReceiverShardID) + require.Equal(t, miniBlockHeader.TxCount, shardOutportBlock.BlockData.Header.MiniBlockHeaders[i].TxCount) + require.Equal(t, miniBlockHeader.Type, shardOutportBlock.BlockData.Header.MiniBlockHeaders[i].Type) + require.Equal(t, miniBlockHeader.Reserved, shardOutportBlock.BlockData.Header.MiniBlockHeaders[i].Reserved) + } + + // Block data - Header - Peer changes. + for i, peerChange := range header.PeerChanges { + require.Equal(t, peerChange.PubKey, shardOutportBlock.BlockData.Header.PeerChanges[i].PubKey) + require.Equal(t, peerChange.ShardIdDest, shardOutportBlock.BlockData.Header.PeerChanges[i].ShardIdDest) + } +} + func checkHeaderV1(t *testing.T, header *block.Header, fireOutportBlock *data.ShardOutportBlock) { // Block data - Header. require.Equal(t, header.Nonce, fireOutportBlock.BlockData.Header.Nonce) @@ -312,7 +399,7 @@ func checkHeaderMeta(t *testing.T, header *block.MetaBlock, fireOutportBlock *da require.Equal(t, header.Reserved, fireOutportBlock.BlockData.Header.Reserved) } -func checkFields(t *testing.T, outportBlock *outport.OutportBlock, fireOutportBlock fieldsGetter) { +func checkFieldsV1(t *testing.T, outportBlock *outport.OutportBlock, fireOutportBlock fieldsGetterV1) { // Asserting values. require.Equal(t, outportBlock.ShardID, fireOutportBlock.GetShardID()) require.Equal(t, outportBlock.NotarizedHeadersHashes, fireOutportBlock.GetNotarizedHeadersHashes()) @@ -502,6 +589,198 @@ func checkFields(t *testing.T, outportBlock *outport.OutportBlock, fireOutportBl } } +func checkFieldsV2(t *testing.T, outportBlock *outport.OutportBlock, fireOutportBlock fieldsGetterV2) { + // Asserting values. + require.Equal(t, outportBlock.ShardID, fireOutportBlock.GetShardID()) + require.Equal(t, outportBlock.NotarizedHeadersHashes, fireOutportBlock.GetNotarizedHeadersHashes()) + require.Equal(t, outportBlock.NumberOfShards, fireOutportBlock.GetNumberOfShards()) + require.Equal(t, outportBlock.SignersIndexes, fireOutportBlock.GetSignersIndexes()) + require.Equal(t, outportBlock.HighestFinalBlockNonce, fireOutportBlock.GetHighestFinalBlockNonce()) + require.Equal(t, outportBlock.HighestFinalBlockHash, fireOutportBlock.GetHighestFinalBlockHash()) + + // Transaction pool - Transactions. + for k, v := range outportBlock.TransactionPool.Transactions { + // Transaction pool - Transactions. - TxInfo. + require.Equal(t, v.Transaction.Nonce, fireOutportBlock.GetTransactionPool().Transactions[k].Transaction.Nonce) + require.Equal(t, mustCastBigInt(t, v.Transaction.Value), fireOutportBlock.GetTransactionPool().Transactions[k].Transaction.Value) + require.Equal(t, v.Transaction.RcvAddr, fireOutportBlock.GetTransactionPool().Transactions[k].Transaction.RcvAddr) + require.Equal(t, v.Transaction.RcvUserName, fireOutportBlock.GetTransactionPool().Transactions[k].Transaction.RcvUserName) + require.Equal(t, v.Transaction.SndAddr, fireOutportBlock.GetTransactionPool().Transactions[k].Transaction.SndAddr) + require.Equal(t, v.Transaction.GasPrice, fireOutportBlock.GetTransactionPool().Transactions[k].Transaction.GasPrice) + require.Equal(t, v.Transaction.GasLimit, fireOutportBlock.GetTransactionPool().Transactions[k].Transaction.GasLimit) + require.Equal(t, v.Transaction.Data, fireOutportBlock.GetTransactionPool().Transactions[k].Transaction.Data) + require.Equal(t, v.Transaction.ChainID, fireOutportBlock.GetTransactionPool().Transactions[k].Transaction.ChainID) + require.Equal(t, v.Transaction.Version, fireOutportBlock.GetTransactionPool().Transactions[k].Transaction.Version) + require.Equal(t, v.Transaction.Signature, fireOutportBlock.GetTransactionPool().Transactions[k].Transaction.Signature) + require.Equal(t, v.Transaction.Options, fireOutportBlock.GetTransactionPool().Transactions[k].Transaction.Options) + require.Equal(t, v.Transaction.GuardianAddr, fireOutportBlock.GetTransactionPool().Transactions[k].Transaction.GuardianAddr) + require.Equal(t, v.Transaction.GuardianSignature, fireOutportBlock.GetTransactionPool().Transactions[k].Transaction.GuardianSignature) + + // Transaction pool - Transactions - Tx Info - Fee info. + require.Equal(t, v.FeeInfo.GasUsed, fireOutportBlock.GetTransactionPool().Transactions[k].FeeInfo.GasUsed) + require.Equal(t, mustCastBigInt(t, v.FeeInfo.Fee), fireOutportBlock.GetTransactionPool().Transactions[k].FeeInfo.Fee) + require.Equal(t, mustCastBigInt(t, v.FeeInfo.InitialPaidFee), fireOutportBlock.GetTransactionPool().Transactions[k].FeeInfo.InitialPaidFee) + + require.Equal(t, v.ExecutionOrder, fireOutportBlock.GetTransactionPool().Transactions[k].ExecutionOrder) + } + + // Transaction pool - Smart Contract results. + for k, v := range outportBlock.TransactionPool.SmartContractResults { + tx := fireOutportBlock.GetTransactionPool().Transactions[k] + // Transaction pool - Smart Contract results - SmartContractResult. + require.Equal(t, v.SmartContractResult.Nonce, tx.SmartContractResults.SmartContractResult.Nonce) + require.Equal(t, mustCastBigInt(t, v.SmartContractResult.Value), tx.SmartContractResults.SmartContractResult.Value) + require.Equal(t, v.SmartContractResult.RcvAddr, tx.SmartContractResults.SmartContractResult.RcvAddr) + require.Equal(t, v.SmartContractResult.SndAddr, tx.SmartContractResults.SmartContractResult.SndAddr) + require.Equal(t, v.SmartContractResult.RelayerAddr, tx.SmartContractResults.SmartContractResult.RelayerAddr) + require.Equal(t, mustCastBigInt(t, v.SmartContractResult.RelayedValue), tx.SmartContractResults.SmartContractResult.RelayedValue) + require.Equal(t, v.SmartContractResult.Code, tx.SmartContractResults.SmartContractResult.Code) + require.Equal(t, v.SmartContractResult.Data, tx.SmartContractResults.SmartContractResult.Data) + require.Equal(t, v.SmartContractResult.PrevTxHash, tx.SmartContractResults.SmartContractResult.PrevTxHash) + require.Equal(t, v.SmartContractResult.OriginalTxHash, tx.SmartContractResults.SmartContractResult.OriginalTxHash) + require.Equal(t, v.SmartContractResult.GasLimit, tx.SmartContractResults.SmartContractResult.GasLimit) + require.Equal(t, v.SmartContractResult.GasPrice, tx.SmartContractResults.SmartContractResult.GasPrice) + require.Equal(t, int64(v.SmartContractResult.CallType), tx.SmartContractResults.SmartContractResult.CallType) + require.Equal(t, v.SmartContractResult.CodeMetadata, tx.SmartContractResults.SmartContractResult.CodeMetadata) + require.Equal(t, v.SmartContractResult.ReturnMessage, tx.SmartContractResults.SmartContractResult.ReturnMessage) + require.Equal(t, v.SmartContractResult.OriginalSender, tx.SmartContractResults.SmartContractResult.OriginalSender) + + //TODO: check if these needs to be added too. + // Transaction pool - Smart Contract results - Fee info. + //require.Equal(t, v.FeeInfo.GasUsed, tx.SmartContractResults.SmartContractResult.GasUsed) + //require.Equal(t, mustCastBigInt(t, v.FeeInfo.Fee), tx.SmartContractResults.SmartContractResult.Fee) + //require.Equal(t, mustCastBigInt(t, v.FeeInfo.InitialPaidFee), tx.SmartContractResults.SmartContractResult.FeeInfo.InitialPaidFee) + // + //// Transaction pool - Smart Contract results - Execution Order. + //require.Equal(t, v.ExecutionOrder, tx.SmartContractResults.SmartContractResult.ExecutionOrder) + } + + // Transaction Pool - Rewards + for k, v := range outportBlock.TransactionPool.Rewards { + // Transaction Pool - Rewards - Reward info + require.Equal(t, v.Reward.Round, fireOutportBlock.GetTransactionPool().Rewards[k].Reward.Round) + require.Equal(t, mustCastBigInt(t, v.Reward.Value), fireOutportBlock.GetTransactionPool().Rewards[k].Reward.Value) + require.Equal(t, v.Reward.RcvAddr, fireOutportBlock.GetTransactionPool().Rewards[k].Reward.RcvAddr) + require.Equal(t, v.Reward.Epoch, fireOutportBlock.GetTransactionPool().Rewards[k].Reward.Epoch) + + // Transaction Pool - Rewards - Execution Order + require.Equal(t, v.ExecutionOrder, fireOutportBlock.GetTransactionPool().Rewards[k].ExecutionOrder) + } + + // Transaction Pool - Receipts + for k, v := range outportBlock.TransactionPool.Receipts { + // Transaction Pool - Receipts - Receipt info + require.Equal(t, mustCastBigInt(t, v.Value), fireOutportBlock.GetTransactionPool().Receipts[k].Value) + require.Equal(t, v.SndAddr, fireOutportBlock.GetTransactionPool().Receipts[k].SndAddr) + require.Equal(t, v.Data, fireOutportBlock.GetTransactionPool().Receipts[k].Data) + require.Equal(t, v.TxHash, fireOutportBlock.GetTransactionPool().Receipts[k].TxHash) + } + + // Transaction Pool - Invalid Txs + for k, v := range outportBlock.TransactionPool.InvalidTxs { + // Transaction Pool - Invalid Txs - Tx Info + require.Equal(t, v.Transaction.Nonce, fireOutportBlock.GetTransactionPool().InvalidTxs[k].Transaction.Nonce) + require.Equal(t, mustCastBigInt(t, v.Transaction.Value), fireOutportBlock.GetTransactionPool().InvalidTxs[k].Transaction.Value) + require.Equal(t, v.Transaction.RcvAddr, fireOutportBlock.GetTransactionPool().InvalidTxs[k].Transaction.RcvAddr) + require.Equal(t, v.Transaction.RcvUserName, fireOutportBlock.GetTransactionPool().InvalidTxs[k].Transaction.RcvUserName) + require.Equal(t, v.Transaction.SndAddr, fireOutportBlock.GetTransactionPool().InvalidTxs[k].Transaction.SndAddr) + require.Equal(t, v.Transaction.GasPrice, fireOutportBlock.GetTransactionPool().InvalidTxs[k].Transaction.GasPrice) + require.Equal(t, v.Transaction.GasLimit, fireOutportBlock.GetTransactionPool().InvalidTxs[k].Transaction.GasLimit) + require.Equal(t, v.Transaction.Data, fireOutportBlock.GetTransactionPool().InvalidTxs[k].Transaction.Data) + require.Equal(t, v.Transaction.ChainID, fireOutportBlock.GetTransactionPool().InvalidTxs[k].Transaction.ChainID) + require.Equal(t, v.Transaction.Version, fireOutportBlock.GetTransactionPool().InvalidTxs[k].Transaction.Version) + require.Equal(t, v.Transaction.Signature, fireOutportBlock.GetTransactionPool().InvalidTxs[k].Transaction.Signature) + require.Equal(t, v.Transaction.Options, fireOutportBlock.GetTransactionPool().InvalidTxs[k].Transaction.Options) + require.Equal(t, v.Transaction.GuardianAddr, fireOutportBlock.GetTransactionPool().InvalidTxs[k].Transaction.GuardianAddr) + require.Equal(t, v.Transaction.GuardianSignature, fireOutportBlock.GetTransactionPool().InvalidTxs[k].Transaction.GuardianSignature) + require.Equal(t, v.ExecutionOrder, fireOutportBlock.GetTransactionPool().InvalidTxs[k].ExecutionOrder) + + // Transaction pool - Invalid Txs - Fee info. + require.Equal(t, v.FeeInfo.GasUsed, fireOutportBlock.GetTransactionPool().InvalidTxs[k].FeeInfo.GasUsed) + require.Equal(t, mustCastBigInt(t, v.FeeInfo.Fee), fireOutportBlock.GetTransactionPool().InvalidTxs[k].FeeInfo.Fee) + require.Equal(t, mustCastBigInt(t, v.FeeInfo.InitialPaidFee), fireOutportBlock.GetTransactionPool().InvalidTxs[k].FeeInfo.InitialPaidFee) + + require.Equal(t, v.ExecutionOrder, fireOutportBlock.GetTransactionPool().InvalidTxs[k].ExecutionOrder) + } + + // Transaction Pool - Logs + for i, l := range outportBlock.TransactionPool.Logs { + // Transaction Pool - Logs - Log Data + require.Equal(t, l.TxHash, fireOutportBlock.GetTransactionPool().Logs[i].TxHash) + + // Transaction Pool - Logs - Log data - Log + require.Equal(t, l.Log.Address, fireOutportBlock.GetTransactionPool().Logs[i].Log.Address) + + for k, e := range outportBlock.TransactionPool.Logs[i].Log.Events { + require.Equal(t, e.Address, fireOutportBlock.GetTransactionPool().Logs[i].Log.Events[k].Address) + require.Equal(t, e.Identifier, fireOutportBlock.GetTransactionPool().Logs[i].Log.Events[k].Identifier) + require.Equal(t, e.Topics, fireOutportBlock.GetTransactionPool().Logs[i].Log.Events[k].Topics) + require.Equal(t, e.Data, fireOutportBlock.GetTransactionPool().Logs[i].Log.Events[k].Data) + require.Equal(t, e.AdditionalData, fireOutportBlock.GetTransactionPool().Logs[i].Log.Events[k].AdditionalData) + } + } + + // Transaction Pool - ScheduledExecutedSCRSHashesPrevBlock + for i, s := range outportBlock.TransactionPool.ScheduledExecutedSCRSHashesPrevBlock { + require.Equal(t, s, fireOutportBlock.GetTransactionPool().ScheduledExecutedSCRSHashesPrevBlock[i]) + } + + // Transaction Pool - ScheduledExecutedInvalidTxsHashesPrevBlock + for i, s := range outportBlock.TransactionPool.ScheduledExecutedInvalidTxsHashesPrevBlock { + require.Equal(t, s, fireOutportBlock.GetTransactionPool().ScheduledExecutedInvalidTxsHashesPrevBlock[i]) + } + + // Header gas consumption. + require.Equal(t, outportBlock.HeaderGasConsumption.GasProvided, fireOutportBlock.GetHeaderGasConsumption().GasProvided) + require.Equal(t, outportBlock.HeaderGasConsumption.GasRefunded, fireOutportBlock.GetHeaderGasConsumption().GasRefunded) + require.Equal(t, outportBlock.HeaderGasConsumption.GasPenalized, fireOutportBlock.GetHeaderGasConsumption().GasPenalized) + require.Equal(t, outportBlock.HeaderGasConsumption.MaxGasPerBlock, fireOutportBlock.GetHeaderGasConsumption().MaxGasPerBlock) + + // Altered accounts. + for key, account := range outportBlock.AlteredAccounts { + acc := fireOutportBlock.GetAlteredAccounts()[key] + + require.Equal(t, account.Address, acc.Address) + require.Equal(t, account.Nonce, acc.Nonce) + require.Equal(t, account.Balance, acc.Balance) + require.Equal(t, account.Balance, acc.Balance) + + // Altered accounts - Account token data. + for i, token := range account.Tokens { + require.Equal(t, token.Nonce, acc.Tokens[i].Nonce) + require.Equal(t, token.Identifier, acc.Tokens[i].Identifier) + require.Equal(t, token.Balance, acc.Tokens[i].Balance) + require.Equal(t, token.Properties, acc.Tokens[i].Properties) + + // Altered accounts - Account token data - Metadata. + if token.MetaData != nil { + require.Equal(t, token.MetaData.Nonce, acc.Tokens[i].MetaData.Nonce) + require.Equal(t, token.MetaData.Name, acc.Tokens[i].MetaData.Name) + require.Equal(t, token.MetaData.Creator, acc.Tokens[i].MetaData.Creator) + require.Equal(t, token.MetaData.Royalties, acc.Tokens[i].MetaData.Royalties) + require.Equal(t, token.MetaData.Hash, acc.Tokens[i].MetaData.Hash) + require.Equal(t, token.MetaData.URIs, acc.Tokens[i].MetaData.URIs) + require.Equal(t, token.MetaData.Attributes, acc.Tokens[i].MetaData.Attributes) + + // Altered accounts - Account token data - Additional data. + require.Equal(t, token.AdditionalData.IsNFTCreate, acc.Tokens[i].AdditionalData.IsNFTCreate) + } + } + + // Altered accounts - Additional account data. + if account.AdditionalData != nil { + require.Equal(t, account.AdditionalData.IsSender, acc.AdditionalData.IsSender) + require.Equal(t, account.AdditionalData.BalanceChanged, acc.AdditionalData.BalanceChanged) + require.Equal(t, account.AdditionalData.CurrentOwner, acc.AdditionalData.CurrentOwner) + require.Equal(t, account.AdditionalData.UserName, acc.AdditionalData.UserName) + require.Equal(t, account.AdditionalData.DeveloperRewards, acc.AdditionalData.DeveloperRewards) + require.Equal(t, account.AdditionalData.CodeHash, acc.AdditionalData.CodeHash) + require.Equal(t, account.AdditionalData.RootHash, acc.AdditionalData.RootHash) + require.Equal(t, account.AdditionalData.CodeMetadata, acc.AdditionalData.CodeMetadata) + } + } +} + func checkBlockData(t *testing.T, blockData *outport.BlockData, getter blockDataGetter) { require.Equal(t, blockData.ShardID, getter.GetShardID()) require.Equal(t, blockData.HeaderType, getter.GetHeaderType()) From 46d8ea8a58281cc6a274ce23e2338f5c3a04c8fe Mon Sep 17 00:00:00 2001 From: Alexander Cristurean Date: Thu, 18 Jul 2024 16:59:18 +0300 Subject: [PATCH 03/12] refactored proto definitions. --- .../hyperOutportBlock.pb.go | 2405 ++++++++++------- .../hyperOutportBlock.proto | 85 +- process/outportBlockConverter.go | 420 +-- process/outportBlockConverter_test.go | 204 +- 4 files changed, 1840 insertions(+), 1274 deletions(-) diff --git a/data/hyperOutportBlocks/hyperOutportBlock.pb.go b/data/hyperOutportBlocks/hyperOutportBlock.pb.go index dd8e58f..37ae55c 100644 --- a/data/hyperOutportBlocks/hyperOutportBlock.pb.go +++ b/data/hyperOutportBlocks/hyperOutportBlock.pb.go @@ -85,6 +85,58 @@ func (PeerAction) EnumDescriptor() ([]byte, []int) { return file_hyperOutportBlock_proto_rawDescGZIP(), []int{0} } +type TxType int32 + +const ( + TxType_SCR TxType = 0 + TxType_Invalid TxType = 1 + TxType_UserTx TxType = 2 + TxType_Reward TxType = 3 +) + +// Enum value maps for TxType. +var ( + TxType_name = map[int32]string{ + 0: "SCR", + 1: "Invalid", + 2: "UserTx", + 3: "Reward", + } + TxType_value = map[string]int32{ + "SCR": 0, + "Invalid": 1, + "UserTx": 2, + "Reward": 3, + } +) + +func (x TxType) Enum() *TxType { + p := new(TxType) + *p = x + return p +} + +func (x TxType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TxType) Descriptor() protoreflect.EnumDescriptor { + return file_hyperOutportBlock_proto_enumTypes[1].Descriptor() +} + +func (TxType) Type() protoreflect.EnumType { + return &file_hyperOutportBlock_proto_enumTypes[1] +} + +func (x TxType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TxType.Descriptor instead. +func (TxType) EnumDescriptor() ([]byte, []int) { + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{1} +} + type Type int32 const ( @@ -130,11 +182,11 @@ func (x Type) String() string { } func (Type) Descriptor() protoreflect.EnumDescriptor { - return file_hyperOutportBlock_proto_enumTypes[1].Descriptor() + return file_hyperOutportBlock_proto_enumTypes[2].Descriptor() } func (Type) Type() protoreflect.EnumType { - return &file_hyperOutportBlock_proto_enumTypes[1] + return &file_hyperOutportBlock_proto_enumTypes[2] } func (x Type) Number() protoreflect.EnumNumber { @@ -143,7 +195,7 @@ func (x Type) Number() protoreflect.EnumNumber { // Deprecated: Use Type.Descriptor instead. func (Type) EnumDescriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{1} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{2} } type HyperOutportBlock struct { @@ -618,13 +670,9 @@ type TransactionPoolV2 struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Transactions map[string]*TxInfoV2 `protobuf:"bytes,1,rep,name=Transactions,proto3" json:"Transactions,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - Rewards map[string]*RewardInfo `protobuf:"bytes,3,rep,name=Rewards,proto3" json:"Rewards,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - Receipts map[string]*Receipt `protobuf:"bytes,4,rep,name=Receipts,proto3" json:"Receipts,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - InvalidTxs map[string]*TxInfo `protobuf:"bytes,5,rep,name=InvalidTxs,proto3" json:"InvalidTxs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - Logs []*LogData `protobuf:"bytes,6,rep,name=Logs,proto3" json:"Logs,omitempty"` - ScheduledExecutedSCRSHashesPrevBlock []string `protobuf:"bytes,7,rep,name=ScheduledExecutedSCRSHashesPrevBlock,proto3" json:"ScheduledExecutedSCRSHashesPrevBlock,omitempty"` - ScheduledExecutedInvalidTxsHashesPrevBlock []string `protobuf:"bytes,8,rep,name=ScheduledExecutedInvalidTxsHashesPrevBlock,proto3" json:"ScheduledExecutedInvalidTxsHashesPrevBlock,omitempty"` + Transactions map[string]*TxInfoV2 `protobuf:"bytes,1,rep,name=Transactions,proto3" json:"Transactions,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + ScheduledExecutedSCRSHashesPrevBlock []string `protobuf:"bytes,2,rep,name=ScheduledExecutedSCRSHashesPrevBlock,proto3" json:"ScheduledExecutedSCRSHashesPrevBlock,omitempty"` + ScheduledExecutedInvalidTxsHashesPrevBlock []string `protobuf:"bytes,3,rep,name=ScheduledExecutedInvalidTxsHashesPrevBlock,proto3" json:"ScheduledExecutedInvalidTxsHashesPrevBlock,omitempty"` } func (x *TransactionPoolV2) Reset() { @@ -666,34 +714,6 @@ func (x *TransactionPoolV2) GetTransactions() map[string]*TxInfoV2 { return nil } -func (x *TransactionPoolV2) GetRewards() map[string]*RewardInfo { - if x != nil { - return x.Rewards - } - return nil -} - -func (x *TransactionPoolV2) GetReceipts() map[string]*Receipt { - if x != nil { - return x.Receipts - } - return nil -} - -func (x *TransactionPoolV2) GetInvalidTxs() map[string]*TxInfo { - if x != nil { - return x.InvalidTxs - } - return nil -} - -func (x *TransactionPoolV2) GetLogs() []*LogData { - if x != nil { - return x.Logs - } - return nil -} - func (x *TransactionPoolV2) GetScheduledExecutedSCRSHashesPrevBlock() []string { if x != nil { return x.ScheduledExecutedSCRSHashesPrevBlock @@ -2338,11 +2358,12 @@ type TxInfoV2 struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Transaction *Transaction `protobuf:"bytes,1,opt,name=Transaction,proto3" json:"Transaction,omitempty"` - FeeInfo *FeeInfo `protobuf:"bytes,2,opt,name=FeeInfo,proto3" json:"FeeInfo,omitempty"` - ExecutionOrder uint32 `protobuf:"varint,3,opt,name=ExecutionOrder,proto3" json:"ExecutionOrder,omitempty"` - SmartContractResults *SCRInfo `protobuf:"bytes,4,opt,name=SmartContractResults,proto3" json:"SmartContractResults,omitempty"` - Logs []*Log `protobuf:"bytes,5,rep,name=Logs,proto3" json:"Logs,omitempty"` + Transaction *WrappedTx `protobuf:"bytes,1,opt,name=Transaction,proto3" json:"Transaction,omitempty"` + FeeInfo *FeeInfo `protobuf:"bytes,2,opt,name=FeeInfo,proto3" json:"FeeInfo,omitempty"` + Receipt *Receipt `protobuf:"bytes,3,opt,name=Receipt,proto3" json:"Receipt,omitempty"` + ExecutionOrder uint32 `protobuf:"varint,4,opt,name=ExecutionOrder,proto3" json:"ExecutionOrder,omitempty"` + ResultTxs []*WrappedTx `protobuf:"bytes,5,rep,name=ResultTxs,proto3" json:"ResultTxs,omitempty"` + Logs []*Log `protobuf:"bytes,6,rep,name=Logs,proto3" json:"Logs,omitempty"` } func (x *TxInfoV2) Reset() { @@ -2377,7 +2398,7 @@ func (*TxInfoV2) Descriptor() ([]byte, []int) { return file_hyperOutportBlock_proto_rawDescGZIP(), []int{20} } -func (x *TxInfoV2) GetTransaction() *Transaction { +func (x *TxInfoV2) GetTransaction() *WrappedTx { if x != nil { return x.Transaction } @@ -2391,6 +2412,13 @@ func (x *TxInfoV2) GetFeeInfo() *FeeInfo { return nil } +func (x *TxInfoV2) GetReceipt() *Receipt { + if x != nil { + return x.Receipt + } + return nil +} + func (x *TxInfoV2) GetExecutionOrder() uint32 { if x != nil { return x.ExecutionOrder @@ -2398,9 +2426,9 @@ func (x *TxInfoV2) GetExecutionOrder() uint32 { return 0 } -func (x *TxInfoV2) GetSmartContractResults() *SCRInfo { +func (x *TxInfoV2) GetResultTxs() []*WrappedTx { if x != nil { - return x.SmartContractResults + return x.ResultTxs } return nil } @@ -2412,6 +2440,269 @@ func (x *TxInfoV2) GetLogs() []*Log { return nil } +type WrappedTx struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Nonce uint64 `protobuf:"varint,1,opt,name=Nonce,proto3" json:"Nonce,omitempty"` + Value []byte `protobuf:"bytes,2,opt,name=Value,proto3" json:"Value,omitempty"` + RcvAddr []byte `protobuf:"bytes,3,opt,name=RcvAddr,proto3" json:"RcvAddr,omitempty"` + RcvUserName []byte `protobuf:"bytes,4,opt,name=RcvUserName,proto3" json:"RcvUserName,omitempty"` + SndAddr []byte `protobuf:"bytes,5,opt,name=SndAddr,proto3" json:"SndAddr,omitempty"` + SndUserName []byte `protobuf:"bytes,6,opt,name=SndUserName,proto3" json:"SndUserName,omitempty"` + GasPrice uint64 `protobuf:"varint,7,opt,name=GasPrice,proto3" json:"GasPrice,omitempty"` + GasLimit uint64 `protobuf:"varint,8,opt,name=GasLimit,proto3" json:"GasLimit,omitempty"` + Data []byte `protobuf:"bytes,9,opt,name=Data,proto3" json:"Data,omitempty"` + ChainID []byte `protobuf:"bytes,10,opt,name=ChainID,proto3" json:"ChainID,omitempty"` + Version uint32 `protobuf:"varint,11,opt,name=Version,proto3" json:"Version,omitempty"` + Signature []byte `protobuf:"bytes,12,opt,name=Signature,proto3" json:"Signature,omitempty"` + Options uint32 `protobuf:"varint,13,opt,name=Options,proto3" json:"Options,omitempty"` + GuardianAddr []byte `protobuf:"bytes,14,opt,name=GuardianAddr,proto3" json:"GuardianAddr,omitempty"` + GuardianSignature []byte `protobuf:"bytes,15,opt,name=GuardianSignature,proto3" json:"GuardianSignature,omitempty"` + RelayerAddr []byte `protobuf:"bytes,16,opt,name=RelayerAddr,proto3" json:"RelayerAddr,omitempty"` + RelayedValue []byte `protobuf:"bytes,17,opt,name=RelayedValue,proto3" json:"RelayedValue,omitempty"` + Code []byte `protobuf:"bytes,18,opt,name=Code,proto3" json:"Code,omitempty"` + PrevTxHash []byte `protobuf:"bytes,19,opt,name=PrevTxHash,proto3" json:"PrevTxHash,omitempty"` + OriginalTxHash []byte `protobuf:"bytes,20,opt,name=OriginalTxHash,proto3" json:"OriginalTxHash,omitempty"` + CallType int64 `protobuf:"varint,21,opt,name=CallType,proto3" json:"CallType,omitempty"` + CodeMetadata []byte `protobuf:"bytes,22,opt,name=CodeMetadata,proto3" json:"CodeMetadata,omitempty"` + ReturnMessage []byte `protobuf:"bytes,23,opt,name=ReturnMessage,proto3" json:"ReturnMessage,omitempty"` + OriginalSender []byte `protobuf:"bytes,24,opt,name=OriginalSender,proto3" json:"OriginalSender,omitempty"` + ExecutionOrder uint32 `protobuf:"varint,25,opt,name=ExecutionOrder,proto3" json:"ExecutionOrder,omitempty"` + Round uint64 `protobuf:"varint,26,opt,name=Round,proto3" json:"Round,omitempty"` + Epoch uint32 `protobuf:"varint,27,opt,name=Epoch,proto3" json:"Epoch,omitempty"` + TxType TxType `protobuf:"varint,28,opt,name=TxType,proto3,enum=proto.TxType" json:"TxType,omitempty"` +} + +func (x *WrappedTx) Reset() { + *x = WrappedTx{} + if protoimpl.UnsafeEnabled { + mi := &file_hyperOutportBlock_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WrappedTx) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WrappedTx) ProtoMessage() {} + +func (x *WrappedTx) ProtoReflect() protoreflect.Message { + mi := &file_hyperOutportBlock_proto_msgTypes[21] + 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 WrappedTx.ProtoReflect.Descriptor instead. +func (*WrappedTx) Descriptor() ([]byte, []int) { + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{21} +} + +func (x *WrappedTx) GetNonce() uint64 { + if x != nil { + return x.Nonce + } + return 0 +} + +func (x *WrappedTx) GetValue() []byte { + if x != nil { + return x.Value + } + return nil +} + +func (x *WrappedTx) GetRcvAddr() []byte { + if x != nil { + return x.RcvAddr + } + return nil +} + +func (x *WrappedTx) GetRcvUserName() []byte { + if x != nil { + return x.RcvUserName + } + return nil +} + +func (x *WrappedTx) GetSndAddr() []byte { + if x != nil { + return x.SndAddr + } + return nil +} + +func (x *WrappedTx) GetSndUserName() []byte { + if x != nil { + return x.SndUserName + } + return nil +} + +func (x *WrappedTx) GetGasPrice() uint64 { + if x != nil { + return x.GasPrice + } + return 0 +} + +func (x *WrappedTx) GetGasLimit() uint64 { + if x != nil { + return x.GasLimit + } + return 0 +} + +func (x *WrappedTx) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +func (x *WrappedTx) GetChainID() []byte { + if x != nil { + return x.ChainID + } + return nil +} + +func (x *WrappedTx) GetVersion() uint32 { + if x != nil { + return x.Version + } + return 0 +} + +func (x *WrappedTx) GetSignature() []byte { + if x != nil { + return x.Signature + } + return nil +} + +func (x *WrappedTx) GetOptions() uint32 { + if x != nil { + return x.Options + } + return 0 +} + +func (x *WrappedTx) GetGuardianAddr() []byte { + if x != nil { + return x.GuardianAddr + } + return nil +} + +func (x *WrappedTx) GetGuardianSignature() []byte { + if x != nil { + return x.GuardianSignature + } + return nil +} + +func (x *WrappedTx) GetRelayerAddr() []byte { + if x != nil { + return x.RelayerAddr + } + return nil +} + +func (x *WrappedTx) GetRelayedValue() []byte { + if x != nil { + return x.RelayedValue + } + return nil +} + +func (x *WrappedTx) GetCode() []byte { + if x != nil { + return x.Code + } + return nil +} + +func (x *WrappedTx) GetPrevTxHash() []byte { + if x != nil { + return x.PrevTxHash + } + return nil +} + +func (x *WrappedTx) GetOriginalTxHash() []byte { + if x != nil { + return x.OriginalTxHash + } + return nil +} + +func (x *WrappedTx) GetCallType() int64 { + if x != nil { + return x.CallType + } + return 0 +} + +func (x *WrappedTx) GetCodeMetadata() []byte { + if x != nil { + return x.CodeMetadata + } + return nil +} + +func (x *WrappedTx) GetReturnMessage() []byte { + if x != nil { + return x.ReturnMessage + } + return nil +} + +func (x *WrappedTx) GetOriginalSender() []byte { + if x != nil { + return x.OriginalSender + } + return nil +} + +func (x *WrappedTx) GetExecutionOrder() uint32 { + if x != nil { + return x.ExecutionOrder + } + return 0 +} + +func (x *WrappedTx) GetRound() uint64 { + if x != nil { + return x.Round + } + return 0 +} + +func (x *WrappedTx) GetEpoch() uint32 { + if x != nil { + return x.Epoch + } + return 0 +} + +func (x *WrappedTx) GetTxType() TxType { + if x != nil { + return x.TxType + } + return TxType_SCR +} + type SCRInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2425,7 +2716,7 @@ type SCRInfo struct { func (x *SCRInfo) Reset() { *x = SCRInfo{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[21] + mi := &file_hyperOutportBlock_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2438,7 +2729,7 @@ func (x *SCRInfo) String() string { func (*SCRInfo) ProtoMessage() {} func (x *SCRInfo) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[21] + mi := &file_hyperOutportBlock_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2451,7 +2742,7 @@ func (x *SCRInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use SCRInfo.ProtoReflect.Descriptor instead. func (*SCRInfo) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{21} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{22} } func (x *SCRInfo) GetSmartContractResult() *SmartContractResult { @@ -2487,7 +2778,7 @@ type LogData struct { func (x *LogData) Reset() { *x = LogData{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[22] + mi := &file_hyperOutportBlock_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2500,7 +2791,7 @@ func (x *LogData) String() string { func (*LogData) ProtoMessage() {} func (x *LogData) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[22] + mi := &file_hyperOutportBlock_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2513,7 +2804,7 @@ func (x *LogData) ProtoReflect() protoreflect.Message { // Deprecated: Use LogData.ProtoReflect.Descriptor instead. func (*LogData) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{22} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{23} } func (x *LogData) GetTxHash() string { @@ -2542,7 +2833,7 @@ type RewardInfo struct { func (x *RewardInfo) Reset() { *x = RewardInfo{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[23] + mi := &file_hyperOutportBlock_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2555,7 +2846,7 @@ func (x *RewardInfo) String() string { func (*RewardInfo) ProtoMessage() {} func (x *RewardInfo) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[23] + mi := &file_hyperOutportBlock_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2568,7 +2859,7 @@ func (x *RewardInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use RewardInfo.ProtoReflect.Descriptor instead. func (*RewardInfo) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{23} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{24} } func (x *RewardInfo) GetReward() *RewardTx { @@ -2599,7 +2890,7 @@ type HeaderGasConsumption struct { func (x *HeaderGasConsumption) Reset() { *x = HeaderGasConsumption{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[24] + mi := &file_hyperOutportBlock_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2612,7 +2903,7 @@ func (x *HeaderGasConsumption) String() string { func (*HeaderGasConsumption) ProtoMessage() {} func (x *HeaderGasConsumption) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[24] + mi := &file_hyperOutportBlock_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2625,7 +2916,7 @@ func (x *HeaderGasConsumption) ProtoReflect() protoreflect.Message { // Deprecated: Use HeaderGasConsumption.ProtoReflect.Descriptor instead. func (*HeaderGasConsumption) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{24} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{25} } func (x *HeaderGasConsumption) GetGasProvided() uint64 { @@ -2668,7 +2959,7 @@ type ValidatorRatingInfo struct { func (x *ValidatorRatingInfo) Reset() { *x = ValidatorRatingInfo{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[25] + mi := &file_hyperOutportBlock_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2681,7 +2972,7 @@ func (x *ValidatorRatingInfo) String() string { func (*ValidatorRatingInfo) ProtoMessage() {} func (x *ValidatorRatingInfo) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[25] + mi := &file_hyperOutportBlock_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2694,7 +2985,7 @@ func (x *ValidatorRatingInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ValidatorRatingInfo.ProtoReflect.Descriptor instead. func (*ValidatorRatingInfo) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{25} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{26} } func (x *ValidatorRatingInfo) GetPublicKey() string { @@ -2724,7 +3015,7 @@ type ValidatorsRating struct { func (x *ValidatorsRating) Reset() { *x = ValidatorsRating{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[26] + mi := &file_hyperOutportBlock_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2737,7 +3028,7 @@ func (x *ValidatorsRating) String() string { func (*ValidatorsRating) ProtoMessage() {} func (x *ValidatorsRating) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[26] + mi := &file_hyperOutportBlock_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2750,7 +3041,7 @@ func (x *ValidatorsRating) ProtoReflect() protoreflect.Message { // Deprecated: Use ValidatorsRating.ProtoReflect.Descriptor instead. func (*ValidatorsRating) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{26} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{27} } func (x *ValidatorsRating) GetShardID() uint32 { @@ -2790,7 +3081,7 @@ type RoundInfo struct { func (x *RoundInfo) Reset() { *x = RoundInfo{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[27] + mi := &file_hyperOutportBlock_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2803,7 +3094,7 @@ func (x *RoundInfo) String() string { func (*RoundInfo) ProtoMessage() {} func (x *RoundInfo) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[27] + mi := &file_hyperOutportBlock_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2816,7 +3107,7 @@ func (x *RoundInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use RoundInfo.ProtoReflect.Descriptor instead. func (*RoundInfo) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{27} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{28} } func (x *RoundInfo) GetRound() uint64 { @@ -2873,7 +3164,7 @@ type RoundsInfo struct { func (x *RoundsInfo) Reset() { *x = RoundsInfo{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[28] + mi := &file_hyperOutportBlock_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2886,7 +3177,7 @@ func (x *RoundsInfo) String() string { func (*RoundsInfo) ProtoMessage() {} func (x *RoundsInfo) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[28] + mi := &file_hyperOutportBlock_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2899,7 +3190,7 @@ func (x *RoundsInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use RoundsInfo.ProtoReflect.Descriptor instead. func (*RoundsInfo) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{28} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{29} } func (x *RoundsInfo) GetShardID() uint32 { @@ -2927,7 +3218,7 @@ type PubKeys struct { func (x *PubKeys) Reset() { *x = PubKeys{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[29] + mi := &file_hyperOutportBlock_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2940,7 +3231,7 @@ func (x *PubKeys) String() string { func (*PubKeys) ProtoMessage() {} func (x *PubKeys) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[29] + mi := &file_hyperOutportBlock_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2953,7 +3244,7 @@ func (x *PubKeys) ProtoReflect() protoreflect.Message { // Deprecated: Use PubKeys.ProtoReflect.Descriptor instead. func (*PubKeys) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{29} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{30} } func (x *PubKeys) GetKeys() [][]byte { @@ -2976,7 +3267,7 @@ type ValidatorsPubKeys struct { func (x *ValidatorsPubKeys) Reset() { *x = ValidatorsPubKeys{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[30] + mi := &file_hyperOutportBlock_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2989,7 +3280,7 @@ func (x *ValidatorsPubKeys) String() string { func (*ValidatorsPubKeys) ProtoMessage() {} func (x *ValidatorsPubKeys) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[30] + mi := &file_hyperOutportBlock_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3002,7 +3293,7 @@ func (x *ValidatorsPubKeys) ProtoReflect() protoreflect.Message { // Deprecated: Use ValidatorsPubKeys.ProtoReflect.Descriptor instead. func (*ValidatorsPubKeys) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{30} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{31} } func (x *ValidatorsPubKeys) GetShardID() uint32 { @@ -3039,7 +3330,7 @@ type Accounts struct { func (x *Accounts) Reset() { *x = Accounts{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[31] + mi := &file_hyperOutportBlock_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3052,7 +3343,7 @@ func (x *Accounts) String() string { func (*Accounts) ProtoMessage() {} func (x *Accounts) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[31] + mi := &file_hyperOutportBlock_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3065,7 +3356,7 @@ func (x *Accounts) ProtoReflect() protoreflect.Message { // Deprecated: Use Accounts.ProtoReflect.Descriptor instead. func (*Accounts) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{31} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{32} } func (x *Accounts) GetShardID() uint32 { @@ -3101,7 +3392,7 @@ type FinalizedBlock struct { func (x *FinalizedBlock) Reset() { *x = FinalizedBlock{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[32] + mi := &file_hyperOutportBlock_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3114,7 +3405,7 @@ func (x *FinalizedBlock) String() string { func (*FinalizedBlock) ProtoMessage() {} func (x *FinalizedBlock) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[32] + mi := &file_hyperOutportBlock_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3127,7 +3418,7 @@ func (x *FinalizedBlock) ProtoReflect() protoreflect.Message { // Deprecated: Use FinalizedBlock.ProtoReflect.Descriptor instead. func (*FinalizedBlock) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{32} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{33} } func (x *FinalizedBlock) GetShardID() uint32 { @@ -3155,7 +3446,7 @@ type Shard struct { func (x *Shard) Reset() { *x = Shard{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[33] + mi := &file_hyperOutportBlock_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3168,7 +3459,7 @@ func (x *Shard) String() string { func (*Shard) ProtoMessage() {} func (x *Shard) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[33] + mi := &file_hyperOutportBlock_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3181,7 +3472,7 @@ func (x *Shard) ProtoReflect() protoreflect.Message { // Deprecated: Use Shard.ProtoReflect.Descriptor instead. func (*Shard) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{33} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{34} } func (x *Shard) GetShardID() uint32 { @@ -3202,7 +3493,7 @@ type Body struct { func (x *Body) Reset() { *x = Body{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[34] + mi := &file_hyperOutportBlock_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3215,7 +3506,7 @@ func (x *Body) String() string { func (*Body) ProtoMessage() {} func (x *Body) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[34] + mi := &file_hyperOutportBlock_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3228,7 +3519,7 @@ func (x *Body) ProtoReflect() protoreflect.Message { // Deprecated: Use Body.ProtoReflect.Descriptor instead. func (*Body) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{34} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{35} } func (x *Body) GetMiniBlocks() []*MiniBlock { @@ -3253,7 +3544,7 @@ type MiniBlock struct { func (x *MiniBlock) Reset() { *x = MiniBlock{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[35] + mi := &file_hyperOutportBlock_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3266,7 +3557,7 @@ func (x *MiniBlock) String() string { func (*MiniBlock) ProtoMessage() {} func (x *MiniBlock) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[35] + mi := &file_hyperOutportBlock_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3279,7 +3570,7 @@ func (x *MiniBlock) ProtoReflect() protoreflect.Message { // Deprecated: Use MiniBlock.ProtoReflect.Descriptor instead. func (*MiniBlock) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{35} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{36} } func (x *MiniBlock) GetTxHashes() [][]byte { @@ -3343,7 +3634,7 @@ type Transaction struct { func (x *Transaction) Reset() { *x = Transaction{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[36] + mi := &file_hyperOutportBlock_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3356,7 +3647,7 @@ func (x *Transaction) String() string { func (*Transaction) ProtoMessage() {} func (x *Transaction) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[36] + mi := &file_hyperOutportBlock_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3369,7 +3660,7 @@ func (x *Transaction) ProtoReflect() protoreflect.Message { // Deprecated: Use Transaction.ProtoReflect.Descriptor instead. func (*Transaction) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{36} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{37} } func (x *Transaction) GetNonce() uint64 { @@ -3503,7 +3794,7 @@ type SmartContractResult struct { func (x *SmartContractResult) Reset() { *x = SmartContractResult{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[37] + mi := &file_hyperOutportBlock_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3516,7 +3807,7 @@ func (x *SmartContractResult) String() string { func (*SmartContractResult) ProtoMessage() {} func (x *SmartContractResult) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[37] + mi := &file_hyperOutportBlock_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3529,7 +3820,7 @@ func (x *SmartContractResult) ProtoReflect() protoreflect.Message { // Deprecated: Use SmartContractResult.ProtoReflect.Descriptor instead. func (*SmartContractResult) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{37} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{38} } func (x *SmartContractResult) GetNonce() uint64 { @@ -3656,7 +3947,7 @@ type Log struct { func (x *Log) Reset() { *x = Log{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[38] + mi := &file_hyperOutportBlock_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3669,7 +3960,7 @@ func (x *Log) String() string { func (*Log) ProtoMessage() {} func (x *Log) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[38] + mi := &file_hyperOutportBlock_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3682,7 +3973,7 @@ func (x *Log) ProtoReflect() protoreflect.Message { // Deprecated: Use Log.ProtoReflect.Descriptor instead. func (*Log) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{38} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{39} } func (x *Log) GetAddress() []byte { @@ -3714,7 +4005,7 @@ type Event struct { func (x *Event) Reset() { *x = Event{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[39] + mi := &file_hyperOutportBlock_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3727,7 +4018,7 @@ func (x *Event) String() string { func (*Event) ProtoMessage() {} func (x *Event) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[39] + mi := &file_hyperOutportBlock_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3740,7 +4031,7 @@ func (x *Event) ProtoReflect() protoreflect.Message { // Deprecated: Use Event.ProtoReflect.Descriptor instead. func (*Event) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{39} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{40} } func (x *Event) GetAddress() []byte { @@ -3784,15 +4075,15 @@ type RewardTx struct { unknownFields protoimpl.UnknownFields Round uint64 `protobuf:"varint,1,opt,name=Round,proto3" json:"Round,omitempty"` + Epoch uint32 `protobuf:"varint,2,opt,name=Epoch,proto3" json:"Epoch,omitempty"` Value []byte `protobuf:"bytes,3,opt,name=Value,proto3" json:"Value,omitempty"` RcvAddr []byte `protobuf:"bytes,4,opt,name=RcvAddr,proto3" json:"RcvAddr,omitempty"` - Epoch uint32 `protobuf:"varint,2,opt,name=Epoch,proto3" json:"Epoch,omitempty"` } func (x *RewardTx) Reset() { *x = RewardTx{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[40] + mi := &file_hyperOutportBlock_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3805,7 +4096,7 @@ func (x *RewardTx) String() string { func (*RewardTx) ProtoMessage() {} func (x *RewardTx) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[40] + mi := &file_hyperOutportBlock_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3818,7 +4109,7 @@ func (x *RewardTx) ProtoReflect() protoreflect.Message { // Deprecated: Use RewardTx.ProtoReflect.Descriptor instead. func (*RewardTx) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{40} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{41} } func (x *RewardTx) GetRound() uint64 { @@ -3828,6 +4119,13 @@ func (x *RewardTx) GetRound() uint64 { return 0 } +func (x *RewardTx) GetEpoch() uint32 { + if x != nil { + return x.Epoch + } + return 0 +} + func (x *RewardTx) GetValue() []byte { if x != nil { return x.Value @@ -3842,13 +4140,6 @@ func (x *RewardTx) GetRcvAddr() []byte { return nil } -func (x *RewardTx) GetEpoch() uint32 { - if x != nil { - return x.Epoch - } - return 0 -} - type AlteredAccount struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3864,7 +4155,7 @@ type AlteredAccount struct { func (x *AlteredAccount) Reset() { *x = AlteredAccount{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[41] + mi := &file_hyperOutportBlock_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3877,7 +4168,7 @@ func (x *AlteredAccount) String() string { func (*AlteredAccount) ProtoMessage() {} func (x *AlteredAccount) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[41] + mi := &file_hyperOutportBlock_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3890,7 +4181,7 @@ func (x *AlteredAccount) ProtoReflect() protoreflect.Message { // Deprecated: Use AlteredAccount.ProtoReflect.Descriptor instead. func (*AlteredAccount) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{41} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{42} } func (x *AlteredAccount) GetAddress() string { @@ -3944,7 +4235,7 @@ type AccountTokenData struct { func (x *AccountTokenData) Reset() { *x = AccountTokenData{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[42] + mi := &file_hyperOutportBlock_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3957,7 +4248,7 @@ func (x *AccountTokenData) String() string { func (*AccountTokenData) ProtoMessage() {} func (x *AccountTokenData) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[42] + mi := &file_hyperOutportBlock_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3970,7 +4261,7 @@ func (x *AccountTokenData) ProtoReflect() protoreflect.Message { // Deprecated: Use AccountTokenData.ProtoReflect.Descriptor instead. func (*AccountTokenData) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{42} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{43} } func (x *AccountTokenData) GetNonce() uint64 { @@ -4032,7 +4323,7 @@ type TokenMetaData struct { func (x *TokenMetaData) Reset() { *x = TokenMetaData{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[43] + mi := &file_hyperOutportBlock_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4045,7 +4336,7 @@ func (x *TokenMetaData) String() string { func (*TokenMetaData) ProtoMessage() {} func (x *TokenMetaData) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[43] + mi := &file_hyperOutportBlock_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4058,7 +4349,7 @@ func (x *TokenMetaData) ProtoReflect() protoreflect.Message { // Deprecated: Use TokenMetaData.ProtoReflect.Descriptor instead. func (*TokenMetaData) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{43} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{44} } func (x *TokenMetaData) GetNonce() uint64 { @@ -4121,7 +4412,7 @@ type AdditionalAccountTokenData struct { func (x *AdditionalAccountTokenData) Reset() { *x = AdditionalAccountTokenData{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[44] + mi := &file_hyperOutportBlock_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4134,7 +4425,7 @@ func (x *AdditionalAccountTokenData) String() string { func (*AdditionalAccountTokenData) ProtoMessage() {} func (x *AdditionalAccountTokenData) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[44] + mi := &file_hyperOutportBlock_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4147,7 +4438,7 @@ func (x *AdditionalAccountTokenData) ProtoReflect() protoreflect.Message { // Deprecated: Use AdditionalAccountTokenData.ProtoReflect.Descriptor instead. func (*AdditionalAccountTokenData) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{44} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{45} } func (x *AdditionalAccountTokenData) GetIsNFTCreate() bool { @@ -4175,7 +4466,7 @@ type AdditionalAccountData struct { func (x *AdditionalAccountData) Reset() { *x = AdditionalAccountData{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[45] + mi := &file_hyperOutportBlock_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4188,7 +4479,7 @@ func (x *AdditionalAccountData) String() string { func (*AdditionalAccountData) ProtoMessage() {} func (x *AdditionalAccountData) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[45] + mi := &file_hyperOutportBlock_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4201,7 +4492,7 @@ func (x *AdditionalAccountData) ProtoReflect() protoreflect.Message { // Deprecated: Use AdditionalAccountData.ProtoReflect.Descriptor instead. func (*AdditionalAccountData) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{45} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{46} } func (x *AdditionalAccountData) GetIsSender() bool { @@ -4274,7 +4565,7 @@ type Receipt struct { func (x *Receipt) Reset() { *x = Receipt{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[46] + mi := &file_hyperOutportBlock_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4287,7 +4578,7 @@ func (x *Receipt) String() string { func (*Receipt) ProtoMessage() {} func (x *Receipt) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[46] + mi := &file_hyperOutportBlock_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4300,7 +4591,7 @@ func (x *Receipt) ProtoReflect() protoreflect.Message { // Deprecated: Use Receipt.ProtoReflect.Descriptor instead. func (*Receipt) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{46} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{47} } func (x *Receipt) GetValue() []byte { @@ -4342,7 +4633,7 @@ type BigInt struct { func (x *BigInt) Reset() { *x = BigInt{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[47] + mi := &file_hyperOutportBlock_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4355,7 +4646,7 @@ func (x *BigInt) String() string { func (*BigInt) ProtoMessage() {} func (x *BigInt) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[47] + mi := &file_hyperOutportBlock_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4368,7 +4659,7 @@ func (x *BigInt) ProtoReflect() protoreflect.Message { // Deprecated: Use BigInt.ProtoReflect.Descriptor instead. func (*BigInt) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{47} + return file_hyperOutportBlock_proto_rawDescGZIP(), []int{48} } func (x *BigInt) GetBytes() []byte { @@ -4529,755 +4820,785 @@ var file_hyperOutportBlock_proto_rawDesc = []byte{ 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xc6, - 0x06, 0x0a, 0x11, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, + 0x75, 0x6e, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xe9, + 0x02, 0x0a, 0x11, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x56, 0x32, 0x12, 0x4e, 0x0a, 0x0c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x56, 0x32, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3f, 0x0a, 0x07, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x56, 0x32, 0x2e, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x52, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x42, 0x0a, 0x08, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, - 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x56, - 0x32, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x08, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x12, 0x48, 0x0a, 0x0a, 0x49, 0x6e, 0x76, - 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x56, 0x32, 0x2e, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, - 0x78, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x54, 0x78, 0x73, 0x12, 0x22, 0x0a, 0x04, 0x4c, 0x6f, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x6f, 0x67, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x04, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x52, 0x0a, 0x24, 0x53, 0x63, 0x68, 0x65, 0x64, - 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x53, 0x43, 0x52, 0x53, - 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x24, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, - 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x53, 0x43, 0x52, 0x53, 0x48, 0x61, 0x73, 0x68, - 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x5e, 0x0a, 0x2a, 0x53, - 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, - 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, - 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x2a, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x65, 0x64, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x48, 0x61, 0x73, 0x68, - 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0x50, 0x0a, 0x11, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x25, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, - 0x56, 0x32, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x4d, 0x0a, - 0x0c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x52, 0x0a, 0x24, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x53, 0x43, 0x52, 0x53, 0x48, 0x61, 0x73, + 0x68, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x24, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x65, 0x64, 0x53, 0x43, 0x52, 0x53, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x50, + 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x5e, 0x0a, 0x2a, 0x53, 0x63, 0x68, 0x65, + 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x50, 0x72, 0x65, + 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x2a, 0x53, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x49, + 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x50, + 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0x50, 0x0a, 0x11, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x27, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x4b, 0x0a, 0x0d, - 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x24, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x4c, 0x0a, 0x0f, 0x49, 0x6e, 0x76, - 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, - 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x23, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xdc, 0x06, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x65, 0x76, - 0x48, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x50, 0x72, 0x65, 0x76, - 0x48, 0x61, 0x73, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x50, 0x72, 0x65, 0x76, 0x52, 0x61, 0x6e, 0x64, - 0x53, 0x65, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x50, 0x72, 0x65, 0x76, - 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x64, - 0x53, 0x65, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x64, - 0x53, 0x65, 0x65, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x42, - 0x69, 0x74, 0x6d, 0x61, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x50, 0x75, 0x62, - 0x4b, 0x65, 0x79, 0x73, 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, - 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, - 0x72, 0x64, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, - 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, - 0x6d, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, - 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x31, - 0x0a, 0x0d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, - 0x70, 0x65, 0x52, 0x0d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, - 0x28, 0x0a, 0x0f, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x42, 0x0a, 0x10, 0x4d, 0x69, 0x6e, - 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x69, 0x6e, 0x69, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x10, 0x4d, 0x69, 0x6e, - 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x33, 0x0a, - 0x0b, 0x50, 0x65, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0b, 0x50, 0x65, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x28, - 0x0a, 0x0f, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x65, - 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0f, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x78, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x54, 0x78, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x4d, 0x65, 0x74, 0x61, 0x48, 0x61, 0x73, 0x68, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, - 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x61, - 0x73, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x48, 0x61, - 0x73, 0x68, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, - 0x74, 0x73, 0x48, 0x61, 0x73, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, - 0x44, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, - 0x12, 0x28, 0x0a, 0x0f, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x53, 0x6f, 0x66, 0x74, 0x77, - 0x61, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x41, 0x63, - 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x18, 0x16, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, - 0x46, 0x65, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, - 0x72, 0x46, 0x65, 0x65, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x44, 0x65, 0x76, - 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x22, 0xac, 0x07, 0x0a, 0x0a, 0x4d, 0x65, 0x74, 0x61, 0x48, + 0x25, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x32, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xdc, 0x06, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x45, - 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, 0x70, 0x6f, 0x63, - 0x68, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, - 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x54, 0x69, 0x6d, 0x65, - 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x2e, 0x0a, 0x09, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x6e, - 0x66, 0x6f, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x53, 0x68, 0x61, 0x72, - 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2b, 0x0a, 0x08, 0x50, 0x65, 0x65, 0x72, 0x49, 0x6e, 0x66, - 0x6f, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x50, 0x65, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x50, 0x65, 0x65, 0x72, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, - 0x12, 0x28, 0x0a, 0x0f, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, - 0x75, 0x72, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x4c, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x75, - 0x62, 0x4b, 0x65, 0x79, 0x73, 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x0d, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, - 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x08, 0x50, 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x12, 0x22, 0x0a, 0x0c, - 0x50, 0x72, 0x65, 0x76, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x0c, 0x50, 0x72, 0x65, 0x76, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, - 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, - 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, - 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x36, 0x0a, 0x16, 0x56, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, - 0x73, 0x68, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x16, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, - 0x12, 0x42, 0x0a, 0x10, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x52, 0x10, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, - 0x48, 0x61, 0x73, 0x68, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x52, 0x65, 0x63, 0x65, - 0x69, 0x70, 0x74, 0x73, 0x48, 0x61, 0x73, 0x68, 0x12, 0x31, 0x0a, 0x0a, 0x45, 0x70, 0x6f, 0x63, - 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, - 0x0a, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x43, - 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x43, 0x68, - 0x61, 0x69, 0x6e, 0x49, 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, - 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, - 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, - 0x28, 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, - 0x65, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, - 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x41, 0x63, 0x63, - 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x49, 0x6e, 0x45, 0x70, - 0x6f, 0x63, 0x68, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x16, 0x41, 0x63, 0x63, 0x75, 0x6d, - 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x49, 0x6e, 0x45, 0x70, 0x6f, 0x63, - 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, - 0x65, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, - 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x44, 0x65, 0x76, 0x46, 0x65, - 0x65, 0x73, 0x49, 0x6e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x0e, 0x44, 0x65, 0x76, 0x46, 0x65, 0x65, 0x73, 0x49, 0x6e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, - 0x18, 0x0a, 0x07, 0x54, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x07, 0x54, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x64, 0x22, 0xcc, 0x01, 0x0a, 0x0f, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x61, 0x73, - 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x48, 0x61, 0x73, 0x68, 0x12, 0x24, 0x0a, - 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, - 0x64, 0x49, 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x53, - 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x52, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x18, 0x0a, - 0x07, 0x54, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, - 0x54, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, - 0x70, 0x65, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x65, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x64, 0x22, 0x46, 0x0a, 0x0a, 0x50, 0x65, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x06, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x68, - 0x61, 0x72, 0x64, 0x49, 0x64, 0x44, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0b, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x64, 0x44, 0x65, 0x73, 0x74, 0x22, 0xb3, 0x04, 0x0a, - 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, - 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, - 0x72, 0x64, 0x49, 0x44, 0x12, 0x25, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1f, 0x0a, 0x04, 0x42, - 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x44, 0x0a, 0x14, - 0x49, 0x6e, 0x74, 0x72, 0x61, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x14, 0x49, 0x6e, - 0x74, 0x72, 0x61, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x52, - 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x53, - 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, - 0x12, 0x3a, 0x0a, 0x18, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x41, 0x63, 0x63, - 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x18, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x41, 0x63, 0x63, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, + 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x50, + 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x50, 0x72, 0x65, 0x76, 0x52, + 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x50, + 0x72, 0x65, 0x76, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, + 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, + 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x75, 0x62, 0x4b, 0x65, + 0x79, 0x73, 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, + 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x12, 0x18, 0x0a, + 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, + 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, + 0x74, 0x61, 0x6d, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x54, 0x69, 0x6d, 0x65, + 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x45, + 0x70, 0x6f, 0x63, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, 0x70, 0x6f, 0x63, + 0x68, 0x12, 0x31, 0x0a, 0x0d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x4c, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x42, 0x0a, 0x10, + 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, + 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, + 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x10, + 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, + 0x12, 0x33, 0x0a, 0x0b, 0x50, 0x65, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, + 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x65, + 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0b, 0x50, 0x65, 0x65, 0x72, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, + 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, + 0x68, 0x12, 0x28, 0x0a, 0x0f, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, + 0x73, 0x68, 0x65, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0f, 0x4d, 0x65, 0x74, 0x61, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x54, + 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x54, 0x78, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x61, 0x73, 0x68, 0x18, 0x12, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x12, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x48, 0x61, 0x73, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, + 0x73, 0x48, 0x61, 0x73, 0x68, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x52, 0x65, 0x63, + 0x65, 0x69, 0x70, 0x74, 0x73, 0x48, 0x61, 0x73, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x61, + 0x69, 0x6e, 0x49, 0x44, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x43, 0x68, 0x61, 0x69, + 0x6e, 0x49, 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x53, 0x6f, + 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, + 0x0f, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, + 0x18, 0x16, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, + 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x76, 0x65, 0x6c, + 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, + 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x12, 0x1a, 0x0a, + 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x22, 0xac, 0x07, 0x0a, 0x0a, 0x4d, 0x65, + 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, + 0x70, 0x6f, 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x69, + 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x54, + 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x2e, 0x0a, 0x09, 0x53, 0x68, 0x61, 0x72, + 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x53, + 0x68, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2b, 0x0a, 0x08, 0x50, 0x65, 0x65, 0x72, + 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x50, 0x65, 0x65, + 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x53, 0x69, 0x67, + 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x4c, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x24, 0x0a, + 0x0d, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x42, 0x69, 0x74, + 0x6d, 0x61, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x50, 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x12, + 0x22, 0x0a, 0x0c, 0x50, 0x72, 0x65, 0x76, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x50, 0x72, 0x65, 0x76, 0x52, 0x61, 0x6e, 0x64, 0x53, + 0x65, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x12, + 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x08, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x36, 0x0a, 0x16, 0x56, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x6f, 0x6f, + 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x16, 0x56, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x6f, 0x6f, 0x74, 0x48, + 0x61, 0x73, 0x68, 0x12, 0x42, 0x0a, 0x10, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x10, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x65, 0x63, 0x65, 0x69, + 0x70, 0x74, 0x73, 0x48, 0x61, 0x73, 0x68, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x52, + 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x48, 0x61, 0x73, 0x68, 0x12, 0x31, 0x0a, 0x0a, 0x45, + 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x52, 0x0a, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x18, + 0x0a, 0x07, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x07, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x53, 0x6f, 0x66, 0x74, + 0x77, 0x61, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x0f, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, + 0x64, 0x46, 0x65, 0x65, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x16, - 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, - 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x16, 0x53, 0x63, - 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, - 0x46, 0x65, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, - 0x64, 0x47, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, - 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x15, 0x53, 0x63, 0x68, 0x65, + 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x49, + 0x6e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x16, 0x41, 0x63, + 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x49, 0x6e, 0x45, + 0x70, 0x6f, 0x63, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, + 0x72, 0x46, 0x65, 0x65, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x44, 0x65, 0x76, + 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x44, 0x65, + 0x76, 0x46, 0x65, 0x65, 0x73, 0x49, 0x6e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x18, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x0e, 0x44, 0x65, 0x76, 0x46, 0x65, 0x65, 0x73, 0x49, 0x6e, 0x45, 0x70, 0x6f, + 0x63, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x19, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x07, 0x54, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, + 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, + 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x22, 0xcc, 0x01, 0x0a, 0x0f, 0x4d, 0x69, 0x6e, + 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, + 0x48, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x48, 0x61, 0x73, 0x68, + 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x53, + 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0f, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, + 0x12, 0x18, 0x0a, 0x07, 0x54, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x07, 0x54, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x04, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x52, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x22, 0x46, 0x0a, 0x0a, 0x50, 0x65, 0x65, 0x72, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x20, 0x0a, + 0x0b, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x64, 0x44, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0b, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x64, 0x44, 0x65, 0x73, 0x74, 0x22, + 0xb3, 0x04, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, + 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, + 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x25, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1e, + 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, + 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1f, + 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, + 0x44, 0x0a, 0x14, 0x49, 0x6e, 0x74, 0x72, 0x61, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4d, 0x69, 0x6e, + 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, + 0x14, 0x49, 0x6e, 0x74, 0x72, 0x61, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4d, 0x69, 0x6e, 0x69, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x11, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x48, + 0x61, 0x73, 0x68, 0x12, 0x3a, 0x0a, 0x18, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, + 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x18, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, + 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x12, + 0x36, 0x0a, 0x16, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x44, 0x65, 0x76, 0x65, + 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x16, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, + 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, + 0x47, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x15, 0x53, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x50, 0x65, 0x6e, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, - 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, - 0x65, 0x64, 0x47, 0x61, 0x73, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x12, 0x32, - 0x0a, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x52, 0x65, - 0x66, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x53, 0x63, - 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x52, 0x65, 0x66, 0x75, 0x6e, 0x64, - 0x65, 0x64, 0x22, 0xbb, 0x04, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x29, - 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1f, 0x0a, 0x04, 0x42, 0x6f, 0x64, - 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x44, 0x0a, 0x14, 0x49, 0x6e, - 0x74, 0x72, 0x61, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x14, 0x49, 0x6e, 0x74, 0x72, - 0x61, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, - 0x12, 0x2c, 0x0a, 0x11, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x52, 0x6f, 0x6f, - 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x53, 0x63, 0x68, - 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3a, - 0x0a, 0x18, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x41, 0x63, 0x63, 0x75, 0x6d, - 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x18, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x41, 0x63, 0x63, 0x75, 0x6d, - 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x53, 0x63, - 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, - 0x46, 0x65, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x16, 0x53, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x65, 0x64, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, - 0x65, 0x73, 0x12, 0x32, 0x0a, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, - 0x61, 0x73, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x15, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, - 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, - 0x47, 0x61, 0x73, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x14, - 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x52, 0x65, 0x66, 0x75, - 0x6e, 0x64, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x53, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x52, 0x65, 0x66, 0x75, 0x6e, 0x64, 0x65, 0x64, - 0x22, 0x97, 0x04, 0x0a, 0x09, 0x53, 0x68, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, - 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x48, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x4c, 0x0a, 0x15, 0x53, 0x68, 0x61, 0x72, - 0x64, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, - 0x15, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x50, 0x72, 0x65, 0x76, 0x52, 0x61, - 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x50, 0x72, - 0x65, 0x76, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x75, - 0x62, 0x4b, 0x65, 0x79, 0x73, 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x0d, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, - 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x54, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x07, 0x54, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, - 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1a, - 0x0a, 0x08, 0x50, 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x08, 0x50, 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, - 0x6e, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, - 0x12, 0x32, 0x0a, 0x14, 0x4e, 0x75, 0x6d, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x69, - 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, - 0x4e, 0x75, 0x6d, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, - 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x41, - 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x12, 0x24, - 0x0a, 0x0d, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x18, - 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, - 0x46, 0x65, 0x65, 0x73, 0x12, 0x34, 0x0a, 0x15, 0x4c, 0x61, 0x73, 0x74, 0x49, 0x6e, 0x63, 0x6c, - 0x75, 0x64, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x15, 0x4c, 0x61, 0x73, 0x74, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, - 0x64, 0x4d, 0x65, 0x74, 0x61, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x0a, 0x45, - 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x4e, 0x0a, 0x14, 0x4c, 0x61, 0x73, - 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x14, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, - 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x2e, 0x0a, 0x09, 0x45, 0x63, 0x6f, - 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x63, 0x6f, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x73, 0x52, 0x09, - 0x45, 0x63, 0x6f, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x73, 0x22, 0x99, 0x03, 0x0a, 0x13, 0x45, 0x70, - 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, + 0x64, 0x12, 0x32, 0x0a, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, + 0x73, 0x52, 0x65, 0x66, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x52, 0x65, 0x66, + 0x75, 0x6e, 0x64, 0x65, 0x64, 0x22, 0xbb, 0x04, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, + 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, + 0x44, 0x12, 0x29, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1f, 0x0a, 0x04, + 0x42, 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x44, 0x0a, + 0x14, 0x49, 0x6e, 0x74, 0x72, 0x61, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4d, 0x69, 0x6e, 0x69, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x14, 0x49, + 0x6e, 0x74, 0x72, 0x61, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, + 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, + 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, + 0x68, 0x12, 0x3a, 0x0a, 0x18, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x41, 0x63, + 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x18, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x41, 0x63, + 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x12, 0x36, 0x0a, + 0x16, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, + 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x16, 0x53, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, + 0x72, 0x46, 0x65, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x64, 0x47, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, + 0x73, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x15, 0x53, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x69, 0x7a, + 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, + 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x12, + 0x32, 0x0a, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x52, + 0x65, 0x66, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x53, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x52, 0x65, 0x66, 0x75, 0x6e, + 0x64, 0x65, 0x64, 0x22, 0x97, 0x04, 0x0a, 0x09, 0x53, 0x68, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x52, - 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, - 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x34, 0x0a, 0x15, 0x46, 0x69, 0x72, 0x73, 0x74, + 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x4c, 0x0a, 0x15, 0x53, + 0x68, 0x61, 0x72, 0x64, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x52, 0x15, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x50, 0x72, 0x65, + 0x76, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x0c, 0x50, 0x72, 0x65, 0x76, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x12, 0x24, 0x0a, + 0x0d, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x42, 0x69, 0x74, + 0x6d, 0x61, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x07, 0x54, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x52, + 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, + 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x08, 0x50, 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x12, 0x14, 0x0a, + 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, + 0x6e, 0x63, 0x65, 0x12, 0x32, 0x0a, 0x14, 0x4e, 0x75, 0x6d, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x14, 0x4e, 0x75, 0x6d, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x69, 0x6e, + 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x75, 0x6d, + 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x0f, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, + 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, + 0x65, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, + 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x12, 0x34, 0x0a, 0x15, 0x4c, 0x61, 0x73, 0x74, 0x49, + 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x4e, 0x6f, 0x6e, 0x63, 0x65, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, 0x4c, 0x61, 0x73, 0x74, 0x49, 0x6e, 0x63, 0x6c, + 0x75, 0x64, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x22, 0x8c, 0x01, + 0x0a, 0x0a, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x4e, 0x0a, 0x14, + 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x68, 0x61, + 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x14, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, + 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x2e, 0x0a, 0x09, + 0x45, 0x63, 0x6f, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x63, 0x6f, 0x6e, 0x6f, 0x6d, 0x69, 0x63, + 0x73, 0x52, 0x09, 0x45, 0x63, 0x6f, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x73, 0x22, 0x99, 0x03, 0x0a, + 0x13, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x1e, + 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1a, + 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x08, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x34, 0x0a, 0x15, 0x46, 0x69, + 0x72, 0x73, 0x74, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x15, 0x46, 0x69, 0x72, 0x73, 0x74, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x15, 0x46, 0x69, 0x72, 0x73, 0x74, 0x50, 0x65, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x34, 0x0a, + 0x12, 0x34, 0x0a, 0x15, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, + 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x15, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x4d, 0x65, 0x74, - 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x15, 0x4c, 0x61, - 0x73, 0x74, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x12, 0x50, 0x0a, 0x17, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x69, - 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x06, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x69, 0x6e, - 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x17, 0x50, 0x65, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x4e, - 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x2c, 0x0a, 0x11, 0x53, 0x63, 0x68, 0x65, 0x64, - 0x75, 0x6c, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x11, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x52, 0x6f, 0x6f, - 0x74, 0x48, 0x61, 0x73, 0x68, 0x22, 0xfd, 0x02, 0x0a, 0x09, 0x45, 0x63, 0x6f, 0x6e, 0x6f, 0x6d, - 0x69, 0x63, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, - 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, - 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x2c, 0x0a, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x6f, - 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x6f, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4e, 0x65, 0x77, 0x6c, - 0x79, 0x4d, 0x69, 0x6e, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x54, - 0x6f, 0x74, 0x61, 0x6c, 0x4e, 0x65, 0x77, 0x6c, 0x79, 0x4d, 0x69, 0x6e, 0x74, 0x65, 0x64, 0x12, - 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x65, 0x72, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x73, 0x50, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x4a, 0x0a, 0x20, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x73, 0x46, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, - 0x75, 0x73, 0x74, 0x61, 0x69, 0x6e, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x20, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x46, 0x6f, 0x72, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x75, 0x73, 0x74, 0x61, 0x69, 0x6e, 0x61, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x72, 0x69, - 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x72, - 0x69, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x50, 0x72, 0x65, 0x76, 0x45, 0x70, 0x6f, 0x63, 0x68, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x13, 0x50, 0x72, 0x65, 0x76, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x2e, 0x0a, 0x12, 0x50, 0x72, 0x65, 0x76, 0x45, 0x70, 0x6f, - 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x12, 0x50, 0x72, 0x65, 0x76, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x48, 0x61, 0x73, 0x68, 0x22, 0xad, 0x01, 0x0a, 0x08, 0x50, 0x65, 0x65, 0x72, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1c, 0x0a, 0x09, - 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x09, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x29, 0x0a, 0x06, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x41, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, - 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, - 0x61, 0x6d, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0xf9, 0x07, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x4c, 0x0a, 0x0c, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x28, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x64, 0x0a, 0x14, 0x53, 0x6d, 0x61, 0x72, 0x74, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x2e, 0x53, 0x6d, + 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x50, 0x0a, 0x17, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, + 0x17, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, + 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x14, + 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, + 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x2c, 0x0a, 0x11, 0x53, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, + 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x22, 0xfd, 0x02, 0x0a, 0x09, 0x45, 0x63, 0x6f, + 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, + 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x54, 0x6f, 0x74, + 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x2c, 0x0a, 0x11, 0x54, 0x6f, 0x74, 0x61, + 0x6c, 0x54, 0x6f, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x6f, 0x44, 0x69, 0x73, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4e, + 0x65, 0x77, 0x6c, 0x79, 0x4d, 0x69, 0x6e, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x10, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4e, 0x65, 0x77, 0x6c, 0x79, 0x4d, 0x69, 0x6e, 0x74, + 0x65, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x65, 0x72, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x52, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x73, 0x50, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x4a, 0x0a, 0x20, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x46, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x53, 0x75, 0x73, 0x74, 0x61, 0x69, 0x6e, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x20, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x46, + 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x75, 0x73, 0x74, 0x61, 0x69, + 0x6e, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x4e, 0x6f, 0x64, 0x65, + 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x4e, 0x6f, 0x64, + 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x50, 0x72, 0x65, 0x76, 0x45, 0x70, + 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x13, 0x50, 0x72, 0x65, 0x76, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x2e, 0x0a, 0x12, 0x50, 0x72, 0x65, 0x76, + 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, 0x50, 0x72, 0x65, 0x76, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x48, 0x61, 0x73, 0x68, 0x22, 0xad, 0x01, 0x0a, 0x08, 0x50, 0x65, 0x65, + 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x1c, 0x0a, 0x09, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x09, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x29, 0x0a, + 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, + 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x54, 0x69, 0x6d, + 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0xf9, 0x07, 0x0a, 0x0f, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x4c, 0x0a, 0x0c, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x64, 0x0a, 0x14, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x14, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x3d, 0x0a, - 0x07, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x07, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x40, 0x0a, 0x08, - 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x12, 0x46, - 0x0a, 0x0a, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x18, 0x05, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x2e, 0x49, 0x6e, 0x76, 0x61, 0x6c, - 0x69, 0x64, 0x54, 0x78, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x49, 0x6e, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x12, 0x22, 0x0a, 0x04, 0x4c, 0x6f, 0x67, 0x73, 0x18, 0x06, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x6f, 0x67, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x52, 0x0a, 0x24, 0x53, 0x63, - 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x53, - 0x43, 0x52, 0x53, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x24, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, - 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x53, 0x43, 0x52, 0x53, 0x48, - 0x61, 0x73, 0x68, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x5e, - 0x0a, 0x2a, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x65, 0x64, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x48, 0x61, 0x73, - 0x68, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x08, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x2a, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x48, - 0x61, 0x73, 0x68, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0x4e, - 0x0a, 0x11, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x78, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x57, - 0x0a, 0x19, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x24, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x43, 0x52, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x4d, 0x0a, 0x0c, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x27, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x4b, 0x0a, 0x0d, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, - 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x1a, 0x4c, 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, + 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, + 0x2e, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x14, 0x53, 0x6d, 0x61, 0x72, + 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, + 0x12, 0x3d, 0x0a, 0x07, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, + 0x40, 0x0a, 0x08, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, + 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, + 0x73, 0x12, 0x46, 0x0a, 0x0a, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x2e, 0x49, 0x6e, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x49, + 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x12, 0x22, 0x0a, 0x04, 0x4c, 0x6f, 0x67, + 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x4c, 0x6f, 0x67, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x52, 0x0a, + 0x24, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x65, 0x64, 0x53, 0x43, 0x52, 0x53, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x24, 0x53, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x53, 0x43, + 0x52, 0x53, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x12, 0x5e, 0x0a, 0x2a, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, + 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, + 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x2a, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, + 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, + 0x78, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x1a, 0x4e, 0x0a, 0x11, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x22, 0x5d, 0x0a, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, - 0x47, 0x61, 0x73, 0x55, 0x73, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x47, - 0x61, 0x73, 0x55, 0x73, 0x65, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x46, 0x65, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x03, 0x46, 0x65, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x49, 0x6e, 0x69, 0x74, - 0x69, 0x61, 0x6c, 0x50, 0x61, 0x69, 0x64, 0x46, 0x65, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x0e, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x50, 0x61, 0x69, 0x64, 0x46, 0x65, 0x65, - 0x22, 0x90, 0x01, 0x0a, 0x06, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x34, 0x0a, 0x0b, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x28, 0x0a, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x65, 0x65, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x26, 0x0a, 0x0e, 0x45, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, + 0x01, 0x1a, 0x57, 0x0a, 0x19, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x24, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x43, 0x52, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x4d, 0x0a, 0x0c, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x27, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x4b, 0x0a, 0x0d, 0x52, 0x65, 0x63, + 0x65, 0x69, 0x70, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x4c, 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x54, 0x78, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x22, 0x5d, 0x0a, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x18, 0x0a, 0x07, 0x47, 0x61, 0x73, 0x55, 0x73, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x07, 0x47, 0x61, 0x73, 0x55, 0x73, 0x65, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x46, 0x65, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x46, 0x65, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x49, + 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x50, 0x61, 0x69, 0x64, 0x46, 0x65, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x50, 0x61, 0x69, 0x64, + 0x46, 0x65, 0x65, 0x22, 0x90, 0x01, 0x0a, 0x06, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x34, + 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x65, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x26, + 0x0a, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x22, 0x8a, 0x02, 0x0a, 0x08, 0x54, 0x78, 0x49, 0x6e, 0x66, + 0x6f, 0x56, 0x32, 0x12, 0x32, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x64, 0x54, 0x78, 0x52, 0x0b, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x28, 0x0a, 0x07, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, + 0x70, 0x74, 0x52, 0x07, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x45, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x22, 0xf6, 0x01, 0x0a, 0x08, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x32, - 0x12, 0x34, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x42, 0x0a, 0x14, 0x53, 0x6d, 0x61, 0x72, - 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, - 0x43, 0x52, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x14, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x1e, 0x0a, 0x04, - 0x4c, 0x6f, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x4c, 0x6f, 0x67, 0x52, 0x04, 0x4c, 0x6f, 0x67, 0x73, 0x22, 0xa9, 0x01, 0x0a, - 0x07, 0x53, 0x43, 0x52, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4c, 0x0a, 0x13, 0x53, 0x6d, 0x61, 0x72, - 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x6d, - 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x52, 0x13, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x28, 0x0a, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x22, 0x3f, 0x0a, 0x07, 0x4c, 0x6f, 0x67, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1c, 0x0a, 0x03, 0x4c, - 0x6f, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x4c, 0x6f, 0x67, 0x52, 0x03, 0x4c, 0x6f, 0x67, 0x22, 0x5d, 0x0a, 0x0a, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x27, 0x0a, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x54, 0x78, 0x52, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x22, 0xa6, 0x01, 0x0a, 0x14, 0x48, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x47, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x47, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x47, 0x61, 0x73, 0x52, 0x65, 0x66, 0x75, 0x6e, 0x64, - 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x47, 0x61, 0x73, 0x52, 0x65, 0x66, - 0x75, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x47, 0x61, 0x73, 0x50, 0x65, 0x6e, 0x61, - 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x47, 0x61, 0x73, - 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x4d, 0x61, 0x78, - 0x47, 0x61, 0x73, 0x50, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0e, 0x4d, 0x61, 0x78, 0x47, 0x61, 0x73, 0x50, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x22, 0x4b, 0x0a, 0x13, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x61, - 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x75, 0x62, 0x6c, - 0x69, 0x63, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x50, 0x75, 0x62, - 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x92, - 0x01, 0x0a, 0x10, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x61, 0x74, - 0x69, 0x6e, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x14, 0x0a, - 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, 0x70, - 0x6f, 0x63, 0x68, 0x12, 0x4e, 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, - 0x73, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x14, 0x56, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x49, - 0x6e, 0x66, 0x6f, 0x22, 0xc3, 0x01, 0x0a, 0x09, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x65, - 0x72, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x52, - 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x12, - 0x2a, 0x0a, 0x10, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x57, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x70, 0x6f, - 0x73, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x57, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, - 0x68, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, - 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x58, 0x0a, 0x0a, 0x52, 0x6f, 0x75, - 0x6e, 0x64, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, - 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, - 0x44, 0x12, 0x30, 0x0a, 0x0a, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x6f, - 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x49, - 0x6e, 0x66, 0x6f, 0x22, 0x1d, 0x0a, 0x07, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x12, - 0x0a, 0x04, 0x4b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x04, 0x4b, 0x65, - 0x79, 0x73, 0x22, 0x8c, 0x02, 0x0a, 0x11, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, - 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, - 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, - 0x49, 0x44, 0x12, 0x6c, 0x0a, 0x16, 0x53, 0x68, 0x61, 0x72, 0x64, 0x56, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x2e, 0x53, 0x68, 0x61, - 0x72, 0x64, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x50, 0x75, 0x62, 0x4b, - 0x65, 0x79, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x16, 0x53, 0x68, 0x61, 0x72, 0x64, 0x56, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, - 0x12, 0x14, 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0x59, 0x0a, 0x1b, 0x53, 0x68, 0x61, 0x72, 0x64, 0x56, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, - 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x22, 0xf7, 0x01, 0x0a, 0x08, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x18, - 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x12, 0x4e, 0x0a, 0x0f, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, - 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x0f, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, - 0x1a, 0x59, 0x0a, 0x14, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4a, 0x0a, 0x0e, 0x46, - 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x18, 0x0a, - 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, - 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x48, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x48, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x22, 0x21, 0x0a, 0x05, 0x53, 0x68, 0x61, 0x72, 0x64, - 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x22, 0x38, 0x0a, 0x04, 0x42, 0x6f, - 0x64, 0x79, 0x12, 0x30, 0x0a, 0x0a, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, - 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x0a, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x73, 0x22, 0xb4, 0x01, 0x0a, 0x09, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0c, 0x52, 0x08, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x28, - 0x0a, 0x0f, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, - 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x65, 0x6e, 0x64, - 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x1f, - 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0b, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x22, 0xbb, 0x03, 0x0a, 0x0b, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x4e, - 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x63, 0x76, 0x41, 0x64, - 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x52, 0x63, 0x76, 0x41, 0x64, 0x64, - 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x63, 0x76, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x52, 0x63, 0x76, 0x55, 0x73, 0x65, 0x72, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x53, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, 0x12, 0x20, 0x0a, - 0x0b, 0x53, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x0b, 0x53, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x08, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x47, - 0x61, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x47, - 0x61, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x43, - 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x43, 0x68, - 0x61, 0x69, 0x6e, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, - 0x1c, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, - 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x47, 0x75, 0x61, 0x72, 0x64, - 0x69, 0x61, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x47, - 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x47, - 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, - 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x47, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, - 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0xf1, 0x03, 0x0a, 0x13, 0x53, 0x6d, - 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x64, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x09, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x54, 0x78, 0x73, + 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, + 0x72, 0x61, 0x70, 0x70, 0x65, 0x64, 0x54, 0x78, 0x52, 0x09, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x54, 0x78, 0x73, 0x12, 0x1e, 0x0a, 0x04, 0x4c, 0x6f, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x0a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x6f, 0x67, 0x52, 0x04, 0x4c, + 0x6f, 0x67, 0x73, 0x22, 0xe4, 0x06, 0x0a, 0x09, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x64, 0x54, + 0x78, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x63, 0x76, 0x41, 0x64, 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, - 0x52, 0x63, 0x76, 0x41, 0x64, 0x64, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x6e, 0x64, 0x41, 0x64, - 0x64, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x53, 0x6e, 0x64, 0x41, 0x64, 0x64, - 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, - 0x64, 0x64, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x52, 0x65, 0x6c, 0x61, 0x79, - 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x44, - 0x61, 0x74, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x65, 0x76, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x50, 0x72, 0x65, 0x76, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, - 0x26, 0x0a, 0x0e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x54, 0x78, 0x48, 0x61, 0x73, - 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, - 0x6c, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x73, 0x4c, 0x69, - 0x6d, 0x69, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x47, 0x61, 0x73, 0x4c, 0x69, - 0x6d, 0x69, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, - 0x1a, 0x0a, 0x08, 0x43, 0x61, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x08, 0x43, 0x61, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x43, - 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x0c, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, - 0x24, 0x0a, 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, - 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x4f, - 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x45, 0x0a, - 0x03, 0x4c, 0x6f, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x24, - 0x0a, 0x06, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x73, 0x22, 0x95, 0x01, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x18, - 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x49, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x6f, 0x70, 0x69, - 0x63, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x06, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x73, - 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x26, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0e, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x22, 0x66, 0x0a, 0x08, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x54, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x14, - 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x63, 0x76, 0x41, 0x64, 0x64, 0x72, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x52, 0x63, 0x76, 0x41, 0x64, 0x64, 0x72, 0x12, 0x14, - 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, - 0x70, 0x6f, 0x63, 0x68, 0x22, 0xd1, 0x01, 0x0a, 0x0e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x73, 0x12, 0x44, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x44, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x22, 0xff, 0x01, 0x0a, 0x10, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, - 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, - 0x6e, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1e, 0x0a, - 0x0a, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x30, 0x0a, - 0x08, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, - 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x49, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, - 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x41, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x22, 0xb9, 0x01, 0x0a, 0x0d, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, - 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, - 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, - 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, - 0x12, 0x1c, 0x0a, 0x09, 0x52, 0x6f, 0x79, 0x61, 0x6c, 0x74, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x09, 0x52, 0x6f, 0x79, 0x61, 0x6c, 0x74, 0x69, 0x65, 0x73, 0x12, 0x12, - 0x0a, 0x04, 0x48, 0x61, 0x73, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x48, 0x61, - 0x73, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x52, 0x49, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0c, - 0x52, 0x04, 0x55, 0x52, 0x49, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x22, 0x3e, 0x0a, 0x1a, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x73, 0x4e, 0x46, 0x54, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x49, 0x73, 0x4e, 0x46, 0x54, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x22, 0xa3, 0x02, 0x0a, 0x15, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x08, 0x49, 0x73, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, - 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4f, - 0x77, 0x6e, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x43, 0x75, 0x72, 0x72, - 0x65, 0x6e, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, - 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, - 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, - 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x64, 0x65, 0x48, 0x61, 0x73, 0x68, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x08, 0x43, 0x6f, 0x64, 0x65, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1a, 0x0a, 0x08, - 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, - 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x6f, 0x64, 0x65, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, - 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x65, 0x0a, 0x07, - 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x53, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, - 0x53, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x54, - 0x78, 0x48, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x54, 0x78, 0x48, - 0x61, 0x73, 0x68, 0x22, 0x1e, 0x0a, 0x06, 0x42, 0x69, 0x67, 0x49, 0x6e, 0x74, 0x12, 0x14, 0x0a, - 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x62, 0x79, - 0x74, 0x65, 0x73, 0x2a, 0xa4, 0x01, 0x0a, 0x0a, 0x50, 0x65, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x11, 0x0a, 0x0d, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x50, - 0x65, 0x65, 0x72, 0x55, 0x6e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x10, 0x02, 0x12, 0x16, - 0x0a, 0x12, 0x50, 0x65, 0x65, 0x72, 0x44, 0x65, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x65, 0x65, 0x72, 0x4a, 0x61, - 0x69, 0x6c, 0x65, 0x64, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x65, 0x65, 0x72, 0x55, 0x6e, - 0x4a, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x65, 0x65, 0x72, - 0x53, 0x6c, 0x61, 0x73, 0x68, 0x65, 0x64, 0x10, 0x06, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x65, 0x65, - 0x72, 0x52, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x10, 0x07, 0x2a, 0x88, 0x01, 0x0a, 0x04, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x78, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0x00, - 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0x1e, - 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x65, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0x3c, 0x12, - 0x1c, 0x0a, 0x18, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0x5a, 0x12, 0x10, 0x0a, - 0x0c, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0x78, 0x12, - 0x11, 0x0a, 0x0c, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x10, - 0x96, 0x01, 0x12, 0x11, 0x0a, 0x0c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x10, 0xff, 0x01, 0x42, 0x51, 0x5a, 0x4f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x76, 0x65, 0x72, 0x73, 0x78, 0x2f, 0x6d, - 0x78, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2d, 0x77, 0x73, 0x2d, 0x63, 0x6f, 0x6e, 0x6e, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x2d, 0x66, 0x69, 0x72, 0x65, 0x68, 0x6f, 0x73, 0x65, 0x2d, 0x67, 0x6f, - 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x68, 0x79, 0x70, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x6f, - 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x52, 0x63, 0x76, 0x41, 0x64, 0x64, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x63, 0x76, 0x55, 0x73, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x52, 0x63, + 0x76, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x6e, 0x64, + 0x41, 0x64, 0x64, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x53, 0x6e, 0x64, 0x41, + 0x64, 0x64, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x53, 0x6e, 0x64, 0x55, 0x73, 0x65, + 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x08, 0x47, 0x61, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, + 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x07, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x22, 0x0a, + 0x0c, 0x47, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x47, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x41, 0x64, 0x64, + 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x47, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, + 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x47, 0x75, + 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, + 0x20, 0x0a, 0x0b, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x18, 0x10, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x64, 0x64, + 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x12, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x65, + 0x76, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x50, + 0x72, 0x65, 0x76, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x72, 0x69, + 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x18, 0x14, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x0e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x54, 0x78, 0x48, 0x61, 0x73, + 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x61, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x15, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x08, 0x43, 0x61, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, + 0x0c, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x16, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x12, 0x24, 0x0a, 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x0e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, + 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, + 0x18, 0x1a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x14, 0x0a, + 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, 0x70, + 0x6f, 0x63, 0x68, 0x12, 0x25, 0x0a, 0x06, 0x54, 0x78, 0x54, 0x79, 0x70, 0x65, 0x18, 0x1c, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x78, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x06, 0x54, 0x78, 0x54, 0x79, 0x70, 0x65, 0x22, 0xa9, 0x01, 0x0a, 0x07, 0x53, + 0x43, 0x52, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4c, 0x0a, 0x13, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x6d, 0x61, 0x72, + 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, + 0x13, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x12, 0x28, 0x0a, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x65, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x26, + 0x0a, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x22, 0x3f, 0x0a, 0x07, 0x4c, 0x6f, 0x67, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1c, 0x0a, 0x03, 0x4c, 0x6f, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, + 0x6f, 0x67, 0x52, 0x03, 0x4c, 0x6f, 0x67, 0x22, 0x5d, 0x0a, 0x0a, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x27, 0x0a, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x54, 0x78, 0x52, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, + 0x0a, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x22, 0xa6, 0x01, 0x0a, 0x14, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x20, 0x0a, 0x0b, 0x47, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x47, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x47, 0x61, 0x73, 0x52, 0x65, 0x66, 0x75, 0x6e, 0x64, 0x65, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x47, 0x61, 0x73, 0x52, 0x65, 0x66, 0x75, 0x6e, + 0x64, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x47, 0x61, 0x73, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x69, + 0x7a, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x47, 0x61, 0x73, 0x50, 0x65, + 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x4d, 0x61, 0x78, 0x47, 0x61, + 0x73, 0x50, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0e, 0x4d, 0x61, 0x78, 0x47, 0x61, 0x73, 0x50, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, + 0x4b, 0x0a, 0x13, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x61, 0x74, 0x69, + 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, + 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x50, 0x75, 0x62, 0x6c, 0x69, + 0x63, 0x4b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x92, 0x01, 0x0a, + 0x10, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x61, 0x74, 0x69, 0x6e, + 0x67, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x45, + 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, 0x70, 0x6f, 0x63, + 0x68, 0x12, 0x4e, 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, + 0x61, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x14, 0x56, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, + 0x6f, 0x22, 0xc3, 0x01, 0x0a, 0x09, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, + 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0e, 0x53, + 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x12, 0x2a, 0x0a, + 0x10, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x57, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x57, 0x61, + 0x73, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, + 0x72, 0x64, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, + 0x64, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x58, 0x0a, 0x0a, 0x52, 0x6f, 0x75, 0x6e, 0x64, + 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, + 0x30, 0x0a, 0x0a, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x6f, 0x75, 0x6e, + 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x49, 0x6e, 0x66, + 0x6f, 0x22, 0x1d, 0x0a, 0x07, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x12, 0x0a, 0x04, + 0x4b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x04, 0x4b, 0x65, 0x79, 0x73, + 0x22, 0x8c, 0x02, 0x0a, 0x11, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x50, + 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, + 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, + 0x12, 0x6c, 0x0a, 0x16, 0x53, 0x68, 0x61, 0x72, 0x64, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x6f, 0x72, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x34, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x6f, 0x72, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x16, 0x53, 0x68, 0x61, 0x72, 0x64, 0x56, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x14, + 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, + 0x70, 0x6f, 0x63, 0x68, 0x1a, 0x59, 0x0a, 0x1b, 0x53, 0x68, 0x61, 0x72, 0x64, 0x56, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x75, 0x62, + 0x4b, 0x65, 0x79, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, + 0xf7, 0x01, 0x0a, 0x08, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, + 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, + 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x4e, + 0x0a, 0x0f, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x41, + 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x1a, 0x59, + 0x0a, 0x14, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4a, 0x0a, 0x0e, 0x46, 0x69, 0x6e, + 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x53, + 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, + 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, + 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x48, 0x61, 0x73, 0x68, 0x22, 0x21, 0x0a, 0x05, 0x53, 0x68, 0x61, 0x72, 0x64, 0x12, 0x18, + 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x22, 0x38, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, + 0x12, 0x30, 0x0a, 0x0a, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x69, 0x6e, + 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x0a, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x73, 0x22, 0xb4, 0x01, 0x0a, 0x09, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0c, 0x52, 0x08, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0f, + 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x53, + 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x53, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x1f, 0x0a, 0x04, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x22, 0xbb, 0x03, 0x0a, 0x0b, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x63, 0x76, 0x41, 0x64, 0x64, 0x72, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x52, 0x63, 0x76, 0x41, 0x64, 0x64, 0x72, 0x12, + 0x20, 0x0a, 0x0b, 0x52, 0x63, 0x76, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x52, 0x63, 0x76, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x07, 0x53, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x53, + 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x0b, 0x53, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x08, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x73, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x47, 0x61, 0x73, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x61, + 0x69, 0x6e, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x43, 0x68, 0x61, 0x69, + 0x6e, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, + 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x47, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, + 0x6e, 0x41, 0x64, 0x64, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x47, 0x75, 0x61, + 0x72, 0x64, 0x69, 0x61, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x47, 0x75, 0x61, + 0x72, 0x64, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0f, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x47, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x53, 0x69, + 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0xf1, 0x03, 0x0a, 0x13, 0x53, 0x6d, 0x61, 0x72, + 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, + 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, + 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, + 0x63, 0x76, 0x41, 0x64, 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x52, 0x63, + 0x76, 0x41, 0x64, 0x64, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x53, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, 0x12, + 0x20, 0x0a, 0x0b, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x64, 0x64, + 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, + 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1e, 0x0a, + 0x0a, 0x50, 0x72, 0x65, 0x76, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x0a, 0x50, 0x72, 0x65, 0x76, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x26, 0x0a, + 0x0e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x54, + 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x73, 0x4c, 0x69, 0x6d, 0x69, + 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x47, 0x61, 0x73, 0x4c, 0x69, 0x6d, 0x69, + 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x08, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x43, 0x61, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x08, 0x43, 0x61, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x6f, 0x64, + 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x0c, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x24, 0x0a, + 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0f, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x53, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x4f, 0x72, 0x69, + 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x45, 0x0a, 0x03, 0x4c, + 0x6f, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x24, 0x0a, 0x06, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x22, 0x95, 0x01, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x49, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x06, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x12, 0x12, + 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x26, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x44, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0e, 0x41, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x22, 0x66, 0x0a, 0x08, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x54, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, + 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, 0x70, 0x6f, + 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x63, 0x76, 0x41, + 0x64, 0x64, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x52, 0x63, 0x76, 0x41, 0x64, + 0x64, 0x72, 0x22, 0xd1, 0x01, 0x0a, 0x0e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, + 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, + 0x2f, 0x0a, 0x06, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, + 0x12, 0x44, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, + 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x22, 0xff, 0x01, 0x0a, 0x10, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x4e, + 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x12, 0x18, 0x0a, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x50, + 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x4d, + 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x49, 0x0a, + 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x22, 0xb9, 0x01, 0x0a, 0x0d, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, + 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1c, + 0x0a, 0x09, 0x52, 0x6f, 0x79, 0x61, 0x6c, 0x74, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x09, 0x52, 0x6f, 0x79, 0x61, 0x6c, 0x74, 0x69, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, + 0x48, 0x61, 0x73, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x48, 0x61, 0x73, 0x68, + 0x12, 0x12, 0x0a, 0x04, 0x55, 0x52, 0x49, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x04, + 0x55, 0x52, 0x49, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x73, 0x22, 0x3e, 0x0a, 0x1a, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x73, 0x4e, 0x46, 0x54, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x49, 0x73, 0x4e, 0x46, 0x54, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x22, 0xa3, 0x02, 0x0a, 0x15, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1a, + 0x0a, 0x08, 0x49, 0x73, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x08, 0x49, 0x73, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x42, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4f, 0x77, 0x6e, + 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x52, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x44, 0x65, + 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x1a, + 0x0a, 0x08, 0x43, 0x6f, 0x64, 0x65, 0x48, 0x61, 0x73, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x08, 0x43, 0x6f, 0x64, 0x65, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, + 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x6f, + 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x43, 0x6f, + 0x64, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x65, 0x0a, 0x07, 0x52, 0x65, + 0x63, 0x65, 0x69, 0x70, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, + 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x53, 0x6e, + 0x64, 0x41, 0x64, 0x64, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x78, 0x48, + 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x54, 0x78, 0x48, 0x61, 0x73, + 0x68, 0x22, 0x1e, 0x0a, 0x06, 0x42, 0x69, 0x67, 0x49, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, + 0x73, 0x2a, 0xa4, 0x01, 0x0a, 0x0a, 0x50, 0x65, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x11, 0x0a, 0x0d, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x65, 0x65, + 0x72, 0x55, 0x6e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, + 0x50, 0x65, 0x65, 0x72, 0x44, 0x65, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x65, 0x65, 0x72, 0x4a, 0x61, 0x69, 0x6c, + 0x65, 0x64, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x65, 0x65, 0x72, 0x55, 0x6e, 0x4a, 0x61, + 0x69, 0x6c, 0x65, 0x64, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x65, 0x65, 0x72, 0x53, 0x6c, + 0x61, 0x73, 0x68, 0x65, 0x64, 0x10, 0x06, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x65, 0x65, 0x72, 0x52, + 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x10, 0x07, 0x2a, 0x36, 0x0a, 0x06, 0x54, 0x78, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x43, 0x52, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x49, + 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, + 0x54, 0x78, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x03, + 0x2a, 0x88, 0x01, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x78, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0x1e, 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x65, 0x65, 0x72, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x10, 0x3c, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x10, 0x5a, 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x10, 0x78, 0x12, 0x11, 0x0a, 0x0c, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0x96, 0x01, 0x12, 0x11, 0x0a, 0x0c, 0x52, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0xff, 0x01, 0x42, 0x51, 0x5a, 0x4f, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x76, + 0x65, 0x72, 0x73, 0x78, 0x2f, 0x6d, 0x78, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2d, 0x77, 0x73, + 0x2d, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2d, 0x66, 0x69, 0x72, 0x65, 0x68, + 0x6f, 0x73, 0x65, 0x2d, 0x67, 0x6f, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x68, 0x79, 0x70, 0x65, + 0x72, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -5292,160 +5613,154 @@ func file_hyperOutportBlock_proto_rawDescGZIP() []byte { return file_hyperOutportBlock_proto_rawDescData } -var file_hyperOutportBlock_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_hyperOutportBlock_proto_msgTypes = make([]protoimpl.MessageInfo, 62) +var file_hyperOutportBlock_proto_enumTypes = make([]protoimpl.EnumInfo, 3) +var file_hyperOutportBlock_proto_msgTypes = make([]protoimpl.MessageInfo, 60) var file_hyperOutportBlock_proto_goTypes = []interface{}{ (PeerAction)(0), // 0: proto.PeerAction - (Type)(0), // 1: proto.Type - (*HyperOutportBlock)(nil), // 2: proto.HyperOutportBlock - (*NotarizedHeaderOutportData)(nil), // 3: proto.NotarizedHeaderOutportData - (*MetaOutportBlock)(nil), // 4: proto.MetaOutportBlock - (*ShardOutportBlock)(nil), // 5: proto.ShardOutportBlock - (*ShardOutportBlockV2)(nil), // 6: proto.ShardOutportBlockV2 - (*TransactionPoolV2)(nil), // 7: proto.TransactionPoolV2 - (*Header)(nil), // 8: proto.Header - (*MetaHeader)(nil), // 9: proto.MetaHeader - (*MiniBlockHeader)(nil), // 10: proto.MiniBlockHeader - (*PeerChange)(nil), // 11: proto.PeerChange - (*BlockData)(nil), // 12: proto.BlockData - (*MetaBlockData)(nil), // 13: proto.MetaBlockData - (*ShardData)(nil), // 14: proto.ShardData - (*EpochStart)(nil), // 15: proto.EpochStart - (*EpochStartShardData)(nil), // 16: proto.EpochStartShardData - (*Economics)(nil), // 17: proto.Economics - (*PeerData)(nil), // 18: proto.PeerData - (*TransactionPool)(nil), // 19: proto.TransactionPool - (*FeeInfo)(nil), // 20: proto.FeeInfo - (*TxInfo)(nil), // 21: proto.TxInfo - (*TxInfoV2)(nil), // 22: proto.TxInfoV2 - (*SCRInfo)(nil), // 23: proto.SCRInfo - (*LogData)(nil), // 24: proto.LogData - (*RewardInfo)(nil), // 25: proto.RewardInfo - (*HeaderGasConsumption)(nil), // 26: proto.HeaderGasConsumption - (*ValidatorRatingInfo)(nil), // 27: proto.ValidatorRatingInfo - (*ValidatorsRating)(nil), // 28: proto.ValidatorsRating - (*RoundInfo)(nil), // 29: proto.RoundInfo - (*RoundsInfo)(nil), // 30: proto.RoundsInfo - (*PubKeys)(nil), // 31: proto.PubKeys - (*ValidatorsPubKeys)(nil), // 32: proto.ValidatorsPubKeys - (*Accounts)(nil), // 33: proto.Accounts - (*FinalizedBlock)(nil), // 34: proto.FinalizedBlock - (*Shard)(nil), // 35: proto.Shard - (*Body)(nil), // 36: proto.Body - (*MiniBlock)(nil), // 37: proto.MiniBlock - (*Transaction)(nil), // 38: proto.Transaction - (*SmartContractResult)(nil), // 39: proto.SmartContractResult - (*Log)(nil), // 40: proto.Log - (*Event)(nil), // 41: proto.Event - (*RewardTx)(nil), // 42: proto.RewardTx - (*AlteredAccount)(nil), // 43: proto.AlteredAccount - (*AccountTokenData)(nil), // 44: proto.AccountTokenData - (*TokenMetaData)(nil), // 45: proto.TokenMetaData - (*AdditionalAccountTokenData)(nil), // 46: proto.AdditionalAccountTokenData - (*AdditionalAccountData)(nil), // 47: proto.AdditionalAccountData - (*Receipt)(nil), // 48: proto.Receipt - (*BigInt)(nil), // 49: proto.BigInt - nil, // 50: proto.MetaOutportBlock.AlteredAccountsEntry - nil, // 51: proto.ShardOutportBlock.AlteredAccountsEntry - nil, // 52: proto.ShardOutportBlockV2.AlteredAccountsEntry - nil, // 53: proto.TransactionPoolV2.TransactionsEntry - nil, // 54: proto.TransactionPoolV2.RewardsEntry - nil, // 55: proto.TransactionPoolV2.ReceiptsEntry - nil, // 56: proto.TransactionPoolV2.InvalidTxsEntry - nil, // 57: proto.TransactionPool.TransactionsEntry - nil, // 58: proto.TransactionPool.SmartContractResultsEntry - nil, // 59: proto.TransactionPool.RewardsEntry - nil, // 60: proto.TransactionPool.ReceiptsEntry - nil, // 61: proto.TransactionPool.InvalidTxsEntry - nil, // 62: proto.ValidatorsPubKeys.ShardValidatorsPubKeysEntry - nil, // 63: proto.Accounts.AlteredAccountsEntry + (TxType)(0), // 1: proto.TxType + (Type)(0), // 2: proto.Type + (*HyperOutportBlock)(nil), // 3: proto.HyperOutportBlock + (*NotarizedHeaderOutportData)(nil), // 4: proto.NotarizedHeaderOutportData + (*MetaOutportBlock)(nil), // 5: proto.MetaOutportBlock + (*ShardOutportBlock)(nil), // 6: proto.ShardOutportBlock + (*ShardOutportBlockV2)(nil), // 7: proto.ShardOutportBlockV2 + (*TransactionPoolV2)(nil), // 8: proto.TransactionPoolV2 + (*Header)(nil), // 9: proto.Header + (*MetaHeader)(nil), // 10: proto.MetaHeader + (*MiniBlockHeader)(nil), // 11: proto.MiniBlockHeader + (*PeerChange)(nil), // 12: proto.PeerChange + (*BlockData)(nil), // 13: proto.BlockData + (*MetaBlockData)(nil), // 14: proto.MetaBlockData + (*ShardData)(nil), // 15: proto.ShardData + (*EpochStart)(nil), // 16: proto.EpochStart + (*EpochStartShardData)(nil), // 17: proto.EpochStartShardData + (*Economics)(nil), // 18: proto.Economics + (*PeerData)(nil), // 19: proto.PeerData + (*TransactionPool)(nil), // 20: proto.TransactionPool + (*FeeInfo)(nil), // 21: proto.FeeInfo + (*TxInfo)(nil), // 22: proto.TxInfo + (*TxInfoV2)(nil), // 23: proto.TxInfoV2 + (*WrappedTx)(nil), // 24: proto.WrappedTx + (*SCRInfo)(nil), // 25: proto.SCRInfo + (*LogData)(nil), // 26: proto.LogData + (*RewardInfo)(nil), // 27: proto.RewardInfo + (*HeaderGasConsumption)(nil), // 28: proto.HeaderGasConsumption + (*ValidatorRatingInfo)(nil), // 29: proto.ValidatorRatingInfo + (*ValidatorsRating)(nil), // 30: proto.ValidatorsRating + (*RoundInfo)(nil), // 31: proto.RoundInfo + (*RoundsInfo)(nil), // 32: proto.RoundsInfo + (*PubKeys)(nil), // 33: proto.PubKeys + (*ValidatorsPubKeys)(nil), // 34: proto.ValidatorsPubKeys + (*Accounts)(nil), // 35: proto.Accounts + (*FinalizedBlock)(nil), // 36: proto.FinalizedBlock + (*Shard)(nil), // 37: proto.Shard + (*Body)(nil), // 38: proto.Body + (*MiniBlock)(nil), // 39: proto.MiniBlock + (*Transaction)(nil), // 40: proto.Transaction + (*SmartContractResult)(nil), // 41: proto.SmartContractResult + (*Log)(nil), // 42: proto.Log + (*Event)(nil), // 43: proto.Event + (*RewardTx)(nil), // 44: proto.RewardTx + (*AlteredAccount)(nil), // 45: proto.AlteredAccount + (*AccountTokenData)(nil), // 46: proto.AccountTokenData + (*TokenMetaData)(nil), // 47: proto.TokenMetaData + (*AdditionalAccountTokenData)(nil), // 48: proto.AdditionalAccountTokenData + (*AdditionalAccountData)(nil), // 49: proto.AdditionalAccountData + (*Receipt)(nil), // 50: proto.Receipt + (*BigInt)(nil), // 51: proto.BigInt + nil, // 52: proto.MetaOutportBlock.AlteredAccountsEntry + nil, // 53: proto.ShardOutportBlock.AlteredAccountsEntry + nil, // 54: proto.ShardOutportBlockV2.AlteredAccountsEntry + nil, // 55: proto.TransactionPoolV2.TransactionsEntry + nil, // 56: proto.TransactionPool.TransactionsEntry + nil, // 57: proto.TransactionPool.SmartContractResultsEntry + nil, // 58: proto.TransactionPool.RewardsEntry + nil, // 59: proto.TransactionPool.ReceiptsEntry + nil, // 60: proto.TransactionPool.InvalidTxsEntry + nil, // 61: proto.ValidatorsPubKeys.ShardValidatorsPubKeysEntry + nil, // 62: proto.Accounts.AlteredAccountsEntry } var file_hyperOutportBlock_proto_depIdxs = []int32{ - 4, // 0: proto.HyperOutportBlock.MetaOutportBlock:type_name -> proto.MetaOutportBlock - 3, // 1: proto.HyperOutportBlock.NotarizedHeadersOutportData:type_name -> proto.NotarizedHeaderOutportData - 5, // 2: proto.NotarizedHeaderOutportData.OutportBlock:type_name -> proto.ShardOutportBlock - 13, // 3: proto.MetaOutportBlock.BlockData:type_name -> proto.MetaBlockData - 19, // 4: proto.MetaOutportBlock.TransactionPool:type_name -> proto.TransactionPool - 26, // 5: proto.MetaOutportBlock.HeaderGasConsumption:type_name -> proto.HeaderGasConsumption - 50, // 6: proto.MetaOutportBlock.AlteredAccounts:type_name -> proto.MetaOutportBlock.AlteredAccountsEntry - 12, // 7: proto.ShardOutportBlock.BlockData:type_name -> proto.BlockData - 19, // 8: proto.ShardOutportBlock.TransactionPool:type_name -> proto.TransactionPool - 26, // 9: proto.ShardOutportBlock.HeaderGasConsumption:type_name -> proto.HeaderGasConsumption - 51, // 10: proto.ShardOutportBlock.AlteredAccounts:type_name -> proto.ShardOutportBlock.AlteredAccountsEntry - 12, // 11: proto.ShardOutportBlockV2.BlockData:type_name -> proto.BlockData - 7, // 12: proto.ShardOutportBlockV2.TransactionPool:type_name -> proto.TransactionPoolV2 - 26, // 13: proto.ShardOutportBlockV2.HeaderGasConsumption:type_name -> proto.HeaderGasConsumption - 52, // 14: proto.ShardOutportBlockV2.AlteredAccounts:type_name -> proto.ShardOutportBlockV2.AlteredAccountsEntry - 53, // 15: proto.TransactionPoolV2.Transactions:type_name -> proto.TransactionPoolV2.TransactionsEntry - 54, // 16: proto.TransactionPoolV2.Rewards:type_name -> proto.TransactionPoolV2.RewardsEntry - 55, // 17: proto.TransactionPoolV2.Receipts:type_name -> proto.TransactionPoolV2.ReceiptsEntry - 56, // 18: proto.TransactionPoolV2.InvalidTxs:type_name -> proto.TransactionPoolV2.InvalidTxsEntry - 24, // 19: proto.TransactionPoolV2.Logs:type_name -> proto.LogData - 1, // 20: proto.Header.BlockBodyType:type_name -> proto.Type - 10, // 21: proto.Header.MiniBlockHeaders:type_name -> proto.MiniBlockHeader - 11, // 22: proto.Header.PeerChanges:type_name -> proto.PeerChange - 14, // 23: proto.MetaHeader.ShardInfo:type_name -> proto.ShardData - 18, // 24: proto.MetaHeader.PeerInfo:type_name -> proto.PeerData - 10, // 25: proto.MetaHeader.MiniBlockHeaders:type_name -> proto.MiniBlockHeader - 15, // 26: proto.MetaHeader.EpochStart:type_name -> proto.EpochStart - 1, // 27: proto.MiniBlockHeader.Type:type_name -> proto.Type - 8, // 28: proto.BlockData.Header:type_name -> proto.Header - 36, // 29: proto.BlockData.Body:type_name -> proto.Body - 37, // 30: proto.BlockData.IntraShardMiniBlocks:type_name -> proto.MiniBlock - 9, // 31: proto.MetaBlockData.Header:type_name -> proto.MetaHeader - 36, // 32: proto.MetaBlockData.Body:type_name -> proto.Body - 37, // 33: proto.MetaBlockData.IntraShardMiniBlocks:type_name -> proto.MiniBlock - 10, // 34: proto.ShardData.ShardMiniBlockHeaders:type_name -> proto.MiniBlockHeader - 16, // 35: proto.EpochStart.LastFinalizedHeaders:type_name -> proto.EpochStartShardData - 17, // 36: proto.EpochStart.Economics:type_name -> proto.Economics - 10, // 37: proto.EpochStartShardData.PendingMiniBlockHeaders:type_name -> proto.MiniBlockHeader - 0, // 38: proto.PeerData.Action:type_name -> proto.PeerAction - 57, // 39: proto.TransactionPool.Transactions:type_name -> proto.TransactionPool.TransactionsEntry - 58, // 40: proto.TransactionPool.SmartContractResults:type_name -> proto.TransactionPool.SmartContractResultsEntry - 59, // 41: proto.TransactionPool.Rewards:type_name -> proto.TransactionPool.RewardsEntry - 60, // 42: proto.TransactionPool.Receipts:type_name -> proto.TransactionPool.ReceiptsEntry - 61, // 43: proto.TransactionPool.InvalidTxs:type_name -> proto.TransactionPool.InvalidTxsEntry - 24, // 44: proto.TransactionPool.Logs:type_name -> proto.LogData - 38, // 45: proto.TxInfo.Transaction:type_name -> proto.Transaction - 20, // 46: proto.TxInfo.FeeInfo:type_name -> proto.FeeInfo - 38, // 47: proto.TxInfoV2.Transaction:type_name -> proto.Transaction - 20, // 48: proto.TxInfoV2.FeeInfo:type_name -> proto.FeeInfo - 23, // 49: proto.TxInfoV2.SmartContractResults:type_name -> proto.SCRInfo - 40, // 50: proto.TxInfoV2.Logs:type_name -> proto.Log - 39, // 51: proto.SCRInfo.SmartContractResult:type_name -> proto.SmartContractResult - 20, // 52: proto.SCRInfo.FeeInfo:type_name -> proto.FeeInfo - 40, // 53: proto.LogData.Log:type_name -> proto.Log - 42, // 54: proto.RewardInfo.Reward:type_name -> proto.RewardTx - 27, // 55: proto.ValidatorsRating.ValidatorsRatingInfo:type_name -> proto.ValidatorRatingInfo - 29, // 56: proto.RoundsInfo.RoundsInfo:type_name -> proto.RoundInfo - 62, // 57: proto.ValidatorsPubKeys.ShardValidatorsPubKeys:type_name -> proto.ValidatorsPubKeys.ShardValidatorsPubKeysEntry - 63, // 58: proto.Accounts.AlteredAccounts:type_name -> proto.Accounts.AlteredAccountsEntry - 37, // 59: proto.Body.MiniBlocks:type_name -> proto.MiniBlock - 1, // 60: proto.MiniBlock.Type:type_name -> proto.Type - 41, // 61: proto.Log.Events:type_name -> proto.Event - 44, // 62: proto.AlteredAccount.Tokens:type_name -> proto.AccountTokenData - 47, // 63: proto.AlteredAccount.AdditionalData:type_name -> proto.AdditionalAccountData - 45, // 64: proto.AccountTokenData.MetaData:type_name -> proto.TokenMetaData - 46, // 65: proto.AccountTokenData.AdditionalData:type_name -> proto.AdditionalAccountTokenData - 43, // 66: proto.MetaOutportBlock.AlteredAccountsEntry.value:type_name -> proto.AlteredAccount - 43, // 67: proto.ShardOutportBlock.AlteredAccountsEntry.value:type_name -> proto.AlteredAccount - 43, // 68: proto.ShardOutportBlockV2.AlteredAccountsEntry.value:type_name -> proto.AlteredAccount - 22, // 69: proto.TransactionPoolV2.TransactionsEntry.value:type_name -> proto.TxInfoV2 - 25, // 70: proto.TransactionPoolV2.RewardsEntry.value:type_name -> proto.RewardInfo - 48, // 71: proto.TransactionPoolV2.ReceiptsEntry.value:type_name -> proto.Receipt - 21, // 72: proto.TransactionPoolV2.InvalidTxsEntry.value:type_name -> proto.TxInfo - 21, // 73: proto.TransactionPool.TransactionsEntry.value:type_name -> proto.TxInfo - 23, // 74: proto.TransactionPool.SmartContractResultsEntry.value:type_name -> proto.SCRInfo - 25, // 75: proto.TransactionPool.RewardsEntry.value:type_name -> proto.RewardInfo - 48, // 76: proto.TransactionPool.ReceiptsEntry.value:type_name -> proto.Receipt - 21, // 77: proto.TransactionPool.InvalidTxsEntry.value:type_name -> proto.TxInfo - 31, // 78: proto.ValidatorsPubKeys.ShardValidatorsPubKeysEntry.value:type_name -> proto.PubKeys - 43, // 79: proto.Accounts.AlteredAccountsEntry.value:type_name -> proto.AlteredAccount - 80, // [80:80] is the sub-list for method output_type - 80, // [80:80] is the sub-list for method input_type - 80, // [80:80] is the sub-list for extension type_name - 80, // [80:80] is the sub-list for extension extendee - 0, // [0:80] is the sub-list for field type_name + 5, // 0: proto.HyperOutportBlock.MetaOutportBlock:type_name -> proto.MetaOutportBlock + 4, // 1: proto.HyperOutportBlock.NotarizedHeadersOutportData:type_name -> proto.NotarizedHeaderOutportData + 6, // 2: proto.NotarizedHeaderOutportData.OutportBlock:type_name -> proto.ShardOutportBlock + 14, // 3: proto.MetaOutportBlock.BlockData:type_name -> proto.MetaBlockData + 20, // 4: proto.MetaOutportBlock.TransactionPool:type_name -> proto.TransactionPool + 28, // 5: proto.MetaOutportBlock.HeaderGasConsumption:type_name -> proto.HeaderGasConsumption + 52, // 6: proto.MetaOutportBlock.AlteredAccounts:type_name -> proto.MetaOutportBlock.AlteredAccountsEntry + 13, // 7: proto.ShardOutportBlock.BlockData:type_name -> proto.BlockData + 20, // 8: proto.ShardOutportBlock.TransactionPool:type_name -> proto.TransactionPool + 28, // 9: proto.ShardOutportBlock.HeaderGasConsumption:type_name -> proto.HeaderGasConsumption + 53, // 10: proto.ShardOutportBlock.AlteredAccounts:type_name -> proto.ShardOutportBlock.AlteredAccountsEntry + 13, // 11: proto.ShardOutportBlockV2.BlockData:type_name -> proto.BlockData + 8, // 12: proto.ShardOutportBlockV2.TransactionPool:type_name -> proto.TransactionPoolV2 + 28, // 13: proto.ShardOutportBlockV2.HeaderGasConsumption:type_name -> proto.HeaderGasConsumption + 54, // 14: proto.ShardOutportBlockV2.AlteredAccounts:type_name -> proto.ShardOutportBlockV2.AlteredAccountsEntry + 55, // 15: proto.TransactionPoolV2.Transactions:type_name -> proto.TransactionPoolV2.TransactionsEntry + 2, // 16: proto.Header.BlockBodyType:type_name -> proto.Type + 11, // 17: proto.Header.MiniBlockHeaders:type_name -> proto.MiniBlockHeader + 12, // 18: proto.Header.PeerChanges:type_name -> proto.PeerChange + 15, // 19: proto.MetaHeader.ShardInfo:type_name -> proto.ShardData + 19, // 20: proto.MetaHeader.PeerInfo:type_name -> proto.PeerData + 11, // 21: proto.MetaHeader.MiniBlockHeaders:type_name -> proto.MiniBlockHeader + 16, // 22: proto.MetaHeader.EpochStart:type_name -> proto.EpochStart + 2, // 23: proto.MiniBlockHeader.Type:type_name -> proto.Type + 9, // 24: proto.BlockData.Header:type_name -> proto.Header + 38, // 25: proto.BlockData.Body:type_name -> proto.Body + 39, // 26: proto.BlockData.IntraShardMiniBlocks:type_name -> proto.MiniBlock + 10, // 27: proto.MetaBlockData.Header:type_name -> proto.MetaHeader + 38, // 28: proto.MetaBlockData.Body:type_name -> proto.Body + 39, // 29: proto.MetaBlockData.IntraShardMiniBlocks:type_name -> proto.MiniBlock + 11, // 30: proto.ShardData.ShardMiniBlockHeaders:type_name -> proto.MiniBlockHeader + 17, // 31: proto.EpochStart.LastFinalizedHeaders:type_name -> proto.EpochStartShardData + 18, // 32: proto.EpochStart.Economics:type_name -> proto.Economics + 11, // 33: proto.EpochStartShardData.PendingMiniBlockHeaders:type_name -> proto.MiniBlockHeader + 0, // 34: proto.PeerData.Action:type_name -> proto.PeerAction + 56, // 35: proto.TransactionPool.Transactions:type_name -> proto.TransactionPool.TransactionsEntry + 57, // 36: proto.TransactionPool.SmartContractResults:type_name -> proto.TransactionPool.SmartContractResultsEntry + 58, // 37: proto.TransactionPool.Rewards:type_name -> proto.TransactionPool.RewardsEntry + 59, // 38: proto.TransactionPool.Receipts:type_name -> proto.TransactionPool.ReceiptsEntry + 60, // 39: proto.TransactionPool.InvalidTxs:type_name -> proto.TransactionPool.InvalidTxsEntry + 26, // 40: proto.TransactionPool.Logs:type_name -> proto.LogData + 40, // 41: proto.TxInfo.Transaction:type_name -> proto.Transaction + 21, // 42: proto.TxInfo.FeeInfo:type_name -> proto.FeeInfo + 24, // 43: proto.TxInfoV2.Transaction:type_name -> proto.WrappedTx + 21, // 44: proto.TxInfoV2.FeeInfo:type_name -> proto.FeeInfo + 50, // 45: proto.TxInfoV2.Receipt:type_name -> proto.Receipt + 24, // 46: proto.TxInfoV2.ResultTxs:type_name -> proto.WrappedTx + 42, // 47: proto.TxInfoV2.Logs:type_name -> proto.Log + 1, // 48: proto.WrappedTx.TxType:type_name -> proto.TxType + 41, // 49: proto.SCRInfo.SmartContractResult:type_name -> proto.SmartContractResult + 21, // 50: proto.SCRInfo.FeeInfo:type_name -> proto.FeeInfo + 42, // 51: proto.LogData.Log:type_name -> proto.Log + 44, // 52: proto.RewardInfo.Reward:type_name -> proto.RewardTx + 29, // 53: proto.ValidatorsRating.ValidatorsRatingInfo:type_name -> proto.ValidatorRatingInfo + 31, // 54: proto.RoundsInfo.RoundsInfo:type_name -> proto.RoundInfo + 61, // 55: proto.ValidatorsPubKeys.ShardValidatorsPubKeys:type_name -> proto.ValidatorsPubKeys.ShardValidatorsPubKeysEntry + 62, // 56: proto.Accounts.AlteredAccounts:type_name -> proto.Accounts.AlteredAccountsEntry + 39, // 57: proto.Body.MiniBlocks:type_name -> proto.MiniBlock + 2, // 58: proto.MiniBlock.Type:type_name -> proto.Type + 43, // 59: proto.Log.Events:type_name -> proto.Event + 46, // 60: proto.AlteredAccount.Tokens:type_name -> proto.AccountTokenData + 49, // 61: proto.AlteredAccount.AdditionalData:type_name -> proto.AdditionalAccountData + 47, // 62: proto.AccountTokenData.MetaData:type_name -> proto.TokenMetaData + 48, // 63: proto.AccountTokenData.AdditionalData:type_name -> proto.AdditionalAccountTokenData + 45, // 64: proto.MetaOutportBlock.AlteredAccountsEntry.value:type_name -> proto.AlteredAccount + 45, // 65: proto.ShardOutportBlock.AlteredAccountsEntry.value:type_name -> proto.AlteredAccount + 45, // 66: proto.ShardOutportBlockV2.AlteredAccountsEntry.value:type_name -> proto.AlteredAccount + 23, // 67: proto.TransactionPoolV2.TransactionsEntry.value:type_name -> proto.TxInfoV2 + 22, // 68: proto.TransactionPool.TransactionsEntry.value:type_name -> proto.TxInfo + 25, // 69: proto.TransactionPool.SmartContractResultsEntry.value:type_name -> proto.SCRInfo + 27, // 70: proto.TransactionPool.RewardsEntry.value:type_name -> proto.RewardInfo + 50, // 71: proto.TransactionPool.ReceiptsEntry.value:type_name -> proto.Receipt + 22, // 72: proto.TransactionPool.InvalidTxsEntry.value:type_name -> proto.TxInfo + 33, // 73: proto.ValidatorsPubKeys.ShardValidatorsPubKeysEntry.value:type_name -> proto.PubKeys + 45, // 74: proto.Accounts.AlteredAccountsEntry.value:type_name -> proto.AlteredAccount + 75, // [75:75] is the sub-list for method output_type + 75, // [75:75] is the sub-list for method input_type + 75, // [75:75] is the sub-list for extension type_name + 75, // [75:75] is the sub-list for extension extendee + 0, // [0:75] is the sub-list for field type_name } func init() { file_hyperOutportBlock_proto_init() } @@ -5707,7 +6022,7 @@ func file_hyperOutportBlock_proto_init() { } } file_hyperOutportBlock_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SCRInfo); i { + switch v := v.(*WrappedTx); i { case 0: return &v.state case 1: @@ -5719,7 +6034,7 @@ func file_hyperOutportBlock_proto_init() { } } file_hyperOutportBlock_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LogData); i { + switch v := v.(*SCRInfo); i { case 0: return &v.state case 1: @@ -5731,7 +6046,7 @@ func file_hyperOutportBlock_proto_init() { } } file_hyperOutportBlock_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RewardInfo); i { + switch v := v.(*LogData); i { case 0: return &v.state case 1: @@ -5743,7 +6058,7 @@ func file_hyperOutportBlock_proto_init() { } } file_hyperOutportBlock_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HeaderGasConsumption); i { + switch v := v.(*RewardInfo); i { case 0: return &v.state case 1: @@ -5755,7 +6070,7 @@ func file_hyperOutportBlock_proto_init() { } } file_hyperOutportBlock_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValidatorRatingInfo); i { + switch v := v.(*HeaderGasConsumption); i { case 0: return &v.state case 1: @@ -5767,7 +6082,7 @@ func file_hyperOutportBlock_proto_init() { } } file_hyperOutportBlock_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValidatorsRating); i { + switch v := v.(*ValidatorRatingInfo); i { case 0: return &v.state case 1: @@ -5779,7 +6094,7 @@ func file_hyperOutportBlock_proto_init() { } } file_hyperOutportBlock_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RoundInfo); i { + switch v := v.(*ValidatorsRating); i { case 0: return &v.state case 1: @@ -5791,7 +6106,7 @@ func file_hyperOutportBlock_proto_init() { } } file_hyperOutportBlock_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RoundsInfo); i { + switch v := v.(*RoundInfo); i { case 0: return &v.state case 1: @@ -5803,7 +6118,7 @@ func file_hyperOutportBlock_proto_init() { } } file_hyperOutportBlock_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PubKeys); i { + switch v := v.(*RoundsInfo); i { case 0: return &v.state case 1: @@ -5815,7 +6130,7 @@ func file_hyperOutportBlock_proto_init() { } } file_hyperOutportBlock_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValidatorsPubKeys); i { + switch v := v.(*PubKeys); i { case 0: return &v.state case 1: @@ -5827,7 +6142,7 @@ func file_hyperOutportBlock_proto_init() { } } file_hyperOutportBlock_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Accounts); i { + switch v := v.(*ValidatorsPubKeys); i { case 0: return &v.state case 1: @@ -5839,7 +6154,7 @@ func file_hyperOutportBlock_proto_init() { } } file_hyperOutportBlock_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FinalizedBlock); i { + switch v := v.(*Accounts); i { case 0: return &v.state case 1: @@ -5851,7 +6166,7 @@ func file_hyperOutportBlock_proto_init() { } } file_hyperOutportBlock_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Shard); i { + switch v := v.(*FinalizedBlock); i { case 0: return &v.state case 1: @@ -5863,7 +6178,7 @@ func file_hyperOutportBlock_proto_init() { } } file_hyperOutportBlock_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Body); i { + switch v := v.(*Shard); i { case 0: return &v.state case 1: @@ -5875,7 +6190,7 @@ func file_hyperOutportBlock_proto_init() { } } file_hyperOutportBlock_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MiniBlock); i { + switch v := v.(*Body); i { case 0: return &v.state case 1: @@ -5887,7 +6202,7 @@ func file_hyperOutportBlock_proto_init() { } } file_hyperOutportBlock_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Transaction); i { + switch v := v.(*MiniBlock); i { case 0: return &v.state case 1: @@ -5899,7 +6214,7 @@ func file_hyperOutportBlock_proto_init() { } } file_hyperOutportBlock_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SmartContractResult); i { + switch v := v.(*Transaction); i { case 0: return &v.state case 1: @@ -5911,7 +6226,7 @@ func file_hyperOutportBlock_proto_init() { } } file_hyperOutportBlock_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Log); i { + switch v := v.(*SmartContractResult); i { case 0: return &v.state case 1: @@ -5923,7 +6238,7 @@ func file_hyperOutportBlock_proto_init() { } } file_hyperOutportBlock_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Event); i { + switch v := v.(*Log); i { case 0: return &v.state case 1: @@ -5935,7 +6250,7 @@ func file_hyperOutportBlock_proto_init() { } } file_hyperOutportBlock_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RewardTx); i { + switch v := v.(*Event); i { case 0: return &v.state case 1: @@ -5947,7 +6262,7 @@ func file_hyperOutportBlock_proto_init() { } } file_hyperOutportBlock_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AlteredAccount); i { + switch v := v.(*RewardTx); i { case 0: return &v.state case 1: @@ -5959,7 +6274,7 @@ func file_hyperOutportBlock_proto_init() { } } file_hyperOutportBlock_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AccountTokenData); i { + switch v := v.(*AlteredAccount); i { case 0: return &v.state case 1: @@ -5971,7 +6286,7 @@ func file_hyperOutportBlock_proto_init() { } } file_hyperOutportBlock_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TokenMetaData); i { + switch v := v.(*AccountTokenData); i { case 0: return &v.state case 1: @@ -5983,7 +6298,7 @@ func file_hyperOutportBlock_proto_init() { } } file_hyperOutportBlock_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AdditionalAccountTokenData); i { + switch v := v.(*TokenMetaData); i { case 0: return &v.state case 1: @@ -5995,7 +6310,7 @@ func file_hyperOutportBlock_proto_init() { } } file_hyperOutportBlock_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AdditionalAccountData); i { + switch v := v.(*AdditionalAccountTokenData); i { case 0: return &v.state case 1: @@ -6007,7 +6322,7 @@ func file_hyperOutportBlock_proto_init() { } } file_hyperOutportBlock_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Receipt); i { + switch v := v.(*AdditionalAccountData); i { case 0: return &v.state case 1: @@ -6019,6 +6334,18 @@ func file_hyperOutportBlock_proto_init() { } } file_hyperOutportBlock_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Receipt); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_hyperOutportBlock_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BigInt); i { case 0: return &v.state @@ -6036,8 +6363,8 @@ func file_hyperOutportBlock_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_hyperOutportBlock_proto_rawDesc, - NumEnums: 2, - NumMessages: 62, + NumEnums: 3, + NumMessages: 60, NumExtensions: 0, NumServices: 0, }, diff --git a/data/hyperOutportBlocks/hyperOutportBlock.proto b/data/hyperOutportBlocks/hyperOutportBlock.proto index b700b8d..4961310 100644 --- a/data/hyperOutportBlocks/hyperOutportBlock.proto +++ b/data/hyperOutportBlocks/hyperOutportBlock.proto @@ -13,8 +13,8 @@ message HyperOutportBlock { } message NotarizedHeaderOutportData { - string NotarizedHeaderHash = 1; - ShardOutportBlock OutportBlock = 2 ; + string NotarizedHeaderHash = 1; + ShardOutportBlock OutportBlock = 2; } message MetaOutportBlock { @@ -46,7 +46,7 @@ message ShardOutportBlock { message ShardOutportBlockV2 { uint32 ShardID = 1; BlockData BlockData = 2; - TransactionPoolV2 TransactionPool = 3; + TransactionPoolV2 TransactionPool = 3; HeaderGasConsumption HeaderGasConsumption = 4; map AlteredAccounts = 5; repeated string NotarizedHeadersHashes = 6; @@ -57,13 +57,9 @@ message ShardOutportBlockV2 { } message TransactionPoolV2 { - map Transactions = 1; - map Rewards = 3; - map Receipts = 4; - map InvalidTxs = 5; - repeated LogData Logs = 6; - repeated string ScheduledExecutedSCRSHashesPrevBlock = 7; - repeated string ScheduledExecutedInvalidTxsHashesPrevBlock = 8; + map Transactions = 1; + repeated string ScheduledExecutedSCRSHashesPrevBlock = 2; + repeated string ScheduledExecutedInvalidTxsHashesPrevBlock = 3; } // Header holds the metadata of a block. This is the part that is being hashed and run through consensus. @@ -106,19 +102,19 @@ message MetaHeader { bytes LeaderSignature = 8; bytes PubKeysBitmap = 9; bytes PrevHash = 10; - bytes PrevRandSeed = 11 ; - bytes RandSeed = 12 ; - bytes RootHash = 13 ; - bytes ValidatorStatsRootHash = 14 ; - repeated MiniBlockHeader MiniBlockHeaders = 16 ; - bytes ReceiptsHash = 17 ; - EpochStart EpochStart = 18 ; + bytes PrevRandSeed = 11; + bytes RandSeed = 12; + bytes RootHash = 13; + bytes ValidatorStatsRootHash = 14; + repeated MiniBlockHeader MiniBlockHeaders = 16; + bytes ReceiptsHash = 17; + EpochStart EpochStart = 18; bytes ChainID = 19; bytes SoftwareVersion = 20; bytes AccumulatedFees = 21; bytes AccumulatedFeesInEpoch = 22; bytes DeveloperFees = 23; - bytes DevFeesInEpoch = 24; + bytes DevFeesInEpoch = 24; uint32 TxCount = 25; bytes Reserved = 26; } @@ -262,11 +258,54 @@ message TxInfo { } message TxInfoV2 { - Transaction Transaction = 1; + WrappedTx Transaction = 1; FeeInfo FeeInfo = 2; - uint32 ExecutionOrder = 3; - SCRInfo SmartContractResults = 4; - repeated Log Logs = 5; + Receipt Receipt = 3; + uint32 ExecutionOrder = 4; + repeated WrappedTx ResultTxs = 5; + repeated Log Logs = 6; +} + +message WrappedTx { + uint64 Nonce = 1; + bytes Value = 2; + bytes RcvAddr = 3; + bytes RcvUserName = 4; + bytes SndAddr = 5; + bytes SndUserName = 6; + uint64 GasPrice = 7; + uint64 GasLimit = 8; + bytes Data = 9; + bytes ChainID = 10; + uint32 Version = 11; + bytes Signature = 12; + uint32 Options = 13; + bytes GuardianAddr = 14; + bytes GuardianSignature = 15; + bytes RelayerAddr = 16; + bytes RelayedValue = 17; + bytes Code = 18; + bytes PrevTxHash = 19; + bytes OriginalTxHash = 20; + int64 CallType = 21; + bytes CodeMetadata = 22; + bytes ReturnMessage = 23; + bytes OriginalSender = 24; + uint32 ExecutionOrder = 25; + + uint64 Round = 26; + uint32 Epoch = 27; + + TxType TxType = 28; + + // TODO: for RewardTx hardcode SndAddr = metachain +} + +enum TxType { + SCR = 0; + Invalid = 1; + UserTx = 2; + Reward = 3; } message SCRInfo { @@ -408,9 +447,9 @@ message Event { message RewardTx { uint64 Round = 1; + uint32 Epoch = 2; bytes Value = 3; bytes RcvAddr = 4; - uint32 Epoch = 2; } enum Type { diff --git a/process/outportBlockConverter.go b/process/outportBlockConverter.go index 99cacac..890edf5 100644 --- a/process/outportBlockConverter.go +++ b/process/outportBlockConverter.go @@ -10,6 +10,7 @@ import ( "github.com/multiversx/mx-chain-core-go/data/alteredAccount" "github.com/multiversx/mx-chain-core-go/data/block" "github.com/multiversx/mx-chain-core-go/data/outport" + "github.com/multiversx/mx-chain-core-go/data/receipt" "github.com/multiversx/mx-chain-core-go/marshal" "github.com/multiversx/mx-chain-ws-connector-firehose-go/data/hyperOutportBlocks" @@ -76,13 +77,27 @@ func (o *outportBlockConverter) handleBlockData(blockData *outport.BlockData, sh return nil } + var miniBlocks []*hyperOutportBlocks.MiniBlock + if blockData.Body.MiniBlocks != nil { + miniBlocks = []*hyperOutportBlocks.MiniBlock{} + for _, mb := range blockData.Body.MiniBlocks { + miniBlocks = append(miniBlocks, &hyperOutportBlocks.MiniBlock{ + TxHashes: mb.TxHashes, + ReceiverShardID: mb.ReceiverShardID, + SenderShardID: mb.SenderShardID, + Type: hyperOutportBlocks.Type(mb.Type), + Reserved: mb.Reserved, + }) + } + } + shardOutportBlock.BlockData = &hyperOutportBlocks.BlockData{ - ShardID: blockData.ShardID, - Header: nil, - HeaderType: blockData.HeaderType, - HeaderHash: blockData.HeaderHash, - Body: nil, - IntraShardMiniBlocks: nil, + ShardID: blockData.ShardID, + HeaderType: blockData.HeaderType, + HeaderHash: blockData.HeaderHash, + Body: &hyperOutportBlocks.Body{ + MiniBlocks: miniBlocks, + }, } var err error @@ -115,6 +130,7 @@ func (o *outportBlockConverter) handleHeaderV1(headerBytes []byte, shardBlockDat shardBlockData.Header = &hyperOutportBlocks.Header{} header := shardBlockData.Header + header.Nonce = blockHeader.Nonce header.PrevHash = blockHeader.PrevHash header.PrevRandSeed = blockHeader.PrevRandSeed @@ -184,6 +200,7 @@ func (o *outportBlockConverter) handleHeaderV2(headerBytes []byte, shardBlockDat return fmt.Errorf("failed to unmarshal: %w", err) } + shardBlockData.Header = &hyperOutportBlocks.Header{} header := shardBlockData.Header header.Nonce = blockHeader.Header.Nonce header.PrevHash = blockHeader.Header.PrevHash @@ -266,167 +283,44 @@ func (o *outportBlockConverter) handleTransactionPool(outportTxPool *outport.Tra } shardOutportBlockV2.TransactionPool = &hyperOutportBlocks.TransactionPoolV2{} + shardOutportBlockV2.TransactionPool.ScheduledExecutedSCRSHashesPrevBlock = outportTxPool.ScheduledExecutedSCRSHashesPrevBlock + shardOutportBlockV2.TransactionPool.ScheduledExecutedInvalidTxsHashesPrevBlock = outportTxPool.ScheduledExecutedInvalidTxsHashesPrevBlock - if outportTxPool.Transactions != nil { - shardOutportBlockV2.TransactionPool.Transactions = make(map[string]*hyperOutportBlocks.TxInfoV2, len(outportTxPool.Transactions)) + if len(outportTxPool.Transactions) == 0 { + return nil } - if outportTxPool.Rewards != nil { - shardOutportBlockV2.TransactionPool.Rewards = make(map[string]*hyperOutportBlocks.RewardInfo, len(outportTxPool.Rewards)) + shardOutportBlockV2.TransactionPool.Transactions = make(map[string]*hyperOutportBlocks.TxInfoV2) + err := o.copyTransactions(outportTxPool.Transactions, shardOutportBlockV2.TransactionPool) + if err != nil { + return fmt.Errorf("failed to copy transactions: %w", err) } - if outportTxPool.Receipts != nil { - shardOutportBlockV2.TransactionPool.Receipts = make(map[string]*hyperOutportBlocks.Receipt, len(outportTxPool.Receipts)) + err = o.copySmartContractResults(outportTxPool.SmartContractResults, shardOutportBlockV2.TransactionPool) + if err != nil { + return fmt.Errorf("failed to copy smart contract results: %w", err) } - if outportTxPool.InvalidTxs != nil { - shardOutportBlockV2.TransactionPool.InvalidTxs = make(map[string]*hyperOutportBlocks.TxInfo, len(outportTxPool.InvalidTxs)) + err = o.copyRewards(outportTxPool.Rewards, shardOutportBlockV2.TransactionPool) + if err != nil { + return fmt.Errorf("failed to copy rewards: %w", err) } - shardOutportBlockV2.TransactionPool.ScheduledExecutedSCRSHashesPrevBlock = outportTxPool.ScheduledExecutedSCRSHashesPrevBlock - shardOutportBlockV2.TransactionPool.ScheduledExecutedInvalidTxsHashesPrevBlock = outportTxPool.ScheduledExecutedInvalidTxsHashesPrevBlock - - for txHash, tx := range outportTxPool.Transactions { - txInfo := &hyperOutportBlocks.TxInfoV2{} - - // TxInfo - Transaction - if tx.Transaction != nil { - value, err := o.castBigInt(tx.Transaction.Value) - if err != nil { - return fmt.Errorf("failed to cast transaction [%s] value: %w", txHash, err) - } - - txInfo.Transaction = &hyperOutportBlocks.Transaction{ - Nonce: tx.Transaction.Nonce, - Value: value, - RcvAddr: tx.Transaction.RcvAddr, - RcvUserName: tx.Transaction.RcvUserName, - SndAddr: tx.Transaction.SndAddr, - SndUserName: tx.Transaction.SndUserName, - GasPrice: tx.Transaction.GasPrice, - GasLimit: tx.Transaction.GasLimit, - Data: tx.Transaction.Data, - ChainID: tx.Transaction.ChainID, - Version: tx.Transaction.Version, - Signature: tx.Transaction.Signature, - Options: tx.Transaction.Options, - GuardianAddr: tx.Transaction.GuardianAddr, - GuardianSignature: tx.Transaction.GuardianSignature, - } - - // TxInfo - FeeInfo - if tx.FeeInfo != nil { - fee, err := o.castBigInt(tx.FeeInfo.Fee) - if err != nil { - return fmt.Errorf("failed to cast transaction [%s] fee: %w", txHash, err) - } - - initialPaidFee, err := o.castBigInt(tx.FeeInfo.InitialPaidFee) - if err != nil { - return fmt.Errorf("failed to cast transaction [%s] initial paid fee: %w", txHash, err) - } - - txInfo.FeeInfo = &hyperOutportBlocks.FeeInfo{ - GasUsed: tx.FeeInfo.GasUsed, - Fee: fee, - InitialPaidFee: initialPaidFee, - } - } - - txInfo.ExecutionOrder = tx.ExecutionOrder - - if sc, ok := outportTxPool.SmartContractResults[txHash]; ok { - txInfo.SmartContractResults = &hyperOutportBlocks.SCRInfo{ - SmartContractResult: &hyperOutportBlocks.SmartContractResult{}, - } - txInfo.SmartContractResults.SmartContractResult.Nonce = sc.SmartContractResult.Nonce - txInfo.SmartContractResults.SmartContractResult.Value, err = o.castBigInt(sc.SmartContractResult.Value) - if err != nil { - return fmt.Errorf("failed to cast transaction [%s] smart contract result value: %s", txHash, sc.SmartContractResult.Value) - } - txInfo.SmartContractResults.SmartContractResult.RcvAddr = sc.SmartContractResult.RcvAddr - txInfo.SmartContractResults.SmartContractResult.SndAddr = sc.SmartContractResult.SndAddr - txInfo.SmartContractResults.SmartContractResult.RelayerAddr = sc.SmartContractResult.RelayerAddr - txInfo.SmartContractResults.SmartContractResult.RelayedValue, err = o.castBigInt(sc.SmartContractResult.RelayedValue) - if err != nil { - return fmt.Errorf("failed to cast transaction [%s] smart contract result relayed value: %s", txHash, sc.SmartContractResult.Value) - } - txInfo.SmartContractResults.SmartContractResult.Code = sc.SmartContractResult.Code - txInfo.SmartContractResults.SmartContractResult.Data = sc.SmartContractResult.Data - txInfo.SmartContractResults.SmartContractResult.PrevTxHash = sc.SmartContractResult.PrevTxHash - txInfo.SmartContractResults.SmartContractResult.OriginalTxHash = sc.SmartContractResult.OriginalTxHash - txInfo.SmartContractResults.SmartContractResult.GasLimit = sc.SmartContractResult.GasLimit - txInfo.SmartContractResults.SmartContractResult.GasPrice = sc.SmartContractResult.GasPrice - txInfo.SmartContractResults.SmartContractResult.CallType = int64(sc.SmartContractResult.CallType) - txInfo.SmartContractResults.SmartContractResult.CodeMetadata = sc.SmartContractResult.CodeMetadata - txInfo.SmartContractResults.SmartContractResult.ReturnMessage = sc.SmartContractResult.ReturnMessage - txInfo.SmartContractResults.SmartContractResult.OriginalSender = sc.SmartContractResult.OriginalSender - } - - if outportTxPool.Logs != nil { - txInfo.Logs = make([]*hyperOutportBlocks.Log, len(outportTxPool.Logs)) - } - - // Logs - for i, logData := range outportTxPool.Logs { - events := make([]*hyperOutportBlocks.Event, len(logData.Log.Events)) - for i, event := range logData.Log.Events { - e := &hyperOutportBlocks.Event{} - - e.Address = event.Address - e.Identifier = event.Identifier - e.Topics = event.Topics - e.Data = event.Data - e.AdditionalData = event.AdditionalData - - events[i] = e - } - - ll := &hyperOutportBlocks.Log{ - Address: logData.Log.Address, - Events: events, - } - - txInfo.Logs[i] = ll - } - - shardOutportBlockV2.TransactionPool.Transactions[txHash] = txInfo - } + err = o.copyReceipts(outportTxPool.Receipts, shardOutportBlockV2.TransactionPool) + if err != nil { + return fmt.Errorf("failed to copy receipts: %w", err) } - for txHash, reward := range outportTxPool.Rewards { - value, err := o.castBigInt(reward.Reward.Value) - if err != nil { - return fmt.Errorf("failed to cast reward tx value: %w", err) - } - - shardOutportBlockV2.TransactionPool.Rewards[txHash] = &hyperOutportBlocks.RewardInfo{ - Reward: &hyperOutportBlocks.RewardTx{ - Round: reward.Reward.Round, - Value: value, - RcvAddr: reward.Reward.RcvAddr, - Epoch: reward.Reward.Epoch, - }, - ExecutionOrder: reward.ExecutionOrder, - } + err = o.copyInvalidTxs(outportTxPool.Transactions, shardOutportBlockV2.TransactionPool) + if err != nil { + return fmt.Errorf("failed to copy invalid txs: %w", err) } - for txHash, receipt := range outportTxPool.Receipts { - value, err := o.castBigInt(receipt.Value) - if err != nil { - return fmt.Errorf("failed to cast receipt tx value: %w", err) - } - shardOutportBlockV2.TransactionPool.Receipts[txHash] = &hyperOutportBlocks.Receipt{ - Value: value, - SndAddr: receipt.SndAddr, - Data: receipt.Data, - TxHash: receipt.TxHash, - } + err = o.copyLogs(outportTxPool.Logs, shardOutportBlockV2.TransactionPool) + if err != nil { + return fmt.Errorf("failed to copy logs: %w", err) } - //TODO: add invalid txs - //shardOutportBlockV2.TransactionPool.InvalidTxs = outportTxPool.InvalidTxs - return nil } @@ -439,12 +333,9 @@ func handleAlteredAccounts(alteredAccounts map[string]*alteredAccount.AlteredAcc for key, alteredAcc := range alteredAccounts { tokens := make([]*hyperOutportBlocks.AccountTokenData, len(alteredAcc.Tokens)) for i, tokenData := range alteredAcc.Tokens { - tokens[i] = &hyperOutportBlocks.AccountTokenData{ - Nonce: tokenData.Nonce, - Identifier: tokenData.Identifier, - Balance: tokenData.Balance, - Properties: tokenData.Properties, - MetaData: &hyperOutportBlocks.TokenMetaData{ + var md *hyperOutportBlocks.TokenMetaData + if tokenData.MetaData != nil { + md = &hyperOutportBlocks.TokenMetaData{ Nonce: tokenData.MetaData.Nonce, Name: tokenData.MetaData.Name, Creator: tokenData.MetaData.Creator, @@ -452,7 +343,15 @@ func handleAlteredAccounts(alteredAccounts map[string]*alteredAccount.AlteredAcc Hash: tokenData.MetaData.Hash, URIs: tokenData.MetaData.URIs, Attributes: tokenData.MetaData.Attributes, - }, + } + } + + tokens[i] = &hyperOutportBlocks.AccountTokenData{ + Nonce: tokenData.Nonce, + Identifier: tokenData.Identifier, + Balance: tokenData.Balance, + Properties: tokenData.Properties, + MetaData: md, AdditionalData: &hyperOutportBlocks.AdditionalAccountTokenData{ IsNFTCreate: tokenData.AdditionalData.IsNFTCreate, }, @@ -605,6 +504,209 @@ func (o *outportBlockConverter) HandleShardOutportBlock(outportBlock *outport.Ou return shardOutportBlock, nil } +func (o *outportBlockConverter) copyTransactions(sourceTxs map[string]*outport.TxInfo, transactionPool *hyperOutportBlocks.TransactionPoolV2) error { + for txHash, txInfo := range sourceTxs { + destTxInfo := &hyperOutportBlocks.TxInfoV2{} + + // TxInfo - Transaction + if txInfo.Transaction != nil { + value, err := o.castBigInt(txInfo.Transaction.Value) + if err != nil { + return fmt.Errorf("failed to cast transaction [%s] value: %w", txHash, err) + } + + destTxInfo.Transaction = &hyperOutportBlocks.WrappedTx{ + Nonce: txInfo.Transaction.Nonce, + Value: value, + RcvAddr: txInfo.Transaction.RcvAddr, + RcvUserName: txInfo.Transaction.RcvUserName, + SndAddr: txInfo.Transaction.SndAddr, + SndUserName: txInfo.Transaction.SndUserName, + GasPrice: txInfo.Transaction.GasPrice, + GasLimit: txInfo.Transaction.GasLimit, + Data: txInfo.Transaction.Data, + ChainID: txInfo.Transaction.ChainID, + Version: txInfo.Transaction.Version, + Signature: txInfo.Transaction.Signature, + Options: txInfo.Transaction.Options, + GuardianAddr: txInfo.Transaction.GuardianAddr, + GuardianSignature: txInfo.Transaction.GuardianSignature, + TxType: hyperOutportBlocks.TxType_UserTx, + } + + // TxInfo - FeeInfo + if txInfo.FeeInfo != nil { + fee, err := o.castBigInt(txInfo.FeeInfo.Fee) + if err != nil { + return fmt.Errorf("failed to cast transaction [%s] fee: %w", txHash, err) + } + + initialPaidFee, err := o.castBigInt(txInfo.FeeInfo.InitialPaidFee) + if err != nil { + return fmt.Errorf("failed to cast transaction [%s] initial paid fee: %w", txHash, err) + } + + destTxInfo.FeeInfo = &hyperOutportBlocks.FeeInfo{ + GasUsed: txInfo.FeeInfo.GasUsed, + Fee: fee, + InitialPaidFee: initialPaidFee, + } + } + + destTxInfo.ExecutionOrder = txInfo.ExecutionOrder + + transactionPool.Transactions[txHash] = destTxInfo + } + } + + return nil +} + +func (o *outportBlockConverter) copySmartContractResults(sourceSCRs map[string]*outport.SCRInfo, transactionPool *hyperOutportBlocks.TransactionPoolV2) error { + for scrHash, scrInfo := range sourceSCRs { + value, err := o.castBigInt(scrInfo.SmartContractResult.Value) + if err != nil { + return fmt.Errorf("failed to cast smart contract [%s] value: %w", scrHash, err) + } + + relayedValue, err := o.castBigInt(scrInfo.SmartContractResult.RelayedValue) + if err != nil { + return fmt.Errorf("failed to cast relayed transaction [%s] value: %w", scrHash, err) + } + + wrappedTx := &hyperOutportBlocks.WrappedTx{ + Nonce: scrInfo.SmartContractResult.Nonce, + Value: value, + RcvAddr: scrInfo.SmartContractResult.RcvAddr, + SndAddr: scrInfo.SmartContractResult.SndAddr, + GasPrice: scrInfo.SmartContractResult.GasPrice, + GasLimit: scrInfo.SmartContractResult.GasLimit, + Data: scrInfo.SmartContractResult.Data, + RelayerAddr: scrInfo.SmartContractResult.RelayerAddr, + RelayedValue: relayedValue, + Code: scrInfo.SmartContractResult.Code, + PrevTxHash: scrInfo.SmartContractResult.PrevTxHash, + OriginalTxHash: scrInfo.SmartContractResult.OriginalTxHash, + CallType: int64(scrInfo.SmartContractResult.CallType), + CodeMetadata: scrInfo.SmartContractResult.CodeMetadata, + ReturnMessage: scrInfo.SmartContractResult.ReturnMessage, + OriginalSender: scrInfo.SmartContractResult.OriginalSender, + TxType: hyperOutportBlocks.TxType_SCR, + } + + if _, ok := transactionPool.Transactions[scrHash]; !ok { + transactionPool.Transactions[scrHash] = &hyperOutportBlocks.TxInfoV2{Transaction: wrappedTx} + } else { + if transactionPool.Transactions[scrHash].ResultTxs == nil { + transactionPool.Transactions[scrHash].ResultTxs = make([]*hyperOutportBlocks.WrappedTx, 0) + } + transactionPool.Transactions[scrHash].ResultTxs = append(transactionPool.Transactions[scrHash].ResultTxs, wrappedTx) + } + } + + return nil +} + +func (o *outportBlockConverter) copyRewards(sourceRewards map[string]*outport.RewardInfo, transactionPool *hyperOutportBlocks.TransactionPoolV2) error { + for hash, reward := range sourceRewards { + value, err := o.castBigInt(reward.Reward.Value) + if err != nil { + return fmt.Errorf("failed to cast reward tx value: %w", err) + } + + transactionPool.Transactions[hash].Transaction = &hyperOutportBlocks.WrappedTx{ + Value: value, + RcvAddr: reward.Reward.RcvAddr, + Round: reward.Reward.Round, + Epoch: reward.Reward.Epoch, + TxType: hyperOutportBlocks.TxType_Reward, + } + } + + return nil +} + +func (o *outportBlockConverter) copyReceipts(sourceReceipts map[string]*receipt.Receipt, transactionPool *hyperOutportBlocks.TransactionPoolV2) error { + for hash, r := range sourceReceipts { + value, err := o.castBigInt(r.Value) + if err != nil { + return fmt.Errorf("failed to cast receipt tx value: %w", err) + } + + transactionPool.Transactions[hash].Receipt = &hyperOutportBlocks.Receipt{ + Value: value, + SndAddr: r.SndAddr, + Data: r.Data, + TxHash: r.TxHash, + } + } + + return nil +} + +func (o *outportBlockConverter) copyInvalidTxs(sourceInvalidTxs map[string]*outport.TxInfo, transactionPool *hyperOutportBlocks.TransactionPoolV2) error { + for txHash, invalidTx := range sourceInvalidTxs { + value, err := o.castBigInt(invalidTx.Transaction.Value) + if err != nil { + return fmt.Errorf("failed to cast receipt tx value: %w", err) + } + + transactionPool.Transactions[txHash].Transaction = &hyperOutportBlocks.WrappedTx{ + Nonce: invalidTx.Transaction.Nonce, + Value: value, + RcvAddr: invalidTx.Transaction.RcvAddr, + RcvUserName: invalidTx.Transaction.RcvUserName, + SndAddr: invalidTx.Transaction.SndAddr, + SndUserName: invalidTx.Transaction.SndUserName, + GasPrice: invalidTx.Transaction.GasPrice, + GasLimit: invalidTx.Transaction.GasLimit, + Data: invalidTx.Transaction.Data, + ChainID: invalidTx.Transaction.ChainID, + Version: invalidTx.Transaction.Version, + Signature: invalidTx.Transaction.Signature, + Options: invalidTx.Transaction.Options, + GuardianAddr: invalidTx.Transaction.GuardianAddr, + GuardianSignature: invalidTx.Transaction.GuardianSignature, + TxType: hyperOutportBlocks.TxType_Invalid, + } + } + + return nil +} + +func (o *outportBlockConverter) copyLogs(sourceLogs []*outport.LogData, transactionPool *hyperOutportBlocks.TransactionPoolV2) error { + for _, logData := range sourceLogs { + events := make([]*hyperOutportBlocks.Event, len(logData.Log.Events)) + for i, event := range logData.Log.Events { + e := &hyperOutportBlocks.Event{} + + e.Address = event.Address + e.Identifier = event.Identifier + e.Topics = event.Topics + e.Data = event.Data + e.AdditionalData = event.AdditionalData + + events[i] = e + } + + ll := &hyperOutportBlocks.Log{ + Address: logData.Log.Address, + Events: events, + } + + if txInfo, ok := transactionPool.Transactions[logData.TxHash]; !ok { + if transactionPool.Transactions[logData.TxHash].Logs == nil { + transactionPool.Transactions[logData.TxHash].Logs = make([]*hyperOutportBlocks.Log, 0) + } + } else { + txInfo.Logs = append(transactionPool.Transactions[logData.TxHash].Logs, ll) + } + + } + + return nil +} + // HandleMetaOutportBlock will convert an outport.OutportBlock to data.MetaOutportBlock. func (o *outportBlockConverter) HandleMetaOutportBlock(outportBlock *outport.OutportBlock) (*hyperOutportBlocks.MetaOutportBlock, error) { headerType := outportBlock.BlockData.HeaderType diff --git a/process/outportBlockConverter_test.go b/process/outportBlockConverter_test.go index f16f6af..408b8ff 100644 --- a/process/outportBlockConverter_test.go +++ b/process/outportBlockConverter_test.go @@ -4,6 +4,7 @@ import ( "encoding/json" "math/big" "os" + "reflect" "testing" "github.com/multiversx/mx-chain-core-go/data/block" @@ -55,6 +56,8 @@ const ( outportBlockMetaBlockJSONPath = "../testscommon/testdata/outportBlockMetaBlock.json" ) +//TODO: be aware of the ExecutionOrder + func TestOutportBlockConverter_HandleShardOutportBlockV2(t *testing.T) { t.Parallel() @@ -90,6 +93,40 @@ func TestOutportBlockConverter_HandleShardOutportBlockV2(t *testing.T) { if err != nil { panic(err) } + + jsonBytes, err = os.ReadFile(outportBlockHeaderV2JSONPath) + require.NoError(t, err, "failed to read test data") + + ob = &outport.OutportBlock{} + err = json.Unmarshal(jsonBytes, ob) + require.NoError(t, err, "failed to unmarshal test block") + + converter, err = process.NewOutportBlockConverter(gogoProtoMarshaller, protoMarshaller) + require.Nil(t, err) + + shardOutportBlock, err = converter.HandleShardOutportBlockV2(ob) + if err != nil { + panic(err) + } + + headerV2 := &block.HeaderV2{} + err = gogoProtoMarshaller.Unmarshal(headerV2, ob.BlockData.HeaderBytes) + require.NoError(t, err, "failed to unmarshall outport block header bytes") + + checkHeaderV2ShardV2(t, headerV2, shardOutportBlock) + checkFieldsV2(t, ob, shardOutportBlock) + checkBlockData(t, ob.BlockData, shardOutportBlock.BlockData) + + j, err = json.Marshal(shardOutportBlock) + if err != nil { + panic(err) + } + + err = os.WriteFile("./shardoutpor2.json", j, 0655) + if err != nil { + panic(err) + } + } func TestHeaderConverter(t *testing.T) { @@ -205,6 +242,56 @@ func checkHeaderV1ShardV2(t *testing.T, header *block.Header, shardOutportBlock } } +func checkHeaderV2ShardV2(t *testing.T, headerV2 *block.HeaderV2, shardOutportBlock *data.ShardOutportBlockV2) { + // Block data - Header. + header := headerV2.Header + require.Equal(t, header.Nonce, shardOutportBlock.BlockData.Header.Nonce) + require.Equal(t, header.PrevHash, shardOutportBlock.BlockData.Header.PrevHash) + require.Equal(t, header.PrevRandSeed, shardOutportBlock.BlockData.Header.PrevRandSeed) + require.Equal(t, header.RandSeed, shardOutportBlock.BlockData.Header.RandSeed) + require.Equal(t, header.PubKeysBitmap, shardOutportBlock.BlockData.Header.PubKeysBitmap) + require.Equal(t, header.ShardID, shardOutportBlock.BlockData.Header.ShardID) + require.Equal(t, header.TimeStamp, shardOutportBlock.BlockData.Header.TimeStamp) + require.Equal(t, header.Round, shardOutportBlock.BlockData.Header.Round) + require.Equal(t, header.Epoch, shardOutportBlock.BlockData.Header.Epoch) + require.Equal(t, header.BlockBodyType.String(), shardOutportBlock.BlockData.Header.BlockBodyType.String()) + require.Equal(t, header.Signature, shardOutportBlock.BlockData.Header.Signature) + require.Equal(t, header.LeaderSignature, shardOutportBlock.BlockData.Header.LeaderSignature) + require.Equal(t, header.RootHash, shardOutportBlock.BlockData.Header.RootHash) + require.Equal(t, header.MetaBlockHashes, shardOutportBlock.BlockData.Header.MetaBlockHashes) + require.Equal(t, header.TxCount, shardOutportBlock.BlockData.Header.TxCount) + require.Equal(t, header.EpochStartMetaHash, shardOutportBlock.BlockData.Header.EpochStartMetaHash) + require.Equal(t, header.ReceiptsHash, shardOutportBlock.BlockData.Header.ReceiptsHash) + require.Equal(t, header.ChainID, shardOutportBlock.BlockData.Header.ChainID) + require.Equal(t, header.SoftwareVersion, shardOutportBlock.BlockData.Header.SoftwareVersion) + require.Equal(t, header.Reserved, shardOutportBlock.BlockData.Header.Reserved) + require.Equal(t, mustCastBigInt(t, header.AccumulatedFees), shardOutportBlock.BlockData.Header.AccumulatedFees) + require.Equal(t, mustCastBigInt(t, header.DeveloperFees), shardOutportBlock.BlockData.Header.DeveloperFees) + + // Block data - Header - Mini block headers. + for i, miniBlockHeader := range header.MiniBlockHeaders { + require.Equal(t, miniBlockHeader.Hash, shardOutportBlock.BlockData.Header.MiniBlockHeaders[i].Hash) + require.Equal(t, miniBlockHeader.SenderShardID, shardOutportBlock.BlockData.Header.MiniBlockHeaders[i].SenderShardID) + require.Equal(t, miniBlockHeader.ReceiverShardID, shardOutportBlock.BlockData.Header.MiniBlockHeaders[i].ReceiverShardID) + require.Equal(t, miniBlockHeader.TxCount, shardOutportBlock.BlockData.Header.MiniBlockHeaders[i].TxCount) + require.Equal(t, miniBlockHeader.Type.String(), shardOutportBlock.BlockData.Header.MiniBlockHeaders[i].Type.String()) + require.Equal(t, miniBlockHeader.Reserved, shardOutportBlock.BlockData.Header.MiniBlockHeaders[i].Reserved) + } + + // Block data - Header - Peer changes. + for i, peerChange := range header.PeerChanges { + require.Equal(t, peerChange.PubKey, shardOutportBlock.BlockData.Header.PeerChanges[i].PubKey) + require.Equal(t, peerChange.ShardIdDest, shardOutportBlock.BlockData.Header.PeerChanges[i].ShardIdDest) + } + + require.Equal(t, headerV2.ScheduledRootHash, shardOutportBlock.BlockData.ScheduledRootHash) + require.Equal(t, mustCastBigInt(t, headerV2.ScheduledAccumulatedFees), shardOutportBlock.BlockData.ScheduledAccumulatedFees) + require.Equal(t, mustCastBigInt(t, headerV2.ScheduledDeveloperFees), shardOutportBlock.BlockData.ScheduledDeveloperFees) + require.Equal(t, headerV2.ScheduledGasProvided, shardOutportBlock.BlockData.ScheduledGasProvided) + require.Equal(t, headerV2.ScheduledGasPenalized, shardOutportBlock.BlockData.ScheduledGasPenalized) + require.Equal(t, headerV2.ScheduledGasRefunded, shardOutportBlock.BlockData.ScheduledGasRefunded) +} + func checkHeaderV1(t *testing.T, header *block.Header, fireOutportBlock *data.ShardOutportBlock) { // Block data - Header. require.Equal(t, header.Nonce, fireOutportBlock.BlockData.Header.Nonce) @@ -628,22 +715,23 @@ func checkFieldsV2(t *testing.T, outportBlock *outport.OutportBlock, fireOutport for k, v := range outportBlock.TransactionPool.SmartContractResults { tx := fireOutportBlock.GetTransactionPool().Transactions[k] // Transaction pool - Smart Contract results - SmartContractResult. - require.Equal(t, v.SmartContractResult.Nonce, tx.SmartContractResults.SmartContractResult.Nonce) - require.Equal(t, mustCastBigInt(t, v.SmartContractResult.Value), tx.SmartContractResults.SmartContractResult.Value) - require.Equal(t, v.SmartContractResult.RcvAddr, tx.SmartContractResults.SmartContractResult.RcvAddr) - require.Equal(t, v.SmartContractResult.SndAddr, tx.SmartContractResults.SmartContractResult.SndAddr) - require.Equal(t, v.SmartContractResult.RelayerAddr, tx.SmartContractResults.SmartContractResult.RelayerAddr) - require.Equal(t, mustCastBigInt(t, v.SmartContractResult.RelayedValue), tx.SmartContractResults.SmartContractResult.RelayedValue) - require.Equal(t, v.SmartContractResult.Code, tx.SmartContractResults.SmartContractResult.Code) - require.Equal(t, v.SmartContractResult.Data, tx.SmartContractResults.SmartContractResult.Data) - require.Equal(t, v.SmartContractResult.PrevTxHash, tx.SmartContractResults.SmartContractResult.PrevTxHash) - require.Equal(t, v.SmartContractResult.OriginalTxHash, tx.SmartContractResults.SmartContractResult.OriginalTxHash) - require.Equal(t, v.SmartContractResult.GasLimit, tx.SmartContractResults.SmartContractResult.GasLimit) - require.Equal(t, v.SmartContractResult.GasPrice, tx.SmartContractResults.SmartContractResult.GasPrice) - require.Equal(t, int64(v.SmartContractResult.CallType), tx.SmartContractResults.SmartContractResult.CallType) - require.Equal(t, v.SmartContractResult.CodeMetadata, tx.SmartContractResults.SmartContractResult.CodeMetadata) - require.Equal(t, v.SmartContractResult.ReturnMessage, tx.SmartContractResults.SmartContractResult.ReturnMessage) - require.Equal(t, v.SmartContractResult.OriginalSender, tx.SmartContractResults.SmartContractResult.OriginalSender) + require.Equal(t, v.SmartContractResult.Nonce, tx.Transaction.Nonce) + require.Equal(t, mustCastBigInt(t, v.SmartContractResult.Value), tx.Transaction.Value) + require.Equal(t, v.SmartContractResult.RcvAddr, tx.Transaction.RcvAddr) + require.Equal(t, v.SmartContractResult.SndAddr, tx.Transaction.SndAddr) + require.Equal(t, v.SmartContractResult.RelayerAddr, tx.Transaction.RelayerAddr) + require.Equal(t, mustCastBigInt(t, v.SmartContractResult.RelayedValue), tx.Transaction.RelayedValue) + require.Equal(t, v.SmartContractResult.Code, tx.Transaction.Code) + require.Equal(t, v.SmartContractResult.Data, tx.Transaction.Data) + require.Equal(t, v.SmartContractResult.PrevTxHash, tx.Transaction.PrevTxHash) + require.Equal(t, v.SmartContractResult.OriginalTxHash, tx.Transaction.OriginalTxHash) + require.Equal(t, v.SmartContractResult.GasLimit, tx.Transaction.GasLimit) + require.Equal(t, v.SmartContractResult.GasPrice, tx.Transaction.GasPrice) + require.Equal(t, int64(v.SmartContractResult.CallType), tx.Transaction.CallType) + require.Equal(t, v.SmartContractResult.CodeMetadata, tx.Transaction.CodeMetadata) + require.Equal(t, v.SmartContractResult.ReturnMessage, tx.Transaction.ReturnMessage) + require.Equal(t, v.SmartContractResult.OriginalSender, tx.Transaction.OriginalSender) + require.Equal(t, data.TxType_SCR, tx.Transaction.TxType) //TODO: check if these needs to be added too. // Transaction pool - Smart Contract results - Fee info. @@ -658,66 +746,76 @@ func checkFieldsV2(t *testing.T, outportBlock *outport.OutportBlock, fireOutport // Transaction Pool - Rewards for k, v := range outportBlock.TransactionPool.Rewards { // Transaction Pool - Rewards - Reward info - require.Equal(t, v.Reward.Round, fireOutportBlock.GetTransactionPool().Rewards[k].Reward.Round) - require.Equal(t, mustCastBigInt(t, v.Reward.Value), fireOutportBlock.GetTransactionPool().Rewards[k].Reward.Value) - require.Equal(t, v.Reward.RcvAddr, fireOutportBlock.GetTransactionPool().Rewards[k].Reward.RcvAddr) - require.Equal(t, v.Reward.Epoch, fireOutportBlock.GetTransactionPool().Rewards[k].Reward.Epoch) + require.Equal(t, v.Reward.Round, fireOutportBlock.GetTransactionPool().Transactions[k].Transaction.Round) + require.Equal(t, mustCastBigInt(t, v.Reward.Value), fireOutportBlock.GetTransactionPool().Transactions[k].Transaction.Value) + require.Equal(t, v.Reward.RcvAddr, fireOutportBlock.GetTransactionPool().Transactions[k].Transaction.RcvAddr) + require.Equal(t, v.Reward.Epoch, fireOutportBlock.GetTransactionPool().Transactions[k].Transaction.Epoch) // Transaction Pool - Rewards - Execution Order - require.Equal(t, v.ExecutionOrder, fireOutportBlock.GetTransactionPool().Rewards[k].ExecutionOrder) + require.Equal(t, v.ExecutionOrder, fireOutportBlock.GetTransactionPool().Transactions[k].Transaction.ExecutionOrder) + + require.Equal(t, data.TxType_Reward, fireOutportBlock.GetTransactionPool().Transactions[k].Transaction.TxType) } // Transaction Pool - Receipts for k, v := range outportBlock.TransactionPool.Receipts { // Transaction Pool - Receipts - Receipt info - require.Equal(t, mustCastBigInt(t, v.Value), fireOutportBlock.GetTransactionPool().Receipts[k].Value) - require.Equal(t, v.SndAddr, fireOutportBlock.GetTransactionPool().Receipts[k].SndAddr) - require.Equal(t, v.Data, fireOutportBlock.GetTransactionPool().Receipts[k].Data) - require.Equal(t, v.TxHash, fireOutportBlock.GetTransactionPool().Receipts[k].TxHash) + require.Equal(t, mustCastBigInt(t, v.Value), fireOutportBlock.GetTransactionPool().Transactions[k].Receipt.Value) + require.Equal(t, v.SndAddr, fireOutportBlock.GetTransactionPool().Transactions[k].Receipt.SndAddr) + require.Equal(t, v.Data, fireOutportBlock.GetTransactionPool().Transactions[k].Receipt.Data) + require.Equal(t, v.TxHash, fireOutportBlock.GetTransactionPool().Transactions[k].Receipt.TxHash) } // Transaction Pool - Invalid Txs for k, v := range outportBlock.TransactionPool.InvalidTxs { // Transaction Pool - Invalid Txs - Tx Info - require.Equal(t, v.Transaction.Nonce, fireOutportBlock.GetTransactionPool().InvalidTxs[k].Transaction.Nonce) - require.Equal(t, mustCastBigInt(t, v.Transaction.Value), fireOutportBlock.GetTransactionPool().InvalidTxs[k].Transaction.Value) - require.Equal(t, v.Transaction.RcvAddr, fireOutportBlock.GetTransactionPool().InvalidTxs[k].Transaction.RcvAddr) - require.Equal(t, v.Transaction.RcvUserName, fireOutportBlock.GetTransactionPool().InvalidTxs[k].Transaction.RcvUserName) - require.Equal(t, v.Transaction.SndAddr, fireOutportBlock.GetTransactionPool().InvalidTxs[k].Transaction.SndAddr) - require.Equal(t, v.Transaction.GasPrice, fireOutportBlock.GetTransactionPool().InvalidTxs[k].Transaction.GasPrice) - require.Equal(t, v.Transaction.GasLimit, fireOutportBlock.GetTransactionPool().InvalidTxs[k].Transaction.GasLimit) - require.Equal(t, v.Transaction.Data, fireOutportBlock.GetTransactionPool().InvalidTxs[k].Transaction.Data) - require.Equal(t, v.Transaction.ChainID, fireOutportBlock.GetTransactionPool().InvalidTxs[k].Transaction.ChainID) - require.Equal(t, v.Transaction.Version, fireOutportBlock.GetTransactionPool().InvalidTxs[k].Transaction.Version) - require.Equal(t, v.Transaction.Signature, fireOutportBlock.GetTransactionPool().InvalidTxs[k].Transaction.Signature) - require.Equal(t, v.Transaction.Options, fireOutportBlock.GetTransactionPool().InvalidTxs[k].Transaction.Options) - require.Equal(t, v.Transaction.GuardianAddr, fireOutportBlock.GetTransactionPool().InvalidTxs[k].Transaction.GuardianAddr) - require.Equal(t, v.Transaction.GuardianSignature, fireOutportBlock.GetTransactionPool().InvalidTxs[k].Transaction.GuardianSignature) - require.Equal(t, v.ExecutionOrder, fireOutportBlock.GetTransactionPool().InvalidTxs[k].ExecutionOrder) + require.Equal(t, v.Transaction.Nonce, fireOutportBlock.GetTransactionPool().Transactions[k].Transaction.Nonce) + require.Equal(t, mustCastBigInt(t, v.Transaction.Value), fireOutportBlock.GetTransactionPool().Transactions[k].Transaction.Value) + require.Equal(t, v.Transaction.RcvAddr, fireOutportBlock.GetTransactionPool().Transactions[k].Transaction.RcvAddr) + require.Equal(t, v.Transaction.RcvUserName, fireOutportBlock.GetTransactionPool().Transactions[k].Transaction.RcvUserName) + require.Equal(t, v.Transaction.SndAddr, fireOutportBlock.GetTransactionPool().Transactions[k].Transaction.SndAddr) + require.Equal(t, v.Transaction.GasPrice, fireOutportBlock.GetTransactionPool().Transactions[k].Transaction.GasPrice) + require.Equal(t, v.Transaction.GasLimit, fireOutportBlock.GetTransactionPool().Transactions[k].Transaction.GasLimit) + require.Equal(t, v.Transaction.Data, fireOutportBlock.GetTransactionPool().Transactions[k].Transaction.Data) + require.Equal(t, v.Transaction.ChainID, fireOutportBlock.GetTransactionPool().Transactions[k].Transaction.ChainID) + require.Equal(t, v.Transaction.Version, fireOutportBlock.GetTransactionPool().Transactions[k].Transaction.Version) + require.Equal(t, v.Transaction.Signature, fireOutportBlock.GetTransactionPool().Transactions[k].Transaction.Signature) + require.Equal(t, v.Transaction.Options, fireOutportBlock.GetTransactionPool().Transactions[k].Transaction.Options) + require.Equal(t, v.Transaction.GuardianAddr, fireOutportBlock.GetTransactionPool().Transactions[k].Transaction.GuardianAddr) + require.Equal(t, v.Transaction.GuardianSignature, fireOutportBlock.GetTransactionPool().Transactions[k].Transaction.GuardianSignature) + require.Equal(t, v.ExecutionOrder, fireOutportBlock.GetTransactionPool().Transactions[k].Transaction.ExecutionOrder) // Transaction pool - Invalid Txs - Fee info. - require.Equal(t, v.FeeInfo.GasUsed, fireOutportBlock.GetTransactionPool().InvalidTxs[k].FeeInfo.GasUsed) - require.Equal(t, mustCastBigInt(t, v.FeeInfo.Fee), fireOutportBlock.GetTransactionPool().InvalidTxs[k].FeeInfo.Fee) - require.Equal(t, mustCastBigInt(t, v.FeeInfo.InitialPaidFee), fireOutportBlock.GetTransactionPool().InvalidTxs[k].FeeInfo.InitialPaidFee) + require.Equal(t, v.FeeInfo.GasUsed, fireOutportBlock.GetTransactionPool().Transactions[k].FeeInfo.GasUsed) + require.Equal(t, mustCastBigInt(t, v.FeeInfo.Fee), fireOutportBlock.GetTransactionPool().Transactions[k].FeeInfo.Fee) + require.Equal(t, mustCastBigInt(t, v.FeeInfo.InitialPaidFee), fireOutportBlock.GetTransactionPool().Transactions[k].FeeInfo.InitialPaidFee) - require.Equal(t, v.ExecutionOrder, fireOutportBlock.GetTransactionPool().InvalidTxs[k].ExecutionOrder) + require.Equal(t, v.ExecutionOrder, fireOutportBlock.GetTransactionPool().Transactions[k].ExecutionOrder) } // Transaction Pool - Logs - for i, l := range outportBlock.TransactionPool.Logs { + for _, l := range outportBlock.TransactionPool.Logs { + require.NotNil(t, fireOutportBlock.GetTransactionPool().Transactions[l.TxHash]) + // Transaction Pool - Logs - Log Data - require.Equal(t, l.TxHash, fireOutportBlock.GetTransactionPool().Logs[i].TxHash) // Transaction Pool - Logs - Log data - Log - require.Equal(t, l.Log.Address, fireOutportBlock.GetTransactionPool().Logs[i].Log.Address) + var ok bool + for i, ll := range fireOutportBlock.GetTransactionPool().Transactions[l.TxHash].Logs { + if reflect.DeepEqual(l.Log.Address, ll.Address) { + ok = true + } - for k, e := range outportBlock.TransactionPool.Logs[i].Log.Events { - require.Equal(t, e.Address, fireOutportBlock.GetTransactionPool().Logs[i].Log.Events[k].Address) - require.Equal(t, e.Identifier, fireOutportBlock.GetTransactionPool().Logs[i].Log.Events[k].Identifier) - require.Equal(t, e.Topics, fireOutportBlock.GetTransactionPool().Logs[i].Log.Events[k].Topics) - require.Equal(t, e.Data, fireOutportBlock.GetTransactionPool().Logs[i].Log.Events[k].Data) - require.Equal(t, e.AdditionalData, fireOutportBlock.GetTransactionPool().Logs[i].Log.Events[k].AdditionalData) + for k, e := range l.Log.Events { + require.Equal(t, e.Address, fireOutportBlock.GetTransactionPool().Transactions[l.TxHash].Logs[i].Events[k].Address) + require.Equal(t, e.Identifier, fireOutportBlock.GetTransactionPool().Transactions[l.TxHash].Logs[i].Events[k].Identifier) + require.Equal(t, e.Topics, fireOutportBlock.GetTransactionPool().Transactions[l.TxHash].Logs[i].Events[k].Topics) + require.Equal(t, e.Data, fireOutportBlock.GetTransactionPool().Transactions[l.TxHash].Logs[i].Events[k].Data) + require.Equal(t, e.AdditionalData, fireOutportBlock.GetTransactionPool().Transactions[l.TxHash].Logs[i].Events[k].AdditionalData) + } } + + require.True(t, ok) } // Transaction Pool - ScheduledExecutedSCRSHashesPrevBlock From 23ee1d54d05a409e291660502e5db35e70ffa765 Mon Sep 17 00:00:00 2001 From: Alexander Cristurean Date: Fri, 19 Jul 2024 15:49:49 +0300 Subject: [PATCH 04/12] added interfaces for v2. --- data/hyperOutportBlocks/shardOutportBlock.go | 11 ++++ process/blocksPool.go | 1 + process/dataProcessor.go | 2 +- process/interface.go | 2 + process/outportBlockConverter.go | 62 +++++++++++--------- 5 files changed, 49 insertions(+), 29 deletions(-) diff --git a/data/hyperOutportBlocks/shardOutportBlock.go b/data/hyperOutportBlocks/shardOutportBlock.go index 9b64787..5ea9254 100644 --- a/data/hyperOutportBlocks/shardOutportBlock.go +++ b/data/hyperOutportBlocks/shardOutportBlock.go @@ -13,3 +13,14 @@ func (x *ShardOutportBlock) GetHeaderNonce() (uint64, error) { return x.BlockData.Header.Nonce, nil } + +func (y *ShardOutportBlockV2) GetHeaderNonce() (uint64, error) { + if y.BlockData == nil { + return 0, fmt.Errorf("shard outport block: nil block data") + } + if y.BlockData.Header == nil { + return 0, fmt.Errorf("shard outport block: nil header") + } + + return y.BlockData.Header.Nonce, nil +} diff --git a/process/blocksPool.go b/process/blocksPool.go index 8c004a6..b2d7229 100644 --- a/process/blocksPool.go +++ b/process/blocksPool.go @@ -5,6 +5,7 @@ import ( "github.com/multiversx/mx-chain-core-go/core/check" "github.com/multiversx/mx-chain-core-go/marshal" + "github.com/multiversx/mx-chain-ws-connector-firehose-go/data" "github.com/multiversx/mx-chain-ws-connector-firehose-go/data/hyperOutportBlocks" ) diff --git a/process/dataProcessor.go b/process/dataProcessor.go index b0e3aca..50f7274 100644 --- a/process/dataProcessor.go +++ b/process/dataProcessor.go @@ -116,7 +116,7 @@ func (dp *dataProcessor) handleMetaOutportBlock(outportBlock *outport.OutportBlo } func (dp *dataProcessor) handleShardOutportBlock(outportBlock *outport.OutportBlock) error { - shardOutportBlock, err := dp.outportBlockConverter.HandleShardOutportBlock(outportBlock) + shardOutportBlock, err := dp.outportBlockConverter.HandleShardOutportBlockV2(outportBlock) if err != nil { return fmt.Errorf("failed to handle shardOutportBlock: %w", err) } diff --git a/process/interface.go b/process/interface.go index 5f2611c..264ced7 100644 --- a/process/interface.go +++ b/process/interface.go @@ -6,6 +6,7 @@ import ( "github.com/multiversx/mx-chain-core-go/core" "github.com/multiversx/mx-chain-core-go/data/block" "github.com/multiversx/mx-chain-core-go/data/outport" + "github.com/multiversx/mx-chain-ws-connector-firehose-go/data" "github.com/multiversx/mx-chain-ws-connector-firehose-go/data/hyperOutportBlocks" ) @@ -101,6 +102,7 @@ type PruningStorer interface { // OutportBlockConverter handles the conversion between gogo and google proto buffer definitions. type OutportBlockConverter interface { HandleShardOutportBlock(outportBlock *outport.OutportBlock) (*hyperOutportBlocks.ShardOutportBlock, error) + HandleShardOutportBlockV2(outportBlock *outport.OutportBlock) (*hyperOutportBlocks.ShardOutportBlockV2, error) HandleMetaOutportBlock(outportBlock *outport.OutportBlock) (*hyperOutportBlocks.MetaOutportBlock, error) IsInterfaceNil() bool } diff --git a/process/outportBlockConverter.go b/process/outportBlockConverter.go index 890edf5..6c127b4 100644 --- a/process/outportBlockConverter.go +++ b/process/outportBlockConverter.go @@ -614,12 +614,14 @@ func (o *outportBlockConverter) copyRewards(sourceRewards map[string]*outport.Re return fmt.Errorf("failed to cast reward tx value: %w", err) } - transactionPool.Transactions[hash].Transaction = &hyperOutportBlocks.WrappedTx{ - Value: value, - RcvAddr: reward.Reward.RcvAddr, - Round: reward.Reward.Round, - Epoch: reward.Reward.Epoch, - TxType: hyperOutportBlocks.TxType_Reward, + transactionPool.Transactions[hash] = &hyperOutportBlocks.TxInfoV2{ + Transaction: &hyperOutportBlocks.WrappedTx{ + Value: value, + RcvAddr: reward.Reward.RcvAddr, + Round: reward.Reward.Round, + Epoch: reward.Reward.Epoch, + TxType: hyperOutportBlocks.TxType_Reward, + }, } } @@ -633,11 +635,13 @@ func (o *outportBlockConverter) copyReceipts(sourceReceipts map[string]*receipt. return fmt.Errorf("failed to cast receipt tx value: %w", err) } - transactionPool.Transactions[hash].Receipt = &hyperOutportBlocks.Receipt{ - Value: value, - SndAddr: r.SndAddr, - Data: r.Data, - TxHash: r.TxHash, + transactionPool.Transactions[hash] = &hyperOutportBlocks.TxInfoV2{ + Receipt: &hyperOutportBlocks.Receipt{ + Value: value, + SndAddr: r.SndAddr, + Data: r.Data, + TxHash: r.TxHash, + }, } } @@ -651,23 +655,25 @@ func (o *outportBlockConverter) copyInvalidTxs(sourceInvalidTxs map[string]*outp return fmt.Errorf("failed to cast receipt tx value: %w", err) } - transactionPool.Transactions[txHash].Transaction = &hyperOutportBlocks.WrappedTx{ - Nonce: invalidTx.Transaction.Nonce, - Value: value, - RcvAddr: invalidTx.Transaction.RcvAddr, - RcvUserName: invalidTx.Transaction.RcvUserName, - SndAddr: invalidTx.Transaction.SndAddr, - SndUserName: invalidTx.Transaction.SndUserName, - GasPrice: invalidTx.Transaction.GasPrice, - GasLimit: invalidTx.Transaction.GasLimit, - Data: invalidTx.Transaction.Data, - ChainID: invalidTx.Transaction.ChainID, - Version: invalidTx.Transaction.Version, - Signature: invalidTx.Transaction.Signature, - Options: invalidTx.Transaction.Options, - GuardianAddr: invalidTx.Transaction.GuardianAddr, - GuardianSignature: invalidTx.Transaction.GuardianSignature, - TxType: hyperOutportBlocks.TxType_Invalid, + transactionPool.Transactions[txHash] = &hyperOutportBlocks.TxInfoV2{ + Transaction: &hyperOutportBlocks.WrappedTx{ + Nonce: invalidTx.Transaction.Nonce, + Value: value, + RcvAddr: invalidTx.Transaction.RcvAddr, + RcvUserName: invalidTx.Transaction.RcvUserName, + SndAddr: invalidTx.Transaction.SndAddr, + SndUserName: invalidTx.Transaction.SndUserName, + GasPrice: invalidTx.Transaction.GasPrice, + GasLimit: invalidTx.Transaction.GasLimit, + Data: invalidTx.Transaction.Data, + ChainID: invalidTx.Transaction.ChainID, + Version: invalidTx.Transaction.Version, + Signature: invalidTx.Transaction.Signature, + Options: invalidTx.Transaction.Options, + GuardianAddr: invalidTx.Transaction.GuardianAddr, + GuardianSignature: invalidTx.Transaction.GuardianSignature, + TxType: hyperOutportBlocks.TxType_Invalid, + }, } } From b523e87dfc2023f519b45de2cbc99085f518fcae Mon Sep 17 00:00:00 2001 From: Alexander Cristurean Date: Thu, 25 Jul 2024 18:27:17 +0300 Subject: [PATCH 05/12] improved copying mechanism. --- .../hyperOutportBlocks/grpcBlockService.pb.go | 189 +- .../grpcBlockService_grpc.pb.go | 6 +- .../hyperOutportBlock.pb.go | 1603 ++++++++--------- .../hyperOutportBlock.proto | 7 +- process/dataProcessor.go | 14 + process/outportBlockConverter.go | 74 +- process/outportBlockConverter_test.go | 58 +- testscommon/outportBlockConverterMock.go | 15 +- testscommon/testdata/outportBlocks.json | 788 ++++++++ 9 files changed, 1809 insertions(+), 945 deletions(-) create mode 100644 testscommon/testdata/outportBlocks.json diff --git a/data/hyperOutportBlocks/grpcBlockService.pb.go b/data/hyperOutportBlocks/grpcBlockService.pb.go index 002bedc..54c3832 100644 --- a/data/hyperOutportBlocks/grpcBlockService.pb.go +++ b/data/hyperOutportBlocks/grpcBlockService.pb.go @@ -2,7 +2,7 @@ // versions: // protoc-gen-go v1.28.1 // protoc v3.6.1 -// source: grpcBlockService.proto +// source: data/hyperOutportBlocks/grpcBlockService.proto package hyperOutportBlocks @@ -32,7 +32,7 @@ type BlockHashRequest struct { func (x *BlockHashRequest) Reset() { *x = BlockHashRequest{} if protoimpl.UnsafeEnabled { - mi := &file_grpcBlockService_proto_msgTypes[0] + mi := &file_data_hyperOutportBlocks_grpcBlockService_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -45,7 +45,7 @@ func (x *BlockHashRequest) String() string { func (*BlockHashRequest) ProtoMessage() {} func (x *BlockHashRequest) ProtoReflect() protoreflect.Message { - mi := &file_grpcBlockService_proto_msgTypes[0] + mi := &file_data_hyperOutportBlocks_grpcBlockService_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -58,7 +58,7 @@ func (x *BlockHashRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BlockHashRequest.ProtoReflect.Descriptor instead. func (*BlockHashRequest) Descriptor() ([]byte, []int) { - return file_grpcBlockService_proto_rawDescGZIP(), []int{0} + return file_data_hyperOutportBlocks_grpcBlockService_proto_rawDescGZIP(), []int{0} } func (x *BlockHashRequest) GetHash() string { @@ -80,7 +80,7 @@ type BlockHashStreamRequest struct { func (x *BlockHashStreamRequest) Reset() { *x = BlockHashStreamRequest{} if protoimpl.UnsafeEnabled { - mi := &file_grpcBlockService_proto_msgTypes[1] + mi := &file_data_hyperOutportBlocks_grpcBlockService_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -93,7 +93,7 @@ func (x *BlockHashStreamRequest) String() string { func (*BlockHashStreamRequest) ProtoMessage() {} func (x *BlockHashStreamRequest) ProtoReflect() protoreflect.Message { - mi := &file_grpcBlockService_proto_msgTypes[1] + mi := &file_data_hyperOutportBlocks_grpcBlockService_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -106,7 +106,7 @@ func (x *BlockHashStreamRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BlockHashStreamRequest.ProtoReflect.Descriptor instead. func (*BlockHashStreamRequest) Descriptor() ([]byte, []int) { - return file_grpcBlockService_proto_rawDescGZIP(), []int{1} + return file_data_hyperOutportBlocks_grpcBlockService_proto_rawDescGZIP(), []int{1} } func (x *BlockHashStreamRequest) GetHash() string { @@ -134,7 +134,7 @@ type BlockNonceRequest struct { func (x *BlockNonceRequest) Reset() { *x = BlockNonceRequest{} if protoimpl.UnsafeEnabled { - mi := &file_grpcBlockService_proto_msgTypes[2] + mi := &file_data_hyperOutportBlocks_grpcBlockService_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -147,7 +147,7 @@ func (x *BlockNonceRequest) String() string { func (*BlockNonceRequest) ProtoMessage() {} func (x *BlockNonceRequest) ProtoReflect() protoreflect.Message { - mi := &file_grpcBlockService_proto_msgTypes[2] + mi := &file_data_hyperOutportBlocks_grpcBlockService_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -160,7 +160,7 @@ func (x *BlockNonceRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BlockNonceRequest.ProtoReflect.Descriptor instead. func (*BlockNonceRequest) Descriptor() ([]byte, []int) { - return file_grpcBlockService_proto_rawDescGZIP(), []int{2} + return file_data_hyperOutportBlocks_grpcBlockService_proto_rawDescGZIP(), []int{2} } func (x *BlockNonceRequest) GetNonce() uint64 { @@ -182,7 +182,7 @@ type BlockNonceStreamRequest struct { func (x *BlockNonceStreamRequest) Reset() { *x = BlockNonceStreamRequest{} if protoimpl.UnsafeEnabled { - mi := &file_grpcBlockService_proto_msgTypes[3] + mi := &file_data_hyperOutportBlocks_grpcBlockService_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -195,7 +195,7 @@ func (x *BlockNonceStreamRequest) String() string { func (*BlockNonceStreamRequest) ProtoMessage() {} func (x *BlockNonceStreamRequest) ProtoReflect() protoreflect.Message { - mi := &file_grpcBlockService_proto_msgTypes[3] + mi := &file_data_hyperOutportBlocks_grpcBlockService_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -208,7 +208,7 @@ func (x *BlockNonceStreamRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BlockNonceStreamRequest.ProtoReflect.Descriptor instead. func (*BlockNonceStreamRequest) Descriptor() ([]byte, []int) { - return file_grpcBlockService_proto_rawDescGZIP(), []int{3} + return file_data_hyperOutportBlocks_grpcBlockService_proto_rawDescGZIP(), []int{3} } func (x *BlockNonceStreamRequest) GetNonce() uint64 { @@ -225,79 +225,80 @@ func (x *BlockNonceStreamRequest) GetPollingInterval() *duration.Duration { return nil } -var File_grpcBlockService_proto protoreflect.FileDescriptor - -var file_grpcBlockService_proto_rawDesc = []byte{ - 0x0a, 0x16, 0x67, 0x72, 0x70, 0x63, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, - 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, - 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x68, 0x79, 0x70, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x6f, - 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x2f, 0x68, 0x79, 0x70, 0x65, 0x72, 0x4f, 0x75, - 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x22, 0x26, 0x0a, 0x10, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x22, 0x71, 0x0a, 0x16, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x48, 0x61, 0x73, 0x68, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x43, 0x0a, 0x0f, 0x70, 0x6f, 0x6c, 0x6c, 0x69, 0x6e, - 0x67, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x70, 0x6f, 0x6c, 0x6c, - 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22, 0x29, 0x0a, 0x11, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x22, 0x74, 0x0a, 0x17, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, - 0x6f, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x43, 0x0a, 0x0f, 0x70, 0x6f, 0x6c, 0x6c, 0x69, - 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x70, 0x6f, 0x6c, - 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x32, 0xa9, 0x01, 0x0a, - 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x4b, 0x0a, 0x0c, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1d, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x79, 0x70, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x00, 0x30, 0x01, 0x12, 0x4d, 0x0a, 0x0d, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x73, 0x42, 0x79, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x1e, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x48, 0x79, 0x70, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x00, 0x30, 0x01, 0x32, 0x9c, 0x01, 0x0a, 0x0a, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x46, 0x65, 0x74, 0x63, 0x68, 0x12, 0x45, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, +var File_data_hyperOutportBlocks_grpcBlockService_proto protoreflect.FileDescriptor + +var file_data_hyperOutportBlocks_grpcBlockService_proto_rawDesc = []byte{ + 0x0a, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x68, 0x79, 0x70, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, + 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x12, 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x68, 0x79, + 0x70, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, + 0x2f, 0x68, 0x79, 0x70, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x26, 0x0a, 0x10, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, + 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, + 0x22, 0x71, 0x0a, 0x16, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, + 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x43, + 0x0a, 0x0f, 0x70, 0x6f, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, + 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x0f, 0x70, 0x6f, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x76, 0x61, 0x6c, 0x22, 0x29, 0x0a, 0x11, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x6f, 0x6e, 0x63, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x22, 0x74, + 0x0a, 0x17, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x12, + 0x43, 0x0a, 0x0f, 0x70, 0x6f, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, + 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x70, 0x6f, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x76, 0x61, 0x6c, 0x32, 0xa9, 0x01, 0x0a, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x12, 0x4b, 0x0a, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x42, 0x79, + 0x48, 0x61, 0x73, 0x68, 0x12, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x79, 0x70, 0x65, + 0x72, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x00, 0x30, + 0x01, 0x12, 0x4d, 0x0a, 0x0d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x42, 0x79, 0x4e, 0x6f, 0x6e, + 0x63, 0x65, 0x12, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x79, 0x70, 0x65, 0x72, - 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x00, 0x12, 0x47, - 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x79, 0x4e, 0x6f, 0x6e, 0x63, - 0x65, 0x12, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, - 0x6f, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x79, 0x70, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x00, 0x42, 0x51, 0x5a, 0x4f, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x76, 0x65, 0x72, 0x73, 0x78, - 0x2f, 0x6d, 0x78, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2d, 0x77, 0x73, 0x2d, 0x63, 0x6f, 0x6e, - 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2d, 0x66, 0x69, 0x72, 0x65, 0x68, 0x6f, 0x73, 0x65, 0x2d, - 0x67, 0x6f, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x68, 0x79, 0x70, 0x65, 0x72, 0x4f, 0x75, 0x74, - 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x00, 0x30, 0x01, + 0x32, 0x9c, 0x01, 0x0a, 0x0a, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x46, 0x65, 0x74, 0x63, 0x68, 0x12, + 0x45, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x79, 0x48, 0x61, 0x73, + 0x68, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, + 0x61, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x48, 0x79, 0x70, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x42, 0x79, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x79, 0x70, 0x65, + 0x72, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x00, 0x42, + 0x51, 0x5a, 0x4f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x76, 0x65, 0x72, 0x73, 0x78, 0x2f, 0x6d, 0x78, 0x2d, 0x63, 0x68, 0x61, 0x69, + 0x6e, 0x2d, 0x77, 0x73, 0x2d, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2d, 0x66, + 0x69, 0x72, 0x65, 0x68, 0x6f, 0x73, 0x65, 0x2d, 0x67, 0x6f, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, + 0x68, 0x79, 0x70, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( - file_grpcBlockService_proto_rawDescOnce sync.Once - file_grpcBlockService_proto_rawDescData = file_grpcBlockService_proto_rawDesc + file_data_hyperOutportBlocks_grpcBlockService_proto_rawDescOnce sync.Once + file_data_hyperOutportBlocks_grpcBlockService_proto_rawDescData = file_data_hyperOutportBlocks_grpcBlockService_proto_rawDesc ) -func file_grpcBlockService_proto_rawDescGZIP() []byte { - file_grpcBlockService_proto_rawDescOnce.Do(func() { - file_grpcBlockService_proto_rawDescData = protoimpl.X.CompressGZIP(file_grpcBlockService_proto_rawDescData) +func file_data_hyperOutportBlocks_grpcBlockService_proto_rawDescGZIP() []byte { + file_data_hyperOutportBlocks_grpcBlockService_proto_rawDescOnce.Do(func() { + file_data_hyperOutportBlocks_grpcBlockService_proto_rawDescData = protoimpl.X.CompressGZIP(file_data_hyperOutportBlocks_grpcBlockService_proto_rawDescData) }) - return file_grpcBlockService_proto_rawDescData + return file_data_hyperOutportBlocks_grpcBlockService_proto_rawDescData } -var file_grpcBlockService_proto_msgTypes = make([]protoimpl.MessageInfo, 4) -var file_grpcBlockService_proto_goTypes = []interface{}{ +var file_data_hyperOutportBlocks_grpcBlockService_proto_msgTypes = make([]protoimpl.MessageInfo, 4) +var file_data_hyperOutportBlocks_grpcBlockService_proto_goTypes = []interface{}{ (*BlockHashRequest)(nil), // 0: proto.BlockHashRequest (*BlockHashStreamRequest)(nil), // 1: proto.BlockHashStreamRequest (*BlockNonceRequest)(nil), // 2: proto.BlockNonceRequest @@ -305,7 +306,7 @@ var file_grpcBlockService_proto_goTypes = []interface{}{ (*duration.Duration)(nil), // 4: google.protobuf.Duration (*HyperOutportBlock)(nil), // 5: proto.HyperOutportBlock } -var file_grpcBlockService_proto_depIdxs = []int32{ +var file_data_hyperOutportBlocks_grpcBlockService_proto_depIdxs = []int32{ 4, // 0: proto.BlockHashStreamRequest.pollingInterval:type_name -> google.protobuf.Duration 4, // 1: proto.BlockNonceStreamRequest.pollingInterval:type_name -> google.protobuf.Duration 1, // 2: proto.BlockStream.BlocksByHash:input_type -> proto.BlockHashStreamRequest @@ -323,14 +324,14 @@ var file_grpcBlockService_proto_depIdxs = []int32{ 0, // [0:2] is the sub-list for field type_name } -func init() { file_grpcBlockService_proto_init() } -func file_grpcBlockService_proto_init() { - if File_grpcBlockService_proto != nil { +func init() { file_data_hyperOutportBlocks_grpcBlockService_proto_init() } +func file_data_hyperOutportBlocks_grpcBlockService_proto_init() { + if File_data_hyperOutportBlocks_grpcBlockService_proto != nil { return } - file_hyperOutportBlock_proto_init() + file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() if !protoimpl.UnsafeEnabled { - file_grpcBlockService_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_grpcBlockService_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockHashRequest); i { case 0: return &v.state @@ -342,7 +343,7 @@ func file_grpcBlockService_proto_init() { return nil } } - file_grpcBlockService_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_grpcBlockService_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockHashStreamRequest); i { case 0: return &v.state @@ -354,7 +355,7 @@ func file_grpcBlockService_proto_init() { return nil } } - file_grpcBlockService_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_grpcBlockService_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockNonceRequest); i { case 0: return &v.state @@ -366,7 +367,7 @@ func file_grpcBlockService_proto_init() { return nil } } - file_grpcBlockService_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_grpcBlockService_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockNonceStreamRequest); i { case 0: return &v.state @@ -383,18 +384,18 @@ func file_grpcBlockService_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_grpcBlockService_proto_rawDesc, + RawDescriptor: file_data_hyperOutportBlocks_grpcBlockService_proto_rawDesc, NumEnums: 0, NumMessages: 4, NumExtensions: 0, NumServices: 2, }, - GoTypes: file_grpcBlockService_proto_goTypes, - DependencyIndexes: file_grpcBlockService_proto_depIdxs, - MessageInfos: file_grpcBlockService_proto_msgTypes, + GoTypes: file_data_hyperOutportBlocks_grpcBlockService_proto_goTypes, + DependencyIndexes: file_data_hyperOutportBlocks_grpcBlockService_proto_depIdxs, + MessageInfos: file_data_hyperOutportBlocks_grpcBlockService_proto_msgTypes, }.Build() - File_grpcBlockService_proto = out.File - file_grpcBlockService_proto_rawDesc = nil - file_grpcBlockService_proto_goTypes = nil - file_grpcBlockService_proto_depIdxs = nil + File_data_hyperOutportBlocks_grpcBlockService_proto = out.File + file_data_hyperOutportBlocks_grpcBlockService_proto_rawDesc = nil + file_data_hyperOutportBlocks_grpcBlockService_proto_goTypes = nil + file_data_hyperOutportBlocks_grpcBlockService_proto_depIdxs = nil } diff --git a/data/hyperOutportBlocks/grpcBlockService_grpc.pb.go b/data/hyperOutportBlocks/grpcBlockService_grpc.pb.go index 6a41bab..2e70d93 100644 --- a/data/hyperOutportBlocks/grpcBlockService_grpc.pb.go +++ b/data/hyperOutportBlocks/grpcBlockService_grpc.pb.go @@ -2,7 +2,7 @@ // versions: // - protoc-gen-go-grpc v1.2.0 // - protoc v3.6.1 -// source: grpcBlockService.proto +// source: data/hyperOutportBlocks/grpcBlockService.proto package hyperOutportBlocks @@ -191,7 +191,7 @@ var BlockStream_ServiceDesc = grpc.ServiceDesc{ ServerStreams: true, }, }, - Metadata: "grpcBlockService.proto", + Metadata: "data/hyperOutportBlocks/grpcBlockService.proto", } // BlockFetchClient is the client API for BlockFetch service. @@ -313,5 +313,5 @@ var BlockFetch_ServiceDesc = grpc.ServiceDesc{ }, }, Streams: []grpc.StreamDesc{}, - Metadata: "grpcBlockService.proto", + Metadata: "data/hyperOutportBlocks/grpcBlockService.proto", } diff --git a/data/hyperOutportBlocks/hyperOutportBlock.pb.go b/data/hyperOutportBlocks/hyperOutportBlock.pb.go index 37ae55c..4f50d55 100644 --- a/data/hyperOutportBlocks/hyperOutportBlock.pb.go +++ b/data/hyperOutportBlocks/hyperOutportBlock.pb.go @@ -2,7 +2,7 @@ // versions: // protoc-gen-go v1.28.1 // protoc v3.6.1 -// source: hyperOutportBlock.proto +// source: data/hyperOutportBlocks/hyperOutportBlock.proto package hyperOutportBlocks @@ -69,11 +69,11 @@ func (x PeerAction) String() string { } func (PeerAction) Descriptor() protoreflect.EnumDescriptor { - return file_hyperOutportBlock_proto_enumTypes[0].Descriptor() + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_enumTypes[0].Descriptor() } func (PeerAction) Type() protoreflect.EnumType { - return &file_hyperOutportBlock_proto_enumTypes[0] + return &file_data_hyperOutportBlocks_hyperOutportBlock_proto_enumTypes[0] } func (x PeerAction) Number() protoreflect.EnumNumber { @@ -82,7 +82,7 @@ func (x PeerAction) Number() protoreflect.EnumNumber { // Deprecated: Use PeerAction.Descriptor instead. func (PeerAction) EnumDescriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{0} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{0} } type TxType int32 @@ -121,11 +121,11 @@ func (x TxType) String() string { } func (TxType) Descriptor() protoreflect.EnumDescriptor { - return file_hyperOutportBlock_proto_enumTypes[1].Descriptor() + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_enumTypes[1].Descriptor() } func (TxType) Type() protoreflect.EnumType { - return &file_hyperOutportBlock_proto_enumTypes[1] + return &file_data_hyperOutportBlocks_hyperOutportBlock_proto_enumTypes[1] } func (x TxType) Number() protoreflect.EnumNumber { @@ -134,7 +134,7 @@ func (x TxType) Number() protoreflect.EnumNumber { // Deprecated: Use TxType.Descriptor instead. func (TxType) EnumDescriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{1} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{1} } type Type int32 @@ -182,11 +182,11 @@ func (x Type) String() string { } func (Type) Descriptor() protoreflect.EnumDescriptor { - return file_hyperOutportBlock_proto_enumTypes[2].Descriptor() + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_enumTypes[2].Descriptor() } func (Type) Type() protoreflect.EnumType { - return &file_hyperOutportBlock_proto_enumTypes[2] + return &file_data_hyperOutportBlocks_hyperOutportBlock_proto_enumTypes[2] } func (x Type) Number() protoreflect.EnumNumber { @@ -195,7 +195,7 @@ func (x Type) Number() protoreflect.EnumNumber { // Deprecated: Use Type.Descriptor instead. func (Type) EnumDescriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{2} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{2} } type HyperOutportBlock struct { @@ -210,7 +210,7 @@ type HyperOutportBlock struct { func (x *HyperOutportBlock) Reset() { *x = HyperOutportBlock{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[0] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -223,7 +223,7 @@ func (x *HyperOutportBlock) String() string { func (*HyperOutportBlock) ProtoMessage() {} func (x *HyperOutportBlock) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[0] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -236,7 +236,7 @@ func (x *HyperOutportBlock) ProtoReflect() protoreflect.Message { // Deprecated: Use HyperOutportBlock.ProtoReflect.Descriptor instead. func (*HyperOutportBlock) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{0} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{0} } func (x *HyperOutportBlock) GetMetaOutportBlock() *MetaOutportBlock { @@ -265,7 +265,7 @@ type NotarizedHeaderOutportData struct { func (x *NotarizedHeaderOutportData) Reset() { *x = NotarizedHeaderOutportData{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[1] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -278,7 +278,7 @@ func (x *NotarizedHeaderOutportData) String() string { func (*NotarizedHeaderOutportData) ProtoMessage() {} func (x *NotarizedHeaderOutportData) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[1] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -291,7 +291,7 @@ func (x *NotarizedHeaderOutportData) ProtoReflect() protoreflect.Message { // Deprecated: Use NotarizedHeaderOutportData.ProtoReflect.Descriptor instead. func (*NotarizedHeaderOutportData) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{1} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{1} } func (x *NotarizedHeaderOutportData) GetNotarizedHeaderHash() string { @@ -328,7 +328,7 @@ type MetaOutportBlock struct { func (x *MetaOutportBlock) Reset() { *x = MetaOutportBlock{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[2] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -341,7 +341,7 @@ func (x *MetaOutportBlock) String() string { func (*MetaOutportBlock) ProtoMessage() {} func (x *MetaOutportBlock) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[2] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -354,7 +354,7 @@ func (x *MetaOutportBlock) ProtoReflect() protoreflect.Message { // Deprecated: Use MetaOutportBlock.ProtoReflect.Descriptor instead. func (*MetaOutportBlock) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{2} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{2} } func (x *MetaOutportBlock) GetShardID() uint32 { @@ -447,7 +447,7 @@ type ShardOutportBlock struct { func (x *ShardOutportBlock) Reset() { *x = ShardOutportBlock{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[3] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -460,7 +460,7 @@ func (x *ShardOutportBlock) String() string { func (*ShardOutportBlock) ProtoMessage() {} func (x *ShardOutportBlock) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[3] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -473,7 +473,7 @@ func (x *ShardOutportBlock) ProtoReflect() protoreflect.Message { // Deprecated: Use ShardOutportBlock.ProtoReflect.Descriptor instead. func (*ShardOutportBlock) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{3} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{3} } func (x *ShardOutportBlock) GetShardID() uint32 { @@ -566,7 +566,7 @@ type ShardOutportBlockV2 struct { func (x *ShardOutportBlockV2) Reset() { *x = ShardOutportBlockV2{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[4] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -579,7 +579,7 @@ func (x *ShardOutportBlockV2) String() string { func (*ShardOutportBlockV2) ProtoMessage() {} func (x *ShardOutportBlockV2) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[4] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -592,7 +592,7 @@ func (x *ShardOutportBlockV2) ProtoReflect() protoreflect.Message { // Deprecated: Use ShardOutportBlockV2.ProtoReflect.Descriptor instead. func (*ShardOutportBlockV2) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{4} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{4} } func (x *ShardOutportBlockV2) GetShardID() uint32 { @@ -678,7 +678,7 @@ type TransactionPoolV2 struct { func (x *TransactionPoolV2) Reset() { *x = TransactionPoolV2{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[5] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -691,7 +691,7 @@ func (x *TransactionPoolV2) String() string { func (*TransactionPoolV2) ProtoMessage() {} func (x *TransactionPoolV2) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[5] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -704,7 +704,7 @@ func (x *TransactionPoolV2) ProtoReflect() protoreflect.Message { // Deprecated: Use TransactionPoolV2.ProtoReflect.Descriptor instead. func (*TransactionPoolV2) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{5} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{5} } func (x *TransactionPoolV2) GetTransactions() map[string]*TxInfoV2 { @@ -764,7 +764,7 @@ type Header struct { func (x *Header) Reset() { *x = Header{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[6] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -777,7 +777,7 @@ func (x *Header) String() string { func (*Header) ProtoMessage() {} func (x *Header) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[6] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -790,7 +790,7 @@ func (x *Header) ProtoReflect() protoreflect.Message { // Deprecated: Use Header.ProtoReflect.Descriptor instead. func (*Header) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{6} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{6} } func (x *Header) GetNonce() uint64 { @@ -996,7 +996,7 @@ type MetaHeader struct { func (x *MetaHeader) Reset() { *x = MetaHeader{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[7] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1009,7 +1009,7 @@ func (x *MetaHeader) String() string { func (*MetaHeader) ProtoMessage() {} func (x *MetaHeader) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[7] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1022,7 +1022,7 @@ func (x *MetaHeader) ProtoReflect() protoreflect.Message { // Deprecated: Use MetaHeader.ProtoReflect.Descriptor instead. func (*MetaHeader) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{7} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{7} } func (x *MetaHeader) GetNonce() uint64 { @@ -1216,7 +1216,7 @@ type MiniBlockHeader struct { func (x *MiniBlockHeader) Reset() { *x = MiniBlockHeader{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[8] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1229,7 +1229,7 @@ func (x *MiniBlockHeader) String() string { func (*MiniBlockHeader) ProtoMessage() {} func (x *MiniBlockHeader) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[8] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1242,7 +1242,7 @@ func (x *MiniBlockHeader) ProtoReflect() protoreflect.Message { // Deprecated: Use MiniBlockHeader.ProtoReflect.Descriptor instead. func (*MiniBlockHeader) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{8} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{8} } func (x *MiniBlockHeader) GetHash() []byte { @@ -1300,7 +1300,7 @@ type PeerChange struct { func (x *PeerChange) Reset() { *x = PeerChange{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[9] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1313,7 +1313,7 @@ func (x *PeerChange) String() string { func (*PeerChange) ProtoMessage() {} func (x *PeerChange) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[9] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1326,7 +1326,7 @@ func (x *PeerChange) ProtoReflect() protoreflect.Message { // Deprecated: Use PeerChange.ProtoReflect.Descriptor instead. func (*PeerChange) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{9} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{9} } func (x *PeerChange) GetPubKey() []byte { @@ -1365,7 +1365,7 @@ type BlockData struct { func (x *BlockData) Reset() { *x = BlockData{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[10] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1378,7 +1378,7 @@ func (x *BlockData) String() string { func (*BlockData) ProtoMessage() {} func (x *BlockData) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[10] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1391,7 +1391,7 @@ func (x *BlockData) ProtoReflect() protoreflect.Message { // Deprecated: Use BlockData.ProtoReflect.Descriptor instead. func (*BlockData) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{10} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{10} } func (x *BlockData) GetShardID() uint32 { @@ -1500,7 +1500,7 @@ type MetaBlockData struct { func (x *MetaBlockData) Reset() { *x = MetaBlockData{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[11] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1513,7 +1513,7 @@ func (x *MetaBlockData) String() string { func (*MetaBlockData) ProtoMessage() {} func (x *MetaBlockData) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[11] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1526,7 +1526,7 @@ func (x *MetaBlockData) ProtoReflect() protoreflect.Message { // Deprecated: Use MetaBlockData.ProtoReflect.Descriptor instead. func (*MetaBlockData) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{11} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{11} } func (x *MetaBlockData) GetShardID() uint32 { @@ -1637,7 +1637,7 @@ type ShardData struct { func (x *ShardData) Reset() { *x = ShardData{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[12] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1650,7 +1650,7 @@ func (x *ShardData) String() string { func (*ShardData) ProtoMessage() {} func (x *ShardData) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[12] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1663,7 +1663,7 @@ func (x *ShardData) ProtoReflect() protoreflect.Message { // Deprecated: Use ShardData.ProtoReflect.Descriptor instead. func (*ShardData) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{12} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{12} } func (x *ShardData) GetShardID() uint32 { @@ -1777,7 +1777,7 @@ type EpochStart struct { func (x *EpochStart) Reset() { *x = EpochStart{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[13] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1790,7 +1790,7 @@ func (x *EpochStart) String() string { func (*EpochStart) ProtoMessage() {} func (x *EpochStart) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[13] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1803,7 +1803,7 @@ func (x *EpochStart) ProtoReflect() protoreflect.Message { // Deprecated: Use EpochStart.ProtoReflect.Descriptor instead. func (*EpochStart) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{13} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{13} } func (x *EpochStart) GetLastFinalizedHeaders() []*EpochStartShardData { @@ -1840,7 +1840,7 @@ type EpochStartShardData struct { func (x *EpochStartShardData) Reset() { *x = EpochStartShardData{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[14] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1853,7 +1853,7 @@ func (x *EpochStartShardData) String() string { func (*EpochStartShardData) ProtoMessage() {} func (x *EpochStartShardData) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[14] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1866,7 +1866,7 @@ func (x *EpochStartShardData) ProtoReflect() protoreflect.Message { // Deprecated: Use EpochStartShardData.ProtoReflect.Descriptor instead. func (*EpochStartShardData) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{14} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{14} } func (x *EpochStartShardData) GetShardID() uint32 { @@ -1957,7 +1957,7 @@ type Economics struct { func (x *Economics) Reset() { *x = Economics{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[15] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1970,7 +1970,7 @@ func (x *Economics) String() string { func (*Economics) ProtoMessage() {} func (x *Economics) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[15] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1983,7 +1983,7 @@ func (x *Economics) ProtoReflect() protoreflect.Message { // Deprecated: Use Economics.ProtoReflect.Descriptor instead. func (*Economics) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{15} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{15} } func (x *Economics) GetTotalSupply() []byte { @@ -2060,7 +2060,7 @@ type PeerData struct { func (x *PeerData) Reset() { *x = PeerData{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[16] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2073,7 +2073,7 @@ func (x *PeerData) String() string { func (*PeerData) ProtoMessage() {} func (x *PeerData) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[16] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2086,7 +2086,7 @@ func (x *PeerData) ProtoReflect() protoreflect.Message { // Deprecated: Use PeerData.ProtoReflect.Descriptor instead. func (*PeerData) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{16} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{16} } func (x *PeerData) GetAddress() []byte { @@ -2142,7 +2142,7 @@ type TransactionPool struct { func (x *TransactionPool) Reset() { *x = TransactionPool{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[17] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2155,7 +2155,7 @@ func (x *TransactionPool) String() string { func (*TransactionPool) ProtoMessage() {} func (x *TransactionPool) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[17] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2168,7 +2168,7 @@ func (x *TransactionPool) ProtoReflect() protoreflect.Message { // Deprecated: Use TransactionPool.ProtoReflect.Descriptor instead. func (*TransactionPool) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{17} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{17} } func (x *TransactionPool) GetTransactions() map[string]*TxInfo { @@ -2240,7 +2240,7 @@ type FeeInfo struct { func (x *FeeInfo) Reset() { *x = FeeInfo{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[18] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2253,7 +2253,7 @@ func (x *FeeInfo) String() string { func (*FeeInfo) ProtoMessage() {} func (x *FeeInfo) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[18] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2266,7 +2266,7 @@ func (x *FeeInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use FeeInfo.ProtoReflect.Descriptor instead. func (*FeeInfo) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{18} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{18} } func (x *FeeInfo) GetGasUsed() uint64 { @@ -2303,7 +2303,7 @@ type TxInfo struct { func (x *TxInfo) Reset() { *x = TxInfo{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[19] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2316,7 +2316,7 @@ func (x *TxInfo) String() string { func (*TxInfo) ProtoMessage() {} func (x *TxInfo) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[19] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2329,7 +2329,7 @@ func (x *TxInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use TxInfo.ProtoReflect.Descriptor instead. func (*TxInfo) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{19} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{19} } func (x *TxInfo) GetTransaction() *Transaction { @@ -2358,18 +2358,17 @@ type TxInfoV2 struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Transaction *WrappedTx `protobuf:"bytes,1,opt,name=Transaction,proto3" json:"Transaction,omitempty"` - FeeInfo *FeeInfo `protobuf:"bytes,2,opt,name=FeeInfo,proto3" json:"FeeInfo,omitempty"` - Receipt *Receipt `protobuf:"bytes,3,opt,name=Receipt,proto3" json:"Receipt,omitempty"` - ExecutionOrder uint32 `protobuf:"varint,4,opt,name=ExecutionOrder,proto3" json:"ExecutionOrder,omitempty"` - ResultTxs []*WrappedTx `protobuf:"bytes,5,rep,name=ResultTxs,proto3" json:"ResultTxs,omitempty"` - Logs []*Log `protobuf:"bytes,6,rep,name=Logs,proto3" json:"Logs,omitempty"` + Transaction *WrappedTx `protobuf:"bytes,1,opt,name=Transaction,proto3" json:"Transaction,omitempty"` + FeeInfo *FeeInfo `protobuf:"bytes,2,opt,name=FeeInfo,proto3" json:"FeeInfo,omitempty"` + Receipt *Receipt `protobuf:"bytes,3,opt,name=Receipt,proto3" json:"Receipt,omitempty"` + ResultTxs []*WrappedTx `protobuf:"bytes,4,rep,name=ResultTxs,proto3" json:"ResultTxs,omitempty"` + Logs []*Log `protobuf:"bytes,5,rep,name=Logs,proto3" json:"Logs,omitempty"` } func (x *TxInfoV2) Reset() { *x = TxInfoV2{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[20] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2382,7 +2381,7 @@ func (x *TxInfoV2) String() string { func (*TxInfoV2) ProtoMessage() {} func (x *TxInfoV2) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[20] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2395,7 +2394,7 @@ func (x *TxInfoV2) ProtoReflect() protoreflect.Message { // Deprecated: Use TxInfoV2.ProtoReflect.Descriptor instead. func (*TxInfoV2) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{20} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{20} } func (x *TxInfoV2) GetTransaction() *WrappedTx { @@ -2419,13 +2418,6 @@ func (x *TxInfoV2) GetReceipt() *Receipt { return nil } -func (x *TxInfoV2) GetExecutionOrder() uint32 { - if x != nil { - return x.ExecutionOrder - } - return 0 -} - func (x *TxInfoV2) GetResultTxs() []*WrappedTx { if x != nil { return x.ResultTxs @@ -2478,7 +2470,7 @@ type WrappedTx struct { func (x *WrappedTx) Reset() { *x = WrappedTx{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[21] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2491,7 +2483,7 @@ func (x *WrappedTx) String() string { func (*WrappedTx) ProtoMessage() {} func (x *WrappedTx) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[21] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2504,7 +2496,7 @@ func (x *WrappedTx) ProtoReflect() protoreflect.Message { // Deprecated: Use WrappedTx.ProtoReflect.Descriptor instead. func (*WrappedTx) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{21} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{21} } func (x *WrappedTx) GetNonce() uint64 { @@ -2716,7 +2708,7 @@ type SCRInfo struct { func (x *SCRInfo) Reset() { *x = SCRInfo{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[22] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2729,7 +2721,7 @@ func (x *SCRInfo) String() string { func (*SCRInfo) ProtoMessage() {} func (x *SCRInfo) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[22] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2742,7 +2734,7 @@ func (x *SCRInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use SCRInfo.ProtoReflect.Descriptor instead. func (*SCRInfo) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{22} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{22} } func (x *SCRInfo) GetSmartContractResult() *SmartContractResult { @@ -2778,7 +2770,7 @@ type LogData struct { func (x *LogData) Reset() { *x = LogData{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[23] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2791,7 +2783,7 @@ func (x *LogData) String() string { func (*LogData) ProtoMessage() {} func (x *LogData) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[23] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2804,7 +2796,7 @@ func (x *LogData) ProtoReflect() protoreflect.Message { // Deprecated: Use LogData.ProtoReflect.Descriptor instead. func (*LogData) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{23} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{23} } func (x *LogData) GetTxHash() string { @@ -2833,7 +2825,7 @@ type RewardInfo struct { func (x *RewardInfo) Reset() { *x = RewardInfo{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[24] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2846,7 +2838,7 @@ func (x *RewardInfo) String() string { func (*RewardInfo) ProtoMessage() {} func (x *RewardInfo) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[24] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2859,7 +2851,7 @@ func (x *RewardInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use RewardInfo.ProtoReflect.Descriptor instead. func (*RewardInfo) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{24} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{24} } func (x *RewardInfo) GetReward() *RewardTx { @@ -2890,7 +2882,7 @@ type HeaderGasConsumption struct { func (x *HeaderGasConsumption) Reset() { *x = HeaderGasConsumption{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[25] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2903,7 +2895,7 @@ func (x *HeaderGasConsumption) String() string { func (*HeaderGasConsumption) ProtoMessage() {} func (x *HeaderGasConsumption) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[25] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2916,7 +2908,7 @@ func (x *HeaderGasConsumption) ProtoReflect() protoreflect.Message { // Deprecated: Use HeaderGasConsumption.ProtoReflect.Descriptor instead. func (*HeaderGasConsumption) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{25} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{25} } func (x *HeaderGasConsumption) GetGasProvided() uint64 { @@ -2959,7 +2951,7 @@ type ValidatorRatingInfo struct { func (x *ValidatorRatingInfo) Reset() { *x = ValidatorRatingInfo{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[26] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2972,7 +2964,7 @@ func (x *ValidatorRatingInfo) String() string { func (*ValidatorRatingInfo) ProtoMessage() {} func (x *ValidatorRatingInfo) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[26] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2985,7 +2977,7 @@ func (x *ValidatorRatingInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ValidatorRatingInfo.ProtoReflect.Descriptor instead. func (*ValidatorRatingInfo) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{26} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{26} } func (x *ValidatorRatingInfo) GetPublicKey() string { @@ -3015,7 +3007,7 @@ type ValidatorsRating struct { func (x *ValidatorsRating) Reset() { *x = ValidatorsRating{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[27] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3028,7 +3020,7 @@ func (x *ValidatorsRating) String() string { func (*ValidatorsRating) ProtoMessage() {} func (x *ValidatorsRating) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[27] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3041,7 +3033,7 @@ func (x *ValidatorsRating) ProtoReflect() protoreflect.Message { // Deprecated: Use ValidatorsRating.ProtoReflect.Descriptor instead. func (*ValidatorsRating) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{27} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{27} } func (x *ValidatorsRating) GetShardID() uint32 { @@ -3081,7 +3073,7 @@ type RoundInfo struct { func (x *RoundInfo) Reset() { *x = RoundInfo{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[28] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3094,7 +3086,7 @@ func (x *RoundInfo) String() string { func (*RoundInfo) ProtoMessage() {} func (x *RoundInfo) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[28] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3107,7 +3099,7 @@ func (x *RoundInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use RoundInfo.ProtoReflect.Descriptor instead. func (*RoundInfo) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{28} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{28} } func (x *RoundInfo) GetRound() uint64 { @@ -3164,7 +3156,7 @@ type RoundsInfo struct { func (x *RoundsInfo) Reset() { *x = RoundsInfo{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[29] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3177,7 +3169,7 @@ func (x *RoundsInfo) String() string { func (*RoundsInfo) ProtoMessage() {} func (x *RoundsInfo) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[29] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3190,7 +3182,7 @@ func (x *RoundsInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use RoundsInfo.ProtoReflect.Descriptor instead. func (*RoundsInfo) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{29} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{29} } func (x *RoundsInfo) GetShardID() uint32 { @@ -3218,7 +3210,7 @@ type PubKeys struct { func (x *PubKeys) Reset() { *x = PubKeys{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[30] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3231,7 +3223,7 @@ func (x *PubKeys) String() string { func (*PubKeys) ProtoMessage() {} func (x *PubKeys) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[30] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3244,7 +3236,7 @@ func (x *PubKeys) ProtoReflect() protoreflect.Message { // Deprecated: Use PubKeys.ProtoReflect.Descriptor instead. func (*PubKeys) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{30} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{30} } func (x *PubKeys) GetKeys() [][]byte { @@ -3267,7 +3259,7 @@ type ValidatorsPubKeys struct { func (x *ValidatorsPubKeys) Reset() { *x = ValidatorsPubKeys{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[31] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3280,7 +3272,7 @@ func (x *ValidatorsPubKeys) String() string { func (*ValidatorsPubKeys) ProtoMessage() {} func (x *ValidatorsPubKeys) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[31] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3293,7 +3285,7 @@ func (x *ValidatorsPubKeys) ProtoReflect() protoreflect.Message { // Deprecated: Use ValidatorsPubKeys.ProtoReflect.Descriptor instead. func (*ValidatorsPubKeys) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{31} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{31} } func (x *ValidatorsPubKeys) GetShardID() uint32 { @@ -3330,7 +3322,7 @@ type Accounts struct { func (x *Accounts) Reset() { *x = Accounts{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[32] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3343,7 +3335,7 @@ func (x *Accounts) String() string { func (*Accounts) ProtoMessage() {} func (x *Accounts) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[32] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3356,7 +3348,7 @@ func (x *Accounts) ProtoReflect() protoreflect.Message { // Deprecated: Use Accounts.ProtoReflect.Descriptor instead. func (*Accounts) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{32} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{32} } func (x *Accounts) GetShardID() uint32 { @@ -3392,7 +3384,7 @@ type FinalizedBlock struct { func (x *FinalizedBlock) Reset() { *x = FinalizedBlock{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[33] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3405,7 +3397,7 @@ func (x *FinalizedBlock) String() string { func (*FinalizedBlock) ProtoMessage() {} func (x *FinalizedBlock) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[33] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3418,7 +3410,7 @@ func (x *FinalizedBlock) ProtoReflect() protoreflect.Message { // Deprecated: Use FinalizedBlock.ProtoReflect.Descriptor instead. func (*FinalizedBlock) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{33} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{33} } func (x *FinalizedBlock) GetShardID() uint32 { @@ -3446,7 +3438,7 @@ type Shard struct { func (x *Shard) Reset() { *x = Shard{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[34] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3459,7 +3451,7 @@ func (x *Shard) String() string { func (*Shard) ProtoMessage() {} func (x *Shard) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[34] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3472,7 +3464,7 @@ func (x *Shard) ProtoReflect() protoreflect.Message { // Deprecated: Use Shard.ProtoReflect.Descriptor instead. func (*Shard) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{34} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{34} } func (x *Shard) GetShardID() uint32 { @@ -3493,7 +3485,7 @@ type Body struct { func (x *Body) Reset() { *x = Body{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[35] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3506,7 +3498,7 @@ func (x *Body) String() string { func (*Body) ProtoMessage() {} func (x *Body) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[35] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3519,7 +3511,7 @@ func (x *Body) ProtoReflect() protoreflect.Message { // Deprecated: Use Body.ProtoReflect.Descriptor instead. func (*Body) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{35} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{35} } func (x *Body) GetMiniBlocks() []*MiniBlock { @@ -3544,7 +3536,7 @@ type MiniBlock struct { func (x *MiniBlock) Reset() { *x = MiniBlock{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[36] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3557,7 +3549,7 @@ func (x *MiniBlock) String() string { func (*MiniBlock) ProtoMessage() {} func (x *MiniBlock) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[36] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3570,7 +3562,7 @@ func (x *MiniBlock) ProtoReflect() protoreflect.Message { // Deprecated: Use MiniBlock.ProtoReflect.Descriptor instead. func (*MiniBlock) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{36} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{36} } func (x *MiniBlock) GetTxHashes() [][]byte { @@ -3634,7 +3626,7 @@ type Transaction struct { func (x *Transaction) Reset() { *x = Transaction{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[37] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3647,7 +3639,7 @@ func (x *Transaction) String() string { func (*Transaction) ProtoMessage() {} func (x *Transaction) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[37] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3660,7 +3652,7 @@ func (x *Transaction) ProtoReflect() protoreflect.Message { // Deprecated: Use Transaction.ProtoReflect.Descriptor instead. func (*Transaction) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{37} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{37} } func (x *Transaction) GetNonce() uint64 { @@ -3794,7 +3786,7 @@ type SmartContractResult struct { func (x *SmartContractResult) Reset() { *x = SmartContractResult{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[38] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3807,7 +3799,7 @@ func (x *SmartContractResult) String() string { func (*SmartContractResult) ProtoMessage() {} func (x *SmartContractResult) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[38] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3820,7 +3812,7 @@ func (x *SmartContractResult) ProtoReflect() protoreflect.Message { // Deprecated: Use SmartContractResult.ProtoReflect.Descriptor instead. func (*SmartContractResult) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{38} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{38} } func (x *SmartContractResult) GetNonce() uint64 { @@ -3947,7 +3939,7 @@ type Log struct { func (x *Log) Reset() { *x = Log{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[39] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3960,7 +3952,7 @@ func (x *Log) String() string { func (*Log) ProtoMessage() {} func (x *Log) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[39] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3973,7 +3965,7 @@ func (x *Log) ProtoReflect() protoreflect.Message { // Deprecated: Use Log.ProtoReflect.Descriptor instead. func (*Log) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{39} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{39} } func (x *Log) GetAddress() []byte { @@ -4005,7 +3997,7 @@ type Event struct { func (x *Event) Reset() { *x = Event{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[40] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4018,7 +4010,7 @@ func (x *Event) String() string { func (*Event) ProtoMessage() {} func (x *Event) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[40] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4031,7 +4023,7 @@ func (x *Event) ProtoReflect() protoreflect.Message { // Deprecated: Use Event.ProtoReflect.Descriptor instead. func (*Event) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{40} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{40} } func (x *Event) GetAddress() []byte { @@ -4083,7 +4075,7 @@ type RewardTx struct { func (x *RewardTx) Reset() { *x = RewardTx{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[41] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4096,7 +4088,7 @@ func (x *RewardTx) String() string { func (*RewardTx) ProtoMessage() {} func (x *RewardTx) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[41] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4109,7 +4101,7 @@ func (x *RewardTx) ProtoReflect() protoreflect.Message { // Deprecated: Use RewardTx.ProtoReflect.Descriptor instead. func (*RewardTx) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{41} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{41} } func (x *RewardTx) GetRound() uint64 { @@ -4155,7 +4147,7 @@ type AlteredAccount struct { func (x *AlteredAccount) Reset() { *x = AlteredAccount{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[42] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4168,7 +4160,7 @@ func (x *AlteredAccount) String() string { func (*AlteredAccount) ProtoMessage() {} func (x *AlteredAccount) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[42] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4181,7 +4173,7 @@ func (x *AlteredAccount) ProtoReflect() protoreflect.Message { // Deprecated: Use AlteredAccount.ProtoReflect.Descriptor instead. func (*AlteredAccount) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{42} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{42} } func (x *AlteredAccount) GetAddress() string { @@ -4235,7 +4227,7 @@ type AccountTokenData struct { func (x *AccountTokenData) Reset() { *x = AccountTokenData{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[43] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4248,7 +4240,7 @@ func (x *AccountTokenData) String() string { func (*AccountTokenData) ProtoMessage() {} func (x *AccountTokenData) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[43] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4261,7 +4253,7 @@ func (x *AccountTokenData) ProtoReflect() protoreflect.Message { // Deprecated: Use AccountTokenData.ProtoReflect.Descriptor instead. func (*AccountTokenData) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{43} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{43} } func (x *AccountTokenData) GetNonce() uint64 { @@ -4323,7 +4315,7 @@ type TokenMetaData struct { func (x *TokenMetaData) Reset() { *x = TokenMetaData{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[44] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4336,7 +4328,7 @@ func (x *TokenMetaData) String() string { func (*TokenMetaData) ProtoMessage() {} func (x *TokenMetaData) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[44] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4349,7 +4341,7 @@ func (x *TokenMetaData) ProtoReflect() protoreflect.Message { // Deprecated: Use TokenMetaData.ProtoReflect.Descriptor instead. func (*TokenMetaData) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{44} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{44} } func (x *TokenMetaData) GetNonce() uint64 { @@ -4412,7 +4404,7 @@ type AdditionalAccountTokenData struct { func (x *AdditionalAccountTokenData) Reset() { *x = AdditionalAccountTokenData{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[45] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4425,7 +4417,7 @@ func (x *AdditionalAccountTokenData) String() string { func (*AdditionalAccountTokenData) ProtoMessage() {} func (x *AdditionalAccountTokenData) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[45] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4438,7 +4430,7 @@ func (x *AdditionalAccountTokenData) ProtoReflect() protoreflect.Message { // Deprecated: Use AdditionalAccountTokenData.ProtoReflect.Descriptor instead. func (*AdditionalAccountTokenData) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{45} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{45} } func (x *AdditionalAccountTokenData) GetIsNFTCreate() bool { @@ -4466,7 +4458,7 @@ type AdditionalAccountData struct { func (x *AdditionalAccountData) Reset() { *x = AdditionalAccountData{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[46] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4479,7 +4471,7 @@ func (x *AdditionalAccountData) String() string { func (*AdditionalAccountData) ProtoMessage() {} func (x *AdditionalAccountData) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[46] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4492,7 +4484,7 @@ func (x *AdditionalAccountData) ProtoReflect() protoreflect.Message { // Deprecated: Use AdditionalAccountData.ProtoReflect.Descriptor instead. func (*AdditionalAccountData) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{46} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{46} } func (x *AdditionalAccountData) GetIsSender() bool { @@ -4565,7 +4557,7 @@ type Receipt struct { func (x *Receipt) Reset() { *x = Receipt{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[47] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4578,7 +4570,7 @@ func (x *Receipt) String() string { func (*Receipt) ProtoMessage() {} func (x *Receipt) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[47] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4591,7 +4583,7 @@ func (x *Receipt) ProtoReflect() protoreflect.Message { // Deprecated: Use Receipt.ProtoReflect.Descriptor instead. func (*Receipt) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{47} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{47} } func (x *Receipt) GetValue() []byte { @@ -4633,7 +4625,7 @@ type BigInt struct { func (x *BigInt) Reset() { *x = BigInt{} if protoimpl.UnsafeEnabled { - mi := &file_hyperOutportBlock_proto_msgTypes[48] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4646,7 +4638,7 @@ func (x *BigInt) String() string { func (*BigInt) ProtoMessage() {} func (x *BigInt) ProtoReflect() protoreflect.Message { - mi := &file_hyperOutportBlock_proto_msgTypes[48] + mi := &file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4659,7 +4651,7 @@ func (x *BigInt) ProtoReflect() protoreflect.Message { // Deprecated: Use BigInt.ProtoReflect.Descriptor instead. func (*BigInt) Descriptor() ([]byte, []int) { - return file_hyperOutportBlock_proto_rawDescGZIP(), []int{48} + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP(), []int{48} } func (x *BigInt) GetBytes() []byte { @@ -4669,580 +4661,579 @@ func (x *BigInt) GetBytes() []byte { return nil } -var File_hyperOutportBlock_proto protoreflect.FileDescriptor - -var file_hyperOutportBlock_proto_rawDesc = []byte{ - 0x0a, 0x17, 0x68, 0x79, 0x70, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x22, 0xbd, 0x01, 0x0a, 0x11, 0x48, 0x79, 0x70, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, - 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x43, 0x0a, 0x10, 0x4d, 0x65, 0x74, 0x61, 0x4f, 0x75, - 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x4f, 0x75, 0x74, - 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x10, 0x4d, 0x65, 0x74, 0x61, 0x4f, - 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x63, 0x0a, 0x1b, 0x4e, - 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x4f, - 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, - 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x1b, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x73, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, - 0x22, 0x8c, 0x01, 0x0a, 0x1a, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x30, 0x0a, 0x13, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x4e, 0x6f, - 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, - 0x68, 0x12, 0x3c, 0x0a, 0x0c, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x53, 0x68, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x52, 0x0c, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, - 0x9c, 0x05, 0x0a, 0x10, 0x4d, 0x65, 0x74, 0x61, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x32, - 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x40, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, - 0x6f, 0x6f, 0x6c, 0x52, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x4f, 0x0a, 0x14, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, - 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x14, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x56, 0x0a, 0x0f, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x4f, 0x75, 0x74, 0x70, 0x6f, - 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x41, 0x6c, - 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x36, 0x0a, - 0x16, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x16, 0x4e, - 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x48, - 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, - 0x66, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x12, 0x26, 0x0a, - 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x18, - 0x08, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, - 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, - 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x34, 0x0a, - 0x15, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x15, 0x48, 0x69, - 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, - 0x61, 0x73, 0x68, 0x1a, 0x59, 0x0a, 0x14, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2b, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x9a, - 0x05, 0x0a, 0x11, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x2e, - 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x40, - 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, - 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x52, - 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, - 0x12, 0x4f, 0x0a, 0x14, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, - 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, - 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x48, 0x65, 0x61, +var File_data_hyperOutportBlocks_hyperOutportBlock_proto protoreflect.FileDescriptor + +var file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDesc = []byte{ + 0x0a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x68, 0x79, 0x70, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, + 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x2f, 0x68, 0x79, 0x70, 0x65, 0x72, 0x4f, + 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x12, 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xbd, 0x01, 0x0a, 0x11, 0x48, 0x79, 0x70, + 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x43, + 0x0a, 0x10, 0x4d, 0x65, 0x74, 0x61, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x52, 0x10, 0x4d, 0x65, 0x74, 0x61, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x12, 0x63, 0x0a, 0x1b, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x61, + 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x1b, 0x4e, 0x6f, 0x74, + 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x4f, 0x75, 0x74, + 0x70, 0x6f, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x22, 0x8c, 0x01, 0x0a, 0x1a, 0x4e, 0x6f, 0x74, + 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, + 0x6f, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x30, 0x0a, 0x13, 0x4e, 0x6f, 0x74, 0x61, 0x72, + 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3c, 0x0a, 0x0c, 0x4f, 0x75, 0x74, + 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, + 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x0c, 0x4f, 0x75, 0x74, 0x70, 0x6f, + 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x9c, 0x05, 0x0a, 0x10, 0x4d, 0x65, 0x74, 0x61, + 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x18, 0x0a, 0x07, + 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, + 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x32, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, + 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x52, + 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x40, 0x0a, 0x0f, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x0f, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x4f, 0x0a, 0x14, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, + 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, + 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x56, 0x0a, + 0x0f, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, + 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, + 0x65, 0x74, 0x61, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, + 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, + 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, + 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x16, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x26, 0x0a, + 0x0e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x53, + 0x68, 0x61, 0x72, 0x64, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0e, 0x53, + 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x12, 0x36, 0x0a, + 0x16, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x48, + 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, + 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x15, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, + 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x1a, 0x59, 0x0a, 0x14, 0x41, + 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x6c, 0x74, + 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x9a, 0x05, 0x0a, 0x11, 0x53, 0x68, 0x61, 0x72, 0x64, + 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x18, 0x0a, 0x07, + 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, + 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x2e, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, + 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x40, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x4f, 0x0a, 0x14, 0x48, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, + 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x57, 0x0a, 0x0f, 0x41, 0x6c, 0x74, + 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, + 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x41, 0x6c, 0x74, + 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x0f, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x16, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x53, 0x68, 0x61, 0x72, + 0x64, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0e, 0x53, 0x69, 0x67, 0x6e, + 0x65, 0x72, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x48, 0x69, + 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, + 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x48, 0x69, 0x67, 0x68, + 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x6f, 0x6e, + 0x63, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, + 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x15, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x1a, 0x59, 0x0a, 0x14, 0x41, 0x6c, 0x74, 0x65, + 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, + 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x22, 0xa0, 0x05, 0x0a, 0x13, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, + 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x32, 0x12, 0x18, 0x0a, 0x07, 0x53, + 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, + 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x2e, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, + 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x42, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x56, 0x32, 0x52, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x4f, 0x0a, 0x14, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x57, 0x0a, 0x0f, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x41, 0x6c, 0x74, 0x65, 0x72, - 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x4e, 0x6f, - 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x48, 0x61, - 0x73, 0x68, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x16, 0x4e, 0x6f, 0x74, 0x61, - 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x48, 0x61, 0x73, 0x68, - 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x53, 0x68, - 0x61, 0x72, 0x64, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x4f, 0x66, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x69, - 0x67, 0x6e, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, - 0x28, 0x04, 0x52, 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, - 0x65, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, - 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x16, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x48, 0x69, - 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, - 0x61, 0x73, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x15, 0x48, 0x69, 0x67, 0x68, 0x65, - 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, - 0x1a, 0x59, 0x0a, 0x14, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xa0, 0x05, 0x0a, 0x13, - 0x53, 0x68, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x56, 0x32, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x2e, 0x0a, - 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x42, 0x0a, - 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x56, 0x32, - 0x52, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, - 0x6c, 0x12, 0x4f, 0x0a, 0x14, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, - 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, - 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x48, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x59, 0x0a, 0x0f, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x32, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x41, 0x6c, - 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x36, 0x0a, - 0x16, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x16, 0x4e, - 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x48, - 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, - 0x66, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x12, 0x26, 0x0a, - 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x18, - 0x08, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, - 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, - 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x34, 0x0a, - 0x15, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x15, 0x48, 0x69, - 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, - 0x61, 0x73, 0x68, 0x1a, 0x59, 0x0a, 0x14, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2b, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xe9, - 0x02, 0x0a, 0x11, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, - 0x6f, 0x6c, 0x56, 0x32, 0x12, 0x4e, 0x0a, 0x0c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, - 0x6f, 0x6c, 0x56, 0x32, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x52, 0x0a, 0x24, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, - 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x53, 0x43, 0x52, 0x53, 0x48, 0x61, 0x73, - 0x68, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x24, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x65, 0x64, 0x53, 0x43, 0x52, 0x53, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x50, - 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x5e, 0x0a, 0x2a, 0x53, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x76, - 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x50, 0x72, 0x65, - 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x2a, 0x53, 0x63, - 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x49, - 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x50, - 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0x50, 0x0a, 0x11, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x25, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x32, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xdc, 0x06, 0x0a, 0x06, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, - 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x50, - 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x50, 0x72, 0x65, 0x76, 0x52, - 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x50, - 0x72, 0x65, 0x76, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, - 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, - 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x75, 0x62, 0x4b, 0x65, - 0x79, 0x73, 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, - 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x12, 0x18, 0x0a, - 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, - 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, - 0x74, 0x61, 0x6d, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x54, 0x69, 0x6d, 0x65, - 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x45, - 0x70, 0x6f, 0x63, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, 0x70, 0x6f, 0x63, - 0x68, 0x12, 0x31, 0x0a, 0x0d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x54, 0x79, - 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, - 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, - 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x4c, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x42, 0x0a, 0x10, - 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, - 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, - 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x10, - 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, - 0x12, 0x33, 0x0a, 0x0b, 0x50, 0x65, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, - 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x65, - 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0b, 0x50, 0x65, 0x65, 0x72, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, - 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, - 0x68, 0x12, 0x28, 0x0a, 0x0f, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, - 0x73, 0x68, 0x65, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0f, 0x4d, 0x65, 0x74, 0x61, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x54, - 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x54, 0x78, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, - 0x61, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x61, 0x73, 0x68, 0x18, 0x12, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x12, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4d, 0x65, 0x74, - 0x61, 0x48, 0x61, 0x73, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, - 0x73, 0x48, 0x61, 0x73, 0x68, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x52, 0x65, 0x63, - 0x65, 0x69, 0x70, 0x74, 0x73, 0x48, 0x61, 0x73, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x61, - 0x69, 0x6e, 0x49, 0x44, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x43, 0x68, 0x61, 0x69, - 0x6e, 0x49, 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x53, 0x6f, - 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, - 0x0f, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, - 0x18, 0x16, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, - 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x76, 0x65, 0x6c, - 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, - 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x12, 0x1a, 0x0a, - 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x22, 0xac, 0x07, 0x0a, 0x0a, 0x4d, 0x65, - 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, - 0x70, 0x6f, 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x69, - 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x54, - 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x2e, 0x0a, 0x09, 0x53, 0x68, 0x61, 0x72, - 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x53, - 0x68, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2b, 0x0a, 0x08, 0x50, 0x65, 0x65, 0x72, - 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x50, 0x65, 0x65, - 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, - 0x75, 0x72, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x53, 0x69, 0x67, - 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x4c, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x24, 0x0a, - 0x0d, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x42, 0x69, 0x74, - 0x6d, 0x61, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x50, 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x12, + 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, + 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x59, 0x0a, 0x0f, 0x41, 0x6c, + 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x68, 0x61, 0x72, + 0x64, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x32, 0x2e, + 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, + 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, + 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x16, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x26, 0x0a, + 0x0e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x53, + 0x68, 0x61, 0x72, 0x64, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0e, 0x53, + 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x12, 0x36, 0x0a, + 0x16, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x48, + 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, + 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x15, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, + 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x1a, 0x59, 0x0a, 0x14, 0x41, + 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x6c, 0x74, + 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xe9, 0x02, 0x0a, 0x11, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x56, 0x32, 0x12, 0x4e, 0x0a, 0x0c, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x56, 0x32, 0x2e, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x52, 0x0a, 0x24, + 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, + 0x64, 0x53, 0x43, 0x52, 0x53, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x24, 0x53, 0x63, 0x68, 0x65, + 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x53, 0x43, 0x52, + 0x53, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x12, 0x5e, 0x0a, 0x2a, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x48, + 0x61, 0x73, 0x68, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x2a, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, + 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x1a, 0x50, 0x0a, 0x11, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x25, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, + 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x32, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x22, 0xdc, 0x06, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x14, 0x0a, + 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, + 0x6e, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x50, 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x50, 0x72, 0x65, 0x76, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x50, 0x72, 0x65, 0x76, 0x52, 0x61, 0x6e, 0x64, 0x53, + 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x50, 0x72, 0x65, 0x76, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x12, - 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x08, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x36, 0x0a, 0x16, 0x56, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x6f, 0x6f, - 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x16, 0x56, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x6f, 0x6f, 0x74, 0x48, - 0x61, 0x73, 0x68, 0x12, 0x42, 0x0a, 0x10, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x10, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x65, 0x63, 0x65, 0x69, - 0x70, 0x74, 0x73, 0x48, 0x61, 0x73, 0x68, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x52, - 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x48, 0x61, 0x73, 0x68, 0x12, 0x31, 0x0a, 0x0a, 0x45, - 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x52, 0x0a, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x18, - 0x0a, 0x07, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x07, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x53, 0x6f, 0x66, 0x74, - 0x77, 0x61, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x0f, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, - 0x64, 0x46, 0x65, 0x65, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x41, 0x63, 0x63, - 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x16, - 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x49, - 0x6e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x16, 0x41, 0x63, - 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x49, 0x6e, 0x45, - 0x70, 0x6f, 0x63, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, - 0x72, 0x46, 0x65, 0x65, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x44, 0x65, 0x76, - 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x44, 0x65, - 0x76, 0x46, 0x65, 0x65, 0x73, 0x49, 0x6e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x18, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x0e, 0x44, 0x65, 0x76, 0x46, 0x65, 0x65, 0x73, 0x49, 0x6e, 0x45, 0x70, 0x6f, - 0x63, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x19, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x07, 0x54, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, - 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, - 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x22, 0xcc, 0x01, 0x0a, 0x0f, 0x4d, 0x69, 0x6e, - 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, - 0x48, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x48, 0x61, 0x73, 0x68, - 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, - 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x53, - 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0f, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, - 0x12, 0x18, 0x0a, 0x07, 0x54, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x07, 0x54, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x04, 0x54, 0x79, - 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x52, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x22, 0x46, 0x0a, 0x0a, 0x50, 0x65, 0x65, 0x72, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x20, 0x0a, - 0x0b, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x64, 0x44, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0b, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x64, 0x44, 0x65, 0x73, 0x74, 0x22, - 0xb3, 0x04, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, - 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, - 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x25, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1e, - 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, - 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1f, - 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, - 0x44, 0x0a, 0x14, 0x49, 0x6e, 0x74, 0x72, 0x61, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4d, 0x69, 0x6e, - 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, - 0x14, 0x49, 0x6e, 0x74, 0x72, 0x61, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4d, 0x69, 0x6e, 0x69, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, - 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x11, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x48, - 0x61, 0x73, 0x68, 0x12, 0x3a, 0x0a, 0x18, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, - 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x18, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, + 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x12, + 0x24, 0x0a, 0x0d, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x42, + 0x69, 0x74, 0x6d, 0x61, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, + 0x1c, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x14, 0x0a, + 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x6f, + 0x75, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x31, 0x0a, 0x0d, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0d, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, + 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x4c, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x12, 0x42, 0x0a, 0x10, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x10, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x33, 0x0a, 0x0b, 0x50, 0x65, 0x65, 0x72, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x52, 0x0b, 0x50, 0x65, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x1a, 0x0a, + 0x08, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x08, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x28, 0x0a, 0x0f, 0x4d, 0x65, 0x74, + 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x10, 0x20, 0x03, + 0x28, 0x0c, 0x52, 0x0f, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, + 0x68, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x11, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x54, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2e, 0x0a, + 0x12, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x48, + 0x61, 0x73, 0x68, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, 0x45, 0x70, 0x6f, 0x63, 0x68, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x61, 0x73, 0x68, 0x12, 0x22, 0x0a, + 0x0c, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x48, 0x61, 0x73, 0x68, 0x18, 0x13, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x48, 0x61, 0x73, + 0x68, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x18, 0x14, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x07, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x53, + 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x15, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, + 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x12, - 0x36, 0x0a, 0x16, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x44, 0x65, 0x76, 0x65, - 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x16, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, - 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, - 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, - 0x47, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x15, 0x53, - 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x50, 0x65, 0x6e, 0x61, 0x6c, - 0x69, 0x7a, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, 0x53, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, - 0x64, 0x12, 0x32, 0x0a, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, - 0x73, 0x52, 0x65, 0x66, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x52, 0x65, 0x66, - 0x75, 0x6e, 0x64, 0x65, 0x64, 0x22, 0xbb, 0x04, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, - 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, - 0x44, 0x12, 0x29, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1f, 0x0a, 0x04, - 0x42, 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x44, 0x0a, - 0x14, 0x49, 0x6e, 0x74, 0x72, 0x61, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4d, 0x69, 0x6e, 0x69, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x14, 0x49, - 0x6e, 0x74, 0x72, 0x61, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, - 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, - 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, - 0x68, 0x12, 0x3a, 0x0a, 0x18, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x41, 0x63, - 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x18, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x41, 0x63, - 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x12, 0x36, 0x0a, - 0x16, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, - 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x16, 0x53, - 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, - 0x72, 0x46, 0x65, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, - 0x65, 0x64, 0x47, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, - 0x73, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x15, 0x53, 0x63, 0x68, - 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x69, 0x7a, - 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, - 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x12, - 0x32, 0x0a, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x52, - 0x65, 0x66, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x53, - 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x52, 0x65, 0x66, 0x75, 0x6e, - 0x64, 0x65, 0x64, 0x22, 0x97, 0x04, 0x0a, 0x09, 0x53, 0x68, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x4c, 0x0a, 0x15, 0x53, - 0x68, 0x61, 0x72, 0x64, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x52, 0x15, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x50, 0x72, 0x65, - 0x76, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x0c, 0x50, 0x72, 0x65, 0x76, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x12, 0x24, 0x0a, - 0x0d, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x42, 0x69, 0x74, - 0x6d, 0x61, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x07, 0x54, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x52, - 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, - 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x08, 0x50, 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x12, 0x14, 0x0a, - 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, - 0x6e, 0x63, 0x65, 0x12, 0x32, 0x0a, 0x14, 0x4e, 0x75, 0x6d, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x14, 0x4e, 0x75, 0x6d, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x69, 0x6e, - 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x75, 0x6d, - 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x0f, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, - 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, - 0x65, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, - 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x12, 0x34, 0x0a, 0x15, 0x4c, 0x61, 0x73, 0x74, 0x49, - 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x4e, 0x6f, 0x6e, 0x63, 0x65, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, 0x4c, 0x61, 0x73, 0x74, 0x49, 0x6e, 0x63, 0x6c, - 0x75, 0x64, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x22, 0x8c, 0x01, - 0x0a, 0x0a, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x4e, 0x0a, 0x14, + 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, + 0x18, 0x17, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, + 0x72, 0x46, 0x65, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x22, 0xac, 0x07, 0x0a, 0x0a, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, + 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x6f, 0x75, + 0x6e, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, + 0x12, 0x2e, 0x0a, 0x09, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x68, 0x61, 0x72, + 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x2b, 0x0a, 0x08, 0x50, 0x65, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x08, 0x50, 0x65, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, + 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x4c, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, + 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x50, 0x75, + 0x62, 0x4b, 0x65, 0x79, 0x73, 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x50, + 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x50, + 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x50, 0x72, 0x65, 0x76, 0x52, + 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x50, + 0x72, 0x65, 0x76, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, + 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, + 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x74, 0x48, + 0x61, 0x73, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x6f, 0x6f, 0x74, 0x48, + 0x61, 0x73, 0x68, 0x12, 0x36, 0x0a, 0x16, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x16, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x74, + 0x61, 0x74, 0x73, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x42, 0x0a, 0x10, 0x4d, + 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, + 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x69, + 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x10, 0x4d, + 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, + 0x22, 0x0a, 0x0c, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x48, 0x61, 0x73, 0x68, 0x18, + 0x11, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x48, + 0x61, 0x73, 0x68, 0x12, 0x31, 0x0a, 0x0a, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x0a, 0x45, 0x70, 0x6f, 0x63, + 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, + 0x44, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, + 0x12, 0x28, 0x0a, 0x0f, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x53, 0x6f, 0x66, 0x74, 0x77, + 0x61, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x41, 0x63, + 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x18, 0x15, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, + 0x46, 0x65, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, + 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x49, 0x6e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x16, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x16, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, + 0x64, 0x46, 0x65, 0x65, 0x73, 0x49, 0x6e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x24, 0x0a, 0x0d, + 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x18, 0x17, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, + 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x44, 0x65, 0x76, 0x46, 0x65, 0x65, 0x73, 0x49, 0x6e, 0x45, + 0x70, 0x6f, 0x63, 0x68, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x44, 0x65, 0x76, 0x46, + 0x65, 0x65, 0x73, 0x49, 0x6e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x78, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x54, 0x78, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, + 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, + 0x22, 0xcc, 0x01, 0x0a, 0x0f, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x04, 0x48, 0x61, 0x73, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x28, + 0x0a, 0x0f, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, + 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x78, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x54, 0x78, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x22, + 0x46, 0x0a, 0x0a, 0x50, 0x65, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x50, + 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x64, + 0x44, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x53, 0x68, 0x61, 0x72, + 0x64, 0x49, 0x64, 0x44, 0x65, 0x73, 0x74, 0x22, 0xb3, 0x04, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, + 0x25, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x48, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x48, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x48, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1f, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x42, 0x6f, 0x64, + 0x79, 0x52, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x44, 0x0a, 0x14, 0x49, 0x6e, 0x74, 0x72, 0x61, + 0x53, 0x68, 0x61, 0x72, 0x64, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, + 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x69, + 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x14, 0x49, 0x6e, 0x74, 0x72, 0x61, 0x53, 0x68, + 0x61, 0x72, 0x64, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x2c, 0x0a, + 0x11, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, + 0x73, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, + 0x6c, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3a, 0x0a, 0x18, 0x53, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, + 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x18, 0x53, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, + 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x53, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x64, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, + 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x16, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x64, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x12, + 0x32, 0x0a, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x50, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x53, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x76, 0x69, + 0x64, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x15, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, + 0x47, 0x61, 0x73, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x15, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, + 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x53, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x52, 0x65, 0x66, 0x75, 0x6e, 0x64, 0x65, + 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x64, 0x47, 0x61, 0x73, 0x52, 0x65, 0x66, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x22, 0xbb, 0x04, + 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x29, 0x0a, 0x06, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x48, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, + 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x48, 0x61, 0x73, 0x68, 0x12, 0x1f, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, + 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x44, 0x0a, 0x14, 0x49, 0x6e, 0x74, 0x72, 0x61, 0x53, 0x68, + 0x61, 0x72, 0x64, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x06, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x69, 0x6e, 0x69, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x14, 0x49, 0x6e, 0x74, 0x72, 0x61, 0x53, 0x68, 0x61, 0x72, + 0x64, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x53, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3a, 0x0a, 0x18, 0x53, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, + 0x64, 0x46, 0x65, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x18, 0x53, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, + 0x64, 0x46, 0x65, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x64, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x16, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, + 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x12, 0x32, 0x0a, + 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x50, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x53, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x64, 0x12, 0x34, 0x0a, 0x15, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, + 0x73, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x15, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x50, 0x65, + 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x52, 0x65, 0x66, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, + 0x47, 0x61, 0x73, 0x52, 0x65, 0x66, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x22, 0x97, 0x04, 0x0a, 0x09, + 0x53, 0x68, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, + 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, + 0x64, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, + 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, + 0x61, 0x73, 0x68, 0x12, 0x4c, 0x0a, 0x15, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4d, 0x69, 0x6e, 0x69, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x69, 0x6e, 0x69, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x15, 0x53, 0x68, 0x61, 0x72, + 0x64, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x50, 0x72, 0x65, 0x76, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x50, 0x72, 0x65, 0x76, 0x52, 0x61, 0x6e, + 0x64, 0x53, 0x65, 0x65, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, + 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x50, 0x75, + 0x62, 0x4b, 0x65, 0x79, 0x73, 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x53, + 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, + 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x78, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x54, 0x78, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x65, + 0x76, 0x48, 0x61, 0x73, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x50, 0x72, 0x65, + 0x76, 0x48, 0x61, 0x73, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x32, 0x0a, 0x14, 0x4e, + 0x75, 0x6d, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x4e, 0x75, 0x6d, 0x50, 0x65, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, + 0x28, 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, + 0x65, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, + 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x76, + 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x0d, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x12, + 0x34, 0x0a, 0x15, 0x4c, 0x61, 0x73, 0x74, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x4d, + 0x65, 0x74, 0x61, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, + 0x4c, 0x61, 0x73, 0x74, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x61, + 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x0a, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x12, 0x4e, 0x0a, 0x14, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, + 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x14, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x68, 0x61, - 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x14, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, - 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x2e, 0x0a, 0x09, - 0x45, 0x63, 0x6f, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x63, 0x6f, 0x6e, 0x6f, 0x6d, 0x69, 0x63, - 0x73, 0x52, 0x09, 0x45, 0x63, 0x6f, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x73, 0x22, 0x99, 0x03, 0x0a, - 0x13, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x1e, - 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1a, - 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x08, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x34, 0x0a, 0x15, 0x46, 0x69, - 0x72, 0x73, 0x74, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x15, 0x46, 0x69, 0x72, 0x73, 0x74, - 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x12, 0x34, 0x0a, 0x15, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, - 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x15, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x4d, 0x65, 0x74, - 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x50, 0x0a, 0x17, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, - 0x17, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, - 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x14, - 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, - 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x2c, 0x0a, 0x11, 0x53, 0x63, - 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, - 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x22, 0xfd, 0x02, 0x0a, 0x09, 0x45, 0x63, 0x6f, - 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, - 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x54, 0x6f, 0x74, - 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x2c, 0x0a, 0x11, 0x54, 0x6f, 0x74, 0x61, - 0x6c, 0x54, 0x6f, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x6f, 0x44, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4e, - 0x65, 0x77, 0x6c, 0x79, 0x4d, 0x69, 0x6e, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x10, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4e, 0x65, 0x77, 0x6c, 0x79, 0x4d, 0x69, 0x6e, 0x74, - 0x65, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x65, 0x72, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x73, 0x50, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x4a, 0x0a, 0x20, + 0x64, 0x65, 0x72, 0x73, 0x12, 0x2e, 0x0a, 0x09, 0x45, 0x63, 0x6f, 0x6e, 0x6f, 0x6d, 0x69, 0x63, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x45, 0x63, 0x6f, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x73, 0x52, 0x09, 0x45, 0x63, 0x6f, 0x6e, 0x6f, + 0x6d, 0x69, 0x63, 0x73, 0x22, 0x99, 0x03, 0x0a, 0x13, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, + 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, + 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x48, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x48, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, + 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, + 0x73, 0x68, 0x12, 0x34, 0x0a, 0x15, 0x46, 0x69, 0x72, 0x73, 0x74, 0x50, 0x65, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x15, 0x46, 0x69, 0x72, 0x73, 0x74, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, + 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x34, 0x0a, 0x15, 0x4c, 0x61, 0x73, 0x74, + 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x15, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, + 0x69, 0x73, 0x68, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x50, + 0x0a, 0x17, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x17, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, + 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, 0x70, 0x6f, + 0x63, 0x68, 0x12, 0x2c, 0x0a, 0x11, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x52, + 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x53, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, + 0x22, 0xfd, 0x02, 0x0a, 0x09, 0x45, 0x63, 0x6f, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x73, 0x12, 0x20, + 0x0a, 0x0b, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, + 0x12, 0x2c, 0x0a, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x6f, 0x44, 0x69, 0x73, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x54, 0x6f, 0x74, + 0x61, 0x6c, 0x54, 0x6f, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2a, + 0x0a, 0x10, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4e, 0x65, 0x77, 0x6c, 0x79, 0x4d, 0x69, 0x6e, 0x74, + 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4e, + 0x65, 0x77, 0x6c, 0x79, 0x4d, 0x69, 0x6e, 0x74, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x65, 0x72, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x4a, 0x0a, 0x20, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x46, + 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x75, 0x73, 0x74, 0x61, 0x69, + 0x6e, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x20, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x46, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x75, 0x73, 0x74, 0x61, 0x69, 0x6e, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x20, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x46, - 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x75, 0x73, 0x74, 0x61, 0x69, - 0x6e, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x4e, 0x6f, 0x64, 0x65, - 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x4e, 0x6f, 0x64, - 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x50, 0x72, 0x65, 0x76, 0x45, 0x70, - 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x13, 0x50, 0x72, 0x65, 0x76, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, - 0x61, 0x72, 0x74, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x2e, 0x0a, 0x12, 0x50, 0x72, 0x65, 0x76, - 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, 0x50, 0x72, 0x65, 0x76, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x48, 0x61, 0x73, 0x68, 0x22, 0xad, 0x01, 0x0a, 0x08, 0x50, 0x65, 0x65, - 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x1c, 0x0a, 0x09, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x09, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x29, 0x0a, - 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, - 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x54, 0x69, 0x6d, - 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0xf9, 0x07, 0x0a, 0x0f, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x4c, 0x0a, 0x0c, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x64, 0x0a, 0x14, 0x53, 0x6d, - 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, - 0x2e, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x14, 0x53, 0x6d, 0x61, 0x72, - 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, - 0x12, 0x3d, 0x0a, 0x07, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, - 0x40, 0x0a, 0x08, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, - 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, - 0x73, 0x12, 0x46, 0x0a, 0x0a, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x18, - 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x2e, 0x49, 0x6e, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x49, - 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x12, 0x22, 0x0a, 0x04, 0x4c, 0x6f, 0x67, - 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x4c, 0x6f, 0x67, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x52, 0x0a, - 0x24, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x65, 0x64, 0x53, 0x43, 0x52, 0x53, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x24, 0x53, 0x63, 0x68, - 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x53, 0x43, - 0x52, 0x53, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x12, 0x5e, 0x0a, 0x2a, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, - 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, - 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x2a, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, - 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, - 0x78, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x1a, 0x4e, 0x0a, 0x11, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x1a, 0x57, 0x0a, 0x19, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, - 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x12, 0x1c, 0x0a, 0x09, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x09, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x30, + 0x0a, 0x13, 0x50, 0x72, 0x65, 0x76, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, 0x50, 0x72, 0x65, + 0x76, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x6f, 0x75, 0x6e, 0x64, + 0x12, 0x2e, 0x0a, 0x12, 0x50, 0x72, 0x65, 0x76, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, 0x50, 0x72, + 0x65, 0x76, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x48, 0x61, 0x73, 0x68, + 0x22, 0xad, 0x01, 0x0a, 0x08, 0x50, 0x65, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, + 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x75, 0x62, 0x6c, 0x69, + 0x63, 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x50, 0x75, 0x62, 0x6c, + 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x29, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x65, + 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x20, + 0x0a, 0x0b, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x22, 0xf9, 0x07, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x4c, 0x0a, 0x0c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, + 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x64, 0x0a, 0x14, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x30, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x2e, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x14, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x3d, 0x0a, 0x07, 0x52, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, + 0x6c, 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x40, 0x0a, 0x08, 0x52, 0x65, 0x63, 0x65, 0x69, + 0x70, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, + 0x6c, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x08, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x12, 0x46, 0x0a, 0x0a, 0x49, 0x6e, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x2e, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, + 0x73, 0x12, 0x22, 0x0a, 0x04, 0x4c, 0x6f, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x6f, 0x67, 0x44, 0x61, 0x74, 0x61, 0x52, + 0x04, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x52, 0x0a, 0x24, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x53, 0x43, 0x52, 0x53, 0x48, 0x61, + 0x73, 0x68, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x07, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x24, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x53, 0x43, 0x52, 0x53, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, + 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x5e, 0x0a, 0x2a, 0x53, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x49, 0x6e, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x50, 0x72, + 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x2a, 0x53, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, + 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, + 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0x4e, 0x0a, 0x11, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, - 0x12, 0x24, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x43, 0x52, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x4d, 0x0a, 0x0c, 0x52, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x27, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x4b, 0x0a, 0x0d, 0x52, 0x65, 0x63, - 0x65, 0x69, 0x70, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x4c, 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, - 0x64, 0x54, 0x78, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x02, 0x38, 0x01, 0x22, 0x5d, 0x0a, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x18, 0x0a, 0x07, 0x47, 0x61, 0x73, 0x55, 0x73, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x07, 0x47, 0x61, 0x73, 0x55, 0x73, 0x65, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x46, 0x65, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x46, 0x65, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x49, - 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x50, 0x61, 0x69, 0x64, 0x46, 0x65, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x50, 0x61, 0x69, 0x64, - 0x46, 0x65, 0x65, 0x22, 0x90, 0x01, 0x0a, 0x06, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x34, - 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x65, - 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x26, - 0x0a, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x22, 0x8a, 0x02, 0x0a, 0x08, 0x54, 0x78, 0x49, 0x6e, 0x66, - 0x6f, 0x56, 0x32, 0x12, 0x32, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x64, 0x54, 0x78, 0x52, 0x0b, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, - 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x28, 0x0a, 0x07, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, - 0x70, 0x74, 0x52, 0x07, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x45, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x09, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x54, 0x78, 0x73, - 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, + 0x12, 0x23, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x57, 0x0a, 0x19, 0x53, 0x6d, 0x61, + 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x53, 0x43, 0x52, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x1a, 0x4d, 0x0a, 0x0c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x27, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x1a, 0x4b, 0x0a, 0x0d, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x63, 0x65, + 0x69, 0x70, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x4c, + 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x78, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x5d, 0x0a, 0x07, + 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x61, 0x73, 0x55, 0x73, + 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x47, 0x61, 0x73, 0x55, 0x73, 0x65, + 0x64, 0x12, 0x10, 0x0a, 0x03, 0x46, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, + 0x46, 0x65, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x50, 0x61, + 0x69, 0x64, 0x46, 0x65, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x49, 0x6e, 0x69, + 0x74, 0x69, 0x61, 0x6c, 0x50, 0x61, 0x69, 0x64, 0x46, 0x65, 0x65, 0x22, 0x90, 0x01, 0x0a, 0x06, + 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x34, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x07, + 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x46, + 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, + 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x22, 0xe2, + 0x01, 0x0a, 0x08, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x32, 0x12, 0x32, 0x0a, 0x0b, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x64, + 0x54, 0x78, 0x52, 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x28, 0x0a, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x28, 0x0a, 0x07, 0x52, 0x65, 0x63, + 0x65, 0x69, 0x70, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x52, 0x07, 0x52, 0x65, 0x63, 0x65, + 0x69, 0x70, 0x74, 0x12, 0x2e, 0x0a, 0x09, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x54, 0x78, 0x73, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x64, 0x54, 0x78, 0x52, 0x09, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x54, 0x78, 0x73, 0x12, 0x1e, 0x0a, 0x04, 0x4c, 0x6f, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, + 0x54, 0x78, 0x73, 0x12, 0x1e, 0x0a, 0x04, 0x4c, 0x6f, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x6f, 0x67, 0x52, 0x04, 0x4c, 0x6f, 0x67, 0x73, 0x22, 0xe4, 0x06, 0x0a, 0x09, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x64, 0x54, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, @@ -5602,20 +5593,20 @@ var file_hyperOutportBlock_proto_rawDesc = []byte{ } var ( - file_hyperOutportBlock_proto_rawDescOnce sync.Once - file_hyperOutportBlock_proto_rawDescData = file_hyperOutportBlock_proto_rawDesc + file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescOnce sync.Once + file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescData = file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDesc ) -func file_hyperOutportBlock_proto_rawDescGZIP() []byte { - file_hyperOutportBlock_proto_rawDescOnce.Do(func() { - file_hyperOutportBlock_proto_rawDescData = protoimpl.X.CompressGZIP(file_hyperOutportBlock_proto_rawDescData) +func file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescGZIP() []byte { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescOnce.Do(func() { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescData = protoimpl.X.CompressGZIP(file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescData) }) - return file_hyperOutportBlock_proto_rawDescData + return file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDescData } -var file_hyperOutportBlock_proto_enumTypes = make([]protoimpl.EnumInfo, 3) -var file_hyperOutportBlock_proto_msgTypes = make([]protoimpl.MessageInfo, 60) -var file_hyperOutportBlock_proto_goTypes = []interface{}{ +var file_data_hyperOutportBlocks_hyperOutportBlock_proto_enumTypes = make([]protoimpl.EnumInfo, 3) +var file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes = make([]protoimpl.MessageInfo, 60) +var file_data_hyperOutportBlocks_hyperOutportBlock_proto_goTypes = []interface{}{ (PeerAction)(0), // 0: proto.PeerAction (TxType)(0), // 1: proto.TxType (Type)(0), // 2: proto.Type @@ -5680,7 +5671,7 @@ var file_hyperOutportBlock_proto_goTypes = []interface{}{ nil, // 61: proto.ValidatorsPubKeys.ShardValidatorsPubKeysEntry nil, // 62: proto.Accounts.AlteredAccountsEntry } -var file_hyperOutportBlock_proto_depIdxs = []int32{ +var file_data_hyperOutportBlocks_hyperOutportBlock_proto_depIdxs = []int32{ 5, // 0: proto.HyperOutportBlock.MetaOutportBlock:type_name -> proto.MetaOutportBlock 4, // 1: proto.HyperOutportBlock.NotarizedHeadersOutportData:type_name -> proto.NotarizedHeaderOutportData 6, // 2: proto.NotarizedHeaderOutportData.OutportBlock:type_name -> proto.ShardOutportBlock @@ -5763,13 +5754,13 @@ var file_hyperOutportBlock_proto_depIdxs = []int32{ 0, // [0:75] is the sub-list for field type_name } -func init() { file_hyperOutportBlock_proto_init() } -func file_hyperOutportBlock_proto_init() { - if File_hyperOutportBlock_proto != nil { +func init() { file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() } +func file_data_hyperOutportBlocks_hyperOutportBlock_proto_init() { + if File_data_hyperOutportBlocks_hyperOutportBlock_proto != nil { return } if !protoimpl.UnsafeEnabled { - file_hyperOutportBlock_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HyperOutportBlock); i { case 0: return &v.state @@ -5781,7 +5772,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NotarizedHeaderOutportData); i { case 0: return &v.state @@ -5793,7 +5784,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MetaOutportBlock); i { case 0: return &v.state @@ -5805,7 +5796,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ShardOutportBlock); i { case 0: return &v.state @@ -5817,7 +5808,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ShardOutportBlockV2); i { case 0: return &v.state @@ -5829,7 +5820,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TransactionPoolV2); i { case 0: return &v.state @@ -5841,7 +5832,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Header); i { case 0: return &v.state @@ -5853,7 +5844,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MetaHeader); i { case 0: return &v.state @@ -5865,7 +5856,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MiniBlockHeader); i { case 0: return &v.state @@ -5877,7 +5868,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PeerChange); i { case 0: return &v.state @@ -5889,7 +5880,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockData); i { case 0: return &v.state @@ -5901,7 +5892,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MetaBlockData); i { case 0: return &v.state @@ -5913,7 +5904,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ShardData); i { case 0: return &v.state @@ -5925,7 +5916,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EpochStart); i { case 0: return &v.state @@ -5937,7 +5928,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EpochStartShardData); i { case 0: return &v.state @@ -5949,7 +5940,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Economics); i { case 0: return &v.state @@ -5961,7 +5952,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PeerData); i { case 0: return &v.state @@ -5973,7 +5964,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TransactionPool); i { case 0: return &v.state @@ -5985,7 +5976,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FeeInfo); i { case 0: return &v.state @@ -5997,7 +5988,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TxInfo); i { case 0: return &v.state @@ -6009,7 +6000,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TxInfoV2); i { case 0: return &v.state @@ -6021,7 +6012,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WrappedTx); i { case 0: return &v.state @@ -6033,7 +6024,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCRInfo); i { case 0: return &v.state @@ -6045,7 +6036,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LogData); i { case 0: return &v.state @@ -6057,7 +6048,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RewardInfo); i { case 0: return &v.state @@ -6069,7 +6060,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HeaderGasConsumption); i { case 0: return &v.state @@ -6081,7 +6072,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ValidatorRatingInfo); i { case 0: return &v.state @@ -6093,7 +6084,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ValidatorsRating); i { case 0: return &v.state @@ -6105,7 +6096,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RoundInfo); i { case 0: return &v.state @@ -6117,7 +6108,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RoundsInfo); i { case 0: return &v.state @@ -6129,7 +6120,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PubKeys); i { case 0: return &v.state @@ -6141,7 +6132,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ValidatorsPubKeys); i { case 0: return &v.state @@ -6153,7 +6144,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Accounts); i { case 0: return &v.state @@ -6165,7 +6156,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FinalizedBlock); i { case 0: return &v.state @@ -6177,7 +6168,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Shard); i { case 0: return &v.state @@ -6189,7 +6180,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Body); i { case 0: return &v.state @@ -6201,7 +6192,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MiniBlock); i { case 0: return &v.state @@ -6213,7 +6204,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Transaction); i { case 0: return &v.state @@ -6225,7 +6216,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SmartContractResult); i { case 0: return &v.state @@ -6237,7 +6228,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Log); i { case 0: return &v.state @@ -6249,7 +6240,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Event); i { case 0: return &v.state @@ -6261,7 +6252,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RewardTx); i { case 0: return &v.state @@ -6273,7 +6264,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AlteredAccount); i { case 0: return &v.state @@ -6285,7 +6276,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AccountTokenData); i { case 0: return &v.state @@ -6297,7 +6288,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TokenMetaData); i { case 0: return &v.state @@ -6309,7 +6300,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AdditionalAccountTokenData); i { case 0: return &v.state @@ -6321,7 +6312,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AdditionalAccountData); i { case 0: return &v.state @@ -6333,7 +6324,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Receipt); i { case 0: return &v.state @@ -6345,7 +6336,7 @@ func file_hyperOutportBlock_proto_init() { return nil } } - file_hyperOutportBlock_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BigInt); i { case 0: return &v.state @@ -6362,19 +6353,19 @@ func file_hyperOutportBlock_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_hyperOutportBlock_proto_rawDesc, + RawDescriptor: file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDesc, NumEnums: 3, NumMessages: 60, NumExtensions: 0, NumServices: 0, }, - GoTypes: file_hyperOutportBlock_proto_goTypes, - DependencyIndexes: file_hyperOutportBlock_proto_depIdxs, - EnumInfos: file_hyperOutportBlock_proto_enumTypes, - MessageInfos: file_hyperOutportBlock_proto_msgTypes, + GoTypes: file_data_hyperOutportBlocks_hyperOutportBlock_proto_goTypes, + DependencyIndexes: file_data_hyperOutportBlocks_hyperOutportBlock_proto_depIdxs, + EnumInfos: file_data_hyperOutportBlocks_hyperOutportBlock_proto_enumTypes, + MessageInfos: file_data_hyperOutportBlocks_hyperOutportBlock_proto_msgTypes, }.Build() - File_hyperOutportBlock_proto = out.File - file_hyperOutportBlock_proto_rawDesc = nil - file_hyperOutportBlock_proto_goTypes = nil - file_hyperOutportBlock_proto_depIdxs = nil + File_data_hyperOutportBlocks_hyperOutportBlock_proto = out.File + file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDesc = nil + file_data_hyperOutportBlocks_hyperOutportBlock_proto_goTypes = nil + file_data_hyperOutportBlocks_hyperOutportBlock_proto_depIdxs = nil } diff --git a/data/hyperOutportBlocks/hyperOutportBlock.proto b/data/hyperOutportBlocks/hyperOutportBlock.proto index 4961310..1678668 100644 --- a/data/hyperOutportBlocks/hyperOutportBlock.proto +++ b/data/hyperOutportBlocks/hyperOutportBlock.proto @@ -261,9 +261,8 @@ message TxInfoV2 { WrappedTx Transaction = 1; FeeInfo FeeInfo = 2; Receipt Receipt = 3; - uint32 ExecutionOrder = 4; - repeated WrappedTx ResultTxs = 5; - repeated Log Logs = 6; + repeated WrappedTx ResultTxs = 4; + repeated Log Logs = 5; } message WrappedTx { @@ -297,8 +296,6 @@ message WrappedTx { uint32 Epoch = 27; TxType TxType = 28; - - // TODO: for RewardTx hardcode SndAddr = metachain } enum TxType { diff --git a/process/dataProcessor.go b/process/dataProcessor.go index 50f7274..923e473 100644 --- a/process/dataProcessor.go +++ b/process/dataProcessor.go @@ -1,7 +1,9 @@ package process import ( + "encoding/json" "fmt" + "os" "github.com/multiversx/mx-chain-core-go/core" "github.com/multiversx/mx-chain-core-go/core/check" @@ -135,6 +137,18 @@ func (dp *dataProcessor) handleShardOutportBlock(outportBlock *outport.OutportBl headerHash := outportBlock.BlockData.HeaderHash + //TODO: do not commit this + bytes1, _ := json.Marshal(outportBlock) + err = os.WriteFile("outportBlocks.json", bytes1, 0666) + if err != nil { + fmt.Println(err.Error()) + } + bytes, _ := json.Marshal(shardOutportBlock) + err = os.WriteFile("shardOutportBlocks.json", bytes, 0666) + if err != nil { + fmt.Println(err.Error()) + } + return dp.outportBlocksPool.PutBlock(headerHash, shardOutportBlock) } diff --git a/process/outportBlockConverter.go b/process/outportBlockConverter.go index 6c127b4..b971850 100644 --- a/process/outportBlockConverter.go +++ b/process/outportBlockConverter.go @@ -77,19 +77,8 @@ func (o *outportBlockConverter) handleBlockData(blockData *outport.BlockData, sh return nil } - var miniBlocks []*hyperOutportBlocks.MiniBlock - if blockData.Body.MiniBlocks != nil { - miniBlocks = []*hyperOutportBlocks.MiniBlock{} - for _, mb := range blockData.Body.MiniBlocks { - miniBlocks = append(miniBlocks, &hyperOutportBlocks.MiniBlock{ - TxHashes: mb.TxHashes, - ReceiverShardID: mb.ReceiverShardID, - SenderShardID: mb.SenderShardID, - Type: hyperOutportBlocks.Type(mb.Type), - Reserved: mb.Reserved, - }) - } - } + miniBlocks := copyMiniBlocks(blockData.Body.MiniBlocks) + intraShardMiniBlocks := copyMiniBlocks(blockData.IntraShardMiniBlocks) shardOutportBlock.BlockData = &hyperOutportBlocks.BlockData{ ShardID: blockData.ShardID, @@ -98,6 +87,7 @@ func (o *outportBlockConverter) handleBlockData(blockData *outport.BlockData, sh Body: &hyperOutportBlocks.Body{ MiniBlocks: miniBlocks, }, + IntraShardMiniBlocks: intraShardMiniBlocks, } var err error @@ -311,7 +301,7 @@ func (o *outportBlockConverter) handleTransactionPool(outportTxPool *outport.Tra return fmt.Errorf("failed to copy receipts: %w", err) } - err = o.copyInvalidTxs(outportTxPool.Transactions, shardOutportBlockV2.TransactionPool) + err = o.copyInvalidTxs(outportTxPool.InvalidTxs, shardOutportBlockV2.TransactionPool) if err != nil { return fmt.Errorf("failed to copy invalid txs: %w", err) } @@ -531,6 +521,7 @@ func (o *outportBlockConverter) copyTransactions(sourceTxs map[string]*outport.T Options: txInfo.Transaction.Options, GuardianAddr: txInfo.Transaction.GuardianAddr, GuardianSignature: txInfo.Transaction.GuardianSignature, + ExecutionOrder: txInfo.ExecutionOrder, TxType: hyperOutportBlocks.TxType_UserTx, } @@ -553,8 +544,6 @@ func (o *outportBlockConverter) copyTransactions(sourceTxs map[string]*outport.T } } - destTxInfo.ExecutionOrder = txInfo.ExecutionOrder - transactionPool.Transactions[txHash] = destTxInfo } } @@ -591,11 +580,31 @@ func (o *outportBlockConverter) copySmartContractResults(sourceSCRs map[string]* CodeMetadata: scrInfo.SmartContractResult.CodeMetadata, ReturnMessage: scrInfo.SmartContractResult.ReturnMessage, OriginalSender: scrInfo.SmartContractResult.OriginalSender, + ExecutionOrder: scrInfo.ExecutionOrder, TxType: hyperOutportBlocks.TxType_SCR, } + fee, err := o.castBigInt(scrInfo.FeeInfo.Fee) + if err != nil { + return fmt.Errorf("failed to cast transaction [%s] fee: %w", scrHash, err) + } + + initialPaidFee, err := o.castBigInt(scrInfo.FeeInfo.InitialPaidFee) + if err != nil { + return fmt.Errorf("failed to cast transaction [%s] initial paid fee: %w", scrHash, err) + } + + txInfo := &hyperOutportBlocks.TxInfoV2{ + Transaction: wrappedTx, + FeeInfo: &hyperOutportBlocks.FeeInfo{ + GasUsed: scrInfo.FeeInfo.GasUsed, + Fee: fee, + InitialPaidFee: initialPaidFee, + }, + } + if _, ok := transactionPool.Transactions[scrHash]; !ok { - transactionPool.Transactions[scrHash] = &hyperOutportBlocks.TxInfoV2{Transaction: wrappedTx} + transactionPool.Transactions[scrHash] = txInfo } else { if transactionPool.Transactions[scrHash].ResultTxs == nil { transactionPool.Transactions[scrHash].ResultTxs = make([]*hyperOutportBlocks.WrappedTx, 0) @@ -616,11 +625,13 @@ func (o *outportBlockConverter) copyRewards(sourceRewards map[string]*outport.Re transactionPool.Transactions[hash] = &hyperOutportBlocks.TxInfoV2{ Transaction: &hyperOutportBlocks.WrappedTx{ - Value: value, - RcvAddr: reward.Reward.RcvAddr, - Round: reward.Reward.Round, - Epoch: reward.Reward.Epoch, - TxType: hyperOutportBlocks.TxType_Reward, + Value: value, + SndAddr: []byte("metachain"), + RcvAddr: reward.Reward.RcvAddr, + Round: reward.Reward.Round, + Epoch: reward.Reward.Epoch, + ExecutionOrder: reward.ExecutionOrder, + TxType: hyperOutportBlocks.TxType_Reward, }, } } @@ -672,6 +683,7 @@ func (o *outportBlockConverter) copyInvalidTxs(sourceInvalidTxs map[string]*outp Options: invalidTx.Transaction.Options, GuardianAddr: invalidTx.Transaction.GuardianAddr, GuardianSignature: invalidTx.Transaction.GuardianSignature, + ExecutionOrder: invalidTx.ExecutionOrder, TxType: hyperOutportBlocks.TxType_Invalid, }, } @@ -745,6 +757,24 @@ func (o *outportBlockConverter) castBigInt(i *big.Int) ([]byte, error) { return buf, err } +func copyMiniBlocks(sourceMiniBlocks []*block.MiniBlock) []*hyperOutportBlocks.MiniBlock { + var destMiniBlocks []*hyperOutportBlocks.MiniBlock + if sourceMiniBlocks != nil { + destMiniBlocks = []*hyperOutportBlocks.MiniBlock{} + for _, mb := range sourceMiniBlocks { + destMiniBlocks = append(destMiniBlocks, &hyperOutportBlocks.MiniBlock{ + TxHashes: mb.TxHashes, + ReceiverShardID: mb.ReceiverShardID, + SenderShardID: mb.SenderShardID, + Type: hyperOutportBlocks.Type(mb.Type), + Reserved: mb.Reserved, + }) + } + } + + return destMiniBlocks +} + // IsInterfaceNil returns nil if there is no value under the interface func (o *outportBlockConverter) IsInterfaceNil() bool { return o == nil diff --git a/process/outportBlockConverter_test.go b/process/outportBlockConverter_test.go index 408b8ff..11dbf42 100644 --- a/process/outportBlockConverter_test.go +++ b/process/outportBlockConverter_test.go @@ -56,7 +56,44 @@ const ( outportBlockMetaBlockJSONPath = "../testscommon/testdata/outportBlockMetaBlock.json" ) -//TODO: be aware of the ExecutionOrder +func TestOutportBlockConverter(t *testing.T) { + jsonBytes, err := os.ReadFile("../testscommon/testdata/outportBlocks.json") + require.NoError(t, err, "failed to read test data") + + ob := &outport.OutportBlock{} + err = json.Unmarshal(jsonBytes, ob) + require.NoError(t, err, "failed to unmarshal test block") + + converter, err := process.NewOutportBlockConverter(gogoProtoMarshaller, protoMarshaller) + require.Nil(t, err) + + shardOutportBlock, err := converter.HandleShardOutportBlockV2(ob) + if err != nil { + panic(err) + } + + header := &block.HeaderV2{} + err = gogoProtoMarshaller.Unmarshal(header, ob.BlockData.HeaderBytes) + require.NoError(t, err, "failed to unmarshall outport block header bytes") + + checkHeaderV2ShardV2(t, header, shardOutportBlock) + checkFieldsV2(t, ob, shardOutportBlock) + checkBlockData(t, ob.BlockData, shardOutportBlock.BlockData) + + j, err := json.Marshal(shardOutportBlock) + if err != nil { + panic(err) + } + + err = os.WriteFile("./shardoutport.json", j, 0655) + if err != nil { + panic(err) + } + + jsonBytes, err = os.ReadFile(outportBlockHeaderV2JSONPath) + require.NoError(t, err, "failed to read test data") + +} func TestOutportBlockConverter_HandleShardOutportBlockV2(t *testing.T) { t.Parallel() @@ -707,8 +744,6 @@ func checkFieldsV2(t *testing.T, outportBlock *outport.OutportBlock, fireOutport require.Equal(t, v.FeeInfo.GasUsed, fireOutportBlock.GetTransactionPool().Transactions[k].FeeInfo.GasUsed) require.Equal(t, mustCastBigInt(t, v.FeeInfo.Fee), fireOutportBlock.GetTransactionPool().Transactions[k].FeeInfo.Fee) require.Equal(t, mustCastBigInt(t, v.FeeInfo.InitialPaidFee), fireOutportBlock.GetTransactionPool().Transactions[k].FeeInfo.InitialPaidFee) - - require.Equal(t, v.ExecutionOrder, fireOutportBlock.GetTransactionPool().Transactions[k].ExecutionOrder) } // Transaction pool - Smart Contract results. @@ -733,14 +768,12 @@ func checkFieldsV2(t *testing.T, outportBlock *outport.OutportBlock, fireOutport require.Equal(t, v.SmartContractResult.OriginalSender, tx.Transaction.OriginalSender) require.Equal(t, data.TxType_SCR, tx.Transaction.TxType) - //TODO: check if these needs to be added too. - // Transaction pool - Smart Contract results - Fee info. - //require.Equal(t, v.FeeInfo.GasUsed, tx.SmartContractResults.SmartContractResult.GasUsed) - //require.Equal(t, mustCastBigInt(t, v.FeeInfo.Fee), tx.SmartContractResults.SmartContractResult.Fee) - //require.Equal(t, mustCastBigInt(t, v.FeeInfo.InitialPaidFee), tx.SmartContractResults.SmartContractResult.FeeInfo.InitialPaidFee) - // - //// Transaction pool - Smart Contract results - Execution Order. - //require.Equal(t, v.ExecutionOrder, tx.SmartContractResults.SmartContractResult.ExecutionOrder) + require.Equal(t, v.FeeInfo.GasUsed, tx.FeeInfo.GasUsed) + require.Equal(t, mustCastBigInt(t, v.FeeInfo.Fee), tx.FeeInfo.Fee) + require.Equal(t, mustCastBigInt(t, v.FeeInfo.InitialPaidFee), tx.FeeInfo.InitialPaidFee) + + // Transaction pool - Smart Contract results - Execution Order. + require.Equal(t, v.ExecutionOrder, tx.Transaction.ExecutionOrder) } // Transaction Pool - Rewards @@ -750,6 +783,7 @@ func checkFieldsV2(t *testing.T, outportBlock *outport.OutportBlock, fireOutport require.Equal(t, mustCastBigInt(t, v.Reward.Value), fireOutportBlock.GetTransactionPool().Transactions[k].Transaction.Value) require.Equal(t, v.Reward.RcvAddr, fireOutportBlock.GetTransactionPool().Transactions[k].Transaction.RcvAddr) require.Equal(t, v.Reward.Epoch, fireOutportBlock.GetTransactionPool().Transactions[k].Transaction.Epoch) + require.Equal(t, []byte("metachain"), fireOutportBlock.GetTransactionPool().Transactions[k].Transaction.SndAddr) // Transaction Pool - Rewards - Execution Order require.Equal(t, v.ExecutionOrder, fireOutportBlock.GetTransactionPool().Transactions[k].Transaction.ExecutionOrder) @@ -789,8 +823,6 @@ func checkFieldsV2(t *testing.T, outportBlock *outport.OutportBlock, fireOutport require.Equal(t, v.FeeInfo.GasUsed, fireOutportBlock.GetTransactionPool().Transactions[k].FeeInfo.GasUsed) require.Equal(t, mustCastBigInt(t, v.FeeInfo.Fee), fireOutportBlock.GetTransactionPool().Transactions[k].FeeInfo.Fee) require.Equal(t, mustCastBigInt(t, v.FeeInfo.InitialPaidFee), fireOutportBlock.GetTransactionPool().Transactions[k].FeeInfo.InitialPaidFee) - - require.Equal(t, v.ExecutionOrder, fireOutportBlock.GetTransactionPool().Transactions[k].ExecutionOrder) } // Transaction Pool - Logs diff --git a/testscommon/outportBlockConverterMock.go b/testscommon/outportBlockConverterMock.go index 788c83c..fb84ec2 100644 --- a/testscommon/outportBlockConverterMock.go +++ b/testscommon/outportBlockConverterMock.go @@ -2,13 +2,15 @@ package testscommon import ( "github.com/multiversx/mx-chain-core-go/data/outport" + "github.com/multiversx/mx-chain-ws-connector-firehose-go/data/hyperOutportBlocks" ) // OutportBlockConverterMock - type OutportBlockConverterMock struct { - HandleShardOutportBlockCalled func(outportBlock *outport.OutportBlock) (*hyperOutportBlocks.ShardOutportBlock, error) - HandleMetaOutportBlockCalled func(outportBlock *outport.OutportBlock) (*hyperOutportBlocks.MetaOutportBlock, error) + HandleShardOutportBlockCalled func(outportBlock *outport.OutportBlock) (*hyperOutportBlocks.ShardOutportBlock, error) + HandleShardOutportBlockV2Called func(outportBlock *outport.OutportBlock) (*hyperOutportBlocks.ShardOutportBlockV2, error) + HandleMetaOutportBlockCalled func(outportBlock *outport.OutportBlock) (*hyperOutportBlocks.MetaOutportBlock, error) } // HandleShardOutportBlock - @@ -20,6 +22,15 @@ func (o *OutportBlockConverterMock) HandleShardOutportBlock(outportBlock *outpor return &hyperOutportBlocks.ShardOutportBlock{}, nil } +// HandleShardOutportBlockV2 - +func (o *OutportBlockConverterMock) HandleShardOutportBlockV2(outportBlock *outport.OutportBlock) (*hyperOutportBlocks.ShardOutportBlockV2, error) { + if o.HandleShardOutportBlockCalled != nil { + return o.HandleShardOutportBlockV2Called(outportBlock) + } + + return &hyperOutportBlocks.ShardOutportBlockV2{}, nil +} + // HandleMetaOutportBlock - func (o *OutportBlockConverterMock) HandleMetaOutportBlock(outportBlock *outport.OutportBlock) (*hyperOutportBlocks.MetaOutportBlock, error) { if o.HandleMetaOutportBlockCalled != nil { diff --git a/testscommon/testdata/outportBlocks.json b/testscommon/testdata/outportBlocks.json new file mode 100644 index 0000000..d5a968c --- /dev/null +++ b/testscommon/testdata/outportBlocks.json @@ -0,0 +1,788 @@ +{ + "shardID": 1, + "blockData": { + "shardID": 1, + "headerBytes": "CpcECMPN+AkSICdGhVWQgG1fpbjrNkWovM2n+fP7m9VrGJzv7/P6kcqvGjAqPOZBWlKz/8tTcr3AsRQrhdHJ1h6wQbi5TXxjT+QJ7t/Y5Z/On9XOxybmGRhMGQgiMOYibzrdtACJz8YPACt6M7y2MKjt20YbOWB+ZkXt60Jif8O+xjJ/7iayr8iafsWVDioI/////////38wATjUiuW0BkD+0PkJSKkLWjCFsy3K3GUC+VKsK2a3UfkFOfNUHGTypvklqewovud4mByqulgZuiVf0oQKs2rmFpliMGAyK4ylfobJfer4YuikOW3LHYbie5EBju4fnzSiAngxhmhh4BZpnj0+3ZnOfmUnjmooCiClccOLyIOV8GME3awDjlBoPcNPGiPtAjsfsNYiLUpMbBgBIAEoWmosCiA7H2afoJqrwWYp6VtglLEt4B+RnJTo/Jia0tVrlCj5zxABGAEgBjICIAVqLAog2V1+MgIPqwABF8yEj/seZlaa7OMa04u4/uizmI1wt2MQARj/////DyABeiDVf9ZoLfvM1btC96UjgmLt7GoHgqv01fe0fS2pvDjl1YIBIJZdbquLowBIYwyabhVt8wFGFQfXbEm+ckurxCLZF6jyiAEImgEgo31rC9l6yF7kVXcE3mpqiF5m8I+FA5Doe0+ZOhN4pWSiAQExqgEBMrIBCAAFLq8GGNsAugEHAJiT9TyKgBIgTPDWAYQBUnrftob/J2s8FI3GVPVC83of/IujkZkjqTwaAgAAIgIAAA==", + "headerType": "HeaderV2", + "headerHash": "LyyI0311LKzXjxsTSjg8w/J4PIL+UyoTYTTVYGmRi8U=", + "body": { + "miniBlocks": [ + { + "txHashes": [ + "32WznT+tCCiKUdiiGyOXvxugGCjirW5fz1S+JdvNb78=" + ], + "receiverShardID": 1, + "senderShardID": 0, + "type": 90 + }, + { + "txHashes": [ + "ihaqRjjROq0BN11eVkK+XuZ/60oY9XTErt0VYSd8QNc=", + "B8D5fYu5K4zky/gwbo1/RpmLLOt7mFYpl4htuLD1X4M=", + "mVGZEkMYcnH1VpzGz1VJl7UaRFlsZeE7/UcdFmRJagk=", + "lS+ssKhwFTdgYrX8azumslPeLZdu8kuJac08no8lHqQ=", + "TGcc+F264tN8j46mTqSPK20lCsaEI7tWn/xZhdItDxQ=", + "9xuXuervJbIPE492NwXmaXPsVEN2MixgRNn/AJ4Su5g=" + ], + "receiverShardID": 1, + "senderShardID": 1, + "type": 0 + }, + { + "txHashes": [ + "hnWQgrqvQ+dIx1AMdhw0hVXhVVskvTjPWOZq/87pVaI=" + ], + "receiverShardID": 4294967295, + "senderShardID": 1, + "type": 0 + } + ] + }, + "intraShardMiniBlocks": [ + { + "txHashes": [ + "0iENLOg9HVYkzd4XeY8qerzhjzQxYjd/7r+L7/hCIB4=", + "rBAHDSl5QH7+XsvNl/CjNrBWn+OPJXT0/UVSC7tEHUs=", + "FH0jhuE1ObInTdyOC71DSM2yj8ASAuRUBoxhI6nLBJw=", + "A0SGQp4lwxYJsIcO7X78+GxRgET1dlSRv+VzZJhzXMM=", + "z3Pv39nKRm2ssPLEiqEPz0OrQlP1K13o0mLDMR0UUq8=", + "5hXZG95mT3HyTd6TG3x1tc4R8ASpF/xqFzc4SW4m174=" + ], + "receiverShardID": 1, + "senderShardID": 1, + "type": 90 + } + ] + }, + "transactionPool": { + "transactions": { + "07c0f97d8bb92b8ce4cbf8306e8d7f46998b2ceb7b98562997886db8b0f55f83": { + "transaction": { + "nonce": 140, + "value": 0, + "receiver": "AAAAAAAAAAAFAB+zmdd0FWqRjjaNCSbLA05158cOb+M=", + "sender": "rBymVnlmf38GoTANRWKVhE+3hmUQikcOgrvWorfys7k=", + "gasPrice": 1000000000, + "gasLimit": 5000000, + "data": "Y2xhaW0=", + "chainID": "MQ==", + "version": 1, + "signature": "KXc8JLZsOphAFIG7BkOsmCt2yvx0iaJ3FVFrnY+waPp4dz7aN92+Y9ZDkIn0qJ/MwY+N3LP2n1o9xb73EPmQCA==" + }, + "feeInfo": { + "gasUsed": 2179967, + "fee": 78724670000000, + "initialPaidFee": 106925000000000 + }, + "executionOrder": 4 + }, + "4c671cf85dbae2d37c8f8ea64ea48f2b6d250ac68423bb569ffc5985d22d0f14": { + "transaction": { + "nonce": 53, + "value": 0, + "receiver": "AAAAAAAAAAAFAB+zmdd0FWqRjjaNCSbLA05158cOb+M=", + "sender": "Ucz8kGcPvIXrHxjGQaPbb+UbRWR2Bss7n8cXwX7B+SU=", + "gasPrice": 1000000000, + "gasLimit": 5000000, + "data": "Y2xhaW0=", + "chainID": "MQ==", + "version": 1, + "signature": "xpSerEOWemccA/ELYDVebcjKkot92qOJPoECXST/xr5sKRcRguxSB3sSuoxVJofwmVbGA6ZyzbZgt3JhCNBnDg==" + }, + "feeInfo": { + "gasUsed": 2179967, + "fee": 78724670000000, + "initialPaidFee": 106925000000000 + }, + "executionOrder": 10 + }, + "86759082baaf43e748c7500c761c348555e1555b24bd38cf58e66affcee955a2": { + "transaction": { + "nonce": 899, + "value": 0, + "receiver": "AAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAr///8=", + "sender": "nCA/Qa1NIW5e5537d/UH2cHS3r3BQVuT0mL/1Ai/TDk=", + "gasPrice": 1000000000, + "gasLimit": 12050000, + "data": "cmVEZWxlZ2F0ZVJld2FyZHM=", + "chainID": "MQ==", + "version": 2, + "signature": "VP1aMSTEhlr9+b5NIwHZkc4agNZaCdMuu65MUMe3+OdFWRd+n9RsFPmJU74PxuQnY9WJG769YAYUqYpfZvK8BQ==", + "options": 2, + "guardian": "oHHSf2wYGi6Dmv1KChgjm2SJV24MhyQy4IGffVjMvmo=", + "guardianSignature": "ffj13u8I0gVzNLpirbNM3NiT9BZ7FgRZF6hMnVsdJl2vc0L1QEI+xRQU+EwAtr4XJS6aGRdc4uRvZz7WnTDwAQ==" + }, + "feeInfo": { + "gasUsed": 125500, + "fee": 125500000000000, + "initialPaidFee": 244745000000000 + }, + "executionOrder": 3 + }, + "8a16aa4638d13aad01375d5e5642be5ee67feb4a18f574c4aedd1561277c40d7": { + "transaction": { + "nonce": 117862, + "value": 0, + "receiver": "AAAAAAAAAAAFAJy2QOlONehjlWsODMdzPJZ5VYBkRh0=", + "sender": "H8OelhIO0wsNFzk+V8XpnzH9rJZxAHal7GsiEQMsDHc=", + "gasPrice": 2000000000, + "gasLimit": 40000000, + "data": "c3VibWl0QmF0Y2hANTU1NDRiQDU1NTM0NEA2Njk5NDU1MUBiZDMyNDJiNjQ0NjVhZQ==", + "chainID": "MQ==", + "version": 1, + "signature": "YPUTLGcW5QJwrCgG8mdSSydFupzLbCl83ehf2LtHsYYem9D1Cbo7DSWJzjc5ja97T6X+ozibglD9hK72O03IDA==" + }, + "feeInfo": { + "gasUsed": 11973121, + "fee": 483992420000000, + "initialPaidFee": 1044530000000000 + }, + "executionOrder": 1 + }, + "952facb0a87015376062b5fc6b3ba6b253de2d976ef24b8969cd3c9e8f251ea4": { + "transaction": { + "nonce": 156372, + "value": 0, + "receiver": "AAAAAAAAAAAFAJy2QOlONehjlWsODMdzPJZ5VYBkRh0=", + "sender": "CwAe0+TfTUz0FiOuUl3ryJG9iH8pvFdRLhclfQPShHc=", + "gasPrice": 2000000000, + "gasLimit": 40000000, + "data": "c3VibWl0QmF0Y2hANTU1NDRiQDU1NTM0NEA2Njk5NDU0ZkBiZDMxZDZlZmI0YjVhOA==", + "chainID": "MQ==", + "version": 1, + "signature": "JVcIZPCledrJ4L4daVLFsniI521k04AVC4VwIRxe9ONQWGpsMJvZWn0RClx9LNgcUYdvEHq1TC1BMi+PeMIzBA==" + }, + "feeInfo": { + "gasUsed": 11970127, + "fee": 483932540000000, + "initialPaidFee": 1044530000000000 + }, + "executionOrder": 8 + }, + "9951991243187271f5569cc6cf554997b51a44596c65e13bfd471d1664496a09": { + "transaction": { + "nonce": 59, + "value": 0, + "receiver": "AAAAAAAAAAAFAB+zmdd0FWqRjjaNCSbLA05158cOb+M=", + "sender": "h3j0LgquX7+hXo23it8LawzAAXCQ3e2xhgs3Y+D8B+c=", + "gasPrice": 1000000000, + "gasLimit": 5000000, + "data": "Y2xhaW0=", + "chainID": "MQ==", + "version": 1, + "signature": "P3eTQrZkLvHyx7dTRuffAEIIJrgLFjl7KQDRlRf82z9BMpg41QIjL4Jd4kKnxb8fio/WuSa95AZF38zMEzIMBw==" + }, + "feeInfo": { + "gasUsed": 2179967, + "fee": 78724670000000, + "initialPaidFee": 106925000000000 + }, + "executionOrder": 6 + }, + "f71b97b9eaef25b20f138f763705e66973ec544376322c6044d9ff009e12bb98": { + "transaction": { + "nonce": 104, + "value": 0, + "receiver": "AAAAAAAAAAAFAB+zmdd0FWqRjjaNCSbLA05158cOb+M=", + "sender": "xlff1HiuovZytfSHoAjbnL3SdL1qdrljvbxx4FBWRF0=", + "gasPrice": 1000000000, + "gasLimit": 5050000, + "data": "Y2xhaW0=", + "chainID": "MQ==", + "version": 2, + "signature": "KOJD/VWu7k7W/JOQphErQSTHTC+qXQZqGsM4ulvCiuz4V5K4I6lZTCUeDdaQYAJL7et4SEQcc3TxR1mnQinbCg==", + "options": 2, + "guardian": "YDz3nvrmuZv7y40gT31ApCZsL1dOwbBwFhEOlgcCauc=", + "guardianSignature": "42bVkhF8iIbIcpT98xiIzKWA6hVqTiuKPaUfDOf5cn8C9zHE0rufG+CJGaYmuxrOfjhV4Xwc47Koh8WpLGphDA==" + }, + "feeInfo": { + "gasUsed": 2268017, + "fee": 129105170000000, + "initialPaidFee": 156925000000000 + }, + "executionOrder": 12 + } + }, + "smartContractResults": { + "034486429e25c31609b0870eed7efcf86c518044f5765491bfe5736498735cc3": { + "smartContractResult": { + "nonce": 156373, + "value": 560597460000000, + "receiver": "CwAe0+TfTUz0FiOuUl3ryJG9iH8pvFdRLhclfQPShHc=", + "sender": "AAAAAAAAAAAFAJy2QOlONehjlWsODMdzPJZ5VYBkRh0=", + "relayer": null, + "relayedValue": null, + "data": "QDZmNmI=", + "prevTxHash": "lS+ssKhwFTdgYrX8azumslPeLZdu8kuJac08no8lHqQ=", + "originalTxHash": "lS+ssKhwFTdgYrX8azumslPeLZdu8kuJac08no8lHqQ=", + "gasLimit": 0, + "gasPrice": 2000000000, + "callType": 0 + }, + "feeInfo": { + "gasUsed": 0, + "fee": 0, + "initialPaidFee": 0 + }, + "executionOrder": 9 + }, + "147d2386e13539b2274ddc8e0bbd4348cdb28fc01202e454068c6123a9cb049c": { + "smartContractResult": { + "nonce": 60, + "value": 28200330000000, + "receiver": "h3j0LgquX7+hXo23it8LawzAAXCQ3e2xhgs3Y+D8B+c=", + "sender": "AAAAAAAAAAAFAB+zmdd0FWqRjjaNCSbLA05158cOb+M=", + "relayer": null, + "relayedValue": null, + "data": "QDZmNmI=", + "prevTxHash": "mVGZEkMYcnH1VpzGz1VJl7UaRFlsZeE7/UcdFmRJagk=", + "originalTxHash": "mVGZEkMYcnH1VpzGz1VJl7UaRFlsZeE7/UcdFmRJagk=", + "gasLimit": 0, + "gasPrice": 1000000000, + "callType": 0 + }, + "feeInfo": { + "gasUsed": 0, + "fee": 0, + "initialPaidFee": 0 + }, + "executionOrder": 7 + }, + "ac10070d2979407efe5ecbcd97f0a336b0569fe38f2574f4fd45520bbb441d4b": { + "smartContractResult": { + "nonce": 141, + "value": 28200330000000, + "receiver": "rBymVnlmf38GoTANRWKVhE+3hmUQikcOgrvWorfys7k=", + "sender": "AAAAAAAAAAAFAB+zmdd0FWqRjjaNCSbLA05158cOb+M=", + "relayer": null, + "relayedValue": null, + "data": "QDZmNmI=", + "prevTxHash": "B8D5fYu5K4zky/gwbo1/RpmLLOt7mFYpl4htuLD1X4M=", + "originalTxHash": "B8D5fYu5K4zky/gwbo1/RpmLLOt7mFYpl4htuLD1X4M=", + "gasLimit": 0, + "gasPrice": 1000000000, + "callType": 0 + }, + "feeInfo": { + "gasUsed": 0, + "fee": 0, + "initialPaidFee": 0 + }, + "executionOrder": 5 + }, + "cf73efdfd9ca466dacb0f2c48aa10fcf43ab4253f52b5de8d262c3311d1452af": { + "smartContractResult": { + "nonce": 54, + "value": 28200330000000, + "receiver": "Ucz8kGcPvIXrHxjGQaPbb+UbRWR2Bss7n8cXwX7B+SU=", + "sender": "AAAAAAAAAAAFAB+zmdd0FWqRjjaNCSbLA05158cOb+M=", + "relayer": null, + "relayedValue": null, + "data": "QDZmNmI=", + "prevTxHash": "TGcc+F264tN8j46mTqSPK20lCsaEI7tWn/xZhdItDxQ=", + "originalTxHash": "TGcc+F264tN8j46mTqSPK20lCsaEI7tWn/xZhdItDxQ=", + "gasLimit": 0, + "gasPrice": 1000000000, + "callType": 0 + }, + "feeInfo": { + "gasUsed": 0, + "fee": 0, + "initialPaidFee": 0 + }, + "executionOrder": 11 + }, + "d2210d2ce83d1d5624cdde17798f2a7abce18f343162377feebf8beff842201e": { + "smartContractResult": { + "nonce": 117863, + "value": 560537580000000, + "receiver": "H8OelhIO0wsNFzk+V8XpnzH9rJZxAHal7GsiEQMsDHc=", + "sender": "AAAAAAAAAAAFAJy2QOlONehjlWsODMdzPJZ5VYBkRh0=", + "relayer": null, + "relayedValue": null, + "data": "QDZmNmI=", + "prevTxHash": "ihaqRjjROq0BN11eVkK+XuZ/60oY9XTErt0VYSd8QNc=", + "originalTxHash": "ihaqRjjROq0BN11eVkK+XuZ/60oY9XTErt0VYSd8QNc=", + "gasLimit": 0, + "gasPrice": 2000000000, + "callType": 0 + }, + "feeInfo": { + "gasUsed": 0, + "fee": 0, + "initialPaidFee": 0 + }, + "executionOrder": 2 + }, + "df65b39d3fad08288a51d8a21b2397bf1ba01828e2ad6e5fcf54be25dbcd6fbf": { + "smartContractResult": { + "nonce": 1, + "value": 206008500000000, + "receiver": "haKOK4jMPVFtIqTGASuJRisMDNDPxs5q4rH2ZkAtSjU=", + "sender": "AAAAAAAAAAAFAAr0fBK4bnSUqcLCYJniTNINIzenbPw=", + "relayer": null, + "relayedValue": null, + "data": "QDZmNmI=", + "prevTxHash": "+I6pVPqZTQs2YPQF4RQ6L8wnf+j98FY4N0jdX2uEPU0=", + "originalTxHash": "QIZyIcfM/5NppTxxaxIs2exrEiPTAACSJZ4w+iMOf0k=", + "gasLimit": 0, + "gasPrice": 1000000000, + "callType": 0 + }, + "feeInfo": { + "gasUsed": 14649150, + "fee": 435076500000000, + "initialPaidFee": 0 + }, + "executionOrder": 0 + }, + "e615d91bde664f71f24dde931b7c75b5ce11f004a917fc6a173738496e26d7be": { + "smartContractResult": { + "nonce": 105, + "value": 27819830000000, + "receiver": "xlff1HiuovZytfSHoAjbnL3SdL1qdrljvbxx4FBWRF0=", + "sender": "AAAAAAAAAAAFAB+zmdd0FWqRjjaNCSbLA05158cOb+M=", + "relayer": null, + "relayedValue": null, + "data": "QDZmNmI=", + "prevTxHash": "9xuXuervJbIPE492NwXmaXPsVEN2MixgRNn/AJ4Su5g=", + "originalTxHash": "9xuXuervJbIPE492NwXmaXPsVEN2MixgRNn/AJ4Su5g=", + "gasLimit": 0, + "gasPrice": 1000000000, + "callType": 0 + }, + "feeInfo": { + "gasUsed": 0, + "fee": 0, + "initialPaidFee": 0 + }, + "executionOrder": 13 + } + }, + "logs": [ + { + "txHash": "df65b39d3fad08288a51d8a21b2397bf1ba01828e2ad6e5fcf54be25dbcd6fbf", + "log": { + "address": "haKOK4jMPVFtIqTGASuJRisMDNDPxs5q4rH2ZkAtSjU=", + "events": [ + { + "address": "haKOK4jMPVFtIqTGASuJRisMDNDPxs5q4rH2ZkAtSjU=", + "identifier": "Y29tcGxldGVkVHhFdmVudA==", + "topics": [ + "+I6pVPqZTQs2YPQF4RQ6L8wnf+j98FY4N0jdX2uEPU0=" + ], + "data": null, + "additionalData": null + } + ] + } + }, + { + "txHash": "8a16aa4638d13aad01375d5e5642be5ee67feb4a18f574c4aedd1561277c40d7", + "log": { + "address": "AAAAAAAAAAAFAJy2QOlONehjlWsODMdzPJZ5VYBkRh0=", + "events": [ + { + "address": "AAAAAAAAAAAFAJy2QOlONehjlWsODMdzPJZ5VYBkRh0=", + "identifier": "c3VibWl0QmF0Y2g=", + "topics": [ + "bmV3X3ByaWNlX2V2ZW50", + "AAAAA1VUSwAAAANVU0Q=", + "vCDSnPaFcw==", + "Hg8=" + ], + "data": null, + "additionalData": [ + "" + ] + }, + { + "address": "AAAAAAAAAAAFAJy2QOlONehjlWsODMdzPJZ5VYBkRh0=", + "identifier": "c3VibWl0QmF0Y2g=", + "topics": [ + "bmV3X3N1Ym1pc3Npb25fZXZlbnQ=", + "AAAAA1VUSwAAAANVU0Q=", + "H8OelhIO0wsNFzk+V8XpnzH9rJZxAHal7GsiEQMsDHc=", + "vTJCtkRlrg==", + "Hg8=" + ], + "data": null, + "additionalData": [ + "" + ] + }, + { + "address": "AAAAAAAAAAAFAJy2QOlONehjlWsODMdzPJZ5VYBkRh0=", + "identifier": "Y29tcGxldGVkVHhFdmVudA==", + "topics": [ + "ihaqRjjROq0BN11eVkK+XuZ/60oY9XTErt0VYSd8QNc=" + ], + "data": null, + "additionalData": null + } + ] + } + }, + { + "txHash": "07c0f97d8bb92b8ce4cbf8306e8d7f46998b2ceb7b98562997886db8b0f55f83", + "log": { + "address": "AAAAAAAAAAAFAB+zmdd0FWqRjjaNCSbLA05158cOb+M=", + "events": [ + { + "address": "AAAAAAAAAAAFAB+zmdd0FWqRjjaNCSbLA05158cOb+M=", + "identifier": "Y2xhaW0=", + "topics": [ + "bmV3X2NsYWlt", + "rBymVnlmf38GoTANRWKVhE+3hmUQikcOgrvWorfys7k=" + ], + "data": "AAAAAAAAADAAAAAAAAAFqQAAAAAAAAAwAAAAAAAAADA=", + "additionalData": [ + "AAAAAAAAADAAAAAAAAAFqQAAAAAAAAAwAAAAAAAAADA=" + ] + }, + { + "address": "AAAAAAAAAAAFAB+zmdd0FWqRjjaNCSbLA05158cOb+M=", + "identifier": "Y29tcGxldGVkVHhFdmVudA==", + "topics": [ + "B8D5fYu5K4zky/gwbo1/RpmLLOt7mFYpl4htuLD1X4M=" + ], + "data": null, + "additionalData": null + } + ] + } + }, + { + "txHash": "9951991243187271f5569cc6cf554997b51a44596c65e13bfd471d1664496a09", + "log": { + "address": "AAAAAAAAAAAFAB+zmdd0FWqRjjaNCSbLA05158cOb+M=", + "events": [ + { + "address": "AAAAAAAAAAAFAB+zmdd0FWqRjjaNCSbLA05158cOb+M=", + "identifier": "Y2xhaW0=", + "topics": [ + "bmV3X2NsYWlt", + "h3j0LgquX7+hXo23it8LawzAAXCQ3e2xhgs3Y+D8B+c=" + ], + "data": "AAAAAAAAADAAAAAAAAAFqQAAAAAAAAAwAAAAAAAAADA=", + "additionalData": [ + "AAAAAAAAADAAAAAAAAAFqQAAAAAAAAAwAAAAAAAAADA=" + ] + }, + { + "address": "AAAAAAAAAAAFAB+zmdd0FWqRjjaNCSbLA05158cOb+M=", + "identifier": "Y29tcGxldGVkVHhFdmVudA==", + "topics": [ + "mVGZEkMYcnH1VpzGz1VJl7UaRFlsZeE7/UcdFmRJagk=" + ], + "data": null, + "additionalData": null + } + ] + } + }, + { + "txHash": "952facb0a87015376062b5fc6b3ba6b253de2d976ef24b8969cd3c9e8f251ea4", + "log": { + "address": "AAAAAAAAAAAFAJy2QOlONehjlWsODMdzPJZ5VYBkRh0=", + "events": [ + { + "address": "AAAAAAAAAAAFAJy2QOlONehjlWsODMdzPJZ5VYBkRh0=", + "identifier": "c3VibWl0QmF0Y2g=", + "topics": [ + "bmV3X3ByaWNlX2V2ZW50", + "AAAAA1VUSwAAAANVU0Q=", + "vKlUxnxi2w==", + "Hg8=" + ], + "data": null, + "additionalData": [ + "" + ] + }, + { + "address": "AAAAAAAAAAAFAJy2QOlONehjlWsODMdzPJZ5VYBkRh0=", + "identifier": "c3VibWl0QmF0Y2g=", + "topics": [ + "bmV3X3N1Ym1pc3Npb25fZXZlbnQ=", + "AAAAA1VUSwAAAANVU0Q=", + "CwAe0+TfTUz0FiOuUl3ryJG9iH8pvFdRLhclfQPShHc=", + "vTHW77S1qA==", + "Hg8=" + ], + "data": null, + "additionalData": [ + "" + ] + }, + { + "address": "AAAAAAAAAAAFAJy2QOlONehjlWsODMdzPJZ5VYBkRh0=", + "identifier": "Y29tcGxldGVkVHhFdmVudA==", + "topics": [ + "lS+ssKhwFTdgYrX8azumslPeLZdu8kuJac08no8lHqQ=" + ], + "data": null, + "additionalData": null + } + ] + } + }, + { + "txHash": "4c671cf85dbae2d37c8f8ea64ea48f2b6d250ac68423bb569ffc5985d22d0f14", + "log": { + "address": "AAAAAAAAAAAFAB+zmdd0FWqRjjaNCSbLA05158cOb+M=", + "events": [ + { + "address": "AAAAAAAAAAAFAB+zmdd0FWqRjjaNCSbLA05158cOb+M=", + "identifier": "Y2xhaW0=", + "topics": [ + "bmV3X2NsYWlt", + "Ucz8kGcPvIXrHxjGQaPbb+UbRWR2Bss7n8cXwX7B+SU=" + ], + "data": "AAAAAAAAAAMAAAAAAAAFqQAAAAAAAAAuAAAAAAAAACs=", + "additionalData": [ + "AAAAAAAAAAMAAAAAAAAFqQAAAAAAAAAuAAAAAAAAACs=" + ] + }, + { + "address": "AAAAAAAAAAAFAB+zmdd0FWqRjjaNCSbLA05158cOb+M=", + "identifier": "Y29tcGxldGVkVHhFdmVudA==", + "topics": [ + "TGcc+F264tN8j46mTqSPK20lCsaEI7tWn/xZhdItDxQ=" + ], + "data": null, + "additionalData": null + } + ] + } + }, + { + "txHash": "f71b97b9eaef25b20f138f763705e66973ec544376322c6044d9ff009e12bb98", + "log": { + "address": "AAAAAAAAAAAFAB+zmdd0FWqRjjaNCSbLA05158cOb+M=", + "events": [ + { + "address": "AAAAAAAAAAAFAB+zmdd0FWqRjjaNCSbLA05158cOb+M=", + "identifier": "Y2xhaW0=", + "topics": [ + "bmV3X2NsYWlt", + "xlff1HiuovZytfSHoAjbnL3SdL1qdrljvbxx4FBWRF0=" + ], + "data": "AAAAAAAAABQAAAAAAAAFqQAAAAAAAAApAAAAAAAAABQ=", + "additionalData": [ + "AAAAAAAAABQAAAAAAAAFqQAAAAAAAAApAAAAAAAAABQ=" + ] + }, + { + "address": "AAAAAAAAAAAFAB+zmdd0FWqRjjaNCSbLA05158cOb+M=", + "identifier": "Y29tcGxldGVkVHhFdmVudA==", + "topics": [ + "9xuXuervJbIPE492NwXmaXPsVEN2MixgRNn/AJ4Su5g=" + ], + "data": null, + "additionalData": null + } + ] + } + } + ] + }, + "headerGasConsumption": { + "gasProvided": 100175500, + "gasRefunded": 67298834, + "gasPenalized": 0, + "maxGasPerBlock": 1500000000 + }, + "alteredAccounts": { + "erd128x0eyr8p77gt6clrrryrg7mdlj3k3tywcrvkwulcutuzlkplyjsa37gg2": { + "address": "erd128x0eyr8p77gt6clrrryrg7mdlj3k3tywcrvkwulcutuzlkplyjsa37gg2", + "nonce": 54, + "balance": "382481130000000", + "additionalAccountData": { + "isSender": true, + "balanceChanged": true, + "userName": "butterfly17.elrond", + "developerRewards": "0", + "rootHash": "H3TJBO/6eq6McvYUJtIVF0Dt4ofPT0KUUx+X5eolceA=" + } + }, + "erd14sw2v4nevelh7p4pxqx52c54s38m0pn9zz9ywr5zh0t29dljkwusc7tzd3": { + "address": "erd14sw2v4nevelh7p4pxqx52c54s38m0pn9zz9ywr5zh0t29dljkwusc7tzd3", + "nonce": 141, + "balance": "34209096409027042", + "additionalAccountData": { + "isSender": true, + "balanceChanged": true, + "userName": "koen.elrond", + "developerRewards": "0", + "rootHash": "J5noe+HDBNCSPsTWcAkDourg0HWzaD2GUfzT1PQylPw=" + } + }, + "erd1cetal4rc4630vu447jr6qzxmnj7aya9adfmtjcaah3c7q5zkg3wswjd9hs": { + "address": "erd1cetal4rc4630vu447jr6qzxmnj7aya9adfmtjcaah3c7q5zkg3wswjd9hs", + "nonce": 105, + "balance": "336980643644132321531", + "additionalAccountData": { + "isSender": true, + "balanceChanged": true, + "userName": "zetony.elrond", + "developerRewards": "0", + "rootHash": "LFjEpzf/4V7BA4nfu9UMFUZGP5hfnjdUDZQMypTCv2E=", + "codeMetadata": "CAA=" + } + }, + "erd1nssr7sddf5skuhh8nhah0ag8m8qa9h4ac9q4hy7jvtlagz9lfsus7nsxj8": { + "address": "erd1nssr7sddf5skuhh8nhah0ag8m8qa9h4ac9q4hy7jvtlagz9lfsus7nsxj8", + "nonce": 900, + "balance": "903919099401211300", + "additionalAccountData": { + "isSender": true, + "balanceChanged": true, + "userName": "tiv.elrond", + "developerRewards": "0", + "rootHash": "UMdaZ9Xqf78aKGFHavrbPLZJX62tHCQ2Z1C5B1h7x9o=", + "codeMetadata": "CAA=" + } + }, + "erd1pvqpa5lymax5eaqkywh9yh0tezgmmzrl9x79w5fwzujh6q7js3mshddse9": { + "address": "erd1pvqpa5lymax5eaqkywh9yh0tezgmmzrl9x79w5fwzujh6q7js3mshddse9", + "nonce": 156373, + "balance": "1787309441920007000", + "additionalAccountData": { + "isSender": true, + "balanceChanged": true, + "developerRewards": "0", + "rootHash": "66QRXPcP0LN73XlAwbBOPVE5zdOGYoDeLVNcxIEK7YI=" + } + }, + "erd1qqqqqqqqqqqqqpgqnjmyp62wxh5x89ttpcxvwueujeu4tqrygcwsg7pwpc": { + "address": "erd1qqqqqqqqqqqqqpgqnjmyp62wxh5x89ttpcxvwueujeu4tqrygcwsg7pwpc", + "nonce": 0, + "balance": "100500000000000000", + "additionalAccountData": { + "isSender": true, + "balanceChanged": true, + "currentOwner": "erd19tk834szapn2c40klx3cpv7s6ppw4yqvjnusmk4gawz093wngcwsrc2q8a", + "developerRewards": "515913864210000000", + "codeHash": "vuE8AAoVD13Wix/SSa1NmiYNb1PUor+FEfsj1OGWuQg=", + "rootHash": "pl4ZygPvE3aws64dfCdd4c9hyiXczULwKBxCWF5kuKI=", + "codeMetadata": "BQY=" + } + }, + "erd1qqqqqqqqqqqqqpgqr7een4m5z44frr3k35yjdjcrfe6703cwdl3s3wkddz": { + "address": "erd1qqqqqqqqqqqqqpgqr7een4m5z44frr3k35yjdjcrfe6703cwdl3s3wkddz", + "nonce": 0, + "balance": "0", + "additionalAccountData": { + "isSender": true, + "balanceChanged": true, + "currentOwner": "erd1kj7l40rmklhp06treukh8c2merl2h78v2939wyxwc5000t25dl3s85klfd", + "developerRewards": "2218855590099000000", + "codeHash": "gVgRRf6HhmTGlxziasAFoCgBlP7/DH0i9IhTbj7lsxA=", + "rootHash": "vXDRzS32woUuMBSbtwJG0i33ONw8HcFgblVrKdo8Soo=", + "codeMetadata": "BQA=" + } + }, + "erd1rlpea9sjpmfskrgh8yl9030fnuclmtykwyq8df0vdv3pzqevp3msudvsue": { + "address": "erd1rlpea9sjpmfskrgh8yl9030fnuclmtykwyq8df0vdv3pzqevp3msudvsue", + "nonce": 117863, + "balance": "1371593504580000000", + "additionalAccountData": { + "isSender": true, + "balanceChanged": true, + "developerRewards": "0", + "rootHash": "qY0ip8COwbjPozia/DT5U/RVrE8x+fDinSUCkznjM4o=" + } + }, + "erd1sau0gts24e0mlg273kmc4hctdvxvqqtsjrw7mvvxpvmk8c8uqlnsh6n4ql": { + "address": "erd1sau0gts24e0mlg273kmc4hctdvxvqqtsjrw7mvvxpvmk8c8uqlnsh6n4ql", + "nonce": 60, + "balance": "634249385851688931", + "additionalAccountData": { + "isSender": true, + "balanceChanged": true, + "userName": "cryptotahiti.elrond", + "developerRewards": "0", + "rootHash": "P6nABHAQ8+B69M40dLjOJvfX/+WxJDvVjNgRzlYSS+o=" + } + }, + "erd1sk3gu2uges74zmfz5nrqz2ufgc4scrxselrvu6hzk8mxvspdfg6suj7rm3": { + "address": "erd1sk3gu2uges74zmfz5nrqz2ufgc4scrxselrvu6hzk8mxvspdfg6suj7rm3", + "nonce": 1116, + "balance": "8722805877334529", + "additionalAccountData": { + "balanceChanged": true, + "developerRewards": "0", + "rootHash": "ZbajEqZBjeWcFb6WZ2SdVzyHnvSVCKNoViPJo4nomG0=" + } + } + }, + "numberOfShards": 3, + "signersIndexes": [ + 195, + 161, + 318, + 86, + 297, + 242, + 348, + 39, + 168, + 104, + 131, + 180, + 124, + 386, + 202, + 190, + 84, + 391, + 350, + 144, + 224, + 199, + 191, + 249, + 380, + 141, + 234, + 225, + 52, + 301, + 371, + 37, + 150, + 230, + 270, + 255, + 21, + 14, + 216, + 237, + 19, + 266, + 388, + 302, + 171, + 58, + 83, + 106, + 206, + 81, + 365, + 10, + 107, + 219, + 49, + 12, + 334, + 156, + 275, + 284, + 363, + 119, + 387 + ], + "highestFinalBlockNonce": 20850371, + "highestFinalBlockHash": "LyyI0311LKzXjxsTSjg8w/J4PIL+UyoTYTTVYGmRi8U=" +} \ No newline at end of file From 81456a22c79614c7dcac0c98551100dc4c42dec5 Mon Sep 17 00:00:00 2001 From: Alexander Cristurean Date: Thu, 25 Jul 2024 18:44:10 +0300 Subject: [PATCH 06/12] fixed nil pointer. --- process/dataProcessor.go | 4 ++-- process/outportBlockConverter.go | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/process/dataProcessor.go b/process/dataProcessor.go index 923e473..cedf979 100644 --- a/process/dataProcessor.go +++ b/process/dataProcessor.go @@ -139,12 +139,12 @@ func (dp *dataProcessor) handleShardOutportBlock(outportBlock *outport.OutportBl //TODO: do not commit this bytes1, _ := json.Marshal(outportBlock) - err = os.WriteFile("outportBlocks.json", bytes1, 0666) + err = os.WriteFile(fmt.Sprintf("outportBlocks_%s.json", shardOutportBlock.BlockData.GetHeaderHash()), bytes1, 0666) if err != nil { fmt.Println(err.Error()) } bytes, _ := json.Marshal(shardOutportBlock) - err = os.WriteFile("shardOutportBlocks.json", bytes, 0666) + err = os.WriteFile(fmt.Sprintf("shardOutportBlocks_%s.json", shardOutportBlock.BlockData.GetHeaderHash()), bytes, 0666) if err != nil { fmt.Println(err.Error()) } diff --git a/process/outportBlockConverter.go b/process/outportBlockConverter.go index b971850..20af97f 100644 --- a/process/outportBlockConverter.go +++ b/process/outportBlockConverter.go @@ -77,7 +77,10 @@ func (o *outportBlockConverter) handleBlockData(blockData *outport.BlockData, sh return nil } - miniBlocks := copyMiniBlocks(blockData.Body.MiniBlocks) + var miniBlocks []*hyperOutportBlocks.MiniBlock + if blockData.Body != nil { + miniBlocks = copyMiniBlocks(blockData.Body.MiniBlocks) + } intraShardMiniBlocks := copyMiniBlocks(blockData.IntraShardMiniBlocks) shardOutportBlock.BlockData = &hyperOutportBlocks.BlockData{ From 88c11dc26788850f24ec1632852b119b2791ce14 Mon Sep 17 00:00:00 2001 From: Alexander Cristurean Date: Thu, 25 Jul 2024 19:04:46 +0300 Subject: [PATCH 07/12] fix linter. --- process/outportBlockConverter_test.go | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/process/outportBlockConverter_test.go b/process/outportBlockConverter_test.go index 11dbf42..f7aba8d 100644 --- a/process/outportBlockConverter_test.go +++ b/process/outportBlockConverter_test.go @@ -79,20 +79,6 @@ func TestOutportBlockConverter(t *testing.T) { checkHeaderV2ShardV2(t, header, shardOutportBlock) checkFieldsV2(t, ob, shardOutportBlock) checkBlockData(t, ob.BlockData, shardOutportBlock.BlockData) - - j, err := json.Marshal(shardOutportBlock) - if err != nil { - panic(err) - } - - err = os.WriteFile("./shardoutport.json", j, 0655) - if err != nil { - panic(err) - } - - jsonBytes, err = os.ReadFile(outportBlockHeaderV2JSONPath) - require.NoError(t, err, "failed to read test data") - } func TestOutportBlockConverter_HandleShardOutportBlockV2(t *testing.T) { From 3379e9ac4c25b7b78c5f3678d528de722452b478 Mon Sep 17 00:00:00 2001 From: Alexander Cristurean Date: Fri, 26 Jul 2024 09:26:39 +0300 Subject: [PATCH 08/12] remove debug part. --- process/dataProcessor.go | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/process/dataProcessor.go b/process/dataProcessor.go index cedf979..50f7274 100644 --- a/process/dataProcessor.go +++ b/process/dataProcessor.go @@ -1,9 +1,7 @@ package process import ( - "encoding/json" "fmt" - "os" "github.com/multiversx/mx-chain-core-go/core" "github.com/multiversx/mx-chain-core-go/core/check" @@ -137,18 +135,6 @@ func (dp *dataProcessor) handleShardOutportBlock(outportBlock *outport.OutportBl headerHash := outportBlock.BlockData.HeaderHash - //TODO: do not commit this - bytes1, _ := json.Marshal(outportBlock) - err = os.WriteFile(fmt.Sprintf("outportBlocks_%s.json", shardOutportBlock.BlockData.GetHeaderHash()), bytes1, 0666) - if err != nil { - fmt.Println(err.Error()) - } - bytes, _ := json.Marshal(shardOutportBlock) - err = os.WriteFile(fmt.Sprintf("shardOutportBlocks_%s.json", shardOutportBlock.BlockData.GetHeaderHash()), bytes, 0666) - if err != nil { - fmt.Println(err.Error()) - } - return dp.outportBlocksPool.PutBlock(headerHash, shardOutportBlock) } From 8169fac694f56ea2d72b05f076a3d4570104c843 Mon Sep 17 00:00:00 2001 From: Alexander Cristurean Date: Tue, 6 Aug 2024 17:19:59 +0300 Subject: [PATCH 09/12] fixes after review. --- .../hyperOutportBlock.pb.go | 1736 ++++++++--------- .../hyperOutportBlock.proto | 16 +- data/hyperOutportBlocks/shardOutportBlock.go | 1 + process/errors.go | 3 + process/outportBlockConverter.go | 103 +- process/outportBlockConverter_test.go | 33 +- 6 files changed, 936 insertions(+), 956 deletions(-) diff --git a/data/hyperOutportBlocks/hyperOutportBlock.pb.go b/data/hyperOutportBlocks/hyperOutportBlock.pb.go index 4f50d55..d8768bc 100644 --- a/data/hyperOutportBlocks/hyperOutportBlock.pb.go +++ b/data/hyperOutportBlocks/hyperOutportBlock.pb.go @@ -258,8 +258,8 @@ type NotarizedHeaderOutportData struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - NotarizedHeaderHash string `protobuf:"bytes,1,opt,name=NotarizedHeaderHash,proto3" json:"NotarizedHeaderHash,omitempty"` - OutportBlock *ShardOutportBlock `protobuf:"bytes,2,opt,name=OutportBlock,proto3" json:"OutportBlock,omitempty"` + NotarizedHeaderHash string `protobuf:"bytes,1,opt,name=NotarizedHeaderHash,proto3" json:"NotarizedHeaderHash,omitempty"` + OutportBlock *ShardOutportBlockV2 `protobuf:"bytes,2,opt,name=OutportBlock,proto3" json:"OutportBlock,omitempty"` } func (x *NotarizedHeaderOutportData) Reset() { @@ -301,7 +301,7 @@ func (x *NotarizedHeaderOutportData) GetNotarizedHeaderHash() string { return "" } -func (x *NotarizedHeaderOutportData) GetOutportBlock() *ShardOutportBlock { +func (x *NotarizedHeaderOutportData) GetOutportBlock() *ShardOutportBlockV2 { if x != nil { return x.OutportBlock } @@ -4679,299 +4679,335 @@ var file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDesc = []byte{ 0x2e, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x1b, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x4f, 0x75, 0x74, - 0x70, 0x6f, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x22, 0x8c, 0x01, 0x0a, 0x1a, 0x4e, 0x6f, 0x74, + 0x70, 0x6f, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x22, 0x8e, 0x01, 0x0a, 0x1a, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x30, 0x0a, 0x13, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3c, 0x0a, 0x0c, 0x4f, 0x75, 0x74, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3e, 0x0a, 0x0c, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, - 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x0c, 0x4f, 0x75, 0x74, 0x70, 0x6f, - 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x9c, 0x05, 0x0a, 0x10, 0x4d, 0x65, 0x74, 0x61, - 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x18, 0x0a, 0x07, - 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, - 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x32, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, - 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x52, - 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x40, 0x0a, 0x0f, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x0f, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x4f, 0x0a, 0x14, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, - 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, - 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x56, 0x0a, - 0x0f, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, - 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, - 0x65, 0x74, 0x61, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, - 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, - 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, - 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x16, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x26, 0x0a, - 0x0e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x53, - 0x68, 0x61, 0x72, 0x64, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, - 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0e, 0x53, - 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x12, 0x36, 0x0a, + 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, + 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x32, 0x52, 0x0c, 0x4f, 0x75, 0x74, + 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x9c, 0x05, 0x0a, 0x10, 0x4d, 0x65, + 0x74, 0x61, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x18, + 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x32, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, + 0x61, 0x52, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x40, 0x0a, 0x0f, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x0f, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x4f, + 0x0a, 0x14, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, + 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, + 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x56, 0x0a, 0x0f, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x4e, 0x6f, 0x74, 0x61, 0x72, + 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, + 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x16, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, + 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, + 0x26, 0x0a, 0x0e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x53, 0x68, 0x61, 0x72, 0x64, + 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, + 0x66, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x65, + 0x72, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x04, 0x52, + 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x12, + 0x36, 0x0a, 0x16, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x48, - 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, - 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x15, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, - 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x1a, 0x59, 0x0a, 0x14, 0x41, + 0x63, 0x6b, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x48, 0x69, 0x67, 0x68, 0x65, + 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x15, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, + 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x1a, 0x59, 0x0a, + 0x14, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, + 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x9a, 0x05, 0x0a, 0x11, 0x53, 0x68, 0x61, + 0x72, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x18, + 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x2e, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x40, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x4f, 0x0a, 0x14, 0x48, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, + 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x57, 0x0a, 0x0f, 0x41, + 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x68, 0x61, + 0x72, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x6c, 0x74, - 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x9a, 0x05, 0x0a, 0x11, 0x53, 0x68, 0x61, 0x72, 0x64, - 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x18, 0x0a, 0x07, - 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, - 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x2e, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, - 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x40, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x4f, 0x0a, 0x14, 0x48, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, - 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x57, 0x0a, 0x0f, 0x41, 0x6c, 0x74, - 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, - 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x41, 0x6c, 0x74, - 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x0f, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x16, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x53, 0x68, 0x61, 0x72, - 0x64, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x64, - 0x65, 0x78, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0e, 0x53, 0x69, 0x67, 0x6e, - 0x65, 0x72, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x48, 0x69, + 0x74, 0x72, 0x79, 0x52, 0x0f, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, + 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x16, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x53, 0x68, + 0x61, 0x72, 0x64, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0e, 0x53, 0x69, + 0x67, 0x6e, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x16, + 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, - 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x48, 0x69, 0x67, 0x68, - 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x6f, 0x6e, - 0x63, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, - 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x15, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x1a, 0x59, 0x0a, 0x14, 0x41, 0x6c, 0x74, 0x65, - 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, - 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x22, 0xa0, 0x05, 0x0a, 0x13, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, - 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x32, 0x12, 0x18, 0x0a, 0x07, 0x53, - 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, - 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x2e, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, - 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x42, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x56, 0x32, 0x52, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x4f, 0x0a, 0x14, 0x48, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, - 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x59, 0x0a, 0x0f, 0x41, 0x6c, - 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x68, 0x61, 0x72, - 0x64, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x32, 0x2e, - 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, - 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, - 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x16, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x26, 0x0a, - 0x0e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x53, - 0x68, 0x61, 0x72, 0x64, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, - 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0e, 0x53, - 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x12, 0x36, 0x0a, + 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, + 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x15, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, + 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x1a, 0x59, 0x0a, 0x14, 0x41, 0x6c, + 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x6c, 0x74, 0x65, + 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xa0, 0x05, 0x0a, 0x13, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4f, + 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x32, 0x12, 0x18, 0x0a, + 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, + 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x2e, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x42, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x56, 0x32, 0x52, 0x0f, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x4f, 0x0a, 0x14, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, + 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, + 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x59, 0x0a, 0x0f, + 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x68, + 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, + 0x32, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x4e, 0x6f, 0x74, 0x61, 0x72, + 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, + 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x16, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, + 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, + 0x26, 0x0a, 0x0e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x53, 0x68, 0x61, 0x72, 0x64, + 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, + 0x66, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x65, + 0x72, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x04, 0x52, + 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x12, + 0x36, 0x0a, 0x16, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x48, - 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, - 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x15, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, - 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x1a, 0x59, 0x0a, 0x14, 0x41, - 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x6c, 0x74, - 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xe9, 0x02, 0x0a, 0x11, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x56, 0x32, 0x12, 0x4e, 0x0a, 0x0c, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x56, 0x32, 0x2e, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x52, 0x0a, 0x24, - 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, - 0x64, 0x53, 0x43, 0x52, 0x53, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x24, 0x53, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x53, 0x43, 0x52, - 0x53, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x12, 0x5e, 0x0a, 0x2a, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x48, - 0x61, 0x73, 0x68, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x2a, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, + 0x63, 0x6b, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x48, 0x69, 0x67, 0x68, 0x65, + 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x15, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, + 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x1a, 0x59, 0x0a, + 0x14, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, + 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xe9, 0x02, 0x0a, 0x11, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x56, 0x32, 0x12, 0x4e, + 0x0a, 0x0c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x56, 0x32, 0x2e, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x0c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x52, + 0x0a, 0x24, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x65, 0x64, 0x53, 0x43, 0x52, 0x53, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x50, 0x72, 0x65, + 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x24, 0x53, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x53, + 0x43, 0x52, 0x53, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x12, 0x5e, 0x0a, 0x2a, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x1a, 0x50, 0x0a, 0x11, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x25, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, - 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x32, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, - 0x38, 0x01, 0x22, 0xdc, 0x06, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x14, 0x0a, - 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, - 0x6e, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x50, 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x12, - 0x22, 0x0a, 0x0c, 0x50, 0x72, 0x65, 0x76, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x50, 0x72, 0x65, 0x76, 0x52, 0x61, 0x6e, 0x64, 0x53, - 0x65, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x12, - 0x24, 0x0a, 0x0d, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x42, - 0x69, 0x74, 0x6d, 0x61, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, - 0x1c, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x14, 0x0a, - 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x6f, - 0x75, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x31, 0x0a, 0x0d, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0d, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, - 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x4c, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x61, - 0x74, 0x75, 0x72, 0x65, 0x12, 0x42, 0x0a, 0x10, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x10, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x33, 0x0a, 0x0b, 0x50, 0x65, 0x65, 0x72, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x52, 0x0b, 0x50, 0x65, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x1a, 0x0a, - 0x08, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x08, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x28, 0x0a, 0x0f, 0x4d, 0x65, 0x74, - 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x10, 0x20, 0x03, - 0x28, 0x0c, 0x52, 0x0f, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, - 0x68, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x11, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x54, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2e, 0x0a, - 0x12, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x48, - 0x61, 0x73, 0x68, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, 0x45, 0x70, 0x6f, 0x63, 0x68, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x61, 0x73, 0x68, 0x12, 0x22, 0x0a, - 0x0c, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x48, 0x61, 0x73, 0x68, 0x18, 0x13, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x48, 0x61, 0x73, - 0x68, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x18, 0x14, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x07, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x53, - 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x15, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, - 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, - 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x12, - 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, - 0x18, 0x17, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, - 0x72, 0x46, 0x65, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x64, 0x22, 0xac, 0x07, 0x0a, 0x0a, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, - 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x6f, 0x75, - 0x6e, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, - 0x12, 0x2e, 0x0a, 0x09, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x68, 0x61, 0x72, - 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x2b, 0x0a, 0x08, 0x50, 0x65, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x06, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x08, 0x50, 0x65, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, - 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x4c, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, - 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, - 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x50, 0x75, - 0x62, 0x4b, 0x65, 0x79, 0x73, 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x50, - 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x50, - 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x50, 0x72, 0x65, 0x76, 0x52, - 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x50, - 0x72, 0x65, 0x76, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, - 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, - 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x74, 0x48, - 0x61, 0x73, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x6f, 0x6f, 0x74, 0x48, - 0x61, 0x73, 0x68, 0x12, 0x36, 0x0a, 0x16, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, - 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0e, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x16, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x74, - 0x61, 0x74, 0x73, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x42, 0x0a, 0x10, 0x4d, - 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, - 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x69, - 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x10, 0x4d, - 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x2a, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x54, 0x78, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x1a, 0x50, 0x0a, 0x11, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x25, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x32, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x22, 0xdc, 0x06, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, + 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, + 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, + 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x50, 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, + 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x50, 0x72, 0x65, 0x76, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x50, 0x72, 0x65, 0x76, 0x52, 0x61, 0x6e, + 0x64, 0x53, 0x65, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, + 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x42, 0x69, 0x74, 0x6d, + 0x61, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, + 0x73, 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, + 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, + 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, + 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, + 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x31, 0x0a, 0x0d, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x0d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x28, 0x0a, 0x0f, + 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x53, 0x69, 0x67, + 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x42, 0x0a, 0x10, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x10, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x33, 0x0a, 0x0b, 0x50, 0x65, + 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x52, 0x0b, 0x50, 0x65, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, + 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x08, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x28, 0x0a, 0x0f, 0x4d, + 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x10, + 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0f, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, + 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x54, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x2e, 0x0a, 0x12, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x48, 0x61, 0x73, 0x68, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, 0x45, 0x70, 0x6f, + 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x61, 0x73, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x48, 0x61, 0x73, 0x68, 0x18, - 0x11, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x48, - 0x61, 0x73, 0x68, 0x12, 0x31, 0x0a, 0x0a, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x0a, 0x45, 0x70, 0x6f, 0x63, - 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, - 0x44, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, - 0x12, 0x28, 0x0a, 0x0f, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x53, 0x6f, 0x66, 0x74, 0x77, - 0x61, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x41, 0x63, - 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x18, 0x15, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, - 0x46, 0x65, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, - 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x49, 0x6e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x16, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x16, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, - 0x64, 0x46, 0x65, 0x65, 0x73, 0x49, 0x6e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x24, 0x0a, 0x0d, - 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x18, 0x17, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, - 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x44, 0x65, 0x76, 0x46, 0x65, 0x65, 0x73, 0x49, 0x6e, 0x45, - 0x70, 0x6f, 0x63, 0x68, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x44, 0x65, 0x76, 0x46, - 0x65, 0x65, 0x73, 0x49, 0x6e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x78, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x54, 0x78, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, - 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, - 0x22, 0xcc, 0x01, 0x0a, 0x0f, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x04, 0x48, 0x61, 0x73, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x65, 0x6e, 0x64, - 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x28, - 0x0a, 0x0f, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, - 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x78, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x54, 0x78, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x22, - 0x46, 0x0a, 0x0a, 0x50, 0x65, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x16, 0x0a, - 0x06, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x50, - 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x64, - 0x44, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x53, 0x68, 0x61, 0x72, - 0x64, 0x49, 0x64, 0x44, 0x65, 0x73, 0x74, 0x22, 0xb3, 0x04, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, - 0x25, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, + 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x48, + 0x61, 0x73, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x18, 0x14, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x12, 0x28, 0x0a, + 0x0f, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x15, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x75, 0x6d, + 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x0f, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, + 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, + 0x65, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, + 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x64, 0x22, 0xac, 0x07, 0x0a, 0x0a, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, + 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x14, + 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, + 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, + 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, + 0x6d, 0x70, 0x12, 0x2e, 0x0a, 0x09, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x68, + 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x2b, 0x0a, 0x08, 0x50, 0x65, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x65, 0x65, + 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x50, 0x65, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x1c, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x28, 0x0a, + 0x0f, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x53, 0x69, + 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x75, 0x62, 0x4b, 0x65, + 0x79, 0x73, 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, + 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x12, 0x1a, 0x0a, + 0x08, 0x50, 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x08, 0x50, 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x50, 0x72, 0x65, + 0x76, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x0c, 0x50, 0x72, 0x65, 0x76, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x12, 0x1a, 0x0a, + 0x08, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x08, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6f, + 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x6f, 0x6f, + 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x36, 0x0a, 0x16, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x16, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x42, 0x0a, + 0x10, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, + 0x10, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x48, 0x61, 0x73, + 0x68, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, + 0x73, 0x48, 0x61, 0x73, 0x68, 0x12, 0x31, 0x0a, 0x0a, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x0a, 0x45, 0x70, + 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x61, 0x69, + 0x6e, 0x49, 0x44, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x43, 0x68, 0x61, 0x69, 0x6e, + 0x49, 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x53, 0x6f, 0x66, + 0x74, 0x77, 0x61, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0f, + 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x18, + 0x15, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, + 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, + 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x49, 0x6e, 0x45, 0x70, 0x6f, 0x63, 0x68, + 0x18, 0x16, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x16, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, + 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x49, 0x6e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x24, + 0x0a, 0x0d, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x18, + 0x17, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, + 0x46, 0x65, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x44, 0x65, 0x76, 0x46, 0x65, 0x65, 0x73, 0x49, + 0x6e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x44, 0x65, + 0x76, 0x46, 0x65, 0x65, 0x73, 0x49, 0x6e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x18, 0x0a, 0x07, + 0x54, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x54, + 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x64, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x64, 0x22, 0xcc, 0x01, 0x0a, 0x0f, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x61, 0x73, 0x68, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x48, 0x61, 0x73, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, + 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, + 0x64, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x52, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x78, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x54, 0x78, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x22, 0x46, 0x0a, 0x0a, 0x50, 0x65, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x06, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x68, 0x61, 0x72, 0x64, + 0x49, 0x64, 0x44, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x53, 0x68, + 0x61, 0x72, 0x64, 0x49, 0x64, 0x44, 0x65, 0x73, 0x74, 0x22, 0xb3, 0x04, 0x0a, 0x09, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, + 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, + 0x44, 0x12, 0x25, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x48, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x48, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1f, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x42, + 0x6f, 0x64, 0x79, 0x52, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x44, 0x0a, 0x14, 0x49, 0x6e, 0x74, + 0x72, 0x61, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x14, 0x49, 0x6e, 0x74, 0x72, 0x61, + 0x53, 0x68, 0x61, 0x72, 0x64, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, + 0x2c, 0x0a, 0x11, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x74, + 0x48, 0x61, 0x73, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x53, 0x63, 0x68, 0x65, + 0x64, 0x75, 0x6c, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3a, 0x0a, + 0x18, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, + 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x18, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, + 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x53, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, + 0x65, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x16, 0x53, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x64, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, + 0x73, 0x12, 0x32, 0x0a, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, + 0x73, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x50, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x15, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x64, 0x47, 0x61, 0x73, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, + 0x61, 0x73, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x53, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x52, 0x65, 0x66, 0x75, 0x6e, + 0x64, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x52, 0x65, 0x66, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x22, + 0xbb, 0x04, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x29, 0x0a, 0x06, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, @@ -5002,594 +5038,558 @@ var file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDesc = []byte{ 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x52, 0x65, 0x66, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, - 0x65, 0x64, 0x47, 0x61, 0x73, 0x52, 0x65, 0x66, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x22, 0xbb, 0x04, - 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x29, 0x0a, 0x06, 0x48, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x48, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, - 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x48, 0x61, 0x73, 0x68, 0x12, 0x1f, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, - 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x44, 0x0a, 0x14, 0x49, 0x6e, 0x74, 0x72, 0x61, 0x53, 0x68, - 0x61, 0x72, 0x64, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x06, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x69, 0x6e, 0x69, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x14, 0x49, 0x6e, 0x74, 0x72, 0x61, 0x53, 0x68, 0x61, 0x72, - 0x64, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x53, - 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, - 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3a, 0x0a, 0x18, 0x53, 0x63, 0x68, - 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, - 0x64, 0x46, 0x65, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x18, 0x53, 0x63, 0x68, - 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, - 0x64, 0x46, 0x65, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, - 0x65, 0x64, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x16, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, - 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x12, 0x32, 0x0a, - 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x50, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x53, 0x63, 0x68, - 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x64, 0x12, 0x34, 0x0a, 0x15, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, - 0x73, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x15, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x50, 0x65, - 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, - 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x52, 0x65, 0x66, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, - 0x47, 0x61, 0x73, 0x52, 0x65, 0x66, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x22, 0x97, 0x04, 0x0a, 0x09, - 0x53, 0x68, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, - 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, - 0x64, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, - 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, - 0x61, 0x73, 0x68, 0x12, 0x4c, 0x0a, 0x15, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4d, 0x69, 0x6e, 0x69, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x69, 0x6e, 0x69, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x15, 0x53, 0x68, 0x61, 0x72, - 0x64, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x50, 0x72, 0x65, 0x76, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x50, 0x72, 0x65, 0x76, 0x52, 0x61, 0x6e, - 0x64, 0x53, 0x65, 0x65, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, - 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x50, 0x75, - 0x62, 0x4b, 0x65, 0x79, 0x73, 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x53, - 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, - 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x78, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x54, 0x78, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x65, - 0x76, 0x48, 0x61, 0x73, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x50, 0x72, 0x65, - 0x76, 0x48, 0x61, 0x73, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x32, 0x0a, 0x14, 0x4e, - 0x75, 0x6d, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x4e, 0x75, 0x6d, 0x50, 0x65, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, - 0x28, 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, - 0x65, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, - 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x76, - 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x0d, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x12, - 0x34, 0x0a, 0x15, 0x4c, 0x61, 0x73, 0x74, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x4d, - 0x65, 0x74, 0x61, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, - 0x4c, 0x61, 0x73, 0x74, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x61, - 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x0a, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x12, 0x4e, 0x0a, 0x14, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, - 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x14, - 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x73, 0x12, 0x2e, 0x0a, 0x09, 0x45, 0x63, 0x6f, 0x6e, 0x6f, 0x6d, 0x69, 0x63, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x45, 0x63, 0x6f, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x73, 0x52, 0x09, 0x45, 0x63, 0x6f, 0x6e, 0x6f, - 0x6d, 0x69, 0x63, 0x73, 0x22, 0x99, 0x03, 0x0a, 0x13, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, - 0x61, 0x72, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, - 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, - 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x48, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x48, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, - 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, - 0x73, 0x68, 0x12, 0x34, 0x0a, 0x15, 0x46, 0x69, 0x72, 0x73, 0x74, 0x50, 0x65, 0x6e, 0x64, 0x69, - 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x15, 0x46, 0x69, 0x72, 0x73, 0x74, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, - 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x34, 0x0a, 0x15, 0x4c, 0x61, 0x73, 0x74, - 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x15, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, - 0x69, 0x73, 0x68, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x50, - 0x0a, 0x17, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x17, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, - 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, - 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, 0x70, 0x6f, - 0x63, 0x68, 0x12, 0x2c, 0x0a, 0x11, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x52, - 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x53, - 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, - 0x22, 0xfd, 0x02, 0x0a, 0x09, 0x45, 0x63, 0x6f, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x73, 0x12, 0x20, - 0x0a, 0x0b, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, - 0x12, 0x2c, 0x0a, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x6f, 0x44, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x54, 0x6f, 0x74, - 0x61, 0x6c, 0x54, 0x6f, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2a, - 0x0a, 0x10, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4e, 0x65, 0x77, 0x6c, 0x79, 0x4d, 0x69, 0x6e, 0x74, - 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4e, - 0x65, 0x77, 0x6c, 0x79, 0x4d, 0x69, 0x6e, 0x74, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x65, 0x72, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x4a, 0x0a, 0x20, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x46, - 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x75, 0x73, 0x74, 0x61, 0x69, - 0x6e, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x20, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x46, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x53, 0x75, 0x73, 0x74, 0x61, 0x69, 0x6e, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x12, 0x1c, 0x0a, 0x09, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x09, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x30, - 0x0a, 0x13, 0x50, 0x72, 0x65, 0x76, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, 0x50, 0x72, 0x65, - 0x76, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x6f, 0x75, 0x6e, 0x64, - 0x12, 0x2e, 0x0a, 0x12, 0x50, 0x72, 0x65, 0x76, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, 0x50, 0x72, - 0x65, 0x76, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x48, 0x61, 0x73, 0x68, - 0x22, 0xad, 0x01, 0x0a, 0x08, 0x50, 0x65, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, - 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x75, 0x62, 0x6c, 0x69, - 0x63, 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x50, 0x75, 0x62, 0x6c, - 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x29, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x65, - 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x20, - 0x0a, 0x0b, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x22, 0xf9, 0x07, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x4c, 0x0a, 0x0c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, - 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x12, 0x64, 0x0a, 0x14, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x30, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x2e, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x14, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, - 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x3d, 0x0a, 0x07, 0x52, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, - 0x6c, 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x40, 0x0a, 0x08, 0x52, 0x65, 0x63, 0x65, 0x69, - 0x70, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, - 0x6c, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x08, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x12, 0x46, 0x0a, 0x0a, 0x49, 0x6e, 0x76, - 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x2e, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, - 0x73, 0x12, 0x22, 0x0a, 0x04, 0x4c, 0x6f, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x6f, 0x67, 0x44, 0x61, 0x74, 0x61, 0x52, - 0x04, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x52, 0x0a, 0x24, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, - 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x53, 0x43, 0x52, 0x53, 0x48, 0x61, - 0x73, 0x68, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x07, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x24, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x53, 0x43, 0x52, 0x53, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, - 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x5e, 0x0a, 0x2a, 0x53, 0x63, 0x68, - 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x49, 0x6e, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x50, 0x72, - 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x2a, 0x53, - 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, - 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, - 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0x4e, 0x0a, 0x11, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, - 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, - 0x12, 0x23, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x57, 0x0a, 0x19, 0x53, 0x6d, 0x61, - 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x53, 0x43, 0x52, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, - 0x38, 0x01, 0x1a, 0x4d, 0x0a, 0x0c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6b, 0x65, 0x79, 0x12, 0x27, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x1a, 0x4b, 0x0a, 0x0d, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x63, 0x65, - 0x69, 0x70, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x4c, - 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x78, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x5d, 0x0a, 0x07, - 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x61, 0x73, 0x55, 0x73, - 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x47, 0x61, 0x73, 0x55, 0x73, 0x65, - 0x64, 0x12, 0x10, 0x0a, 0x03, 0x46, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, - 0x46, 0x65, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x50, 0x61, - 0x69, 0x64, 0x46, 0x65, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x49, 0x6e, 0x69, - 0x74, 0x69, 0x61, 0x6c, 0x50, 0x61, 0x69, 0x64, 0x46, 0x65, 0x65, 0x22, 0x90, 0x01, 0x0a, 0x06, - 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x34, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x07, - 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x46, - 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, - 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x22, 0xe2, - 0x01, 0x0a, 0x08, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x32, 0x12, 0x32, 0x0a, 0x0b, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x64, - 0x54, 0x78, 0x52, 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x28, 0x0a, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x28, 0x0a, 0x07, 0x52, 0x65, 0x63, - 0x65, 0x69, 0x70, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x52, 0x07, 0x52, 0x65, 0x63, 0x65, - 0x69, 0x70, 0x74, 0x12, 0x2e, 0x0a, 0x09, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x54, 0x78, 0x73, - 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, - 0x72, 0x61, 0x70, 0x70, 0x65, 0x64, 0x54, 0x78, 0x52, 0x09, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x54, 0x78, 0x73, 0x12, 0x1e, 0x0a, 0x04, 0x4c, 0x6f, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x0a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x6f, 0x67, 0x52, 0x04, 0x4c, - 0x6f, 0x67, 0x73, 0x22, 0xe4, 0x06, 0x0a, 0x09, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x64, 0x54, - 0x78, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x52, 0x63, 0x76, 0x41, 0x64, 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, - 0x52, 0x63, 0x76, 0x41, 0x64, 0x64, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x63, 0x76, 0x55, 0x73, - 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x52, 0x63, - 0x76, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x6e, 0x64, - 0x41, 0x64, 0x64, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x53, 0x6e, 0x64, 0x41, - 0x64, 0x64, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x53, 0x6e, 0x64, 0x55, 0x73, 0x65, - 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, - 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x08, 0x47, 0x61, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, - 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x07, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, - 0x75, 0x72, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x22, 0x0a, - 0x0c, 0x47, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x18, 0x0e, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x47, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x41, 0x64, 0x64, - 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x47, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, - 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x47, 0x75, - 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, - 0x20, 0x0a, 0x0b, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x18, 0x10, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x64, 0x64, - 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x12, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x65, - 0x76, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x50, - 0x72, 0x65, 0x76, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x72, 0x69, - 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x18, 0x14, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x0e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x54, 0x78, 0x48, 0x61, 0x73, - 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x61, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x15, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x08, 0x43, 0x61, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, - 0x0c, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x16, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x12, 0x24, 0x0a, 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x72, 0x69, 0x67, 0x69, - 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x0e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, - 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, - 0x72, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, - 0x18, 0x1a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x14, 0x0a, - 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, 0x70, - 0x6f, 0x63, 0x68, 0x12, 0x25, 0x0a, 0x06, 0x54, 0x78, 0x54, 0x79, 0x70, 0x65, 0x18, 0x1c, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x78, 0x54, 0x79, - 0x70, 0x65, 0x52, 0x06, 0x54, 0x78, 0x54, 0x79, 0x70, 0x65, 0x22, 0xa9, 0x01, 0x0a, 0x07, 0x53, - 0x43, 0x52, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4c, 0x0a, 0x13, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x6d, 0x61, 0x72, - 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, - 0x13, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x12, 0x28, 0x0a, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x65, - 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x26, - 0x0a, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x22, 0x3f, 0x0a, 0x07, 0x4c, 0x6f, 0x67, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1c, 0x0a, 0x03, 0x4c, 0x6f, 0x67, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, - 0x6f, 0x67, 0x52, 0x03, 0x4c, 0x6f, 0x67, 0x22, 0x5d, 0x0a, 0x0a, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x27, 0x0a, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x54, 0x78, 0x52, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, - 0x0a, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x22, 0xa6, 0x01, 0x0a, 0x14, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x20, 0x0a, 0x0b, 0x47, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x47, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x47, 0x61, 0x73, 0x52, 0x65, 0x66, 0x75, 0x6e, 0x64, 0x65, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x47, 0x61, 0x73, 0x52, 0x65, 0x66, 0x75, 0x6e, - 0x64, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x47, 0x61, 0x73, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x69, - 0x7a, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x47, 0x61, 0x73, 0x50, 0x65, - 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x4d, 0x61, 0x78, 0x47, 0x61, - 0x73, 0x50, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0e, 0x4d, 0x61, 0x78, 0x47, 0x61, 0x73, 0x50, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, - 0x4b, 0x0a, 0x13, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x61, 0x74, 0x69, - 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, - 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x50, 0x75, 0x62, 0x6c, 0x69, - 0x63, 0x4b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x92, 0x01, 0x0a, - 0x10, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x61, 0x74, 0x69, 0x6e, - 0x67, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x45, - 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, 0x70, 0x6f, 0x63, - 0x68, 0x12, 0x4e, 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, - 0x61, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x14, 0x56, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, - 0x6f, 0x22, 0xc3, 0x01, 0x0a, 0x09, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, - 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, - 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0e, 0x53, - 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x12, 0x2a, 0x0a, - 0x10, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x57, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x57, 0x61, - 0x73, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, - 0x72, 0x64, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, - 0x64, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x58, 0x0a, 0x0a, 0x52, 0x6f, 0x75, 0x6e, 0x64, - 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, - 0x30, 0x0a, 0x0a, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x6f, 0x75, 0x6e, - 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x49, 0x6e, 0x66, - 0x6f, 0x22, 0x1d, 0x0a, 0x07, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x12, 0x0a, 0x04, - 0x4b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x04, 0x4b, 0x65, 0x79, 0x73, - 0x22, 0x8c, 0x02, 0x0a, 0x11, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x50, - 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, - 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, - 0x12, 0x6c, 0x0a, 0x16, 0x53, 0x68, 0x61, 0x72, 0x64, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x6f, 0x72, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x34, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x6f, 0x72, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, - 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x16, 0x53, 0x68, 0x61, 0x72, 0x64, 0x56, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x14, - 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, - 0x70, 0x6f, 0x63, 0x68, 0x1a, 0x59, 0x0a, 0x1b, 0x53, 0x68, 0x61, 0x72, 0x64, 0x56, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x75, 0x62, - 0x4b, 0x65, 0x79, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, - 0xf7, 0x01, 0x0a, 0x08, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, - 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, - 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x4e, - 0x0a, 0x0f, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x41, - 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x1a, 0x59, - 0x0a, 0x14, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4a, 0x0a, 0x0e, 0x46, 0x69, 0x6e, - 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x53, + 0x65, 0x64, 0x47, 0x61, 0x73, 0x52, 0x65, 0x66, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x22, 0x97, 0x04, + 0x0a, 0x09, 0x53, 0x68, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x48, 0x61, 0x73, 0x68, 0x22, 0x21, 0x0a, 0x05, 0x53, 0x68, 0x61, 0x72, 0x64, 0x12, 0x18, + 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x4c, 0x0a, 0x15, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4d, 0x69, + 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x69, 0x6e, + 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x15, 0x53, 0x68, + 0x61, 0x72, 0x64, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x50, 0x72, 0x65, 0x76, 0x52, 0x61, 0x6e, 0x64, 0x53, + 0x65, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x50, 0x72, 0x65, 0x76, 0x52, + 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x75, 0x62, 0x4b, 0x65, + 0x79, 0x73, 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, + 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x12, 0x1c, 0x0a, + 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x54, + 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x54, 0x78, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, + 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x50, + 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x32, 0x0a, + 0x14, 0x4e, 0x75, 0x6d, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x69, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x4e, 0x75, 0x6d, + 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, + 0x46, 0x65, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x41, 0x63, 0x63, 0x75, + 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x44, + 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x0d, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, + 0x73, 0x12, 0x34, 0x0a, 0x15, 0x4c, 0x61, 0x73, 0x74, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, + 0x64, 0x4d, 0x65, 0x74, 0x61, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x15, 0x4c, 0x61, 0x73, 0x74, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x4d, 0x65, + 0x74, 0x61, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x0a, 0x45, 0x70, 0x6f, 0x63, + 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x4e, 0x0a, 0x14, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, + 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x70, 0x6f, + 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, + 0x52, 0x14, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x2e, 0x0a, 0x09, 0x45, 0x63, 0x6f, 0x6e, 0x6f, 0x6d, + 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x45, 0x63, 0x6f, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x73, 0x52, 0x09, 0x45, 0x63, 0x6f, + 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x73, 0x22, 0x99, 0x03, 0x0a, 0x13, 0x45, 0x70, 0x6f, 0x63, 0x68, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x22, 0x38, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, - 0x12, 0x30, 0x0a, 0x0a, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x69, 0x6e, - 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x0a, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x73, 0x22, 0xb4, 0x01, 0x0a, 0x09, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0c, 0x52, 0x08, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0f, - 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x53, - 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x53, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x1f, 0x0a, 0x04, - 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x22, 0xbb, 0x03, 0x0a, 0x0b, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x63, 0x76, 0x41, 0x64, 0x64, 0x72, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x52, 0x63, 0x76, 0x41, 0x64, 0x64, 0x72, 0x12, - 0x20, 0x0a, 0x0b, 0x52, 0x63, 0x76, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x52, 0x63, 0x76, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x07, 0x53, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x53, - 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x0b, 0x53, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x08, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x73, - 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x47, 0x61, 0x73, - 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x61, - 0x69, 0x6e, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x43, 0x68, 0x61, 0x69, - 0x6e, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, - 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x4f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x47, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, - 0x6e, 0x41, 0x64, 0x64, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x47, 0x75, 0x61, - 0x72, 0x64, 0x69, 0x61, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x47, 0x75, 0x61, - 0x72, 0x64, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x47, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x53, 0x69, - 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0xf1, 0x03, 0x0a, 0x13, 0x53, 0x6d, 0x61, 0x72, - 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, - 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, - 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, - 0x63, 0x76, 0x41, 0x64, 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x52, 0x63, - 0x76, 0x41, 0x64, 0x64, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x53, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, 0x12, - 0x20, 0x0a, 0x0b, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x64, 0x64, - 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, - 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1e, 0x0a, - 0x0a, 0x50, 0x72, 0x65, 0x76, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x0a, 0x50, 0x72, 0x65, 0x76, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x26, 0x0a, - 0x0e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x54, - 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x73, 0x4c, 0x69, 0x6d, 0x69, - 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x47, 0x61, 0x73, 0x4c, 0x69, 0x6d, 0x69, - 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x08, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x43, 0x61, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x08, 0x43, 0x61, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x6f, 0x64, - 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x0c, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x24, 0x0a, - 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x53, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x4f, 0x72, 0x69, - 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x45, 0x0a, 0x03, 0x4c, - 0x6f, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x24, 0x0a, 0x06, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x73, 0x22, 0x95, 0x01, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x06, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x12, 0x12, - 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x26, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x44, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0e, 0x41, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x22, 0x66, 0x0a, 0x08, 0x52, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x54, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, - 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, 0x70, 0x6f, - 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x63, 0x76, 0x41, - 0x64, 0x64, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x52, 0x63, 0x76, 0x41, 0x64, - 0x64, 0x72, 0x22, 0xd1, 0x01, 0x0a, 0x0e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, - 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, - 0x2f, 0x0a, 0x06, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, - 0x12, 0x44, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, - 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x22, 0xff, 0x01, 0x0a, 0x10, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x4e, + 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x48, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x74, + 0x48, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x6f, 0x6f, 0x74, + 0x48, 0x61, 0x73, 0x68, 0x12, 0x34, 0x0a, 0x15, 0x46, 0x69, 0x72, 0x73, 0x74, 0x50, 0x65, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x15, 0x46, 0x69, 0x72, 0x73, 0x74, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x34, 0x0a, 0x15, 0x4c, 0x61, + 0x73, 0x74, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x15, 0x4c, 0x61, 0x73, 0x74, 0x46, + 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x12, 0x50, 0x0a, 0x17, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x69, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x17, 0x50, 0x65, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, + 0x70, 0x6f, 0x63, 0x68, 0x12, 0x2c, 0x0a, 0x11, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x11, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, + 0x73, 0x68, 0x22, 0xfd, 0x02, 0x0a, 0x09, 0x45, 0x63, 0x6f, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x73, + 0x12, 0x20, 0x0a, 0x0b, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, + 0x6c, 0x79, 0x12, 0x2c, 0x0a, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x6f, 0x44, 0x69, 0x73, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x54, + 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x6f, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x12, 0x2a, 0x0a, 0x10, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4e, 0x65, 0x77, 0x6c, 0x79, 0x4d, 0x69, + 0x6e, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x54, 0x6f, 0x74, 0x61, + 0x6c, 0x4e, 0x65, 0x77, 0x6c, 0x79, 0x4d, 0x69, 0x6e, 0x74, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x0f, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x65, + 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x4a, 0x0a, 0x20, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x73, 0x46, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x75, 0x73, 0x74, + 0x61, 0x69, 0x6e, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x20, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x46, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x75, 0x73, 0x74, 0x61, 0x69, 0x6e, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x12, 0x30, 0x0a, 0x13, 0x50, 0x72, 0x65, 0x76, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, 0x50, + 0x72, 0x65, 0x76, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x6f, 0x75, + 0x6e, 0x64, 0x12, 0x2e, 0x0a, 0x12, 0x50, 0x72, 0x65, 0x76, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, + 0x50, 0x72, 0x65, 0x76, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x48, 0x61, + 0x73, 0x68, 0x22, 0xad, 0x01, 0x0a, 0x08, 0x50, 0x65, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x75, 0x62, + 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x50, 0x75, + 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x29, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x50, 0x65, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, + 0x12, 0x20, 0x0a, 0x0b, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x22, 0xf9, 0x07, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x4c, 0x0a, 0x0c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x50, 0x6f, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x64, 0x0a, 0x14, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x2e, 0x53, 0x6d, 0x61, 0x72, 0x74, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x14, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x3d, 0x0a, 0x07, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, + 0x6f, 0x6f, 0x6c, 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x07, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x40, 0x0a, 0x08, 0x52, 0x65, 0x63, + 0x65, 0x69, 0x70, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, + 0x6f, 0x6f, 0x6c, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x08, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x12, 0x46, 0x0a, 0x0a, 0x49, + 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x26, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x2e, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, + 0x78, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x54, 0x78, 0x73, 0x12, 0x22, 0x0a, 0x04, 0x4c, 0x6f, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x6f, 0x67, 0x44, 0x61, 0x74, + 0x61, 0x52, 0x04, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x52, 0x0a, 0x24, 0x53, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x53, 0x43, 0x52, 0x53, + 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x24, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, + 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x53, 0x43, 0x52, 0x53, 0x48, 0x61, 0x73, 0x68, + 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x5e, 0x0a, 0x2a, 0x53, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, + 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, + 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x2a, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x65, 0x64, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x48, 0x61, 0x73, 0x68, + 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0x4e, 0x0a, 0x11, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x23, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x57, 0x0a, 0x19, 0x53, + 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x53, 0x43, 0x52, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x4d, 0x0a, 0x0c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x27, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x1a, 0x4b, 0x0a, 0x0d, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, + 0x63, 0x65, 0x69, 0x70, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x1a, 0x4c, 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x78, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x5d, + 0x0a, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x61, 0x73, + 0x55, 0x73, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x47, 0x61, 0x73, 0x55, + 0x73, 0x65, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x46, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x03, 0x46, 0x65, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, + 0x50, 0x61, 0x69, 0x64, 0x46, 0x65, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x49, + 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x50, 0x61, 0x69, 0x64, 0x46, 0x65, 0x65, 0x22, 0x90, 0x01, + 0x0a, 0x06, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x34, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, + 0x0a, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x22, 0xe2, 0x01, 0x0a, 0x08, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x32, 0x12, 0x32, 0x0a, + 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x72, 0x61, 0x70, 0x70, + 0x65, 0x64, 0x54, 0x78, 0x52, 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x28, 0x0a, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x65, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x28, 0x0a, 0x07, 0x52, + 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x52, 0x07, 0x52, 0x65, + 0x63, 0x65, 0x69, 0x70, 0x74, 0x12, 0x2e, 0x0a, 0x09, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x54, + 0x78, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x64, 0x54, 0x78, 0x52, 0x09, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x54, 0x78, 0x73, 0x12, 0x1e, 0x0a, 0x04, 0x4c, 0x6f, 0x67, 0x73, 0x18, 0x05, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x6f, 0x67, 0x52, + 0x04, 0x4c, 0x6f, 0x67, 0x73, 0x22, 0xe4, 0x06, 0x0a, 0x09, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, + 0x64, 0x54, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x52, 0x63, 0x76, 0x41, 0x64, 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x07, 0x52, 0x63, 0x76, 0x41, 0x64, 0x64, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x63, 0x76, + 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, + 0x52, 0x63, 0x76, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, + 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x53, 0x6e, + 0x64, 0x41, 0x64, 0x64, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x53, 0x6e, 0x64, 0x55, + 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x73, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x47, 0x61, 0x73, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x47, 0x61, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, + 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x12, 0x18, 0x0a, + 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x22, 0x0a, 0x0c, 0x47, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x47, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x41, + 0x64, 0x64, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x47, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x53, + 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, + 0x47, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, + 0x18, 0x10, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, + 0x64, 0x64, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x52, 0x65, 0x6c, 0x61, 0x79, + 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, + 0x12, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x50, + 0x72, 0x65, 0x76, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x0a, 0x50, 0x72, 0x65, 0x76, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x26, 0x0a, 0x0e, 0x4f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x18, 0x14, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x54, 0x78, 0x48, + 0x61, 0x73, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x61, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x15, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x43, 0x61, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x22, 0x0a, 0x0c, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x16, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x12, 0x24, 0x0a, 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x52, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x72, 0x69, + 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x18, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x0e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, + 0x6e, 0x64, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, + 0x14, 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, + 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x25, 0x0a, 0x06, 0x54, 0x78, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x1c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x78, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x54, 0x78, 0x54, 0x79, 0x70, 0x65, 0x22, 0xa9, 0x01, 0x0a, + 0x07, 0x53, 0x43, 0x52, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4c, 0x0a, 0x13, 0x53, 0x6d, 0x61, 0x72, + 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x6d, + 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x52, 0x13, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x28, 0x0a, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x22, 0x3f, 0x0a, 0x07, 0x4c, 0x6f, 0x67, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1c, 0x0a, 0x03, 0x4c, + 0x6f, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x4c, 0x6f, 0x67, 0x52, 0x03, 0x4c, 0x6f, 0x67, 0x22, 0x5d, 0x0a, 0x0a, 0x52, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x27, 0x0a, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x54, 0x78, 0x52, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x22, 0xa6, 0x01, 0x0a, 0x14, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x47, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x47, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x76, 0x69, + 0x64, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x47, 0x61, 0x73, 0x52, 0x65, 0x66, 0x75, 0x6e, 0x64, + 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x47, 0x61, 0x73, 0x52, 0x65, 0x66, + 0x75, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x47, 0x61, 0x73, 0x50, 0x65, 0x6e, 0x61, + 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x47, 0x61, 0x73, + 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x4d, 0x61, 0x78, + 0x47, 0x61, 0x73, 0x50, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0e, 0x4d, 0x61, 0x78, 0x47, 0x61, 0x73, 0x50, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x22, 0x4b, 0x0a, 0x13, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x61, + 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x75, 0x62, 0x6c, + 0x69, 0x63, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x50, 0x75, 0x62, + 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x92, + 0x01, 0x0a, 0x10, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x61, 0x74, + 0x69, 0x6e, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x14, 0x0a, + 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, 0x70, + 0x6f, 0x63, 0x68, 0x12, 0x4e, 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x73, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x6f, 0x72, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x14, 0x56, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x49, + 0x6e, 0x66, 0x6f, 0x22, 0xc3, 0x01, 0x0a, 0x09, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x65, + 0x72, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x52, + 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x12, + 0x2a, 0x0a, 0x10, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x57, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x70, 0x6f, + 0x73, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x57, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, + 0x68, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, + 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x58, 0x0a, 0x0a, 0x52, 0x6f, 0x75, + 0x6e, 0x64, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, + 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, + 0x44, 0x12, 0x30, 0x0a, 0x0a, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x6f, + 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x49, + 0x6e, 0x66, 0x6f, 0x22, 0x1d, 0x0a, 0x07, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x12, + 0x0a, 0x04, 0x4b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x04, 0x4b, 0x65, + 0x79, 0x73, 0x22, 0x8c, 0x02, 0x0a, 0x11, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, + 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, + 0x49, 0x44, 0x12, 0x6c, 0x0a, 0x16, 0x53, 0x68, 0x61, 0x72, 0x64, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x2e, 0x53, 0x68, 0x61, + 0x72, 0x64, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x50, 0x75, 0x62, 0x4b, + 0x65, 0x79, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x16, 0x53, 0x68, 0x61, 0x72, 0x64, 0x56, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, + 0x12, 0x14, 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0x59, 0x0a, 0x1b, 0x53, 0x68, 0x61, 0x72, 0x64, 0x56, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, + 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x22, 0xf7, 0x01, 0x0a, 0x08, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x18, + 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x12, 0x4e, 0x0a, 0x0f, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, + 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x0f, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, + 0x1a, 0x59, 0x0a, 0x14, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4a, 0x0a, 0x0e, 0x46, + 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x18, 0x0a, + 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, + 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x48, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x22, 0x21, 0x0a, 0x05, 0x53, 0x68, 0x61, 0x72, 0x64, + 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x22, 0x38, 0x0a, 0x04, 0x42, 0x6f, + 0x64, 0x79, 0x12, 0x30, 0x0a, 0x0a, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, + 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x0a, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x73, 0x22, 0xb4, 0x01, 0x0a, 0x09, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0c, 0x52, 0x08, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x28, + 0x0a, 0x0f, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x1f, + 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0b, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x22, 0xbb, 0x03, 0x0a, 0x0b, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, - 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x12, 0x18, 0x0a, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x50, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x4d, - 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x49, 0x0a, - 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x22, 0xb9, 0x01, 0x0a, 0x0d, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, - 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, - 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1c, - 0x0a, 0x09, 0x52, 0x6f, 0x79, 0x61, 0x6c, 0x74, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x09, 0x52, 0x6f, 0x79, 0x61, 0x6c, 0x74, 0x69, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, - 0x48, 0x61, 0x73, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x48, 0x61, 0x73, 0x68, - 0x12, 0x12, 0x0a, 0x04, 0x55, 0x52, 0x49, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x04, - 0x55, 0x52, 0x49, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x73, 0x22, 0x3e, 0x0a, 0x1a, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x73, 0x4e, 0x46, 0x54, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x49, 0x73, 0x4e, 0x46, 0x54, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x22, 0xa3, 0x02, 0x0a, 0x15, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1a, - 0x0a, 0x08, 0x49, 0x73, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x08, 0x49, 0x73, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x42, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4f, 0x77, 0x6e, - 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, - 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x44, 0x65, - 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x1a, - 0x0a, 0x08, 0x43, 0x6f, 0x64, 0x65, 0x48, 0x61, 0x73, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x08, 0x43, 0x6f, 0x64, 0x65, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, - 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x6f, - 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x43, 0x6f, - 0x64, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x65, 0x0a, 0x07, 0x52, 0x65, - 0x63, 0x65, 0x69, 0x70, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, - 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x53, 0x6e, - 0x64, 0x41, 0x64, 0x64, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x78, 0x48, - 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x54, 0x78, 0x48, 0x61, 0x73, - 0x68, 0x22, 0x1e, 0x0a, 0x06, 0x42, 0x69, 0x67, 0x49, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x2a, 0xa4, 0x01, 0x0a, 0x0a, 0x50, 0x65, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x11, 0x0a, 0x0d, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x65, 0x65, - 0x72, 0x55, 0x6e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, - 0x50, 0x65, 0x65, 0x72, 0x44, 0x65, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x65, 0x65, 0x72, 0x4a, 0x61, 0x69, 0x6c, - 0x65, 0x64, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x65, 0x65, 0x72, 0x55, 0x6e, 0x4a, 0x61, - 0x69, 0x6c, 0x65, 0x64, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x65, 0x65, 0x72, 0x53, 0x6c, - 0x61, 0x73, 0x68, 0x65, 0x64, 0x10, 0x06, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x65, 0x65, 0x72, 0x52, - 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x10, 0x07, 0x2a, 0x36, 0x0a, 0x06, 0x54, 0x78, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x43, 0x52, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x49, - 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, - 0x54, 0x78, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x03, - 0x2a, 0x88, 0x01, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x78, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0x1e, 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x65, 0x65, 0x72, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x10, 0x3c, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x10, 0x5a, 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x10, 0x78, 0x12, 0x11, 0x0a, 0x0c, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0x96, 0x01, 0x12, 0x11, 0x0a, 0x0c, 0x52, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0xff, 0x01, 0x42, 0x51, 0x5a, 0x4f, 0x67, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x76, - 0x65, 0x72, 0x73, 0x78, 0x2f, 0x6d, 0x78, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2d, 0x77, 0x73, - 0x2d, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2d, 0x66, 0x69, 0x72, 0x65, 0x68, - 0x6f, 0x73, 0x65, 0x2d, 0x67, 0x6f, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x68, 0x79, 0x70, 0x65, - 0x72, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x63, 0x76, 0x41, 0x64, + 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x52, 0x63, 0x76, 0x41, 0x64, 0x64, + 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x63, 0x76, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x52, 0x63, 0x76, 0x55, 0x73, 0x65, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x53, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, 0x12, 0x20, 0x0a, + 0x0b, 0x53, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x0b, 0x53, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x08, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x47, + 0x61, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x47, + 0x61, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x43, + 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x43, 0x68, + 0x61, 0x69, 0x6e, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x1c, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x47, 0x75, 0x61, 0x72, 0x64, + 0x69, 0x61, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x47, + 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x47, + 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x47, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, + 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0xf1, 0x03, 0x0a, 0x13, 0x53, 0x6d, + 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x52, 0x63, 0x76, 0x41, 0x64, 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, + 0x52, 0x63, 0x76, 0x41, 0x64, 0x64, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x6e, 0x64, 0x41, 0x64, + 0x64, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x53, 0x6e, 0x64, 0x41, 0x64, 0x64, + 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, + 0x64, 0x64, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x52, 0x65, 0x6c, 0x61, 0x79, + 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x44, + 0x61, 0x74, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x65, 0x76, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x50, 0x72, 0x65, 0x76, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, + 0x26, 0x0a, 0x0e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x54, 0x78, 0x48, 0x61, 0x73, + 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, + 0x6c, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x73, 0x4c, 0x69, + 0x6d, 0x69, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x47, 0x61, 0x73, 0x4c, 0x69, + 0x6d, 0x69, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x43, 0x61, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x08, 0x43, 0x61, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x43, + 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x0c, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, + 0x24, 0x0a, 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, + 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x4f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x45, 0x0a, + 0x03, 0x4c, 0x6f, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x24, + 0x0a, 0x06, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x22, 0x95, 0x01, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x18, + 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x49, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x49, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x6f, 0x70, 0x69, + 0x63, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x06, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x73, + 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x26, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0e, 0x41, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x22, 0x66, 0x0a, 0x08, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x54, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x14, + 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, + 0x70, 0x6f, 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x63, + 0x76, 0x41, 0x64, 0x64, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x52, 0x63, 0x76, + 0x41, 0x64, 0x64, 0x72, 0x22, 0xd1, 0x01, 0x0a, 0x0e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, + 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x73, 0x12, 0x44, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x44, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x22, 0xff, 0x01, 0x0a, 0x10, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, + 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, + 0x6e, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1e, 0x0a, + 0x0a, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x30, 0x0a, + 0x08, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, + 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x49, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, + 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x41, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x22, 0xb9, 0x01, 0x0a, 0x0d, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, + 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, + 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, + 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, + 0x12, 0x1c, 0x0a, 0x09, 0x52, 0x6f, 0x79, 0x61, 0x6c, 0x74, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x09, 0x52, 0x6f, 0x79, 0x61, 0x6c, 0x74, 0x69, 0x65, 0x73, 0x12, 0x12, + 0x0a, 0x04, 0x48, 0x61, 0x73, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x48, 0x61, + 0x73, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x52, 0x49, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0c, + 0x52, 0x04, 0x55, 0x52, 0x49, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x22, 0x3e, 0x0a, 0x1a, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x73, 0x4e, 0x46, 0x54, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x49, 0x73, 0x4e, 0x46, 0x54, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x22, 0xa3, 0x02, 0x0a, 0x15, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x08, 0x49, 0x73, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, + 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4f, + 0x77, 0x6e, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x43, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, + 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, + 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, + 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x64, 0x65, 0x48, 0x61, 0x73, 0x68, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x08, 0x43, 0x6f, 0x64, 0x65, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1a, 0x0a, 0x08, + 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, + 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x6f, 0x64, 0x65, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, + 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x65, 0x0a, 0x07, + 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x53, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, + 0x53, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x54, + 0x78, 0x48, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x54, 0x78, 0x48, + 0x61, 0x73, 0x68, 0x22, 0x1e, 0x0a, 0x06, 0x42, 0x69, 0x67, 0x49, 0x6e, 0x74, 0x12, 0x14, 0x0a, + 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x2a, 0xa4, 0x01, 0x0a, 0x0a, 0x50, 0x65, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x11, 0x0a, 0x0d, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x50, + 0x65, 0x65, 0x72, 0x55, 0x6e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x10, 0x02, 0x12, 0x16, + 0x0a, 0x12, 0x50, 0x65, 0x65, 0x72, 0x44, 0x65, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x65, 0x65, 0x72, 0x4a, 0x61, + 0x69, 0x6c, 0x65, 0x64, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x65, 0x65, 0x72, 0x55, 0x6e, + 0x4a, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x65, 0x65, 0x72, + 0x53, 0x6c, 0x61, 0x73, 0x68, 0x65, 0x64, 0x10, 0x06, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x65, 0x65, + 0x72, 0x52, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x10, 0x07, 0x2a, 0x36, 0x0a, 0x06, 0x54, 0x78, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x43, 0x52, 0x10, 0x00, 0x12, 0x0b, 0x0a, + 0x07, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x55, 0x73, + 0x65, 0x72, 0x54, 0x78, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x10, 0x03, 0x2a, 0x88, 0x01, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x54, + 0x78, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0x1e, 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x65, 0x65, 0x72, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0x3c, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x6d, 0x61, 0x72, 0x74, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x10, 0x5a, 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0x78, 0x12, 0x11, 0x0a, 0x0c, 0x52, 0x65, 0x63, 0x65, 0x69, + 0x70, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0x96, 0x01, 0x12, 0x11, 0x0a, 0x0c, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0xff, 0x01, 0x42, 0x51, 0x5a, + 0x4f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x76, 0x65, 0x72, 0x73, 0x78, 0x2f, 0x6d, 0x78, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2d, + 0x77, 0x73, 0x2d, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2d, 0x66, 0x69, 0x72, + 0x65, 0x68, 0x6f, 0x73, 0x65, 0x2d, 0x67, 0x6f, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x68, 0x79, + 0x70, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -5674,7 +5674,7 @@ var file_data_hyperOutportBlocks_hyperOutportBlock_proto_goTypes = []interface{} var file_data_hyperOutportBlocks_hyperOutportBlock_proto_depIdxs = []int32{ 5, // 0: proto.HyperOutportBlock.MetaOutportBlock:type_name -> proto.MetaOutportBlock 4, // 1: proto.HyperOutportBlock.NotarizedHeadersOutportData:type_name -> proto.NotarizedHeaderOutportData - 6, // 2: proto.NotarizedHeaderOutportData.OutportBlock:type_name -> proto.ShardOutportBlock + 7, // 2: proto.NotarizedHeaderOutportData.OutportBlock:type_name -> proto.ShardOutportBlockV2 14, // 3: proto.MetaOutportBlock.BlockData:type_name -> proto.MetaBlockData 20, // 4: proto.MetaOutportBlock.TransactionPool:type_name -> proto.TransactionPool 28, // 5: proto.MetaOutportBlock.HeaderGasConsumption:type_name -> proto.HeaderGasConsumption diff --git a/data/hyperOutportBlocks/hyperOutportBlock.proto b/data/hyperOutportBlocks/hyperOutportBlock.proto index 1678668..6669d24 100644 --- a/data/hyperOutportBlocks/hyperOutportBlock.proto +++ b/data/hyperOutportBlocks/hyperOutportBlock.proto @@ -8,13 +8,13 @@ option go_package = "github.com/multiversx/mx-chain-ws-connector-firehose-go/dat // TODO: move proto definition file in a shared space. message HyperOutportBlock { - MetaOutportBlock MetaOutportBlock = 1; - repeated NotarizedHeaderOutportData NotarizedHeadersOutportData = 2; + MetaOutportBlock MetaOutportBlock = 1; + repeated NotarizedHeaderOutportData NotarizedHeadersOutportData = 2; } message NotarizedHeaderOutportData { - string NotarizedHeaderHash = 1; - ShardOutportBlock OutportBlock = 2; + string NotarizedHeaderHash = 1; + ShardOutportBlockV2 OutportBlock = 2; } message MetaOutportBlock { @@ -92,10 +92,10 @@ message Header { } message MetaHeader { - uint64 Nonce = 1; - uint32 Epoch = 2; - uint64 Round = 3; - uint64 TimeStamp = 4; + uint64 Nonce = 1; + uint32 Epoch = 2; + uint64 Round = 3; + uint64 TimeStamp = 4; repeated ShardData ShardInfo = 5; repeated PeerData PeerInfo = 6; bytes Signature = 7; diff --git a/data/hyperOutportBlocks/shardOutportBlock.go b/data/hyperOutportBlocks/shardOutportBlock.go index 5ea9254..ee2a175 100644 --- a/data/hyperOutportBlocks/shardOutportBlock.go +++ b/data/hyperOutportBlocks/shardOutportBlock.go @@ -14,6 +14,7 @@ func (x *ShardOutportBlock) GetHeaderNonce() (uint64, error) { return x.BlockData.Header.Nonce, nil } +// GetHeaderNonce will return header nonce func (y *ShardOutportBlockV2) GetHeaderNonce() (uint64, error) { if y.BlockData == nil { return 0, fmt.Errorf("shard outport block: nil block data") diff --git a/process/errors.go b/process/errors.go index 4a46d70..fbb5242 100644 --- a/process/errors.go +++ b/process/errors.go @@ -67,3 +67,6 @@ var ErrNilBlockServiceContext = errors.New("nil block service context") // ErrInvalidValue signals that an invalid value was provded var ErrInvalidValue = errors.New("invalid value provided") + +// ErrNilBlockData signals than a block data is nil +var ErrNilBlockData = errors.New("nil block data") diff --git a/process/outportBlockConverter.go b/process/outportBlockConverter.go index 20af97f..d48bb96 100644 --- a/process/outportBlockConverter.go +++ b/process/outportBlockConverter.go @@ -74,7 +74,7 @@ func (o *outportBlockConverter) HandleShardOutportBlockV2(outportBlock *outport. func (o *outportBlockConverter) handleBlockData(blockData *outport.BlockData, shardOutportBlock *hyperOutportBlocks.ShardOutportBlockV2) error { if blockData == nil { - return nil + return ErrNilBlockData } var miniBlocks []*hyperOutportBlocks.MiniBlock @@ -93,16 +93,15 @@ func (o *outportBlockConverter) handleBlockData(blockData *outport.BlockData, sh IntraShardMiniBlocks: intraShardMiniBlocks, } - var err error switch blockData.HeaderType { case string(core.ShardHeaderV1): - err = o.handleHeaderV1(blockData.HeaderBytes, shardOutportBlock.BlockData) + err := o.handleHeaderV1(blockData.HeaderBytes, shardOutportBlock.BlockData) if err != nil { return fmt.Errorf("failed to handle header v1: %w", err) } case string(core.ShardHeaderV2): - err = o.handleHeaderV2(blockData.HeaderBytes, shardOutportBlock.BlockData) + err := o.handleHeaderV2(blockData.HeaderBytes, shardOutportBlock.BlockData) if err != nil { return fmt.Errorf("failed to handle header v2: %w", err) } @@ -121,9 +120,7 @@ func (o *outportBlockConverter) handleHeaderV1(headerBytes []byte, shardBlockDat return fmt.Errorf("failed to unmarshal: %w", err) } - shardBlockData.Header = &hyperOutportBlocks.Header{} - header := shardBlockData.Header - + header := &hyperOutportBlocks.Header{} header.Nonce = blockHeader.Nonce header.PrevHash = blockHeader.PrevHash header.PrevRandSeed = blockHeader.PrevRandSeed @@ -183,6 +180,8 @@ func (o *outportBlockConverter) handleHeaderV1(headerBytes []byte, shardBlockDat header.AccumulatedFees = accumulatedFees header.DeveloperFees = developerFees + shardBlockData.Header = header + return nil } @@ -193,8 +192,7 @@ func (o *outportBlockConverter) handleHeaderV2(headerBytes []byte, shardBlockDat return fmt.Errorf("failed to unmarshal: %w", err) } - shardBlockData.Header = &hyperOutportBlocks.Header{} - header := shardBlockData.Header + header := &hyperOutportBlocks.Header{} header.Nonce = blockHeader.Header.Nonce header.PrevHash = blockHeader.Header.PrevHash header.PrevRandSeed = blockHeader.Header.PrevRandSeed @@ -267,6 +265,8 @@ func (o *outportBlockConverter) handleHeaderV2(headerBytes []byte, shardBlockDat shardBlockData.ScheduledGasPenalized = blockHeader.ScheduledGasPenalized shardBlockData.ScheduledGasRefunded = blockHeader.ScheduledGasRefunded + shardBlockData.Header = header + return nil } @@ -502,53 +502,56 @@ func (o *outportBlockConverter) copyTransactions(sourceTxs map[string]*outport.T destTxInfo := &hyperOutportBlocks.TxInfoV2{} // TxInfo - Transaction - if txInfo.Transaction != nil { - value, err := o.castBigInt(txInfo.Transaction.Value) - if err != nil { - return fmt.Errorf("failed to cast transaction [%s] value: %w", txHash, err) - } + if txInfo.Transaction == nil { + continue + } + value, err := o.castBigInt(txInfo.Transaction.Value) + if err != nil { + return fmt.Errorf("failed to cast transaction [%s] value: %w", txHash, err) + } - destTxInfo.Transaction = &hyperOutportBlocks.WrappedTx{ - Nonce: txInfo.Transaction.Nonce, - Value: value, - RcvAddr: txInfo.Transaction.RcvAddr, - RcvUserName: txInfo.Transaction.RcvUserName, - SndAddr: txInfo.Transaction.SndAddr, - SndUserName: txInfo.Transaction.SndUserName, - GasPrice: txInfo.Transaction.GasPrice, - GasLimit: txInfo.Transaction.GasLimit, - Data: txInfo.Transaction.Data, - ChainID: txInfo.Transaction.ChainID, - Version: txInfo.Transaction.Version, - Signature: txInfo.Transaction.Signature, - Options: txInfo.Transaction.Options, - GuardianAddr: txInfo.Transaction.GuardianAddr, - GuardianSignature: txInfo.Transaction.GuardianSignature, - ExecutionOrder: txInfo.ExecutionOrder, - TxType: hyperOutportBlocks.TxType_UserTx, - } + destTxInfo.Transaction = &hyperOutportBlocks.WrappedTx{ + Nonce: txInfo.Transaction.Nonce, + Value: value, + RcvAddr: txInfo.Transaction.RcvAddr, + RcvUserName: txInfo.Transaction.RcvUserName, + SndAddr: txInfo.Transaction.SndAddr, + SndUserName: txInfo.Transaction.SndUserName, + GasPrice: txInfo.Transaction.GasPrice, + GasLimit: txInfo.Transaction.GasLimit, + Data: txInfo.Transaction.Data, + ChainID: txInfo.Transaction.ChainID, + Version: txInfo.Transaction.Version, + Signature: txInfo.Transaction.Signature, + Options: txInfo.Transaction.Options, + GuardianAddr: txInfo.Transaction.GuardianAddr, + GuardianSignature: txInfo.Transaction.GuardianSignature, + ExecutionOrder: txInfo.ExecutionOrder, + TxType: hyperOutportBlocks.TxType_UserTx, + } - // TxInfo - FeeInfo - if txInfo.FeeInfo != nil { - fee, err := o.castBigInt(txInfo.FeeInfo.Fee) - if err != nil { - return fmt.Errorf("failed to cast transaction [%s] fee: %w", txHash, err) - } + // TxInfo - FeeInfo + if txInfo.FeeInfo == nil { + continue + } - initialPaidFee, err := o.castBigInt(txInfo.FeeInfo.InitialPaidFee) - if err != nil { - return fmt.Errorf("failed to cast transaction [%s] initial paid fee: %w", txHash, err) - } + fee, err := o.castBigInt(txInfo.FeeInfo.Fee) + if err != nil { + return fmt.Errorf("failed to cast transaction [%s] fee: %w", txHash, err) + } - destTxInfo.FeeInfo = &hyperOutportBlocks.FeeInfo{ - GasUsed: txInfo.FeeInfo.GasUsed, - Fee: fee, - InitialPaidFee: initialPaidFee, - } - } + initialPaidFee, err := o.castBigInt(txInfo.FeeInfo.InitialPaidFee) + if err != nil { + return fmt.Errorf("failed to cast transaction [%s] initial paid fee: %w", txHash, err) + } - transactionPool.Transactions[txHash] = destTxInfo + destTxInfo.FeeInfo = &hyperOutportBlocks.FeeInfo{ + GasUsed: txInfo.FeeInfo.GasUsed, + Fee: fee, + InitialPaidFee: initialPaidFee, } + + transactionPool.Transactions[txHash] = destTxInfo } return nil diff --git a/process/outportBlockConverter_test.go b/process/outportBlockConverter_test.go index f7aba8d..e8e709b 100644 --- a/process/outportBlockConverter_test.go +++ b/process/outportBlockConverter_test.go @@ -68,9 +68,7 @@ func TestOutportBlockConverter(t *testing.T) { require.Nil(t, err) shardOutportBlock, err := converter.HandleShardOutportBlockV2(ob) - if err != nil { - panic(err) - } + require.Nil(t, err) header := &block.HeaderV2{} err = gogoProtoMarshaller.Unmarshal(header, ob.BlockData.HeaderBytes) @@ -95,9 +93,7 @@ func TestOutportBlockConverter_HandleShardOutportBlockV2(t *testing.T) { require.Nil(t, err) shardOutportBlock, err := converter.HandleShardOutportBlockV2(ob) - if err != nil { - panic(err) - } + require.Nil(t, err) header := &block.Header{} err = gogoProtoMarshaller.Unmarshal(header, ob.BlockData.HeaderBytes) @@ -107,16 +103,6 @@ func TestOutportBlockConverter_HandleShardOutportBlockV2(t *testing.T) { checkFieldsV2(t, ob, shardOutportBlock) checkBlockData(t, ob.BlockData, shardOutportBlock.BlockData) - j, err := json.Marshal(shardOutportBlock) - if err != nil { - panic(err) - } - - err = os.WriteFile("./shardoutport.json", j, 0655) - if err != nil { - panic(err) - } - jsonBytes, err = os.ReadFile(outportBlockHeaderV2JSONPath) require.NoError(t, err, "failed to read test data") @@ -128,9 +114,7 @@ func TestOutportBlockConverter_HandleShardOutportBlockV2(t *testing.T) { require.Nil(t, err) shardOutportBlock, err = converter.HandleShardOutportBlockV2(ob) - if err != nil { - panic(err) - } + require.Nil(t, err) headerV2 := &block.HeaderV2{} err = gogoProtoMarshaller.Unmarshal(headerV2, ob.BlockData.HeaderBytes) @@ -139,17 +123,6 @@ func TestOutportBlockConverter_HandleShardOutportBlockV2(t *testing.T) { checkHeaderV2ShardV2(t, headerV2, shardOutportBlock) checkFieldsV2(t, ob, shardOutportBlock) checkBlockData(t, ob.BlockData, shardOutportBlock.BlockData) - - j, err = json.Marshal(shardOutportBlock) - if err != nil { - panic(err) - } - - err = os.WriteFile("./shardoutpor2.json", j, 0655) - if err != nil { - panic(err) - } - } func TestHeaderConverter(t *testing.T) { From 2126233238d7bad8e6291c8dff764a53f34a82ce Mon Sep 17 00:00:00 2001 From: Alexander Cristurean Date: Tue, 6 Aug 2024 17:25:22 +0300 Subject: [PATCH 10/12] revert to v1. --- .../hyperOutportBlock.pb.go | 1736 ++++++++--------- .../hyperOutportBlock.proto | 2 +- 2 files changed, 869 insertions(+), 869 deletions(-) diff --git a/data/hyperOutportBlocks/hyperOutportBlock.pb.go b/data/hyperOutportBlocks/hyperOutportBlock.pb.go index d8768bc..4f50d55 100644 --- a/data/hyperOutportBlocks/hyperOutportBlock.pb.go +++ b/data/hyperOutportBlocks/hyperOutportBlock.pb.go @@ -258,8 +258,8 @@ type NotarizedHeaderOutportData struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - NotarizedHeaderHash string `protobuf:"bytes,1,opt,name=NotarizedHeaderHash,proto3" json:"NotarizedHeaderHash,omitempty"` - OutportBlock *ShardOutportBlockV2 `protobuf:"bytes,2,opt,name=OutportBlock,proto3" json:"OutportBlock,omitempty"` + NotarizedHeaderHash string `protobuf:"bytes,1,opt,name=NotarizedHeaderHash,proto3" json:"NotarizedHeaderHash,omitempty"` + OutportBlock *ShardOutportBlock `protobuf:"bytes,2,opt,name=OutportBlock,proto3" json:"OutportBlock,omitempty"` } func (x *NotarizedHeaderOutportData) Reset() { @@ -301,7 +301,7 @@ func (x *NotarizedHeaderOutportData) GetNotarizedHeaderHash() string { return "" } -func (x *NotarizedHeaderOutportData) GetOutportBlock() *ShardOutportBlockV2 { +func (x *NotarizedHeaderOutportData) GetOutportBlock() *ShardOutportBlock { if x != nil { return x.OutportBlock } @@ -4679,335 +4679,299 @@ var file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDesc = []byte{ 0x2e, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x1b, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x4f, 0x75, 0x74, - 0x70, 0x6f, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x22, 0x8e, 0x01, 0x0a, 0x1a, 0x4e, 0x6f, 0x74, + 0x70, 0x6f, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x22, 0x8c, 0x01, 0x0a, 0x1a, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x30, 0x0a, 0x13, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3e, 0x0a, 0x0c, 0x4f, 0x75, 0x74, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3c, 0x0a, 0x0c, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, - 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x32, 0x52, 0x0c, 0x4f, 0x75, 0x74, - 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x9c, 0x05, 0x0a, 0x10, 0x4d, 0x65, - 0x74, 0x61, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x18, - 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x32, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x40, 0x0a, 0x0f, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x0f, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x4f, - 0x0a, 0x14, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, - 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, - 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x56, 0x0a, 0x0f, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x4e, 0x6f, 0x74, 0x61, 0x72, - 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, - 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x16, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, - 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, - 0x26, 0x0a, 0x0e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x53, 0x68, 0x61, 0x72, 0x64, - 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, - 0x66, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x65, - 0x72, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x04, 0x52, - 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x12, - 0x36, 0x0a, 0x16, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, + 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x0c, 0x4f, 0x75, 0x74, 0x70, 0x6f, + 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x9c, 0x05, 0x0a, 0x10, 0x4d, 0x65, 0x74, 0x61, + 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x18, 0x0a, 0x07, + 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, + 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x32, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, + 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x52, + 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x40, 0x0a, 0x0f, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x0f, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x4f, 0x0a, 0x14, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, + 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, + 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x56, 0x0a, + 0x0f, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, + 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, + 0x65, 0x74, 0x61, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, + 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, + 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, + 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x16, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x26, 0x0a, + 0x0e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x53, + 0x68, 0x61, 0x72, 0x64, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0e, 0x53, + 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x48, 0x69, 0x67, 0x68, 0x65, - 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x15, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, - 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x1a, 0x59, 0x0a, - 0x14, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, - 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x9a, 0x05, 0x0a, 0x11, 0x53, 0x68, 0x61, - 0x72, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x18, - 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x2e, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x40, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x4f, 0x0a, 0x14, 0x48, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, - 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x57, 0x0a, 0x0f, 0x41, - 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x05, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x68, 0x61, - 0x72, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x41, + 0x63, 0x6b, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x48, + 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, + 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x15, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, + 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x1a, 0x59, 0x0a, 0x14, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x0f, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, - 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x06, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x16, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x53, 0x68, - 0x61, 0x72, 0x64, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, 0x49, - 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0e, 0x53, 0x69, - 0x67, 0x6e, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x16, - 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x48, 0x69, - 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, - 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, - 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x15, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, - 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x1a, 0x59, 0x0a, 0x14, 0x41, 0x6c, - 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x6c, 0x74, 0x65, - 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xa0, 0x05, 0x0a, 0x13, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4f, - 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x32, 0x12, 0x18, 0x0a, - 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, - 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x2e, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x42, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x56, 0x32, 0x52, 0x0f, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x4f, 0x0a, 0x14, 0x48, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x6c, 0x74, + 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x9a, 0x05, 0x0a, 0x11, 0x53, 0x68, 0x61, 0x72, 0x64, + 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x18, 0x0a, 0x07, + 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, + 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x2e, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, + 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x40, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x4f, 0x0a, 0x14, 0x48, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, - 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, - 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x59, 0x0a, 0x0f, - 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, - 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x68, - 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, - 0x32, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x4e, 0x6f, 0x74, 0x61, 0x72, - 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, - 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x16, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, - 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, - 0x26, 0x0a, 0x0e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x53, 0x68, 0x61, 0x72, 0x64, - 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, - 0x66, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x65, - 0x72, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x04, 0x52, - 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x12, - 0x36, 0x0a, 0x16, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, + 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x57, 0x0a, 0x0f, 0x41, 0x6c, 0x74, + 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, + 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x41, 0x6c, 0x74, + 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x0f, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x16, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x53, 0x68, 0x61, 0x72, + 0x64, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0e, 0x53, 0x69, 0x67, 0x6e, + 0x65, 0x72, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x48, 0x69, + 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, + 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x48, 0x69, 0x67, 0x68, + 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x6f, 0x6e, + 0x63, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, + 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x15, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x1a, 0x59, 0x0a, 0x14, 0x41, 0x6c, 0x74, 0x65, + 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, + 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x22, 0xa0, 0x05, 0x0a, 0x13, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, + 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x32, 0x12, 0x18, 0x0a, 0x07, 0x53, + 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, + 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x2e, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, + 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x42, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x56, 0x32, 0x52, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x4f, 0x0a, 0x14, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, + 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x59, 0x0a, 0x0f, 0x41, 0x6c, + 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x68, 0x61, 0x72, + 0x64, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x32, 0x2e, + 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, + 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, + 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x16, 0x4e, 0x6f, 0x74, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x64, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x26, 0x0a, + 0x0e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x53, + 0x68, 0x61, 0x72, 0x64, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0e, 0x53, + 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x48, 0x69, 0x67, 0x68, 0x65, - 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x15, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, - 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x1a, 0x59, 0x0a, - 0x14, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, - 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xe9, 0x02, 0x0a, 0x11, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x56, 0x32, 0x12, 0x4e, - 0x0a, 0x0c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x56, 0x32, 0x2e, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x0c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x52, - 0x0a, 0x24, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x65, 0x64, 0x53, 0x43, 0x52, 0x53, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x50, 0x72, 0x65, - 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x24, 0x53, 0x63, - 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x53, - 0x43, 0x52, 0x53, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x12, 0x5e, 0x0a, 0x2a, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, + 0x63, 0x6b, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x48, + 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, + 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x15, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, + 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x1a, 0x59, 0x0a, 0x14, 0x41, + 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x6c, 0x74, + 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xe9, 0x02, 0x0a, 0x11, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x56, 0x32, 0x12, 0x4e, 0x0a, 0x0c, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x56, 0x32, 0x2e, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x52, 0x0a, 0x24, + 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, + 0x64, 0x53, 0x43, 0x52, 0x53, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x24, 0x53, 0x63, 0x68, 0x65, + 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x53, 0x43, 0x52, + 0x53, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x12, 0x5e, 0x0a, 0x2a, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x48, + 0x61, 0x73, 0x68, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x2a, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x2a, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, - 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x54, 0x78, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x1a, 0x50, 0x0a, 0x11, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x25, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x32, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x02, 0x38, 0x01, 0x22, 0xdc, 0x06, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, - 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, - 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, - 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x50, 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, - 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x50, 0x72, 0x65, 0x76, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x50, 0x72, 0x65, 0x76, 0x52, 0x61, 0x6e, - 0x64, 0x53, 0x65, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, - 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x42, 0x69, 0x74, 0x6d, - 0x61, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, - 0x73, 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, - 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, - 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, - 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, - 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x31, 0x0a, 0x0d, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x0d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, - 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x28, 0x0a, 0x0f, - 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x53, 0x69, 0x67, - 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x42, 0x0a, 0x10, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x10, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x33, 0x0a, 0x0b, 0x50, 0x65, - 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x52, 0x0b, 0x50, 0x65, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, - 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x08, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x28, 0x0a, 0x0f, 0x4d, - 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x10, - 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0f, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, - 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x54, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x2e, 0x0a, 0x12, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4d, 0x65, 0x74, - 0x61, 0x48, 0x61, 0x73, 0x68, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, 0x45, 0x70, 0x6f, - 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x61, 0x73, 0x68, 0x12, + 0x1a, 0x50, 0x0a, 0x11, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x25, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, + 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x32, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x22, 0xdc, 0x06, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x14, 0x0a, + 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, + 0x6e, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x50, 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x12, + 0x22, 0x0a, 0x0c, 0x50, 0x72, 0x65, 0x76, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x50, 0x72, 0x65, 0x76, 0x52, 0x61, 0x6e, 0x64, 0x53, + 0x65, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x12, + 0x24, 0x0a, 0x0d, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x42, + 0x69, 0x74, 0x6d, 0x61, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, + 0x1c, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x14, 0x0a, + 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x6f, + 0x75, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x31, 0x0a, 0x0d, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0d, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, + 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x4c, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x12, 0x42, 0x0a, 0x10, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x10, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x33, 0x0a, 0x0b, 0x50, 0x65, 0x65, 0x72, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x52, 0x0b, 0x50, 0x65, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x1a, 0x0a, + 0x08, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x08, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x28, 0x0a, 0x0f, 0x4d, 0x65, 0x74, + 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x10, 0x20, 0x03, + 0x28, 0x0c, 0x52, 0x0f, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, + 0x68, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x11, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x54, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2e, 0x0a, + 0x12, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x48, + 0x61, 0x73, 0x68, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, 0x45, 0x70, 0x6f, 0x63, 0x68, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x61, 0x73, 0x68, 0x12, 0x22, 0x0a, + 0x0c, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x48, 0x61, 0x73, 0x68, 0x18, 0x13, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x48, 0x61, 0x73, + 0x68, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x18, 0x14, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x07, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x53, + 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x15, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, + 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, + 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x12, + 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, + 0x18, 0x17, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, + 0x72, 0x46, 0x65, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x22, 0xac, 0x07, 0x0a, 0x0a, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, + 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x6f, 0x75, + 0x6e, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, + 0x12, 0x2e, 0x0a, 0x09, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x68, 0x61, 0x72, + 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x2b, 0x0a, 0x08, 0x50, 0x65, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x08, 0x50, 0x65, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, + 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x4c, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, + 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x50, 0x75, + 0x62, 0x4b, 0x65, 0x79, 0x73, 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x50, + 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x50, + 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x50, 0x72, 0x65, 0x76, 0x52, + 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x50, + 0x72, 0x65, 0x76, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, + 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, + 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x74, 0x48, + 0x61, 0x73, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x6f, 0x6f, 0x74, 0x48, + 0x61, 0x73, 0x68, 0x12, 0x36, 0x0a, 0x16, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x16, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x74, + 0x61, 0x74, 0x73, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x42, 0x0a, 0x10, 0x4d, + 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, + 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x69, + 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x10, 0x4d, + 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x48, 0x61, 0x73, 0x68, 0x18, - 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x48, - 0x61, 0x73, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x18, 0x14, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x12, 0x28, 0x0a, - 0x0f, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x15, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x75, 0x6d, - 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x0f, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, - 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, - 0x65, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, - 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x64, 0x22, 0xac, 0x07, 0x0a, 0x0a, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, - 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x14, - 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, - 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, - 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, - 0x6d, 0x70, 0x12, 0x2e, 0x0a, 0x09, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x18, - 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x68, - 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x2b, 0x0a, 0x08, 0x50, 0x65, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x06, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x65, 0x65, - 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x50, 0x65, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x1c, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x28, 0x0a, - 0x0f, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x53, 0x69, - 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x75, 0x62, 0x4b, 0x65, - 0x79, 0x73, 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, - 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x12, 0x1a, 0x0a, - 0x08, 0x50, 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x08, 0x50, 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x50, 0x72, 0x65, - 0x76, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x0c, 0x50, 0x72, 0x65, 0x76, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x12, 0x1a, 0x0a, - 0x08, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x08, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6f, - 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x6f, 0x6f, - 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x36, 0x0a, 0x16, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, - 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x16, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, - 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x42, 0x0a, - 0x10, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, - 0x10, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x48, 0x61, 0x73, - 0x68, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, - 0x73, 0x48, 0x61, 0x73, 0x68, 0x12, 0x31, 0x0a, 0x0a, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, - 0x61, 0x72, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x0a, 0x45, 0x70, - 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x61, 0x69, - 0x6e, 0x49, 0x44, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x43, 0x68, 0x61, 0x69, 0x6e, - 0x49, 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x53, 0x6f, 0x66, - 0x74, 0x77, 0x61, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0f, - 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x18, - 0x15, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, - 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, - 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x49, 0x6e, 0x45, 0x70, 0x6f, 0x63, 0x68, - 0x18, 0x16, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x16, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, - 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x49, 0x6e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x24, - 0x0a, 0x0d, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x18, - 0x17, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, - 0x46, 0x65, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x44, 0x65, 0x76, 0x46, 0x65, 0x65, 0x73, 0x49, - 0x6e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x44, 0x65, - 0x76, 0x46, 0x65, 0x65, 0x73, 0x49, 0x6e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x18, 0x0a, 0x07, - 0x54, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x54, - 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x64, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x64, 0x22, 0xcc, 0x01, 0x0a, 0x0f, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x61, 0x73, 0x68, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x48, 0x61, 0x73, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x65, - 0x6e, 0x64, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, - 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, - 0x64, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x52, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x78, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x54, 0x78, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x64, 0x22, 0x46, 0x0a, 0x0a, 0x50, 0x65, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, - 0x16, 0x0a, 0x06, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x06, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x68, 0x61, 0x72, 0x64, - 0x49, 0x64, 0x44, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x53, 0x68, - 0x61, 0x72, 0x64, 0x49, 0x64, 0x44, 0x65, 0x73, 0x74, 0x22, 0xb3, 0x04, 0x0a, 0x09, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, - 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, - 0x44, 0x12, 0x25, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x48, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x48, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1f, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x42, - 0x6f, 0x64, 0x79, 0x52, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x44, 0x0a, 0x14, 0x49, 0x6e, 0x74, - 0x72, 0x61, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x14, 0x49, 0x6e, 0x74, 0x72, 0x61, - 0x53, 0x68, 0x61, 0x72, 0x64, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, - 0x2c, 0x0a, 0x11, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x74, - 0x48, 0x61, 0x73, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x53, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3a, 0x0a, - 0x18, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, - 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x18, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, - 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x53, 0x63, 0x68, - 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, - 0x65, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x16, 0x53, 0x63, 0x68, 0x65, 0x64, - 0x75, 0x6c, 0x65, 0x64, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, - 0x73, 0x12, 0x32, 0x0a, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, - 0x73, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x50, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x15, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, - 0x65, 0x64, 0x47, 0x61, 0x73, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, - 0x61, 0x73, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x53, - 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x52, 0x65, 0x66, 0x75, 0x6e, - 0x64, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, - 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x52, 0x65, 0x66, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x22, - 0xbb, 0x04, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x29, 0x0a, 0x06, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, + 0x11, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x48, + 0x61, 0x73, 0x68, 0x12, 0x31, 0x0a, 0x0a, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x0a, 0x45, 0x70, 0x6f, 0x63, + 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, + 0x44, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, + 0x12, 0x28, 0x0a, 0x0f, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x53, 0x6f, 0x66, 0x74, 0x77, + 0x61, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x41, 0x63, + 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x18, 0x15, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, + 0x46, 0x65, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, + 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x49, 0x6e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x16, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x16, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, + 0x64, 0x46, 0x65, 0x65, 0x73, 0x49, 0x6e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x24, 0x0a, 0x0d, + 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x18, 0x17, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, + 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x44, 0x65, 0x76, 0x46, 0x65, 0x65, 0x73, 0x49, 0x6e, 0x45, + 0x70, 0x6f, 0x63, 0x68, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x44, 0x65, 0x76, 0x46, + 0x65, 0x65, 0x73, 0x49, 0x6e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x78, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x54, 0x78, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, + 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, + 0x22, 0xcc, 0x01, 0x0a, 0x0f, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x04, 0x48, 0x61, 0x73, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x28, + 0x0a, 0x0f, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, + 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x78, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x54, 0x78, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x22, + 0x46, 0x0a, 0x0a, 0x50, 0x65, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x50, + 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x64, + 0x44, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x53, 0x68, 0x61, 0x72, + 0x64, 0x49, 0x64, 0x44, 0x65, 0x73, 0x74, 0x22, 0xb3, 0x04, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, + 0x25, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, @@ -5038,558 +5002,594 @@ var file_data_hyperOutportBlocks_hyperOutportBlock_proto_rawDesc = []byte{ 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x52, 0x65, 0x66, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, - 0x65, 0x64, 0x47, 0x61, 0x73, 0x52, 0x65, 0x66, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x22, 0x97, 0x04, - 0x0a, 0x09, 0x53, 0x68, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x53, - 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, - 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, - 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x4c, 0x0a, 0x15, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4d, 0x69, - 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x69, 0x6e, - 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x15, 0x53, 0x68, - 0x61, 0x72, 0x64, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x50, 0x72, 0x65, 0x76, 0x52, 0x61, 0x6e, 0x64, 0x53, - 0x65, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x50, 0x72, 0x65, 0x76, 0x52, - 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x75, 0x62, 0x4b, 0x65, - 0x79, 0x73, 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, - 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x12, 0x1c, 0x0a, - 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x54, - 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x54, 0x78, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, - 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x50, - 0x72, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x32, 0x0a, - 0x14, 0x4e, 0x75, 0x6d, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x69, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x4e, 0x75, 0x6d, - 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, - 0x46, 0x65, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x41, 0x63, 0x63, 0x75, - 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x44, - 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x0d, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, - 0x73, 0x12, 0x34, 0x0a, 0x15, 0x4c, 0x61, 0x73, 0x74, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, - 0x64, 0x4d, 0x65, 0x74, 0x61, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x15, 0x4c, 0x61, 0x73, 0x74, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x4d, 0x65, - 0x74, 0x61, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x0a, 0x45, 0x70, 0x6f, 0x63, - 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x4e, 0x0a, 0x14, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, - 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x70, 0x6f, - 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x14, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x2e, 0x0a, 0x09, 0x45, 0x63, 0x6f, 0x6e, 0x6f, 0x6d, - 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x45, 0x63, 0x6f, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x73, 0x52, 0x09, 0x45, 0x63, 0x6f, - 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x73, 0x22, 0x99, 0x03, 0x0a, 0x13, 0x45, 0x70, 0x6f, 0x63, 0x68, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, - 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x48, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x74, - 0x48, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x6f, 0x6f, 0x74, - 0x48, 0x61, 0x73, 0x68, 0x12, 0x34, 0x0a, 0x15, 0x46, 0x69, 0x72, 0x73, 0x74, 0x50, 0x65, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x15, 0x46, 0x69, 0x72, 0x73, 0x74, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x34, 0x0a, 0x15, 0x4c, 0x61, - 0x73, 0x74, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x15, 0x4c, 0x61, 0x73, 0x74, 0x46, - 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x12, 0x50, 0x0a, 0x17, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x69, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x17, 0x50, 0x65, 0x6e, 0x64, 0x69, - 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, - 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, - 0x70, 0x6f, 0x63, 0x68, 0x12, 0x2c, 0x0a, 0x11, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, - 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x11, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, - 0x73, 0x68, 0x22, 0xfd, 0x02, 0x0a, 0x09, 0x45, 0x63, 0x6f, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x73, - 0x12, 0x20, 0x0a, 0x0b, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, - 0x6c, 0x79, 0x12, 0x2c, 0x0a, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x6f, 0x44, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x54, - 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x6f, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x12, 0x2a, 0x0a, 0x10, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4e, 0x65, 0x77, 0x6c, 0x79, 0x4d, 0x69, - 0x6e, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x54, 0x6f, 0x74, 0x61, - 0x6c, 0x4e, 0x65, 0x77, 0x6c, 0x79, 0x4d, 0x69, 0x6e, 0x74, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x0f, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x65, - 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x4a, 0x0a, 0x20, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x73, 0x46, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x75, 0x73, 0x74, - 0x61, 0x69, 0x6e, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x20, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x46, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x75, 0x73, 0x74, 0x61, 0x69, 0x6e, 0x61, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, - 0x12, 0x30, 0x0a, 0x13, 0x50, 0x72, 0x65, 0x76, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, 0x50, - 0x72, 0x65, 0x76, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x6f, 0x75, - 0x6e, 0x64, 0x12, 0x2e, 0x0a, 0x12, 0x50, 0x72, 0x65, 0x76, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, - 0x50, 0x72, 0x65, 0x76, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x48, 0x61, - 0x73, 0x68, 0x22, 0xad, 0x01, 0x0a, 0x08, 0x50, 0x65, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x75, 0x62, - 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x50, 0x75, - 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x29, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x50, 0x65, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, - 0x12, 0x20, 0x0a, 0x0b, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x22, 0xf9, 0x07, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x4c, 0x0a, 0x0c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x6f, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x64, 0x0a, 0x14, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x2e, 0x53, 0x6d, 0x61, 0x72, 0x74, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x14, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x3d, 0x0a, 0x07, 0x52, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, - 0x6f, 0x6f, 0x6c, 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x07, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x40, 0x0a, 0x08, 0x52, 0x65, 0x63, - 0x65, 0x69, 0x70, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, - 0x6f, 0x6f, 0x6c, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x08, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x12, 0x46, 0x0a, 0x0a, 0x49, - 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x26, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x2e, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, - 0x78, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x54, 0x78, 0x73, 0x12, 0x22, 0x0a, 0x04, 0x4c, 0x6f, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x6f, 0x67, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x04, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x52, 0x0a, 0x24, 0x53, 0x63, 0x68, 0x65, 0x64, - 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x53, 0x43, 0x52, 0x53, - 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x24, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, - 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x53, 0x43, 0x52, 0x53, 0x48, 0x61, 0x73, 0x68, - 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x5e, 0x0a, 0x2a, 0x53, + 0x65, 0x64, 0x47, 0x61, 0x73, 0x52, 0x65, 0x66, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x22, 0xbb, 0x04, + 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x29, 0x0a, 0x06, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x48, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, + 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x48, 0x61, 0x73, 0x68, 0x12, 0x1f, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, + 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x44, 0x0a, 0x14, 0x49, 0x6e, 0x74, 0x72, 0x61, 0x53, 0x68, + 0x61, 0x72, 0x64, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x06, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x69, 0x6e, 0x69, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x14, 0x49, 0x6e, 0x74, 0x72, 0x61, 0x53, 0x68, 0x61, 0x72, + 0x64, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x53, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3a, 0x0a, 0x18, 0x53, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, + 0x64, 0x46, 0x65, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x18, 0x53, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, + 0x64, 0x46, 0x65, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x64, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x16, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, + 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x12, 0x32, 0x0a, + 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x50, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x53, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x64, 0x12, 0x34, 0x0a, 0x15, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, + 0x73, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x15, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x50, 0x65, + 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x64, 0x47, 0x61, 0x73, 0x52, 0x65, 0x66, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, + 0x47, 0x61, 0x73, 0x52, 0x65, 0x66, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x22, 0x97, 0x04, 0x0a, 0x09, + 0x53, 0x68, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, + 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, + 0x64, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, + 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, + 0x61, 0x73, 0x68, 0x12, 0x4c, 0x0a, 0x15, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4d, 0x69, 0x6e, 0x69, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x69, 0x6e, 0x69, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x15, 0x53, 0x68, 0x61, 0x72, + 0x64, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x50, 0x72, 0x65, 0x76, 0x52, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x65, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x50, 0x72, 0x65, 0x76, 0x52, 0x61, 0x6e, + 0x64, 0x53, 0x65, 0x65, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, + 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x50, 0x75, + 0x62, 0x4b, 0x65, 0x79, 0x73, 0x42, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x53, + 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, + 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x78, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x54, 0x78, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x65, + 0x76, 0x48, 0x61, 0x73, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x50, 0x72, 0x65, + 0x76, 0x48, 0x61, 0x73, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x32, 0x0a, 0x14, 0x4e, + 0x75, 0x6d, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x4e, 0x75, 0x6d, 0x50, 0x65, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, + 0x28, 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, + 0x65, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x75, + 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x76, + 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x0d, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x12, + 0x34, 0x0a, 0x15, 0x4c, 0x61, 0x73, 0x74, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x4d, + 0x65, 0x74, 0x61, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, + 0x4c, 0x61, 0x73, 0x74, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x61, + 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x0a, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x12, 0x4e, 0x0a, 0x14, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, + 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x14, + 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x73, 0x12, 0x2e, 0x0a, 0x09, 0x45, 0x63, 0x6f, 0x6e, 0x6f, 0x6d, 0x69, 0x63, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x45, 0x63, 0x6f, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x73, 0x52, 0x09, 0x45, 0x63, 0x6f, 0x6e, 0x6f, + 0x6d, 0x69, 0x63, 0x73, 0x22, 0x99, 0x03, 0x0a, 0x13, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, + 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, + 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x48, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x48, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, + 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, + 0x73, 0x68, 0x12, 0x34, 0x0a, 0x15, 0x46, 0x69, 0x72, 0x73, 0x74, 0x50, 0x65, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x15, 0x46, 0x69, 0x72, 0x73, 0x74, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, + 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x34, 0x0a, 0x15, 0x4c, 0x61, 0x73, 0x74, + 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x15, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, + 0x69, 0x73, 0x68, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x50, + 0x0a, 0x17, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x17, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, + 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, 0x70, 0x6f, + 0x63, 0x68, 0x12, 0x2c, 0x0a, 0x11, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x52, + 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x53, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, + 0x22, 0xfd, 0x02, 0x0a, 0x09, 0x45, 0x63, 0x6f, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x73, 0x12, 0x20, + 0x0a, 0x0b, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, + 0x12, 0x2c, 0x0a, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x6f, 0x44, 0x69, 0x73, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x54, 0x6f, 0x74, + 0x61, 0x6c, 0x54, 0x6f, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2a, + 0x0a, 0x10, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4e, 0x65, 0x77, 0x6c, 0x79, 0x4d, 0x69, 0x6e, 0x74, + 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4e, + 0x65, 0x77, 0x6c, 0x79, 0x4d, 0x69, 0x6e, 0x74, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x65, 0x72, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x4a, 0x0a, 0x20, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x46, + 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x75, 0x73, 0x74, 0x61, 0x69, + 0x6e, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x20, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x46, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x53, 0x75, 0x73, 0x74, 0x61, 0x69, 0x6e, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x12, 0x1c, 0x0a, 0x09, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x09, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x30, + 0x0a, 0x13, 0x50, 0x72, 0x65, 0x76, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, 0x50, 0x72, 0x65, + 0x76, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x6f, 0x75, 0x6e, 0x64, + 0x12, 0x2e, 0x0a, 0x12, 0x50, 0x72, 0x65, 0x76, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, 0x50, 0x72, + 0x65, 0x76, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x48, 0x61, 0x73, 0x68, + 0x22, 0xad, 0x01, 0x0a, 0x08, 0x50, 0x65, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, + 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x75, 0x62, 0x6c, 0x69, + 0x63, 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x50, 0x75, 0x62, 0x6c, + 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x29, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x65, + 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x20, + 0x0a, 0x0b, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x22, 0xf9, 0x07, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x4c, 0x0a, 0x0c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, + 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x64, 0x0a, 0x14, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x30, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x2e, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x14, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x3d, 0x0a, 0x07, 0x52, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, + 0x6c, 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x40, 0x0a, 0x08, 0x52, 0x65, 0x63, 0x65, 0x69, + 0x70, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, + 0x6c, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x08, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x12, 0x46, 0x0a, 0x0a, 0x49, 0x6e, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x2e, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, + 0x73, 0x12, 0x22, 0x0a, 0x04, 0x4c, 0x6f, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x6f, 0x67, 0x44, 0x61, 0x74, 0x61, 0x52, + 0x04, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x52, 0x0a, 0x24, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x53, 0x43, 0x52, 0x53, 0x48, 0x61, + 0x73, 0x68, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x07, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x24, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x53, 0x43, 0x52, 0x53, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, + 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x5e, 0x0a, 0x2a, 0x53, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x49, 0x6e, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x50, 0x72, + 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x2a, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, - 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x2a, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x65, 0x64, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x48, 0x61, 0x73, 0x68, - 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0x4e, 0x0a, 0x11, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x23, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x57, 0x0a, 0x19, 0x53, - 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x53, 0x43, 0x52, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x4d, 0x0a, 0x0c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x27, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x1a, 0x4b, 0x0a, 0x0d, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, - 0x63, 0x65, 0x69, 0x70, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, - 0x1a, 0x4c, 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x78, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x5d, - 0x0a, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x61, 0x73, - 0x55, 0x73, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x47, 0x61, 0x73, 0x55, - 0x73, 0x65, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x46, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x03, 0x46, 0x65, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, - 0x50, 0x61, 0x69, 0x64, 0x46, 0x65, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x49, - 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x50, 0x61, 0x69, 0x64, 0x46, 0x65, 0x65, 0x22, 0x90, 0x01, - 0x0a, 0x06, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x34, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, - 0x0a, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x22, 0xe2, 0x01, 0x0a, 0x08, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x32, 0x12, 0x32, 0x0a, - 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x72, 0x61, 0x70, 0x70, - 0x65, 0x64, 0x54, 0x78, 0x52, 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x28, 0x0a, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x65, 0x65, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x28, 0x0a, 0x07, 0x52, - 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x52, 0x07, 0x52, 0x65, - 0x63, 0x65, 0x69, 0x70, 0x74, 0x12, 0x2e, 0x0a, 0x09, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x54, - 0x78, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x64, 0x54, 0x78, 0x52, 0x09, 0x52, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x54, 0x78, 0x73, 0x12, 0x1e, 0x0a, 0x04, 0x4c, 0x6f, 0x67, 0x73, 0x18, 0x05, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x6f, 0x67, 0x52, - 0x04, 0x4c, 0x6f, 0x67, 0x73, 0x22, 0xe4, 0x06, 0x0a, 0x09, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, - 0x64, 0x54, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x52, 0x63, 0x76, 0x41, 0x64, 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x07, 0x52, 0x63, 0x76, 0x41, 0x64, 0x64, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x63, 0x76, - 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, - 0x52, 0x63, 0x76, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, - 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x53, 0x6e, - 0x64, 0x41, 0x64, 0x64, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x53, 0x6e, 0x64, 0x55, - 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x73, 0x50, 0x72, - 0x69, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x47, 0x61, 0x73, 0x50, 0x72, - 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x47, 0x61, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, - 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x12, 0x18, 0x0a, - 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, - 0x74, 0x75, 0x72, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, - 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, - 0x22, 0x0a, 0x0c, 0x47, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x18, - 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x47, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x41, - 0x64, 0x64, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x47, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x53, - 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, - 0x47, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, - 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, - 0x18, 0x10, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, - 0x64, 0x64, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x52, 0x65, 0x6c, 0x61, 0x79, - 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, - 0x12, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x50, - 0x72, 0x65, 0x76, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x0a, 0x50, 0x72, 0x65, 0x76, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x26, 0x0a, 0x0e, 0x4f, - 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x18, 0x14, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x54, 0x78, 0x48, - 0x61, 0x73, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x61, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, - 0x15, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x43, 0x61, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x22, 0x0a, 0x0c, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x16, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x12, 0x24, 0x0a, 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x52, 0x65, 0x74, 0x75, - 0x72, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x72, 0x69, - 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x18, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x0e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, - 0x6e, 0x64, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, - 0x14, 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, - 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x25, 0x0a, 0x06, 0x54, 0x78, 0x54, 0x79, 0x70, 0x65, 0x18, - 0x1c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x78, - 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x54, 0x78, 0x54, 0x79, 0x70, 0x65, 0x22, 0xa9, 0x01, 0x0a, - 0x07, 0x53, 0x43, 0x52, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4c, 0x0a, 0x13, 0x53, 0x6d, 0x61, 0x72, - 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x6d, - 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x52, 0x13, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x28, 0x0a, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x22, 0x3f, 0x0a, 0x07, 0x4c, 0x6f, 0x67, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1c, 0x0a, 0x03, 0x4c, - 0x6f, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x4c, 0x6f, 0x67, 0x52, 0x03, 0x4c, 0x6f, 0x67, 0x22, 0x5d, 0x0a, 0x0a, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x27, 0x0a, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x54, 0x78, 0x52, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x22, 0xa6, 0x01, 0x0a, 0x14, 0x48, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x47, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x47, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x47, 0x61, 0x73, 0x52, 0x65, 0x66, 0x75, 0x6e, 0x64, - 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x47, 0x61, 0x73, 0x52, 0x65, 0x66, - 0x75, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x47, 0x61, 0x73, 0x50, 0x65, 0x6e, 0x61, - 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x47, 0x61, 0x73, - 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x4d, 0x61, 0x78, - 0x47, 0x61, 0x73, 0x50, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0e, 0x4d, 0x61, 0x78, 0x47, 0x61, 0x73, 0x50, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x22, 0x4b, 0x0a, 0x13, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x61, - 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x75, 0x62, 0x6c, - 0x69, 0x63, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x50, 0x75, 0x62, - 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x92, - 0x01, 0x0a, 0x10, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x61, 0x74, - 0x69, 0x6e, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x14, 0x0a, - 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, 0x70, - 0x6f, 0x63, 0x68, 0x12, 0x4e, 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, - 0x73, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x14, 0x56, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x49, - 0x6e, 0x66, 0x6f, 0x22, 0xc3, 0x01, 0x0a, 0x09, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x65, - 0x72, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x52, - 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x12, - 0x2a, 0x0a, 0x10, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x57, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x70, 0x6f, - 0x73, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x57, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, - 0x68, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, - 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x58, 0x0a, 0x0a, 0x52, 0x6f, 0x75, - 0x6e, 0x64, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, - 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, - 0x44, 0x12, 0x30, 0x0a, 0x0a, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x6f, - 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x49, - 0x6e, 0x66, 0x6f, 0x22, 0x1d, 0x0a, 0x07, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x12, - 0x0a, 0x04, 0x4b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x04, 0x4b, 0x65, - 0x79, 0x73, 0x22, 0x8c, 0x02, 0x0a, 0x11, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, - 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, - 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, - 0x49, 0x44, 0x12, 0x6c, 0x0a, 0x16, 0x53, 0x68, 0x61, 0x72, 0x64, 0x56, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x2e, 0x53, 0x68, 0x61, - 0x72, 0x64, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x50, 0x75, 0x62, 0x4b, - 0x65, 0x79, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x16, 0x53, 0x68, 0x61, 0x72, 0x64, 0x56, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, - 0x12, 0x14, 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0x59, 0x0a, 0x1b, 0x53, 0x68, 0x61, 0x72, 0x64, 0x56, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, - 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x22, 0xf7, 0x01, 0x0a, 0x08, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x18, - 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x12, 0x4e, 0x0a, 0x0f, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, - 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x0f, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, - 0x1a, 0x59, 0x0a, 0x14, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4a, 0x0a, 0x0e, 0x46, - 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x18, 0x0a, - 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, - 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x48, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x48, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x22, 0x21, 0x0a, 0x05, 0x53, 0x68, 0x61, 0x72, 0x64, - 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x22, 0x38, 0x0a, 0x04, 0x42, 0x6f, - 0x64, 0x79, 0x12, 0x30, 0x0a, 0x0a, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, - 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x0a, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x73, 0x22, 0xb4, 0x01, 0x0a, 0x09, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0c, 0x52, 0x08, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x28, - 0x0a, 0x0f, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, - 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x65, 0x6e, 0x64, - 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x1f, - 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0b, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x22, 0xbb, 0x03, 0x0a, 0x0b, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x4e, - 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x63, 0x76, 0x41, 0x64, - 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x52, 0x63, 0x76, 0x41, 0x64, 0x64, - 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x63, 0x76, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x52, 0x63, 0x76, 0x55, 0x73, 0x65, 0x72, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x53, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, 0x12, 0x20, 0x0a, - 0x0b, 0x53, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x0b, 0x53, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x08, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x47, - 0x61, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x47, - 0x61, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x43, - 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x43, 0x68, - 0x61, 0x69, 0x6e, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, - 0x1c, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, - 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x47, 0x75, 0x61, 0x72, 0x64, - 0x69, 0x61, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x47, - 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x47, - 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, - 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x47, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, - 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0xf1, 0x03, 0x0a, 0x13, 0x53, 0x6d, - 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x50, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0x4e, 0x0a, 0x11, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x23, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x57, 0x0a, 0x19, 0x53, 0x6d, 0x61, + 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x53, 0x43, 0x52, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x1a, 0x4d, 0x0a, 0x0c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x27, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x1a, 0x4b, 0x0a, 0x0d, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x63, 0x65, + 0x69, 0x70, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x4c, + 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x78, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x78, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x5d, 0x0a, 0x07, + 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x61, 0x73, 0x55, 0x73, + 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x47, 0x61, 0x73, 0x55, 0x73, 0x65, + 0x64, 0x12, 0x10, 0x0a, 0x03, 0x46, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, + 0x46, 0x65, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x50, 0x61, + 0x69, 0x64, 0x46, 0x65, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x49, 0x6e, 0x69, + 0x74, 0x69, 0x61, 0x6c, 0x50, 0x61, 0x69, 0x64, 0x46, 0x65, 0x65, 0x22, 0x90, 0x01, 0x0a, 0x06, + 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x34, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x07, + 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x46, + 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, + 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x22, 0xe2, + 0x01, 0x0a, 0x08, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x32, 0x12, 0x32, 0x0a, 0x0b, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x64, + 0x54, 0x78, 0x52, 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x28, 0x0a, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x28, 0x0a, 0x07, 0x52, 0x65, 0x63, + 0x65, 0x69, 0x70, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x52, 0x07, 0x52, 0x65, 0x63, 0x65, + 0x69, 0x70, 0x74, 0x12, 0x2e, 0x0a, 0x09, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x54, 0x78, 0x73, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, + 0x72, 0x61, 0x70, 0x70, 0x65, 0x64, 0x54, 0x78, 0x52, 0x09, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x54, 0x78, 0x73, 0x12, 0x1e, 0x0a, 0x04, 0x4c, 0x6f, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x0a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x6f, 0x67, 0x52, 0x04, 0x4c, + 0x6f, 0x67, 0x73, 0x22, 0xe4, 0x06, 0x0a, 0x09, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x64, 0x54, + 0x78, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x63, 0x76, 0x41, 0x64, 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, - 0x52, 0x63, 0x76, 0x41, 0x64, 0x64, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x6e, 0x64, 0x41, 0x64, - 0x64, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x53, 0x6e, 0x64, 0x41, 0x64, 0x64, - 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, - 0x64, 0x64, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x52, 0x65, 0x6c, 0x61, 0x79, - 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x44, - 0x61, 0x74, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x65, 0x76, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x50, 0x72, 0x65, 0x76, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, - 0x26, 0x0a, 0x0e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x54, 0x78, 0x48, 0x61, 0x73, - 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, - 0x6c, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x73, 0x4c, 0x69, - 0x6d, 0x69, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x47, 0x61, 0x73, 0x4c, 0x69, - 0x6d, 0x69, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, - 0x1a, 0x0a, 0x08, 0x43, 0x61, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x08, 0x43, 0x61, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x43, - 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x0c, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, - 0x24, 0x0a, 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, - 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x4f, - 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x45, 0x0a, - 0x03, 0x4c, 0x6f, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x24, - 0x0a, 0x06, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x73, 0x22, 0x95, 0x01, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x18, - 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x49, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x6f, 0x70, 0x69, - 0x63, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x06, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x73, - 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x26, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0e, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x22, 0x66, 0x0a, 0x08, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x54, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x14, - 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, - 0x70, 0x6f, 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x63, - 0x76, 0x41, 0x64, 0x64, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x52, 0x63, 0x76, - 0x41, 0x64, 0x64, 0x72, 0x22, 0xd1, 0x01, 0x0a, 0x0e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x73, 0x12, 0x44, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x44, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x22, 0xff, 0x01, 0x0a, 0x10, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, - 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, - 0x6e, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1e, 0x0a, - 0x0a, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x30, 0x0a, - 0x08, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, - 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x49, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, - 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x41, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x22, 0xb9, 0x01, 0x0a, 0x0d, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, - 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, - 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, - 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, - 0x12, 0x1c, 0x0a, 0x09, 0x52, 0x6f, 0x79, 0x61, 0x6c, 0x74, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x09, 0x52, 0x6f, 0x79, 0x61, 0x6c, 0x74, 0x69, 0x65, 0x73, 0x12, 0x12, - 0x0a, 0x04, 0x48, 0x61, 0x73, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x48, 0x61, - 0x73, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x52, 0x49, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0c, - 0x52, 0x04, 0x55, 0x52, 0x49, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x22, 0x3e, 0x0a, 0x1a, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x73, 0x4e, 0x46, 0x54, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x49, 0x73, 0x4e, 0x46, 0x54, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x22, 0xa3, 0x02, 0x0a, 0x15, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x08, 0x49, 0x73, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, - 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4f, - 0x77, 0x6e, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x43, 0x75, 0x72, 0x72, - 0x65, 0x6e, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, - 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, - 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, - 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x64, 0x65, 0x48, 0x61, 0x73, 0x68, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x08, 0x43, 0x6f, 0x64, 0x65, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1a, 0x0a, 0x08, - 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, - 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x6f, 0x64, 0x65, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, - 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x65, 0x0a, 0x07, - 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x53, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, - 0x53, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x54, - 0x78, 0x48, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x54, 0x78, 0x48, - 0x61, 0x73, 0x68, 0x22, 0x1e, 0x0a, 0x06, 0x42, 0x69, 0x67, 0x49, 0x6e, 0x74, 0x12, 0x14, 0x0a, - 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x62, 0x79, - 0x74, 0x65, 0x73, 0x2a, 0xa4, 0x01, 0x0a, 0x0a, 0x50, 0x65, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x11, 0x0a, 0x0d, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x50, - 0x65, 0x65, 0x72, 0x55, 0x6e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x10, 0x02, 0x12, 0x16, - 0x0a, 0x12, 0x50, 0x65, 0x65, 0x72, 0x44, 0x65, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x65, 0x65, 0x72, 0x4a, 0x61, - 0x69, 0x6c, 0x65, 0x64, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x65, 0x65, 0x72, 0x55, 0x6e, - 0x4a, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x65, 0x65, 0x72, - 0x53, 0x6c, 0x61, 0x73, 0x68, 0x65, 0x64, 0x10, 0x06, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x65, 0x65, - 0x72, 0x52, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x10, 0x07, 0x2a, 0x36, 0x0a, 0x06, 0x54, 0x78, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x43, 0x52, 0x10, 0x00, 0x12, 0x0b, 0x0a, - 0x07, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x55, 0x73, - 0x65, 0x72, 0x54, 0x78, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x10, 0x03, 0x2a, 0x88, 0x01, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x54, - 0x78, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0x1e, 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x65, 0x65, 0x72, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0x3c, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x6d, 0x61, 0x72, 0x74, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x10, 0x5a, 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0x78, 0x12, 0x11, 0x0a, 0x0c, 0x52, 0x65, 0x63, 0x65, 0x69, - 0x70, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0x96, 0x01, 0x12, 0x11, 0x0a, 0x0c, 0x52, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0xff, 0x01, 0x42, 0x51, 0x5a, - 0x4f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x76, 0x65, 0x72, 0x73, 0x78, 0x2f, 0x6d, 0x78, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2d, - 0x77, 0x73, 0x2d, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2d, 0x66, 0x69, 0x72, - 0x65, 0x68, 0x6f, 0x73, 0x65, 0x2d, 0x67, 0x6f, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x68, 0x79, - 0x70, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x52, 0x63, 0x76, 0x41, 0x64, 0x64, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x63, 0x76, 0x55, 0x73, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x52, 0x63, + 0x76, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x6e, 0x64, + 0x41, 0x64, 0x64, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x53, 0x6e, 0x64, 0x41, + 0x64, 0x64, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x53, 0x6e, 0x64, 0x55, 0x73, 0x65, + 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x08, 0x47, 0x61, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, + 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x07, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x22, 0x0a, + 0x0c, 0x47, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x47, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x41, 0x64, 0x64, + 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x47, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, + 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x47, 0x75, + 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, + 0x20, 0x0a, 0x0b, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x18, 0x10, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x64, 0x64, + 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x12, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x65, + 0x76, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x50, + 0x72, 0x65, 0x76, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x72, 0x69, + 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x18, 0x14, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x0e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x54, 0x78, 0x48, 0x61, 0x73, + 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x61, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x15, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x08, 0x43, 0x61, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, + 0x0c, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x16, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x12, 0x24, 0x0a, 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x0e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, + 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, + 0x18, 0x1a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x14, 0x0a, + 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, 0x70, + 0x6f, 0x63, 0x68, 0x12, 0x25, 0x0a, 0x06, 0x54, 0x78, 0x54, 0x79, 0x70, 0x65, 0x18, 0x1c, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x78, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x06, 0x54, 0x78, 0x54, 0x79, 0x70, 0x65, 0x22, 0xa9, 0x01, 0x0a, 0x07, 0x53, + 0x43, 0x52, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4c, 0x0a, 0x13, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x6d, 0x61, 0x72, + 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, + 0x13, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x12, 0x28, 0x0a, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x65, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x46, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x26, + 0x0a, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x22, 0x3f, 0x0a, 0x07, 0x4c, 0x6f, 0x67, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1c, 0x0a, 0x03, 0x4c, 0x6f, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, + 0x6f, 0x67, 0x52, 0x03, 0x4c, 0x6f, 0x67, 0x22, 0x5d, 0x0a, 0x0a, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x27, 0x0a, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x54, 0x78, 0x52, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, + 0x0a, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x22, 0xa6, 0x01, 0x0a, 0x14, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x47, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x20, 0x0a, 0x0b, 0x47, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x47, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x47, 0x61, 0x73, 0x52, 0x65, 0x66, 0x75, 0x6e, 0x64, 0x65, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x47, 0x61, 0x73, 0x52, 0x65, 0x66, 0x75, 0x6e, + 0x64, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x47, 0x61, 0x73, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x69, + 0x7a, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x47, 0x61, 0x73, 0x50, 0x65, + 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x4d, 0x61, 0x78, 0x47, 0x61, + 0x73, 0x50, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0e, 0x4d, 0x61, 0x78, 0x47, 0x61, 0x73, 0x50, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, + 0x4b, 0x0a, 0x13, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x61, 0x74, 0x69, + 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, + 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x50, 0x75, 0x62, 0x6c, 0x69, + 0x63, 0x4b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x92, 0x01, 0x0a, + 0x10, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x61, 0x74, 0x69, 0x6e, + 0x67, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x45, + 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, 0x70, 0x6f, 0x63, + 0x68, 0x12, 0x4e, 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, + 0x61, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x14, 0x56, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, + 0x6f, 0x22, 0xc3, 0x01, 0x0a, 0x09, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, + 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0e, 0x53, + 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x12, 0x2a, 0x0a, + 0x10, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x57, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x57, 0x61, + 0x73, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, + 0x72, 0x64, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, + 0x64, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x58, 0x0a, 0x0a, 0x52, 0x6f, 0x75, 0x6e, 0x64, + 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, + 0x30, 0x0a, 0x0a, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x6f, 0x75, 0x6e, + 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x49, 0x6e, 0x66, + 0x6f, 0x22, 0x1d, 0x0a, 0x07, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x12, 0x0a, 0x04, + 0x4b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x04, 0x4b, 0x65, 0x79, 0x73, + 0x22, 0x8c, 0x02, 0x0a, 0x11, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x50, + 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, + 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, + 0x12, 0x6c, 0x0a, 0x16, 0x53, 0x68, 0x61, 0x72, 0x64, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x6f, 0x72, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x34, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x6f, 0x72, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x16, 0x53, 0x68, 0x61, 0x72, 0x64, 0x56, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x14, + 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, + 0x70, 0x6f, 0x63, 0x68, 0x1a, 0x59, 0x0a, 0x1b, 0x53, 0x68, 0x61, 0x72, 0x64, 0x56, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x75, 0x62, + 0x4b, 0x65, 0x79, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, + 0xf7, 0x01, 0x0a, 0x08, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, + 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, + 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x4e, + 0x0a, 0x0f, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x41, + 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x1a, 0x59, + 0x0a, 0x14, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4a, 0x0a, 0x0e, 0x46, 0x69, 0x6e, + 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x53, + 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x53, 0x68, + 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, + 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x48, 0x61, 0x73, 0x68, 0x22, 0x21, 0x0a, 0x05, 0x53, 0x68, 0x61, 0x72, 0x64, 0x12, 0x18, + 0x0a, 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x22, 0x38, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, + 0x12, 0x30, 0x0a, 0x0a, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x69, 0x6e, + 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x0a, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x73, 0x22, 0xb4, 0x01, 0x0a, 0x09, 0x4d, 0x69, 0x6e, 0x69, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0c, 0x52, 0x08, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0f, + 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x53, + 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x53, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x1f, 0x0a, 0x04, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x22, 0xbb, 0x03, 0x0a, 0x0b, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x63, 0x76, 0x41, 0x64, 0x64, 0x72, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x52, 0x63, 0x76, 0x41, 0x64, 0x64, 0x72, 0x12, + 0x20, 0x0a, 0x0b, 0x52, 0x63, 0x76, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x52, 0x63, 0x76, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x07, 0x53, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x53, + 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x0b, 0x53, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x08, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x73, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x47, 0x61, 0x73, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x61, + 0x69, 0x6e, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x43, 0x68, 0x61, 0x69, + 0x6e, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, + 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x47, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, + 0x6e, 0x41, 0x64, 0x64, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x47, 0x75, 0x61, + 0x72, 0x64, 0x69, 0x61, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x47, 0x75, 0x61, + 0x72, 0x64, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0f, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x47, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x53, 0x69, + 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0xf1, 0x03, 0x0a, 0x13, 0x53, 0x6d, 0x61, 0x72, + 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, + 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, + 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, + 0x63, 0x76, 0x41, 0x64, 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x52, 0x63, + 0x76, 0x41, 0x64, 0x64, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x53, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, 0x12, + 0x20, 0x0a, 0x0b, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x64, 0x64, + 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, + 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1e, 0x0a, + 0x0a, 0x50, 0x72, 0x65, 0x76, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x0a, 0x50, 0x72, 0x65, 0x76, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x26, 0x0a, + 0x0e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x54, + 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x73, 0x4c, 0x69, 0x6d, 0x69, + 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x47, 0x61, 0x73, 0x4c, 0x69, 0x6d, 0x69, + 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x08, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x43, 0x61, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x08, 0x43, 0x61, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x6f, 0x64, + 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x0c, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x24, 0x0a, + 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0f, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x53, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x4f, 0x72, 0x69, + 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x45, 0x0a, 0x03, 0x4c, + 0x6f, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x24, 0x0a, 0x06, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x22, 0x95, 0x01, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x49, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x06, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x12, 0x12, + 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x26, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x44, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0e, 0x41, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x22, 0x66, 0x0a, 0x08, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x54, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, + 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x45, 0x70, 0x6f, + 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x63, 0x76, 0x41, + 0x64, 0x64, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x52, 0x63, 0x76, 0x41, 0x64, + 0x64, 0x72, 0x22, 0xd1, 0x01, 0x0a, 0x0e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, + 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, + 0x2f, 0x0a, 0x06, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, + 0x12, 0x44, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, + 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x22, 0xff, 0x01, 0x0a, 0x10, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x4e, + 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x12, 0x18, 0x0a, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x50, + 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x4d, + 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x49, 0x0a, + 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x22, 0xb9, 0x01, 0x0a, 0x0d, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, + 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1c, + 0x0a, 0x09, 0x52, 0x6f, 0x79, 0x61, 0x6c, 0x74, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x09, 0x52, 0x6f, 0x79, 0x61, 0x6c, 0x74, 0x69, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, + 0x48, 0x61, 0x73, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x48, 0x61, 0x73, 0x68, + 0x12, 0x12, 0x0a, 0x04, 0x55, 0x52, 0x49, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x04, + 0x55, 0x52, 0x49, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x73, 0x22, 0x3e, 0x0a, 0x1a, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x73, 0x4e, 0x46, 0x54, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x49, 0x73, 0x4e, 0x46, 0x54, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x22, 0xa3, 0x02, 0x0a, 0x15, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1a, + 0x0a, 0x08, 0x49, 0x73, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x08, 0x49, 0x73, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x42, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4f, 0x77, 0x6e, + 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x52, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x44, 0x65, + 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x1a, + 0x0a, 0x08, 0x43, 0x6f, 0x64, 0x65, 0x48, 0x61, 0x73, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x08, 0x43, 0x6f, 0x64, 0x65, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, + 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x52, 0x6f, + 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x43, 0x6f, + 0x64, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x65, 0x0a, 0x07, 0x52, 0x65, + 0x63, 0x65, 0x69, 0x70, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, + 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x53, 0x6e, + 0x64, 0x41, 0x64, 0x64, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x78, 0x48, + 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x54, 0x78, 0x48, 0x61, 0x73, + 0x68, 0x22, 0x1e, 0x0a, 0x06, 0x42, 0x69, 0x67, 0x49, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, + 0x73, 0x2a, 0xa4, 0x01, 0x0a, 0x0a, 0x50, 0x65, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x11, 0x0a, 0x0d, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x65, 0x65, + 0x72, 0x55, 0x6e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, + 0x50, 0x65, 0x65, 0x72, 0x44, 0x65, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x65, 0x65, 0x72, 0x4a, 0x61, 0x69, 0x6c, + 0x65, 0x64, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x65, 0x65, 0x72, 0x55, 0x6e, 0x4a, 0x61, + 0x69, 0x6c, 0x65, 0x64, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x65, 0x65, 0x72, 0x53, 0x6c, + 0x61, 0x73, 0x68, 0x65, 0x64, 0x10, 0x06, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x65, 0x65, 0x72, 0x52, + 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x10, 0x07, 0x2a, 0x36, 0x0a, 0x06, 0x54, 0x78, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x43, 0x52, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x49, + 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, + 0x54, 0x78, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x03, + 0x2a, 0x88, 0x01, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x78, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0x1e, 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x65, 0x65, 0x72, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x10, 0x3c, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x10, 0x5a, 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x10, 0x78, 0x12, 0x11, 0x0a, 0x0c, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0x96, 0x01, 0x12, 0x11, 0x0a, 0x0c, 0x52, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0xff, 0x01, 0x42, 0x51, 0x5a, 0x4f, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x76, + 0x65, 0x72, 0x73, 0x78, 0x2f, 0x6d, 0x78, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2d, 0x77, 0x73, + 0x2d, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2d, 0x66, 0x69, 0x72, 0x65, 0x68, + 0x6f, 0x73, 0x65, 0x2d, 0x67, 0x6f, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x68, 0x79, 0x70, 0x65, + 0x72, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -5674,7 +5674,7 @@ var file_data_hyperOutportBlocks_hyperOutportBlock_proto_goTypes = []interface{} var file_data_hyperOutportBlocks_hyperOutportBlock_proto_depIdxs = []int32{ 5, // 0: proto.HyperOutportBlock.MetaOutportBlock:type_name -> proto.MetaOutportBlock 4, // 1: proto.HyperOutportBlock.NotarizedHeadersOutportData:type_name -> proto.NotarizedHeaderOutportData - 7, // 2: proto.NotarizedHeaderOutportData.OutportBlock:type_name -> proto.ShardOutportBlockV2 + 6, // 2: proto.NotarizedHeaderOutportData.OutportBlock:type_name -> proto.ShardOutportBlock 14, // 3: proto.MetaOutportBlock.BlockData:type_name -> proto.MetaBlockData 20, // 4: proto.MetaOutportBlock.TransactionPool:type_name -> proto.TransactionPool 28, // 5: proto.MetaOutportBlock.HeaderGasConsumption:type_name -> proto.HeaderGasConsumption diff --git a/data/hyperOutportBlocks/hyperOutportBlock.proto b/data/hyperOutportBlocks/hyperOutportBlock.proto index 6669d24..2c86359 100644 --- a/data/hyperOutportBlocks/hyperOutportBlock.proto +++ b/data/hyperOutportBlocks/hyperOutportBlock.proto @@ -14,7 +14,7 @@ message HyperOutportBlock { message NotarizedHeaderOutportData { string NotarizedHeaderHash = 1; - ShardOutportBlockV2 OutportBlock = 2; + ShardOutportBlock OutportBlock = 2; } message MetaOutportBlock { From a8bd56eed4a208d9185093a27483221ba3d96eda Mon Sep 17 00:00:00 2001 From: Alexander Cristurean Date: Wed, 7 Aug 2024 10:36:15 +0300 Subject: [PATCH 11/12] cosmetic changes. --- process/outportBlockConverter.go | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/process/outportBlockConverter.go b/process/outportBlockConverter.go index d48bb96..65e128a 100644 --- a/process/outportBlockConverter.go +++ b/process/outportBlockConverter.go @@ -121,6 +121,7 @@ func (o *outportBlockConverter) handleHeaderV1(headerBytes []byte, shardBlockDat } header := &hyperOutportBlocks.Header{} + shardBlockData.Header = header header.Nonce = blockHeader.Nonce header.PrevHash = blockHeader.PrevHash header.PrevRandSeed = blockHeader.PrevRandSeed @@ -180,8 +181,6 @@ func (o *outportBlockConverter) handleHeaderV1(headerBytes []byte, shardBlockDat header.AccumulatedFees = accumulatedFees header.DeveloperFees = developerFees - shardBlockData.Header = header - return nil } @@ -193,6 +192,7 @@ func (o *outportBlockConverter) handleHeaderV2(headerBytes []byte, shardBlockDat } header := &hyperOutportBlocks.Header{} + shardBlockData.Header = header header.Nonce = blockHeader.Header.Nonce header.PrevHash = blockHeader.Header.PrevHash header.PrevRandSeed = blockHeader.Header.PrevRandSeed @@ -265,8 +265,6 @@ func (o *outportBlockConverter) handleHeaderV2(headerBytes []byte, shardBlockDat shardBlockData.ScheduledGasPenalized = blockHeader.ScheduledGasPenalized shardBlockData.ScheduledGasRefunded = blockHeader.ScheduledGasRefunded - shardBlockData.Header = header - return nil } From 527f494b9bae7d3a3bb4fc2073d08ec73751c500 Mon Sep 17 00:00:00 2001 From: Alexander Cristurean Date: Wed, 7 Aug 2024 17:12:21 +0300 Subject: [PATCH 12/12] cosmetic changes. --- process/outportBlockConverter.go | 1 + 1 file changed, 1 insertion(+) diff --git a/process/outportBlockConverter.go b/process/outportBlockConverter.go index 65e128a..37d396b 100644 --- a/process/outportBlockConverter.go +++ b/process/outportBlockConverter.go @@ -42,6 +42,7 @@ func NewOutportBlockConverter( }, nil } +// HandleShardOutportBlockV2 will convert an outport.OutportBlock to hyperOutportBlocks.ShardOutportBlockV2 func (o *outportBlockConverter) HandleShardOutportBlockV2(outportBlock *outport.OutportBlock) (*hyperOutportBlocks.ShardOutportBlockV2, error) { headerType := outportBlock.BlockData.HeaderType