From cbdc4f0dadce29a2e1fcdc322d8757052e1f8aa3 Mon Sep 17 00:00:00 2001 From: Alexander Cristurean <alexander.cristurean@yahoo.com> Date: Fri, 12 Jul 2024 15:01:57 +0300 Subject: [PATCH] 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 <string, AlteredAccount> AlteredAccounts = 5; + repeated string NotarizedHeadersHashes = 6; + uint32 NumberOfShards = 7; + repeated uint64 SignersIndexes = 8; + uint64 HighestFinalBlockNonce = 9; + bytes HighestFinalBlockHash = 10; +} + +message TransactionPoolV2 { + map<string, TxInfoV2> Transactions = 1; + map<string, RewardInfo> Rewards = 3; + map<string, Receipt> Receipts = 4; + map<string, TxInfo> 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