diff --git a/input/full.go b/input/full.go index 593809ddc..3469ecf73 100644 --- a/input/full.go +++ b/input/full.go @@ -130,7 +130,7 @@ func CollectFull(ctx context.Context, server *state.Server, connection *sql.DB, err = nil } - ts.ServerStats, err = postgres.GetServerStats(ctx, logger, connection, ts.Version, systemType) + ts.ServerStats, ps.ServerIoStats, err = postgres.GetServerStats(ctx, logger, connection, ts.Version, systemType) if err != nil { logger.PrintError("Error collecting Postgres server statistics: %s", err) return diff --git a/input/postgres/server_stats.go b/input/postgres/server_stats.go index fe4eecf04..6d0b1cf53 100644 --- a/input/postgres/server_stats.go +++ b/input/postgres/server_stats.go @@ -69,8 +69,30 @@ COALESCE(( ), '0'::xid) as standby ` -func GetServerStats(ctx context.Context, logger *util.Logger, db *sql.DB, postgresVersion state.PostgresVersion, systemType string) (state.PostgresServerStats, error) { +const ioStatisticSQLPg16 string = ` +SELECT backend_type, + object, + context, + coalesce(reads, 0), + coalesce(read_time, 0), + coalesce(writes, 0), + coalesce(write_time, 0), + coalesce(writebacks, 0), + coalesce(writeback_time, 0), + coalesce(extends, 0), + coalesce(extend_time, 0), + coalesce(op_bytes, 0), + coalesce(hits, 0), + coalesce(evictions, 0), + coalesce(reuses, 0), + coalesce(fsyncs, 0), + coalesce(fsync_time, 0) + FROM pg_stat_io +` + +func GetServerStats(ctx context.Context, logger *util.Logger, db *sql.DB, postgresVersion state.PostgresVersion, systemType string) (state.PostgresServerStats, state.PostgresServerIoStatsMap, error) { var stats state.PostgresServerStats + var ioStats state.PostgresServerIoStatsMap var transactionIdSQL string // Only collect transaction ID or xmin horizon related stats with non-replicas @@ -90,7 +112,7 @@ func GetServerStats(ctx context.Context, logger *util.Logger, db *sql.DB, postgr &stats.XminHorizonPreparedXact, &stats.XminHorizonStandby, ) if err != nil { - return stats, err + return stats, ioStats, err } if postgresVersion.Numeric >= state.PostgresVersion13 { @@ -103,9 +125,64 @@ func GetServerStats(ctx context.Context, logger *util.Logger, db *sql.DB, postgr &stats.CurrentXactId, &stats.NextMultiXactId, ) if err != nil { - return stats, err + return stats, ioStats, err } } - return stats, nil + // Retrieve I/O statistics if we're on a new enough Postgres + if postgresVersion.Numeric >= state.PostgresVersion16 { + rows, err := db.Query(QueryMarkerSQL + ioStatisticSQLPg16) + if err != nil { + return stats, ioStats, err + } + defer rows.Close() + + ioStats = make(state.PostgresServerIoStatsMap) + + for rows.Next() { + var k state.PostgresServerIoStatsKey + var s state.PostgresServerIoStats + + err := rows.Scan(&k.BackendType, &k.IoObject, &k.IoContext, + &s.Reads, &s.ReadTime, &s.Writes, &s.WriteTime, + &s.Writebacks, &s.WritebackTime, &s.Extends, + &s.ExtendTime, &s.OpBytes, &s.Hits, + &s.Evictions, &s.Reuses, &s.Fsyncs, &s.FsyncTime, + ) + if err != nil { + return stats, ioStats, err + } + + ioStats[k] = s + } + + if err = rows.Err(); err != nil { + return stats, ioStats, err + } + } + + return stats, ioStats, nil +} + +type PostgresServerIoStatsKey struct { + BackendType string // a backend type like "autovacuum worker" + IoObject string // "relation" or "temp relation" + IoContext string // "normal", "vacuum", "bulkread" or "bulkwrite" +} + +type PostgresServerIoStats struct { + Reads int64 + ReadTime float64 + Writes int64 + WriteTime float64 + Writebacks int64 + WritebackTime float64 + Extends int64 + ExtendTime float64 + OpBytes int64 + Hits int64 + Evictions int64 + Reuses int64 + Fsyncs int64 + FsyncTime float64 } diff --git a/output/pganalyze_collector/full_snapshot.pb.go b/output/pganalyze_collector/full_snapshot.pb.go index 6cf76a4c9..b3aeb0496 100644 --- a/output/pganalyze_collector/full_snapshot.pb.go +++ b/output/pganalyze_collector/full_snapshot.pb.go @@ -80,7 +80,7 @@ func (x BackendCountStatistic_BackendState) Number() protoreflect.EnumNumber { // Deprecated: Use BackendCountStatistic_BackendState.Descriptor instead. func (BackendCountStatistic_BackendState) EnumDescriptor() ([]byte, []int) { - return file_full_snapshot_proto_rawDescGZIP(), []int{12, 0} + return file_full_snapshot_proto_rawDescGZIP(), []int{14, 0} } // ! When changing this, also update mappings/backend_type.json @@ -154,7 +154,7 @@ func (x BackendCountStatistic_BackendType) Number() protoreflect.EnumNumber { // Deprecated: Use BackendCountStatistic_BackendType.Descriptor instead. func (BackendCountStatistic_BackendType) EnumDescriptor() ([]byte, []int) { - return file_full_snapshot_proto_rawDescGZIP(), []int{12, 1} + return file_full_snapshot_proto_rawDescGZIP(), []int{14, 1} } type RelationInformation_PartitionStrategy int32 @@ -206,7 +206,7 @@ func (x RelationInformation_PartitionStrategy) Number() protoreflect.EnumNumber // Deprecated: Use RelationInformation_PartitionStrategy.Descriptor instead. func (RelationInformation_PartitionStrategy) EnumDescriptor() ([]byte, []int) { - return file_full_snapshot_proto_rawDescGZIP(), []int{18, 0} + return file_full_snapshot_proto_rawDescGZIP(), []int{20, 0} } type RelationEvent_EventType int32 @@ -258,7 +258,7 @@ func (x RelationEvent_EventType) Number() protoreflect.EnumNumber { // Deprecated: Use RelationEvent_EventType.Descriptor instead. func (RelationEvent_EventType) EnumDescriptor() ([]byte, []int) { - return file_full_snapshot_proto_rawDescGZIP(), []int{20, 0} + return file_full_snapshot_proto_rawDescGZIP(), []int{22, 0} } type FunctionInformation_FunctionKind int32 @@ -313,7 +313,7 @@ func (x FunctionInformation_FunctionKind) Number() protoreflect.EnumNumber { // Deprecated: Use FunctionInformation_FunctionKind.Descriptor instead. func (FunctionInformation_FunctionKind) EnumDescriptor() ([]byte, []int) { - return file_full_snapshot_proto_rawDescGZIP(), []int{23, 0} + return file_full_snapshot_proto_rawDescGZIP(), []int{25, 0} } type CustomTypeInformation_Type int32 @@ -374,7 +374,7 @@ func (x CustomTypeInformation_Type) Number() protoreflect.EnumNumber { // Deprecated: Use CustomTypeInformation_Type.Descriptor instead. func (CustomTypeInformation_Type) EnumDescriptor() ([]byte, []int) { - return file_full_snapshot_proto_rawDescGZIP(), []int{25, 0} + return file_full_snapshot_proto_rawDescGZIP(), []int{27, 0} } type QueryPlanInformation_PlanType int32 @@ -423,7 +423,7 @@ func (x QueryPlanInformation_PlanType) Number() protoreflect.EnumNumber { // Deprecated: Use QueryPlanInformation_PlanType.Descriptor instead. func (QueryPlanInformation_PlanType) EnumDescriptor() ([]byte, []int) { - return file_full_snapshot_proto_rawDescGZIP(), []int{26, 0} + return file_full_snapshot_proto_rawDescGZIP(), []int{28, 0} } type FullSnapshot struct { @@ -454,19 +454,20 @@ type FullSnapshot struct { CollectorLogSnapshotDisabled bool `protobuf:"varint,31,opt,name=collector_log_snapshot_disabled,json=collectorLogSnapshotDisabled,proto3" json:"collector_log_snapshot_disabled,omitempty"` CollectorLogSnapshotDisabledReason string `protobuf:"bytes,32,opt,name=collector_log_snapshot_disabled_reason,json=collectorLogSnapshotDisabledReason,proto3" json:"collector_log_snapshot_disabled_reason,omitempty"` // Per server (and hence snapshot) - System *System `protobuf:"bytes,100,opt,name=system,proto3" json:"system,omitempty"` - PostgresVersion *PostgresVersion `protobuf:"bytes,101,opt,name=postgres_version,json=postgresVersion,proto3" json:"postgres_version,omitempty"` - RoleReferences []*RoleReference `protobuf:"bytes,102,rep,name=role_references,json=roleReferences,proto3" json:"role_references,omitempty"` - DatabaseReferences []*DatabaseReference `protobuf:"bytes,103,rep,name=database_references,json=databaseReferences,proto3" json:"database_references,omitempty"` - RoleInformations []*RoleInformation `protobuf:"bytes,110,rep,name=role_informations,json=roleInformations,proto3" json:"role_informations,omitempty"` - DatabaseInformations []*DatabaseInformation `protobuf:"bytes,111,rep,name=database_informations,json=databaseInformations,proto3" json:"database_informations,omitempty"` - DatabaseStatictics []*DatabaseStatistic `protobuf:"bytes,112,rep,name=database_statictics,json=databaseStatictics,proto3" json:"database_statictics,omitempty"` - ServerStatistic *ServerStatistic `protobuf:"bytes,113,opt,name=server_statistic,json=serverStatistic,proto3" json:"server_statistic,omitempty"` - Settings []*Setting `protobuf:"bytes,122,rep,name=settings,proto3" json:"settings,omitempty"` - Replication *Replication `protobuf:"bytes,123,opt,name=replication,proto3" json:"replication,omitempty"` - BackendCountStatistics []*BackendCountStatistic `protobuf:"bytes,124,rep,name=backend_count_statistics,json=backendCountStatistics,proto3" json:"backend_count_statistics,omitempty"` - TablespaceReferences []*TablespaceReference `protobuf:"bytes,130,rep,name=tablespace_references,json=tablespaceReferences,proto3" json:"tablespace_references,omitempty"` - TablespaceInformations []*TablespaceInformation `protobuf:"bytes,131,rep,name=tablespace_informations,json=tablespaceInformations,proto3" json:"tablespace_informations,omitempty"` + System *System `protobuf:"bytes,100,opt,name=system,proto3" json:"system,omitempty"` + PostgresVersion *PostgresVersion `protobuf:"bytes,101,opt,name=postgres_version,json=postgresVersion,proto3" json:"postgres_version,omitempty"` + RoleReferences []*RoleReference `protobuf:"bytes,102,rep,name=role_references,json=roleReferences,proto3" json:"role_references,omitempty"` + DatabaseReferences []*DatabaseReference `protobuf:"bytes,103,rep,name=database_references,json=databaseReferences,proto3" json:"database_references,omitempty"` + RoleInformations []*RoleInformation `protobuf:"bytes,110,rep,name=role_informations,json=roleInformations,proto3" json:"role_informations,omitempty"` + DatabaseInformations []*DatabaseInformation `protobuf:"bytes,111,rep,name=database_informations,json=databaseInformations,proto3" json:"database_informations,omitempty"` + DatabaseStatictics []*DatabaseStatistic `protobuf:"bytes,112,rep,name=database_statictics,json=databaseStatictics,proto3" json:"database_statictics,omitempty"` + ServerStatistic *ServerStatistic `protobuf:"bytes,113,opt,name=server_statistic,json=serverStatistic,proto3" json:"server_statistic,omitempty"` + HistoricServerIoStatistics []*HistoricServerIoStatistics `protobuf:"bytes,114,rep,name=historic_server_io_statistics,json=historicServerIoStatistics,proto3" json:"historic_server_io_statistics,omitempty"` + Settings []*Setting `protobuf:"bytes,122,rep,name=settings,proto3" json:"settings,omitempty"` + Replication *Replication `protobuf:"bytes,123,opt,name=replication,proto3" json:"replication,omitempty"` + BackendCountStatistics []*BackendCountStatistic `protobuf:"bytes,124,rep,name=backend_count_statistics,json=backendCountStatistics,proto3" json:"backend_count_statistics,omitempty"` + TablespaceReferences []*TablespaceReference `protobuf:"bytes,130,rep,name=tablespace_references,json=tablespaceReferences,proto3" json:"tablespace_references,omitempty"` + TablespaceInformations []*TablespaceInformation `protobuf:"bytes,131,rep,name=tablespace_informations,json=tablespaceInformations,proto3" json:"tablespace_informations,omitempty"` // Per database QueryReferences []*QueryReference `protobuf:"bytes,200,rep,name=query_references,json=queryReferences,proto3" json:"query_references,omitempty"` RelationReferences []*RelationReference `protobuf:"bytes,201,rep,name=relation_references,json=relationReferences,proto3" json:"relation_references,omitempty"` @@ -726,6 +727,13 @@ func (x *FullSnapshot) GetServerStatistic() *ServerStatistic { return nil } +func (x *FullSnapshot) GetHistoricServerIoStatistics() []*HistoricServerIoStatistics { + if x != nil { + return x.HistoricServerIoStatistics + } + return nil +} + func (x *FullSnapshot) GetSettings() []*Setting { if x != nil { return x.Settings @@ -1458,6 +1466,245 @@ func (x *ServerStatistic) GetXminHorizonStandby() int64 { return 0 } +// Postgres server I/O statistics (from pg_stat_io, in Postgres 16+) +type HistoricServerIoStatistics struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CollectedAt *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=collected_at,json=collectedAt,proto3" json:"collected_at,omitempty"` + CollectedIntervalSecs uint32 `protobuf:"varint,2,opt,name=collected_interval_secs,json=collectedIntervalSecs,proto3" json:"collected_interval_secs,omitempty"` + Statistics []*ServerIoStatistic `protobuf:"bytes,3,rep,name=statistics,proto3" json:"statistics,omitempty"` +} + +func (x *HistoricServerIoStatistics) Reset() { + *x = HistoricServerIoStatistics{} + if protoimpl.UnsafeEnabled { + mi := &file_full_snapshot_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HistoricServerIoStatistics) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HistoricServerIoStatistics) ProtoMessage() {} + +func (x *HistoricServerIoStatistics) ProtoReflect() protoreflect.Message { + mi := &file_full_snapshot_proto_msgTypes[6] + 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 HistoricServerIoStatistics.ProtoReflect.Descriptor instead. +func (*HistoricServerIoStatistics) Descriptor() ([]byte, []int) { + return file_full_snapshot_proto_rawDescGZIP(), []int{6} +} + +func (x *HistoricServerIoStatistics) GetCollectedAt() *timestamppb.Timestamp { + if x != nil { + return x.CollectedAt + } + return nil +} + +func (x *HistoricServerIoStatistics) GetCollectedIntervalSecs() uint32 { + if x != nil { + return x.CollectedIntervalSecs + } + return 0 +} + +func (x *HistoricServerIoStatistics) GetStatistics() []*ServerIoStatistic { + if x != nil { + return x.Statistics + } + return nil +} + +type ServerIoStatistic struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BackendType string `protobuf:"bytes,1,opt,name=backend_type,json=backendType,proto3" json:"backend_type,omitempty"` + IoObject string `protobuf:"bytes,2,opt,name=io_object,json=ioObject,proto3" json:"io_object,omitempty"` // "relation" or "temp relation" + IoContext string `protobuf:"bytes,3,opt,name=io_context,json=ioContext,proto3" json:"io_context,omitempty"` // "normal", "vacuum", "bulkread" or "bulkwrite" + Reads int64 `protobuf:"varint,4,opt,name=reads,proto3" json:"reads,omitempty"` + ReadTime float64 `protobuf:"fixed64,5,opt,name=read_time,json=readTime,proto3" json:"read_time,omitempty"` + Writes int64 `protobuf:"varint,6,opt,name=writes,proto3" json:"writes,omitempty"` + WriteTime float64 `protobuf:"fixed64,7,opt,name=write_time,json=writeTime,proto3" json:"write_time,omitempty"` + Writebacks int64 `protobuf:"varint,8,opt,name=writebacks,proto3" json:"writebacks,omitempty"` + WritebackTime float64 `protobuf:"fixed64,9,opt,name=writeback_time,json=writebackTime,proto3" json:"writeback_time,omitempty"` + Extends int64 `protobuf:"varint,10,opt,name=extends,proto3" json:"extends,omitempty"` + ExtendTime float64 `protobuf:"fixed64,11,opt,name=extend_time,json=extendTime,proto3" json:"extend_time,omitempty"` + OpBytes int64 `protobuf:"varint,12,opt,name=op_bytes,json=opBytes,proto3" json:"op_bytes,omitempty"` + Hits int64 `protobuf:"varint,13,opt,name=hits,proto3" json:"hits,omitempty"` + Evictions int64 `protobuf:"varint,14,opt,name=evictions,proto3" json:"evictions,omitempty"` + Reuses int64 `protobuf:"varint,15,opt,name=reuses,proto3" json:"reuses,omitempty"` + Fsyncs int64 `protobuf:"varint,16,opt,name=fsyncs,proto3" json:"fsyncs,omitempty"` + FsyncTime float64 `protobuf:"fixed64,17,opt,name=fsync_time,json=fsyncTime,proto3" json:"fsync_time,omitempty"` +} + +func (x *ServerIoStatistic) Reset() { + *x = ServerIoStatistic{} + if protoimpl.UnsafeEnabled { + mi := &file_full_snapshot_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ServerIoStatistic) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ServerIoStatistic) ProtoMessage() {} + +func (x *ServerIoStatistic) ProtoReflect() protoreflect.Message { + mi := &file_full_snapshot_proto_msgTypes[7] + 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 ServerIoStatistic.ProtoReflect.Descriptor instead. +func (*ServerIoStatistic) Descriptor() ([]byte, []int) { + return file_full_snapshot_proto_rawDescGZIP(), []int{7} +} + +func (x *ServerIoStatistic) GetBackendType() string { + if x != nil { + return x.BackendType + } + return "" +} + +func (x *ServerIoStatistic) GetIoObject() string { + if x != nil { + return x.IoObject + } + return "" +} + +func (x *ServerIoStatistic) GetIoContext() string { + if x != nil { + return x.IoContext + } + return "" +} + +func (x *ServerIoStatistic) GetReads() int64 { + if x != nil { + return x.Reads + } + return 0 +} + +func (x *ServerIoStatistic) GetReadTime() float64 { + if x != nil { + return x.ReadTime + } + return 0 +} + +func (x *ServerIoStatistic) GetWrites() int64 { + if x != nil { + return x.Writes + } + return 0 +} + +func (x *ServerIoStatistic) GetWriteTime() float64 { + if x != nil { + return x.WriteTime + } + return 0 +} + +func (x *ServerIoStatistic) GetWritebacks() int64 { + if x != nil { + return x.Writebacks + } + return 0 +} + +func (x *ServerIoStatistic) GetWritebackTime() float64 { + if x != nil { + return x.WritebackTime + } + return 0 +} + +func (x *ServerIoStatistic) GetExtends() int64 { + if x != nil { + return x.Extends + } + return 0 +} + +func (x *ServerIoStatistic) GetExtendTime() float64 { + if x != nil { + return x.ExtendTime + } + return 0 +} + +func (x *ServerIoStatistic) GetOpBytes() int64 { + if x != nil { + return x.OpBytes + } + return 0 +} + +func (x *ServerIoStatistic) GetHits() int64 { + if x != nil { + return x.Hits + } + return 0 +} + +func (x *ServerIoStatistic) GetEvictions() int64 { + if x != nil { + return x.Evictions + } + return 0 +} + +func (x *ServerIoStatistic) GetReuses() int64 { + if x != nil { + return x.Reuses + } + return 0 +} + +func (x *ServerIoStatistic) GetFsyncs() int64 { + if x != nil { + return x.Fsyncs + } + return 0 +} + +func (x *ServerIoStatistic) GetFsyncTime() float64 { + if x != nil { + return x.FsyncTime + } + return 0 +} + type Setting struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1476,7 +1723,7 @@ type Setting struct { func (x *Setting) Reset() { *x = Setting{} if protoimpl.UnsafeEnabled { - mi := &file_full_snapshot_proto_msgTypes[6] + mi := &file_full_snapshot_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1489,7 +1736,7 @@ func (x *Setting) String() string { func (*Setting) ProtoMessage() {} func (x *Setting) ProtoReflect() protoreflect.Message { - mi := &file_full_snapshot_proto_msgTypes[6] + mi := &file_full_snapshot_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1502,7 +1749,7 @@ func (x *Setting) ProtoReflect() protoreflect.Message { // Deprecated: Use Setting.ProtoReflect.Descriptor instead. func (*Setting) Descriptor() ([]byte, []int) { - return file_full_snapshot_proto_rawDescGZIP(), []int{6} + return file_full_snapshot_proto_rawDescGZIP(), []int{8} } func (x *Setting) GetName() string { @@ -1575,7 +1822,7 @@ type Extension struct { func (x *Extension) Reset() { *x = Extension{} if protoimpl.UnsafeEnabled { - mi := &file_full_snapshot_proto_msgTypes[7] + mi := &file_full_snapshot_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1588,7 +1835,7 @@ func (x *Extension) String() string { func (*Extension) ProtoMessage() {} func (x *Extension) ProtoReflect() protoreflect.Message { - mi := &file_full_snapshot_proto_msgTypes[7] + mi := &file_full_snapshot_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1601,7 +1848,7 @@ func (x *Extension) ProtoReflect() protoreflect.Message { // Deprecated: Use Extension.ProtoReflect.Descriptor instead. func (*Extension) Descriptor() ([]byte, []int) { - return file_full_snapshot_proto_rawDescGZIP(), []int{7} + return file_full_snapshot_proto_rawDescGZIP(), []int{9} } func (x *Extension) GetDatabaseIdx() int32 { @@ -1656,7 +1903,7 @@ type Replication struct { func (x *Replication) Reset() { *x = Replication{} if protoimpl.UnsafeEnabled { - mi := &file_full_snapshot_proto_msgTypes[8] + mi := &file_full_snapshot_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1669,7 +1916,7 @@ func (x *Replication) String() string { func (*Replication) ProtoMessage() {} func (x *Replication) ProtoReflect() protoreflect.Message { - mi := &file_full_snapshot_proto_msgTypes[8] + mi := &file_full_snapshot_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1682,7 +1929,7 @@ func (x *Replication) ProtoReflect() protoreflect.Message { // Deprecated: Use Replication.ProtoReflect.Descriptor instead. func (*Replication) Descriptor() ([]byte, []int) { - return file_full_snapshot_proto_rawDescGZIP(), []int{8} + return file_full_snapshot_proto_rawDescGZIP(), []int{10} } func (x *Replication) GetInRecovery() bool { @@ -1773,7 +2020,7 @@ type StandbyReference struct { func (x *StandbyReference) Reset() { *x = StandbyReference{} if protoimpl.UnsafeEnabled { - mi := &file_full_snapshot_proto_msgTypes[9] + mi := &file_full_snapshot_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1786,7 +2033,7 @@ func (x *StandbyReference) String() string { func (*StandbyReference) ProtoMessage() {} func (x *StandbyReference) ProtoReflect() protoreflect.Message { - mi := &file_full_snapshot_proto_msgTypes[9] + mi := &file_full_snapshot_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1799,7 +2046,7 @@ func (x *StandbyReference) ProtoReflect() protoreflect.Message { // Deprecated: Use StandbyReference.ProtoReflect.Descriptor instead. func (*StandbyReference) Descriptor() ([]byte, []int) { - return file_full_snapshot_proto_rawDescGZIP(), []int{9} + return file_full_snapshot_proto_rawDescGZIP(), []int{11} } func (x *StandbyReference) GetClientAddr() string { @@ -1828,7 +2075,7 @@ type StandbyInformation struct { func (x *StandbyInformation) Reset() { *x = StandbyInformation{} if protoimpl.UnsafeEnabled { - mi := &file_full_snapshot_proto_msgTypes[10] + mi := &file_full_snapshot_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1841,7 +2088,7 @@ func (x *StandbyInformation) String() string { func (*StandbyInformation) ProtoMessage() {} func (x *StandbyInformation) ProtoReflect() protoreflect.Message { - mi := &file_full_snapshot_proto_msgTypes[10] + mi := &file_full_snapshot_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1854,7 +2101,7 @@ func (x *StandbyInformation) ProtoReflect() protoreflect.Message { // Deprecated: Use StandbyInformation.ProtoReflect.Descriptor instead. func (*StandbyInformation) Descriptor() ([]byte, []int) { - return file_full_snapshot_proto_rawDescGZIP(), []int{10} + return file_full_snapshot_proto_rawDescGZIP(), []int{12} } func (x *StandbyInformation) GetStandbyIdx() int32 { @@ -1938,7 +2185,7 @@ type StandbyStatistic struct { func (x *StandbyStatistic) Reset() { *x = StandbyStatistic{} if protoimpl.UnsafeEnabled { - mi := &file_full_snapshot_proto_msgTypes[11] + mi := &file_full_snapshot_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1951,7 +2198,7 @@ func (x *StandbyStatistic) String() string { func (*StandbyStatistic) ProtoMessage() {} func (x *StandbyStatistic) ProtoReflect() protoreflect.Message { - mi := &file_full_snapshot_proto_msgTypes[11] + mi := &file_full_snapshot_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1964,7 +2211,7 @@ func (x *StandbyStatistic) ProtoReflect() protoreflect.Message { // Deprecated: Use StandbyStatistic.ProtoReflect.Descriptor instead. func (*StandbyStatistic) Descriptor() ([]byte, []int) { - return file_full_snapshot_proto_rawDescGZIP(), []int{11} + return file_full_snapshot_proto_rawDescGZIP(), []int{13} } func (x *StandbyStatistic) GetStandbyIdx() int32 { @@ -2041,7 +2288,7 @@ type BackendCountStatistic struct { func (x *BackendCountStatistic) Reset() { *x = BackendCountStatistic{} if protoimpl.UnsafeEnabled { - mi := &file_full_snapshot_proto_msgTypes[12] + mi := &file_full_snapshot_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2054,7 +2301,7 @@ func (x *BackendCountStatistic) String() string { func (*BackendCountStatistic) ProtoMessage() {} func (x *BackendCountStatistic) ProtoReflect() protoreflect.Message { - mi := &file_full_snapshot_proto_msgTypes[12] + mi := &file_full_snapshot_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2067,7 +2314,7 @@ func (x *BackendCountStatistic) ProtoReflect() protoreflect.Message { // Deprecated: Use BackendCountStatistic.ProtoReflect.Descriptor instead. func (*BackendCountStatistic) Descriptor() ([]byte, []int) { - return file_full_snapshot_proto_rawDescGZIP(), []int{12} + return file_full_snapshot_proto_rawDescGZIP(), []int{14} } func (x *BackendCountStatistic) GetHasRoleIdx() bool { @@ -2137,7 +2384,7 @@ type TablespaceReference struct { func (x *TablespaceReference) Reset() { *x = TablespaceReference{} if protoimpl.UnsafeEnabled { - mi := &file_full_snapshot_proto_msgTypes[13] + mi := &file_full_snapshot_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2150,7 +2397,7 @@ func (x *TablespaceReference) String() string { func (*TablespaceReference) ProtoMessage() {} func (x *TablespaceReference) ProtoReflect() protoreflect.Message { - mi := &file_full_snapshot_proto_msgTypes[13] + mi := &file_full_snapshot_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2163,7 +2410,7 @@ func (x *TablespaceReference) ProtoReflect() protoreflect.Message { // Deprecated: Use TablespaceReference.ProtoReflect.Descriptor instead. func (*TablespaceReference) Descriptor() ([]byte, []int) { - return file_full_snapshot_proto_rawDescGZIP(), []int{13} + return file_full_snapshot_proto_rawDescGZIP(), []int{15} } func (x *TablespaceReference) GetName() string { @@ -2187,7 +2434,7 @@ type TablespaceInformation struct { func (x *TablespaceInformation) Reset() { *x = TablespaceInformation{} if protoimpl.UnsafeEnabled { - mi := &file_full_snapshot_proto_msgTypes[14] + mi := &file_full_snapshot_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2200,7 +2447,7 @@ func (x *TablespaceInformation) String() string { func (*TablespaceInformation) ProtoMessage() {} func (x *TablespaceInformation) ProtoReflect() protoreflect.Message { - mi := &file_full_snapshot_proto_msgTypes[14] + mi := &file_full_snapshot_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2213,7 +2460,7 @@ func (x *TablespaceInformation) ProtoReflect() protoreflect.Message { // Deprecated: Use TablespaceInformation.ProtoReflect.Descriptor instead. func (*TablespaceInformation) Descriptor() ([]byte, []int) { - return file_full_snapshot_proto_rawDescGZIP(), []int{14} + return file_full_snapshot_proto_rawDescGZIP(), []int{16} } func (x *TablespaceInformation) GetTablespaceIdx() int32 { @@ -2317,7 +2564,7 @@ type CollectorConfig struct { func (x *CollectorConfig) Reset() { *x = CollectorConfig{} if protoimpl.UnsafeEnabled { - mi := &file_full_snapshot_proto_msgTypes[15] + mi := &file_full_snapshot_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2330,7 +2577,7 @@ func (x *CollectorConfig) String() string { func (*CollectorConfig) ProtoMessage() {} func (x *CollectorConfig) ProtoReflect() protoreflect.Message { - mi := &file_full_snapshot_proto_msgTypes[15] + mi := &file_full_snapshot_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2343,7 +2590,7 @@ func (x *CollectorConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use CollectorConfig.ProtoReflect.Descriptor instead. func (*CollectorConfig) Descriptor() ([]byte, []int) { - return file_full_snapshot_proto_rawDescGZIP(), []int{15} + return file_full_snapshot_proto_rawDescGZIP(), []int{17} } func (x *CollectorConfig) GetSectionName() string { @@ -2813,7 +3060,7 @@ type QueryStatistic struct { func (x *QueryStatistic) Reset() { *x = QueryStatistic{} if protoimpl.UnsafeEnabled { - mi := &file_full_snapshot_proto_msgTypes[16] + mi := &file_full_snapshot_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2826,7 +3073,7 @@ func (x *QueryStatistic) String() string { func (*QueryStatistic) ProtoMessage() {} func (x *QueryStatistic) ProtoReflect() protoreflect.Message { - mi := &file_full_snapshot_proto_msgTypes[16] + mi := &file_full_snapshot_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2839,7 +3086,7 @@ func (x *QueryStatistic) ProtoReflect() protoreflect.Message { // Deprecated: Use QueryStatistic.ProtoReflect.Descriptor instead. func (*QueryStatistic) Descriptor() ([]byte, []int) { - return file_full_snapshot_proto_rawDescGZIP(), []int{16} + return file_full_snapshot_proto_rawDescGZIP(), []int{18} } func (x *QueryStatistic) GetQueryIdx() int32 { @@ -2967,7 +3214,7 @@ type HistoricQueryStatistics struct { func (x *HistoricQueryStatistics) Reset() { *x = HistoricQueryStatistics{} if protoimpl.UnsafeEnabled { - mi := &file_full_snapshot_proto_msgTypes[17] + mi := &file_full_snapshot_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2980,7 +3227,7 @@ func (x *HistoricQueryStatistics) String() string { func (*HistoricQueryStatistics) ProtoMessage() {} func (x *HistoricQueryStatistics) ProtoReflect() protoreflect.Message { - mi := &file_full_snapshot_proto_msgTypes[17] + mi := &file_full_snapshot_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2993,7 +3240,7 @@ func (x *HistoricQueryStatistics) ProtoReflect() protoreflect.Message { // Deprecated: Use HistoricQueryStatistics.ProtoReflect.Descriptor instead. func (*HistoricQueryStatistics) Descriptor() ([]byte, []int) { - return file_full_snapshot_proto_rawDescGZIP(), []int{17} + return file_full_snapshot_proto_rawDescGZIP(), []int{19} } func (x *HistoricQueryStatistics) GetCollectedAt() *timestamppb.Timestamp { @@ -3049,7 +3296,7 @@ type RelationInformation struct { func (x *RelationInformation) Reset() { *x = RelationInformation{} if protoimpl.UnsafeEnabled { - mi := &file_full_snapshot_proto_msgTypes[18] + mi := &file_full_snapshot_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3062,7 +3309,7 @@ func (x *RelationInformation) String() string { func (*RelationInformation) ProtoMessage() {} func (x *RelationInformation) ProtoReflect() protoreflect.Message { - mi := &file_full_snapshot_proto_msgTypes[18] + mi := &file_full_snapshot_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3075,7 +3322,7 @@ func (x *RelationInformation) ProtoReflect() protoreflect.Message { // Deprecated: Use RelationInformation.ProtoReflect.Descriptor instead. func (*RelationInformation) Descriptor() ([]byte, []int) { - return file_full_snapshot_proto_rawDescGZIP(), []int{18} + return file_full_snapshot_proto_rawDescGZIP(), []int{20} } func (x *RelationInformation) GetRelationIdx() int32 { @@ -3268,7 +3515,7 @@ type RelationStatistic struct { func (x *RelationStatistic) Reset() { *x = RelationStatistic{} if protoimpl.UnsafeEnabled { - mi := &file_full_snapshot_proto_msgTypes[19] + mi := &file_full_snapshot_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3281,7 +3528,7 @@ func (x *RelationStatistic) String() string { func (*RelationStatistic) ProtoMessage() {} func (x *RelationStatistic) ProtoReflect() protoreflect.Message { - mi := &file_full_snapshot_proto_msgTypes[19] + mi := &file_full_snapshot_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3294,7 +3541,7 @@ func (x *RelationStatistic) ProtoReflect() protoreflect.Message { // Deprecated: Use RelationStatistic.ProtoReflect.Descriptor instead. func (*RelationStatistic) Descriptor() ([]byte, []int) { - return file_full_snapshot_proto_rawDescGZIP(), []int{19} + return file_full_snapshot_proto_rawDescGZIP(), []int{21} } func (x *RelationStatistic) GetRelationIdx() int32 { @@ -3584,7 +3831,7 @@ type RelationEvent struct { func (x *RelationEvent) Reset() { *x = RelationEvent{} if protoimpl.UnsafeEnabled { - mi := &file_full_snapshot_proto_msgTypes[20] + mi := &file_full_snapshot_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3597,7 +3844,7 @@ func (x *RelationEvent) String() string { func (*RelationEvent) ProtoMessage() {} func (x *RelationEvent) ProtoReflect() protoreflect.Message { - mi := &file_full_snapshot_proto_msgTypes[20] + mi := &file_full_snapshot_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3610,7 +3857,7 @@ func (x *RelationEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use RelationEvent.ProtoReflect.Descriptor instead. func (*RelationEvent) Descriptor() ([]byte, []int) { - return file_full_snapshot_proto_rawDescGZIP(), []int{20} + return file_full_snapshot_proto_rawDescGZIP(), []int{22} } func (x *RelationEvent) GetRelationIdx() int32 { @@ -3661,7 +3908,7 @@ type IndexInformation struct { func (x *IndexInformation) Reset() { *x = IndexInformation{} if protoimpl.UnsafeEnabled { - mi := &file_full_snapshot_proto_msgTypes[21] + mi := &file_full_snapshot_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3674,7 +3921,7 @@ func (x *IndexInformation) String() string { func (*IndexInformation) ProtoMessage() {} func (x *IndexInformation) ProtoReflect() protoreflect.Message { - mi := &file_full_snapshot_proto_msgTypes[21] + mi := &file_full_snapshot_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3687,7 +3934,7 @@ func (x *IndexInformation) ProtoReflect() protoreflect.Message { // Deprecated: Use IndexInformation.ProtoReflect.Descriptor instead. func (*IndexInformation) Descriptor() ([]byte, []int) { - return file_full_snapshot_proto_rawDescGZIP(), []int{21} + return file_full_snapshot_proto_rawDescGZIP(), []int{23} } func (x *IndexInformation) GetIndexIdx() int32 { @@ -3778,7 +4025,7 @@ type IndexStatistic struct { func (x *IndexStatistic) Reset() { *x = IndexStatistic{} if protoimpl.UnsafeEnabled { - mi := &file_full_snapshot_proto_msgTypes[22] + mi := &file_full_snapshot_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3791,7 +4038,7 @@ func (x *IndexStatistic) String() string { func (*IndexStatistic) ProtoMessage() {} func (x *IndexStatistic) ProtoReflect() protoreflect.Message { - mi := &file_full_snapshot_proto_msgTypes[22] + mi := &file_full_snapshot_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3804,7 +4051,7 @@ func (x *IndexStatistic) ProtoReflect() protoreflect.Message { // Deprecated: Use IndexStatistic.ProtoReflect.Descriptor instead. func (*IndexStatistic) Descriptor() ([]byte, []int) { - return file_full_snapshot_proto_rawDescGZIP(), []int{22} + return file_full_snapshot_proto_rawDescGZIP(), []int{24} } func (x *IndexStatistic) GetIndexIdx() int32 { @@ -3887,7 +4134,7 @@ type FunctionInformation struct { func (x *FunctionInformation) Reset() { *x = FunctionInformation{} if protoimpl.UnsafeEnabled { - mi := &file_full_snapshot_proto_msgTypes[23] + mi := &file_full_snapshot_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3900,7 +4147,7 @@ func (x *FunctionInformation) String() string { func (*FunctionInformation) ProtoMessage() {} func (x *FunctionInformation) ProtoReflect() protoreflect.Message { - mi := &file_full_snapshot_proto_msgTypes[23] + mi := &file_full_snapshot_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3913,7 +4160,7 @@ func (x *FunctionInformation) ProtoReflect() protoreflect.Message { // Deprecated: Use FunctionInformation.ProtoReflect.Descriptor instead. func (*FunctionInformation) Descriptor() ([]byte, []int) { - return file_full_snapshot_proto_rawDescGZIP(), []int{23} + return file_full_snapshot_proto_rawDescGZIP(), []int{25} } func (x *FunctionInformation) GetFunctionIdx() int32 { @@ -4028,7 +4275,7 @@ type FunctionStatistic struct { func (x *FunctionStatistic) Reset() { *x = FunctionStatistic{} if protoimpl.UnsafeEnabled { - mi := &file_full_snapshot_proto_msgTypes[24] + mi := &file_full_snapshot_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4041,7 +4288,7 @@ func (x *FunctionStatistic) String() string { func (*FunctionStatistic) ProtoMessage() {} func (x *FunctionStatistic) ProtoReflect() protoreflect.Message { - mi := &file_full_snapshot_proto_msgTypes[24] + mi := &file_full_snapshot_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4054,7 +4301,7 @@ func (x *FunctionStatistic) ProtoReflect() protoreflect.Message { // Deprecated: Use FunctionStatistic.ProtoReflect.Descriptor instead. func (*FunctionStatistic) Descriptor() ([]byte, []int) { - return file_full_snapshot_proto_rawDescGZIP(), []int{24} + return file_full_snapshot_proto_rawDescGZIP(), []int{26} } func (x *FunctionStatistic) GetFunctionIdx() int32 { @@ -4105,7 +4352,7 @@ type CustomTypeInformation struct { func (x *CustomTypeInformation) Reset() { *x = CustomTypeInformation{} if protoimpl.UnsafeEnabled { - mi := &file_full_snapshot_proto_msgTypes[25] + mi := &file_full_snapshot_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4118,7 +4365,7 @@ func (x *CustomTypeInformation) String() string { func (*CustomTypeInformation) ProtoMessage() {} func (x *CustomTypeInformation) ProtoReflect() protoreflect.Message { - mi := &file_full_snapshot_proto_msgTypes[25] + mi := &file_full_snapshot_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4131,7 +4378,7 @@ func (x *CustomTypeInformation) ProtoReflect() protoreflect.Message { // Deprecated: Use CustomTypeInformation.ProtoReflect.Descriptor instead. func (*CustomTypeInformation) Descriptor() ([]byte, []int) { - return file_full_snapshot_proto_rawDescGZIP(), []int{25} + return file_full_snapshot_proto_rawDescGZIP(), []int{27} } func (x *CustomTypeInformation) GetDatabaseIdx() int32 { @@ -4218,7 +4465,7 @@ type QueryPlanInformation struct { func (x *QueryPlanInformation) Reset() { *x = QueryPlanInformation{} if protoimpl.UnsafeEnabled { - mi := &file_full_snapshot_proto_msgTypes[26] + mi := &file_full_snapshot_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4231,7 +4478,7 @@ func (x *QueryPlanInformation) String() string { func (*QueryPlanInformation) ProtoMessage() {} func (x *QueryPlanInformation) ProtoReflect() protoreflect.Message { - mi := &file_full_snapshot_proto_msgTypes[26] + mi := &file_full_snapshot_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4244,7 +4491,7 @@ func (x *QueryPlanInformation) ProtoReflect() protoreflect.Message { // Deprecated: Use QueryPlanInformation.ProtoReflect.Descriptor instead. func (*QueryPlanInformation) Descriptor() ([]byte, []int) { - return file_full_snapshot_proto_rawDescGZIP(), []int{26} + return file_full_snapshot_proto_rawDescGZIP(), []int{28} } func (x *QueryPlanInformation) GetQueryPlanIdx() int32 { @@ -4301,7 +4548,7 @@ type QueryPlanStatistic struct { func (x *QueryPlanStatistic) Reset() { *x = QueryPlanStatistic{} if protoimpl.UnsafeEnabled { - mi := &file_full_snapshot_proto_msgTypes[27] + mi := &file_full_snapshot_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4314,7 +4561,7 @@ func (x *QueryPlanStatistic) String() string { func (*QueryPlanStatistic) ProtoMessage() {} func (x *QueryPlanStatistic) ProtoReflect() protoreflect.Message { - mi := &file_full_snapshot_proto_msgTypes[27] + mi := &file_full_snapshot_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4327,7 +4574,7 @@ func (x *QueryPlanStatistic) ProtoReflect() protoreflect.Message { // Deprecated: Use QueryPlanStatistic.ProtoReflect.Descriptor instead. func (*QueryPlanStatistic) Descriptor() ([]byte, []int) { - return file_full_snapshot_proto_rawDescGZIP(), []int{27} + return file_full_snapshot_proto_rawDescGZIP(), []int{29} } func (x *QueryPlanStatistic) GetQueryPlanIdx() int32 { @@ -4455,7 +4702,7 @@ type HistoricQueryPlanStatistics struct { func (x *HistoricQueryPlanStatistics) Reset() { *x = HistoricQueryPlanStatistics{} if protoimpl.UnsafeEnabled { - mi := &file_full_snapshot_proto_msgTypes[28] + mi := &file_full_snapshot_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4468,7 +4715,7 @@ func (x *HistoricQueryPlanStatistics) String() string { func (*HistoricQueryPlanStatistics) ProtoMessage() {} func (x *HistoricQueryPlanStatistics) ProtoReflect() protoreflect.Message { - mi := &file_full_snapshot_proto_msgTypes[28] + mi := &file_full_snapshot_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4481,7 +4728,7 @@ func (x *HistoricQueryPlanStatistics) ProtoReflect() protoreflect.Message { // Deprecated: Use HistoricQueryPlanStatistics.ProtoReflect.Descriptor instead. func (*HistoricQueryPlanStatistics) Descriptor() ([]byte, []int) { - return file_full_snapshot_proto_rawDescGZIP(), []int{28} + return file_full_snapshot_proto_rawDescGZIP(), []int{30} } func (x *HistoricQueryPlanStatistics) GetCollectedAt() *timestamppb.Timestamp { @@ -4522,7 +4769,7 @@ type RelationInformation_Column struct { func (x *RelationInformation_Column) Reset() { *x = RelationInformation_Column{} if protoimpl.UnsafeEnabled { - mi := &file_full_snapshot_proto_msgTypes[30] + mi := &file_full_snapshot_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4535,7 +4782,7 @@ func (x *RelationInformation_Column) String() string { func (*RelationInformation_Column) ProtoMessage() {} func (x *RelationInformation_Column) ProtoReflect() protoreflect.Message { - mi := &file_full_snapshot_proto_msgTypes[30] + mi := &file_full_snapshot_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4548,7 +4795,7 @@ func (x *RelationInformation_Column) ProtoReflect() protoreflect.Message { // Deprecated: Use RelationInformation_Column.ProtoReflect.Descriptor instead. func (*RelationInformation_Column) Descriptor() ([]byte, []int) { - return file_full_snapshot_proto_rawDescGZIP(), []int{18, 1} + return file_full_snapshot_proto_rawDescGZIP(), []int{20, 1} } func (x *RelationInformation_Column) GetName() string { @@ -4615,7 +4862,7 @@ type RelationInformation_ColumnStatistic struct { func (x *RelationInformation_ColumnStatistic) Reset() { *x = RelationInformation_ColumnStatistic{} if protoimpl.UnsafeEnabled { - mi := &file_full_snapshot_proto_msgTypes[31] + mi := &file_full_snapshot_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4628,7 +4875,7 @@ func (x *RelationInformation_ColumnStatistic) String() string { func (*RelationInformation_ColumnStatistic) ProtoMessage() {} func (x *RelationInformation_ColumnStatistic) ProtoReflect() protoreflect.Message { - mi := &file_full_snapshot_proto_msgTypes[31] + mi := &file_full_snapshot_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4641,7 +4888,7 @@ func (x *RelationInformation_ColumnStatistic) ProtoReflect() protoreflect.Messag // Deprecated: Use RelationInformation_ColumnStatistic.ProtoReflect.Descriptor instead. func (*RelationInformation_ColumnStatistic) Descriptor() ([]byte, []int) { - return file_full_snapshot_proto_rawDescGZIP(), []int{18, 2} + return file_full_snapshot_proto_rawDescGZIP(), []int{20, 2} } func (x *RelationInformation_ColumnStatistic) GetInherited() bool { @@ -4698,7 +4945,7 @@ type RelationInformation_Constraint struct { func (x *RelationInformation_Constraint) Reset() { *x = RelationInformation_Constraint{} if protoimpl.UnsafeEnabled { - mi := &file_full_snapshot_proto_msgTypes[32] + mi := &file_full_snapshot_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4711,7 +4958,7 @@ func (x *RelationInformation_Constraint) String() string { func (*RelationInformation_Constraint) ProtoMessage() {} func (x *RelationInformation_Constraint) ProtoReflect() protoreflect.Message { - mi := &file_full_snapshot_proto_msgTypes[32] + mi := &file_full_snapshot_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4724,7 +4971,7 @@ func (x *RelationInformation_Constraint) ProtoReflect() protoreflect.Message { // Deprecated: Use RelationInformation_Constraint.ProtoReflect.Descriptor instead. func (*RelationInformation_Constraint) Descriptor() ([]byte, []int) { - return file_full_snapshot_proto_rawDescGZIP(), []int{18, 3} + return file_full_snapshot_proto_rawDescGZIP(), []int{20, 3} } func (x *RelationInformation_Constraint) GetForeignRelationIdx() int32 { @@ -4810,7 +5057,7 @@ type RelationInformation_ExtendedStatistic struct { func (x *RelationInformation_ExtendedStatistic) Reset() { *x = RelationInformation_ExtendedStatistic{} if protoimpl.UnsafeEnabled { - mi := &file_full_snapshot_proto_msgTypes[33] + mi := &file_full_snapshot_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4823,7 +5070,7 @@ func (x *RelationInformation_ExtendedStatistic) String() string { func (*RelationInformation_ExtendedStatistic) ProtoMessage() {} func (x *RelationInformation_ExtendedStatistic) ProtoReflect() protoreflect.Message { - mi := &file_full_snapshot_proto_msgTypes[33] + mi := &file_full_snapshot_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4836,7 +5083,7 @@ func (x *RelationInformation_ExtendedStatistic) ProtoReflect() protoreflect.Mess // Deprecated: Use RelationInformation_ExtendedStatistic.ProtoReflect.Descriptor instead. func (*RelationInformation_ExtendedStatistic) Descriptor() ([]byte, []int) { - return file_full_snapshot_proto_rawDescGZIP(), []int{18, 4} + return file_full_snapshot_proto_rawDescGZIP(), []int{20, 4} } func (x *RelationInformation_ExtendedStatistic) GetStatisticsSchema() string { @@ -4914,7 +5161,7 @@ type CustomTypeInformation_CompositeAttr struct { func (x *CustomTypeInformation_CompositeAttr) Reset() { *x = CustomTypeInformation_CompositeAttr{} if protoimpl.UnsafeEnabled { - mi := &file_full_snapshot_proto_msgTypes[34] + mi := &file_full_snapshot_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4927,7 +5174,7 @@ func (x *CustomTypeInformation_CompositeAttr) String() string { func (*CustomTypeInformation_CompositeAttr) ProtoMessage() {} func (x *CustomTypeInformation_CompositeAttr) ProtoReflect() protoreflect.Message { - mi := &file_full_snapshot_proto_msgTypes[34] + mi := &file_full_snapshot_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4940,7 +5187,7 @@ func (x *CustomTypeInformation_CompositeAttr) ProtoReflect() protoreflect.Messag // Deprecated: Use CustomTypeInformation_CompositeAttr.ProtoReflect.Descriptor instead. func (*CustomTypeInformation_CompositeAttr) Descriptor() ([]byte, []int) { - return file_full_snapshot_proto_rawDescGZIP(), []int{25, 0} + return file_full_snapshot_proto_rawDescGZIP(), []int{27, 0} } func (x *CustomTypeInformation_CompositeAttr) GetName() string { @@ -4965,7 +5212,7 @@ var file_full_snapshot_proto_rawDesc = []byte{ 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0c, 0x73, 0x68, 0x61, - 0x72, 0x65, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x94, 0x21, 0x0a, 0x0c, 0x46, 0x75, + 0x72, 0x65, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x88, 0x22, 0x0a, 0x0c, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x73, 0x6e, 0x61, 0x70, @@ -5084,1167 +5331,1220 @@ var file_full_snapshot_proto_rawDesc = []byte{ 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, - 0x63, 0x12, 0x38, 0x0a, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x7a, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, - 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, - 0x67, 0x52, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x42, 0x0a, 0x0b, 0x72, - 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x7b, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x20, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x64, 0x0a, 0x18, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x5f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x7c, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x52, 0x16, 0x62, - 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x69, - 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x5e, 0x0a, 0x15, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x82, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, - 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x54, 0x61, 0x62, 0x6c, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, - 0x14, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x64, 0x0a, 0x17, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x18, 0x83, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, - 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x54, 0x61, - 0x62, 0x6c, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x16, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4f, 0x0a, 0x10, 0x71, - 0x75, 0x65, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, - 0xc8, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, - 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0f, 0x71, 0x75, 0x65, - 0x72, 0x79, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x58, 0x0a, 0x13, - 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x73, 0x18, 0xc9, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x67, 0x61, + 0x63, 0x12, 0x72, 0x0a, 0x1d, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x63, 0x73, 0x18, 0x72, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, + 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x48, + 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x6f, 0x53, + 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x1a, 0x68, 0x69, 0x73, 0x74, 0x6f, + 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x69, + 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x38, 0x0a, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, + 0x73, 0x18, 0x7a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, + 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x53, 0x65, + 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, + 0x42, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x7b, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, + 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x64, 0x0a, 0x18, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, + 0x7c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, + 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x42, 0x61, 0x63, 0x6b, + 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x63, 0x52, 0x16, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x53, + 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x5e, 0x0a, 0x15, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x73, 0x18, 0x82, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x67, 0x61, 0x6e, + 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, + 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x52, 0x14, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x64, 0x0a, 0x17, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x83, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x67, + 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x16, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x4f, 0x0a, 0x10, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x73, 0x18, 0xc8, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x52, 0x12, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x10, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, - 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0xca, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x58, 0x0a, 0x13, 0x66, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0xcb, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, - 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x46, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x12, 0x66, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x73, 0x12, 0x5c, 0x0a, 0x15, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x5f, - 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0xcc, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6c, 0x61, - 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x13, 0x71, 0x75, 0x65, 0x72, - 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, - 0x55, 0x0a, 0x12, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xd2, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, + 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, + 0x0f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, + 0x12, 0x58, 0x0a, 0x13, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0xc9, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, + 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x12, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x10, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0xca, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, + 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0f, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x58, 0x0a, 0x13, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x73, 0x18, 0xcb, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x67, 0x61, 0x6e, + 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, + 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x52, 0x12, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x5c, 0x0a, 0x15, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, + 0x6c, 0x61, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0xcc, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, + 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x13, + 0x71, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x73, 0x12, 0x55, 0x0a, 0x12, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x69, 0x6e, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xd2, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x71, 0x75, 0x65, 0x72, 0x79, 0x49, 0x6e, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4f, 0x0a, 0x10, 0x71, 0x75, + 0x65, 0x72, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0xd3, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, + 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0f, 0x71, 0x75, 0x65, 0x72, + 0x79, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x69, 0x0a, 0x19, 0x68, + 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0xd5, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2c, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x17, 0x68, + 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, + 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x54, 0x0a, 0x0e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, + 0x65, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x73, 0x18, 0xd6, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2c, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x70, 0x6c, 0x61, + 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x71, + 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x5e, 0x0a, 0x15, + 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xdc, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x71, 0x75, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4f, 0x0a, 0x10, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, - 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0xd3, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x74, 0x61, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x53, 0x74, 0x61, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x69, 0x0a, 0x19, 0x68, 0x69, 0x73, 0x74, 0x6f, - 0x72, 0x69, 0x63, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, - 0x74, 0x69, 0x63, 0x73, 0x18, 0xd5, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x67, - 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, - 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x17, 0x68, 0x69, 0x73, 0x74, 0x6f, - 0x72, 0x69, 0x63, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, - 0x63, 0x73, 0x12, 0x54, 0x0a, 0x0e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x70, 0x6c, - 0x61, 0x69, 0x6e, 0x73, 0x18, 0xd6, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x67, - 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x49, 0x6e, - 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x71, 0x75, 0x65, 0x72, 0x79, - 0x45, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x5e, 0x0a, 0x15, 0x72, 0x65, 0x6c, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x18, 0xdc, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, - 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x52, - 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x14, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x58, 0x0a, 0x13, 0x72, 0x65, 0x6c, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, - 0xdd, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, - 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x52, 0x65, 0x6c, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x52, 0x12, - 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, - 0x63, 0x73, 0x12, 0x4c, 0x0a, 0x0f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0xdf, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, + 0x6f, 0x72, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x58, 0x0a, 0x13, + 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x63, 0x73, 0x18, 0xdd, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x67, 0x61, + 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x63, 0x52, 0x12, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, + 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x4c, 0x0a, 0x0f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0xdf, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x52, 0x0e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x12, 0x55, 0x0a, 0x12, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x69, 0x6e, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xe0, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x6e, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x49, + 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4f, 0x0a, 0x10, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, + 0xe1, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, + 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0f, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x5e, 0x0a, 0x15, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xe3, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x52, 0x0e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, - 0x12, 0x55, 0x0a, 0x12, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xe0, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, + 0x6f, 0x72, 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x58, 0x0a, 0x13, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x63, 0x73, 0x18, 0xe4, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x67, 0x61, + 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x63, 0x52, 0x12, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, + 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x65, 0x0a, 0x18, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0xe5, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x67, 0x61, 0x6e, + 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, + 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x16, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3f, 0x0a, + 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xe6, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x62, + 0x0a, 0x17, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x6e, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf0, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x29, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6c, 0x61, 0x6e, + 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x15, 0x71, 0x75, 0x65, + 0x72, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x5c, 0x0a, 0x15, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x6c, 0x61, 0x6e, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0xf1, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6c, + 0x61, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x52, 0x13, 0x71, 0x75, 0x65, + 0x72, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, + 0x12, 0x76, 0x0a, 0x1e, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x5f, 0x71, 0x75, 0x65, + 0x72, 0x79, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x63, 0x73, 0x18, 0xf2, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x70, 0x67, 0x61, 0x6e, + 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, + 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6c, 0x61, + 0x6e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x1b, 0x68, 0x69, 0x73, + 0x74, 0x6f, 0x72, 0x69, 0x63, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x53, 0x74, + 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x4a, 0x04, 0x08, 0x78, 0x10, 0x79, 0x4a, 0x04, + 0x08, 0x79, 0x10, 0x7a, 0x4a, 0x06, 0x08, 0xde, 0x01, 0x10, 0xdf, 0x01, 0x4a, 0x06, 0x08, 0xe2, + 0x01, 0x10, 0xe3, 0x01, 0x22, 0xc6, 0x02, 0x0a, 0x12, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x1d, 0x0a, 0x0a, 0x67, + 0x6f, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x67, 0x6f, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3d, 0x0a, 0x1b, 0x6d, 0x65, + 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x68, 0x65, 0x61, 0x70, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x18, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x48, 0x65, 0x61, 0x70, 0x41, 0x6c, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x6d, 0x65, 0x6d, + 0x6f, 0x72, 0x79, 0x5f, 0x68, 0x65, 0x61, 0x70, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x48, 0x65, + 0x61, 0x70, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x6d, 0x65, 0x6d, + 0x6f, 0x72, 0x79, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x53, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x65, 0x6d, + 0x6f, 0x72, 0x79, 0x5f, 0x72, 0x73, 0x73, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x10, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x52, 0x73, 0x73, 0x42, 0x79, + 0x74, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x67, 0x6f, + 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x65, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x47, 0x6f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x65, 0x73, + 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x67, 0x6f, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x1e, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x08, 0x63, 0x67, 0x6f, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x22, 0xb0, 0x03, + 0x0a, 0x0f, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x78, 0x12, 0x18, 0x0a, 0x07, + 0x69, 0x6e, 0x68, 0x65, 0x72, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, + 0x6e, 0x68, 0x65, 0x72, 0x69, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x1b, 0x0a, 0x09, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x62, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x08, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x62, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x75, + 0x70, 0x65, 0x72, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, + 0x73, 0x75, 0x70, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, + 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x62, + 0x79, 0x70, 0x61, 0x73, 0x73, 0x5f, 0x72, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x09, 0x62, 0x79, 0x70, 0x61, 0x73, 0x73, 0x52, 0x6c, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x54, 0x0a, 0x14, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, + 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, + 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x12, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, + 0x64, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x55, 0x6e, 0x74, 0x69, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, + 0x18, 0x0c, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, + 0x22, 0xb8, 0x03, 0x0a, 0x13, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x61, 0x74, 0x61, + 0x62, 0x61, 0x73, 0x65, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, + 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x49, 0x64, 0x78, 0x12, 0x24, 0x0a, 0x0e, 0x6f, + 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x64, + 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x0a, + 0x07, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x63, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, + 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, + 0x2b, 0x0a, 0x11, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x29, 0x0a, 0x10, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x72, 0x6f, 0x7a, 0x65, + 0x6e, 0x5f, 0x78, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x66, 0x72, 0x6f, + 0x7a, 0x65, 0x6e, 0x58, 0x69, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x78, 0x61, 0x63, 0x74, 0x5f, 0x78, 0x69, 0x64, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x78, 0x61, 0x63, 0x74, 0x58, 0x69, 0x64, 0x12, 0x3f, 0x0a, 0x1c, 0x63, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x63, 0x61, + 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x19, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x6c, + 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x44, 0x61, 0x74, 0x61, 0x22, 0xf6, 0x01, 0x0a, 0x11, + 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x63, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x69, 0x64, + 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, + 0x65, 0x49, 0x64, 0x78, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x78, 0x69, + 0x64, 0x5f, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x66, 0x72, 0x6f, + 0x7a, 0x65, 0x6e, 0x78, 0x69, 0x64, 0x41, 0x67, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x69, 0x6e, + 0x6d, 0x78, 0x69, 0x64, 0x5f, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, + 0x6d, 0x69, 0x6e, 0x6d, 0x78, 0x69, 0x64, 0x41, 0x67, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x78, 0x61, + 0x63, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0a, 0x78, 0x61, 0x63, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x78, + 0x61, 0x63, 0x74, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0c, 0x78, 0x61, 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, + 0x12, 0x32, 0x0a, 0x15, 0x75, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x63, 0x61, + 0x63, 0x68, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x13, 0x75, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x42, + 0x79, 0x74, 0x65, 0x73, 0x22, 0x9c, 0x03, 0x0a, 0x0f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, + 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x26, 0x0a, 0x0f, 0x63, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x74, 0x5f, 0x78, 0x61, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x58, 0x61, 0x63, 0x74, 0x49, 0x64, + 0x12, 0x2b, 0x0a, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x78, + 0x61, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x6e, 0x65, + 0x78, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x58, 0x61, 0x63, 0x74, 0x49, 0x64, 0x12, 0x30, 0x0a, + 0x14, 0x78, 0x6d, 0x69, 0x6e, 0x5f, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x5f, 0x62, 0x61, + 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x78, 0x6d, 0x69, + 0x6e, 0x48, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, + 0x41, 0x0a, 0x1d, 0x78, 0x6d, 0x69, 0x6e, 0x5f, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x5f, + 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x6c, 0x6f, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1a, 0x78, 0x6d, 0x69, 0x6e, 0x48, 0x6f, 0x72, 0x69, + 0x7a, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6c, + 0x6f, 0x74, 0x12, 0x50, 0x0a, 0x25, 0x78, 0x6d, 0x69, 0x6e, 0x5f, 0x68, 0x6f, 0x72, 0x69, 0x7a, + 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, + 0x6c, 0x6f, 0x74, 0x5f, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x21, 0x78, 0x6d, 0x69, 0x6e, 0x48, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x52, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6c, 0x6f, 0x74, 0x43, 0x61, 0x74, + 0x61, 0x6c, 0x6f, 0x67, 0x12, 0x3b, 0x0a, 0x1a, 0x78, 0x6d, 0x69, 0x6e, 0x5f, 0x68, 0x6f, 0x72, + 0x69, 0x7a, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x78, 0x61, + 0x63, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x78, 0x6d, 0x69, 0x6e, 0x48, 0x6f, + 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x64, 0x58, 0x61, 0x63, + 0x74, 0x12, 0x30, 0x0a, 0x14, 0x78, 0x6d, 0x69, 0x6e, 0x5f, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, + 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x62, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x12, 0x78, 0x6d, 0x69, 0x6e, 0x48, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x6e, + 0x64, 0x62, 0x79, 0x22, 0xdb, 0x01, 0x0a, 0x1a, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, + 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x63, 0x73, 0x12, 0x3d, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, + 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x12, 0x36, 0x0a, 0x17, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x15, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x76, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x73, 0x12, 0x46, 0x0a, 0x0a, 0x73, 0x74, 0x61, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x72, - 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4f, 0x0a, 0x10, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x5f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0xe1, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, - 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, - 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x5e, 0x0a, 0x15, 0x66, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x18, 0xe3, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, - 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x46, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x14, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x58, 0x0a, 0x13, 0x66, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, - 0xe4, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, - 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x46, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x52, 0x12, - 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, - 0x63, 0x73, 0x12, 0x65, 0x0a, 0x18, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xe5, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, - 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x43, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x16, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3f, 0x0a, 0x0a, 0x65, 0x78, 0x74, - 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xe6, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, - 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, - 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x62, 0x0a, 0x17, 0x71, 0x75, - 0x65, 0x72, 0x79, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf0, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x70, + 0x74, 0x6f, 0x72, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x6f, 0x53, 0x74, 0x61, 0x74, + 0x69, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, + 0x73, 0x22, 0xfa, 0x03, 0x0a, 0x11, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x6f, 0x53, 0x74, + 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x61, 0x63, 0x6b, 0x65, + 0x6e, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x62, + 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6f, + 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, + 0x6f, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6f, 0x5f, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6f, 0x43, + 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x61, 0x64, 0x73, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x72, 0x65, 0x61, 0x64, 0x73, 0x12, 0x1b, 0x0a, 0x09, + 0x72, 0x65, 0x61, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x08, 0x72, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x72, 0x69, + 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x77, 0x72, 0x69, 0x74, 0x65, + 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x77, 0x72, 0x69, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x77, 0x72, 0x69, 0x74, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x77, 0x72, 0x69, 0x74, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x73, + 0x12, 0x25, 0x0a, 0x0e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x77, 0x72, 0x69, 0x74, 0x65, 0x62, + 0x61, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x78, 0x74, 0x65, 0x6e, + 0x64, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, + 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x70, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6f, 0x70, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x12, 0x0a, + 0x04, 0x68, 0x69, 0x74, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x68, 0x69, 0x74, + 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x76, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x65, 0x76, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x16, 0x0a, 0x06, 0x72, 0x65, 0x75, 0x73, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x06, 0x72, 0x65, 0x75, 0x73, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x73, 0x79, 0x6e, 0x63, + 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x66, 0x73, 0x79, 0x6e, 0x63, 0x73, 0x12, + 0x1d, 0x0a, 0x0a, 0x66, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x11, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x09, 0x66, 0x73, 0x79, 0x6e, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xb6, + 0x03, 0x0a, 0x07, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x23, + 0x0a, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x12, 0x33, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x12, 0x3e, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x74, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x6e, 0x66, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x15, 0x71, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6c, - 0x61, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5c, - 0x0a, 0x15, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x73, 0x74, 0x61, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0xf1, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, - 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x53, 0x74, - 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x52, 0x13, 0x71, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6c, - 0x61, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x76, 0x0a, 0x1e, - 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, - 0x6c, 0x61, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0xf2, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, - 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x48, 0x69, 0x73, 0x74, - 0x6f, 0x72, 0x69, 0x63, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x53, 0x74, 0x61, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x1b, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, - 0x63, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, - 0x74, 0x69, 0x63, 0x73, 0x4a, 0x04, 0x08, 0x78, 0x10, 0x79, 0x4a, 0x04, 0x08, 0x79, 0x10, 0x7a, - 0x4a, 0x06, 0x08, 0xde, 0x01, 0x10, 0xdf, 0x01, 0x4a, 0x06, 0x08, 0xe2, 0x01, 0x10, 0xe3, 0x01, - 0x22, 0xc6, 0x02, 0x0a, 0x12, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x53, 0x74, - 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x6f, 0x5f, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x6f, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3d, 0x0a, 0x1b, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, - 0x5f, 0x68, 0x65, 0x61, 0x70, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, - 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x18, 0x6d, 0x65, 0x6d, - 0x6f, 0x72, 0x79, 0x48, 0x65, 0x61, 0x70, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x64, - 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, - 0x68, 0x65, 0x61, 0x70, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x11, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x48, 0x65, 0x61, 0x70, 0x4f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x11, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, - 0x72, 0x73, 0x73, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0e, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x52, 0x73, 0x73, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, - 0x2b, 0x0a, 0x11, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x67, 0x6f, 0x72, 0x6f, 0x75, 0x74, - 0x69, 0x6e, 0x65, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x61, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x47, 0x6f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, - 0x63, 0x67, 0x6f, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x08, 0x63, 0x67, 0x6f, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x22, 0xb0, 0x03, 0x0a, 0x0f, 0x52, 0x6f, - 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, - 0x08, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x07, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x6e, 0x68, 0x65, - 0x72, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x6e, 0x68, 0x65, 0x72, - 0x69, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x05, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x5f, 0x64, 0x62, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x44, 0x62, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, - 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x75, 0x70, 0x65, 0x72, 0x5f, - 0x75, 0x73, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x75, 0x70, 0x65, - 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x72, 0x65, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x79, 0x70, 0x61, 0x73, - 0x73, 0x5f, 0x72, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x62, 0x79, 0x70, - 0x61, 0x73, 0x73, 0x52, 0x6c, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x6d, 0x69, - 0x74, 0x12, 0x54, 0x0a, 0x14, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x5f, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x22, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x52, 0x12, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x56, 0x61, 0x6c, - 0x69, 0x64, 0x55, 0x6e, 0x74, 0x69, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, - 0x1b, 0x0a, 0x09, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x18, 0x0c, 0x20, 0x03, - 0x28, 0x05, 0x52, 0x08, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x22, 0xb8, 0x03, 0x0a, - 0x13, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, - 0x5f, 0x69, 0x64, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x64, 0x61, 0x74, 0x61, - 0x62, 0x61, 0x73, 0x65, 0x49, 0x64, 0x78, 0x12, 0x24, 0x0a, 0x0e, 0x6f, 0x77, 0x6e, 0x65, 0x72, - 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0c, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x78, 0x12, 0x1a, 0x0a, - 0x08, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6c, - 0x6c, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6c, 0x6c, - 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x73, - 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0a, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, - 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x6e, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, - 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x5f, 0x78, 0x69, - 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x58, - 0x69, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x78, 0x61, 0x63, 0x74, 0x5f, 0x78, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x13, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x78, - 0x61, 0x63, 0x74, 0x58, 0x69, 0x64, 0x12, 0x3f, 0x0a, 0x1c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, - 0x67, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x19, 0x63, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x43, 0x61, 0x74, 0x61, - 0x6c, 0x6f, 0x67, 0x44, 0x61, 0x74, 0x61, 0x22, 0xf6, 0x01, 0x0a, 0x11, 0x44, 0x61, 0x74, 0x61, - 0x62, 0x61, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x21, 0x0a, - 0x0c, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x49, 0x64, 0x78, - 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x78, 0x69, 0x64, 0x5f, 0x61, 0x67, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x78, - 0x69, 0x64, 0x41, 0x67, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x69, 0x6e, 0x6d, 0x78, 0x69, 0x64, - 0x5f, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6d, 0x69, 0x6e, 0x6d, - 0x78, 0x69, 0x64, 0x41, 0x67, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x78, 0x61, 0x63, 0x74, 0x5f, 0x63, - 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x78, 0x61, 0x63, - 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x78, 0x61, 0x63, 0x74, 0x5f, - 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, - 0x78, 0x61, 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x32, 0x0a, 0x15, - 0x75, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, - 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x75, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, - 0x22, 0x9c, 0x03, 0x0a, 0x0f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x69, - 0x73, 0x74, 0x69, 0x63, 0x12, 0x26, 0x0a, 0x0f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, - 0x78, 0x61, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x63, - 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x58, 0x61, 0x63, 0x74, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x12, - 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x78, 0x61, 0x63, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x4d, 0x75, - 0x6c, 0x74, 0x69, 0x58, 0x61, 0x63, 0x74, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x78, 0x6d, 0x69, - 0x6e, 0x5f, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x78, 0x6d, 0x69, 0x6e, 0x48, 0x6f, 0x72, - 0x69, 0x7a, 0x6f, 0x6e, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x41, 0x0a, 0x1d, 0x78, - 0x6d, 0x69, 0x6e, 0x5f, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x1a, 0x78, 0x6d, 0x69, 0x6e, 0x48, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x52, - 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6c, 0x6f, 0x74, 0x12, 0x50, - 0x0a, 0x25, 0x78, 0x6d, 0x69, 0x6e, 0x5f, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x5f, 0x72, - 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, - 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x21, 0x78, - 0x6d, 0x69, 0x6e, 0x48, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6c, 0x6f, 0x74, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, - 0x12, 0x3b, 0x0a, 0x1a, 0x78, 0x6d, 0x69, 0x6e, 0x5f, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, - 0x5f, 0x70, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x78, 0x61, 0x63, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x78, 0x6d, 0x69, 0x6e, 0x48, 0x6f, 0x72, 0x69, 0x7a, 0x6f, - 0x6e, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x64, 0x58, 0x61, 0x63, 0x74, 0x12, 0x30, 0x0a, - 0x14, 0x78, 0x6d, 0x69, 0x6e, 0x5f, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x5f, 0x73, 0x74, - 0x61, 0x6e, 0x64, 0x62, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x78, 0x6d, 0x69, - 0x6e, 0x48, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x62, 0x79, 0x22, - 0xb6, 0x03, 0x0a, 0x07, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x23, 0x0a, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x12, 0x33, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x12, 0x3e, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, - 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x6f, 0x72, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x62, + 0x6f, 0x6f, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x65, + 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, - 0x62, 0x6f, 0x6f, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x72, 0x65, 0x73, - 0x65, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, - 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, - 0x0a, 0x72, 0x65, 0x73, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x37, 0x0a, 0x06, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x67, - 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x66, - 0x69, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x67, 0x61, 0x6e, - 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, - 0x4e, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x67, - 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x0a, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x4c, 0x69, 0x6e, 0x65, 0x22, 0x90, 0x01, 0x0a, 0x09, 0x45, 0x78, 0x74, - 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, - 0x73, 0x65, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x64, 0x61, - 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x49, 0x64, 0x78, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x74, - 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x80, 0x05, 0x0a, 0x0b, - 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x69, - 0x6e, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0a, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x12, 0x32, 0x0a, 0x15, - 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x78, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x6f, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x63, 0x75, 0x72, - 0x72, 0x65, 0x6e, 0x74, 0x58, 0x6c, 0x6f, 0x67, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x54, 0x0a, 0x12, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x62, 0x79, 0x5f, 0x72, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, - 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x2e, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x62, 0x79, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x52, 0x11, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x62, 0x79, 0x52, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x5a, 0x0a, 0x14, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x62, - 0x79, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0c, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, - 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x53, 0x74, 0x61, 0x6e, 0x64, - 0x62, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x73, - 0x74, 0x61, 0x6e, 0x64, 0x62, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x12, 0x54, 0x0a, 0x12, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x62, 0x79, 0x5f, 0x73, 0x74, - 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, - 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x62, 0x79, 0x53, 0x74, 0x61, 0x74, - 0x69, 0x73, 0x74, 0x69, 0x63, 0x52, 0x11, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x62, 0x79, 0x53, 0x74, - 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x73, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, - 0x69, 0x73, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x29, 0x0a, 0x10, 0x72, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4c, 0x6f, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, - 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0e, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x24, 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x6c, 0x61, - 0x67, 0x18, 0x17, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x42, 0x79, - 0x74, 0x65, 0x4c, 0x61, 0x67, 0x12, 0x45, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0f, 0x72, 0x65, 0x70, - 0x6c, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x30, 0x0a, 0x14, - 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x5f, 0x61, 0x67, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x72, 0x65, 0x70, 0x6c, - 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x41, 0x67, 0x65, 0x22, 0x33, - 0x0a, 0x10, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x62, 0x79, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, - 0x64, 0x64, 0x72, 0x22, 0xdc, 0x02, 0x0a, 0x12, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x62, 0x79, 0x49, - 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, - 0x61, 0x6e, 0x64, 0x62, 0x79, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0a, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x62, 0x79, 0x49, 0x64, 0x78, 0x12, 0x19, 0x0a, 0x08, 0x72, - 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, - 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x78, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x03, 0x70, 0x69, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x6f, - 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, - 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x3f, 0x0a, - 0x0d, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x52, 0x0c, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x23, - 0x0a, 0x0d, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x73, 0x79, 0x6e, 0x63, 0x50, 0x72, 0x69, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x79, 0x6e, 0x63, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x22, 0xb3, 0x02, 0x0a, 0x10, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x62, 0x79, 0x53, 0x74, - 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x6e, 0x64, - 0x62, 0x79, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x74, - 0x61, 0x6e, 0x64, 0x62, 0x79, 0x49, 0x64, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x23, - 0x0a, 0x0d, 0x73, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x6c, 0x6f, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x77, 0x72, 0x69, - 0x74, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x66, 0x6c, - 0x75, 0x73, 0x68, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6c, 0x6f, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x6c, - 0x61, 0x79, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x72, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x6c, 0x61, 0x67, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0d, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x42, 0x79, 0x74, 0x65, 0x4c, - 0x61, 0x67, 0x12, 0x24, 0x0a, 0x0e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, - 0x5f, 0x6c, 0x61, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, - 0x6c, 0x42, 0x79, 0x74, 0x65, 0x4c, 0x61, 0x67, 0x22, 0x8b, 0x06, 0x0a, 0x15, 0x42, 0x61, 0x63, - 0x6b, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, - 0x69, 0x63, 0x12, 0x20, 0x0a, 0x0c, 0x68, 0x61, 0x73, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, - 0x64, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x68, 0x61, 0x73, 0x52, 0x6f, 0x6c, - 0x65, 0x49, 0x64, 0x78, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x78, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x78, 0x12, - 0x28, 0x0a, 0x10, 0x68, 0x61, 0x73, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, - 0x69, 0x64, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x68, 0x61, 0x73, 0x44, 0x61, - 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x49, 0x64, 0x78, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x61, 0x74, - 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0b, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x49, 0x64, 0x78, 0x12, 0x4d, 0x0a, 0x05, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x70, 0x67, + 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x0a, + 0x72, 0x65, 0x73, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x37, 0x0a, 0x06, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x67, 0x61, + 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x66, 0x69, + 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, + 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, + 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, + 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x67, 0x61, + 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x0a, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x4c, 0x69, 0x6e, 0x65, 0x22, 0x90, 0x01, 0x0a, 0x09, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, + 0x65, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x64, 0x61, 0x74, + 0x61, 0x62, 0x61, 0x73, 0x65, 0x49, 0x64, 0x78, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x1f, 0x0a, 0x0b, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x80, 0x05, 0x0a, 0x0b, 0x52, + 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, + 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0a, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x12, 0x32, 0x0a, 0x15, 0x63, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x78, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x63, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x74, 0x58, 0x6c, 0x6f, 0x67, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x54, 0x0a, 0x12, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x62, 0x79, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, - 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x59, 0x0a, 0x0c, 0x62, - 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x36, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x42, 0x61, - 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x62, 0x61, 0x63, 0x6b, 0x65, - 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x77, 0x61, 0x69, 0x74, 0x69, 0x6e, - 0x67, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0e, 0x77, 0x61, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x46, 0x6f, 0x72, 0x4c, 0x6f, 0x63, 0x6b, - 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9b, 0x01, 0x0a, 0x0c, 0x42, 0x61, 0x63, 0x6b, 0x65, - 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x11, 0x0a, 0x0d, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, - 0x57, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x43, - 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x44, 0x4c, 0x45, 0x10, 0x02, - 0x12, 0x17, 0x0a, 0x13, 0x49, 0x44, 0x4c, 0x45, 0x5f, 0x49, 0x4e, 0x5f, 0x54, 0x52, 0x41, 0x4e, - 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x03, 0x12, 0x1f, 0x0a, 0x1b, 0x49, 0x44, 0x4c, - 0x45, 0x5f, 0x49, 0x4e, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x41, 0x42, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x46, 0x41, - 0x53, 0x54, 0x50, 0x41, 0x54, 0x48, 0x5f, 0x46, 0x55, 0x4e, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x43, 0x41, 0x4c, 0x4c, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, - 0x45, 0x44, 0x10, 0x06, 0x22, 0xdf, 0x01, 0x0a, 0x0b, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x41, 0x55, 0x54, 0x4f, 0x56, 0x41, - 0x43, 0x55, 0x55, 0x4d, 0x5f, 0x4c, 0x41, 0x55, 0x4e, 0x43, 0x48, 0x45, 0x52, 0x10, 0x01, 0x12, - 0x15, 0x0a, 0x11, 0x41, 0x55, 0x54, 0x4f, 0x56, 0x41, 0x43, 0x55, 0x55, 0x4d, 0x5f, 0x57, 0x4f, - 0x52, 0x4b, 0x45, 0x52, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x42, 0x41, 0x43, 0x4b, 0x47, 0x52, - 0x4f, 0x55, 0x4e, 0x44, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x45, 0x52, 0x10, 0x03, 0x12, 0x15, 0x0a, - 0x11, 0x42, 0x41, 0x43, 0x4b, 0x47, 0x52, 0x4f, 0x55, 0x4e, 0x44, 0x5f, 0x57, 0x52, 0x49, 0x54, - 0x45, 0x52, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x42, - 0x41, 0x43, 0x4b, 0x45, 0x4e, 0x44, 0x10, 0x05, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x48, 0x45, 0x43, - 0x4b, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x10, 0x06, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x54, - 0x41, 0x52, 0x54, 0x55, 0x50, 0x10, 0x07, 0x12, 0x0f, 0x0a, 0x0b, 0x57, 0x41, 0x4c, 0x52, 0x45, - 0x43, 0x45, 0x49, 0x56, 0x45, 0x52, 0x10, 0x08, 0x12, 0x0d, 0x0a, 0x09, 0x57, 0x41, 0x4c, 0x53, - 0x45, 0x4e, 0x44, 0x45, 0x52, 0x10, 0x09, 0x12, 0x0d, 0x0a, 0x09, 0x57, 0x41, 0x4c, 0x57, 0x52, - 0x49, 0x54, 0x45, 0x52, 0x10, 0x0a, 0x22, 0x29, 0x0a, 0x13, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x22, 0x9f, 0x01, 0x0a, 0x15, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x74, - 0x61, 0x62, 0x6c, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0d, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, - 0x64, 0x78, 0x12, 0x2c, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, - 0x64, 0x69, 0x73, 0x6b, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x78, - 0x12, 0x19, 0x0a, 0x08, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x07, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x22, 0xbb, 0x16, 0x0a, 0x0f, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, - 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x29, 0x0a, - 0x10, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, - 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, - 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x2c, 0x0a, 0x12, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x6f, 0x67, 0x45, - 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x12, 0x2e, 0x0a, 0x13, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x72, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x11, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x52, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x1f, 0x0a, 0x0b, 0x64, 0x62, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x62, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x64, 0x62, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, - 0x70, 0x6f, 0x72, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x64, 0x62, 0x50, 0x6f, - 0x72, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x62, 0x5f, 0x73, 0x73, 0x6c, 0x6d, 0x6f, 0x64, 0x65, - 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x62, 0x53, 0x73, 0x6c, 0x6d, 0x6f, 0x64, - 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x64, 0x62, 0x5f, 0x68, 0x61, 0x73, 0x5f, 0x73, 0x73, 0x6c, 0x72, - 0x6f, 0x6f, 0x74, 0x63, 0x65, 0x72, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x64, - 0x62, 0x48, 0x61, 0x73, 0x53, 0x73, 0x6c, 0x72, 0x6f, 0x6f, 0x74, 0x63, 0x65, 0x72, 0x74, 0x12, - 0x24, 0x0a, 0x0e, 0x64, 0x62, 0x5f, 0x68, 0x61, 0x73, 0x5f, 0x73, 0x73, 0x6c, 0x63, 0x65, 0x72, - 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x64, 0x62, 0x48, 0x61, 0x73, 0x53, 0x73, - 0x6c, 0x63, 0x65, 0x72, 0x74, 0x12, 0x22, 0x0a, 0x0d, 0x64, 0x62, 0x5f, 0x68, 0x61, 0x73, 0x5f, - 0x73, 0x73, 0x6c, 0x6b, 0x65, 0x79, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x64, 0x62, - 0x48, 0x61, 0x73, 0x53, 0x73, 0x6c, 0x6b, 0x65, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x64, 0x62, 0x5f, - 0x75, 0x72, 0x6c, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x62, 0x55, 0x72, 0x6c, - 0x12, 0x24, 0x0a, 0x0e, 0x64, 0x62, 0x5f, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x62, 0x45, 0x78, 0x74, 0x72, - 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0c, 0x64, 0x62, 0x5f, 0x61, 0x6c, 0x6c, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x20, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x64, 0x62, - 0x41, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x77, 0x73, 0x5f, - 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x77, - 0x73, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x12, 0x61, 0x77, 0x73, 0x5f, 0x64, - 0x62, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x2b, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x77, 0x73, 0x44, 0x62, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x63, 0x65, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x15, 0x61, 0x77, 0x73, 0x5f, 0x68, 0x61, 0x73, 0x5f, - 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x2c, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x11, 0x61, 0x77, 0x73, 0x48, 0x61, 0x73, 0x41, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x4b, 0x65, 0x79, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x13, 0x61, 0x77, 0x73, 0x5f, 0x68, 0x61, - 0x73, 0x5f, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x2d, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x10, 0x61, 0x77, 0x73, 0x48, 0x61, 0x73, 0x41, 0x73, 0x73, 0x75, 0x6d, - 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x2b, 0x0a, 0x12, 0x61, 0x77, 0x73, 0x5f, 0x68, 0x61, 0x73, - 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x2e, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0f, 0x61, 0x77, 0x73, 0x48, 0x61, 0x73, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x49, 0x64, 0x12, 0x43, 0x0a, 0x1f, 0x61, 0x77, 0x73, 0x5f, 0x68, 0x61, 0x73, 0x5f, 0x77, 0x65, - 0x62, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1a, 0x61, 0x77, 0x73, - 0x48, 0x61, 0x73, 0x57, 0x65, 0x62, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x27, 0x0a, 0x10, 0x61, 0x77, 0x73, 0x5f, 0x68, - 0x61, 0x73, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x61, 0x72, 0x6e, 0x18, 0x30, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0d, 0x61, 0x77, 0x73, 0x48, 0x61, 0x73, 0x52, 0x6f, 0x6c, 0x65, 0x41, 0x72, 0x6e, - 0x12, 0x29, 0x0a, 0x11, 0x61, 0x77, 0x73, 0x5f, 0x64, 0x62, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x31, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x77, 0x73, - 0x44, 0x62, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x35, 0x0a, 0x17, 0x61, - 0x77, 0x73, 0x5f, 0x64, 0x62, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x72, 0x65, - 0x61, 0x64, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x32, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x61, 0x77, - 0x73, 0x44, 0x62, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x6f, 0x6e, - 0x6c, 0x79, 0x12, 0x2f, 0x0a, 0x14, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x62, 0x5f, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x36, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x11, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x62, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x18, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x65, 0x76, 0x65, - 0x6e, 0x74, 0x68, 0x75, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, - 0x37, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x68, 0x75, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x2e, 0x0a, - 0x13, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x68, 0x75, 0x62, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x38, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x68, 0x75, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2b, 0x0a, - 0x12, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x61, 0x64, 0x5f, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x39, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x41, 0x64, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x12, 0x61, 0x7a, - 0x75, 0x72, 0x65, 0x5f, 0x61, 0x64, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x3a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x41, 0x64, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x37, 0x0a, 0x18, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x5f, 0x68, 0x61, 0x73, 0x5f, 0x61, 0x64, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x65, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x48, 0x61, 0x73, 0x41, 0x64, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x12, 0x32, 0x0a, 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x13, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x37, 0x0a, 0x18, 0x67, 0x63, 0x70, 0x5f, 0x63, 0x6c, 0x6f, 0x75, - 0x64, 0x73, 0x71, 0x6c, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, - 0x18, 0x45, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x67, 0x63, 0x70, 0x43, 0x6c, 0x6f, 0x75, 0x64, - 0x73, 0x71, 0x6c, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x36, 0x0a, - 0x17, 0x67, 0x63, 0x70, 0x5f, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x5f, 0x73, 0x75, 0x62, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x46, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, - 0x67, 0x63, 0x70, 0x50, 0x75, 0x62, 0x73, 0x75, 0x62, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x18, 0x67, 0x63, 0x70, 0x5f, 0x68, 0x61, 0x73, - 0x5f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x5f, 0x66, 0x69, 0x6c, - 0x65, 0x18, 0x47, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x67, 0x63, 0x70, 0x48, 0x61, 0x73, 0x43, - 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x24, - 0x0a, 0x0e, 0x67, 0x63, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x48, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x67, 0x63, 0x70, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x49, 0x64, 0x12, 0x33, 0x0a, 0x16, 0x67, 0x63, 0x70, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, - 0x79, 0x64, 0x62, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x49, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x67, 0x63, 0x70, 0x41, 0x6c, 0x6c, 0x6f, 0x79, 0x64, 0x62, - 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x35, 0x0a, 0x17, 0x67, 0x63, 0x70, - 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x79, 0x64, 0x62, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, - 0x65, 0x5f, 0x69, 0x64, 0x18, 0x4a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x67, 0x63, 0x70, 0x41, - 0x6c, 0x6c, 0x6f, 0x79, 0x64, 0x62, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, - 0x12, 0x39, 0x0a, 0x19, 0x63, 0x72, 0x75, 0x6e, 0x63, 0x68, 0x79, 0x5f, 0x62, 0x72, 0x69, 0x64, - 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x4b, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x16, 0x63, 0x72, 0x75, 0x6e, 0x63, 0x68, 0x79, 0x42, 0x72, 0x69, 0x64, - 0x67, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x61, - 0x69, 0x76, 0x65, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x4f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x69, 0x76, 0x65, 0x6e, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x61, 0x69, 0x76, 0x65, 0x6e, 0x5f, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x50, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0e, 0x61, 0x69, 0x76, 0x65, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, - 0x22, 0x0a, 0x0d, 0x61, 0x70, 0x69, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, - 0x18, 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x70, 0x69, 0x53, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x61, 0x70, 0x69, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x53, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x70, - 0x69, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x61, - 0x70, 0x69, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, - 0x54, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x70, 0x69, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x53, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x39, 0x0a, 0x19, 0x61, 0x70, 0x69, 0x5f, 0x73, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x5f, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, - 0x63, 0x6b, 0x18, 0x55, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x61, 0x70, 0x69, 0x53, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x46, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, - 0x12, 0x33, 0x0a, 0x16, 0x61, 0x70, 0x69, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, - 0x64, 0x5f, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x56, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x13, 0x61, 0x70, 0x69, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x46, 0x61, 0x6c, - 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x37, 0x0a, 0x18, 0x61, 0x70, 0x69, 0x5f, 0x73, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, - 0x6b, 0x18, 0x57, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x61, 0x70, 0x69, 0x53, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x46, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x26, - 0x0a, 0x0f, 0x64, 0x62, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x5e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x62, 0x4c, 0x6f, 0x67, 0x4c, 0x6f, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x12, 0x64, 0x62, 0x5f, 0x6c, 0x6f, 0x67, - 0x5f, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x5f, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x5f, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0f, 0x64, 0x62, 0x4c, 0x6f, 0x67, 0x44, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x54, - 0x61, 0x69, 0x6c, 0x12, 0x2f, 0x0a, 0x14, 0x64, 0x62, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x73, 0x79, - 0x73, 0x6c, 0x6f, 0x67, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x60, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x11, 0x64, 0x62, 0x4c, 0x6f, 0x67, 0x53, 0x79, 0x73, 0x6c, 0x6f, 0x67, 0x53, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x13, 0x64, 0x62, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x70, - 0x67, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x61, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0f, 0x64, 0x62, 0x4c, 0x6f, 0x67, 0x50, 0x67, 0x52, 0x65, 0x61, 0x64, 0x46, 0x69, - 0x6c, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x74, 0x61, 0x62, - 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x69, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x12, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x12, 0x30, 0x0a, 0x14, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x73, - 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x70, 0x18, 0x6a, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x12, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, - 0x52, 0x65, 0x67, 0x65, 0x78, 0x70, 0x12, 0x30, 0x0a, 0x14, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, - 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x74, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x71, 0x75, 0x65, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x3a, 0x0a, 0x19, 0x6d, 0x61, 0x78, 0x5f, - 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x75, 0x20, 0x01, 0x28, 0x05, 0x52, 0x17, 0x6d, 0x61, 0x78, - 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x69, 0x66, 0x5f, - 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x18, 0x76, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x73, - 0x6b, 0x69, 0x70, 0x49, 0x66, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x12, 0x42, 0x0a, 0x1e, - 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, - 0x5f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x67, 0x62, 0x18, 0x77, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x1a, 0x6d, 0x61, 0x78, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x43, - 0x61, 0x63, 0x68, 0x65, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x47, 0x62, - 0x12, 0x2a, 0x0a, 0x11, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x73, - 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x7f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x2f, 0x0a, 0x13, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x73, 0x61, 0x6d, - 0x70, 0x6c, 0x65, 0x18, 0x80, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x1c, 0x0a, - 0x09, 0x68, 0x61, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x18, 0x81, 0x01, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x08, 0x68, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x65, 0x6e, 0x76, 0x18, 0x82, - 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x46, 0x72, 0x6f, - 0x6d, 0x45, 0x6e, 0x76, 0x12, 0x2b, 0x0a, 0x11, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x71, - 0x75, 0x65, 0x72, 0x79, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x18, 0x83, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x78, - 0x74, 0x12, 0x3e, 0x0a, 0x1b, 0x6f, 0x74, 0x65, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x5f, 0x6f, 0x74, 0x6c, 0x70, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x18, 0x8c, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x6f, 0x74, 0x65, 0x6c, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x4f, 0x74, 0x6c, 0x70, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x22, 0xee, 0x04, 0x0a, 0x0e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x69, - 0x73, 0x74, 0x69, 0x63, 0x12, 0x1b, 0x0a, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x69, 0x64, - 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x71, 0x75, 0x65, 0x72, 0x79, 0x49, 0x64, - 0x78, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x05, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x72, 0x6f, 0x77, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x68, - 0x61, 0x72, 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, 0x68, 0x69, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0d, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x42, 0x6c, 0x6b, 0x73, 0x48, - 0x69, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6b, - 0x73, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x73, 0x68, - 0x61, 0x72, 0x65, 0x64, 0x42, 0x6c, 0x6b, 0x73, 0x52, 0x65, 0x61, 0x64, 0x12, 0x2e, 0x0a, 0x13, - 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, 0x64, 0x69, 0x72, 0x74, - 0x69, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x73, 0x68, 0x61, 0x72, 0x65, - 0x64, 0x42, 0x6c, 0x6b, 0x73, 0x44, 0x69, 0x72, 0x74, 0x69, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x13, - 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, 0x77, 0x72, 0x69, 0x74, - 0x74, 0x65, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x73, 0x68, 0x61, 0x72, 0x65, - 0x64, 0x42, 0x6c, 0x6b, 0x73, 0x57, 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e, 0x12, 0x24, 0x0a, 0x0e, - 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, 0x68, 0x69, 0x74, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x42, 0x6c, 0x6b, 0x73, 0x48, - 0x69, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x6c, 0x6b, 0x73, - 0x5f, 0x72, 0x65, 0x61, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x42, 0x6c, 0x6b, 0x73, 0x52, 0x65, 0x61, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x6c, 0x6f, - 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, 0x64, 0x69, 0x72, 0x74, 0x69, 0x65, 0x64, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x42, 0x6c, 0x6b, - 0x73, 0x44, 0x69, 0x72, 0x74, 0x69, 0x65, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, - 0x6c, 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x42, 0x6c, 0x6b, 0x73, 0x57, - 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x65, 0x6d, 0x70, 0x5f, 0x62, - 0x6c, 0x6b, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, - 0x74, 0x65, 0x6d, 0x70, 0x42, 0x6c, 0x6b, 0x73, 0x52, 0x65, 0x61, 0x64, 0x12, 0x2a, 0x0a, 0x11, - 0x74, 0x65, 0x6d, 0x70, 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x74, 0x65, - 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x74, 0x65, 0x6d, 0x70, 0x42, 0x6c, 0x6b, - 0x73, 0x57, 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e, 0x12, 0x22, 0x0a, 0x0d, 0x62, 0x6c, 0x6b, 0x5f, - 0x72, 0x65, 0x61, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x01, 0x52, - 0x0b, 0x62, 0x6c, 0x6b, 0x52, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, - 0x62, 0x6c, 0x6b, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x10, - 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x62, 0x6c, 0x6b, 0x57, 0x72, 0x69, 0x74, 0x65, 0x54, 0x69, - 0x6d, 0x65, 0x22, 0xd5, 0x01, 0x0a, 0x17, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x3d, - 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x36, 0x0a, - 0x17, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x76, 0x61, 0x6c, 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, - 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, - 0x6c, 0x53, 0x65, 0x63, 0x73, 0x12, 0x43, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, - 0x69, 0x63, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x67, 0x61, 0x6e, - 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0a, - 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x22, 0x8d, 0x14, 0x0a, 0x13, 0x52, - 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, - 0x64, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x64, 0x78, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, - 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x48, 0x0a, 0x0f, 0x76, 0x69, - 0x65, 0x77, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, - 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x53, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x52, 0x0e, 0x76, 0x69, 0x65, 0x77, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x49, 0x0a, 0x07, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x18, - 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, - 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x52, 0x65, 0x6c, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, - 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x52, 0x07, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x12, - 0x55, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x05, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, + 0x72, 0x2e, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x62, 0x79, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x52, 0x11, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x62, 0x79, 0x52, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x5a, 0x0a, 0x14, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x62, 0x79, + 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0c, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, + 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x62, + 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x73, 0x74, + 0x61, 0x6e, 0x64, 0x62, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x54, 0x0a, 0x12, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x62, 0x79, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, + 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x2e, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x62, 0x79, 0x53, 0x74, 0x61, 0x74, 0x69, + 0x73, 0x74, 0x69, 0x63, 0x52, 0x11, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x62, 0x79, 0x53, 0x74, 0x61, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x73, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, + 0x73, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x15, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, + 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x6c, 0x61, 0x67, + 0x18, 0x17, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x42, 0x79, 0x74, + 0x65, 0x4c, 0x61, 0x67, 0x12, 0x45, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x6c, + 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x30, 0x0a, 0x14, 0x72, + 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, + 0x61, 0x67, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x72, 0x65, 0x70, 0x6c, 0x61, + 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x41, 0x67, 0x65, 0x22, 0x33, 0x0a, + 0x10, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x62, 0x79, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x64, + 0x64, 0x72, 0x22, 0xdc, 0x02, 0x0a, 0x12, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x62, 0x79, 0x49, 0x6e, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, + 0x6e, 0x64, 0x62, 0x79, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, + 0x73, 0x74, 0x61, 0x6e, 0x64, 0x62, 0x79, 0x49, 0x64, 0x78, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x6f, + 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x6f, + 0x6c, 0x65, 0x49, 0x64, 0x78, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x03, 0x70, 0x69, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x6f, 0x73, + 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x3f, 0x0a, 0x0d, + 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, + 0x0c, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x23, 0x0a, + 0x0d, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x73, 0x79, 0x6e, 0x63, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x79, 0x6e, 0x63, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x22, 0xb3, 0x02, 0x0a, 0x10, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x62, 0x79, 0x53, 0x74, 0x61, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x62, + 0x79, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x74, 0x61, + 0x6e, 0x64, 0x62, 0x79, 0x49, 0x64, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, + 0x0d, 0x73, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x77, 0x72, 0x69, 0x74, + 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x66, 0x6c, 0x75, + 0x73, 0x68, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x6c, 0x61, + 0x79, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x72, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x6c, 0x61, 0x67, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x0d, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x42, 0x79, 0x74, 0x65, 0x4c, 0x61, + 0x67, 0x12, 0x24, 0x0a, 0x0e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x5f, + 0x6c, 0x61, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x42, 0x79, 0x74, 0x65, 0x4c, 0x61, 0x67, 0x22, 0x8b, 0x06, 0x0a, 0x15, 0x42, 0x61, 0x63, 0x6b, + 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x63, 0x12, 0x20, 0x0a, 0x0c, 0x68, 0x61, 0x73, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, + 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x68, 0x61, 0x73, 0x52, 0x6f, 0x6c, 0x65, + 0x49, 0x64, 0x78, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x78, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x78, 0x12, 0x28, + 0x0a, 0x10, 0x68, 0x61, 0x73, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x69, + 0x64, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x68, 0x61, 0x73, 0x44, 0x61, 0x74, + 0x61, 0x62, 0x61, 0x73, 0x65, 0x49, 0x64, 0x78, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x61, 0x74, 0x61, + 0x62, 0x61, 0x73, 0x65, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, + 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x49, 0x64, 0x78, 0x12, 0x4d, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x70, 0x67, 0x61, + 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x59, 0x0a, 0x0c, 0x62, 0x61, + 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x36, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x42, 0x61, 0x63, + 0x6b, 0x65, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, + 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x77, 0x61, 0x69, 0x74, 0x69, 0x6e, 0x67, + 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0e, 0x77, 0x61, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x46, 0x6f, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x12, + 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9b, 0x01, 0x0a, 0x0c, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, + 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x11, 0x0a, 0x0d, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, + 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x43, 0x54, + 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x44, 0x4c, 0x45, 0x10, 0x02, 0x12, + 0x17, 0x0a, 0x13, 0x49, 0x44, 0x4c, 0x45, 0x5f, 0x49, 0x4e, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, + 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x03, 0x12, 0x1f, 0x0a, 0x1b, 0x49, 0x44, 0x4c, 0x45, + 0x5f, 0x49, 0x4e, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x41, 0x42, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x46, 0x41, 0x53, + 0x54, 0x50, 0x41, 0x54, 0x48, 0x5f, 0x46, 0x55, 0x4e, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, + 0x41, 0x4c, 0x4c, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, + 0x44, 0x10, 0x06, 0x22, 0xdf, 0x01, 0x0a, 0x0b, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x41, 0x55, 0x54, 0x4f, 0x56, 0x41, 0x43, + 0x55, 0x55, 0x4d, 0x5f, 0x4c, 0x41, 0x55, 0x4e, 0x43, 0x48, 0x45, 0x52, 0x10, 0x01, 0x12, 0x15, + 0x0a, 0x11, 0x41, 0x55, 0x54, 0x4f, 0x56, 0x41, 0x43, 0x55, 0x55, 0x4d, 0x5f, 0x57, 0x4f, 0x52, + 0x4b, 0x45, 0x52, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x42, 0x41, 0x43, 0x4b, 0x47, 0x52, 0x4f, + 0x55, 0x4e, 0x44, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x45, 0x52, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, + 0x42, 0x41, 0x43, 0x4b, 0x47, 0x52, 0x4f, 0x55, 0x4e, 0x44, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, + 0x52, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x42, 0x41, + 0x43, 0x4b, 0x45, 0x4e, 0x44, 0x10, 0x05, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x48, 0x45, 0x43, 0x4b, + 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x10, 0x06, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x54, 0x41, + 0x52, 0x54, 0x55, 0x50, 0x10, 0x07, 0x12, 0x0f, 0x0a, 0x0b, 0x57, 0x41, 0x4c, 0x52, 0x45, 0x43, + 0x45, 0x49, 0x56, 0x45, 0x52, 0x10, 0x08, 0x12, 0x0d, 0x0a, 0x09, 0x57, 0x41, 0x4c, 0x53, 0x45, + 0x4e, 0x44, 0x45, 0x52, 0x10, 0x09, 0x12, 0x0d, 0x0a, 0x09, 0x57, 0x41, 0x4c, 0x57, 0x52, 0x49, + 0x54, 0x45, 0x52, 0x10, 0x0a, 0x22, 0x29, 0x0a, 0x13, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x22, 0x9f, 0x01, 0x0a, 0x15, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0d, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, + 0x78, 0x12, 0x2c, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x64, + 0x69, 0x73, 0x6b, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x78, 0x12, + 0x19, 0x0a, 0x08, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x07, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x22, 0xbb, 0x16, 0x0a, 0x0f, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x29, 0x0a, 0x10, + 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x41, + 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x2c, 0x0a, 0x12, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x10, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x6f, 0x67, 0x45, 0x78, + 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x12, 0x2e, 0x0a, 0x13, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, + 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x72, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x11, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, + 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, + 0x0a, 0x0b, 0x64, 0x62, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x62, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x64, 0x62, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x70, + 0x6f, 0x72, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x64, 0x62, 0x50, 0x6f, 0x72, + 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x62, 0x5f, 0x73, 0x73, 0x6c, 0x6d, 0x6f, 0x64, 0x65, 0x18, + 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x62, 0x53, 0x73, 0x6c, 0x6d, 0x6f, 0x64, 0x65, + 0x12, 0x2c, 0x0a, 0x12, 0x64, 0x62, 0x5f, 0x68, 0x61, 0x73, 0x5f, 0x73, 0x73, 0x6c, 0x72, 0x6f, + 0x6f, 0x74, 0x63, 0x65, 0x72, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x64, 0x62, + 0x48, 0x61, 0x73, 0x53, 0x73, 0x6c, 0x72, 0x6f, 0x6f, 0x74, 0x63, 0x65, 0x72, 0x74, 0x12, 0x24, + 0x0a, 0x0e, 0x64, 0x62, 0x5f, 0x68, 0x61, 0x73, 0x5f, 0x73, 0x73, 0x6c, 0x63, 0x65, 0x72, 0x74, + 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x64, 0x62, 0x48, 0x61, 0x73, 0x53, 0x73, 0x6c, + 0x63, 0x65, 0x72, 0x74, 0x12, 0x22, 0x0a, 0x0d, 0x64, 0x62, 0x5f, 0x68, 0x61, 0x73, 0x5f, 0x73, + 0x73, 0x6c, 0x6b, 0x65, 0x79, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x64, 0x62, 0x48, + 0x61, 0x73, 0x53, 0x73, 0x6c, 0x6b, 0x65, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x64, 0x62, 0x5f, 0x75, + 0x72, 0x6c, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x62, 0x55, 0x72, 0x6c, 0x12, + 0x24, 0x0a, 0x0e, 0x64, 0x62, 0x5f, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x62, 0x45, 0x78, 0x74, 0x72, 0x61, + 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0c, 0x64, 0x62, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x20, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x64, 0x62, 0x41, + 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x77, 0x73, 0x5f, 0x72, + 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x77, 0x73, + 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x12, 0x61, 0x77, 0x73, 0x5f, 0x64, 0x62, + 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x2b, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0f, 0x61, 0x77, 0x73, 0x44, 0x62, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x15, 0x61, 0x77, 0x73, 0x5f, 0x68, 0x61, 0x73, 0x5f, 0x61, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x2c, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x11, 0x61, 0x77, 0x73, 0x48, 0x61, 0x73, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x4b, 0x65, 0x79, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x13, 0x61, 0x77, 0x73, 0x5f, 0x68, 0x61, 0x73, + 0x5f, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x2d, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x10, 0x61, 0x77, 0x73, 0x48, 0x61, 0x73, 0x41, 0x73, 0x73, 0x75, 0x6d, 0x65, + 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x2b, 0x0a, 0x12, 0x61, 0x77, 0x73, 0x5f, 0x68, 0x61, 0x73, 0x5f, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0f, 0x61, 0x77, 0x73, 0x48, 0x61, 0x73, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, + 0x64, 0x12, 0x43, 0x0a, 0x1f, 0x61, 0x77, 0x73, 0x5f, 0x68, 0x61, 0x73, 0x5f, 0x77, 0x65, 0x62, + 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, + 0x66, 0x69, 0x6c, 0x65, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1a, 0x61, 0x77, 0x73, 0x48, + 0x61, 0x73, 0x57, 0x65, 0x62, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x27, 0x0a, 0x10, 0x61, 0x77, 0x73, 0x5f, 0x68, 0x61, + 0x73, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x61, 0x72, 0x6e, 0x18, 0x30, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0d, 0x61, 0x77, 0x73, 0x48, 0x61, 0x73, 0x52, 0x6f, 0x6c, 0x65, 0x41, 0x72, 0x6e, 0x12, + 0x29, 0x0a, 0x11, 0x61, 0x77, 0x73, 0x5f, 0x64, 0x62, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x18, 0x31, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x77, 0x73, 0x44, + 0x62, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x35, 0x0a, 0x17, 0x61, 0x77, + 0x73, 0x5f, 0x64, 0x62, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x61, + 0x64, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x32, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x61, 0x77, 0x73, + 0x44, 0x62, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x6f, 0x6e, 0x6c, + 0x79, 0x12, 0x2f, 0x0a, 0x14, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x62, 0x5f, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x36, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x11, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x62, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x18, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x68, 0x75, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x37, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x68, 0x75, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x13, + 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x68, 0x75, 0x62, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x38, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x61, 0x7a, 0x75, 0x72, 0x65, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x68, 0x75, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x12, + 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x61, 0x64, 0x5f, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x39, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x41, + 0x64, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x12, 0x61, 0x7a, 0x75, + 0x72, 0x65, 0x5f, 0x61, 0x64, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x3a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x41, 0x64, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x37, 0x0a, 0x18, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, + 0x68, 0x61, 0x73, 0x5f, 0x61, 0x64, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x65, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x48, + 0x61, 0x73, 0x41, 0x64, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, + 0x32, 0x0a, 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, + 0x61, 0x7a, 0x75, 0x72, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x64, 0x12, 0x37, 0x0a, 0x18, 0x67, 0x63, 0x70, 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x73, 0x71, 0x6c, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x45, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x67, 0x63, 0x70, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x73, + 0x71, 0x6c, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x17, + 0x67, 0x63, 0x70, 0x5f, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x46, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x67, + 0x63, 0x70, 0x50, 0x75, 0x62, 0x73, 0x75, 0x62, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x18, 0x67, 0x63, 0x70, 0x5f, 0x68, 0x61, 0x73, 0x5f, + 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x5f, 0x66, 0x69, 0x6c, 0x65, + 0x18, 0x47, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x67, 0x63, 0x70, 0x48, 0x61, 0x73, 0x43, 0x72, + 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x24, 0x0a, + 0x0e, 0x67, 0x63, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x48, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x67, 0x63, 0x70, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x49, 0x64, 0x12, 0x33, 0x0a, 0x16, 0x67, 0x63, 0x70, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x79, + 0x64, 0x62, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x49, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x13, 0x67, 0x63, 0x70, 0x41, 0x6c, 0x6c, 0x6f, 0x79, 0x64, 0x62, 0x43, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x35, 0x0a, 0x17, 0x67, 0x63, 0x70, 0x5f, + 0x61, 0x6c, 0x6c, 0x6f, 0x79, 0x64, 0x62, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x5f, 0x69, 0x64, 0x18, 0x4a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x67, 0x63, 0x70, 0x41, 0x6c, + 0x6c, 0x6f, 0x79, 0x64, 0x62, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, + 0x39, 0x0a, 0x19, 0x63, 0x72, 0x75, 0x6e, 0x63, 0x68, 0x79, 0x5f, 0x62, 0x72, 0x69, 0x64, 0x67, + 0x65, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x4b, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x16, 0x63, 0x72, 0x75, 0x6e, 0x63, 0x68, 0x79, 0x42, 0x72, 0x69, 0x64, 0x67, + 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x61, 0x69, + 0x76, 0x65, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x4f, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x69, 0x76, 0x65, 0x6e, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x61, 0x69, 0x76, 0x65, 0x6e, 0x5f, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x50, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x61, 0x69, 0x76, 0x65, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x22, + 0x0a, 0x0d, 0x61, 0x70, 0x69, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, + 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x70, 0x69, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, + 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x61, 0x70, 0x69, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x53, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x70, 0x69, + 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x61, 0x70, + 0x69, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x54, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x70, 0x69, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, + 0x63, 0x6f, 0x70, 0x65, 0x12, 0x39, 0x0a, 0x19, 0x61, 0x70, 0x69, 0x5f, 0x73, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x5f, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, + 0x6b, 0x18, 0x55, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x61, 0x70, 0x69, 0x53, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x46, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x12, + 0x33, 0x0a, 0x16, 0x61, 0x70, 0x69, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, + 0x5f, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x56, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x13, 0x61, 0x70, 0x69, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x46, 0x61, 0x6c, 0x6c, + 0x62, 0x61, 0x63, 0x6b, 0x12, 0x37, 0x0a, 0x18, 0x61, 0x70, 0x69, 0x5f, 0x73, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, + 0x18, 0x57, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x61, 0x70, 0x69, 0x53, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0x54, 0x79, 0x70, 0x65, 0x46, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x26, 0x0a, + 0x0f, 0x64, 0x62, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x5e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x62, 0x4c, 0x6f, 0x67, 0x4c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x12, 0x64, 0x62, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, + 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x5f, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x5f, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0f, 0x64, 0x62, 0x4c, 0x6f, 0x67, 0x44, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x54, 0x61, + 0x69, 0x6c, 0x12, 0x2f, 0x0a, 0x14, 0x64, 0x62, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x73, 0x79, 0x73, + 0x6c, 0x6f, 0x67, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x60, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x11, 0x64, 0x62, 0x4c, 0x6f, 0x67, 0x53, 0x79, 0x73, 0x6c, 0x6f, 0x67, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x13, 0x64, 0x62, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x70, 0x67, + 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x61, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0f, 0x64, 0x62, 0x4c, 0x6f, 0x67, 0x50, 0x67, 0x52, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, + 0x65, 0x12, 0x30, 0x0a, 0x14, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x5f, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x69, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x12, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x12, 0x30, 0x0a, 0x14, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x73, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x70, 0x18, 0x6a, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x12, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, + 0x65, 0x67, 0x65, 0x78, 0x70, 0x12, 0x30, 0x0a, 0x14, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x73, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x74, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x12, 0x71, 0x75, 0x65, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x3a, 0x0a, 0x19, 0x6d, 0x61, 0x78, 0x5f, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x75, 0x20, 0x01, 0x28, 0x05, 0x52, 0x17, 0x6d, 0x61, 0x78, 0x43, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x69, 0x66, 0x5f, 0x72, + 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x18, 0x76, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x73, 0x6b, + 0x69, 0x70, 0x49, 0x66, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x12, 0x42, 0x0a, 0x1e, 0x6d, + 0x61, 0x78, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, + 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x67, 0x62, 0x18, 0x77, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x1a, 0x6d, 0x61, 0x78, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x43, 0x61, + 0x63, 0x68, 0x65, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x47, 0x62, 0x12, + 0x2a, 0x0a, 0x11, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x73, 0x65, + 0x63, 0x72, 0x65, 0x74, 0x18, 0x7f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x2f, 0x0a, 0x13, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x73, 0x61, 0x6d, 0x70, + 0x6c, 0x65, 0x18, 0x80, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x1c, 0x0a, 0x09, + 0x68, 0x61, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x18, 0x81, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x08, 0x68, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x65, 0x6e, 0x76, 0x18, 0x82, 0x01, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x46, 0x72, 0x6f, 0x6d, + 0x45, 0x6e, 0x76, 0x12, 0x2b, 0x0a, 0x11, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x71, 0x75, + 0x65, 0x72, 0x79, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x18, 0x83, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x78, 0x74, + 0x12, 0x3e, 0x0a, 0x1b, 0x6f, 0x74, 0x65, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x5f, 0x6f, 0x74, 0x6c, 0x70, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, + 0x8c, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x6f, 0x74, 0x65, 0x6c, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x4f, 0x74, 0x6c, 0x70, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x22, 0xee, 0x04, 0x0a, 0x0e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x63, 0x12, 0x1b, 0x0a, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x78, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x71, 0x75, 0x65, 0x72, 0x79, 0x49, 0x64, 0x78, + 0x12, 0x14, 0x0a, 0x05, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x05, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x04, 0x72, 0x6f, 0x77, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x68, 0x61, + 0x72, 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, 0x68, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x0d, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x42, 0x6c, 0x6b, 0x73, 0x48, 0x69, + 0x74, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6b, 0x73, + 0x5f, 0x72, 0x65, 0x61, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x73, 0x68, 0x61, + 0x72, 0x65, 0x64, 0x42, 0x6c, 0x6b, 0x73, 0x52, 0x65, 0x61, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x73, + 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, 0x64, 0x69, 0x72, 0x74, 0x69, + 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, + 0x42, 0x6c, 0x6b, 0x73, 0x44, 0x69, 0x72, 0x74, 0x69, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x73, + 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x74, + 0x65, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, + 0x42, 0x6c, 0x6b, 0x73, 0x57, 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e, 0x12, 0x24, 0x0a, 0x0e, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, 0x68, 0x69, 0x74, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x42, 0x6c, 0x6b, 0x73, 0x48, 0x69, + 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, + 0x72, 0x65, 0x61, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x42, 0x6c, 0x6b, 0x73, 0x52, 0x65, 0x61, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, 0x64, 0x69, 0x72, 0x74, 0x69, 0x65, 0x64, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x42, 0x6c, 0x6b, 0x73, + 0x44, 0x69, 0x72, 0x74, 0x69, 0x65, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x42, 0x6c, 0x6b, 0x73, 0x57, 0x72, + 0x69, 0x74, 0x74, 0x65, 0x6e, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x65, 0x6d, 0x70, 0x5f, 0x62, 0x6c, + 0x6b, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x74, + 0x65, 0x6d, 0x70, 0x42, 0x6c, 0x6b, 0x73, 0x52, 0x65, 0x61, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x74, + 0x65, 0x6d, 0x70, 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x74, 0x65, 0x6d, 0x70, 0x42, 0x6c, 0x6b, 0x73, + 0x57, 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e, 0x12, 0x22, 0x0a, 0x0d, 0x62, 0x6c, 0x6b, 0x5f, 0x72, + 0x65, 0x61, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, + 0x62, 0x6c, 0x6b, 0x52, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x62, + 0x6c, 0x6b, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x10, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x0c, 0x62, 0x6c, 0x6b, 0x57, 0x72, 0x69, 0x74, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x22, 0xd5, 0x01, 0x0a, 0x17, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x3d, 0x0a, + 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, + 0x0b, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x36, 0x0a, 0x17, + 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, + 0x61, 0x6c, 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, + 0x53, 0x65, 0x63, 0x73, 0x12, 0x43, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x63, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, + 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0a, 0x73, + 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x22, 0x8d, 0x14, 0x0a, 0x13, 0x52, 0x65, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, + 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x64, 0x78, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x6c, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x48, 0x0a, 0x0f, 0x76, 0x69, 0x65, + 0x77, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x52, 0x0e, 0x76, 0x69, 0x65, 0x77, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x49, 0x0a, 0x07, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, - 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x74, - 0x72, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, - 0x74, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x6c, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x6c, 0x66, 0x61, 0x63, 0x74, 0x6f, - 0x72, 0x12, 0x19, 0x0a, 0x08, 0x68, 0x61, 0x73, 0x5f, 0x6f, 0x69, 0x64, 0x73, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x07, 0x68, 0x61, 0x73, 0x4f, 0x69, 0x64, 0x73, 0x12, 0x38, 0x0a, 0x18, - 0x68, 0x61, 0x73, 0x5f, 0x69, 0x6e, 0x68, 0x65, 0x72, 0x69, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, - 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, - 0x68, 0x61, 0x73, 0x49, 0x6e, 0x68, 0x65, 0x72, 0x69, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x68, - 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x5f, 0x74, 0x6f, - 0x61, 0x73, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x68, 0x61, 0x73, 0x54, 0x6f, - 0x61, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x12, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, - 0x6c, 0x79, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x11, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x6c, 0x79, 0x4c, 0x6f, 0x63, 0x6b, - 0x65, 0x64, 0x12, 0x4f, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0e, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, + 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x52, 0x07, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x12, 0x55, + 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65, - 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x11, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x64, 0x78, 0x12, 0x2e, 0x0a, 0x13, 0x68, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x11, 0x68, 0x61, 0x73, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x11, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x61, - 0x72, 0x79, 0x12, 0x69, 0x0a, 0x12, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3a, - 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x52, 0x11, 0x70, 0x61, 0x72, 0x74, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x2b, 0x0a, - 0x11, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, - 0x6e, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x05, 0x52, 0x10, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x61, - 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x14, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x65, 0x64, 0x42, - 0x79, 0x12, 0x3e, 0x0a, 0x0a, 0x74, 0x6f, 0x61, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, - 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, - 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x74, 0x6f, 0x61, 0x73, 0x74, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x61, 0x0a, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x73, 0x74, - 0x61, 0x74, 0x73, 0x18, 0x16, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x70, 0x67, 0x61, 0x6e, - 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, - 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, - 0x69, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0d, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x53, - 0x74, 0x61, 0x74, 0x73, 0x1a, 0x3a, 0x0a, 0x0c, 0x4f, 0x70, 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, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, - 0x1a, 0xe1, 0x02, 0x0a, 0x06, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x1b, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x44, 0x0a, 0x0d, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, - 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x53, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x6f, 0x74, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x6e, 0x6f, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x12, 0x1a, 0x0a, - 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x58, 0x0a, 0x0a, 0x73, 0x74, 0x61, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, + 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, + 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, + 0x61, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x6c, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x6c, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, + 0x12, 0x19, 0x0a, 0x08, 0x68, 0x61, 0x73, 0x5f, 0x6f, 0x69, 0x64, 0x73, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x07, 0x68, 0x61, 0x73, 0x4f, 0x69, 0x64, 0x73, 0x12, 0x38, 0x0a, 0x18, 0x68, + 0x61, 0x73, 0x5f, 0x69, 0x6e, 0x68, 0x65, 0x72, 0x69, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x63, + 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x68, + 0x61, 0x73, 0x49, 0x6e, 0x68, 0x65, 0x72, 0x69, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x68, 0x69, + 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x5f, 0x74, 0x6f, 0x61, + 0x73, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x68, 0x61, 0x73, 0x54, 0x6f, 0x61, + 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x12, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x6c, + 0x79, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, + 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x6c, 0x79, 0x4c, 0x6f, 0x63, 0x6b, 0x65, + 0x64, 0x12, 0x4f, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0e, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x6c, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x11, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x64, 0x78, 0x12, 0x2e, 0x0a, 0x13, 0x68, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x11, 0x68, 0x61, 0x73, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, + 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, + 0x79, 0x12, 0x69, 0x0a, 0x12, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, + 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3a, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x53, 0x74, - 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, - 0x69, 0x63, 0x73, 0x12, 0x4f, 0x0a, 0x14, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x74, 0x33, - 0x32, 0x52, 0x11, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x43, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x49, 0x64, 0x78, 0x1a, 0xcb, 0x01, 0x0a, 0x0f, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x53, - 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x68, 0x65, - 0x72, 0x69, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x6e, 0x68, - 0x65, 0x72, 0x69, 0x74, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x66, - 0x72, 0x61, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x6e, 0x75, 0x6c, 0x6c, 0x46, - 0x72, 0x61, 0x63, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x76, 0x67, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x61, 0x76, 0x67, 0x57, 0x69, 0x64, 0x74, 0x68, - 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x63, 0x74, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x6e, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x63, 0x74, 0x12, - 0x41, 0x0a, 0x0b, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, + 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x52, 0x11, 0x70, 0x61, 0x72, 0x74, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x2b, 0x0a, 0x11, + 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, + 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x05, 0x52, 0x10, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x61, 0x72, + 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x14, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x65, 0x64, 0x42, 0x79, + 0x12, 0x3e, 0x0a, 0x0a, 0x74, 0x6f, 0x61, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, - 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x44, - 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x52, 0x0b, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x1a, 0xde, 0x02, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, - 0x74, 0x12, 0x30, 0x0a, 0x14, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x65, 0x6c, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x12, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x64, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x63, - 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x66, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x44, - 0x65, 0x66, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x18, 0x05, 0x20, - 0x03, 0x28, 0x05, 0x52, 0x07, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x0f, - 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x18, - 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0e, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x43, 0x6f, - 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, - 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x11, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, - 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x11, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, - 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x10, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, - 0x79, 0x70, 0x65, 0x1a, 0xf7, 0x02, 0x0a, 0x11, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, - 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x74, 0x61, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, - 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, - 0x74, 0x69, 0x63, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, - 0x52, 0x07, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x78, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, - 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6b, - 0x69, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, - 0x19, 0x0a, 0x08, 0x68, 0x61, 0x73, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x07, 0x68, 0x61, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, - 0x68, 0x65, 0x72, 0x69, 0x74, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, - 0x6e, 0x68, 0x65, 0x72, 0x69, 0x74, 0x65, 0x64, 0x12, 0x3e, 0x0a, 0x0a, 0x6e, 0x5f, 0x64, 0x69, - 0x73, 0x74, 0x69, 0x6e, 0x63, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, + 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x53, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x74, 0x6f, 0x61, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x61, 0x0a, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x73, 0x18, 0x16, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, + 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x52, + 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69, + 0x73, 0x74, 0x69, 0x63, 0x52, 0x0d, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x53, 0x74, + 0x61, 0x74, 0x73, 0x1a, 0x3a, 0x0a, 0x0c, 0x4f, 0x70, 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, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, + 0xe1, 0x02, 0x0a, 0x06, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, + 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x6f, 0x74, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x07, 0x6e, 0x6f, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x12, 0x1a, 0x0a, 0x08, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x58, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, + 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x6e, - 0x44, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x63, 0x74, 0x12, 0x43, 0x0a, 0x0c, 0x64, 0x65, 0x70, 0x65, - 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, - 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, - 0x0c, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x22, 0x3f, 0x0a, - 0x11, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, - 0x67, 0x79, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, - 0x09, 0x0a, 0x05, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x49, - 0x53, 0x54, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x41, 0x53, 0x48, 0x10, 0x03, 0x4a, 0x04, - 0x08, 0x0b, 0x10, 0x0c, 0x4a, 0x04, 0x08, 0x0c, 0x10, 0x0d, 0x22, 0xb3, 0x0c, 0x0a, 0x11, 0x52, - 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, - 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x78, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x64, 0x78, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, - 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x5f, 0x73, 0x63, 0x61, 0x6e, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x73, 0x65, 0x71, 0x53, 0x63, 0x61, 0x6e, 0x12, 0x20, 0x0a, - 0x0c, 0x73, 0x65, 0x71, 0x5f, 0x74, 0x75, 0x70, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0a, 0x73, 0x65, 0x71, 0x54, 0x75, 0x70, 0x52, 0x65, 0x61, 0x64, 0x12, - 0x19, 0x0a, 0x08, 0x69, 0x64, 0x78, 0x5f, 0x73, 0x63, 0x61, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x07, 0x69, 0x64, 0x78, 0x53, 0x63, 0x61, 0x6e, 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x64, - 0x78, 0x5f, 0x74, 0x75, 0x70, 0x5f, 0x66, 0x65, 0x74, 0x63, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0b, 0x69, 0x64, 0x78, 0x54, 0x75, 0x70, 0x46, 0x65, 0x74, 0x63, 0x68, 0x12, 0x1a, - 0x0a, 0x09, 0x6e, 0x5f, 0x74, 0x75, 0x70, 0x5f, 0x69, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x07, 0x6e, 0x54, 0x75, 0x70, 0x49, 0x6e, 0x73, 0x12, 0x1a, 0x0a, 0x09, 0x6e, 0x5f, - 0x74, 0x75, 0x70, 0x5f, 0x75, 0x70, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6e, - 0x54, 0x75, 0x70, 0x55, 0x70, 0x64, 0x12, 0x1a, 0x0a, 0x09, 0x6e, 0x5f, 0x74, 0x75, 0x70, 0x5f, - 0x64, 0x65, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6e, 0x54, 0x75, 0x70, 0x44, - 0x65, 0x6c, 0x12, 0x21, 0x0a, 0x0d, 0x6e, 0x5f, 0x74, 0x75, 0x70, 0x5f, 0x68, 0x6f, 0x74, 0x5f, - 0x75, 0x70, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6e, 0x54, 0x75, 0x70, 0x48, - 0x6f, 0x74, 0x55, 0x70, 0x64, 0x12, 0x1c, 0x0a, 0x0a, 0x6e, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x5f, - 0x74, 0x75, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6e, 0x4c, 0x69, 0x76, 0x65, - 0x54, 0x75, 0x70, 0x12, 0x1c, 0x0a, 0x0a, 0x6e, 0x5f, 0x64, 0x65, 0x61, 0x64, 0x5f, 0x74, 0x75, - 0x70, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6e, 0x44, 0x65, 0x61, 0x64, 0x54, 0x75, - 0x70, 0x12, 0x2d, 0x0a, 0x13, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, - 0x5f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, - 0x6e, 0x4d, 0x6f, 0x64, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, - 0x12, 0x2b, 0x0a, 0x12, 0x6e, 0x5f, 0x69, 0x6e, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, - 0x76, 0x61, 0x63, 0x75, 0x75, 0x6d, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x6e, 0x49, - 0x6e, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x56, 0x61, 0x63, 0x75, 0x75, 0x6d, 0x12, 0x24, 0x0a, - 0x0e, 0x68, 0x65, 0x61, 0x70, 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x18, - 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x68, 0x65, 0x61, 0x70, 0x42, 0x6c, 0x6b, 0x73, 0x52, - 0x65, 0x61, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x68, 0x65, 0x61, 0x70, 0x5f, 0x62, 0x6c, 0x6b, 0x73, - 0x5f, 0x68, 0x69, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x68, 0x65, 0x61, 0x70, - 0x42, 0x6c, 0x6b, 0x73, 0x48, 0x69, 0x74, 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x64, 0x78, 0x5f, 0x62, - 0x6c, 0x6b, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, - 0x69, 0x64, 0x78, 0x42, 0x6c, 0x6b, 0x73, 0x52, 0x65, 0x61, 0x64, 0x12, 0x20, 0x0a, 0x0c, 0x69, - 0x64, 0x78, 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, 0x68, 0x69, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0a, 0x69, 0x64, 0x78, 0x42, 0x6c, 0x6b, 0x73, 0x48, 0x69, 0x74, 0x12, 0x26, 0x0a, - 0x0f, 0x74, 0x6f, 0x61, 0x73, 0x74, 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x64, - 0x18, 0x16, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x6f, 0x61, 0x73, 0x74, 0x42, 0x6c, 0x6b, - 0x73, 0x52, 0x65, 0x61, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x6f, 0x61, 0x73, 0x74, 0x5f, 0x62, - 0x6c, 0x6b, 0x73, 0x5f, 0x68, 0x69, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x74, - 0x6f, 0x61, 0x73, 0x74, 0x42, 0x6c, 0x6b, 0x73, 0x48, 0x69, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x74, - 0x69, 0x64, 0x78, 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x18, 0x18, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0c, 0x74, 0x69, 0x64, 0x78, 0x42, 0x6c, 0x6b, 0x73, 0x52, 0x65, 0x61, - 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x74, 0x69, 0x64, 0x78, 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, 0x68, - 0x69, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x74, 0x69, 0x64, 0x78, 0x42, 0x6c, - 0x6b, 0x73, 0x48, 0x69, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x6f, 0x61, 0x73, 0x74, 0x5f, 0x73, - 0x69, 0x7a, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x0e, 0x74, 0x6f, 0x61, 0x73, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, - 0x43, 0x0a, 0x0b, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x1b, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, - 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, - 0x65, 0x64, 0x41, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x78, 0x69, - 0x64, 0x5f, 0x61, 0x67, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x66, 0x72, 0x6f, - 0x7a, 0x65, 0x6e, 0x78, 0x69, 0x64, 0x41, 0x67, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x69, 0x6e, - 0x6d, 0x78, 0x69, 0x64, 0x5f, 0x61, 0x67, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, - 0x6d, 0x69, 0x6e, 0x6d, 0x78, 0x69, 0x64, 0x41, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, - 0x6c, 0x70, 0x61, 0x67, 0x65, 0x73, 0x18, 0x28, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, 0x65, - 0x6c, 0x70, 0x61, 0x67, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x6c, 0x74, 0x75, 0x70, - 0x6c, 0x65, 0x73, 0x18, 0x29, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x72, 0x65, 0x6c, 0x74, 0x75, - 0x70, 0x6c, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x6c, 0x6c, 0x76, 0x69, - 0x73, 0x69, 0x62, 0x6c, 0x65, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x65, 0x6c, - 0x61, 0x6c, 0x6c, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, - 0x6c, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x78, 0x69, 0x64, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0c, 0x72, 0x65, 0x6c, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x78, 0x69, 0x64, 0x12, 0x1e, - 0x0a, 0x0a, 0x72, 0x65, 0x6c, 0x6d, 0x69, 0x6e, 0x6d, 0x78, 0x69, 0x64, 0x18, 0x2c, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x0a, 0x72, 0x65, 0x6c, 0x6d, 0x69, 0x6e, 0x6d, 0x78, 0x69, 0x64, 0x12, 0x43, - 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x63, 0x75, 0x75, 0x6d, 0x18, 0x2d, 0x20, + 0x6f, 0x72, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x53, 0x74, 0x61, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x63, 0x73, 0x12, 0x4f, 0x0a, 0x14, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1e, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x74, 0x33, 0x32, + 0x52, 0x11, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x49, 0x64, 0x78, 0x1a, 0xcb, 0x01, 0x0a, 0x0f, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x53, 0x74, + 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x68, 0x65, 0x72, + 0x69, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x6e, 0x68, 0x65, + 0x72, 0x69, 0x74, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x66, 0x72, + 0x61, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x6e, 0x75, 0x6c, 0x6c, 0x46, 0x72, + 0x61, 0x63, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x76, 0x67, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x61, 0x76, 0x67, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, + 0x1d, 0x0a, 0x0a, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x63, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x09, 0x6e, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x63, 0x74, 0x12, 0x41, + 0x0a, 0x0b, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, + 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x44, 0x6f, + 0x75, 0x62, 0x6c, 0x65, 0x52, 0x0b, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x1a, 0xde, 0x02, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, + 0x12, 0x30, 0x0a, 0x14, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x65, 0x6c, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, + 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x64, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, + 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x66, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x44, 0x65, + 0x66, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, + 0x28, 0x05, 0x52, 0x07, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x66, + 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x05, 0x52, 0x0e, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6c, + 0x75, 0x6d, 0x6e, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x5f, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x11, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x5f, + 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x11, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x5f, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x10, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x79, + 0x70, 0x65, 0x1a, 0xf7, 0x02, 0x0a, 0x11, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x53, + 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x74, 0x61, 0x74, + 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x53, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x63, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, + 0x07, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x65, + 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, + 0x6e, 0x64, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x19, + 0x0a, 0x08, 0x68, 0x61, 0x73, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x07, 0x68, 0x61, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x68, + 0x65, 0x72, 0x69, 0x74, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x6e, + 0x68, 0x65, 0x72, 0x69, 0x74, 0x65, 0x64, 0x12, 0x3e, 0x0a, 0x0a, 0x6e, 0x5f, 0x64, 0x69, 0x73, + 0x74, 0x69, 0x6e, 0x63, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x67, + 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x6e, 0x44, + 0x69, 0x73, 0x74, 0x69, 0x6e, 0x63, 0x74, 0x12, 0x43, 0x0a, 0x0c, 0x64, 0x65, 0x70, 0x65, 0x6e, + 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x0c, + 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x22, 0x3f, 0x0a, 0x11, + 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, + 0x79, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x09, + 0x0a, 0x05, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x49, 0x53, + 0x54, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x41, 0x53, 0x48, 0x10, 0x03, 0x4a, 0x04, 0x08, + 0x0b, 0x10, 0x0c, 0x4a, 0x04, 0x08, 0x0c, 0x10, 0x0d, 0x22, 0xb3, 0x0c, 0x0a, 0x11, 0x52, 0x65, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, + 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x78, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x64, 0x78, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, + 0x73, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x5f, 0x73, 0x63, 0x61, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x07, 0x73, 0x65, 0x71, 0x53, 0x63, 0x61, 0x6e, 0x12, 0x20, 0x0a, 0x0c, + 0x73, 0x65, 0x71, 0x5f, 0x74, 0x75, 0x70, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x0a, 0x73, 0x65, 0x71, 0x54, 0x75, 0x70, 0x52, 0x65, 0x61, 0x64, 0x12, 0x19, + 0x0a, 0x08, 0x69, 0x64, 0x78, 0x5f, 0x73, 0x63, 0x61, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x07, 0x69, 0x64, 0x78, 0x53, 0x63, 0x61, 0x6e, 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x64, 0x78, + 0x5f, 0x74, 0x75, 0x70, 0x5f, 0x66, 0x65, 0x74, 0x63, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0b, 0x69, 0x64, 0x78, 0x54, 0x75, 0x70, 0x46, 0x65, 0x74, 0x63, 0x68, 0x12, 0x1a, 0x0a, + 0x09, 0x6e, 0x5f, 0x74, 0x75, 0x70, 0x5f, 0x69, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x07, 0x6e, 0x54, 0x75, 0x70, 0x49, 0x6e, 0x73, 0x12, 0x1a, 0x0a, 0x09, 0x6e, 0x5f, 0x74, + 0x75, 0x70, 0x5f, 0x75, 0x70, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6e, 0x54, + 0x75, 0x70, 0x55, 0x70, 0x64, 0x12, 0x1a, 0x0a, 0x09, 0x6e, 0x5f, 0x74, 0x75, 0x70, 0x5f, 0x64, + 0x65, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6e, 0x54, 0x75, 0x70, 0x44, 0x65, + 0x6c, 0x12, 0x21, 0x0a, 0x0d, 0x6e, 0x5f, 0x74, 0x75, 0x70, 0x5f, 0x68, 0x6f, 0x74, 0x5f, 0x75, + 0x70, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6e, 0x54, 0x75, 0x70, 0x48, 0x6f, + 0x74, 0x55, 0x70, 0x64, 0x12, 0x1c, 0x0a, 0x0a, 0x6e, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x74, + 0x75, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6e, 0x4c, 0x69, 0x76, 0x65, 0x54, + 0x75, 0x70, 0x12, 0x1c, 0x0a, 0x0a, 0x6e, 0x5f, 0x64, 0x65, 0x61, 0x64, 0x5f, 0x74, 0x75, 0x70, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6e, 0x44, 0x65, 0x61, 0x64, 0x54, 0x75, 0x70, + 0x12, 0x2d, 0x0a, 0x13, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, + 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x6e, + 0x4d, 0x6f, 0x64, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x12, + 0x2b, 0x0a, 0x12, 0x6e, 0x5f, 0x69, 0x6e, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x76, + 0x61, 0x63, 0x75, 0x75, 0x6d, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x6e, 0x49, 0x6e, + 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x56, 0x61, 0x63, 0x75, 0x75, 0x6d, 0x12, 0x24, 0x0a, 0x0e, + 0x68, 0x65, 0x61, 0x70, 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x18, 0x12, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x68, 0x65, 0x61, 0x70, 0x42, 0x6c, 0x6b, 0x73, 0x52, 0x65, + 0x61, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x68, 0x65, 0x61, 0x70, 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, + 0x68, 0x69, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x68, 0x65, 0x61, 0x70, 0x42, + 0x6c, 0x6b, 0x73, 0x48, 0x69, 0x74, 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x64, 0x78, 0x5f, 0x62, 0x6c, + 0x6b, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x69, + 0x64, 0x78, 0x42, 0x6c, 0x6b, 0x73, 0x52, 0x65, 0x61, 0x64, 0x12, 0x20, 0x0a, 0x0c, 0x69, 0x64, + 0x78, 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, 0x68, 0x69, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0a, 0x69, 0x64, 0x78, 0x42, 0x6c, 0x6b, 0x73, 0x48, 0x69, 0x74, 0x12, 0x26, 0x0a, 0x0f, + 0x74, 0x6f, 0x61, 0x73, 0x74, 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x18, + 0x16, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x6f, 0x61, 0x73, 0x74, 0x42, 0x6c, 0x6b, 0x73, + 0x52, 0x65, 0x61, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x6f, 0x61, 0x73, 0x74, 0x5f, 0x62, 0x6c, + 0x6b, 0x73, 0x5f, 0x68, 0x69, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x74, 0x6f, + 0x61, 0x73, 0x74, 0x42, 0x6c, 0x6b, 0x73, 0x48, 0x69, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x69, + 0x64, 0x78, 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x18, 0x18, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x0c, 0x74, 0x69, 0x64, 0x78, 0x42, 0x6c, 0x6b, 0x73, 0x52, 0x65, 0x61, 0x64, + 0x12, 0x22, 0x0a, 0x0d, 0x74, 0x69, 0x64, 0x78, 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, 0x68, 0x69, + 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x74, 0x69, 0x64, 0x78, 0x42, 0x6c, 0x6b, + 0x73, 0x48, 0x69, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x6f, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, + 0x74, 0x6f, 0x61, 0x73, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x43, + 0x0a, 0x0b, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x56, 0x61, 0x63, - 0x75, 0x75, 0x6d, 0x12, 0x4b, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x75, 0x74, 0x6f, - 0x76, 0x61, 0x63, 0x75, 0x75, 0x6d, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, - 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x41, 0x75, 0x74, 0x6f, 0x76, 0x61, 0x63, 0x75, 0x75, 0x6d, - 0x12, 0x45, 0x0a, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, - 0x18, 0x2f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, + 0x64, 0x41, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x78, 0x69, 0x64, + 0x5f, 0x61, 0x67, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x7a, + 0x65, 0x6e, 0x78, 0x69, 0x64, 0x41, 0x67, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x69, 0x6e, 0x6d, + 0x78, 0x69, 0x64, 0x5f, 0x61, 0x67, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6d, + 0x69, 0x6e, 0x6d, 0x78, 0x69, 0x64, 0x41, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x6c, + 0x70, 0x61, 0x67, 0x65, 0x73, 0x18, 0x28, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, 0x65, 0x6c, + 0x70, 0x61, 0x67, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x6c, 0x74, 0x75, 0x70, 0x6c, + 0x65, 0x73, 0x18, 0x29, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x72, 0x65, 0x6c, 0x74, 0x75, 0x70, + 0x6c, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x6c, 0x6c, 0x76, 0x69, 0x73, + 0x69, 0x62, 0x6c, 0x65, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x65, 0x6c, 0x61, + 0x6c, 0x6c, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, 0x6c, + 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x78, 0x69, 0x64, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0c, 0x72, 0x65, 0x6c, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x78, 0x69, 0x64, 0x12, 0x1e, 0x0a, + 0x0a, 0x72, 0x65, 0x6c, 0x6d, 0x69, 0x6e, 0x6d, 0x78, 0x69, 0x64, 0x18, 0x2c, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0a, 0x72, 0x65, 0x6c, 0x6d, 0x69, 0x6e, 0x6d, 0x78, 0x69, 0x64, 0x12, 0x43, 0x0a, + 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x63, 0x75, 0x75, 0x6d, 0x18, 0x2d, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x56, 0x61, 0x63, 0x75, + 0x75, 0x6d, 0x12, 0x4b, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x76, + 0x61, 0x63, 0x75, 0x75, 0x6d, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x67, + 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, + 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x41, 0x75, 0x74, 0x6f, 0x76, 0x61, 0x63, 0x75, 0x75, 0x6d, 0x12, + 0x45, 0x0a, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x18, + 0x2f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, + 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x41, + 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x12, 0x4d, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x61, + 0x75, 0x74, 0x6f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x18, 0x30, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x41, 0x75, 0x74, 0x6f, 0x61, 0x6e, + 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x6f, 0x61, 0x73, 0x74, 0x5f, 0x72, + 0x65, 0x6c, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x31, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, + 0x74, 0x6f, 0x61, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x25, + 0x0a, 0x0e, 0x74, 0x6f, 0x61, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x6c, 0x70, 0x61, 0x67, 0x65, 0x73, + 0x18, 0x32, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x74, 0x6f, 0x61, 0x73, 0x74, 0x52, 0x65, 0x6c, + 0x70, 0x61, 0x67, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x33, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x74, 0x65, + 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x61, 0x73, + 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x34, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x63, + 0x61, 0x63, 0x68, 0x65, 0x64, 0x54, 0x6f, 0x61, 0x73, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, + 0xc0, 0x02, 0x0a, 0x0d, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, + 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x64, 0x78, 0x12, 0x40, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x6f, 0x63, 0x63, 0x75, 0x72, 0x72, + 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x6f, 0x63, 0x63, 0x75, 0x72, 0x72, 0x65, + 0x64, 0x41, 0x74, 0x12, 0x36, 0x0a, 0x17, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x6d, 0x61, + 0x74, 0x65, 0x5f, 0x6f, 0x63, 0x63, 0x75, 0x72, 0x72, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x6d, 0x61, 0x74, + 0x65, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x72, 0x65, 0x64, 0x41, 0x74, 0x22, 0x55, 0x0a, 0x09, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x11, 0x0a, 0x0d, 0x4d, 0x41, 0x4e, 0x55, + 0x41, 0x4c, 0x5f, 0x56, 0x41, 0x43, 0x55, 0x55, 0x4d, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x41, + 0x55, 0x54, 0x4f, 0x5f, 0x56, 0x41, 0x43, 0x55, 0x55, 0x4d, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, + 0x4d, 0x41, 0x4e, 0x55, 0x41, 0x4c, 0x5f, 0x41, 0x4e, 0x41, 0x4c, 0x59, 0x5a, 0x45, 0x10, 0x02, + 0x12, 0x10, 0x0a, 0x0c, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x41, 0x4e, 0x41, 0x4c, 0x59, 0x5a, 0x45, + 0x10, 0x03, 0x22, 0xe7, 0x02, 0x0a, 0x10, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x6e, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x5f, 0x69, 0x64, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x49, 0x64, 0x78, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x69, 0x64, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x65, 0x6c, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6c, 0x75, 0x6d, + 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, + 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x64, 0x65, 0x66, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x44, 0x65, 0x66, 0x12, 0x46, + 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x66, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x75, 0x6c, - 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, - 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x12, 0x4d, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, - 0x61, 0x75, 0x74, 0x6f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x18, 0x30, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x41, 0x75, 0x74, 0x6f, 0x61, - 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x6f, 0x61, 0x73, 0x74, 0x5f, - 0x72, 0x65, 0x6c, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x31, 0x20, 0x01, 0x28, 0x02, 0x52, - 0x0e, 0x74, 0x6f, 0x61, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x73, 0x12, - 0x25, 0x0a, 0x0e, 0x74, 0x6f, 0x61, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x6c, 0x70, 0x61, 0x67, 0x65, - 0x73, 0x18, 0x32, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x74, 0x6f, 0x61, 0x73, 0x74, 0x52, 0x65, - 0x6c, 0x70, 0x61, 0x67, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, - 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x33, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x74, - 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x61, - 0x73, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x34, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, - 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x54, 0x6f, 0x61, 0x73, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, - 0x22, 0xc0, 0x02, 0x0a, 0x0d, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, - 0x64, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x64, 0x78, 0x12, 0x40, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, - 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x6f, 0x63, 0x63, 0x75, 0x72, - 0x72, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x6f, 0x63, 0x63, 0x75, 0x72, 0x72, - 0x65, 0x64, 0x41, 0x74, 0x12, 0x36, 0x0a, 0x17, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x6d, - 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x63, 0x63, 0x75, 0x72, 0x72, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x6d, 0x61, - 0x74, 0x65, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x72, 0x65, 0x64, 0x41, 0x74, 0x22, 0x55, 0x0a, 0x09, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x11, 0x0a, 0x0d, 0x4d, 0x41, 0x4e, - 0x55, 0x41, 0x4c, 0x5f, 0x56, 0x41, 0x43, 0x55, 0x55, 0x4d, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, - 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x56, 0x41, 0x43, 0x55, 0x55, 0x4d, 0x10, 0x01, 0x12, 0x12, 0x0a, - 0x0e, 0x4d, 0x41, 0x4e, 0x55, 0x41, 0x4c, 0x5f, 0x41, 0x4e, 0x41, 0x4c, 0x59, 0x5a, 0x45, 0x10, - 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x41, 0x4e, 0x41, 0x4c, 0x59, 0x5a, - 0x45, 0x10, 0x03, 0x22, 0xe7, 0x02, 0x0a, 0x10, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x6e, 0x66, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x69, 0x6e, 0x64, - 0x65, 0x78, 0x49, 0x64, 0x78, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x65, 0x6c, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6c, 0x75, - 0x6d, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x63, 0x6f, 0x6c, 0x75, 0x6d, - 0x6e, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x64, 0x65, 0x66, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x44, 0x65, 0x66, 0x12, - 0x46, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x5f, 0x64, 0x65, - 0x66, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, - 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x75, - 0x6c, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, - 0x61, 0x69, 0x6e, 0x74, 0x44, 0x65, 0x66, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x70, 0x72, - 0x69, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x50, - 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x75, 0x6e, 0x69, - 0x71, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x55, 0x6e, 0x69, - 0x71, 0x75, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x12, 0x1e, - 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x6c, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x6c, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x1d, - 0x0a, 0x0a, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x22, 0x96, 0x02, - 0x0a, 0x0e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, - 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x08, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x64, 0x78, 0x12, 0x1d, 0x0a, - 0x0a, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x09, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, - 0x69, 0x64, 0x78, 0x5f, 0x73, 0x63, 0x61, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, - 0x69, 0x64, 0x78, 0x53, 0x63, 0x61, 0x6e, 0x12, 0x20, 0x0a, 0x0c, 0x69, 0x64, 0x78, 0x5f, 0x74, - 0x75, 0x70, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x69, - 0x64, 0x78, 0x54, 0x75, 0x70, 0x52, 0x65, 0x61, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x64, 0x78, - 0x5f, 0x74, 0x75, 0x70, 0x5f, 0x66, 0x65, 0x74, 0x63, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0b, 0x69, 0x64, 0x78, 0x54, 0x75, 0x70, 0x46, 0x65, 0x74, 0x63, 0x68, 0x12, 0x22, 0x0a, - 0x0d, 0x69, 0x64, 0x78, 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x69, 0x64, 0x78, 0x42, 0x6c, 0x6b, 0x73, 0x52, 0x65, 0x61, - 0x64, 0x12, 0x20, 0x0a, 0x0c, 0x69, 0x64, 0x78, 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, 0x68, 0x69, - 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x69, 0x64, 0x78, 0x42, 0x6c, 0x6b, 0x73, - 0x48, 0x69, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x62, 0x79, - 0x74, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x61, 0x63, 0x68, 0x65, - 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0xaf, 0x04, 0x0a, 0x13, 0x46, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, - 0x0a, 0x0c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, - 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, - 0x62, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x42, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x06, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x16, 0x0a, 0x06, - 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, - 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, - 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x06, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x65, - 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x72, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x44, 0x65, - 0x66, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x65, 0x61, 0x6b, 0x70, 0x72, 0x6f, - 0x6f, 0x66, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6c, 0x65, 0x61, 0x6b, 0x70, 0x72, - 0x6f, 0x6f, 0x66, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x72, - 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0a, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x53, 0x65, 0x74, 0x12, 0x1a, 0x0a, 0x08, - 0x76, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6c, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x76, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6c, 0x65, 0x12, 0x49, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, - 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x35, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, - 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x46, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x04, 0x6b, - 0x69, 0x6e, 0x64, 0x22, 0x53, 0x0a, 0x0c, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4b, - 0x69, 0x6e, 0x64, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, - 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x55, 0x4e, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x0d, - 0x0a, 0x09, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x45, 0x10, 0x02, 0x12, 0x0a, 0x0a, - 0x06, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x52, 0x4f, - 0x43, 0x45, 0x44, 0x55, 0x52, 0x45, 0x10, 0x04, 0x22, 0x88, 0x01, 0x0a, 0x11, 0x46, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x21, - 0x0a, 0x0c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, - 0x78, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x05, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x6c, 0x66, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x73, 0x65, 0x6c, 0x66, 0x54, - 0x69, 0x6d, 0x65, 0x22, 0xf4, 0x04, 0x0a, 0x15, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, - 0x70, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, - 0x0c, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x49, 0x64, 0x78, - 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, + 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, + 0x69, 0x6e, 0x74, 0x44, 0x65, 0x66, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x70, 0x72, 0x69, + 0x6d, 0x61, 0x72, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x50, 0x72, + 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x75, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x55, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x12, 0x1e, 0x0a, + 0x0a, 0x66, 0x69, 0x6c, 0x6c, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x6c, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x1d, 0x0a, + 0x0a, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x22, 0x96, 0x02, 0x0a, + 0x0e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, + 0x1b, 0x0a, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x64, 0x78, 0x12, 0x1d, 0x0a, 0x0a, + 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x09, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x69, + 0x64, 0x78, 0x5f, 0x73, 0x63, 0x61, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x69, + 0x64, 0x78, 0x53, 0x63, 0x61, 0x6e, 0x12, 0x20, 0x0a, 0x0c, 0x69, 0x64, 0x78, 0x5f, 0x74, 0x75, + 0x70, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x69, 0x64, + 0x78, 0x54, 0x75, 0x70, 0x52, 0x65, 0x61, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x64, 0x78, 0x5f, + 0x74, 0x75, 0x70, 0x5f, 0x66, 0x65, 0x74, 0x63, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0b, 0x69, 0x64, 0x78, 0x54, 0x75, 0x70, 0x46, 0x65, 0x74, 0x63, 0x68, 0x12, 0x22, 0x0a, 0x0d, + 0x69, 0x64, 0x78, 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0b, 0x69, 0x64, 0x78, 0x42, 0x6c, 0x6b, 0x73, 0x52, 0x65, 0x61, 0x64, + 0x12, 0x20, 0x0a, 0x0c, 0x69, 0x64, 0x78, 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, 0x68, 0x69, 0x74, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x69, 0x64, 0x78, 0x42, 0x6c, 0x6b, 0x73, 0x48, + 0x69, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, + 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0xaf, 0x04, 0x0a, 0x13, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, + 0x0c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x78, + 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x62, + 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x42, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x06, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x06, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x65, 0x63, + 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x72, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x44, 0x65, 0x66, + 0x69, 0x6e, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x65, 0x61, 0x6b, 0x70, 0x72, 0x6f, 0x6f, + 0x66, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6c, 0x65, 0x61, 0x6b, 0x70, 0x72, 0x6f, + 0x6f, 0x66, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x06, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0a, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x53, 0x65, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x76, + 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6c, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, + 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6c, 0x65, 0x12, 0x49, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, + 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x35, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, + 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x46, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x04, 0x6b, 0x69, + 0x6e, 0x64, 0x22, 0x53, 0x0a, 0x0c, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x69, + 0x6e, 0x64, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, + 0x0c, 0x0a, 0x08, 0x46, 0x55, 0x4e, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x0d, 0x0a, + 0x09, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x45, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, + 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x52, 0x4f, 0x43, + 0x45, 0x44, 0x55, 0x52, 0x45, 0x10, 0x04, 0x22, 0x88, 0x01, 0x0a, 0x11, 0x46, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x21, 0x0a, + 0x0c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x78, + 0x12, 0x14, 0x0a, 0x05, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x05, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x6c, 0x66, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x73, 0x65, 0x6c, 0x66, 0x54, 0x69, + 0x6d, 0x65, 0x22, 0xf4, 0x04, 0x0a, 0x15, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, + 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x49, 0x64, 0x78, 0x12, + 0x1f, 0x0a, 0x0b, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, + 0x79, 0x70, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x6f, 0x6d, + 0x61, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x64, 0x6f, + 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0d, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x4e, 0x6f, 0x74, 0x4e, 0x75, + 0x6c, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x6f, 0x6d, 0x61, + 0x69, 0x6e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x75, + 0x6d, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, + 0x65, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x61, 0x0a, 0x0f, 0x63, 0x6f, + 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x73, 0x18, 0x0a, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, - 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x6f, - 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x64, - 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x4e, 0x6f, 0x74, 0x4e, - 0x75, 0x6c, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x6f, 0x6d, - 0x61, 0x69, 0x6e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, - 0x75, 0x6d, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0a, 0x65, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x61, 0x0a, 0x0f, 0x63, - 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x73, 0x18, 0x0a, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, - 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x54, 0x79, 0x70, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x41, 0x74, 0x74, 0x72, 0x52, 0x0e, - 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x41, 0x74, 0x74, 0x72, 0x73, 0x12, 0x2d, - 0x0a, 0x12, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, - 0x69, 0x6e, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x64, 0x6f, 0x6d, 0x61, - 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x1a, 0x37, 0x0a, - 0x0d, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x41, 0x74, 0x74, 0x72, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x5c, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x08, - 0x0a, 0x04, 0x45, 0x4e, 0x55, 0x4d, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x4f, 0x4d, 0x41, - 0x49, 0x4e, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x4d, 0x50, 0x4f, 0x53, 0x49, 0x54, - 0x45, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x41, 0x53, 0x45, 0x10, 0x03, 0x12, 0x0a, 0x0a, - 0x06, 0x50, 0x53, 0x45, 0x55, 0x44, 0x4f, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x41, 0x4e, - 0x47, 0x45, 0x10, 0x05, 0x12, 0x0e, 0x0a, 0x0a, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x52, 0x41, 0x4e, - 0x47, 0x45, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x22, 0xad, 0x02, 0x0a, 0x14, 0x51, + 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x41, 0x74, 0x74, 0x72, 0x52, 0x0e, 0x63, + 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x41, 0x74, 0x74, 0x72, 0x73, 0x12, 0x2d, 0x0a, + 0x12, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, + 0x6e, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x64, 0x6f, 0x6d, 0x61, 0x69, + 0x6e, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x1a, 0x37, 0x0a, 0x0d, + 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x41, 0x74, 0x74, 0x72, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x5c, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x08, 0x0a, + 0x04, 0x45, 0x4e, 0x55, 0x4d, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x4f, 0x4d, 0x41, 0x49, + 0x4e, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x4d, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x45, + 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x41, 0x53, 0x45, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, + 0x50, 0x53, 0x45, 0x55, 0x44, 0x4f, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x41, 0x4e, 0x47, + 0x45, 0x10, 0x05, 0x12, 0x0e, 0x0a, 0x0a, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x52, 0x41, 0x4e, 0x47, + 0x45, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x22, 0xad, 0x02, 0x0a, 0x14, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x6c, 0x61, 0x6e, + 0x5f, 0x69, 0x64, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x71, 0x75, 0x65, 0x72, + 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x78, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x78, 0x70, 0x6c, + 0x61, 0x69, 0x6e, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x65, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x48, 0x0a, 0x12, 0x70, + 0x6c, 0x61, 0x6e, 0x5f, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x52, 0x10, 0x70, 0x6c, 0x61, 0x6e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4f, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, + 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x6c, 0x61, - 0x6e, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x71, 0x75, 0x65, - 0x72, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x78, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x78, 0x70, - 0x6c, 0x61, 0x69, 0x6e, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x48, 0x0a, 0x12, - 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x52, 0x10, 0x70, 0x6c, 0x61, 0x6e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, - 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4f, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x70, 0x67, 0x61, 0x6e, - 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x6c, 0x61, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x70, - 0x6c, 0x61, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x31, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x6e, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x4e, 0x4f, 0x5f, 0x50, 0x4c, 0x41, 0x4e, 0x10, 0x00, - 0x12, 0x0c, 0x0a, 0x08, 0x45, 0x53, 0x54, 0x49, 0x4d, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x0a, - 0x0a, 0x06, 0x41, 0x43, 0x54, 0x55, 0x41, 0x4c, 0x10, 0x02, 0x22, 0xfb, 0x04, 0x0a, 0x12, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, - 0x63, 0x12, 0x24, 0x0a, 0x0e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x5f, - 0x69, 0x64, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x71, 0x75, 0x65, 0x72, 0x79, - 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x61, 0x6c, 0x6c, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x1d, 0x0a, - 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x01, 0x52, 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, - 0x72, 0x6f, 0x77, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x72, 0x6f, 0x77, 0x73, - 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, - 0x68, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x73, 0x68, 0x61, 0x72, 0x65, - 0x64, 0x42, 0x6c, 0x6b, 0x73, 0x48, 0x69, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x68, 0x61, 0x72, - 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x0e, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x42, 0x6c, 0x6b, 0x73, 0x52, 0x65, - 0x61, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6b, - 0x73, 0x5f, 0x64, 0x69, 0x72, 0x74, 0x69, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x11, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x42, 0x6c, 0x6b, 0x73, 0x44, 0x69, 0x72, 0x74, 0x69, - 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6b, - 0x73, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x11, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x42, 0x6c, 0x6b, 0x73, 0x57, 0x72, 0x69, 0x74, 0x74, - 0x65, 0x6e, 0x12, 0x24, 0x0a, 0x0e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x6c, 0x6b, 0x73, - 0x5f, 0x68, 0x69, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, - 0x6c, 0x42, 0x6c, 0x6b, 0x73, 0x48, 0x69, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x6f, 0x63, 0x61, - 0x6c, 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x42, 0x6c, 0x6b, 0x73, 0x52, 0x65, 0x61, 0x64, - 0x12, 0x2c, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, 0x64, - 0x69, 0x72, 0x74, 0x69, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x6c, 0x6f, - 0x63, 0x61, 0x6c, 0x42, 0x6c, 0x6b, 0x73, 0x44, 0x69, 0x72, 0x74, 0x69, 0x65, 0x64, 0x12, 0x2c, - 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, 0x77, 0x72, 0x69, - 0x74, 0x74, 0x65, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, - 0x6c, 0x42, 0x6c, 0x6b, 0x73, 0x57, 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e, 0x12, 0x24, 0x0a, 0x0e, - 0x74, 0x65, 0x6d, 0x70, 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x74, 0x65, 0x6d, 0x70, 0x42, 0x6c, 0x6b, 0x73, 0x52, 0x65, - 0x61, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x74, 0x65, 0x6d, 0x70, 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, - 0x77, 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x74, - 0x65, 0x6d, 0x70, 0x42, 0x6c, 0x6b, 0x73, 0x57, 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e, 0x12, 0x22, - 0x0a, 0x0d, 0x62, 0x6c, 0x6b, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x0f, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x62, 0x6c, 0x6b, 0x52, 0x65, 0x61, 0x64, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x62, 0x6c, 0x6b, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x62, 0x6c, 0x6b, 0x57, - 0x72, 0x69, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xdd, 0x01, 0x0a, 0x1b, 0x48, 0x69, 0x73, - 0x74, 0x6f, 0x72, 0x69, 0x63, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x53, 0x74, - 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x3d, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x36, 0x0a, 0x17, 0x63, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x73, 0x65, - 0x63, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x73, 0x12, - 0x47, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, - 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, - 0x6c, 0x61, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0a, 0x73, 0x74, - 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x42, 0x3b, 0x5a, 0x39, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, - 0x2f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2f, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x2f, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x6c, 0x61, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x70, 0x6c, + 0x61, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x31, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x6e, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x4e, 0x4f, 0x5f, 0x50, 0x4c, 0x41, 0x4e, 0x10, 0x00, 0x12, + 0x0c, 0x0a, 0x08, 0x45, 0x53, 0x54, 0x49, 0x4d, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x0a, 0x0a, + 0x06, 0x41, 0x43, 0x54, 0x55, 0x41, 0x4c, 0x10, 0x02, 0x22, 0xfb, 0x04, 0x0a, 0x12, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, + 0x12, 0x24, 0x0a, 0x0e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x69, + 0x64, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x71, 0x75, 0x65, 0x72, 0x79, 0x50, + 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x1d, 0x0a, 0x0a, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, + 0x52, 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x72, + 0x6f, 0x77, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x72, 0x6f, 0x77, 0x73, 0x12, + 0x26, 0x0a, 0x0f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, 0x68, + 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, + 0x42, 0x6c, 0x6b, 0x73, 0x48, 0x69, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x68, 0x61, 0x72, 0x65, + 0x64, 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0e, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x42, 0x6c, 0x6b, 0x73, 0x52, 0x65, 0x61, + 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6b, 0x73, + 0x5f, 0x64, 0x69, 0x72, 0x74, 0x69, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, + 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x42, 0x6c, 0x6b, 0x73, 0x44, 0x69, 0x72, 0x74, 0x69, 0x65, + 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6b, 0x73, + 0x5f, 0x77, 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, + 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x42, 0x6c, 0x6b, 0x73, 0x57, 0x72, 0x69, 0x74, 0x74, 0x65, + 0x6e, 0x12, 0x24, 0x0a, 0x0e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, + 0x68, 0x69, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x42, 0x6c, 0x6b, 0x73, 0x48, 0x69, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x42, 0x6c, 0x6b, 0x73, 0x52, 0x65, 0x61, 0x64, 0x12, + 0x2c, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, 0x64, 0x69, + 0x72, 0x74, 0x69, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x42, 0x6c, 0x6b, 0x73, 0x44, 0x69, 0x72, 0x74, 0x69, 0x65, 0x64, 0x12, 0x2c, 0x0a, + 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, 0x77, 0x72, 0x69, 0x74, + 0x74, 0x65, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x42, 0x6c, 0x6b, 0x73, 0x57, 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e, 0x12, 0x24, 0x0a, 0x0e, 0x74, + 0x65, 0x6d, 0x70, 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0c, 0x74, 0x65, 0x6d, 0x70, 0x42, 0x6c, 0x6b, 0x73, 0x52, 0x65, 0x61, + 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x74, 0x65, 0x6d, 0x70, 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x5f, 0x77, + 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x74, 0x65, + 0x6d, 0x70, 0x42, 0x6c, 0x6b, 0x73, 0x57, 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e, 0x12, 0x22, 0x0a, + 0x0d, 0x62, 0x6c, 0x6b, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0f, + 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x62, 0x6c, 0x6b, 0x52, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x62, 0x6c, 0x6b, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x62, 0x6c, 0x6b, 0x57, 0x72, + 0x69, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xdd, 0x01, 0x0a, 0x1b, 0x48, 0x69, 0x73, 0x74, + 0x6f, 0x72, 0x69, 0x63, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x53, 0x74, 0x61, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x3d, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x36, 0x0a, 0x17, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x73, 0x65, 0x63, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x65, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x73, 0x12, 0x47, + 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2e, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6c, + 0x61, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0a, 0x73, 0x74, 0x61, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x42, 0x3b, 0x5a, 0x39, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x2f, + 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x2f, 0x70, 0x67, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -6260,7 +6560,7 @@ func file_full_snapshot_proto_rawDescGZIP() []byte { } var file_full_snapshot_proto_enumTypes = make([]protoimpl.EnumInfo, 7) -var file_full_snapshot_proto_msgTypes = make([]protoimpl.MessageInfo, 35) +var file_full_snapshot_proto_msgTypes = make([]protoimpl.MessageInfo, 37) var file_full_snapshot_proto_goTypes = []interface{}{ (BackendCountStatistic_BackendState)(0), // 0: pganalyze.collector.BackendCountStatistic.BackendState (BackendCountStatistic_BackendType)(0), // 1: pganalyze.collector.BackendCountStatistic.BackendType @@ -6275,140 +6575,145 @@ var file_full_snapshot_proto_goTypes = []interface{}{ (*DatabaseInformation)(nil), // 10: pganalyze.collector.DatabaseInformation (*DatabaseStatistic)(nil), // 11: pganalyze.collector.DatabaseStatistic (*ServerStatistic)(nil), // 12: pganalyze.collector.ServerStatistic - (*Setting)(nil), // 13: pganalyze.collector.Setting - (*Extension)(nil), // 14: pganalyze.collector.Extension - (*Replication)(nil), // 15: pganalyze.collector.Replication - (*StandbyReference)(nil), // 16: pganalyze.collector.StandbyReference - (*StandbyInformation)(nil), // 17: pganalyze.collector.StandbyInformation - (*StandbyStatistic)(nil), // 18: pganalyze.collector.StandbyStatistic - (*BackendCountStatistic)(nil), // 19: pganalyze.collector.BackendCountStatistic - (*TablespaceReference)(nil), // 20: pganalyze.collector.TablespaceReference - (*TablespaceInformation)(nil), // 21: pganalyze.collector.TablespaceInformation - (*CollectorConfig)(nil), // 22: pganalyze.collector.CollectorConfig - (*QueryStatistic)(nil), // 23: pganalyze.collector.QueryStatistic - (*HistoricQueryStatistics)(nil), // 24: pganalyze.collector.HistoricQueryStatistics - (*RelationInformation)(nil), // 25: pganalyze.collector.RelationInformation - (*RelationStatistic)(nil), // 26: pganalyze.collector.RelationStatistic - (*RelationEvent)(nil), // 27: pganalyze.collector.RelationEvent - (*IndexInformation)(nil), // 28: pganalyze.collector.IndexInformation - (*IndexStatistic)(nil), // 29: pganalyze.collector.IndexStatistic - (*FunctionInformation)(nil), // 30: pganalyze.collector.FunctionInformation - (*FunctionStatistic)(nil), // 31: pganalyze.collector.FunctionStatistic - (*CustomTypeInformation)(nil), // 32: pganalyze.collector.CustomTypeInformation - (*QueryPlanInformation)(nil), // 33: pganalyze.collector.QueryPlanInformation - (*QueryPlanStatistic)(nil), // 34: pganalyze.collector.QueryPlanStatistic - (*HistoricQueryPlanStatistics)(nil), // 35: pganalyze.collector.HistoricQueryPlanStatistics - nil, // 36: pganalyze.collector.RelationInformation.OptionsEntry - (*RelationInformation_Column)(nil), // 37: pganalyze.collector.RelationInformation.Column - (*RelationInformation_ColumnStatistic)(nil), // 38: pganalyze.collector.RelationInformation.ColumnStatistic - (*RelationInformation_Constraint)(nil), // 39: pganalyze.collector.RelationInformation.Constraint - (*RelationInformation_ExtendedStatistic)(nil), // 40: pganalyze.collector.RelationInformation.ExtendedStatistic - (*CustomTypeInformation_CompositeAttr)(nil), // 41: pganalyze.collector.CustomTypeInformation.CompositeAttr - (*timestamppb.Timestamp)(nil), // 42: google.protobuf.Timestamp - (*System)(nil), // 43: pganalyze.collector.System - (*PostgresVersion)(nil), // 44: pganalyze.collector.PostgresVersion - (*RoleReference)(nil), // 45: pganalyze.collector.RoleReference - (*DatabaseReference)(nil), // 46: pganalyze.collector.DatabaseReference - (*QueryReference)(nil), // 47: pganalyze.collector.QueryReference - (*RelationReference)(nil), // 48: pganalyze.collector.RelationReference - (*IndexReference)(nil), // 49: pganalyze.collector.IndexReference - (*FunctionReference)(nil), // 50: pganalyze.collector.FunctionReference - (*QueryPlanReference)(nil), // 51: pganalyze.collector.QueryPlanReference - (*QueryInformation)(nil), // 52: pganalyze.collector.QueryInformation - (*QueryExplainInformation)(nil), // 53: pganalyze.collector.QueryExplainInformation - (*NullTimestamp)(nil), // 54: pganalyze.collector.NullTimestamp - (*NullString)(nil), // 55: pganalyze.collector.NullString - (*NullInt32)(nil), // 56: pganalyze.collector.NullInt32 - (*NullDouble)(nil), // 57: pganalyze.collector.NullDouble + (*HistoricServerIoStatistics)(nil), // 13: pganalyze.collector.HistoricServerIoStatistics + (*ServerIoStatistic)(nil), // 14: pganalyze.collector.ServerIoStatistic + (*Setting)(nil), // 15: pganalyze.collector.Setting + (*Extension)(nil), // 16: pganalyze.collector.Extension + (*Replication)(nil), // 17: pganalyze.collector.Replication + (*StandbyReference)(nil), // 18: pganalyze.collector.StandbyReference + (*StandbyInformation)(nil), // 19: pganalyze.collector.StandbyInformation + (*StandbyStatistic)(nil), // 20: pganalyze.collector.StandbyStatistic + (*BackendCountStatistic)(nil), // 21: pganalyze.collector.BackendCountStatistic + (*TablespaceReference)(nil), // 22: pganalyze.collector.TablespaceReference + (*TablespaceInformation)(nil), // 23: pganalyze.collector.TablespaceInformation + (*CollectorConfig)(nil), // 24: pganalyze.collector.CollectorConfig + (*QueryStatistic)(nil), // 25: pganalyze.collector.QueryStatistic + (*HistoricQueryStatistics)(nil), // 26: pganalyze.collector.HistoricQueryStatistics + (*RelationInformation)(nil), // 27: pganalyze.collector.RelationInformation + (*RelationStatistic)(nil), // 28: pganalyze.collector.RelationStatistic + (*RelationEvent)(nil), // 29: pganalyze.collector.RelationEvent + (*IndexInformation)(nil), // 30: pganalyze.collector.IndexInformation + (*IndexStatistic)(nil), // 31: pganalyze.collector.IndexStatistic + (*FunctionInformation)(nil), // 32: pganalyze.collector.FunctionInformation + (*FunctionStatistic)(nil), // 33: pganalyze.collector.FunctionStatistic + (*CustomTypeInformation)(nil), // 34: pganalyze.collector.CustomTypeInformation + (*QueryPlanInformation)(nil), // 35: pganalyze.collector.QueryPlanInformation + (*QueryPlanStatistic)(nil), // 36: pganalyze.collector.QueryPlanStatistic + (*HistoricQueryPlanStatistics)(nil), // 37: pganalyze.collector.HistoricQueryPlanStatistics + nil, // 38: pganalyze.collector.RelationInformation.OptionsEntry + (*RelationInformation_Column)(nil), // 39: pganalyze.collector.RelationInformation.Column + (*RelationInformation_ColumnStatistic)(nil), // 40: pganalyze.collector.RelationInformation.ColumnStatistic + (*RelationInformation_Constraint)(nil), // 41: pganalyze.collector.RelationInformation.Constraint + (*RelationInformation_ExtendedStatistic)(nil), // 42: pganalyze.collector.RelationInformation.ExtendedStatistic + (*CustomTypeInformation_CompositeAttr)(nil), // 43: pganalyze.collector.CustomTypeInformation.CompositeAttr + (*timestamppb.Timestamp)(nil), // 44: google.protobuf.Timestamp + (*System)(nil), // 45: pganalyze.collector.System + (*PostgresVersion)(nil), // 46: pganalyze.collector.PostgresVersion + (*RoleReference)(nil), // 47: pganalyze.collector.RoleReference + (*DatabaseReference)(nil), // 48: pganalyze.collector.DatabaseReference + (*QueryReference)(nil), // 49: pganalyze.collector.QueryReference + (*RelationReference)(nil), // 50: pganalyze.collector.RelationReference + (*IndexReference)(nil), // 51: pganalyze.collector.IndexReference + (*FunctionReference)(nil), // 52: pganalyze.collector.FunctionReference + (*QueryPlanReference)(nil), // 53: pganalyze.collector.QueryPlanReference + (*QueryInformation)(nil), // 54: pganalyze.collector.QueryInformation + (*QueryExplainInformation)(nil), // 55: pganalyze.collector.QueryExplainInformation + (*NullTimestamp)(nil), // 56: pganalyze.collector.NullTimestamp + (*NullString)(nil), // 57: pganalyze.collector.NullString + (*NullInt32)(nil), // 58: pganalyze.collector.NullInt32 + (*NullDouble)(nil), // 59: pganalyze.collector.NullDouble } var file_full_snapshot_proto_depIdxs = []int32{ - 42, // 0: pganalyze.collector.FullSnapshot.collected_at:type_name -> google.protobuf.Timestamp - 22, // 1: pganalyze.collector.FullSnapshot.config:type_name -> pganalyze.collector.CollectorConfig + 44, // 0: pganalyze.collector.FullSnapshot.collected_at:type_name -> google.protobuf.Timestamp + 24, // 1: pganalyze.collector.FullSnapshot.config:type_name -> pganalyze.collector.CollectorConfig 8, // 2: pganalyze.collector.FullSnapshot.collector_statistic:type_name -> pganalyze.collector.CollectorStatistic - 42, // 3: pganalyze.collector.FullSnapshot.collector_started_at:type_name -> google.protobuf.Timestamp - 43, // 4: pganalyze.collector.FullSnapshot.system:type_name -> pganalyze.collector.System - 44, // 5: pganalyze.collector.FullSnapshot.postgres_version:type_name -> pganalyze.collector.PostgresVersion - 45, // 6: pganalyze.collector.FullSnapshot.role_references:type_name -> pganalyze.collector.RoleReference - 46, // 7: pganalyze.collector.FullSnapshot.database_references:type_name -> pganalyze.collector.DatabaseReference + 44, // 3: pganalyze.collector.FullSnapshot.collector_started_at:type_name -> google.protobuf.Timestamp + 45, // 4: pganalyze.collector.FullSnapshot.system:type_name -> pganalyze.collector.System + 46, // 5: pganalyze.collector.FullSnapshot.postgres_version:type_name -> pganalyze.collector.PostgresVersion + 47, // 6: pganalyze.collector.FullSnapshot.role_references:type_name -> pganalyze.collector.RoleReference + 48, // 7: pganalyze.collector.FullSnapshot.database_references:type_name -> pganalyze.collector.DatabaseReference 9, // 8: pganalyze.collector.FullSnapshot.role_informations:type_name -> pganalyze.collector.RoleInformation 10, // 9: pganalyze.collector.FullSnapshot.database_informations:type_name -> pganalyze.collector.DatabaseInformation 11, // 10: pganalyze.collector.FullSnapshot.database_statictics:type_name -> pganalyze.collector.DatabaseStatistic 12, // 11: pganalyze.collector.FullSnapshot.server_statistic:type_name -> pganalyze.collector.ServerStatistic - 13, // 12: pganalyze.collector.FullSnapshot.settings:type_name -> pganalyze.collector.Setting - 15, // 13: pganalyze.collector.FullSnapshot.replication:type_name -> pganalyze.collector.Replication - 19, // 14: pganalyze.collector.FullSnapshot.backend_count_statistics:type_name -> pganalyze.collector.BackendCountStatistic - 20, // 15: pganalyze.collector.FullSnapshot.tablespace_references:type_name -> pganalyze.collector.TablespaceReference - 21, // 16: pganalyze.collector.FullSnapshot.tablespace_informations:type_name -> pganalyze.collector.TablespaceInformation - 47, // 17: pganalyze.collector.FullSnapshot.query_references:type_name -> pganalyze.collector.QueryReference - 48, // 18: pganalyze.collector.FullSnapshot.relation_references:type_name -> pganalyze.collector.RelationReference - 49, // 19: pganalyze.collector.FullSnapshot.index_references:type_name -> pganalyze.collector.IndexReference - 50, // 20: pganalyze.collector.FullSnapshot.function_references:type_name -> pganalyze.collector.FunctionReference - 51, // 21: pganalyze.collector.FullSnapshot.query_plan_references:type_name -> pganalyze.collector.QueryPlanReference - 52, // 22: pganalyze.collector.FullSnapshot.query_informations:type_name -> pganalyze.collector.QueryInformation - 23, // 23: pganalyze.collector.FullSnapshot.query_statistics:type_name -> pganalyze.collector.QueryStatistic - 24, // 24: pganalyze.collector.FullSnapshot.historic_query_statistics:type_name -> pganalyze.collector.HistoricQueryStatistics - 53, // 25: pganalyze.collector.FullSnapshot.query_explains:type_name -> pganalyze.collector.QueryExplainInformation - 25, // 26: pganalyze.collector.FullSnapshot.relation_informations:type_name -> pganalyze.collector.RelationInformation - 26, // 27: pganalyze.collector.FullSnapshot.relation_statistics:type_name -> pganalyze.collector.RelationStatistic - 27, // 28: pganalyze.collector.FullSnapshot.relation_events:type_name -> pganalyze.collector.RelationEvent - 28, // 29: pganalyze.collector.FullSnapshot.index_informations:type_name -> pganalyze.collector.IndexInformation - 29, // 30: pganalyze.collector.FullSnapshot.index_statistics:type_name -> pganalyze.collector.IndexStatistic - 30, // 31: pganalyze.collector.FullSnapshot.function_informations:type_name -> pganalyze.collector.FunctionInformation - 31, // 32: pganalyze.collector.FullSnapshot.function_statistics:type_name -> pganalyze.collector.FunctionStatistic - 32, // 33: pganalyze.collector.FullSnapshot.custom_type_informations:type_name -> pganalyze.collector.CustomTypeInformation - 14, // 34: pganalyze.collector.FullSnapshot.extensions:type_name -> pganalyze.collector.Extension - 33, // 35: pganalyze.collector.FullSnapshot.query_plan_informations:type_name -> pganalyze.collector.QueryPlanInformation - 34, // 36: pganalyze.collector.FullSnapshot.query_plan_statistics:type_name -> pganalyze.collector.QueryPlanStatistic - 35, // 37: pganalyze.collector.FullSnapshot.historic_query_plan_statistics:type_name -> pganalyze.collector.HistoricQueryPlanStatistics - 54, // 38: pganalyze.collector.RoleInformation.password_valid_until:type_name -> pganalyze.collector.NullTimestamp - 55, // 39: pganalyze.collector.Setting.unit:type_name -> pganalyze.collector.NullString - 55, // 40: pganalyze.collector.Setting.boot_value:type_name -> pganalyze.collector.NullString - 55, // 41: pganalyze.collector.Setting.reset_value:type_name -> pganalyze.collector.NullString - 55, // 42: pganalyze.collector.Setting.source:type_name -> pganalyze.collector.NullString - 55, // 43: pganalyze.collector.Setting.source_file:type_name -> pganalyze.collector.NullString - 55, // 44: pganalyze.collector.Setting.source_line:type_name -> pganalyze.collector.NullString - 16, // 45: pganalyze.collector.Replication.standby_references:type_name -> pganalyze.collector.StandbyReference - 17, // 46: pganalyze.collector.Replication.standby_informations:type_name -> pganalyze.collector.StandbyInformation - 18, // 47: pganalyze.collector.Replication.standby_statistics:type_name -> pganalyze.collector.StandbyStatistic - 42, // 48: pganalyze.collector.Replication.replay_timestamp:type_name -> google.protobuf.Timestamp - 42, // 49: pganalyze.collector.StandbyInformation.backend_start:type_name -> google.protobuf.Timestamp - 0, // 50: pganalyze.collector.BackendCountStatistic.state:type_name -> pganalyze.collector.BackendCountStatistic.BackendState - 1, // 51: pganalyze.collector.BackendCountStatistic.backend_type:type_name -> pganalyze.collector.BackendCountStatistic.BackendType - 42, // 52: pganalyze.collector.HistoricQueryStatistics.collected_at:type_name -> google.protobuf.Timestamp - 23, // 53: pganalyze.collector.HistoricQueryStatistics.statistics:type_name -> pganalyze.collector.QueryStatistic - 55, // 54: pganalyze.collector.RelationInformation.view_definition:type_name -> pganalyze.collector.NullString - 37, // 55: pganalyze.collector.RelationInformation.columns:type_name -> pganalyze.collector.RelationInformation.Column - 39, // 56: pganalyze.collector.RelationInformation.constraints:type_name -> pganalyze.collector.RelationInformation.Constraint - 36, // 57: pganalyze.collector.RelationInformation.options:type_name -> pganalyze.collector.RelationInformation.OptionsEntry - 2, // 58: pganalyze.collector.RelationInformation.partition_strategy:type_name -> pganalyze.collector.RelationInformation.PartitionStrategy - 55, // 59: pganalyze.collector.RelationInformation.toast_name:type_name -> pganalyze.collector.NullString - 40, // 60: pganalyze.collector.RelationInformation.extended_stats:type_name -> pganalyze.collector.RelationInformation.ExtendedStatistic - 54, // 61: pganalyze.collector.RelationStatistic.analyzed_at:type_name -> pganalyze.collector.NullTimestamp - 54, // 62: pganalyze.collector.RelationStatistic.last_vacuum:type_name -> pganalyze.collector.NullTimestamp - 54, // 63: pganalyze.collector.RelationStatistic.last_autovacuum:type_name -> pganalyze.collector.NullTimestamp - 54, // 64: pganalyze.collector.RelationStatistic.last_analyze:type_name -> pganalyze.collector.NullTimestamp - 54, // 65: pganalyze.collector.RelationStatistic.last_autoanalyze:type_name -> pganalyze.collector.NullTimestamp - 3, // 66: pganalyze.collector.RelationEvent.type:type_name -> pganalyze.collector.RelationEvent.EventType - 42, // 67: pganalyze.collector.RelationEvent.occurred_at:type_name -> google.protobuf.Timestamp - 55, // 68: pganalyze.collector.IndexInformation.constraint_def:type_name -> pganalyze.collector.NullString - 4, // 69: pganalyze.collector.FunctionInformation.kind:type_name -> pganalyze.collector.FunctionInformation.FunctionKind - 5, // 70: pganalyze.collector.CustomTypeInformation.type:type_name -> pganalyze.collector.CustomTypeInformation.Type - 41, // 71: pganalyze.collector.CustomTypeInformation.composite_attrs:type_name -> pganalyze.collector.CustomTypeInformation.CompositeAttr - 42, // 72: pganalyze.collector.QueryPlanInformation.plan_captured_time:type_name -> google.protobuf.Timestamp - 6, // 73: pganalyze.collector.QueryPlanInformation.plan_type:type_name -> pganalyze.collector.QueryPlanInformation.PlanType - 42, // 74: pganalyze.collector.HistoricQueryPlanStatistics.collected_at:type_name -> google.protobuf.Timestamp - 34, // 75: pganalyze.collector.HistoricQueryPlanStatistics.statistics:type_name -> pganalyze.collector.QueryPlanStatistic - 55, // 76: pganalyze.collector.RelationInformation.Column.default_value:type_name -> pganalyze.collector.NullString - 38, // 77: pganalyze.collector.RelationInformation.Column.statistics:type_name -> pganalyze.collector.RelationInformation.ColumnStatistic - 56, // 78: pganalyze.collector.RelationInformation.Column.data_type_custom_idx:type_name -> pganalyze.collector.NullInt32 - 57, // 79: pganalyze.collector.RelationInformation.ColumnStatistic.correlation:type_name -> pganalyze.collector.NullDouble - 55, // 80: pganalyze.collector.RelationInformation.ExtendedStatistic.n_distinct:type_name -> pganalyze.collector.NullString - 55, // 81: pganalyze.collector.RelationInformation.ExtendedStatistic.dependencies:type_name -> pganalyze.collector.NullString - 82, // [82:82] is the sub-list for method output_type - 82, // [82:82] is the sub-list for method input_type - 82, // [82:82] is the sub-list for extension type_name - 82, // [82:82] is the sub-list for extension extendee - 0, // [0:82] is the sub-list for field type_name + 13, // 12: pganalyze.collector.FullSnapshot.historic_server_io_statistics:type_name -> pganalyze.collector.HistoricServerIoStatistics + 15, // 13: pganalyze.collector.FullSnapshot.settings:type_name -> pganalyze.collector.Setting + 17, // 14: pganalyze.collector.FullSnapshot.replication:type_name -> pganalyze.collector.Replication + 21, // 15: pganalyze.collector.FullSnapshot.backend_count_statistics:type_name -> pganalyze.collector.BackendCountStatistic + 22, // 16: pganalyze.collector.FullSnapshot.tablespace_references:type_name -> pganalyze.collector.TablespaceReference + 23, // 17: pganalyze.collector.FullSnapshot.tablespace_informations:type_name -> pganalyze.collector.TablespaceInformation + 49, // 18: pganalyze.collector.FullSnapshot.query_references:type_name -> pganalyze.collector.QueryReference + 50, // 19: pganalyze.collector.FullSnapshot.relation_references:type_name -> pganalyze.collector.RelationReference + 51, // 20: pganalyze.collector.FullSnapshot.index_references:type_name -> pganalyze.collector.IndexReference + 52, // 21: pganalyze.collector.FullSnapshot.function_references:type_name -> pganalyze.collector.FunctionReference + 53, // 22: pganalyze.collector.FullSnapshot.query_plan_references:type_name -> pganalyze.collector.QueryPlanReference + 54, // 23: pganalyze.collector.FullSnapshot.query_informations:type_name -> pganalyze.collector.QueryInformation + 25, // 24: pganalyze.collector.FullSnapshot.query_statistics:type_name -> pganalyze.collector.QueryStatistic + 26, // 25: pganalyze.collector.FullSnapshot.historic_query_statistics:type_name -> pganalyze.collector.HistoricQueryStatistics + 55, // 26: pganalyze.collector.FullSnapshot.query_explains:type_name -> pganalyze.collector.QueryExplainInformation + 27, // 27: pganalyze.collector.FullSnapshot.relation_informations:type_name -> pganalyze.collector.RelationInformation + 28, // 28: pganalyze.collector.FullSnapshot.relation_statistics:type_name -> pganalyze.collector.RelationStatistic + 29, // 29: pganalyze.collector.FullSnapshot.relation_events:type_name -> pganalyze.collector.RelationEvent + 30, // 30: pganalyze.collector.FullSnapshot.index_informations:type_name -> pganalyze.collector.IndexInformation + 31, // 31: pganalyze.collector.FullSnapshot.index_statistics:type_name -> pganalyze.collector.IndexStatistic + 32, // 32: pganalyze.collector.FullSnapshot.function_informations:type_name -> pganalyze.collector.FunctionInformation + 33, // 33: pganalyze.collector.FullSnapshot.function_statistics:type_name -> pganalyze.collector.FunctionStatistic + 34, // 34: pganalyze.collector.FullSnapshot.custom_type_informations:type_name -> pganalyze.collector.CustomTypeInformation + 16, // 35: pganalyze.collector.FullSnapshot.extensions:type_name -> pganalyze.collector.Extension + 35, // 36: pganalyze.collector.FullSnapshot.query_plan_informations:type_name -> pganalyze.collector.QueryPlanInformation + 36, // 37: pganalyze.collector.FullSnapshot.query_plan_statistics:type_name -> pganalyze.collector.QueryPlanStatistic + 37, // 38: pganalyze.collector.FullSnapshot.historic_query_plan_statistics:type_name -> pganalyze.collector.HistoricQueryPlanStatistics + 56, // 39: pganalyze.collector.RoleInformation.password_valid_until:type_name -> pganalyze.collector.NullTimestamp + 44, // 40: pganalyze.collector.HistoricServerIoStatistics.collected_at:type_name -> google.protobuf.Timestamp + 14, // 41: pganalyze.collector.HistoricServerIoStatistics.statistics:type_name -> pganalyze.collector.ServerIoStatistic + 57, // 42: pganalyze.collector.Setting.unit:type_name -> pganalyze.collector.NullString + 57, // 43: pganalyze.collector.Setting.boot_value:type_name -> pganalyze.collector.NullString + 57, // 44: pganalyze.collector.Setting.reset_value:type_name -> pganalyze.collector.NullString + 57, // 45: pganalyze.collector.Setting.source:type_name -> pganalyze.collector.NullString + 57, // 46: pganalyze.collector.Setting.source_file:type_name -> pganalyze.collector.NullString + 57, // 47: pganalyze.collector.Setting.source_line:type_name -> pganalyze.collector.NullString + 18, // 48: pganalyze.collector.Replication.standby_references:type_name -> pganalyze.collector.StandbyReference + 19, // 49: pganalyze.collector.Replication.standby_informations:type_name -> pganalyze.collector.StandbyInformation + 20, // 50: pganalyze.collector.Replication.standby_statistics:type_name -> pganalyze.collector.StandbyStatistic + 44, // 51: pganalyze.collector.Replication.replay_timestamp:type_name -> google.protobuf.Timestamp + 44, // 52: pganalyze.collector.StandbyInformation.backend_start:type_name -> google.protobuf.Timestamp + 0, // 53: pganalyze.collector.BackendCountStatistic.state:type_name -> pganalyze.collector.BackendCountStatistic.BackendState + 1, // 54: pganalyze.collector.BackendCountStatistic.backend_type:type_name -> pganalyze.collector.BackendCountStatistic.BackendType + 44, // 55: pganalyze.collector.HistoricQueryStatistics.collected_at:type_name -> google.protobuf.Timestamp + 25, // 56: pganalyze.collector.HistoricQueryStatistics.statistics:type_name -> pganalyze.collector.QueryStatistic + 57, // 57: pganalyze.collector.RelationInformation.view_definition:type_name -> pganalyze.collector.NullString + 39, // 58: pganalyze.collector.RelationInformation.columns:type_name -> pganalyze.collector.RelationInformation.Column + 41, // 59: pganalyze.collector.RelationInformation.constraints:type_name -> pganalyze.collector.RelationInformation.Constraint + 38, // 60: pganalyze.collector.RelationInformation.options:type_name -> pganalyze.collector.RelationInformation.OptionsEntry + 2, // 61: pganalyze.collector.RelationInformation.partition_strategy:type_name -> pganalyze.collector.RelationInformation.PartitionStrategy + 57, // 62: pganalyze.collector.RelationInformation.toast_name:type_name -> pganalyze.collector.NullString + 42, // 63: pganalyze.collector.RelationInformation.extended_stats:type_name -> pganalyze.collector.RelationInformation.ExtendedStatistic + 56, // 64: pganalyze.collector.RelationStatistic.analyzed_at:type_name -> pganalyze.collector.NullTimestamp + 56, // 65: pganalyze.collector.RelationStatistic.last_vacuum:type_name -> pganalyze.collector.NullTimestamp + 56, // 66: pganalyze.collector.RelationStatistic.last_autovacuum:type_name -> pganalyze.collector.NullTimestamp + 56, // 67: pganalyze.collector.RelationStatistic.last_analyze:type_name -> pganalyze.collector.NullTimestamp + 56, // 68: pganalyze.collector.RelationStatistic.last_autoanalyze:type_name -> pganalyze.collector.NullTimestamp + 3, // 69: pganalyze.collector.RelationEvent.type:type_name -> pganalyze.collector.RelationEvent.EventType + 44, // 70: pganalyze.collector.RelationEvent.occurred_at:type_name -> google.protobuf.Timestamp + 57, // 71: pganalyze.collector.IndexInformation.constraint_def:type_name -> pganalyze.collector.NullString + 4, // 72: pganalyze.collector.FunctionInformation.kind:type_name -> pganalyze.collector.FunctionInformation.FunctionKind + 5, // 73: pganalyze.collector.CustomTypeInformation.type:type_name -> pganalyze.collector.CustomTypeInformation.Type + 43, // 74: pganalyze.collector.CustomTypeInformation.composite_attrs:type_name -> pganalyze.collector.CustomTypeInformation.CompositeAttr + 44, // 75: pganalyze.collector.QueryPlanInformation.plan_captured_time:type_name -> google.protobuf.Timestamp + 6, // 76: pganalyze.collector.QueryPlanInformation.plan_type:type_name -> pganalyze.collector.QueryPlanInformation.PlanType + 44, // 77: pganalyze.collector.HistoricQueryPlanStatistics.collected_at:type_name -> google.protobuf.Timestamp + 36, // 78: pganalyze.collector.HistoricQueryPlanStatistics.statistics:type_name -> pganalyze.collector.QueryPlanStatistic + 57, // 79: pganalyze.collector.RelationInformation.Column.default_value:type_name -> pganalyze.collector.NullString + 40, // 80: pganalyze.collector.RelationInformation.Column.statistics:type_name -> pganalyze.collector.RelationInformation.ColumnStatistic + 58, // 81: pganalyze.collector.RelationInformation.Column.data_type_custom_idx:type_name -> pganalyze.collector.NullInt32 + 59, // 82: pganalyze.collector.RelationInformation.ColumnStatistic.correlation:type_name -> pganalyze.collector.NullDouble + 57, // 83: pganalyze.collector.RelationInformation.ExtendedStatistic.n_distinct:type_name -> pganalyze.collector.NullString + 57, // 84: pganalyze.collector.RelationInformation.ExtendedStatistic.dependencies:type_name -> pganalyze.collector.NullString + 85, // [85:85] is the sub-list for method output_type + 85, // [85:85] is the sub-list for method input_type + 85, // [85:85] is the sub-list for extension type_name + 85, // [85:85] is the sub-list for extension extendee + 0, // [0:85] is the sub-list for field type_name } func init() { file_full_snapshot_proto_init() } @@ -6491,7 +6796,7 @@ func file_full_snapshot_proto_init() { } } file_full_snapshot_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Setting); i { + switch v := v.(*HistoricServerIoStatistics); i { case 0: return &v.state case 1: @@ -6503,7 +6808,7 @@ func file_full_snapshot_proto_init() { } } file_full_snapshot_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Extension); i { + switch v := v.(*ServerIoStatistic); i { case 0: return &v.state case 1: @@ -6515,7 +6820,7 @@ func file_full_snapshot_proto_init() { } } file_full_snapshot_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Replication); i { + switch v := v.(*Setting); i { case 0: return &v.state case 1: @@ -6527,7 +6832,7 @@ func file_full_snapshot_proto_init() { } } file_full_snapshot_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StandbyReference); i { + switch v := v.(*Extension); i { case 0: return &v.state case 1: @@ -6539,7 +6844,7 @@ func file_full_snapshot_proto_init() { } } file_full_snapshot_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StandbyInformation); i { + switch v := v.(*Replication); i { case 0: return &v.state case 1: @@ -6551,7 +6856,7 @@ func file_full_snapshot_proto_init() { } } file_full_snapshot_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StandbyStatistic); i { + switch v := v.(*StandbyReference); i { case 0: return &v.state case 1: @@ -6563,7 +6868,7 @@ func file_full_snapshot_proto_init() { } } file_full_snapshot_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BackendCountStatistic); i { + switch v := v.(*StandbyInformation); i { case 0: return &v.state case 1: @@ -6575,7 +6880,7 @@ func file_full_snapshot_proto_init() { } } file_full_snapshot_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TablespaceReference); i { + switch v := v.(*StandbyStatistic); i { case 0: return &v.state case 1: @@ -6587,7 +6892,7 @@ func file_full_snapshot_proto_init() { } } file_full_snapshot_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TablespaceInformation); i { + switch v := v.(*BackendCountStatistic); i { case 0: return &v.state case 1: @@ -6599,7 +6904,7 @@ func file_full_snapshot_proto_init() { } } file_full_snapshot_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CollectorConfig); i { + switch v := v.(*TablespaceReference); i { case 0: return &v.state case 1: @@ -6611,7 +6916,7 @@ func file_full_snapshot_proto_init() { } } file_full_snapshot_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryStatistic); i { + switch v := v.(*TablespaceInformation); i { case 0: return &v.state case 1: @@ -6623,7 +6928,7 @@ func file_full_snapshot_proto_init() { } } file_full_snapshot_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HistoricQueryStatistics); i { + switch v := v.(*CollectorConfig); i { case 0: return &v.state case 1: @@ -6635,7 +6940,7 @@ func file_full_snapshot_proto_init() { } } file_full_snapshot_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RelationInformation); i { + switch v := v.(*QueryStatistic); i { case 0: return &v.state case 1: @@ -6647,7 +6952,7 @@ func file_full_snapshot_proto_init() { } } file_full_snapshot_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RelationStatistic); i { + switch v := v.(*HistoricQueryStatistics); i { case 0: return &v.state case 1: @@ -6659,7 +6964,7 @@ func file_full_snapshot_proto_init() { } } file_full_snapshot_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RelationEvent); i { + switch v := v.(*RelationInformation); i { case 0: return &v.state case 1: @@ -6671,7 +6976,7 @@ func file_full_snapshot_proto_init() { } } file_full_snapshot_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IndexInformation); i { + switch v := v.(*RelationStatistic); i { case 0: return &v.state case 1: @@ -6683,7 +6988,7 @@ func file_full_snapshot_proto_init() { } } file_full_snapshot_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IndexStatistic); i { + switch v := v.(*RelationEvent); i { case 0: return &v.state case 1: @@ -6695,7 +7000,7 @@ func file_full_snapshot_proto_init() { } } file_full_snapshot_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FunctionInformation); i { + switch v := v.(*IndexInformation); i { case 0: return &v.state case 1: @@ -6707,7 +7012,7 @@ func file_full_snapshot_proto_init() { } } file_full_snapshot_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FunctionStatistic); i { + switch v := v.(*IndexStatistic); i { case 0: return &v.state case 1: @@ -6719,7 +7024,7 @@ func file_full_snapshot_proto_init() { } } file_full_snapshot_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CustomTypeInformation); i { + switch v := v.(*FunctionInformation); i { case 0: return &v.state case 1: @@ -6731,7 +7036,7 @@ func file_full_snapshot_proto_init() { } } file_full_snapshot_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryPlanInformation); i { + switch v := v.(*FunctionStatistic); i { case 0: return &v.state case 1: @@ -6743,7 +7048,7 @@ func file_full_snapshot_proto_init() { } } file_full_snapshot_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryPlanStatistic); i { + switch v := v.(*CustomTypeInformation); i { case 0: return &v.state case 1: @@ -6755,7 +7060,19 @@ func file_full_snapshot_proto_init() { } } file_full_snapshot_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HistoricQueryPlanStatistics); i { + switch v := v.(*QueryPlanInformation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_full_snapshot_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QueryPlanStatistic); i { case 0: return &v.state case 1: @@ -6767,6 +7084,18 @@ func file_full_snapshot_proto_init() { } } file_full_snapshot_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HistoricQueryPlanStatistics); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_full_snapshot_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RelationInformation_Column); i { case 0: return &v.state @@ -6778,7 +7107,7 @@ func file_full_snapshot_proto_init() { return nil } } - file_full_snapshot_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + file_full_snapshot_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RelationInformation_ColumnStatistic); i { case 0: return &v.state @@ -6790,7 +7119,7 @@ func file_full_snapshot_proto_init() { return nil } } - file_full_snapshot_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + file_full_snapshot_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RelationInformation_Constraint); i { case 0: return &v.state @@ -6802,7 +7131,7 @@ func file_full_snapshot_proto_init() { return nil } } - file_full_snapshot_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + file_full_snapshot_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RelationInformation_ExtendedStatistic); i { case 0: return &v.state @@ -6814,7 +7143,7 @@ func file_full_snapshot_proto_init() { return nil } } - file_full_snapshot_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + file_full_snapshot_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CustomTypeInformation_CompositeAttr); i { case 0: return &v.state @@ -6833,7 +7162,7 @@ func file_full_snapshot_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_full_snapshot_proto_rawDesc, NumEnums: 7, - NumMessages: 35, + NumMessages: 37, NumExtensions: 0, NumServices: 0, }, diff --git a/output/transform/postgres.go b/output/transform/postgres.go index b333b3803..c1c247510 100644 --- a/output/transform/postgres.go +++ b/output/transform/postgres.go @@ -1,6 +1,9 @@ package transform import ( + "time" + + "github.com/golang/protobuf/ptypes" snapshot "github.com/pganalyze/collector/output/pganalyze_collector" "github.com/pganalyze/collector/state" ) @@ -14,7 +17,7 @@ func transformPostgres(s snapshot.FullSnapshot, newState state.PersistedState, d s = transformPostgresVersion(s, transientState) s = transformPostgresConfig(s, transientState) - s = transformPostgresServerStats(s, transientState) + s = transformPostgresServerStats(s, diffState, transientState) s = transformPostgresReplication(s, transientState, roleOidToIdx) s, queryIDKeyToIdx := transformPostgresStatements(s, newState, diffState, transientState, roleOidToIdx, databaseOidToIdx) s = transformPostgresPlans(s, newState, diffState, transientState, queryIDKeyToIdx) @@ -155,7 +158,7 @@ func transformPostgresVersion(s snapshot.FullSnapshot, transientState state.Tran return s } -func transformPostgresServerStats(s snapshot.FullSnapshot, transientState state.TransientState) snapshot.FullSnapshot { +func transformPostgresServerStats(s snapshot.FullSnapshot, diffState state.DiffState, transientState state.TransientState) snapshot.FullSnapshot { s.ServerStatistic = &snapshot.ServerStatistic{ CurrentXactId: int64(transientState.ServerStats.CurrentXactId), NextMultiXactId: int64(transientState.ServerStats.NextMultiXactId), @@ -166,6 +169,41 @@ func transformPostgresServerStats(s snapshot.FullSnapshot, transientState state. XminHorizonStandby: transientState.ServerStats.FullXminHorizonStandby(), } + for timeKey, diffedStats := range transientState.HistoricServerIoStats { + // Ignore any data older than an hour, as a safety measure in case of many + // failed full snapshot runs (which don't reset state) + if time.Since(timeKey.CollectedAt).Hours() >= 1 { + continue + } + + h := snapshot.HistoricServerIoStatistics{} + h.CollectedAt, _ = ptypes.TimestampProto(timeKey.CollectedAt) + h.CollectedIntervalSecs = timeKey.CollectedIntervalSecs + + for k, stats := range diffedStats { + h.Statistics = append(h.Statistics, &snapshot.ServerIoStatistic{ + BackendType: k.BackendType, + IoObject: k.IoObject, + IoContext: k.IoContext, + Reads: stats.Reads, + ReadTime: stats.ReadTime, + Writes: stats.Writes, + WriteTime: stats.WriteTime, + Writebacks: stats.Writebacks, + WritebackTime: stats.WritebackTime, + Extends: stats.Extends, + ExtendTime: stats.ExtendTime, + OpBytes: stats.OpBytes, + Hits: stats.Hits, + Evictions: stats.Evictions, + Reuses: stats.Reuses, + Fsyncs: stats.Fsyncs, + FsyncTime: stats.FsyncTime, + }) + } + s.HistoricServerIoStatistics = append(s.HistoricServerIoStatistics, &h) + } + return s } diff --git a/protobuf/full_snapshot.proto b/protobuf/full_snapshot.proto index acd06766d..5790eea66 100644 --- a/protobuf/full_snapshot.proto +++ b/protobuf/full_snapshot.proto @@ -45,6 +45,7 @@ message FullSnapshot { repeated DatabaseInformation database_informations = 111; repeated DatabaseStatistic database_statictics = 112; ServerStatistic server_statistic = 113; + repeated HistoricServerIoStatistics historic_server_io_statistics = 114; reserved 120; reserved 121; // This used to be backends before we moved them to their own compact snapshot @@ -172,6 +173,32 @@ message ServerStatistic { int64 xmin_horizon_standby = 7; // The oldest xmin for standbys in xid8 (64-bit FullTransactionId) } +// Postgres server I/O statistics (from pg_stat_io, in Postgres 16+) +message HistoricServerIoStatistics { + google.protobuf.Timestamp collected_at = 1; + uint32 collected_interval_secs = 2; + repeated ServerIoStatistic statistics = 3; +} +message ServerIoStatistic { + string backend_type = 1; + string io_object = 2; // "relation" or "temp relation" + string io_context = 3; // "normal", "vacuum", "bulkread" or "bulkwrite" + int64 reads = 4; + double read_time = 5; + int64 writes = 6; + double write_time = 7; + int64 writebacks = 8; + double writeback_time = 9; + int64 extends = 10; + double extend_time = 11; + int64 op_bytes = 12; + int64 hits = 13; + int64 evictions = 14; + int64 reuses = 15; + int64 fsyncs = 16; + double fsync_time = 17; +} + message Setting { string name = 1; string current_value = 2; diff --git a/runner/diff.go b/runner/diff.go index 376ee3d76..81a8e2a5d 100644 --- a/runner/diff.go +++ b/runner/diff.go @@ -26,6 +26,7 @@ func diffState(logger *util.Logger, prevState state.PersistedState, newState sta IndexStats: diffIndexStats(newDbStats.IndexStats, prevIdxStats), } } + diffState.ServerIoStats = diffServerIoStats(newState.ServerIoStats, prevState.ServerIoStats) diffState.SystemCPUStats = diffSystemCPUStats(newState.System.CPUStats, prevState.System.CPUStats) diffState.SystemNetworkStats = diffSystemNetworkStats(newState.System.NetworkStats, prevState.System.NetworkStats, collectedIntervalSecs) diffState.SystemDiskStats = diffSystemDiskStats(newState.System.DiskStats, prevState.System.DiskStats, collectedIntervalSecs) @@ -218,3 +219,25 @@ func diffDatabaseStats(new state.PostgresDatabaseStatsMap, prev state.PostgresDa } return } + +func diffServerIoStats(new state.PostgresServerIoStatsMap, prev state.PostgresServerIoStatsMap) (diff state.DiffedPostgresServerIoStatsMap) { + followUpRun := len(prev) > 0 + + diff = make(state.DiffedPostgresServerIoStatsMap) + for k, stats := range new { + var s state.DiffedPostgresServerIoStats + prevStats, exists := prev[k] + if exists { + s = stats.DiffSince(prevStats) + } else if followUpRun { // New since the last run + s = stats.DiffSince(state.PostgresServerIoStats{}) + } + // Skip over empty diffs (which can occur either because there was no activity, or for fixed entries that never saw activity) + if s.Reads != 0 || s.Writes != 0 || s.Writebacks != 0 || s.Extends != 0 || + s.Hits != 0 || s.Evictions != 0 || s.Reuses != 0 || s.Fsyncs != 0 { + diff[k] = s + } + } + + return +} diff --git a/runner/full.go b/runner/full.go index 5266e41e0..6f55514e2 100644 --- a/runner/full.go +++ b/runner/full.go @@ -57,6 +57,19 @@ func collectDiffAndSubmit(ctx context.Context, server *state.Server, globalColle transientState.HistoricStatementStats = server.PrevState.UnidentifiedStatementStats transientState.HistoricPlanStats = server.PrevState.UnidentifiedPlanStats + transientState.HistoricServerIoStats = server.PrevState.QueuedServerIoStats + + // Add current collection to historic values for easier handling (except for statements for historic reasons) + timeKey := state.PostgresStatementStatsTimeKey{ + CollectedAt: newState.CollectedAt, + CollectedIntervalSecs: uint32(newState.LastStatementStatsAt.Sub(server.PrevState.LastStatementStatsAt) / time.Second), + } + if transientState.HistoricServerIoStats == nil { + transientState.HistoricServerIoStats = make(state.HistoricPostgresServerIoStatsMap) + } + if diffState.ServerIoStats != nil { + transientState.HistoricServerIoStats[timeKey] = diffState.ServerIoStats // add current for easier tracking + } err = output.SendFull(ctx, server, globalCollectionOpts, logger, newState, diffState, transientState, collectedIntervalSecs) if err != nil { diff --git a/runner/queries.go b/runner/full_1min.go similarity index 72% rename from runner/queries.go rename to runner/full_1min.go index 3644bb14c..97d0e5453 100644 --- a/runner/queries.go +++ b/runner/full_1min.go @@ -12,7 +12,7 @@ import ( "github.com/pkg/errors" ) -func gatherQueryStatsForServer(ctx context.Context, server *state.Server, globalCollectionOpts state.CollectionOpts, logger *util.Logger) (state.PersistedState, error) { +func gather1minStatsForServer(ctx context.Context, server *state.Server, globalCollectionOpts state.CollectionOpts, logger *util.Logger) (state.PersistedState, error) { var err error var connection *sql.DB @@ -52,33 +52,45 @@ func gatherQueryStatsForServer(ctx context.Context, server *state.Server, global return newState, errors.Wrap(err, "error collecting query plan stats") } + _, newState.ServerIoStats, err = postgres.GetServerStats(ctx, logger, connection, postgresVersion, systemType) + if err != nil { + return newState, errors.Wrap(err, "error collecting Postgres server statistics") + } + // Don't calculate any diffs on the first run (but still update the state) if len(server.PrevState.StatementStats) == 0 || server.PrevState.LastStatementStatsAt.IsZero() { return newState, nil } - diffedStatementStats := diffStatements(newState.StatementStats, server.PrevState.StatementStats) - collectedIntervalSecs := uint32(newState.LastStatementStatsAt.Sub(server.PrevState.LastStatementStatsAt) / time.Second) + timeKey := state.PostgresStatementStatsTimeKey{ + CollectedAt: collectedAt, + CollectedIntervalSecs: uint32(newState.LastStatementStatsAt.Sub(server.PrevState.LastStatementStatsAt) / time.Second), + } - timeKey := state.PostgresStatementStatsTimeKey{CollectedAt: collectedAt, CollectedIntervalSecs: collectedIntervalSecs} newState.UnidentifiedStatementStats = server.PrevState.UnidentifiedStatementStats if newState.UnidentifiedStatementStats == nil { newState.UnidentifiedStatementStats = make(state.HistoricStatementStatsMap) } - newState.UnidentifiedStatementStats[timeKey] = diffedStatementStats - - diffedPlanStats := diffPlanStats(newState.PlanStats, server.PrevState.PlanStats) + newState.UnidentifiedStatementStats[timeKey] = diffStatements(newState.StatementStats, server.PrevState.StatementStats) newState.UnidentifiedPlanStats = server.PrevState.UnidentifiedPlanStats if newState.UnidentifiedPlanStats == nil { newState.UnidentifiedPlanStats = make(state.HistoricPlanStatsMap) } - newState.UnidentifiedPlanStats[timeKey] = diffedPlanStats + newState.UnidentifiedPlanStats[timeKey] = diffPlanStats(newState.PlanStats, server.PrevState.PlanStats) + + if postgresVersion.Numeric >= state.PostgresVersion16 { + newState.QueuedServerIoStats = server.PrevState.QueuedServerIoStats + if newState.QueuedServerIoStats == nil { + newState.QueuedServerIoStats = make(state.HistoricPostgresServerIoStatsMap) + } + newState.QueuedServerIoStats[timeKey] = diffServerIoStats(newState.ServerIoStats, server.PrevState.ServerIoStats) + } return newState, nil } -func GatherQueryStatsFromAllServers(ctx context.Context, servers []*state.Server, globalCollectionOpts state.CollectionOpts, logger *util.Logger) { +func Gather1minStatsFromAllServers(ctx context.Context, servers []*state.Server, globalCollectionOpts state.CollectionOpts, logger *util.Logger) { var wg sync.WaitGroup for idx := range servers { @@ -91,7 +103,7 @@ func GatherQueryStatsFromAllServers(ctx context.Context, servers []*state.Server prefixedLogger := logger.WithPrefixAndRememberErrors(server.Config.SectionName) server.StateMutex.Lock() - newState, err := gatherQueryStatsForServer(ctx, server, globalCollectionOpts, prefixedLogger) + newState, err := gather1minStatsForServer(ctx, server, globalCollectionOpts, prefixedLogger) if err != nil { server.StateMutex.Unlock() diff --git a/runner/run.go b/runner/run.go index a087e64a9..d27b3f664 100644 --- a/runner/run.go +++ b/runner/run.go @@ -240,7 +240,7 @@ func Run(ctx context.Context, wg *sync.WaitGroup, globalCollectionOpts state.Col schedulerGroups["query_stats"].ScheduleSecondary(ctx, func(ctx context.Context) { wg.Add(1) - GatherQueryStatsFromAllServers(ctx, servers, globalCollectionOpts, logger) + Gather1minStatsFromAllServers(ctx, servers, globalCollectionOpts, logger) wg.Done() }, logger, "high frequency query statistics of all servers", schedulerGroups["stats"]) diff --git a/state/postgres_server_stats.go b/state/postgres_server_stats.go index 37cd6c0d5..0f8c3b4a1 100644 --- a/state/postgres_server_stats.go +++ b/state/postgres_server_stats.go @@ -36,3 +36,51 @@ func (ss PostgresServerStats) FullXminHorizonPreparedXact() int64 { func (ss PostgresServerStats) FullXminHorizonStandby() int64 { return int64(XidToXid8(ss.XminHorizonStandby, Xid8(ss.CurrentXactId))) } + +type PostgresServerIoStatsKey struct { + BackendType string // a backend type like "autovacuum worker" + IoObject string // "relation" or "temp relation" + IoContext string // "normal", "vacuum", "bulkread" or "bulkwrite" +} + +type PostgresServerIoStats struct { + Reads int64 + ReadTime float64 + Writes int64 + WriteTime float64 + Writebacks int64 + WritebackTime float64 + Extends int64 + ExtendTime float64 + OpBytes int64 + Hits int64 + Evictions int64 + Reuses int64 + Fsyncs int64 + FsyncTime float64 +} + +type PostgresServerIoStatsMap map[PostgresServerIoStatsKey]PostgresServerIoStats + +type DiffedPostgresServerIoStats PostgresServerIoStats +type DiffedPostgresServerIoStatsMap map[PostgresServerIoStatsKey]DiffedPostgresServerIoStats + +type HistoricPostgresServerIoStatsMap map[PostgresStatementStatsTimeKey]DiffedPostgresServerIoStatsMap + +func (curr PostgresServerIoStats) DiffSince(prev PostgresServerIoStats) DiffedPostgresServerIoStats { + diff := DiffedPostgresServerIoStats{OpBytes: curr.OpBytes} + diff.Reads = curr.Reads - prev.Reads + diff.ReadTime = curr.ReadTime - prev.ReadTime + diff.Writes = curr.Writes - prev.Writes + diff.WriteTime = curr.WriteTime - prev.WriteTime + diff.Writebacks = curr.Writebacks - prev.Writebacks + diff.WritebackTime = curr.WritebackTime - prev.WritebackTime + diff.Extends = curr.Extends - prev.Extends + diff.ExtendTime = curr.ExtendTime - prev.ExtendTime + diff.Hits = curr.Hits - prev.Hits + diff.Evictions = curr.Evictions - prev.Evictions + diff.Reuses = curr.Reuses - prev.Reuses + diff.Fsyncs = curr.Fsyncs - prev.Fsyncs + diff.FsyncTime = curr.FsyncTime - prev.FsyncTime + return diff +} diff --git a/state/state.go b/state/state.go index 20a2a07d9..549400aca 100644 --- a/state/state.go +++ b/state/state.go @@ -28,6 +28,7 @@ type PersistedState struct { StatementStats PostgresStatementStatsMap SchemaStats map[Oid]*SchemaStats PlanStats PostgresPlanStatsMap + ServerIoStats PostgresServerIoStatsMap Relations []PostgresRelation Functions []PostgresFunction @@ -48,6 +49,9 @@ type PersistedState struct { // All plan stats that have not been identified (will be cleared by the next full snapshot) UnidentifiedPlanStats HistoricPlanStatsMap + + // Data queued up for submission with the next full snapshot + QueuedServerIoStats HistoricPostgresServerIoStatsMap } // TransientState - State thats only used within a collector run (and not needed for diffs) @@ -64,6 +68,7 @@ type TransientState struct { HistoricStatementStats HistoricStatementStatsMap HistoricPlanStats HistoricPlanStatsMap Plans PostgresPlanMap + HistoricServerIoStats HistoricPostgresServerIoStatsMap // This is a new zero value that was recorded after a pg_stat_statements_reset(), // in order to enable the next snapshot to be able to diff against something @@ -175,6 +180,7 @@ type DiffState struct { StatementStats DiffedPostgresStatementStatsMap SchemaStats map[Oid]*DiffedSchemaStats PlanStats DiffedPostgresPlanStatsMap + ServerIoStats DiffedPostgresServerIoStatsMap SystemCPUStats DiffedSystemCPUStatsMap SystemNetworkStats DiffedNetworkStatsMap