diff --git a/go/vt/proto/vtctldata/vtctldata.pb.go b/go/vt/proto/vtctldata/vtctldata.pb.go index 9ced000c3c..6c3d3e57ea 100644 --- a/go/vt/proto/vtctldata/vtctldata.pb.go +++ b/go/vt/proto/vtctldata/vtctldata.pb.go @@ -2619,6 +2619,111 @@ func (m *GetShardResponse) GetShard() *Shard { return nil } +type GetSrvKeyspacesRequest struct { + Keyspace string `protobuf:"bytes,1,opt,name=keyspace,proto3" json:"keyspace,omitempty"` + // Cells is a list of cells to lookup a SrvKeyspace for. Leaving this empty is + // equivalent to specifying all cells in the topo. + Cells []string `protobuf:"bytes,2,rep,name=cells,proto3" json:"cells,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetSrvKeyspacesRequest) Reset() { *m = GetSrvKeyspacesRequest{} } +func (m *GetSrvKeyspacesRequest) String() string { return proto.CompactTextString(m) } +func (*GetSrvKeyspacesRequest) ProtoMessage() {} +func (*GetSrvKeyspacesRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_f41247b323a1ab2e, []int{39} +} +func (m *GetSrvKeyspacesRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *GetSrvKeyspacesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_GetSrvKeyspacesRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *GetSrvKeyspacesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetSrvKeyspacesRequest.Merge(m, src) +} +func (m *GetSrvKeyspacesRequest) XXX_Size() int { + return m.Size() +} +func (m *GetSrvKeyspacesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetSrvKeyspacesRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetSrvKeyspacesRequest proto.InternalMessageInfo + +func (m *GetSrvKeyspacesRequest) GetKeyspace() string { + if m != nil { + return m.Keyspace + } + return "" +} + +func (m *GetSrvKeyspacesRequest) GetCells() []string { + if m != nil { + return m.Cells + } + return nil +} + +type GetSrvKeyspacesResponse struct { + // SrvKeyspaces is a mapping of cell name to SrvKeyspace. + SrvKeyspaces map[string]*topodata.SrvKeyspace `protobuf:"bytes,1,rep,name=srv_keyspaces,json=srvKeyspaces,proto3" json:"srv_keyspaces,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetSrvKeyspacesResponse) Reset() { *m = GetSrvKeyspacesResponse{} } +func (m *GetSrvKeyspacesResponse) String() string { return proto.CompactTextString(m) } +func (*GetSrvKeyspacesResponse) ProtoMessage() {} +func (*GetSrvKeyspacesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_f41247b323a1ab2e, []int{40} +} +func (m *GetSrvKeyspacesResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *GetSrvKeyspacesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_GetSrvKeyspacesResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *GetSrvKeyspacesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetSrvKeyspacesResponse.Merge(m, src) +} +func (m *GetSrvKeyspacesResponse) XXX_Size() int { + return m.Size() +} +func (m *GetSrvKeyspacesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_GetSrvKeyspacesResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_GetSrvKeyspacesResponse proto.InternalMessageInfo + +func (m *GetSrvKeyspacesResponse) GetSrvKeyspaces() map[string]*topodata.SrvKeyspace { + if m != nil { + return m.SrvKeyspaces + } + return nil +} + type GetSrvVSchemaRequest struct { Cell string `protobuf:"bytes,1,opt,name=cell,proto3" json:"cell,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -2630,7 +2735,7 @@ func (m *GetSrvVSchemaRequest) Reset() { *m = GetSrvVSchemaRequest{} } func (m *GetSrvVSchemaRequest) String() string { return proto.CompactTextString(m) } func (*GetSrvVSchemaRequest) ProtoMessage() {} func (*GetSrvVSchemaRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_f41247b323a1ab2e, []int{39} + return fileDescriptor_f41247b323a1ab2e, []int{41} } func (m *GetSrvVSchemaRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2677,7 +2782,7 @@ func (m *GetSrvVSchemaResponse) Reset() { *m = GetSrvVSchemaResponse{} } func (m *GetSrvVSchemaResponse) String() string { return proto.CompactTextString(m) } func (*GetSrvVSchemaResponse) ProtoMessage() {} func (*GetSrvVSchemaResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_f41247b323a1ab2e, []int{40} + return fileDescriptor_f41247b323a1ab2e, []int{42} } func (m *GetSrvVSchemaResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2724,7 +2829,7 @@ func (m *GetTabletRequest) Reset() { *m = GetTabletRequest{} } func (m *GetTabletRequest) String() string { return proto.CompactTextString(m) } func (*GetTabletRequest) ProtoMessage() {} func (*GetTabletRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_f41247b323a1ab2e, []int{41} + return fileDescriptor_f41247b323a1ab2e, []int{43} } func (m *GetTabletRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2771,7 +2876,7 @@ func (m *GetTabletResponse) Reset() { *m = GetTabletResponse{} } func (m *GetTabletResponse) String() string { return proto.CompactTextString(m) } func (*GetTabletResponse) ProtoMessage() {} func (*GetTabletResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_f41247b323a1ab2e, []int{42} + return fileDescriptor_f41247b323a1ab2e, []int{44} } func (m *GetTabletResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2825,7 +2930,7 @@ func (m *GetTabletsRequest) Reset() { *m = GetTabletsRequest{} } func (m *GetTabletsRequest) String() string { return proto.CompactTextString(m) } func (*GetTabletsRequest) ProtoMessage() {} func (*GetTabletsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_f41247b323a1ab2e, []int{43} + return fileDescriptor_f41247b323a1ab2e, []int{45} } func (m *GetTabletsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2886,7 +2991,7 @@ func (m *GetTabletsResponse) Reset() { *m = GetTabletsResponse{} } func (m *GetTabletsResponse) String() string { return proto.CompactTextString(m) } func (*GetTabletsResponse) ProtoMessage() {} func (*GetTabletsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_f41247b323a1ab2e, []int{44} + return fileDescriptor_f41247b323a1ab2e, []int{46} } func (m *GetTabletsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2933,7 +3038,7 @@ func (m *GetVSchemaRequest) Reset() { *m = GetVSchemaRequest{} } func (m *GetVSchemaRequest) String() string { return proto.CompactTextString(m) } func (*GetVSchemaRequest) ProtoMessage() {} func (*GetVSchemaRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_f41247b323a1ab2e, []int{45} + return fileDescriptor_f41247b323a1ab2e, []int{47} } func (m *GetVSchemaRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2980,7 +3085,7 @@ func (m *GetVSchemaResponse) Reset() { *m = GetVSchemaResponse{} } func (m *GetVSchemaResponse) String() string { return proto.CompactTextString(m) } func (*GetVSchemaResponse) ProtoMessage() {} func (*GetVSchemaResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_f41247b323a1ab2e, []int{46} + return fileDescriptor_f41247b323a1ab2e, []int{48} } func (m *GetVSchemaResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3028,7 +3133,7 @@ func (m *GetWorkflowsRequest) Reset() { *m = GetWorkflowsRequest{} } func (m *GetWorkflowsRequest) String() string { return proto.CompactTextString(m) } func (*GetWorkflowsRequest) ProtoMessage() {} func (*GetWorkflowsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_f41247b323a1ab2e, []int{47} + return fileDescriptor_f41247b323a1ab2e, []int{49} } func (m *GetWorkflowsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3082,7 +3187,7 @@ func (m *GetWorkflowsResponse) Reset() { *m = GetWorkflowsResponse{} } func (m *GetWorkflowsResponse) String() string { return proto.CompactTextString(m) } func (*GetWorkflowsResponse) ProtoMessage() {} func (*GetWorkflowsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_f41247b323a1ab2e, []int{48} + return fileDescriptor_f41247b323a1ab2e, []int{50} } func (m *GetWorkflowsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3133,7 +3238,7 @@ func (m *InitShardPrimaryRequest) Reset() { *m = InitShardPrimaryRequest func (m *InitShardPrimaryRequest) String() string { return proto.CompactTextString(m) } func (*InitShardPrimaryRequest) ProtoMessage() {} func (*InitShardPrimaryRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_f41247b323a1ab2e, []int{49} + return fileDescriptor_f41247b323a1ab2e, []int{51} } func (m *InitShardPrimaryRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3208,7 +3313,7 @@ func (m *InitShardPrimaryResponse) Reset() { *m = InitShardPrimaryRespon func (m *InitShardPrimaryResponse) String() string { return proto.CompactTextString(m) } func (*InitShardPrimaryResponse) ProtoMessage() {} func (*InitShardPrimaryResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_f41247b323a1ab2e, []int{50} + return fileDescriptor_f41247b323a1ab2e, []int{52} } func (m *InitShardPrimaryResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3276,7 +3381,7 @@ func (m *PlannedReparentShardRequest) Reset() { *m = PlannedReparentShar func (m *PlannedReparentShardRequest) String() string { return proto.CompactTextString(m) } func (*PlannedReparentShardRequest) ProtoMessage() {} func (*PlannedReparentShardRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_f41247b323a1ab2e, []int{51} + return fileDescriptor_f41247b323a1ab2e, []int{53} } func (m *PlannedReparentShardRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3360,7 +3465,7 @@ func (m *PlannedReparentShardResponse) Reset() { *m = PlannedReparentSha func (m *PlannedReparentShardResponse) String() string { return proto.CompactTextString(m) } func (*PlannedReparentShardResponse) ProtoMessage() {} func (*PlannedReparentShardResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_f41247b323a1ab2e, []int{52} + return fileDescriptor_f41247b323a1ab2e, []int{54} } func (m *PlannedReparentShardResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3436,7 +3541,7 @@ func (m *RemoveKeyspaceCellRequest) Reset() { *m = RemoveKeyspaceCellReq func (m *RemoveKeyspaceCellRequest) String() string { return proto.CompactTextString(m) } func (*RemoveKeyspaceCellRequest) ProtoMessage() {} func (*RemoveKeyspaceCellRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_f41247b323a1ab2e, []int{53} + return fileDescriptor_f41247b323a1ab2e, []int{55} } func (m *RemoveKeyspaceCellRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3503,7 +3608,7 @@ func (m *RemoveKeyspaceCellResponse) Reset() { *m = RemoveKeyspaceCellRe func (m *RemoveKeyspaceCellResponse) String() string { return proto.CompactTextString(m) } func (*RemoveKeyspaceCellResponse) ProtoMessage() {} func (*RemoveKeyspaceCellResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_f41247b323a1ab2e, []int{54} + return fileDescriptor_f41247b323a1ab2e, []int{56} } func (m *RemoveKeyspaceCellResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3552,7 +3657,7 @@ func (m *RemoveShardCellRequest) Reset() { *m = RemoveShardCellRequest{} func (m *RemoveShardCellRequest) String() string { return proto.CompactTextString(m) } func (*RemoveShardCellRequest) ProtoMessage() {} func (*RemoveShardCellRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_f41247b323a1ab2e, []int{55} + return fileDescriptor_f41247b323a1ab2e, []int{57} } func (m *RemoveShardCellRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3626,7 +3731,7 @@ func (m *RemoveShardCellResponse) Reset() { *m = RemoveShardCellResponse func (m *RemoveShardCellResponse) String() string { return proto.CompactTextString(m) } func (*RemoveShardCellResponse) ProtoMessage() {} func (*RemoveShardCellResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_f41247b323a1ab2e, []int{56} + return fileDescriptor_f41247b323a1ab2e, []int{58} } func (m *RemoveShardCellResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3668,7 +3773,7 @@ func (m *ReparentTabletRequest) Reset() { *m = ReparentTabletRequest{} } func (m *ReparentTabletRequest) String() string { return proto.CompactTextString(m) } func (*ReparentTabletRequest) ProtoMessage() {} func (*ReparentTabletRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_f41247b323a1ab2e, []int{57} + return fileDescriptor_f41247b323a1ab2e, []int{59} } func (m *ReparentTabletRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3720,7 +3825,7 @@ func (m *ReparentTabletResponse) Reset() { *m = ReparentTabletResponse{} func (m *ReparentTabletResponse) String() string { return proto.CompactTextString(m) } func (*ReparentTabletResponse) ProtoMessage() {} func (*ReparentTabletResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_f41247b323a1ab2e, []int{58} + return fileDescriptor_f41247b323a1ab2e, []int{60} } func (m *ReparentTabletResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3783,7 +3888,7 @@ func (m *TabletExternallyReparentedRequest) Reset() { *m = TabletExterna func (m *TabletExternallyReparentedRequest) String() string { return proto.CompactTextString(m) } func (*TabletExternallyReparentedRequest) ProtoMessage() {} func (*TabletExternallyReparentedRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_f41247b323a1ab2e, []int{59} + return fileDescriptor_f41247b323a1ab2e, []int{61} } func (m *TabletExternallyReparentedRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3833,7 +3938,7 @@ func (m *TabletExternallyReparentedResponse) Reset() { *m = TabletExtern func (m *TabletExternallyReparentedResponse) String() string { return proto.CompactTextString(m) } func (*TabletExternallyReparentedResponse) ProtoMessage() {} func (*TabletExternallyReparentedResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_f41247b323a1ab2e, []int{60} + return fileDescriptor_f41247b323a1ab2e, []int{62} } func (m *TabletExternallyReparentedResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3937,6 +4042,9 @@ func init() { proto.RegisterType((*GetSchemaResponse)(nil), "vtctldata.GetSchemaResponse") proto.RegisterType((*GetShardRequest)(nil), "vtctldata.GetShardRequest") proto.RegisterType((*GetShardResponse)(nil), "vtctldata.GetShardResponse") + proto.RegisterType((*GetSrvKeyspacesRequest)(nil), "vtctldata.GetSrvKeyspacesRequest") + proto.RegisterType((*GetSrvKeyspacesResponse)(nil), "vtctldata.GetSrvKeyspacesResponse") + proto.RegisterMapType((map[string]*topodata.SrvKeyspace)(nil), "vtctldata.GetSrvKeyspacesResponse.SrvKeyspacesEntry") proto.RegisterType((*GetSrvVSchemaRequest)(nil), "vtctldata.GetSrvVSchemaRequest") proto.RegisterType((*GetSrvVSchemaResponse)(nil), "vtctldata.GetSrvVSchemaResponse") proto.RegisterType((*GetTabletRequest)(nil), "vtctldata.GetTabletRequest") @@ -3964,165 +4072,170 @@ func init() { func init() { proto.RegisterFile("vtctldata.proto", fileDescriptor_f41247b323a1ab2e) } var fileDescriptor_f41247b323a1ab2e = []byte{ - // 2528 bytes of a gzipped FileDescriptorProto + // 2593 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x19, 0x4d, 0x6f, 0x1b, 0xc7, - 0xb5, 0x4b, 0x91, 0x14, 0xf9, 0xf8, 0x21, 0x79, 0x44, 0x49, 0x1b, 0x26, 0x56, 0x9c, 0x75, 0xec, - 0xa8, 0x6e, 0x4c, 0xda, 0x4a, 0x63, 0x18, 0x6e, 0xd2, 0xda, 0x96, 0x28, 0x43, 0x8e, 0xeb, 0xaa, - 0x2b, 0xd5, 0x01, 0x5a, 0xa0, 0xdb, 0xd1, 0xee, 0x88, 0x5e, 0x68, 0xb9, 0xcb, 0xec, 0x0c, 0x29, - 0x31, 0x3d, 0xf4, 0xd2, 0x1e, 0x02, 0x14, 0xe8, 0xb5, 0x40, 0x50, 0xa0, 0xa7, 0xa2, 0xbf, 0x20, - 0x40, 0x8b, 0xa2, 0xc7, 0xa2, 0xc7, 0x5e, 0x7b, 0x2b, 0xdc, 0x9f, 0xd1, 0x4b, 0x31, 0x5f, 0xcb, - 0xe5, 0xa7, 0x65, 0xc5, 0x40, 0xd1, 0x13, 0x77, 0xde, 0xbc, 0x37, 0xef, 0xcd, 0xfb, 0x7e, 0x43, - 0x58, 0xea, 0x33, 0x97, 0x05, 0x1e, 0x66, 0xb8, 0xd1, 0x8d, 0x23, 0x16, 0xa1, 0x62, 0x02, 0xa8, - 0x2f, 0x1f, 0xf9, 0x61, 0x10, 0xb5, 0x87, 0x9b, 0xf5, 0x4a, 0x10, 0xb5, 0x7b, 0xcc, 0x0f, 0xd4, - 0xb2, 0xda, 0x19, 0xd0, 0xcf, 0x02, 0x97, 0xe9, 0xf5, 0x3a, 0xc3, 0x47, 0x01, 0x61, 0x1d, 0x1c, - 0xe2, 0x36, 0x89, 0x53, 0x74, 0x55, 0x16, 0x75, 0xa3, 0xf4, 0x39, 0x7d, 0xea, 0x3e, 0x27, 0x1d, - 0xbd, 0x2c, 0xf7, 0x19, 0xf3, 0x3b, 0x44, 0xae, 0xac, 0x4f, 0xa1, 0xde, 0x3a, 0x23, 0x6e, 0x8f, - 0x91, 0x67, 0x5c, 0x94, 0xed, 0xa8, 0xd3, 0xc1, 0xa1, 0x67, 0x93, 0xcf, 0x7a, 0x84, 0x32, 0x84, - 0x20, 0x8b, 0xe3, 0x36, 0x35, 0x8d, 0x2b, 0x0b, 0x9b, 0x45, 0x5b, 0x7c, 0xa3, 0x6b, 0x50, 0xc5, - 0x2e, 0xf3, 0xa3, 0xd0, 0xe1, 0xc7, 0x44, 0x3d, 0x66, 0x66, 0xae, 0x18, 0x9b, 0x0b, 0x76, 0x45, - 0x42, 0x0f, 0x25, 0xd0, 0xda, 0x86, 0x37, 0xa7, 0x1e, 0x4c, 0xbb, 0x51, 0x48, 0x09, 0x7a, 0x17, - 0x72, 0xa4, 0x4f, 0x42, 0x66, 0x1a, 0x57, 0x8c, 0xcd, 0xd2, 0x56, 0xb5, 0xa1, 0x2f, 0xdb, 0xe2, - 0x50, 0x5b, 0x6e, 0x5a, 0x5f, 0x18, 0x60, 0x1e, 0xf2, 0x6b, 0x7e, 0x1f, 0x33, 0x12, 0xfb, 0x38, - 0xf0, 0x3f, 0x27, 0x07, 0x84, 0x31, 0x3f, 0x6c, 0x53, 0xf4, 0x0e, 0x94, 0x19, 0x8e, 0xdb, 0x84, - 0x39, 0x42, 0x13, 0xe2, 0xa4, 0xa2, 0x5d, 0x92, 0x30, 0x41, 0x85, 0xbe, 0x05, 0x97, 0x68, 0xd4, - 0x8b, 0x5d, 0xe2, 0x90, 0xb3, 0x6e, 0x4c, 0x28, 0xf5, 0xa3, 0x50, 0x88, 0x5b, 0xb4, 0x97, 0xe5, - 0x46, 0x2b, 0x81, 0xa3, 0xcb, 0x00, 0x6e, 0x4c, 0x30, 0x23, 0x8e, 0xe7, 0x05, 0xe6, 0x82, 0xc0, - 0x2a, 0x4a, 0xc8, 0x8e, 0x17, 0x58, 0xff, 0xcc, 0xc0, 0xca, 0x34, 0x31, 0xea, 0x50, 0x38, 0x8d, - 0xe2, 0x93, 0xe3, 0x20, 0x3a, 0x55, 0x22, 0x24, 0x6b, 0xf4, 0x1e, 0x2c, 0x29, 0xfe, 0x27, 0x64, - 0x40, 0xbb, 0xd8, 0x25, 0x8a, 0x7b, 0x55, 0x82, 0x3f, 0x51, 0x50, 0x8e, 0xa8, 0xee, 0x92, 0x20, - 0x4a, 0x01, 0xaa, 0x12, 0x9c, 0x20, 0x5e, 0x87, 0x25, 0xca, 0xa2, 0xae, 0x83, 0x8f, 0x19, 0x89, - 0x1d, 0x37, 0xea, 0x0e, 0xcc, 0xec, 0x15, 0x63, 0xb3, 0x60, 0x57, 0x38, 0xf8, 0x01, 0x87, 0x6e, - 0x47, 0xdd, 0x01, 0x7a, 0x0c, 0x55, 0xa1, 0x15, 0x87, 0x2a, 0x39, 0xcd, 0xdc, 0x95, 0x85, 0xcd, - 0xd2, 0xd6, 0xd5, 0xc6, 0xd0, 0x07, 0x67, 0x69, 0xd6, 0xae, 0x08, 0xd2, 0xe4, 0x86, 0x08, 0xb2, - 0x2e, 0x09, 0x02, 0x33, 0x2f, 0x24, 0x12, 0xdf, 0x52, 0xf9, 0xdc, 0xff, 0x1c, 0x36, 0xe8, 0x12, - 0x6a, 0x2e, 0x6a, 0xe5, 0x73, 0xd8, 0x21, 0x07, 0xa1, 0x6f, 0xc2, 0x32, 0x39, 0x63, 0x24, 0x0e, - 0x71, 0xe0, 0xb8, 0x41, 0x8f, 0x32, 0x12, 0x9b, 0x05, 0x81, 0xb6, 0xa4, 0xe1, 0xdb, 0x12, 0x6c, - 0x3d, 0x85, 0x42, 0x72, 0x43, 0x04, 0xd9, 0x10, 0x77, 0xb4, 0x39, 0xc5, 0x37, 0x6a, 0x40, 0x61, - 0x44, 0x81, 0xa5, 0x2d, 0xd4, 0x48, 0xbc, 0x5c, 0x53, 0xda, 0x09, 0x8e, 0xf5, 0x53, 0xc8, 0x1d, - 0x3c, 0xc7, 0xb1, 0xc7, 0x8d, 0x93, 0x10, 0x2a, 0xe3, 0x9c, 0x8c, 0x33, 0xca, 0xa4, 0x18, 0x5d, - 0x83, 0x1c, 0xe5, 0x84, 0x42, 0xfb, 0xa5, 0xad, 0xa5, 0x21, 0x17, 0x71, 0x9e, 0x2d, 0x77, 0xad, - 0x3f, 0x16, 0xa1, 0xf0, 0xa9, 0x36, 0xf2, 0x34, 0x81, 0xbf, 0x07, 0x79, 0x69, 0x61, 0x25, 0xee, - 0x7b, 0x29, 0xb5, 0x6b, 0xc2, 0x86, 0x4d, 0xba, 0x81, 0xef, 0x62, 0x1e, 0x35, 0x4f, 0x22, 0xf9, - 0x6b, 0x2b, 0x32, 0x7e, 0x80, 0xb4, 0xbc, 0x92, 0xe4, 0xfc, 0x07, 0x48, 0x32, 0x74, 0x1b, 0x56, - 0x3b, 0xf8, 0xcc, 0xe9, 0x3b, 0xf1, 0x10, 0xc9, 0x09, 0x70, 0x5b, 0xb8, 0xcb, 0x82, 0x8d, 0x3a, - 0xf8, 0xec, 0x59, 0x9a, 0x1e, 0xb7, 0xd1, 0x63, 0xa8, 0x88, 0xeb, 0x39, 0x94, 0xc5, 0x04, 0x77, - 0xb4, 0xcb, 0x5c, 0x9b, 0xc6, 0x5a, 0xa8, 0xe3, 0x40, 0xe2, 0xb5, 0x42, 0x16, 0x0f, 0xec, 0x32, - 0x4d, 0x81, 0xea, 0x3f, 0x83, 0x4b, 0x13, 0x28, 0x68, 0x19, 0x16, 0x4e, 0xc8, 0x40, 0x29, 0x8a, - 0x7f, 0xa2, 0x0f, 0x21, 0xd7, 0xc7, 0x41, 0x4f, 0xab, 0xe9, 0xed, 0x97, 0xb0, 0xb2, 0x25, 0xf6, - 0xbd, 0xcc, 0x5d, 0xa3, 0xbe, 0x07, 0x2b, 0x53, 0xee, 0x3f, 0xd7, 0xe2, 0x6b, 0x90, 0x17, 0x42, - 0x52, 0x33, 0x23, 0x12, 0x9a, 0x5a, 0xd5, 0xff, 0x64, 0x40, 0x29, 0xc5, 0x05, 0x7d, 0x1b, 0x16, - 0xb5, 0x0a, 0x0c, 0xa1, 0x82, 0xfa, 0x54, 0xb9, 0xa4, 0x48, 0x1a, 0x15, 0xed, 0xf2, 0x18, 0x16, - 0x21, 0xe1, 0x46, 0x21, 0x8b, 0xa3, 0x40, 0xb2, 0x29, 0x6d, 0x5d, 0x1e, 0xf3, 0x22, 0x19, 0x78, - 0x6c, 0x5b, 0x62, 0xd9, 0x32, 0x50, 0xf5, 0x92, 0xa2, 0xf7, 0x01, 0xf9, 0xd4, 0xe9, 0xc6, 0x7e, - 0x07, 0xc7, 0x03, 0x87, 0x92, 0xb8, 0xef, 0x87, 0x6d, 0xe1, 0x06, 0x05, 0x7b, 0xd9, 0xa7, 0xfb, - 0x72, 0xe3, 0x40, 0xc2, 0xeb, 0xbf, 0xcb, 0x42, 0x5e, 0x89, 0x5d, 0x85, 0x8c, 0xef, 0x89, 0x4b, - 0x2f, 0xd8, 0x19, 0xdf, 0x43, 0x35, 0xed, 0xcc, 0xd2, 0xc3, 0xe5, 0x02, 0xdd, 0xe4, 0x9e, 0xc5, - 0x19, 0x2a, 0xcf, 0x5a, 0x1d, 0x4a, 0x27, 0xe5, 0x7a, 0x10, 0xf8, 0x98, 0xda, 0x0a, 0x09, 0x7d, - 0x0c, 0x15, 0x59, 0x99, 0x1c, 0xe5, 0xd0, 0x59, 0x41, 0x65, 0x36, 0x52, 0xf5, 0xea, 0xa1, 0xf8, - 0x3c, 0x10, 0xfb, 0x76, 0xf9, 0x28, 0xb5, 0xe2, 0xe6, 0xe8, 0x46, 0xd4, 0xe7, 0xa6, 0x31, 0x73, - 0xd2, 0x1c, 0x7a, 0x8d, 0xae, 0x82, 0x48, 0x5a, 0x4e, 0x82, 0x20, 0x13, 0x4c, 0x99, 0x03, 0xf7, - 0x35, 0x12, 0xbf, 0x04, 0xc3, 0x8c, 0xa8, 0x0c, 0x23, 0x17, 0x68, 0x1d, 0x16, 0xbd, 0x23, 0x47, - 0x84, 0x9d, 0x4c, 0x29, 0x79, 0xef, 0xe8, 0x29, 0x0f, 0xbc, 0x07, 0xb0, 0xca, 0x62, 0x1c, 0xd2, - 0x54, 0x89, 0xa2, 0x0c, 0x77, 0xba, 0x66, 0x51, 0x88, 0x5d, 0x6e, 0xa8, 0xea, 0xc7, 0xcb, 0x94, - 0x5d, 0x4b, 0xa1, 0x1e, 0x6a, 0x4c, 0xd4, 0x84, 0x32, 0x47, 0x71, 0x7a, 0x5d, 0x0f, 0x33, 0xe2, - 0x99, 0x30, 0x85, 0xb2, 0xc4, 0x3f, 0x7f, 0x24, 0x11, 0x90, 0x09, 0x8b, 0x1d, 0x42, 0x29, 0x6e, - 0x13, 0xb3, 0x24, 0x84, 0xd1, 0x4b, 0xd4, 0x82, 0x12, 0x4f, 0xd1, 0x8e, 0x10, 0x9a, 0x9a, 0x65, - 0xe1, 0x0e, 0xef, 0xce, 0x76, 0xa6, 0x06, 0xcf, 0xdd, 0x07, 0x1c, 0xd9, 0x06, 0x57, 0x7f, 0xd2, - 0xfa, 0x3d, 0x28, 0x26, 0x1b, 0x5c, 0x21, 0xe9, 0x7a, 0x27, 0x17, 0x5c, 0x21, 0x01, 0xa6, 0xcc, - 0xe9, 0x9e, 0x28, 0x6b, 0xe7, 0xf9, 0x72, 0xff, 0xc4, 0xfa, 0xd2, 0x80, 0xf5, 0xed, 0xe7, 0x38, - 0x6c, 0x93, 0xc3, 0x24, 0x37, 0xeb, 0xf2, 0x7e, 0x37, 0x49, 0xe2, 0x98, 0xdb, 0x5c, 0xd5, 0xe2, - 0x19, 0x0e, 0xa1, 0x72, 0xbb, 0x58, 0xa0, 0x9b, 0x42, 0xff, 0x3c, 0xf5, 0x0b, 0x76, 0xd5, 0xad, - 0xda, 0x38, 0x91, 0xe0, 0x93, 0xf7, 0x8e, 0xf8, 0xaf, 0x30, 0x57, 0x3c, 0x70, 0xe2, 0x5e, 0xa8, - 0xfc, 0x38, 0xef, 0xc5, 0x03, 0xbb, 0x17, 0x5a, 0x7f, 0x30, 0xc0, 0x9c, 0x94, 0x4e, 0xf5, 0x08, - 0x1f, 0x42, 0xe5, 0x88, 0x1c, 0x47, 0x31, 0x71, 0x94, 0xc3, 0x4a, 0xf9, 0x96, 0xc7, 0x59, 0xd9, - 0x65, 0x89, 0x26, 0x57, 0xe8, 0x03, 0x28, 0xcb, 0xea, 0xa8, 0xa8, 0x32, 0x33, 0xa8, 0x4a, 0x02, - 0x4b, 0x11, 0x6d, 0x40, 0xe9, 0x14, 0x53, 0x67, 0x54, 0xca, 0xe2, 0x29, 0xa6, 0x3b, 0x52, 0xd0, - 0xaf, 0x16, 0x60, 0x75, 0x5b, 0xf4, 0x02, 0x49, 0xb9, 0x19, 0xf6, 0x48, 0x13, 0xe9, 0xbf, 0x06, - 0xb9, 0xe3, 0x48, 0x67, 0xff, 0x82, 0x2d, 0x17, 0xa8, 0x09, 0x35, 0x1c, 0x04, 0xd1, 0xa9, 0x43, - 0x3a, 0x5d, 0x36, 0x70, 0xfa, 0x8e, 0xec, 0xcb, 0x14, 0xb3, 0x4b, 0x62, 0xaf, 0xc5, 0xb7, 0x9e, - 0x1d, 0x88, 0x0d, 0x74, 0x0b, 0x6a, 0x22, 0x66, 0xfd, 0xb0, 0xed, 0xb8, 0x51, 0xd0, 0xeb, 0x84, - 0xd2, 0xe5, 0xb3, 0x82, 0x15, 0xd2, 0x7b, 0xdb, 0x62, 0x4b, 0xb8, 0xff, 0xe3, 0x49, 0x0a, 0x61, - 0xa4, 0x9c, 0x30, 0x92, 0x39, 0x59, 0x34, 0xf7, 0x3c, 0xa1, 0xf2, 0xb1, 0xb3, 0x84, 0xd1, 0xee, - 0x43, 0x99, 0x27, 0x1f, 0xe2, 0x39, 0xc7, 0x71, 0xd4, 0xa1, 0x66, 0x7e, 0x3c, 0x99, 0xe9, 0x33, - 0x1a, 0x07, 0x02, 0x6d, 0x37, 0x8e, 0x3a, 0x76, 0x89, 0x26, 0xdf, 0x14, 0xdd, 0x80, 0xac, 0xe0, - 0xbe, 0x28, 0xb8, 0xaf, 0x4d, 0x52, 0x0a, 0xde, 0x02, 0x87, 0x27, 0x83, 0x23, 0x4c, 0x53, 0x8d, - 0x92, 0x8c, 0xeb, 0x32, 0x07, 0x26, 0xbd, 0xc1, 0x6d, 0xa8, 0xd0, 0x10, 0x77, 0xe9, 0xf3, 0x88, - 0x89, 0xd0, 0x9e, 0x1a, 0xd5, 0x65, 0x8d, 0xc2, 0x57, 0xd6, 0x1e, 0xac, 0x8d, 0xdb, 0x4d, 0xb9, - 0x57, 0x73, 0xac, 0x52, 0x94, 0xb6, 0x56, 0x52, 0x91, 0x39, 0xa5, 0xab, 0xf8, 0xb5, 0x01, 0x48, - 0x9e, 0x25, 0x9b, 0x01, 0xe5, 0x00, 0xf3, 0x2a, 0xce, 0x65, 0x00, 0x59, 0x52, 0x53, 0x9d, 0x46, - 0x51, 0x40, 0x9e, 0x8e, 0xf8, 0xc9, 0x42, 0xda, 0x4f, 0xae, 0x41, 0xd5, 0x0f, 0xdd, 0xa0, 0xe7, - 0x11, 0xa7, 0x8b, 0x63, 0xde, 0x24, 0xab, 0x16, 0x4f, 0x41, 0xf7, 0x05, 0xd0, 0xfa, 0xbd, 0x01, - 0x2b, 0x23, 0xe2, 0x5c, 0xf0, 0x5e, 0xe8, 0x7a, 0xba, 0x4e, 0xf0, 0x48, 0x19, 0x62, 0xa7, 0xbb, - 0x9e, 0xc4, 0x1d, 0x1d, 0x1c, 0xc4, 0x04, 0x7b, 0x03, 0x87, 0x9c, 0xf9, 0x94, 0x51, 0x25, 0xbc, - 0x74, 0xa1, 0x07, 0x72, 0xab, 0x25, 0x76, 0xac, 0x1f, 0xc2, 0xea, 0x0e, 0x09, 0xc8, 0x64, 0xd0, - 0xcc, 0xd3, 0xd9, 0x5b, 0x50, 0x8c, 0x89, 0xdb, 0x8b, 0xa9, 0xdf, 0xd7, 0x01, 0x34, 0x04, 0x58, - 0x26, 0xac, 0x8d, 0x1f, 0x29, 0xef, 0x6d, 0xfd, 0xca, 0x80, 0x15, 0xb9, 0x25, 0xa4, 0xa6, 0x9a, - 0xd7, 0x66, 0x52, 0xf5, 0x65, 0x31, 0x9f, 0xbc, 0x9f, 0xda, 0x9f, 0xcf, 0x99, 0xb7, 0xde, 0x7c, - 0x2a, 0x71, 0xfc, 0xe3, 0xa4, 0x28, 0x2b, 0xbb, 0x70, 0xf0, 0xde, 0xb1, 0xaa, 0xc8, 0xd6, 0x1a, - 0xd4, 0x46, 0xc5, 0x50, 0xf2, 0x0d, 0x34, 0x5c, 0xa6, 0x9c, 0x44, 0xbe, 0x8f, 0x54, 0xab, 0xae, - 0xb2, 0x30, 0xd1, 0x72, 0xce, 0xc8, 0xc3, 0x95, 0x54, 0x1e, 0x26, 0x94, 0xc7, 0x8d, 0x4c, 0x2a, - 0xaa, 0x61, 0x50, 0x72, 0x97, 0x05, 0x50, 0xf5, 0x0a, 0xd6, 0xba, 0xb6, 0x43, 0xc2, 0x5a, 0xc9, - 0xf4, 0x9b, 0x0c, 0x5c, 0x6e, 0x75, 0x48, 0xdc, 0x26, 0xa1, 0x3b, 0xb0, 0x89, 0x74, 0xb7, 0x73, - 0x7b, 0xf7, 0xf4, 0x06, 0xe3, 0x0e, 0x94, 0x42, 0x32, 0x94, 0x67, 0x6e, 0x97, 0x01, 0x21, 0xd1, - 0x42, 0xa2, 0xef, 0xc2, 0x92, 0xdf, 0x0e, 0x79, 0xba, 0x57, 0x2d, 0x2b, 0x35, 0xb3, 0xf3, 0x14, - 0x51, 0x95, 0xd8, 0xaa, 0x09, 0xa4, 0x68, 0x07, 0x56, 0x4f, 0xb1, 0xcf, 0x12, 0xea, 0x64, 0x3e, - 0xcd, 0x25, 0x6e, 0x2d, 0x92, 0xc4, 0x4e, 0x2f, 0x96, 0xad, 0xf2, 0x0a, 0x47, 0xd7, 0xe4, 0x7a, - 0x6e, 0xfd, 0x8b, 0x01, 0x1b, 0xb3, 0x34, 0xa2, 0x02, 0xec, 0xd5, 0x55, 0x72, 0x1f, 0x96, 0xbb, - 0x71, 0xd4, 0x89, 0x18, 0xf1, 0xce, 0xa7, 0x97, 0x25, 0x8d, 0xae, 0x95, 0x73, 0x1d, 0xf2, 0x62, - 0x24, 0xd6, 0x3a, 0x19, 0x1f, 0x98, 0xd5, 0xae, 0xf5, 0x11, 0x6c, 0xec, 0xfa, 0xa1, 0xf7, 0x20, - 0x08, 0xa4, 0xf7, 0xed, 0x85, 0xaf, 0x10, 0x7a, 0xd6, 0x5f, 0x0d, 0x78, 0x7b, 0x26, 0xb9, 0xba, - 0xfd, 0xd3, 0xb1, 0x70, 0xba, 0x93, 0x0a, 0xa7, 0x97, 0xd0, 0xca, 0x70, 0x53, 0xf3, 0x82, 0x6e, - 0xbe, 0x3f, 0x51, 0xbd, 0xf7, 0xcc, 0x19, 0xe1, 0xfa, 0xe8, 0x8c, 0x30, 0x25, 0x3d, 0x25, 0x43, - 0x81, 0xd5, 0x82, 0x4b, 0x8f, 0x08, 0x7b, 0x88, 0xdd, 0x93, 0x5e, 0x97, 0x5e, 0xd8, 0x85, 0xad, - 0x1d, 0x40, 0xe9, 0x63, 0xd4, 0xcd, 0x1b, 0xb0, 0x78, 0x24, 0x41, 0xea, 0xea, 0xb5, 0x46, 0xf2, - 0x26, 0x23, 0x71, 0xf7, 0xc2, 0xe3, 0xc8, 0xd6, 0x48, 0xd6, 0x1b, 0xb0, 0xfe, 0x88, 0xb0, 0x6d, - 0x12, 0x04, 0x1c, 0xce, 0x13, 0xbe, 0x16, 0xc9, 0xba, 0x05, 0xe6, 0xe4, 0x96, 0x62, 0x53, 0x83, - 0x1c, 0xaf, 0x16, 0xfa, 0xd5, 0x45, 0x2e, 0xac, 0x4d, 0x21, 0x92, 0xa6, 0x48, 0x35, 0x1f, 0x62, - 0x34, 0x37, 0x86, 0xa3, 0xb9, 0xb5, 0x0b, 0x2b, 0x23, 0x98, 0x49, 0x59, 0x28, 0xf2, 0x6d, 0xc7, - 0x0f, 0x8f, 0x23, 0x55, 0x17, 0x52, 0x43, 0x74, 0x82, 0x5e, 0x70, 0xd5, 0x17, 0xcf, 0xb4, 0xea, - 0x1c, 0xaa, 0x92, 0x8d, 0x96, 0xfe, 0x2b, 0x23, 0xb9, 0xd9, 0x70, 0x4b, 0xb1, 0xd9, 0x83, 0xc5, - 0xd1, 0x34, 0xd6, 0x4c, 0xd9, 0x6b, 0x06, 0x51, 0x43, 0xad, 0xa5, 0x63, 0x68, 0xfa, 0xfa, 0x3e, - 0x94, 0xd3, 0x1b, 0x53, 0x5c, 0xe3, 0xc6, 0xa8, 0x6b, 0xd4, 0x46, 0xef, 0x23, 0xd9, 0xa4, 0xdd, - 0x63, 0x55, 0xa8, 0x46, 0xbb, 0x65, 0x72, 0x9f, 0x3d, 0xa8, 0x8d, 0x82, 0xd5, 0x5d, 0x6e, 0x43, - 0x51, 0x3b, 0x8a, 0xbe, 0xcd, 0xd4, 0x52, 0x3a, 0xc4, 0xb2, 0x6e, 0x09, 0x33, 0xbd, 0x4a, 0xcc, - 0xed, 0x8e, 0xc8, 0x74, 0xf1, 0xee, 0xe4, 0x97, 0x19, 0x58, 0x7e, 0x44, 0x98, 0x6c, 0x1d, 0xbf, - 0x7e, 0x87, 0xbf, 0xa6, 0xc6, 0xc4, 0x64, 0x56, 0x96, 0x2b, 0xde, 0x9c, 0x90, 0x33, 0xd9, 0x9c, - 0xa8, 0xfd, 0x05, 0xb1, 0x5f, 0x51, 0xd0, 0x43, 0x89, 0x76, 0x15, 0x74, 0xb7, 0xe2, 0xf4, 0x7d, - 0x72, 0x4a, 0x55, 0xa9, 0x2c, 0x2b, 0xe0, 0x33, 0x0e, 0x43, 0x9b, 0xb0, 0x2c, 0x1f, 0xa9, 0x84, - 0x8b, 0x3b, 0x51, 0x18, 0x0c, 0x44, 0xb2, 0x2e, 0xa8, 0x99, 0x58, 0xc4, 0xc5, 0x0f, 0xc2, 0x60, - 0x30, 0xc4, 0xa4, 0xfe, 0xe7, 0x1a, 0x33, 0x9f, 0xc2, 0x3c, 0xe0, 0x60, 0x8e, 0x69, 0xed, 0x8b, - 0x0c, 0xa0, 0xb5, 0xa0, 0x94, 0xf9, 0x1d, 0xc8, 0xab, 0x5e, 0x5b, 0x2a, 0xe0, 0x6a, 0x63, 0xf2, - 0xf1, 0x54, 0x92, 0xec, 0x90, 0x63, 0x3f, 0xf4, 0xd5, 0x53, 0x8c, 0x80, 0x58, 0x4f, 0x60, 0x89, - 0x9f, 0xf8, 0x7a, 0x5a, 0x3e, 0xeb, 0x9e, 0xb4, 0xd2, 0x48, 0x41, 0x49, 0x1a, 0x30, 0x63, 0x6e, - 0x03, 0x66, 0xdd, 0x10, 0x7e, 0x7a, 0x10, 0xf7, 0x9f, 0x8d, 0x5a, 0x79, 0x5a, 0x16, 0x78, 0x0a, - 0xab, 0x63, 0xb8, 0xc9, 0x54, 0x55, 0xa6, 0x71, 0x7f, 0x38, 0x7d, 0x24, 0xce, 0xa5, 0x5e, 0x89, - 0x53, 0x24, 0x40, 0x93, 0x6f, 0xeb, 0x89, 0x90, 0x5b, 0x8d, 0x4e, 0x5f, 0xd7, 0xbb, 0xac, 0x8f, - 0x85, 0x95, 0xf4, 0x69, 0x4a, 0xb2, 0xcd, 0xe4, 0x65, 0x62, 0xd6, 0xa0, 0xa7, 0xf6, 0xad, 0x9f, - 0xa4, 0xc8, 0x2f, 0x9e, 0xe6, 0x39, 0x94, 0xeb, 0x4a, 0xbb, 0xb0, 0x5c, 0x58, 0xf7, 0x45, 0x08, - 0x8f, 0x75, 0x4a, 0xe8, 0x06, 0x2c, 0x4a, 0xe6, 0xc3, 0x36, 0x72, 0x5c, 0x3a, 0x8d, 0x60, 0x35, - 0x85, 0x78, 0x63, 0x46, 0x9a, 0x97, 0x03, 0x1e, 0x0a, 0x96, 0xe3, 0x96, 0x7a, 0x1f, 0x0a, 0x63, - 0x56, 0xba, 0x94, 0x58, 0x29, 0x49, 0x00, 0x8b, 0x7d, 0x65, 0x20, 0x5b, 0xe4, 0x11, 0xfd, 0xa0, - 0x70, 0x2e, 0xad, 0xbc, 0x0d, 0x25, 0xec, 0x32, 0xbf, 0x4f, 0x64, 0x40, 0xc9, 0xce, 0x11, 0x24, - 0x48, 0x04, 0x93, 0x4c, 0x8c, 0xa9, 0x33, 0x87, 0x89, 0x51, 0xbf, 0x71, 0x4f, 0x4b, 0x8c, 0x9a, - 0xc0, 0x1e, 0x62, 0x59, 0xff, 0x31, 0x60, 0x7d, 0x2f, 0xf4, 0xa5, 0xe7, 0xab, 0xae, 0xe6, 0xe2, - 0x96, 0xb3, 0xa1, 0xae, 0x1f, 0xc8, 0x48, 0x40, 0x5c, 0xf5, 0x17, 0x80, 0xf6, 0xc3, 0xb9, 0xad, - 0xd5, 0xba, 0x22, 0x6c, 0x71, 0xba, 0xd4, 0xc6, 0x70, 0x18, 0xcb, 0xa6, 0x87, 0xb1, 0xd7, 0xd3, - 0x55, 0x3e, 0x04, 0x73, 0xf2, 0xf2, 0x49, 0xf4, 0xeb, 0xd6, 0xce, 0x98, 0xdb, 0xda, 0x7d, 0x91, - 0x81, 0x37, 0xf7, 0x03, 0x1c, 0x86, 0xc4, 0xfb, 0x1f, 0x77, 0xea, 0xf7, 0xa0, 0x82, 0xfb, 0x91, - 0x3f, 0xec, 0x65, 0xb3, 0xf3, 0x28, 0xcb, 0x02, 0x57, 0xd3, 0xbe, 0x1e, 0x7d, 0xfe, 0xd9, 0x80, - 0xb7, 0xa6, 0xeb, 0xe2, 0xff, 0xa0, 0x47, 0xff, 0x05, 0xbc, 0x61, 0x93, 0x4e, 0xd4, 0x4f, 0x46, - 0x58, 0xde, 0xac, 0x9c, 0xc7, 0x8a, 0x3a, 0xcf, 0x67, 0x52, 0x7f, 0xc4, 0x4c, 0x7f, 0x42, 0x18, - 0x99, 0x64, 0xb3, 0xe3, 0x33, 0xf4, 0x5b, 0x50, 0x9f, 0x26, 0x80, 0x9a, 0x09, 0xbf, 0x34, 0x60, - 0x4d, 0x6e, 0x0b, 0x95, 0x9e, 0x57, 0xb8, 0x97, 0x3c, 0x75, 0x68, 0xd9, 0x17, 0xa6, 0xc9, 0x9e, - 0x9d, 0x29, 0x7b, 0x6e, 0x5c, 0xf6, 0x37, 0x60, 0x7d, 0x42, 0x38, 0x25, 0xf8, 0x2e, 0xac, 0x6a, - 0x67, 0x18, 0xad, 0x53, 0x37, 0xc7, 0x0a, 0xcb, 0xfc, 0x27, 0x6f, 0xeb, 0xe7, 0xfc, 0xfe, 0xa3, - 0xe7, 0x5c, 0xd8, 0xab, 0x9a, 0xb0, 0x78, 0x2e, 0x67, 0xd2, 0x58, 0x96, 0x0d, 0xef, 0x48, 0x78, - 0x4b, 0xfd, 0x47, 0x16, 0x24, 0x53, 0x28, 0xf1, 0x2e, 0x78, 0xa1, 0xbf, 0x19, 0x60, 0xcd, 0x3b, - 0xf4, 0xc2, 0xb7, 0xbb, 0x68, 0x02, 0xb9, 0x03, 0xa5, 0x28, 0x38, 0x67, 0xfa, 0x80, 0x28, 0xd0, - 0x11, 0xf6, 0xf0, 0xee, 0xdf, 0x5f, 0x6c, 0x18, 0xff, 0x78, 0xb1, 0x61, 0xfc, 0xeb, 0xc5, 0x86, - 0xf1, 0xdb, 0x7f, 0x6f, 0x7c, 0xe3, 0xc7, 0xd7, 0xfb, 0x3e, 0x23, 0x94, 0x36, 0xfc, 0xa8, 0x29, - 0xbf, 0x9a, 0xed, 0xa8, 0xd9, 0x67, 0x4d, 0xf1, 0xef, 0x76, 0x33, 0x29, 0x49, 0x47, 0x79, 0x01, - 0xf8, 0xe0, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x9d, 0xf4, 0x55, 0x44, 0x83, 0x1f, 0x00, 0x00, + 0xb5, 0x4b, 0x52, 0x94, 0xf8, 0x48, 0xea, 0x63, 0xf4, 0xb5, 0x61, 0x6c, 0xd9, 0x59, 0xc7, 0x8e, + 0xea, 0xc4, 0x94, 0xad, 0x24, 0x86, 0xe1, 0x26, 0xad, 0x6d, 0x7d, 0x18, 0x72, 0x5c, 0x57, 0x5d, + 0xaa, 0x0a, 0xda, 0x02, 0xdd, 0x8e, 0x76, 0x47, 0xf4, 0x42, 0xcb, 0x5d, 0x66, 0x67, 0x48, 0x89, + 0xe9, 0xa1, 0x97, 0xf6, 0x10, 0xa0, 0x40, 0xaf, 0x05, 0x82, 0x02, 0x3d, 0x15, 0xfd, 0x05, 0x01, + 0x5a, 0x14, 0x3d, 0x16, 0x3d, 0xf4, 0xd0, 0x6b, 0x6f, 0x85, 0xfb, 0x33, 0x7a, 0x29, 0xe6, 0x6b, + 0xb9, 0x5c, 0x7e, 0x58, 0x56, 0x0c, 0x14, 0x3d, 0x71, 0xe7, 0xcd, 0x7b, 0xf3, 0xde, 0xbc, 0xef, + 0x37, 0x84, 0xb9, 0x2e, 0x73, 0x59, 0xe0, 0x61, 0x86, 0xeb, 0xed, 0x38, 0x62, 0x11, 0x2a, 0x25, + 0x80, 0xda, 0xfc, 0x91, 0x1f, 0x06, 0x51, 0xb3, 0xbf, 0x59, 0xab, 0x06, 0x51, 0xb3, 0xc3, 0xfc, + 0x40, 0x2d, 0x67, 0x5b, 0x3d, 0xfa, 0x59, 0xe0, 0x32, 0xbd, 0x5e, 0x65, 0xf8, 0x28, 0x20, 0xac, + 0x85, 0x43, 0xdc, 0x24, 0x71, 0x8a, 0x6e, 0x96, 0x45, 0xed, 0x28, 0x7d, 0x4e, 0x97, 0xba, 0xcf, + 0x49, 0x4b, 0x2f, 0x2b, 0x5d, 0xc6, 0xfc, 0x16, 0x91, 0x2b, 0xeb, 0x53, 0xa8, 0xed, 0x9c, 0x11, + 0xb7, 0xc3, 0xc8, 0x21, 0x17, 0x65, 0x2b, 0x6a, 0xb5, 0x70, 0xe8, 0xd9, 0xe4, 0xb3, 0x0e, 0xa1, + 0x0c, 0x21, 0x28, 0xe0, 0xb8, 0x49, 0x4d, 0xe3, 0x6a, 0x7e, 0xbd, 0x64, 0x8b, 0x6f, 0x74, 0x1d, + 0x66, 0xb1, 0xcb, 0xfc, 0x28, 0x74, 0xf8, 0x31, 0x51, 0x87, 0x99, 0xb9, 0xab, 0xc6, 0x7a, 0xde, + 0xae, 0x4a, 0xe8, 0x81, 0x04, 0x5a, 0x5b, 0xf0, 0xe6, 0xc8, 0x83, 0x69, 0x3b, 0x0a, 0x29, 0x41, + 0x6f, 0xc3, 0x14, 0xe9, 0x92, 0x90, 0x99, 0xc6, 0x55, 0x63, 0xbd, 0xbc, 0x39, 0x5b, 0xd7, 0x97, + 0xdd, 0xe1, 0x50, 0x5b, 0x6e, 0x5a, 0x5f, 0x18, 0x60, 0x1e, 0xf0, 0x6b, 0x7e, 0x17, 0x33, 0x12, + 0xfb, 0x38, 0xf0, 0x3f, 0x27, 0x0d, 0xc2, 0x98, 0x1f, 0x36, 0x29, 0x7a, 0x0b, 0x2a, 0x0c, 0xc7, + 0x4d, 0xc2, 0x1c, 0xa1, 0x09, 0x71, 0x52, 0xc9, 0x2e, 0x4b, 0x98, 0xa0, 0x42, 0xef, 0xc2, 0x02, + 0x8d, 0x3a, 0xb1, 0x4b, 0x1c, 0x72, 0xd6, 0x8e, 0x09, 0xa5, 0x7e, 0x14, 0x0a, 0x71, 0x4b, 0xf6, + 0xbc, 0xdc, 0xd8, 0x49, 0xe0, 0xe8, 0x32, 0x80, 0x1b, 0x13, 0xcc, 0x88, 0xe3, 0x79, 0x81, 0x99, + 0x17, 0x58, 0x25, 0x09, 0xd9, 0xf6, 0x02, 0xeb, 0x9f, 0x39, 0x58, 0x1c, 0x25, 0x46, 0x0d, 0x66, + 0x4e, 0xa3, 0xf8, 0xe4, 0x38, 0x88, 0x4e, 0x95, 0x08, 0xc9, 0x1a, 0xbd, 0x03, 0x73, 0x8a, 0xff, + 0x09, 0xe9, 0xd1, 0x36, 0x76, 0x89, 0xe2, 0x3e, 0x2b, 0xc1, 0x9f, 0x28, 0x28, 0x47, 0x54, 0x77, + 0x49, 0x10, 0xa5, 0x00, 0xb3, 0x12, 0x9c, 0x20, 0xde, 0x80, 0x39, 0xca, 0xa2, 0xb6, 0x83, 0x8f, + 0x19, 0x89, 0x1d, 0x37, 0x6a, 0xf7, 0xcc, 0xc2, 0x55, 0x63, 0x7d, 0xc6, 0xae, 0x72, 0xf0, 0x43, + 0x0e, 0xdd, 0x8a, 0xda, 0x3d, 0xf4, 0x04, 0x66, 0x85, 0x56, 0x1c, 0xaa, 0xe4, 0x34, 0xa7, 0xae, + 0xe6, 0xd7, 0xcb, 0x9b, 0xd7, 0xea, 0x7d, 0x1f, 0x1c, 0xa7, 0x59, 0xbb, 0x2a, 0x48, 0x93, 0x1b, + 0x22, 0x28, 0xb8, 0x24, 0x08, 0xcc, 0xa2, 0x90, 0x48, 0x7c, 0x4b, 0xe5, 0x73, 0xff, 0x73, 0x58, + 0xaf, 0x4d, 0xa8, 0x39, 0xad, 0x95, 0xcf, 0x61, 0x07, 0x1c, 0x84, 0xbe, 0x09, 0xf3, 0xe4, 0x8c, + 0x91, 0x38, 0xc4, 0x81, 0xe3, 0x06, 0x1d, 0xca, 0x48, 0x6c, 0xce, 0x08, 0xb4, 0x39, 0x0d, 0xdf, + 0x92, 0x60, 0xeb, 0x19, 0xcc, 0x24, 0x37, 0x44, 0x50, 0x08, 0x71, 0x4b, 0x9b, 0x53, 0x7c, 0xa3, + 0x3a, 0xcc, 0x0c, 0x28, 0xb0, 0xbc, 0x89, 0xea, 0x89, 0x97, 0x6b, 0x4a, 0x3b, 0xc1, 0xb1, 0x7e, + 0x02, 0x53, 0x8d, 0xe7, 0x38, 0xf6, 0xb8, 0x71, 0x12, 0x42, 0x65, 0x9c, 0x93, 0x2c, 0xa3, 0x5c, + 0x8a, 0xd1, 0x75, 0x98, 0xa2, 0x9c, 0x50, 0x68, 0xbf, 0xbc, 0x39, 0xd7, 0xe7, 0x22, 0xce, 0xb3, + 0xe5, 0xae, 0xf5, 0x87, 0x12, 0xcc, 0x7c, 0xaa, 0x8d, 0x3c, 0x4a, 0xe0, 0xef, 0x40, 0x51, 0x5a, + 0x58, 0x89, 0xfb, 0x4e, 0x4a, 0xed, 0x9a, 0xb0, 0x6e, 0x93, 0x76, 0xe0, 0xbb, 0x98, 0x47, 0xcd, + 0xd3, 0x48, 0xfe, 0xda, 0x8a, 0x8c, 0x1f, 0x20, 0x2d, 0xaf, 0x24, 0x39, 0xff, 0x01, 0x92, 0x0c, + 0xdd, 0x81, 0xe5, 0x16, 0x3e, 0x73, 0xba, 0x4e, 0xdc, 0x47, 0x72, 0x02, 0xdc, 0x14, 0xee, 0x92, + 0xb7, 0x51, 0x0b, 0x9f, 0x1d, 0xa6, 0xe9, 0x71, 0x13, 0x3d, 0x81, 0xaa, 0xb8, 0x9e, 0x43, 0x59, + 0x4c, 0x70, 0x4b, 0xbb, 0xcc, 0xf5, 0x51, 0xac, 0x85, 0x3a, 0x1a, 0x12, 0x6f, 0x27, 0x64, 0x71, + 0xcf, 0xae, 0xd0, 0x14, 0xa8, 0xf6, 0x53, 0x58, 0x18, 0x42, 0x41, 0xf3, 0x90, 0x3f, 0x21, 0x3d, + 0xa5, 0x28, 0xfe, 0x89, 0x3e, 0x84, 0xa9, 0x2e, 0x0e, 0x3a, 0x5a, 0x4d, 0x57, 0x5e, 0xc2, 0xca, + 0x96, 0xd8, 0xf7, 0x73, 0xf7, 0x8c, 0xda, 0x1e, 0x2c, 0x8e, 0xb8, 0xff, 0x44, 0x8b, 0xaf, 0x40, + 0x51, 0x08, 0x49, 0xcd, 0x9c, 0x48, 0x68, 0x6a, 0x55, 0xfb, 0xa3, 0x01, 0xe5, 0x14, 0x17, 0xf4, + 0x01, 0x4c, 0x6b, 0x15, 0x18, 0x42, 0x05, 0xb5, 0x91, 0x72, 0x49, 0x91, 0x34, 0x2a, 0xda, 0xe5, + 0x31, 0x2c, 0x42, 0xc2, 0x8d, 0x42, 0x16, 0x47, 0x81, 0x64, 0x53, 0xde, 0xbc, 0x9c, 0xf1, 0x22, + 0x19, 0x78, 0x6c, 0x4b, 0x62, 0xd9, 0x32, 0x50, 0xf5, 0x92, 0xa2, 0xf7, 0x00, 0xf9, 0xd4, 0x69, + 0xc7, 0x7e, 0x0b, 0xc7, 0x3d, 0x87, 0x92, 0xb8, 0xeb, 0x87, 0x4d, 0xe1, 0x06, 0x33, 0xf6, 0xbc, + 0x4f, 0xf7, 0xe5, 0x46, 0x43, 0xc2, 0x6b, 0xbf, 0x2d, 0x40, 0x51, 0x89, 0x3d, 0x0b, 0x39, 0xdf, + 0x13, 0x97, 0xce, 0xdb, 0x39, 0xdf, 0x43, 0x4b, 0xda, 0x99, 0xa5, 0x87, 0xcb, 0x05, 0xba, 0xc5, + 0x3d, 0x8b, 0x33, 0x54, 0x9e, 0xb5, 0xdc, 0x97, 0x4e, 0xca, 0xf5, 0x30, 0xf0, 0x31, 0xb5, 0x15, + 0x12, 0xfa, 0x18, 0xaa, 0xb2, 0x32, 0x39, 0xca, 0xa1, 0x0b, 0x82, 0xca, 0xac, 0xa7, 0xea, 0xd5, + 0x23, 0xf1, 0xd9, 0x10, 0xfb, 0x76, 0xe5, 0x28, 0xb5, 0xe2, 0xe6, 0x68, 0x47, 0xd4, 0xe7, 0xa6, + 0x31, 0xa7, 0xa4, 0x39, 0xf4, 0x1a, 0x5d, 0x03, 0x91, 0xb4, 0x9c, 0x04, 0x41, 0x26, 0x98, 0x0a, + 0x07, 0xee, 0x6b, 0x24, 0x7e, 0x09, 0x86, 0x19, 0x51, 0x19, 0x46, 0x2e, 0xd0, 0x2a, 0x4c, 0x7b, + 0x47, 0x8e, 0x08, 0x3b, 0x99, 0x52, 0x8a, 0xde, 0xd1, 0x33, 0x1e, 0x78, 0x0f, 0x61, 0x99, 0xc5, + 0x38, 0xa4, 0xa9, 0x12, 0x45, 0x19, 0x6e, 0xb5, 0xcd, 0x92, 0x10, 0xbb, 0x52, 0x57, 0xd5, 0x8f, + 0x97, 0x29, 0x7b, 0x29, 0x85, 0x7a, 0xa0, 0x31, 0xd1, 0x06, 0x54, 0x38, 0x8a, 0xd3, 0x69, 0x7b, + 0x98, 0x11, 0xcf, 0x84, 0x11, 0x94, 0x65, 0xfe, 0xf9, 0x03, 0x89, 0x80, 0x4c, 0x98, 0x6e, 0x11, + 0x4a, 0x71, 0x93, 0x98, 0x65, 0x21, 0x8c, 0x5e, 0xa2, 0x1d, 0x28, 0xf3, 0x14, 0xed, 0x08, 0xa1, + 0xa9, 0x59, 0x11, 0xee, 0xf0, 0xf6, 0x78, 0x67, 0xaa, 0xf3, 0xdc, 0xdd, 0xe0, 0xc8, 0x36, 0xb8, + 0xfa, 0x93, 0xd6, 0xee, 0x43, 0x29, 0xd9, 0xe0, 0x0a, 0x49, 0xd7, 0x3b, 0xb9, 0xe0, 0x0a, 0x09, + 0x30, 0x65, 0x4e, 0xfb, 0x44, 0x59, 0xbb, 0xc8, 0x97, 0xfb, 0x27, 0xd6, 0x97, 0x06, 0xac, 0x6e, + 0x3d, 0xc7, 0x61, 0x93, 0x1c, 0x24, 0xb9, 0x59, 0x97, 0xf7, 0x7b, 0x49, 0x12, 0xc7, 0xdc, 0xe6, + 0xaa, 0x16, 0x8f, 0x71, 0x08, 0x95, 0xdb, 0xc5, 0x02, 0xdd, 0x12, 0xfa, 0xe7, 0xa9, 0x5f, 0xb0, + 0x9b, 0xdd, 0x5c, 0xca, 0x12, 0x09, 0x3e, 0x45, 0xef, 0x88, 0xff, 0x0a, 0x73, 0xc5, 0x3d, 0x27, + 0xee, 0x84, 0xca, 0x8f, 0x8b, 0x5e, 0xdc, 0xb3, 0x3b, 0xa1, 0xf5, 0x7b, 0x03, 0xcc, 0x61, 0xe9, + 0x54, 0x8f, 0xf0, 0x21, 0x54, 0x8f, 0xc8, 0x71, 0x14, 0x13, 0x47, 0x39, 0xac, 0x94, 0x6f, 0x3e, + 0xcb, 0xca, 0xae, 0x48, 0x34, 0xb9, 0x42, 0xef, 0x43, 0x45, 0x56, 0x47, 0x45, 0x95, 0x1b, 0x43, + 0x55, 0x16, 0x58, 0x8a, 0x68, 0x0d, 0xca, 0xa7, 0x98, 0x3a, 0x83, 0x52, 0x96, 0x4e, 0x31, 0xdd, + 0x96, 0x82, 0x7e, 0x95, 0x87, 0xe5, 0x2d, 0xd1, 0x0b, 0x24, 0xe5, 0xa6, 0xdf, 0x23, 0x0d, 0xa5, + 0xff, 0x25, 0x98, 0x3a, 0x8e, 0x74, 0xf6, 0x9f, 0xb1, 0xe5, 0x02, 0x6d, 0xc0, 0x12, 0x0e, 0x82, + 0xe8, 0xd4, 0x21, 0xad, 0x36, 0xeb, 0x39, 0x5d, 0x47, 0xf6, 0x65, 0x8a, 0xd9, 0x82, 0xd8, 0xdb, + 0xe1, 0x5b, 0x87, 0x0d, 0xb1, 0x81, 0x6e, 0xc3, 0x92, 0x88, 0x59, 0x3f, 0x6c, 0x3a, 0x6e, 0x14, + 0x74, 0x5a, 0xa1, 0x74, 0xf9, 0x82, 0x60, 0x85, 0xf4, 0xde, 0x96, 0xd8, 0x12, 0xee, 0xff, 0x64, + 0x98, 0x42, 0x18, 0x69, 0x4a, 0x18, 0xc9, 0x1c, 0x2e, 0x9a, 0x7b, 0x9e, 0x50, 0x79, 0xe6, 0x2c, + 0x61, 0xb4, 0x07, 0x50, 0xe1, 0xc9, 0x87, 0x78, 0xce, 0x71, 0x1c, 0xb5, 0xa8, 0x59, 0xcc, 0x26, + 0x33, 0x7d, 0x46, 0xbd, 0x21, 0xd0, 0x76, 0xe3, 0xa8, 0x65, 0x97, 0x69, 0xf2, 0x4d, 0xd1, 0x4d, + 0x28, 0x08, 0xee, 0xd3, 0x82, 0xfb, 0xca, 0x30, 0xa5, 0xe0, 0x2d, 0x70, 0x78, 0x32, 0x38, 0xc2, + 0x34, 0xd5, 0x28, 0xc9, 0xb8, 0xae, 0x70, 0x60, 0xd2, 0x1b, 0xdc, 0x81, 0x2a, 0x0d, 0x71, 0x9b, + 0x3e, 0x8f, 0x98, 0x08, 0xed, 0x91, 0x51, 0x5d, 0xd1, 0x28, 0x7c, 0x65, 0xed, 0xc1, 0x4a, 0xd6, + 0x6e, 0xca, 0xbd, 0x36, 0x32, 0x95, 0xa2, 0xbc, 0xb9, 0x98, 0x8a, 0xcc, 0x11, 0x5d, 0xc5, 0xaf, + 0x0c, 0x40, 0xf2, 0x2c, 0xd9, 0x0c, 0x28, 0x07, 0x98, 0x54, 0x71, 0x2e, 0x03, 0xc8, 0x92, 0x9a, + 0xea, 0x34, 0x4a, 0x02, 0xf2, 0x6c, 0xc0, 0x4f, 0xf2, 0x69, 0x3f, 0xb9, 0x0e, 0xb3, 0x7e, 0xe8, + 0x06, 0x1d, 0x8f, 0x38, 0x6d, 0x1c, 0xf3, 0x26, 0x59, 0xb5, 0x78, 0x0a, 0xba, 0x2f, 0x80, 0xd6, + 0xef, 0x0c, 0x58, 0x1c, 0x10, 0xe7, 0x82, 0xf7, 0x42, 0x37, 0xd2, 0x75, 0x82, 0x47, 0x4a, 0x1f, + 0x3b, 0xdd, 0xf5, 0x24, 0xee, 0xe8, 0xe0, 0x20, 0x26, 0xd8, 0xeb, 0x39, 0xe4, 0xcc, 0xa7, 0x8c, + 0x2a, 0xe1, 0xa5, 0x0b, 0x3d, 0x94, 0x5b, 0x3b, 0x62, 0xc7, 0xfa, 0x3e, 0x2c, 0x6f, 0x93, 0x80, + 0x0c, 0x07, 0xcd, 0x24, 0x9d, 0x5d, 0x82, 0x52, 0x4c, 0xdc, 0x4e, 0x4c, 0xfd, 0xae, 0x0e, 0xa0, + 0x3e, 0xc0, 0x32, 0x61, 0x25, 0x7b, 0xa4, 0xbc, 0xb7, 0xf5, 0x4b, 0x03, 0x16, 0xe5, 0x96, 0x90, + 0x9a, 0x6a, 0x5e, 0xeb, 0x49, 0xd5, 0x97, 0xc5, 0x7c, 0xf8, 0x7e, 0x6a, 0x7f, 0x32, 0x67, 0xde, + 0x7a, 0xf3, 0xa9, 0xc4, 0xf1, 0x8f, 0x93, 0xa2, 0xac, 0xec, 0xc2, 0xc1, 0x7b, 0xc7, 0xaa, 0x22, + 0x5b, 0x2b, 0xb0, 0x34, 0x28, 0x86, 0x92, 0xaf, 0xa7, 0xe1, 0x32, 0xe5, 0x24, 0xf2, 0x7d, 0xa4, + 0x5a, 0x75, 0x95, 0x85, 0x89, 0x96, 0x73, 0x4c, 0x1e, 0xae, 0xa6, 0xf2, 0x30, 0xa1, 0x3c, 0x6e, + 0x64, 0x52, 0x51, 0x0d, 0x83, 0x92, 0xbb, 0x22, 0x80, 0xaa, 0x57, 0xb0, 0x56, 0xb5, 0x1d, 0x12, + 0xd6, 0x4a, 0xa6, 0x5f, 0xe7, 0xe0, 0xf2, 0x4e, 0x8b, 0xc4, 0x4d, 0x12, 0xba, 0x3d, 0x9b, 0x48, + 0x77, 0x3b, 0xb7, 0x77, 0x8f, 0x6e, 0x30, 0xee, 0x42, 0x39, 0x24, 0x7d, 0x79, 0x26, 0x76, 0x19, + 0x10, 0x12, 0x2d, 0x24, 0xfa, 0x36, 0xcc, 0xf9, 0xcd, 0x90, 0xa7, 0x7b, 0xd5, 0xb2, 0x52, 0xb3, + 0x30, 0x49, 0x11, 0xb3, 0x12, 0x5b, 0x35, 0x81, 0x14, 0x6d, 0xc3, 0xf2, 0x29, 0xf6, 0x59, 0x42, + 0x9d, 0xcc, 0xa7, 0x53, 0x89, 0x5b, 0x8b, 0x24, 0xb1, 0xdd, 0x89, 0x65, 0xab, 0xbc, 0xc8, 0xd1, + 0x35, 0xb9, 0x9e, 0x5b, 0xff, 0x6c, 0xc0, 0xda, 0x38, 0x8d, 0xa8, 0x00, 0x7b, 0x75, 0x95, 0x3c, + 0x80, 0xf9, 0x76, 0x1c, 0xb5, 0x22, 0x46, 0xbc, 0xf3, 0xe9, 0x65, 0x4e, 0xa3, 0x6b, 0xe5, 0xdc, + 0x80, 0xa2, 0x18, 0x89, 0xb5, 0x4e, 0xb2, 0x03, 0xb3, 0xda, 0xb5, 0x3e, 0x82, 0xb5, 0x5d, 0x3f, + 0xf4, 0x1e, 0x06, 0x81, 0xf4, 0xbe, 0xbd, 0xf0, 0x15, 0x42, 0xcf, 0xfa, 0x8b, 0x01, 0x57, 0xc6, + 0x92, 0xab, 0xdb, 0x3f, 0xcb, 0x84, 0xd3, 0xdd, 0x54, 0x38, 0xbd, 0x84, 0x56, 0x86, 0x9b, 0x9a, + 0x17, 0x74, 0xf3, 0xfd, 0x89, 0xea, 0xbd, 0xc7, 0xce, 0x08, 0x37, 0x06, 0x67, 0x84, 0x11, 0xe9, + 0x29, 0x19, 0x0a, 0xac, 0x1d, 0x58, 0x78, 0x4c, 0xd8, 0x23, 0xec, 0x9e, 0x74, 0xda, 0xf4, 0xc2, + 0x2e, 0x6c, 0x6d, 0x03, 0x4a, 0x1f, 0xa3, 0x6e, 0x5e, 0x87, 0xe9, 0x23, 0x09, 0x52, 0x57, 0x5f, + 0xaa, 0x27, 0x6f, 0x32, 0x12, 0x77, 0x2f, 0x3c, 0x8e, 0x6c, 0x8d, 0x64, 0xbd, 0x01, 0xab, 0x8f, + 0x09, 0xdb, 0x22, 0x41, 0xc0, 0xe1, 0x3c, 0xe1, 0x6b, 0x91, 0xac, 0xdb, 0x60, 0x0e, 0x6f, 0x29, + 0x36, 0x4b, 0x30, 0xc5, 0xab, 0x85, 0x7e, 0x75, 0x91, 0x0b, 0x6b, 0x5d, 0x88, 0xa4, 0x29, 0x52, + 0xcd, 0x87, 0x18, 0xcd, 0x8d, 0xfe, 0x68, 0x6e, 0xed, 0xc2, 0xe2, 0x00, 0x66, 0x52, 0x16, 0x4a, + 0x7c, 0xdb, 0xf1, 0xc3, 0xe3, 0x48, 0xd5, 0x85, 0xd4, 0x10, 0x9d, 0xa0, 0xcf, 0xb8, 0xea, 0x8b, + 0x67, 0x5a, 0x75, 0x0e, 0x55, 0xc9, 0x46, 0x4b, 0xff, 0x95, 0x91, 0xdc, 0xac, 0xbf, 0xa5, 0xd8, + 0xec, 0xc1, 0xf4, 0x60, 0x1a, 0xdb, 0x48, 0xd9, 0x6b, 0x0c, 0x51, 0x5d, 0xad, 0xa5, 0x63, 0x68, + 0xfa, 0xda, 0x3e, 0x54, 0xd2, 0x1b, 0x23, 0x5c, 0xe3, 0xe6, 0xa0, 0x6b, 0x2c, 0x0d, 0xde, 0x47, + 0xb2, 0x49, 0xbb, 0xc7, 0xb2, 0x50, 0x8d, 0x76, 0xcb, 0xe4, 0x3e, 0x7b, 0xb0, 0x34, 0x08, 0x56, + 0x77, 0xb9, 0x03, 0x25, 0xed, 0x28, 0xfa, 0x36, 0x23, 0x4b, 0x69, 0x1f, 0xcb, 0xba, 0x2d, 0xcc, + 0xf4, 0x2a, 0x31, 0xb7, 0x3b, 0x20, 0xd3, 0xc5, 0xbb, 0x93, 0x5f, 0xe4, 0x60, 0xfe, 0x31, 0x61, + 0xb2, 0x75, 0xfc, 0xfa, 0x1d, 0xfe, 0x8a, 0x1a, 0x13, 0x93, 0x59, 0x59, 0xae, 0x78, 0x73, 0x42, + 0xce, 0x64, 0x73, 0xa2, 0xf6, 0xf3, 0x62, 0xbf, 0xaa, 0xa0, 0x07, 0x12, 0xed, 0x1a, 0xe8, 0x6e, + 0xc5, 0xe9, 0xfa, 0xe4, 0x94, 0xaa, 0x52, 0x59, 0x51, 0xc0, 0x43, 0x0e, 0x43, 0xeb, 0x30, 0x2f, + 0x1f, 0xa9, 0x84, 0x8b, 0x3b, 0x51, 0x18, 0xf4, 0x44, 0xb2, 0x9e, 0x51, 0x33, 0xb1, 0x88, 0x8b, + 0xef, 0x85, 0x41, 0xaf, 0x8f, 0x49, 0xfd, 0xcf, 0x35, 0x66, 0x31, 0x85, 0xd9, 0xe0, 0x60, 0x8e, + 0x69, 0xed, 0x8b, 0x0c, 0xa0, 0xb5, 0xa0, 0x94, 0xf9, 0x2d, 0x28, 0xaa, 0x5e, 0x5b, 0x2a, 0xe0, + 0x5a, 0x7d, 0xf8, 0xf1, 0x54, 0x92, 0x6c, 0x93, 0x63, 0x3f, 0xf4, 0xd5, 0x53, 0x8c, 0x80, 0x58, + 0x4f, 0x61, 0x8e, 0x9f, 0xf8, 0x7a, 0x5a, 0x3e, 0xeb, 0xbe, 0xb4, 0xd2, 0x40, 0x41, 0x49, 0x1a, + 0x30, 0x63, 0x62, 0x03, 0x66, 0x3d, 0x11, 0x11, 0xd9, 0x88, 0xbb, 0x59, 0x0f, 0x7e, 0x59, 0x8a, + 0xe3, 0x31, 0xad, 0x0d, 0x29, 0x17, 0xd6, 0xdf, 0x65, 0x0c, 0x0f, 0x1e, 0xa6, 0xe4, 0xf9, 0x21, + 0x54, 0x69, 0xdc, 0x75, 0xb2, 0xbe, 0xff, 0xc1, 0x60, 0x24, 0x8f, 0x22, 0xad, 0xa7, 0x81, 0xfa, + 0x5d, 0x28, 0x05, 0xaa, 0x1d, 0xc2, 0xc2, 0x10, 0xca, 0x88, 0xc0, 0x7e, 0x77, 0x30, 0xb0, 0x53, + 0x0e, 0x9b, 0xa2, 0x4e, 0x47, 0xf6, 0x4d, 0x11, 0xc2, 0x8d, 0xb8, 0x7b, 0x38, 0x18, 0x00, 0xa3, + 0x12, 0xe4, 0x33, 0x58, 0xce, 0xe0, 0x26, 0x03, 0x27, 0x17, 0xb6, 0x3f, 0x98, 0x25, 0x71, 0xa7, + 0x1e, 0xd0, 0x53, 0x24, 0x40, 0x93, 0x6f, 0xeb, 0xa9, 0x30, 0xa9, 0x9a, 0x2a, 0xbf, 0x6e, 0xe0, + 0x59, 0x1f, 0x0b, 0x07, 0xd6, 0xa7, 0x29, 0xc9, 0xd6, 0x93, 0x47, 0x9b, 0x71, 0x33, 0xb0, 0xda, + 0xb7, 0x7e, 0x9c, 0x22, 0xbf, 0x78, 0x05, 0xec, 0x3b, 0x4d, 0x3e, 0xed, 0x34, 0x0f, 0x44, 0x76, + 0xcb, 0x34, 0x91, 0xe8, 0x26, 0x4c, 0x4b, 0xe6, 0xfd, 0x0e, 0x3b, 0x2b, 0x9d, 0x46, 0xb0, 0x36, + 0x84, 0x78, 0x19, 0x23, 0x4d, 0x4a, 0x8f, 0x8f, 0x04, 0xcb, 0xac, 0xa5, 0xde, 0x83, 0x99, 0x8c, + 0x95, 0x16, 0x12, 0x2b, 0x25, 0xee, 0x31, 0xdd, 0x55, 0x06, 0xb2, 0x45, 0x8a, 0xd5, 0x6f, 0x2d, + 0xe7, 0xd2, 0xca, 0x15, 0x28, 0x63, 0x97, 0xf9, 0x5d, 0x22, 0x73, 0x8d, 0x6c, 0xaa, 0x41, 0x82, + 0x44, 0x9e, 0x91, 0x35, 0x23, 0x75, 0x66, 0xbf, 0x66, 0xe8, 0xe7, 0xff, 0x51, 0x35, 0x43, 0x13, + 0xd8, 0x7d, 0x2c, 0xeb, 0x3f, 0x06, 0xac, 0xee, 0x85, 0xbe, 0x4c, 0x0a, 0xaa, 0xe1, 0xbb, 0xb8, + 0xe5, 0x6c, 0xa8, 0xe9, 0xb7, 0x43, 0x12, 0x10, 0x57, 0xfd, 0x3b, 0xa2, 0xfd, 0x70, 0x62, 0xd7, + 0xb9, 0xaa, 0x08, 0x77, 0x38, 0x5d, 0x6a, 0xa3, 0x3f, 0xa7, 0x16, 0xd2, 0x73, 0xea, 0xeb, 0x69, + 0xb8, 0x1f, 0x81, 0x39, 0x7c, 0xf9, 0x24, 0x31, 0xea, 0xae, 0xd7, 0x98, 0xd8, 0xf5, 0x7e, 0x91, + 0x83, 0x37, 0xf7, 0x03, 0x1c, 0x86, 0xc4, 0xfb, 0x1f, 0x0f, 0x31, 0xf7, 0xa1, 0x8a, 0xbb, 0x91, + 0xdf, 0x6f, 0xf3, 0x0b, 0x93, 0x28, 0x2b, 0x02, 0x57, 0xd3, 0xbe, 0x1e, 0x7d, 0xfe, 0xc9, 0x80, + 0x4b, 0xa3, 0x75, 0xf1, 0x7f, 0x30, 0xbe, 0xfc, 0x1c, 0xde, 0xb0, 0x49, 0x2b, 0xea, 0x26, 0xd3, + 0x3d, 0xef, 0xe3, 0xce, 0x63, 0x45, 0x9d, 0xe7, 0x73, 0xa9, 0xff, 0xa8, 0x46, 0xbf, 0xae, 0x0c, + 0x0c, 0xf9, 0x85, 0xec, 0xf3, 0xc2, 0x25, 0xa8, 0x8d, 0x12, 0x40, 0x8d, 0xcb, 0x5f, 0x1a, 0xb0, + 0x22, 0xb7, 0x85, 0x4a, 0xcf, 0x2b, 0xdc, 0x4b, 0x5e, 0x81, 0xb4, 0xec, 0xf9, 0x51, 0xb2, 0x17, + 0xc6, 0xca, 0x3e, 0x95, 0x95, 0xfd, 0x0d, 0x58, 0x1d, 0x12, 0x4e, 0x09, 0xbe, 0x0b, 0xcb, 0xda, + 0x19, 0x06, 0xeb, 0xd4, 0xad, 0x4c, 0x61, 0x99, 0xfc, 0x6f, 0x80, 0xf5, 0x33, 0x7e, 0xff, 0xc1, + 0x73, 0x2e, 0xec, 0x55, 0x1b, 0x30, 0x7d, 0x2e, 0x67, 0xd2, 0x58, 0x96, 0x0d, 0x6f, 0x49, 0xf8, + 0x8e, 0xfa, 0xfb, 0x30, 0x48, 0x06, 0x74, 0xe2, 0x5d, 0xf0, 0x42, 0x7f, 0x35, 0xc0, 0x9a, 0x74, + 0xe8, 0x85, 0x6f, 0x77, 0xd1, 0x04, 0x72, 0x17, 0xca, 0x51, 0x70, 0xce, 0xf4, 0x01, 0x51, 0xa0, + 0x23, 0xec, 0xd1, 0xbd, 0xbf, 0xbd, 0x58, 0x33, 0xfe, 0xf1, 0x62, 0xcd, 0xf8, 0xd7, 0x8b, 0x35, + 0xe3, 0x37, 0xff, 0x5e, 0xfb, 0xc6, 0x8f, 0x6e, 0x74, 0x7d, 0x46, 0x28, 0xad, 0xfb, 0xd1, 0x86, + 0xfc, 0xda, 0x68, 0x46, 0x1b, 0x5d, 0xb6, 0x21, 0xfe, 0xf8, 0xdf, 0x48, 0x4a, 0xd2, 0x51, 0x51, + 0x00, 0xde, 0xff, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xbb, 0x2d, 0x31, 0x9e, 0x20, 0x00, + 0x00, } func (m *ExecuteVtctlCommandRequest) Marshal() (dAtA []byte, err error) { @@ -6314,6 +6427,102 @@ func (m *GetShardResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *GetSrvKeyspacesRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetSrvKeyspacesRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *GetSrvKeyspacesRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.Cells) > 0 { + for iNdEx := len(m.Cells) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Cells[iNdEx]) + copy(dAtA[i:], m.Cells[iNdEx]) + i = encodeVarintVtctldata(dAtA, i, uint64(len(m.Cells[iNdEx]))) + i-- + dAtA[i] = 0x12 + } + } + if len(m.Keyspace) > 0 { + i -= len(m.Keyspace) + copy(dAtA[i:], m.Keyspace) + i = encodeVarintVtctldata(dAtA, i, uint64(len(m.Keyspace))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetSrvKeyspacesResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetSrvKeyspacesResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *GetSrvKeyspacesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.SrvKeyspaces) > 0 { + for k := range m.SrvKeyspaces { + v := m.SrvKeyspaces[k] + baseI := i + if v != nil { + { + size, err := v.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintVtctldata(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + i -= len(k) + copy(dAtA[i:], k) + i = encodeVarintVtctldata(dAtA, i, uint64(len(k))) + i-- + dAtA[i] = 0xa + i = encodeVarintVtctldata(dAtA, i, uint64(baseI-i)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + func (m *GetSrvVSchemaRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -8333,6 +8542,53 @@ func (m *GetShardResponse) Size() (n int) { return n } +func (m *GetSrvKeyspacesRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Keyspace) + if l > 0 { + n += 1 + l + sovVtctldata(uint64(l)) + } + if len(m.Cells) > 0 { + for _, s := range m.Cells { + l = len(s) + n += 1 + l + sovVtctldata(uint64(l)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *GetSrvKeyspacesResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.SrvKeyspaces) > 0 { + for k, v := range m.SrvKeyspaces { + _ = k + _ = v + l = 0 + if v != nil { + l = v.Size() + l += 1 + sovVtctldata(uint64(l)) + } + mapEntrySize := 1 + len(k) + sovVtctldata(uint64(len(k))) + l + n += mapEntrySize + 1 + sovVtctldata(uint64(mapEntrySize)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + func (m *GetSrvVSchemaRequest) Size() (n int) { if m == nil { return 0 @@ -14580,6 +14836,307 @@ func (m *GetShardResponse) Unmarshal(dAtA []byte) error { } return nil } +func (m *GetSrvKeyspacesRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowVtctldata + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetSrvKeyspacesRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetSrvKeyspacesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Keyspace", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowVtctldata + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthVtctldata + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthVtctldata + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Keyspace = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Cells", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowVtctldata + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthVtctldata + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthVtctldata + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Cells = append(m.Cells, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipVtctldata(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthVtctldata + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthVtctldata + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetSrvKeyspacesResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowVtctldata + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetSrvKeyspacesResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetSrvKeyspacesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SrvKeyspaces", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowVtctldata + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthVtctldata + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthVtctldata + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.SrvKeyspaces == nil { + m.SrvKeyspaces = make(map[string]*topodata.SrvKeyspace) + } + var mapkey string + var mapvalue *topodata.SrvKeyspace + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowVtctldata + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowVtctldata + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthVtctldata + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey < 0 { + return ErrInvalidLengthVtctldata + } + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowVtctldata + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthVtctldata + } + postmsgIndex := iNdEx + mapmsglen + if postmsgIndex < 0 { + return ErrInvalidLengthVtctldata + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue = &topodata.SrvKeyspace{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipVtctldata(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthVtctldata + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.SrvKeyspaces[mapkey] = mapvalue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipVtctldata(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthVtctldata + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthVtctldata + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *GetSrvVSchemaRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/go/vt/proto/vtctlservice/vtctlservice.pb.go b/go/vt/proto/vtctlservice/vtctlservice.pb.go index 0da134abc4..389c0f7b62 100644 --- a/go/vt/proto/vtctlservice/vtctlservice.pb.go +++ b/go/vt/proto/vtctlservice/vtctlservice.pb.go @@ -29,52 +29,53 @@ const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package func init() { proto.RegisterFile("vtctlservice.proto", fileDescriptor_27055cdbb1148d2b) } var fileDescriptor_27055cdbb1148d2b = []byte{ - // 710 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x96, 0xd1, 0x4e, 0x14, 0x3d, - 0x14, 0xc7, 0xd9, 0x8b, 0x8f, 0x7c, 0x56, 0x14, 0x52, 0x8d, 0x26, 0x0b, 0x3b, 0x02, 0x8a, 0x8a, - 0x51, 0xd6, 0xe0, 0xa5, 0x57, 0xb0, 0xae, 0x48, 0x48, 0x08, 0x02, 0x81, 0x84, 0x84, 0x8b, 0x32, - 0x73, 0x60, 0x27, 0x74, 0x3a, 0x4b, 0x5b, 0x46, 0x36, 0xbe, 0x88, 0x8f, 0xe4, 0xa5, 0x8f, 0x60, - 0xf0, 0x09, 0x7c, 0x03, 0xb3, 0xd3, 0x6d, 0xe9, 0x74, 0x5a, 0xd8, 0xbb, 0xdd, 0xf3, 0xfb, 0x9f, - 0xff, 0xe9, 0x99, 0xe9, 0x69, 0x07, 0xe1, 0x42, 0xc6, 0x92, 0x0a, 0xe0, 0x45, 0x1a, 0xc3, 0x4a, - 0x9f, 0xe7, 0x32, 0xc7, 0x53, 0x76, 0xac, 0x39, 0x5d, 0xfe, 0x4b, 0x88, 0x24, 0x0a, 0xaf, 0x5e, - 0xa0, 0xff, 0x0e, 0x86, 0x21, 0xdc, 0x43, 0x8f, 0xba, 0x57, 0x10, 0x5f, 0x4a, 0x28, 0xff, 0x77, - 0xf2, 0x2c, 0x23, 0x2c, 0xc1, 0x4b, 0x2b, 0x37, 0x19, 0x1e, 0xbe, 0x0b, 0x17, 0x97, 0x20, 0x64, - 0xf3, 0xe5, 0x5d, 0x32, 0xd1, 0xcf, 0x99, 0x80, 0xc5, 0x89, 0xf7, 0x8d, 0xd5, 0xbf, 0x18, 0x4d, - 0x96, 0x30, 0xc1, 0xc7, 0x68, 0xa6, 0xd3, 0x23, 0xec, 0x0c, 0xf6, 0xc9, 0x09, 0x05, 0xb9, 0x3f, - 0xe8, 0x03, 0x5e, 0xb4, 0xac, 0x5c, 0xa8, 0xcb, 0x3d, 0xbf, 0x55, 0xa3, 0x6b, 0xe1, 0x43, 0xf4, - 0xb0, 0xc3, 0x81, 0x48, 0xd8, 0x82, 0x81, 0xe8, 0x93, 0x18, 0xf0, 0xbc, 0x9d, 0x58, 0x41, 0xda, - 0x7a, 0xe1, 0x16, 0x85, 0x31, 0xde, 0x46, 0xf7, 0x15, 0xdb, 0xeb, 0x11, 0x9e, 0xe0, 0x56, 0x2d, - 0xa7, 0x8c, 0x6b, 0xcb, 0x28, 0x84, 0xed, 0x85, 0x7e, 0x02, 0x0a, 0x81, 0x85, 0x56, 0x91, 0x6f, - 0xa1, 0xae, 0xc2, 0x18, 0x7f, 0x45, 0x53, 0x8a, 0x95, 0x15, 0x05, 0x8e, 0x6a, 0x49, 0x0a, 0x68, - 0xd3, 0x67, 0x41, 0x6e, 0x2c, 0xf7, 0xd1, 0x03, 0x45, 0xd4, 0x23, 0x17, 0xb8, 0x9e, 0x33, 0x22, - 0xda, 0x74, 0x3e, 0x2c, 0x30, 0xae, 0x39, 0x7a, 0xd2, 0xcd, 0x80, 0x9f, 0x01, 0x8b, 0x07, 0xbb, - 0xd0, 0x27, 0x1c, 0x98, 0x54, 0x0f, 0xf7, 0xb5, 0xbd, 0xb5, 0xbc, 0x12, 0x5d, 0x67, 0x79, 0x0c, - 0xa5, 0x29, 0xc8, 0xd1, 0xd3, 0xcf, 0x29, 0x4b, 0xd6, 0x28, 0x55, 0x1d, 0x6e, 0x32, 0xf3, 0xec, - 0x6d, 0x9f, 0x80, 0x46, 0x97, 0x7c, 0x33, 0x8e, 0xd4, 0xd4, 0xdc, 0x42, 0x68, 0x03, 0xe4, 0x3a, - 0x89, 0xcf, 0x2f, 0xfb, 0x02, 0xcf, 0x59, 0xb9, 0x37, 0x61, 0xed, 0xdc, 0x0a, 0x50, 0x63, 0x76, - 0x8c, 0x66, 0x36, 0x40, 0x76, 0x80, 0xd2, 0x4d, 0x76, 0x9a, 0x6f, 0x93, 0x0c, 0x44, 0x65, 0x76, - 0x5c, 0xe8, 0x9b, 0x9d, 0xba, 0xc6, 0xde, 0xe2, 0x16, 0xc5, 0x2d, 0x7f, 0x96, 0x6f, 0x8b, 0x57, - 0xb0, 0xf1, 0x3b, 0x42, 0xd3, 0x23, 0x20, 0xd6, 0x68, 0x4a, 0x04, 0x08, 0xbc, 0x50, 0x4f, 0xd2, - 0x4c, 0xfb, 0x2e, 0xde, 0x26, 0x71, 0xd6, 0x6a, 0xde, 0x9f, 0xb3, 0x56, 0xf7, 0x9d, 0x45, 0x21, - 0x6c, 0x4f, 0x8d, 0x05, 0xaa, 0x53, 0x63, 0x03, 0xdf, 0xd4, 0x54, 0xb9, 0xb1, 0xfc, 0x82, 0xee, - 0x6d, 0x80, 0xdc, 0x8b, 0x7b, 0x90, 0x11, 0x3c, 0x5b, 0xd5, 0xab, 0xa8, 0x36, 0x9b, 0xf3, 0x43, - 0xe3, 0xd4, 0x45, 0xff, 0x0f, 0xc3, 0xe5, 0x6c, 0x34, 0x1d, 0xad, 0x3d, 0x0d, 0xb3, 0x5e, 0x66, - 0x8f, 0xf1, 0x30, 0xca, 0x8b, 0x83, 0xd1, 0xa2, 0x9c, 0x26, 0x6e, 0x88, 0x6f, 0x8c, 0x1d, 0x81, - 0xd3, 0xa6, 0x1a, 0x6f, 0xb7, 0x4d, 0x15, 0x0d, 0xb4, 0xa9, 0xa1, 0x33, 0x2b, 0xfa, 0x8c, 0xf1, - 0xaa, 0x43, 0xb3, 0x52, 0x3f, 0x5d, 0x94, 0x99, 0xee, 0xd4, 0x31, 0x73, 0xda, 0x6c, 0x05, 0xa8, - 0xb3, 0x3b, 0x0e, 0x73, 0x7e, 0x7e, 0x4a, 0xf3, 0x6f, 0xb5, 0xdd, 0x61, 0x40, 0x60, 0x77, 0x58, - 0xdc, 0x9e, 0xe5, 0x4d, 0x96, 0xaa, 0x77, 0xb4, 0xc3, 0xd3, 0x8c, 0xf0, 0x41, 0x65, 0x96, 0x5d, - 0xe8, 0x9b, 0xe5, 0xba, 0xc6, 0xd8, 0xa7, 0xe8, 0xf1, 0x0e, 0x25, 0x8c, 0x41, 0x52, 0x3d, 0x5a, - 0xed, 0x5b, 0xdb, 0x27, 0xd0, 0x65, 0x5e, 0xdd, 0xa9, 0x33, 0xa5, 0x62, 0x84, 0x77, 0x21, 0xcb, - 0x0b, 0x73, 0x19, 0x0d, 0x47, 0x16, 0xbf, 0xb0, 0x0c, 0xea, 0x58, 0x97, 0x59, 0xba, 0x43, 0x65, - 0x9f, 0x25, 0x8a, 0x97, 0xd5, 0xcb, 0x0a, 0x0b, 0xb5, 0x5c, 0xc3, 0x7c, 0x67, 0x49, 0x4d, 0x62, - 0x5f, 0xc5, 0xba, 0xb7, 0xd1, 0x36, 0x9e, 0xaf, 0xe4, 0xd9, 0xc8, 0x77, 0x15, 0xbb, 0x0a, 0x63, - 0xfc, 0x1d, 0x35, 0x55, 0xac, 0x7b, 0x25, 0x81, 0x33, 0x42, 0xa9, 0xb9, 0x9b, 0x20, 0xc1, 0x6f, - 0x2d, 0x8b, 0xb0, 0x4c, 0x17, 0x7c, 0x37, 0xa6, 0x5a, 0x17, 0x5f, 0xff, 0xf8, 0xf3, 0x3a, 0x6a, - 0xfc, 0xba, 0x8e, 0x1a, 0xbf, 0xaf, 0xa3, 0xc6, 0x8f, 0x3f, 0xd1, 0xc4, 0xd1, 0x72, 0x91, 0x4a, - 0x10, 0x62, 0x25, 0xcd, 0xdb, 0xea, 0x57, 0xfb, 0x2c, 0x6f, 0x17, 0xb2, 0x5d, 0x7e, 0x16, 0xb6, - 0xed, 0x8f, 0xc6, 0x93, 0xc9, 0x32, 0xf6, 0xe1, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x3b, 0xa1, - 0xee, 0xe7, 0x5f, 0x0a, 0x00, 0x00, + // 725 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x96, 0xdb, 0x4e, 0x14, 0x4d, + 0x10, 0xc7, 0xd9, 0x8b, 0x8f, 0x7c, 0xb6, 0x28, 0xa4, 0x31, 0x9a, 0x2c, 0xec, 0xb0, 0xa0, 0xa8, + 0x18, 0x65, 0x0d, 0x5e, 0x7a, 0x05, 0xeb, 0x8a, 0x84, 0x84, 0x20, 0x10, 0x48, 0x48, 0xb8, 0x68, + 0x66, 0x0a, 0x76, 0xc2, 0x1c, 0x96, 0xe9, 0x66, 0x64, 0xe3, 0x8b, 0xf8, 0x48, 0xde, 0x98, 0xf8, + 0x08, 0x06, 0x5f, 0xc4, 0x30, 0xbd, 0xdd, 0xd4, 0xf4, 0x01, 0xb8, 0xdb, 0xad, 0xdf, 0xbf, 0xfe, + 0x35, 0x7d, 0xa8, 0x9a, 0x21, 0xb4, 0x14, 0xa1, 0x48, 0x38, 0x14, 0x65, 0x1c, 0xc2, 0xf2, 0xa0, + 0xc8, 0x45, 0x4e, 0x27, 0x70, 0xac, 0x39, 0x59, 0xfd, 0x8b, 0x98, 0x60, 0x12, 0xaf, 0x9c, 0x93, + 0xff, 0xf6, 0xaf, 0x43, 0xb4, 0x4f, 0xa6, 0x7b, 0x97, 0x10, 0x5e, 0x08, 0xa8, 0xfe, 0x77, 0xf3, + 0x34, 0x65, 0x59, 0x44, 0x17, 0x97, 0x6f, 0x32, 0x1c, 0x7c, 0x07, 0xce, 0x2f, 0x80, 0x8b, 0xe6, + 0xcb, 0xbb, 0x64, 0x7c, 0x90, 0x67, 0x1c, 0x16, 0xc6, 0xde, 0x37, 0x56, 0x7e, 0x4d, 0x93, 0xf1, + 0x0a, 0x46, 0xf4, 0x88, 0x4c, 0x75, 0xfb, 0x2c, 0x3b, 0x85, 0x3d, 0x76, 0x9c, 0x80, 0xd8, 0x1b, + 0x0e, 0x80, 0x2e, 0x20, 0x2b, 0x13, 0xaa, 0x72, 0xcf, 0x6f, 0xd5, 0xa8, 0x5a, 0xf4, 0x80, 0x3c, + 0xee, 0x16, 0xc0, 0x04, 0x6c, 0xc2, 0x90, 0x0f, 0x58, 0x08, 0xb4, 0x8d, 0x13, 0x6b, 0x48, 0x59, + 0xcf, 0xdf, 0xa2, 0xd0, 0xc6, 0x5b, 0xe4, 0xa1, 0x64, 0xbb, 0x7d, 0x56, 0x44, 0xb4, 0x65, 0xe5, + 0x54, 0x71, 0x65, 0x19, 0xf8, 0x30, 0x7e, 0xd0, 0x4f, 0x90, 0x80, 0xe7, 0x41, 0xeb, 0xc8, 0xf5, + 0xa0, 0xa6, 0x42, 0x1b, 0x7f, 0x25, 0x13, 0x92, 0x55, 0x15, 0x39, 0x0d, 0xac, 0x24, 0x09, 0x94, + 0xe9, 0x9c, 0x97, 0x6b, 0xcb, 0x3d, 0xf2, 0x48, 0x12, 0xb9, 0xe5, 0x9c, 0xda, 0x39, 0x23, 0xa2, + 0x4c, 0xdb, 0x7e, 0x81, 0x76, 0xcd, 0xc9, 0xd3, 0x5e, 0x0a, 0xc5, 0x29, 0x64, 0xe1, 0x70, 0x07, + 0x06, 0xac, 0x80, 0x4c, 0xc8, 0xcd, 0x7d, 0x8d, 0xaf, 0x96, 0x53, 0xa2, 0xea, 0x2c, 0xdd, 0x43, + 0xa9, 0x0b, 0x16, 0xe4, 0xd9, 0xe7, 0x38, 0x8b, 0x56, 0x93, 0x44, 0xae, 0x70, 0x23, 0xd3, 0x7b, + 0x8f, 0x7d, 0x3c, 0x1a, 0x55, 0xf2, 0xcd, 0x7d, 0xa4, 0xba, 0xe6, 0x26, 0x21, 0xeb, 0x20, 0xd6, + 0x58, 0x78, 0x76, 0x31, 0xe0, 0x74, 0x16, 0xe5, 0xde, 0x84, 0x95, 0x73, 0xcb, 0x43, 0xb5, 0xd9, + 0x11, 0x99, 0x5a, 0x07, 0xd1, 0x85, 0x24, 0xd9, 0xc8, 0x4e, 0xf2, 0x2d, 0x96, 0x02, 0xaf, 0xf5, + 0x8e, 0x09, 0x5d, 0xbd, 0x63, 0x6b, 0xf0, 0x15, 0x47, 0x94, 0xb6, 0xdc, 0x59, 0xae, 0x2b, 0x5e, + 0xc3, 0xda, 0xef, 0x90, 0x4c, 0x8e, 0x00, 0x5f, 0x4d, 0x62, 0xc6, 0x81, 0xd3, 0x79, 0x3b, 0x49, + 0x31, 0xe5, 0xbb, 0x70, 0x9b, 0xc4, 0x78, 0x56, 0x7d, 0x7e, 0xc6, 0xb3, 0x9a, 0x67, 0x16, 0xf8, + 0x30, 0xee, 0x1a, 0x04, 0xea, 0x5d, 0x83, 0x81, 0xab, 0x6b, 0xea, 0x5c, 0x5b, 0x7e, 0x21, 0x0f, + 0xd6, 0x41, 0xec, 0x86, 0x7d, 0x48, 0x19, 0x9d, 0xa9, 0xeb, 0x65, 0x54, 0x99, 0xcd, 0xba, 0xa1, + 0x76, 0xea, 0x91, 0xff, 0xaf, 0xc3, 0x55, 0x6f, 0x34, 0x0d, 0x2d, 0xee, 0x86, 0x19, 0x27, 0x33, + 0xce, 0x63, 0xb7, 0x28, 0x6f, 0x96, 0x69, 0x9c, 0x07, 0x66, 0x9e, 0xf3, 0xa8, 0x4b, 0xf0, 0x88, + 0x90, 0x70, 0x7f, 0xb4, 0xe0, 0x39, 0x2b, 0x6d, 0xbf, 0xbe, 0xe8, 0xb6, 0x5f, 0x60, 0x6c, 0xa1, + 0x1c, 0x1d, 0xe6, 0x16, 0xca, 0xa8, 0x67, 0x0b, 0x15, 0x34, 0xfa, 0x50, 0xcd, 0x2f, 0xa7, 0xda, + 0xd7, 0x87, 0xf6, 0xe4, 0x92, 0x66, 0x6a, 0xa5, 0x86, 0x99, 0xb1, 0xcc, 0x96, 0x87, 0x1a, 0x37, + 0xef, 0x20, 0x2f, 0xce, 0x4e, 0x92, 0xfc, 0x9b, 0x75, 0xf3, 0x34, 0xf0, 0xdc, 0x3c, 0xc4, 0xf1, + 0x9c, 0xd8, 0xc8, 0x62, 0x79, 0xfe, 0xdb, 0x45, 0x9c, 0xb2, 0x62, 0x58, 0x9b, 0x13, 0x26, 0x74, + 0xcd, 0x09, 0x5b, 0xa3, 0xed, 0x63, 0xf2, 0x64, 0x3b, 0x61, 0x59, 0x06, 0x51, 0x7d, 0x6c, 0xe3, + 0x2f, 0x02, 0x97, 0x40, 0x95, 0x79, 0x75, 0xa7, 0x4e, 0x97, 0x0a, 0x09, 0xdd, 0x81, 0x34, 0x2f, + 0xf5, 0x8b, 0xee, 0x7a, 0x1c, 0xd0, 0x17, 0xc8, 0xc0, 0xc6, 0xaa, 0xcc, 0xe2, 0x1d, 0x2a, 0xdc, + 0x17, 0x92, 0x57, 0xd5, 0xab, 0x0a, 0xf3, 0x56, 0xae, 0x66, 0xae, 0xbe, 0xb0, 0x24, 0xf8, 0x35, + 0xaf, 0xd6, 0x36, 0xba, 0xc6, 0xed, 0x5a, 0x1e, 0x46, 0xae, 0xd7, 0xbc, 0xa9, 0xd0, 0xc6, 0xdf, + 0x49, 0x53, 0xc6, 0x7a, 0x97, 0x02, 0x8a, 0x8c, 0x25, 0x89, 0x7e, 0xef, 0x41, 0x44, 0xdf, 0x22, + 0x0b, 0xbf, 0x4c, 0x15, 0x7c, 0x77, 0x4f, 0xb5, 0x2a, 0xbe, 0xf6, 0xf1, 0xe7, 0x55, 0xd0, 0xf8, + 0x7d, 0x15, 0x34, 0xfe, 0x5c, 0x05, 0x8d, 0x1f, 0x7f, 0x83, 0xb1, 0xc3, 0xa5, 0x32, 0x16, 0xc0, + 0xf9, 0x72, 0x9c, 0x77, 0xe4, 0xaf, 0xce, 0x69, 0xde, 0x29, 0x45, 0xa7, 0xfa, 0xe4, 0xec, 0xe0, + 0x0f, 0xd2, 0xe3, 0xf1, 0x2a, 0xf6, 0xe1, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc6, 0x00, 0x52, + 0x66, 0xbb, 0x0a, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -237,6 +238,9 @@ type VtctldClient interface { GetSchema(ctx context.Context, in *vtctldata.GetSchemaRequest, opts ...grpc.CallOption) (*vtctldata.GetSchemaResponse, error) // GetShard returns information about a shard in the topology. GetShard(ctx context.Context, in *vtctldata.GetShardRequest, opts ...grpc.CallOption) (*vtctldata.GetShardResponse, error) + // GetSrvKeyspaces returns the SrvKeyspaces for a keyspace in one or more + // cells. + GetSrvKeyspaces(ctx context.Context, in *vtctldata.GetSrvKeyspacesRequest, opts ...grpc.CallOption) (*vtctldata.GetSrvKeyspacesResponse, error) // GetSrvVSchema returns a the SrvVSchema for a cell. GetSrvVSchema(ctx context.Context, in *vtctldata.GetSrvVSchemaRequest, opts ...grpc.CallOption) (*vtctldata.GetSrvVSchemaResponse, error) // GetTablet returns information about a tablet. @@ -434,6 +438,15 @@ func (c *vtctldClient) GetShard(ctx context.Context, in *vtctldata.GetShardReque return out, nil } +func (c *vtctldClient) GetSrvKeyspaces(ctx context.Context, in *vtctldata.GetSrvKeyspacesRequest, opts ...grpc.CallOption) (*vtctldata.GetSrvKeyspacesResponse, error) { + out := new(vtctldata.GetSrvKeyspacesResponse) + err := c.cc.Invoke(ctx, "/vtctlservice.Vtctld/GetSrvKeyspaces", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *vtctldClient) GetSrvVSchema(ctx context.Context, in *vtctldata.GetSrvVSchemaRequest, opts ...grpc.CallOption) (*vtctldata.GetSrvVSchemaResponse, error) { out := new(vtctldata.GetSrvVSchemaResponse) err := c.cc.Invoke(ctx, "/vtctlservice.Vtctld/GetSrvVSchema", in, out, opts...) @@ -584,6 +597,9 @@ type VtctldServer interface { GetSchema(context.Context, *vtctldata.GetSchemaRequest) (*vtctldata.GetSchemaResponse, error) // GetShard returns information about a shard in the topology. GetShard(context.Context, *vtctldata.GetShardRequest) (*vtctldata.GetShardResponse, error) + // GetSrvKeyspaces returns the SrvKeyspaces for a keyspace in one or more + // cells. + GetSrvKeyspaces(context.Context, *vtctldata.GetSrvKeyspacesRequest) (*vtctldata.GetSrvKeyspacesResponse, error) // GetSrvVSchema returns a the SrvVSchema for a cell. GetSrvVSchema(context.Context, *vtctldata.GetSrvVSchemaRequest) (*vtctldata.GetSrvVSchemaResponse, error) // GetTablet returns information about a tablet. @@ -681,6 +697,9 @@ func (*UnimplementedVtctldServer) GetSchema(ctx context.Context, req *vtctldata. func (*UnimplementedVtctldServer) GetShard(ctx context.Context, req *vtctldata.GetShardRequest) (*vtctldata.GetShardResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetShard not implemented") } +func (*UnimplementedVtctldServer) GetSrvKeyspaces(ctx context.Context, req *vtctldata.GetSrvKeyspacesRequest) (*vtctldata.GetSrvKeyspacesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetSrvKeyspaces not implemented") +} func (*UnimplementedVtctldServer) GetSrvVSchema(ctx context.Context, req *vtctldata.GetSrvVSchemaRequest) (*vtctldata.GetSrvVSchemaResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetSrvVSchema not implemented") } @@ -1007,6 +1026,24 @@ func _Vtctld_GetShard_Handler(srv interface{}, ctx context.Context, dec func(int return interceptor(ctx, in, info, handler) } +func _Vtctld_GetSrvKeyspaces_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(vtctldata.GetSrvKeyspacesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(VtctldServer).GetSrvKeyspaces(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/vtctlservice.Vtctld/GetSrvKeyspaces", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(VtctldServer).GetSrvKeyspaces(ctx, req.(*vtctldata.GetSrvKeyspacesRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _Vtctld_GetSrvVSchema_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(vtctldata.GetSrvVSchemaRequest) if err := dec(in); err != nil { @@ -1273,6 +1310,10 @@ var _Vtctld_serviceDesc = grpc.ServiceDesc{ MethodName: "GetShard", Handler: _Vtctld_GetShard_Handler, }, + { + MethodName: "GetSrvKeyspaces", + Handler: _Vtctld_GetSrvKeyspaces_Handler, + }, { MethodName: "GetSrvVSchema", Handler: _Vtctld_GetSrvVSchema_Handler, diff --git a/go/vt/vtctl/grpcvtctldclient/client_gen.go b/go/vt/vtctl/grpcvtctldclient/client_gen.go index 6bbd45c42e..d0f1d386ad 100644 --- a/go/vt/vtctl/grpcvtctldclient/client_gen.go +++ b/go/vt/vtctl/grpcvtctldclient/client_gen.go @@ -172,6 +172,15 @@ func (client *gRPCVtctldClient) GetShard(ctx context.Context, in *vtctldatapb.Ge return client.c.GetShard(ctx, in, opts...) } +// GetSrvKeyspaces is part of the vtctlservicepb.VtctldClient interface. +func (client *gRPCVtctldClient) GetSrvKeyspaces(ctx context.Context, in *vtctldatapb.GetSrvKeyspacesRequest, opts ...grpc.CallOption) (*vtctldatapb.GetSrvKeyspacesResponse, error) { + if client.c == nil { + return nil, status.Error(codes.Unavailable, connClosedMsg) + } + + return client.c.GetSrvKeyspaces(ctx, in, opts...) +} + // GetSrvVSchema is part of the vtctlservicepb.VtctldClient interface. func (client *gRPCVtctldClient) GetSrvVSchema(ctx context.Context, in *vtctldatapb.GetSrvVSchemaRequest, opts ...grpc.CallOption) (*vtctldatapb.GetSrvVSchemaResponse, error) { if client.c == nil { diff --git a/go/vt/vtctl/grpcvtctldserver/server.go b/go/vt/vtctl/grpcvtctldserver/server.go index d97123dcdf..4e8df6c52a 100644 --- a/go/vt/vtctl/grpcvtctldserver/server.go +++ b/go/vt/vtctl/grpcvtctldserver/server.go @@ -556,6 +556,11 @@ func (s *VtctldServer) GetShard(ctx context.Context, req *vtctldatapb.GetShardRe }, nil } +// GetSrvKeyspaces is part of the vtctlservicepb.VtctldServer interface. +func (s *VtctldServer) GetSrvKeyspaces(ctx context.Context, req *vtctldatapb.GetSrvKeyspacesRequest) (*vtctldatapb.GetSrvKeyspacesResponse, error) { + panic("unimplemented!") +} + // GetSrvVSchema is part of the vtctlservicepb.VtctldServer interface. func (s *VtctldServer) GetSrvVSchema(ctx context.Context, req *vtctldatapb.GetSrvVSchemaRequest) (*vtctldatapb.GetSrvVSchemaResponse, error) { vschema, err := s.ts.GetSrvVSchema(ctx, req.Cell) diff --git a/proto/vtctldata.proto b/proto/vtctldata.proto index 7a192c12fb..767164c487 100644 --- a/proto/vtctldata.proto +++ b/proto/vtctldata.proto @@ -351,6 +351,18 @@ message GetShardResponse { Shard shard = 1; } +message GetSrvKeyspacesRequest { + string keyspace = 1; + // Cells is a list of cells to lookup a SrvKeyspace for. Leaving this empty is + // equivalent to specifying all cells in the topo. + repeated string cells = 2; +} + +message GetSrvKeyspacesResponse { + // SrvKeyspaces is a mapping of cell name to SrvKeyspace. + map srv_keyspaces = 1; +} + message GetSrvVSchemaRequest { string cell = 1; } diff --git a/proto/vtctlservice.proto b/proto/vtctlservice.proto index 17a06b4b51..59a93ff24b 100644 --- a/proto/vtctlservice.proto +++ b/proto/vtctlservice.proto @@ -80,6 +80,9 @@ service Vtctld { rpc GetSchema(vtctldata.GetSchemaRequest) returns (vtctldata.GetSchemaResponse) {}; // GetShard returns information about a shard in the topology. rpc GetShard(vtctldata.GetShardRequest) returns (vtctldata.GetShardResponse) {}; + // GetSrvKeyspaces returns the SrvKeyspaces for a keyspace in one or more + // cells. + rpc GetSrvKeyspaces (vtctldata.GetSrvKeyspacesRequest) returns (vtctldata.GetSrvKeyspacesResponse) {}; // GetSrvVSchema returns a the SrvVSchema for a cell. rpc GetSrvVSchema(vtctldata.GetSrvVSchemaRequest) returns (vtctldata.GetSrvVSchemaResponse) {}; // GetTablet returns information about a tablet. diff --git a/web/vtadmin/src/proto/vtadmin.d.ts b/web/vtadmin/src/proto/vtadmin.d.ts index 633a0639b4..261db95205 100644 --- a/web/vtadmin/src/proto/vtadmin.d.ts +++ b/web/vtadmin/src/proto/vtadmin.d.ts @@ -25953,6 +25953,192 @@ export namespace vtctldata { public toJSON(): { [k: string]: any }; } + /** Properties of a GetSrvKeyspacesRequest. */ + interface IGetSrvKeyspacesRequest { + + /** GetSrvKeyspacesRequest keyspace */ + keyspace?: (string|null); + + /** GetSrvKeyspacesRequest cells */ + cells?: (string[]|null); + } + + /** Represents a GetSrvKeyspacesRequest. */ + class GetSrvKeyspacesRequest implements IGetSrvKeyspacesRequest { + + /** + * Constructs a new GetSrvKeyspacesRequest. + * @param [properties] Properties to set + */ + constructor(properties?: vtctldata.IGetSrvKeyspacesRequest); + + /** GetSrvKeyspacesRequest keyspace. */ + public keyspace: string; + + /** GetSrvKeyspacesRequest cells. */ + public cells: string[]; + + /** + * Creates a new GetSrvKeyspacesRequest instance using the specified properties. + * @param [properties] Properties to set + * @returns GetSrvKeyspacesRequest instance + */ + public static create(properties?: vtctldata.IGetSrvKeyspacesRequest): vtctldata.GetSrvKeyspacesRequest; + + /** + * Encodes the specified GetSrvKeyspacesRequest message. Does not implicitly {@link vtctldata.GetSrvKeyspacesRequest.verify|verify} messages. + * @param message GetSrvKeyspacesRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: vtctldata.IGetSrvKeyspacesRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified GetSrvKeyspacesRequest message, length delimited. Does not implicitly {@link vtctldata.GetSrvKeyspacesRequest.verify|verify} messages. + * @param message GetSrvKeyspacesRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: vtctldata.IGetSrvKeyspacesRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a GetSrvKeyspacesRequest message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns GetSrvKeyspacesRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): vtctldata.GetSrvKeyspacesRequest; + + /** + * Decodes a GetSrvKeyspacesRequest message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns GetSrvKeyspacesRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): vtctldata.GetSrvKeyspacesRequest; + + /** + * Verifies a GetSrvKeyspacesRequest message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a GetSrvKeyspacesRequest message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns GetSrvKeyspacesRequest + */ + public static fromObject(object: { [k: string]: any }): vtctldata.GetSrvKeyspacesRequest; + + /** + * Creates a plain object from a GetSrvKeyspacesRequest message. Also converts values to other types if specified. + * @param message GetSrvKeyspacesRequest + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: vtctldata.GetSrvKeyspacesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this GetSrvKeyspacesRequest to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a GetSrvKeyspacesResponse. */ + interface IGetSrvKeyspacesResponse { + + /** GetSrvKeyspacesResponse srv_keyspaces */ + srv_keyspaces?: ({ [k: string]: topodata.ISrvKeyspace }|null); + } + + /** Represents a GetSrvKeyspacesResponse. */ + class GetSrvKeyspacesResponse implements IGetSrvKeyspacesResponse { + + /** + * Constructs a new GetSrvKeyspacesResponse. + * @param [properties] Properties to set + */ + constructor(properties?: vtctldata.IGetSrvKeyspacesResponse); + + /** GetSrvKeyspacesResponse srv_keyspaces. */ + public srv_keyspaces: { [k: string]: topodata.ISrvKeyspace }; + + /** + * Creates a new GetSrvKeyspacesResponse instance using the specified properties. + * @param [properties] Properties to set + * @returns GetSrvKeyspacesResponse instance + */ + public static create(properties?: vtctldata.IGetSrvKeyspacesResponse): vtctldata.GetSrvKeyspacesResponse; + + /** + * Encodes the specified GetSrvKeyspacesResponse message. Does not implicitly {@link vtctldata.GetSrvKeyspacesResponse.verify|verify} messages. + * @param message GetSrvKeyspacesResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: vtctldata.IGetSrvKeyspacesResponse, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified GetSrvKeyspacesResponse message, length delimited. Does not implicitly {@link vtctldata.GetSrvKeyspacesResponse.verify|verify} messages. + * @param message GetSrvKeyspacesResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: vtctldata.IGetSrvKeyspacesResponse, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a GetSrvKeyspacesResponse message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns GetSrvKeyspacesResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): vtctldata.GetSrvKeyspacesResponse; + + /** + * Decodes a GetSrvKeyspacesResponse message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns GetSrvKeyspacesResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): vtctldata.GetSrvKeyspacesResponse; + + /** + * Verifies a GetSrvKeyspacesResponse message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a GetSrvKeyspacesResponse message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns GetSrvKeyspacesResponse + */ + public static fromObject(object: { [k: string]: any }): vtctldata.GetSrvKeyspacesResponse; + + /** + * Creates a plain object from a GetSrvKeyspacesResponse message. Also converts values to other types if specified. + * @param message GetSrvKeyspacesResponse + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: vtctldata.GetSrvKeyspacesResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this GetSrvKeyspacesResponse to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + /** Properties of a GetSrvVSchemaRequest. */ interface IGetSrvVSchemaRequest { diff --git a/web/vtadmin/src/proto/vtadmin.js b/web/vtadmin/src/proto/vtadmin.js index 261f288cc9..9a805cfcfd 100644 --- a/web/vtadmin/src/proto/vtadmin.js +++ b/web/vtadmin/src/proto/vtadmin.js @@ -62099,6 +62099,461 @@ $root.vtctldata = (function() { return GetShardResponse; })(); + vtctldata.GetSrvKeyspacesRequest = (function() { + + /** + * Properties of a GetSrvKeyspacesRequest. + * @memberof vtctldata + * @interface IGetSrvKeyspacesRequest + * @property {string|null} [keyspace] GetSrvKeyspacesRequest keyspace + * @property {Array.|null} [cells] GetSrvKeyspacesRequest cells + */ + + /** + * Constructs a new GetSrvKeyspacesRequest. + * @memberof vtctldata + * @classdesc Represents a GetSrvKeyspacesRequest. + * @implements IGetSrvKeyspacesRequest + * @constructor + * @param {vtctldata.IGetSrvKeyspacesRequest=} [properties] Properties to set + */ + function GetSrvKeyspacesRequest(properties) { + this.cells = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * GetSrvKeyspacesRequest keyspace. + * @member {string} keyspace + * @memberof vtctldata.GetSrvKeyspacesRequest + * @instance + */ + GetSrvKeyspacesRequest.prototype.keyspace = ""; + + /** + * GetSrvKeyspacesRequest cells. + * @member {Array.} cells + * @memberof vtctldata.GetSrvKeyspacesRequest + * @instance + */ + GetSrvKeyspacesRequest.prototype.cells = $util.emptyArray; + + /** + * Creates a new GetSrvKeyspacesRequest instance using the specified properties. + * @function create + * @memberof vtctldata.GetSrvKeyspacesRequest + * @static + * @param {vtctldata.IGetSrvKeyspacesRequest=} [properties] Properties to set + * @returns {vtctldata.GetSrvKeyspacesRequest} GetSrvKeyspacesRequest instance + */ + GetSrvKeyspacesRequest.create = function create(properties) { + return new GetSrvKeyspacesRequest(properties); + }; + + /** + * Encodes the specified GetSrvKeyspacesRequest message. Does not implicitly {@link vtctldata.GetSrvKeyspacesRequest.verify|verify} messages. + * @function encode + * @memberof vtctldata.GetSrvKeyspacesRequest + * @static + * @param {vtctldata.IGetSrvKeyspacesRequest} message GetSrvKeyspacesRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetSrvKeyspacesRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.keyspace != null && Object.hasOwnProperty.call(message, "keyspace")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.keyspace); + if (message.cells != null && message.cells.length) + for (var i = 0; i < message.cells.length; ++i) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.cells[i]); + return writer; + }; + + /** + * Encodes the specified GetSrvKeyspacesRequest message, length delimited. Does not implicitly {@link vtctldata.GetSrvKeyspacesRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof vtctldata.GetSrvKeyspacesRequest + * @static + * @param {vtctldata.IGetSrvKeyspacesRequest} message GetSrvKeyspacesRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetSrvKeyspacesRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a GetSrvKeyspacesRequest message from the specified reader or buffer. + * @function decode + * @memberof vtctldata.GetSrvKeyspacesRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {vtctldata.GetSrvKeyspacesRequest} GetSrvKeyspacesRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetSrvKeyspacesRequest.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.vtctldata.GetSrvKeyspacesRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.keyspace = reader.string(); + break; + case 2: + if (!(message.cells && message.cells.length)) + message.cells = []; + message.cells.push(reader.string()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a GetSrvKeyspacesRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof vtctldata.GetSrvKeyspacesRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {vtctldata.GetSrvKeyspacesRequest} GetSrvKeyspacesRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetSrvKeyspacesRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a GetSrvKeyspacesRequest message. + * @function verify + * @memberof vtctldata.GetSrvKeyspacesRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GetSrvKeyspacesRequest.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.keyspace != null && message.hasOwnProperty("keyspace")) + if (!$util.isString(message.keyspace)) + return "keyspace: string expected"; + if (message.cells != null && message.hasOwnProperty("cells")) { + if (!Array.isArray(message.cells)) + return "cells: array expected"; + for (var i = 0; i < message.cells.length; ++i) + if (!$util.isString(message.cells[i])) + return "cells: string[] expected"; + } + return null; + }; + + /** + * Creates a GetSrvKeyspacesRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof vtctldata.GetSrvKeyspacesRequest + * @static + * @param {Object.} object Plain object + * @returns {vtctldata.GetSrvKeyspacesRequest} GetSrvKeyspacesRequest + */ + GetSrvKeyspacesRequest.fromObject = function fromObject(object) { + if (object instanceof $root.vtctldata.GetSrvKeyspacesRequest) + return object; + var message = new $root.vtctldata.GetSrvKeyspacesRequest(); + if (object.keyspace != null) + message.keyspace = String(object.keyspace); + if (object.cells) { + if (!Array.isArray(object.cells)) + throw TypeError(".vtctldata.GetSrvKeyspacesRequest.cells: array expected"); + message.cells = []; + for (var i = 0; i < object.cells.length; ++i) + message.cells[i] = String(object.cells[i]); + } + return message; + }; + + /** + * Creates a plain object from a GetSrvKeyspacesRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof vtctldata.GetSrvKeyspacesRequest + * @static + * @param {vtctldata.GetSrvKeyspacesRequest} message GetSrvKeyspacesRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GetSrvKeyspacesRequest.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.cells = []; + if (options.defaults) + object.keyspace = ""; + if (message.keyspace != null && message.hasOwnProperty("keyspace")) + object.keyspace = message.keyspace; + if (message.cells && message.cells.length) { + object.cells = []; + for (var j = 0; j < message.cells.length; ++j) + object.cells[j] = message.cells[j]; + } + return object; + }; + + /** + * Converts this GetSrvKeyspacesRequest to JSON. + * @function toJSON + * @memberof vtctldata.GetSrvKeyspacesRequest + * @instance + * @returns {Object.} JSON object + */ + GetSrvKeyspacesRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return GetSrvKeyspacesRequest; + })(); + + vtctldata.GetSrvKeyspacesResponse = (function() { + + /** + * Properties of a GetSrvKeyspacesResponse. + * @memberof vtctldata + * @interface IGetSrvKeyspacesResponse + * @property {Object.|null} [srv_keyspaces] GetSrvKeyspacesResponse srv_keyspaces + */ + + /** + * Constructs a new GetSrvKeyspacesResponse. + * @memberof vtctldata + * @classdesc Represents a GetSrvKeyspacesResponse. + * @implements IGetSrvKeyspacesResponse + * @constructor + * @param {vtctldata.IGetSrvKeyspacesResponse=} [properties] Properties to set + */ + function GetSrvKeyspacesResponse(properties) { + this.srv_keyspaces = {}; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * GetSrvKeyspacesResponse srv_keyspaces. + * @member {Object.} srv_keyspaces + * @memberof vtctldata.GetSrvKeyspacesResponse + * @instance + */ + GetSrvKeyspacesResponse.prototype.srv_keyspaces = $util.emptyObject; + + /** + * Creates a new GetSrvKeyspacesResponse instance using the specified properties. + * @function create + * @memberof vtctldata.GetSrvKeyspacesResponse + * @static + * @param {vtctldata.IGetSrvKeyspacesResponse=} [properties] Properties to set + * @returns {vtctldata.GetSrvKeyspacesResponse} GetSrvKeyspacesResponse instance + */ + GetSrvKeyspacesResponse.create = function create(properties) { + return new GetSrvKeyspacesResponse(properties); + }; + + /** + * Encodes the specified GetSrvKeyspacesResponse message. Does not implicitly {@link vtctldata.GetSrvKeyspacesResponse.verify|verify} messages. + * @function encode + * @memberof vtctldata.GetSrvKeyspacesResponse + * @static + * @param {vtctldata.IGetSrvKeyspacesResponse} message GetSrvKeyspacesResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetSrvKeyspacesResponse.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.srv_keyspaces != null && Object.hasOwnProperty.call(message, "srv_keyspaces")) + for (var keys = Object.keys(message.srv_keyspaces), i = 0; i < keys.length; ++i) { + writer.uint32(/* id 1, wireType 2 =*/10).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]); + $root.topodata.SrvKeyspace.encode(message.srv_keyspaces[keys[i]], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim().ldelim(); + } + return writer; + }; + + /** + * Encodes the specified GetSrvKeyspacesResponse message, length delimited. Does not implicitly {@link vtctldata.GetSrvKeyspacesResponse.verify|verify} messages. + * @function encodeDelimited + * @memberof vtctldata.GetSrvKeyspacesResponse + * @static + * @param {vtctldata.IGetSrvKeyspacesResponse} message GetSrvKeyspacesResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetSrvKeyspacesResponse.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a GetSrvKeyspacesResponse message from the specified reader or buffer. + * @function decode + * @memberof vtctldata.GetSrvKeyspacesResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {vtctldata.GetSrvKeyspacesResponse} GetSrvKeyspacesResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetSrvKeyspacesResponse.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.vtctldata.GetSrvKeyspacesResponse(), key, value; + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (message.srv_keyspaces === $util.emptyObject) + message.srv_keyspaces = {}; + var end2 = reader.uint32() + reader.pos; + key = ""; + value = null; + while (reader.pos < end2) { + var tag2 = reader.uint32(); + switch (tag2 >>> 3) { + case 1: + key = reader.string(); + break; + case 2: + value = $root.topodata.SrvKeyspace.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag2 & 7); + break; + } + } + message.srv_keyspaces[key] = value; + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a GetSrvKeyspacesResponse message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof vtctldata.GetSrvKeyspacesResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {vtctldata.GetSrvKeyspacesResponse} GetSrvKeyspacesResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetSrvKeyspacesResponse.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a GetSrvKeyspacesResponse message. + * @function verify + * @memberof vtctldata.GetSrvKeyspacesResponse + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GetSrvKeyspacesResponse.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.srv_keyspaces != null && message.hasOwnProperty("srv_keyspaces")) { + if (!$util.isObject(message.srv_keyspaces)) + return "srv_keyspaces: object expected"; + var key = Object.keys(message.srv_keyspaces); + for (var i = 0; i < key.length; ++i) { + var error = $root.topodata.SrvKeyspace.verify(message.srv_keyspaces[key[i]]); + if (error) + return "srv_keyspaces." + error; + } + } + return null; + }; + + /** + * Creates a GetSrvKeyspacesResponse message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof vtctldata.GetSrvKeyspacesResponse + * @static + * @param {Object.} object Plain object + * @returns {vtctldata.GetSrvKeyspacesResponse} GetSrvKeyspacesResponse + */ + GetSrvKeyspacesResponse.fromObject = function fromObject(object) { + if (object instanceof $root.vtctldata.GetSrvKeyspacesResponse) + return object; + var message = new $root.vtctldata.GetSrvKeyspacesResponse(); + if (object.srv_keyspaces) { + if (typeof object.srv_keyspaces !== "object") + throw TypeError(".vtctldata.GetSrvKeyspacesResponse.srv_keyspaces: object expected"); + message.srv_keyspaces = {}; + for (var keys = Object.keys(object.srv_keyspaces), i = 0; i < keys.length; ++i) { + if (typeof object.srv_keyspaces[keys[i]] !== "object") + throw TypeError(".vtctldata.GetSrvKeyspacesResponse.srv_keyspaces: object expected"); + message.srv_keyspaces[keys[i]] = $root.topodata.SrvKeyspace.fromObject(object.srv_keyspaces[keys[i]]); + } + } + return message; + }; + + /** + * Creates a plain object from a GetSrvKeyspacesResponse message. Also converts values to other types if specified. + * @function toObject + * @memberof vtctldata.GetSrvKeyspacesResponse + * @static + * @param {vtctldata.GetSrvKeyspacesResponse} message GetSrvKeyspacesResponse + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GetSrvKeyspacesResponse.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.objects || options.defaults) + object.srv_keyspaces = {}; + var keys2; + if (message.srv_keyspaces && (keys2 = Object.keys(message.srv_keyspaces)).length) { + object.srv_keyspaces = {}; + for (var j = 0; j < keys2.length; ++j) + object.srv_keyspaces[keys2[j]] = $root.topodata.SrvKeyspace.toObject(message.srv_keyspaces[keys2[j]], options); + } + return object; + }; + + /** + * Converts this GetSrvKeyspacesResponse to JSON. + * @function toJSON + * @memberof vtctldata.GetSrvKeyspacesResponse + * @instance + * @returns {Object.} JSON object + */ + GetSrvKeyspacesResponse.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return GetSrvKeyspacesResponse; + })(); + vtctldata.GetSrvVSchemaRequest = (function() { /**