[#138] v2/object: Update to neofs-api jindo release

Signed-off-by: Alex Vanin <alexey@nspcc.ru>
support/v2.15
Alex Vanin 2020-09-08 13:39:13 +03:00 committed by Stanislav Bogatyrev
parent c0cc4a4374
commit 581cb2d2ba
6 changed files with 505 additions and 112 deletions

View File

@ -283,6 +283,42 @@ func HeaderFromGRPCMessage(m *object.Header) *Header {
return h
}
func HeaderWithSignatureToGRPCMessage(h *HeaderWithSignature) *object.HeaderWithSignature {
if h == nil {
return nil
}
m := new(object.HeaderWithSignature)
m.SetHeader(
HeaderToGRPCMessage(h.GetHeader()),
)
m.SetSignature(
refs.SignatureToGRPCMessage(h.GetSignature()),
)
return m
}
func HeaderWithSignatureFromGRPCMessage(m *object.HeaderWithSignature) *HeaderWithSignature {
if m == nil {
return nil
}
h := new(HeaderWithSignature)
h.SetHeader(
HeaderFromGRPCMessage(m.GetHeader()),
)
h.SetSignature(
refs.SignatureFromGRPCMessage(m.GetSignature()),
)
return h
}
func ObjectToGRPCMessage(o *Object) *object.Object {
if o == nil {
return nil
@ -942,8 +978,8 @@ func GetHeaderPartFullToGRPCMessage(r *GetHeaderPartFull) *object.HeadResponse_B
m := new(object.HeadResponse_Body_Header)
m.SetHeader(
HeaderToGRPCMessage(r.GetHeader()),
m.SetHeaderWithSignature(
HeaderWithSignatureToGRPCMessage(r.GetHeaderWithSignature()),
)
return m
@ -956,8 +992,8 @@ func GetHeaderPartFullFromGRPCMessage(m *object.HeadResponse_Body_Header) *GetHe
r := new(GetHeaderPartFull)
r.SetHeader(
HeaderFromGRPCMessage(m.GetHeader()),
r.SetHeaderWithSignature(
HeaderWithSignatureFromGRPCMessage(m.GetHeaderWithSignature()),
)
return r

View File

@ -330,8 +330,8 @@ func (m *HeadResponse_Body_ShortHeader) SetShortHeader(v *ShortHeader) {
}
}
// GetHeader returns object header.
func (m *HeadResponse_Body_Header) GetHeader() *Header {
// GetHeaderWithSignature returns object header.
func (m *HeadResponse_Body_Header) GetHeaderWithSignature() *HeaderWithSignature {
if m != nil {
return m.Header
}
@ -339,13 +339,27 @@ func (m *HeadResponse_Body_Header) GetHeader() *Header {
return nil
}
// SetHeader sets object header.
func (m *HeadResponse_Body_Header) SetHeader(v *Header) {
// SetHeaderWithSignature sets object header.
func (m *HeadResponse_Body_Header) SetHeaderWithSignature(v *HeaderWithSignature) {
if m != nil {
m.Header = v
}
}
// SetHeader sets object header.
func (m *HeaderWithSignature) SetHeader(v *Header) {
if m != nil {
m.Header = v
}
}
// SetSignature of the header.
func (m *HeaderWithSignature) SetSignature(v *refs.Signature) {
if m != nil {
m.Signature = v
}
}
// SetHeader sets full header of the object.
func (m *HeadResponse_Body) SetHeader(v *HeadResponse_Body_Header) {
if m != nil {

View File

@ -1110,6 +1110,67 @@ func (m *HeadRequest_Body) GetRaw() bool {
return false
}
// Tuple of full object header and signature of object ID.
type HeaderWithSignature struct {
// Full object header
Header *Header `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"`
// Signed object_id to verify full header's authenticity through following steps:
// 1. Calculate SHA-256 of marshalled Headers structure.
// 2. Check if the resulting hash matched ObjectID
// 3. Check if ObjectID's signature in signature field is correct.
Signature *grpc1.Signature `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *HeaderWithSignature) Reset() { *m = HeaderWithSignature{} }
func (m *HeaderWithSignature) String() string { return proto.CompactTextString(m) }
func (*HeaderWithSignature) ProtoMessage() {}
func (*HeaderWithSignature) Descriptor() ([]byte, []int) {
return fileDescriptor_1d7d92b1e85e5b48, []int{7}
}
func (m *HeaderWithSignature) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *HeaderWithSignature) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
if deterministic {
return xxx_messageInfo_HeaderWithSignature.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 *HeaderWithSignature) XXX_Merge(src proto.Message) {
xxx_messageInfo_HeaderWithSignature.Merge(m, src)
}
func (m *HeaderWithSignature) XXX_Size() int {
return m.Size()
}
func (m *HeaderWithSignature) XXX_DiscardUnknown() {
xxx_messageInfo_HeaderWithSignature.DiscardUnknown(m)
}
var xxx_messageInfo_HeaderWithSignature proto.InternalMessageInfo
func (m *HeaderWithSignature) GetHeader() *Header {
if m != nil {
return m.Header
}
return nil
}
func (m *HeaderWithSignature) GetSignature() *grpc1.Signature {
if m != nil {
return m.Signature
}
return nil
}
// Head response
type HeadResponse struct {
// Body of head object response message.
@ -1130,7 +1191,7 @@ func (m *HeadResponse) Reset() { *m = HeadResponse{} }
func (m *HeadResponse) String() string { return proto.CompactTextString(m) }
func (*HeadResponse) ProtoMessage() {}
func (*HeadResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_1d7d92b1e85e5b48, []int{7}
return fileDescriptor_1d7d92b1e85e5b48, []int{8}
}
func (m *HeadResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -1197,7 +1258,7 @@ func (m *HeadResponse_Body) Reset() { *m = HeadResponse_Body{} }
func (m *HeadResponse_Body) String() string { return proto.CompactTextString(m) }
func (*HeadResponse_Body) ProtoMessage() {}
func (*HeadResponse_Body) Descriptor() ([]byte, []int) {
return fileDescriptor_1d7d92b1e85e5b48, []int{7, 0}
return fileDescriptor_1d7d92b1e85e5b48, []int{8, 0}
}
func (m *HeadResponse_Body) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -1233,7 +1294,7 @@ type isHeadResponse_Body_Head interface {
}
type HeadResponse_Body_Header struct {
Header *Header `protobuf:"bytes,1,opt,name=header,proto3,oneof" json:"header,omitempty"`
Header *HeaderWithSignature `protobuf:"bytes,1,opt,name=header,proto3,oneof" json:"header,omitempty"`
}
type HeadResponse_Body_ShortHeader struct {
ShortHeader *ShortHeader `protobuf:"bytes,2,opt,name=short_header,json=shortHeader,proto3,oneof" json:"short_header,omitempty"`
@ -1249,7 +1310,7 @@ func (m *HeadResponse_Body) GetHead() isHeadResponse_Body_Head {
return nil
}
func (m *HeadResponse_Body) GetHeader() *Header {
func (m *HeadResponse_Body) GetHeader() *HeaderWithSignature {
if x, ok := m.GetHead().(*HeadResponse_Body_Header); ok {
return x.Header
}
@ -1290,7 +1351,7 @@ func (m *SearchRequest) Reset() { *m = SearchRequest{} }
func (m *SearchRequest) String() string { return proto.CompactTextString(m) }
func (*SearchRequest) ProtoMessage() {}
func (*SearchRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_1d7d92b1e85e5b48, []int{8}
return fileDescriptor_1d7d92b1e85e5b48, []int{9}
}
func (m *SearchRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -1357,7 +1418,7 @@ func (m *SearchRequest_Body) Reset() { *m = SearchRequest_Body{} }
func (m *SearchRequest_Body) String() string { return proto.CompactTextString(m) }
func (*SearchRequest_Body) ProtoMessage() {}
func (*SearchRequest_Body) Descriptor() ([]byte, []int) {
return fileDescriptor_1d7d92b1e85e5b48, []int{8, 0}
return fileDescriptor_1d7d92b1e85e5b48, []int{9, 0}
}
func (m *SearchRequest_Body) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -1424,7 +1485,7 @@ func (m *SearchRequest_Body_Filter) Reset() { *m = SearchRequest_Body_Fi
func (m *SearchRequest_Body_Filter) String() string { return proto.CompactTextString(m) }
func (*SearchRequest_Body_Filter) ProtoMessage() {}
func (*SearchRequest_Body_Filter) Descriptor() ([]byte, []int) {
return fileDescriptor_1d7d92b1e85e5b48, []int{8, 0, 0}
return fileDescriptor_1d7d92b1e85e5b48, []int{9, 0, 0}
}
func (m *SearchRequest_Body_Filter) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -1494,7 +1555,7 @@ func (m *SearchResponse) Reset() { *m = SearchResponse{} }
func (m *SearchResponse) String() string { return proto.CompactTextString(m) }
func (*SearchResponse) ProtoMessage() {}
func (*SearchResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_1d7d92b1e85e5b48, []int{9}
return fileDescriptor_1d7d92b1e85e5b48, []int{10}
}
func (m *SearchResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -1557,7 +1618,7 @@ func (m *SearchResponse_Body) Reset() { *m = SearchResponse_Body{} }
func (m *SearchResponse_Body) String() string { return proto.CompactTextString(m) }
func (*SearchResponse_Body) ProtoMessage() {}
func (*SearchResponse_Body) Descriptor() ([]byte, []int) {
return fileDescriptor_1d7d92b1e85e5b48, []int{9, 0}
return fileDescriptor_1d7d92b1e85e5b48, []int{10, 0}
}
func (m *SearchResponse_Body) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -1608,7 +1669,7 @@ func (m *Range) Reset() { *m = Range{} }
func (m *Range) String() string { return proto.CompactTextString(m) }
func (*Range) ProtoMessage() {}
func (*Range) Descriptor() ([]byte, []int) {
return fileDescriptor_1d7d92b1e85e5b48, []int{10}
return fileDescriptor_1d7d92b1e85e5b48, []int{11}
}
func (m *Range) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -1670,7 +1731,7 @@ func (m *GetRangeRequest) Reset() { *m = GetRangeRequest{} }
func (m *GetRangeRequest) String() string { return proto.CompactTextString(m) }
func (*GetRangeRequest) ProtoMessage() {}
func (*GetRangeRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_1d7d92b1e85e5b48, []int{11}
return fileDescriptor_1d7d92b1e85e5b48, []int{12}
}
func (m *GetRangeRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -1735,7 +1796,7 @@ func (m *GetRangeRequest_Body) Reset() { *m = GetRangeRequest_Body{} }
func (m *GetRangeRequest_Body) String() string { return proto.CompactTextString(m) }
func (*GetRangeRequest_Body) ProtoMessage() {}
func (*GetRangeRequest_Body) Descriptor() ([]byte, []int) {
return fileDescriptor_1d7d92b1e85e5b48, []int{11, 0}
return fileDescriptor_1d7d92b1e85e5b48, []int{12, 0}
}
func (m *GetRangeRequest_Body) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -1798,7 +1859,7 @@ func (m *GetRangeResponse) Reset() { *m = GetRangeResponse{} }
func (m *GetRangeResponse) String() string { return proto.CompactTextString(m) }
func (*GetRangeResponse) ProtoMessage() {}
func (*GetRangeResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_1d7d92b1e85e5b48, []int{12}
return fileDescriptor_1d7d92b1e85e5b48, []int{13}
}
func (m *GetRangeResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -1861,7 +1922,7 @@ func (m *GetRangeResponse_Body) Reset() { *m = GetRangeResponse_Body{} }
func (m *GetRangeResponse_Body) String() string { return proto.CompactTextString(m) }
func (*GetRangeResponse_Body) ProtoMessage() {}
func (*GetRangeResponse_Body) Descriptor() ([]byte, []int) {
return fileDescriptor_1d7d92b1e85e5b48, []int{12, 0}
return fileDescriptor_1d7d92b1e85e5b48, []int{13, 0}
}
func (m *GetRangeResponse_Body) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -1916,7 +1977,7 @@ func (m *GetRangeHashRequest) Reset() { *m = GetRangeHashRequest{} }
func (m *GetRangeHashRequest) String() string { return proto.CompactTextString(m) }
func (*GetRangeHashRequest) ProtoMessage() {}
func (*GetRangeHashRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_1d7d92b1e85e5b48, []int{13}
return fileDescriptor_1d7d92b1e85e5b48, []int{14}
}
func (m *GetRangeHashRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -1985,7 +2046,7 @@ func (m *GetRangeHashRequest_Body) Reset() { *m = GetRangeHashRequest_Bo
func (m *GetRangeHashRequest_Body) String() string { return proto.CompactTextString(m) }
func (*GetRangeHashRequest_Body) ProtoMessage() {}
func (*GetRangeHashRequest_Body) Descriptor() ([]byte, []int) {
return fileDescriptor_1d7d92b1e85e5b48, []int{13, 0}
return fileDescriptor_1d7d92b1e85e5b48, []int{14, 0}
}
func (m *GetRangeHashRequest_Body) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -2062,7 +2123,7 @@ func (m *GetRangeHashResponse) Reset() { *m = GetRangeHashResponse{} }
func (m *GetRangeHashResponse) String() string { return proto.CompactTextString(m) }
func (*GetRangeHashResponse) ProtoMessage() {}
func (*GetRangeHashResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_1d7d92b1e85e5b48, []int{14}
return fileDescriptor_1d7d92b1e85e5b48, []int{15}
}
func (m *GetRangeHashResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -2127,7 +2188,7 @@ func (m *GetRangeHashResponse_Body) Reset() { *m = GetRangeHashResponse_
func (m *GetRangeHashResponse_Body) String() string { return proto.CompactTextString(m) }
func (*GetRangeHashResponse_Body) ProtoMessage() {}
func (*GetRangeHashResponse_Body) Descriptor() ([]byte, []int) {
return fileDescriptor_1d7d92b1e85e5b48, []int{14, 0}
return fileDescriptor_1d7d92b1e85e5b48, []int{15, 0}
}
func (m *GetRangeHashResponse_Body) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -2187,6 +2248,7 @@ func init() {
proto.RegisterType((*DeleteResponse_Body)(nil), "neo.fs.v2.object.DeleteResponse.Body")
proto.RegisterType((*HeadRequest)(nil), "neo.fs.v2.object.HeadRequest")
proto.RegisterType((*HeadRequest_Body)(nil), "neo.fs.v2.object.HeadRequest.Body")
proto.RegisterType((*HeaderWithSignature)(nil), "neo.fs.v2.object.HeaderWithSignature")
proto.RegisterType((*HeadResponse)(nil), "neo.fs.v2.object.HeadResponse")
proto.RegisterType((*HeadResponse_Body)(nil), "neo.fs.v2.object.HeadResponse.Body")
proto.RegisterType((*SearchRequest)(nil), "neo.fs.v2.object.SearchRequest")
@ -2208,87 +2270,88 @@ func init() {
func init() { proto.RegisterFile("v2/object/grpc/service.proto", fileDescriptor_1d7d92b1e85e5b48) }
var fileDescriptor_1d7d92b1e85e5b48 = []byte{
// 1267 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x58, 0xdd, 0x6e, 0x1b, 0xc5,
0x17, 0xcf, 0xae, 0x37, 0x6e, 0x7c, 0x6c, 0xe7, 0x1f, 0x4d, 0xa3, 0xd6, 0x7f, 0xe7, 0x83, 0x74,
0xdb, 0xa4, 0x11, 0x25, 0xeb, 0x60, 0x54, 0x42, 0x5b, 0x5a, 0xd4, 0x90, 0xa4, 0xb1, 0x4a, 0xda,
0xb0, 0x06, 0x2e, 0x90, 0x90, 0xb5, 0x59, 0x8f, 0xed, 0xa5, 0xf6, 0xae, 0xd9, 0x19, 0x1b, 0xf9,
0x05, 0x90, 0x78, 0x02, 0x90, 0x90, 0x10, 0xea, 0x15, 0xea, 0x15, 0xe2, 0x96, 0x17, 0x00, 0x24,
0x24, 0x78, 0x03, 0x14, 0x6e, 0x91, 0x78, 0x00, 0x84, 0x84, 0xe6, 0x63, 0x6d, 0xaf, 0xbf, 0x95,
0xbb, 0xe5, 0x6e, 0x66, 0xf6, 0x77, 0xce, 0xce, 0xf9, 0xcd, 0x6f, 0xce, 0x9c, 0x19, 0x58, 0x6d,
0xe7, 0x73, 0xde, 0xd9, 0xc7, 0xd8, 0xa6, 0xb9, 0xaa, 0xdf, 0xb4, 0x73, 0x04, 0xfb, 0x6d, 0xc7,
0xc6, 0x46, 0xd3, 0xf7, 0xa8, 0x87, 0x96, 0x5c, 0xec, 0x19, 0x15, 0x62, 0xb4, 0xf3, 0x86, 0x00,
0x65, 0xb3, 0x03, 0x78, 0xda, 0x69, 0x62, 0x22, 0xd0, 0xd9, 0x4c, 0x3b, 0x9f, 0xf3, 0x71, 0x85,
0x0c, 0x7f, 0x59, 0x69, 0xe7, 0x73, 0x04, 0x13, 0xe2, 0x78, 0xee, 0xd0, 0x47, 0xfd, 0x85, 0x0a,
0xf0, 0x08, 0x53, 0x13, 0x7f, 0xd2, 0xc2, 0x84, 0xa2, 0xdb, 0xa0, 0x9d, 0x79, 0xe5, 0x4e, 0x46,
0xd9, 0x50, 0xb6, 0x93, 0xf9, 0x6b, 0xc6, 0xe0, 0x14, 0x8c, 0x1e, 0xd6, 0xd8, 0xf7, 0xca, 0x1d,
0x93, 0xc3, 0xd1, 0x21, 0x24, 0x1b, 0x98, 0x5a, 0xa5, 0x1a, 0xb6, 0xca, 0xd8, 0xcf, 0xa8, 0xdc,
0xfa, 0x46, 0x9f, 0xb5, 0xfc, 0xbf, 0x21, 0x6d, 0x4f, 0x30, 0xb5, 0x8e, 0x39, 0xd6, 0x84, 0x46,
0xb7, 0x8d, 0xde, 0x85, 0x74, 0x1b, 0xfb, 0x4e, 0xa5, 0x13, 0x38, 0x8a, 0x71, 0x47, 0xaf, 0x8c,
0x77, 0xf4, 0x01, 0x83, 0x3b, 0xb6, 0x45, 0x1d, 0xcf, 0x95, 0x0e, 0x53, 0xc2, 0x85, 0xe8, 0x65,
0x1f, 0x83, 0xc6, 0xe6, 0x89, 0x5e, 0x85, 0x4b, 0x56, 0xb9, 0xec, 0x63, 0x42, 0x64, 0x6c, 0x57,
0xfb, 0x9c, 0x32, 0xde, 0x8c, 0x87, 0xe2, 0xb3, 0x19, 0xe0, 0xd0, 0x12, 0xc4, 0x7c, 0xeb, 0x53,
0x1e, 0xcc, 0x82, 0xc9, 0x9a, 0xfa, 0xdf, 0x31, 0x48, 0x72, 0x02, 0x48, 0xd3, 0x73, 0x09, 0x46,
0xaf, 0x87, 0xd8, 0xd2, 0xc7, 0xb0, 0x25, 0xc0, 0xfd, 0x74, 0x1d, 0x8d, 0xa2, 0x6b, 0x73, 0x64,
0x94, 0xc2, 0x78, 0x0c, 0x5f, 0xe6, 0x68, 0xbe, 0x76, 0x26, 0x78, 0x9a, 0x4a, 0xd8, 0x17, 0xaa,
0x64, 0xec, 0x3e, 0x68, 0x8e, 0xeb, 0x50, 0x19, 0xdc, 0xcd, 0xe9, 0xc1, 0x19, 0x05, 0xd7, 0xa1,
0xc7, 0x73, 0x26, 0x37, 0x43, 0x57, 0x60, 0xde, 0xae, 0xb5, 0xdc, 0x67, 0x3c, 0xba, 0xd4, 0xf1,
0x9c, 0x29, 0xba, 0xd9, 0x6f, 0x15, 0xd0, 0x18, 0x10, 0xdd, 0x86, 0x84, 0x70, 0x54, 0x72, 0xca,
0xf2, 0x27, 0x99, 0xc1, 0x35, 0x79, 0xca, 0x01, 0x85, 0x03, 0x73, 0x41, 0x40, 0x0b, 0x65, 0xb4,
0x07, 0x09, 0xe2, 0x54, 0x5d, 0x8b, 0xb6, 0x7c, 0x2c, 0x99, 0xfb, 0xff, 0xa0, 0x59, 0x31, 0x00,
0x98, 0x3d, 0x2c, 0xda, 0x85, 0x78, 0x88, 0xa5, 0xcc, 0x70, 0x44, 0x92, 0x10, 0x89, 0xdb, 0x4f,
0x43, 0x52, 0xce, 0xb0, 0x69, 0xf9, 0x54, 0xff, 0x4a, 0x03, 0x38, 0x6d, 0xcd, 0xbe, 0x55, 0x7a,
0xd8, 0x68, 0x6c, 0x95, 0x1f, 0x82, 0x95, 0x7f, 0x33, 0xb4, 0xf2, 0x5b, 0x53, 0x23, 0x9b, 0x6d,
0xe1, 0x7f, 0x89, 0xcc, 0xc2, 0xa3, 0xeb, 0x90, 0xb6, 0xbd, 0xa6, 0x83, 0x49, 0xc9, 0x6d, 0x35,
0xce, 0xb0, 0x9f, 0xd1, 0x36, 0x94, 0xed, 0xb4, 0x99, 0x12, 0x83, 0x4f, 0xf8, 0xd8, 0xa0, 0x3a,
0xbe, 0x51, 0x21, 0xc9, 0x79, 0x99, 0x35, 0x37, 0xf4, 0x81, 0xa3, 0x92, 0x1b, 0xee, 0x4b, 0x81,
0x5c, 0x6c, 0x05, 0xf5, 0xaf, 0x55, 0x48, 0x1f, 0xe0, 0x3a, 0xa6, 0x38, 0xd8, 0x43, 0x6f, 0x84,
0x48, 0xba, 0x31, 0x4c, 0x52, 0x08, 0x1e, 0x8d, 0x6d, 0x74, 0xe7, 0xc2, 0x27, 0x8e, 0xfe, 0x97,
0x02, 0x8b, 0x41, 0xc4, 0x52, 0x46, 0x77, 0x42, 0x0c, 0x6d, 0x8e, 0x67, 0x28, 0x5a, 0x4a, 0x8a,
0x0b, 0x92, 0xf4, 0x9f, 0x54, 0x48, 0xb2, 0xa1, 0x40, 0x10, 0x53, 0x77, 0x4d, 0x1f, 0x38, 0x1a,
0x72, 0xa8, 0x5d, 0xbc, 0x00, 0x59, 0x81, 0x44, 0xc3, 0x72, 0xdc, 0x92, 0xe7, 0xd6, 0x3b, 0xb2,
0x0c, 0x59, 0x60, 0x03, 0x4f, 0xdd, 0x7a, 0x27, 0xa8, 0x4e, 0x62, 0xbd, 0xea, 0xe4, 0x4f, 0x15,
0x52, 0x82, 0x1e, 0xa9, 0x9d, 0xbd, 0x10, 0x99, 0xd7, 0xc7, 0x91, 0x19, 0x2d, 0xe5, 0x7c, 0xa6,
0x48, 0x42, 0xf3, 0xdd, 0xb4, 0xae, 0x4c, 0x4e, 0xeb, 0xc7, 0x73, 0xdd, 0xc4, 0xbe, 0x0f, 0x29,
0x52, 0xf3, 0x7c, 0x1a, 0x8e, 0x6c, 0x6d, 0xd8, 0xb2, 0xc8, 0x50, 0x5d, 0xf3, 0x24, 0xe9, 0x75,
0xf7, 0xe3, 0xa0, 0x31, 0x6b, 0xfd, 0x9f, 0x18, 0xa4, 0x8b, 0xd8, 0xf2, 0xed, 0xda, 0xcc, 0xd9,
0x2c, 0x04, 0x8f, 0x86, 0x7c, 0xbb, 0xe5, 0xe0, 0x03, 0x48, 0xd9, 0x9e, 0x4b, 0x2d, 0xc7, 0xc5,
0x7e, 0x2f, 0xed, 0xaf, 0x0c, 0x8a, 0xf8, 0xed, 0x00, 0x53, 0x38, 0x30, 0x93, 0x5d, 0x83, 0x42,
0x19, 0x65, 0xe0, 0x52, 0x1b, 0xfb, 0xec, 0xdf, 0x3c, 0xbc, 0xb4, 0x19, 0x74, 0xd1, 0x21, 0x5c,
0xaa, 0x38, 0x75, 0x8a, 0x7d, 0x92, 0x89, 0x6d, 0xc4, 0xb6, 0x93, 0xf9, 0x5b, 0xb3, 0x30, 0x67,
0x1c, 0x71, 0x1b, 0x33, 0xb0, 0xcd, 0xba, 0x10, 0x17, 0x43, 0xe8, 0x2e, 0x40, 0xc3, 0xa2, 0x76,
0xad, 0xc4, 0x2e, 0x3a, 0x7c, 0xa2, 0x8b, 0xa1, 0x89, 0x4a, 0x9f, 0x27, 0x0c, 0xf3, 0x5e, 0xa7,
0x89, 0xcd, 0x44, 0x23, 0x68, 0x22, 0x04, 0x9a, 0x6b, 0x35, 0x44, 0x81, 0x91, 0x30, 0x79, 0x1b,
0x2d, 0xc3, 0x7c, 0xdb, 0xaa, 0xb7, 0x30, 0xa7, 0x33, 0x61, 0x8a, 0x8e, 0xfe, 0x5c, 0x85, 0xc5,
0x60, 0x5a, 0xb3, 0x26, 0xeb, 0x30, 0x3e, 0x2a, 0x5b, 0xae, 0xef, 0x44, 0x73, 0xca, 0xa5, 0xba,
0x43, 0x58, 0x69, 0x18, 0x9b, 0x78, 0xe8, 0xc7, 0x9d, 0xf2, 0x3b, 0x0e, 0xa1, 0xfa, 0x1e, 0xcc,
0x9b, 0x96, 0x5b, 0xc5, 0xe8, 0x0a, 0xc4, 0xbd, 0x4a, 0x85, 0x60, 0x51, 0x55, 0x6a, 0xa6, 0xec,
0xb1, 0xf1, 0x3a, 0x76, 0xab, 0xb4, 0xc6, 0x43, 0xd6, 0x4c, 0xd9, 0xd3, 0x7f, 0x53, 0xe1, 0x7f,
0xec, 0x82, 0xc1, 0x8c, 0x83, 0xfd, 0x75, 0x37, 0x44, 0xef, 0xd6, 0xe8, 0x1b, 0x49, 0x9f, 0xc1,
0x7f, 0xfe, 0x80, 0xd8, 0x81, 0x79, 0x9f, 0xc5, 0x2b, 0xc3, 0xb9, 0x3a, 0xcc, 0x88, 0xa0, 0x43,
0xa0, 0xf4, 0xcf, 0x55, 0x58, 0xea, 0x51, 0x24, 0x35, 0x7b, 0x2f, 0x44, 0xea, 0xcd, 0x49, 0xa4,
0x46, 0x4b, 0xb5, 0xab, 0x92, 0xd7, 0xe5, 0xe0, 0x3e, 0xc2, 0x22, 0x4c, 0xc9, 0xdb, 0x88, 0xfe,
0x3c, 0x06, 0x97, 0x83, 0xc8, 0x8e, 0x2d, 0xd2, 0xcd, 0xe1, 0x0f, 0x42, 0x74, 0xbc, 0x3c, 0x9e,
0x8e, 0x3e, 0xa3, 0x68, 0xe8, 0xec, 0x3b, 0xe5, 0xe2, 0x42, 0xcb, 0x41, 0x9c, 0x4b, 0x88, 0x64,
0x54, 0xbe, 0xf1, 0xc7, 0x2a, 0x4d, 0xc2, 0x58, 0x1a, 0x25, 0x56, 0x9d, 0xf2, 0x69, 0xa7, 0x4c,
0xde, 0x46, 0xbb, 0xa0, 0xf1, 0x84, 0xac, 0xf1, 0x84, 0xbc, 0x3a, 0x74, 0x72, 0xd4, 0xb0, 0xfd,
0x8c, 0xb4, 0x1a, 0x3c, 0x23, 0x73, 0xa4, 0xfe, 0xb3, 0x0a, 0xcb, 0x61, 0xbe, 0xa5, 0x68, 0xdf,
0x0a, 0xad, 0xd2, 0xad, 0x69, 0xab, 0x14, 0x2d, 0xe1, 0xbe, 0x2f, 0xd7, 0x29, 0xe0, 0x4b, 0x99,
0x95, 0x2f, 0x56, 0x30, 0xd6, 0x2c, 0x52, 0x13, 0x29, 0x9a, 0xad, 0x54, 0xca, 0x5c, 0x60, 0x03,
0x2c, 0x15, 0xe7, 0xbf, 0xd7, 0x20, 0x2d, 0xf2, 0x73, 0x51, 0x3c, 0x33, 0xa2, 0x03, 0x88, 0x3d,
0xc2, 0x14, 0xad, 0x4e, 0x7a, 0xe5, 0xcb, 0xae, 0x4d, 0x7c, 0xf8, 0xd9, 0x55, 0x98, 0x97, 0xd3,
0xd6, 0x48, 0x2f, 0xbd, 0x67, 0x82, 0x51, 0x5e, 0xfa, 0xee, 0xbf, 0xdb, 0x0a, 0x7a, 0x0c, 0x71,
0x71, 0x93, 0x41, 0x2f, 0x4d, 0xb9, 0x05, 0x66, 0x37, 0xa6, 0x5d, 0x82, 0xd0, 0x21, 0x68, 0x8c,
0x4b, 0xb4, 0x36, 0xf1, 0xfe, 0x90, 0x5d, 0x9f, 0x5c, 0x11, 0xa3, 0x13, 0x88, 0x8b, 0x03, 0x7b,
0xd4, 0x9c, 0x42, 0x15, 0xc9, 0xa8, 0x39, 0x85, 0xcf, 0xfa, 0x5d, 0x05, 0x15, 0x61, 0x21, 0x90,
0x25, 0xba, 0x36, 0xf5, 0xf0, 0xca, 0xea, 0xd3, 0x53, 0xf1, 0xae, 0x82, 0x3e, 0x82, 0x54, 0xbf,
0xd6, 0xd1, 0xe6, 0x4c, 0x19, 0x2b, 0xbb, 0x35, 0xdb, 0x96, 0xd9, 0x2f, 0xfd, 0x78, 0xbe, 0xae,
0xfc, 0x7a, 0xbe, 0xae, 0xfc, 0x7e, 0xbe, 0xae, 0x7c, 0xf9, 0xc7, 0xfa, 0xdc, 0x87, 0x7b, 0x55,
0x87, 0xd6, 0x5a, 0x67, 0x86, 0xed, 0x35, 0x72, 0x2e, 0x69, 0xda, 0xf6, 0x4e, 0x19, 0xb7, 0x73,
0x2e, 0xf6, 0x2a, 0x64, 0xc7, 0x6a, 0x3a, 0x3b, 0x55, 0x2f, 0x17, 0x7e, 0xa5, 0xbe, 0x27, 0xda,
0x2f, 0xd4, 0xcb, 0x4f, 0xb0, 0x77, 0x54, 0x34, 0x1e, 0x9e, 0x16, 0xd8, 0x5f, 0x85, 0x14, 0xcf,
0xe2, 0xfc, 0x19, 0xfa, 0xb5, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0xc2, 0x71, 0xb6, 0x54, 0x0b,
0x17, 0x00, 0x00,
// 1290 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x58, 0xcd, 0x6f, 0x1b, 0x45,
0x14, 0xcf, 0xae, 0x37, 0x4e, 0xfc, 0x6c, 0x87, 0x68, 0x12, 0xb5, 0xc6, 0xf9, 0x20, 0xdd, 0x36,
0x69, 0x44, 0xc9, 0x3a, 0x18, 0x95, 0xd0, 0x96, 0xb6, 0x6a, 0x48, 0x52, 0x5b, 0x25, 0x6d, 0x58,
0xf3, 0x21, 0x21, 0x21, 0x6b, 0xb3, 0x1e, 0x7b, 0x97, 0xda, 0xbb, 0x66, 0x67, 0x6d, 0xe4, 0x1b,
0x57, 0xce, 0x1c, 0x40, 0x42, 0x42, 0xa8, 0x27, 0xd4, 0x13, 0xe2, 0xca, 0x3f, 0x00, 0x48, 0x48,
0xf0, 0x1f, 0xa0, 0xf0, 0x07, 0x70, 0x46, 0x08, 0x09, 0xcd, 0xc7, 0xc6, 0x5e, 0x7f, 0x2b, 0xb7,
0xe5, 0x36, 0x33, 0xfb, 0x7b, 0x6f, 0xe7, 0xfd, 0xde, 0xc7, 0xbc, 0x19, 0x58, 0x6d, 0xe7, 0x73,
0xee, 0xe9, 0xc7, 0xd8, 0xf4, 0x73, 0x35, 0xaf, 0x69, 0xe6, 0x08, 0xf6, 0xda, 0xb6, 0x89, 0xb5,
0xa6, 0xe7, 0xfa, 0x2e, 0x5a, 0x74, 0xb0, 0xab, 0x55, 0x89, 0xd6, 0xce, 0x6b, 0x1c, 0x94, 0xcd,
0xf6, 0xe1, 0xfd, 0x4e, 0x13, 0x13, 0x8e, 0xce, 0x66, 0xda, 0xf9, 0x9c, 0x87, 0xab, 0x64, 0xf0,
0xcb, 0x4a, 0x3b, 0x9f, 0x23, 0x98, 0x10, 0xdb, 0x75, 0x06, 0x3e, 0xaa, 0xcf, 0x65, 0x80, 0x87,
0xd8, 0xd7, 0xf1, 0x27, 0x2d, 0x4c, 0x7c, 0x74, 0x13, 0x94, 0x53, 0xb7, 0xd2, 0xc9, 0x48, 0x1b,
0xd2, 0x76, 0x32, 0x7f, 0x45, 0xeb, 0xdf, 0x82, 0xd6, 0xc5, 0x6a, 0xfb, 0x6e, 0xa5, 0xa3, 0x33,
0x38, 0x3a, 0x84, 0x64, 0x03, 0xfb, 0x46, 0xd9, 0xc2, 0x46, 0x05, 0x7b, 0x19, 0x99, 0x49, 0x5f,
0xeb, 0x91, 0x16, 0xff, 0xd7, 0x84, 0xec, 0x31, 0xf6, 0x8d, 0x02, 0xc3, 0xea, 0xd0, 0x38, 0x1f,
0xa3, 0x77, 0x20, 0xdd, 0xc6, 0x9e, 0x5d, 0xed, 0x04, 0x8a, 0x62, 0x4c, 0xd1, 0x2b, 0xa3, 0x15,
0xbd, 0x4f, 0xe1, 0xb6, 0x69, 0xf8, 0xb6, 0xeb, 0x08, 0x85, 0x29, 0xae, 0x82, 0xcf, 0xb2, 0x8f,
0x40, 0xa1, 0xfb, 0x44, 0xaf, 0xc2, 0x9c, 0x51, 0xa9, 0x78, 0x98, 0x10, 0x61, 0xdb, 0xe5, 0x1e,
0xa5, 0x94, 0x37, 0xed, 0x01, 0xff, 0xac, 0x07, 0x38, 0xb4, 0x08, 0x31, 0xcf, 0xf8, 0x94, 0x19,
0x33, 0xaf, 0xd3, 0xa1, 0xfa, 0x4f, 0x0c, 0x92, 0x8c, 0x00, 0xd2, 0x74, 0x1d, 0x82, 0xd1, 0xeb,
0x21, 0xb6, 0xd4, 0x11, 0x6c, 0x71, 0x70, 0x2f, 0x5d, 0x47, 0xc3, 0xe8, 0xda, 0x1c, 0x6a, 0x25,
0x17, 0x1e, 0xc1, 0x97, 0x3e, 0x9c, 0xaf, 0x9d, 0x31, 0x9a, 0x26, 0x12, 0xf6, 0xa5, 0x2c, 0x18,
0xbb, 0x0b, 0x8a, 0xed, 0xd8, 0xbe, 0x30, 0xee, 0xfa, 0x64, 0xe3, 0xb4, 0xa2, 0x63, 0xfb, 0x85,
0x19, 0x9d, 0x89, 0xa1, 0x4b, 0x30, 0x6b, 0x5a, 0x2d, 0xe7, 0x29, 0xb3, 0x2e, 0x55, 0x98, 0xd1,
0xf9, 0x34, 0xfb, 0x9d, 0x04, 0x0a, 0x05, 0xa2, 0x9b, 0x90, 0xe0, 0x8a, 0xca, 0x76, 0x45, 0xfc,
0x24, 0xd3, 0xef, 0x93, 0x27, 0x0c, 0x50, 0x3c, 0xd0, 0xe7, 0x39, 0xb4, 0x58, 0x41, 0x7b, 0x90,
0x20, 0x76, 0xcd, 0x31, 0xfc, 0x96, 0x87, 0x05, 0x73, 0x2f, 0xf6, 0x8b, 0x95, 0x02, 0x80, 0xde,
0xc5, 0xa2, 0x5d, 0x88, 0x87, 0x58, 0xca, 0x0c, 0x5a, 0x24, 0x08, 0x11, 0xb8, 0xfd, 0x34, 0x24,
0xc5, 0x0e, 0x9b, 0x86, 0xe7, 0xab, 0x5f, 0x2b, 0x00, 0x27, 0xad, 0xe9, 0x53, 0xa5, 0x8b, 0x8d,
0x46, 0xaa, 0xfc, 0x18, 0x78, 0xfe, 0xcd, 0x90, 0xe7, 0xb7, 0x26, 0x5a, 0x36, 0x9d, 0xe3, 0x7f,
0x8d, 0x8c, 0xe3, 0xd1, 0x55, 0x48, 0x9b, 0x6e, 0xd3, 0xc6, 0xa4, 0xec, 0xb4, 0x1a, 0xa7, 0xd8,
0xcb, 0x28, 0x1b, 0xd2, 0x76, 0x5a, 0x4f, 0xf1, 0xc5, 0xc7, 0x6c, 0xad, 0x3f, 0x3a, 0xbe, 0x95,
0x21, 0xc9, 0x78, 0x99, 0xb6, 0x36, 0xf4, 0x80, 0xa3, 0x52, 0x1b, 0xee, 0x8a, 0x00, 0xb9, 0x98,
0x07, 0xd5, 0x6f, 0x64, 0x48, 0x1f, 0xe0, 0x3a, 0xf6, 0x71, 0x90, 0x43, 0x6f, 0x84, 0x48, 0xba,
0x36, 0x48, 0x52, 0x08, 0x1e, 0x8d, 0x34, 0xba, 0x75, 0xe1, 0x13, 0x47, 0xfd, 0x4b, 0x82, 0x85,
0xc0, 0x62, 0x11, 0x46, 0xb7, 0x42, 0x0c, 0x6d, 0x8e, 0x66, 0x28, 0x5a, 0x91, 0x14, 0xe7, 0x24,
0xa9, 0x3f, 0xcb, 0x90, 0xa4, 0x4b, 0x41, 0x40, 0x4c, 0xcc, 0x9a, 0x1e, 0x70, 0x34, 0xc2, 0xc1,
0xba, 0x78, 0x03, 0xb2, 0x02, 0x89, 0x86, 0x61, 0x3b, 0x65, 0xd7, 0xa9, 0x77, 0x44, 0x1b, 0x32,
0x4f, 0x17, 0x9e, 0x38, 0xf5, 0x4e, 0xd0, 0x9d, 0xc4, 0xba, 0xdd, 0xc9, 0x67, 0x12, 0x2c, 0xf1,
0x9f, 0x7e, 0x60, 0xfb, 0x56, 0x69, 0x48, 0xfd, 0x93, 0xa6, 0xac, 0x7f, 0x17, 0x2d, 0xb5, 0xea,
0xdf, 0x32, 0xa4, 0xb8, 0x87, 0x44, 0xf8, 0xee, 0x85, 0xfc, 0x79, 0x75, 0x94, 0x3f, 0xa3, 0x15,
0xbc, 0x5f, 0x48, 0xc2, 0xa7, 0xf7, 0xfb, 0x98, 0xdd, 0x1c, 0xc5, 0x6c, 0xc8, 0x21, 0x85, 0x99,
0x73, 0xa2, 0xf7, 0x21, 0x45, 0x2c, 0xd7, 0xf3, 0xc3, 0x66, 0xae, 0x0d, 0xaa, 0x29, 0x51, 0x14,
0xd7, 0x55, 0x98, 0xd1, 0x93, 0xa4, 0x3b, 0xdd, 0x8f, 0x83, 0x42, 0xa5, 0xd5, 0x7f, 0x63, 0x90,
0x2e, 0x61, 0xc3, 0x33, 0xad, 0xa9, 0xab, 0x6b, 0x08, 0x1e, 0x8d, 0x74, 0x3a, 0x6f, 0x4f, 0xef,
0x41, 0xca, 0x74, 0x1d, 0xdf, 0xb0, 0x1d, 0xec, 0x75, 0x8f, 0xa1, 0x95, 0xfe, 0x30, 0x7d, 0x2b,
0xc0, 0x14, 0x0f, 0xf4, 0xe4, 0xb9, 0x40, 0xb1, 0x82, 0x32, 0x30, 0xd7, 0xc6, 0x1e, 0xfd, 0x37,
0x33, 0x2f, 0xad, 0x07, 0x53, 0x74, 0x08, 0x73, 0x55, 0xbb, 0xee, 0x63, 0x8f, 0x64, 0x62, 0x1b,
0xb1, 0xed, 0x64, 0xfe, 0xc6, 0x34, 0xcc, 0x69, 0x47, 0x4c, 0x46, 0x0f, 0x64, 0xb3, 0x0e, 0xc4,
0xf9, 0x12, 0xba, 0x0d, 0xd0, 0x30, 0x7c, 0xd3, 0x2a, 0xd3, 0x8b, 0x17, 0xdb, 0xe8, 0x42, 0x68,
0xa3, 0x42, 0xe7, 0x31, 0xc5, 0xbc, 0xdb, 0x69, 0x62, 0x3d, 0xd1, 0x08, 0x86, 0x08, 0x81, 0xe2,
0x18, 0x0d, 0x9e, 0x85, 0x09, 0x9d, 0x8d, 0xd1, 0x32, 0xcc, 0xb6, 0x8d, 0x7a, 0x0b, 0x33, 0x3a,
0x13, 0x3a, 0x9f, 0xa8, 0xcf, 0x64, 0x58, 0x08, 0xb6, 0x35, 0xed, 0xe1, 0x11, 0xc6, 0x47, 0x25,
0xff, 0x7a, 0x4e, 0x58, 0xbb, 0x52, 0xae, 0xdb, 0x84, 0xb6, 0xaa, 0xb1, 0xb1, 0x4d, 0x48, 0xdc,
0xae, 0xbc, 0x6d, 0x13, 0x5f, 0xdd, 0x83, 0x59, 0xdd, 0x70, 0x6a, 0x18, 0x5d, 0x82, 0xb8, 0x5b,
0xad, 0x12, 0xcc, 0xbb, 0x5c, 0x45, 0x17, 0x33, 0xba, 0x5e, 0xc7, 0x4e, 0xcd, 0xb7, 0x98, 0xc9,
0x8a, 0x2e, 0x66, 0xea, 0xef, 0x32, 0xbc, 0x40, 0x2f, 0x3c, 0x54, 0x38, 0xc8, 0xaf, 0xdb, 0x21,
0x7a, 0xb7, 0x86, 0xdf, 0x90, 0x7a, 0x04, 0xfe, 0xf7, 0x07, 0xd6, 0x0e, 0xcc, 0x7a, 0xd4, 0x5e,
0x61, 0xce, 0xe5, 0x41, 0x46, 0x38, 0x1d, 0x1c, 0xa5, 0x7e, 0x2e, 0xc3, 0x62, 0x97, 0x22, 0x11,
0xb3, 0x77, 0x42, 0xa4, 0x5e, 0x1f, 0x47, 0x6a, 0xb4, 0xa2, 0x76, 0x55, 0xf0, 0xba, 0x1c, 0xdc,
0x8f, 0xa8, 0x85, 0x29, 0x71, 0x3b, 0x52, 0x9f, 0xc5, 0x60, 0x29, 0xb0, 0xac, 0x60, 0x90, 0xf3,
0x1a, 0x7e, 0x2f, 0x44, 0xc7, 0xcb, 0xa3, 0xe9, 0xe8, 0x11, 0x8a, 0x46, 0x9c, 0x7d, 0x2f, 0x5d,
0x3c, 0xd0, 0x72, 0x10, 0x67, 0x21, 0x44, 0x32, 0x32, 0x4b, 0xfc, 0x91, 0x91, 0x26, 0x60, 0xb4,
0x8c, 0x12, 0xa3, 0xee, 0xb3, 0x6d, 0xa7, 0x74, 0x36, 0x46, 0xbb, 0xa0, 0xb0, 0x82, 0xac, 0xb0,
0x82, 0xbc, 0x3a, 0x70, 0x72, 0x58, 0xd8, 0x7c, 0x4a, 0x5a, 0x0d, 0x56, 0x91, 0x19, 0x52, 0xfd,
0x45, 0x86, 0xe5, 0x30, 0xdf, 0x22, 0x68, 0xef, 0x87, 0xbc, 0x74, 0x63, 0x92, 0x97, 0xa2, 0x15,
0xb8, 0xef, 0x09, 0x3f, 0x05, 0x7c, 0x49, 0xd3, 0xf2, 0x45, 0x1b, 0x58, 0xcb, 0x20, 0x16, 0x2f,
0xd1, 0xd4, 0x53, 0x29, 0x7d, 0x9e, 0x2e, 0xd0, 0x52, 0x9c, 0xff, 0x41, 0x81, 0x34, 0xaf, 0xcf,
0x25, 0xfe, 0xec, 0x89, 0x0e, 0x20, 0xf6, 0x10, 0xfb, 0x68, 0x75, 0xdc, 0xab, 0x63, 0x76, 0x6d,
0xec, 0x43, 0xd4, 0xae, 0x44, 0xb5, 0x9c, 0xb4, 0x86, 0x6a, 0xe9, 0x3e, 0x5b, 0x0c, 0xd3, 0xd2,
0x73, 0x1f, 0xdf, 0x96, 0xd0, 0x23, 0x88, 0xf3, 0x9b, 0x15, 0x7a, 0x69, 0xc2, 0xad, 0x34, 0xbb,
0x31, 0xe9, 0x52, 0x86, 0x0e, 0x41, 0xa1, 0x5c, 0xa2, 0xb5, 0xb1, 0xf7, 0x99, 0xec, 0xfa, 0xf8,
0xf6, 0x18, 0x1d, 0x43, 0x9c, 0x1f, 0xd8, 0xc3, 0xf6, 0x14, 0xea, 0x48, 0x86, 0xed, 0x29, 0x7c,
0xd6, 0xef, 0x4a, 0xa8, 0x04, 0xf3, 0x41, 0x58, 0xa2, 0x2b, 0x13, 0x0f, 0xaf, 0xac, 0x3a, 0xb9,
0x14, 0xef, 0x4a, 0xe8, 0x23, 0x48, 0xf5, 0xc6, 0x3a, 0xda, 0x9c, 0xaa, 0x62, 0x65, 0xb7, 0xa6,
0x4b, 0x99, 0xfd, 0xf2, 0x4f, 0x67, 0xeb, 0xd2, 0x6f, 0x67, 0xeb, 0xd2, 0x1f, 0x67, 0xeb, 0xd2,
0x57, 0x7f, 0xae, 0xcf, 0x7c, 0xb8, 0x57, 0xb3, 0x7d, 0xab, 0x75, 0xaa, 0x99, 0x6e, 0x23, 0xe7,
0x90, 0xa6, 0x69, 0xee, 0x54, 0x70, 0x3b, 0xe7, 0x60, 0xb7, 0x4a, 0x76, 0x8c, 0xa6, 0xbd, 0x53,
0x73, 0x73, 0xe1, 0x57, 0xf3, 0x3b, 0x7c, 0xfc, 0x5c, 0x5e, 0x7a, 0x8c, 0xdd, 0xa3, 0x92, 0xf6,
0xe0, 0xa4, 0x48, 0xff, 0xca, 0x43, 0xf1, 0x34, 0xce, 0x9e, 0xc5, 0x5f, 0xfb, 0x2f, 0x00, 0x00,
0xff, 0xff, 0x31, 0xd1, 0xce, 0x46, 0x9b, 0x17, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
@ -3684,6 +3747,57 @@ func (m *HeadRequest_Body) MarshalToSizedBuffer(dAtA []byte) (int, error) {
return len(dAtA) - i, nil
}
func (m *HeaderWithSignature) 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 *HeaderWithSignature) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
func (m *HeaderWithSignature) 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 m.Signature != nil {
{
size, err := m.Signature.MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
i -= size
i = encodeVarintService(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0x12
}
if m.Header != nil {
{
size, err := m.Header.MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
i -= size
i = encodeVarintService(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0xa
}
return len(dAtA) - i, nil
}
func (m *HeadResponse) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@ -4969,6 +5083,26 @@ func (m *HeadRequest_Body) Size() (n int) {
return n
}
func (m *HeaderWithSignature) Size() (n int) {
if m == nil {
return 0
}
var l int
_ = l
if m.Header != nil {
l = m.Header.Size()
n += 1 + l + sovService(uint64(l))
}
if m.Signature != nil {
l = m.Signature.Size()
n += 1 + l + sovService(uint64(l))
}
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
return n
}
func (m *HeadResponse) Size() (n int) {
if m == nil {
return 0
@ -7547,6 +7681,132 @@ func (m *HeadRequest_Body) Unmarshal(dAtA []byte) error {
}
return nil
}
func (m *HeaderWithSignature) 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 ErrIntOverflowService
}
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: HeaderWithSignature: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: HeaderWithSignature: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Header", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowService
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthService
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return ErrInvalidLengthService
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
if m.Header == nil {
m.Header = &Header{}
}
if err := m.Header.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
case 2:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Signature", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowService
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthService
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return ErrInvalidLengthService
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
if m.Signature == nil {
m.Signature = &grpc1.Signature{}
}
if err := m.Signature.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipService(dAtA[iNdEx:])
if err != nil {
return err
}
if skippy < 0 {
return ErrInvalidLengthService
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthService
}
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 *HeadResponse) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
@ -7767,7 +8027,7 @@ func (m *HeadResponse_Body) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
v := &Header{}
v := &HeaderWithSignature{}
if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}

View File

@ -33,6 +33,9 @@ const (
hdrAttributesField = 10
hdrSplitField = 11
hdrWithSigHeaderField = 1
hdrWithSigSignatureField = 2
objIDField = 1
objSignatureField = 2
objHeaderField = 3
@ -385,6 +388,48 @@ func (h *Header) StableSize() (size int) {
return size
}
func (h *HeaderWithSignature) StableMarshal(buf []byte) ([]byte, error) {
if h == nil {
return []byte{}, nil
}
if buf == nil {
buf = make([]byte, h.StableSize())
}
var (
offset, n int
err error
)
n, err = proto.NestedStructureMarshal(hdrWithSigHeaderField, buf[offset:], h.header)
if err != nil {
return nil, err
}
offset += n
n, err = proto.NestedStructureMarshal(hdrWithSigSignatureField, buf[offset:], h.signature)
if err != nil {
return nil, err
}
offset += n
return buf, nil
}
func (h *HeaderWithSignature) StableSize() (size int) {
if h == nil {
return 0
}
size += proto.NestedStructureSize(hdrVersionField, h.header)
size += proto.NestedStructureSize(hdrContainerIDField, h.signature)
return size
}
func (o *Object) StableMarshal(buf []byte) ([]byte, error) {
if o == nil {
return []byte{}, nil

View File

@ -590,8 +590,12 @@ func generateHeadResponseBody(flag bool) *object.HeadResponseBody {
short.SetShortHeader(generateShortHeader("short id"))
part = short
} else {
hdrWithSig := new(object.HeaderWithSignature)
hdrWithSig.SetHeader(generateHeader(30))
hdrWithSig.SetSignature(generateSignature("sig", "key"))
full := new(object.GetHeaderPartFull)
full.SetHeader(generateHeader(30))
full.SetHeaderWithSignature(hdrWithSig)
part = full
}

View File

@ -57,6 +57,12 @@ type Header struct {
split *SplitHeader
}
type HeaderWithSignature struct {
header *Header
signature *refs.Signature
}
type Object struct {
objectID *refs.ObjectID
@ -136,7 +142,7 @@ type GetHeaderPart interface {
}
type GetHeaderPartFull struct {
hdr *Header
hdr *HeaderWithSignature
}
type GetHeaderPartShort struct {
@ -528,6 +534,34 @@ func (h *Header) SetSplit(v *SplitHeader) {
}
}
func (h *HeaderWithSignature) GetHeader() *Header {
if h != nil {
return h.header
}
return nil
}
func (h *HeaderWithSignature) SetHeader(v *Header) {
if h != nil {
h.header = v
}
}
func (h *HeaderWithSignature) GetSignature() *refs.Signature {
if h != nil {
return h.signature
}
return nil
}
func (h *HeaderWithSignature) SetSignature(v *refs.Signature) {
if h != nil {
h.signature = v
}
}
func (o *Object) GetObjectID() *refs.ObjectID {
if o != nil {
return o.objectID
@ -1138,7 +1172,7 @@ func (r *HeadRequest) SetVerificationHeader(v *session.RequestVerificationHeader
}
}
func (h *GetHeaderPartFull) GetHeader() *Header {
func (h *GetHeaderPartFull) GetHeaderWithSignature() *HeaderWithSignature {
if h != nil {
return h.hdr
}
@ -1146,7 +1180,7 @@ func (h *GetHeaderPartFull) GetHeader() *Header {
return nil
}
func (h *GetHeaderPartFull) SetHeader(v *Header) {
func (h *GetHeaderPartFull) SetHeaderWithSignature(v *HeaderWithSignature) {
if h != nil {
h.hdr = v
}