diff options
author | Alejandro Rodríguez <alejorro70@gmail.com> | 2018-07-04 15:01:36 +0300 |
---|---|---|
committer | Alejandro Rodríguez <alejorro70@gmail.com> | 2018-07-04 15:01:36 +0300 |
commit | 6ac07e591946e38b662179f5c998c62dff81fbe7 (patch) | |
tree | 38e902f1912a8330484f8c58ec018e9ac4da1102 | |
parent | 76df34cad9770e89e0e9491671b96c55d3cff755 (diff) | |
parent | 7898465a5d0e85606d6420724d7d326421e6cff2 (diff) |
Merge branch 'config-rpcs' into 'master'
Implement DeleteConfig and SetConfig
See merge request gitlab-org/gitaly!786
-rw-r--r-- | changelogs/unreleased/config-rpcs.yml | 5 | ||||
-rw-r--r-- | internal/service/repository/config.go | 50 | ||||
-rw-r--r-- | internal/service/repository/config_test.go | 123 | ||||
-rw-r--r-- | ruby/Gemfile | 2 | ||||
-rw-r--r-- | ruby/Gemfile.lock | 4 | ||||
-rw-r--r-- | ruby/lib/gitaly_server/repository_service.rb | 24 | ||||
-rw-r--r-- | vendor/gitlab.com/gitlab-org/gitaly-proto/go/VERSION | 2 | ||||
-rw-r--r-- | vendor/gitlab.com/gitlab-org/gitaly-proto/go/blob.pb.go | 4 | ||||
-rw-r--r-- | vendor/gitlab.com/gitlab-org/gitaly-proto/go/repository-service.pb.go | 616 | ||||
-rw-r--r-- | vendor/vendor.json | 10 |
10 files changed, 670 insertions, 170 deletions
diff --git a/changelogs/unreleased/config-rpcs.yml b/changelogs/unreleased/config-rpcs.yml new file mode 100644 index 000000000..5ba5986b7 --- /dev/null +++ b/changelogs/unreleased/config-rpcs.yml @@ -0,0 +1,5 @@ +--- +title: Implement DeleteConfig and SetConfig +merge_request: 786 +author: +type: added diff --git a/internal/service/repository/config.go b/internal/service/repository/config.go new file mode 100644 index 000000000..23dad7422 --- /dev/null +++ b/internal/service/repository/config.go @@ -0,0 +1,50 @@ +package repository + +import ( + "gitlab.com/gitlab-org/gitaly/internal/command" + "gitlab.com/gitlab-org/gitaly/internal/git" + "gitlab.com/gitlab-org/gitaly/internal/rubyserver" + + pb "gitlab.com/gitlab-org/gitaly-proto/go" + "golang.org/x/net/context" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" +) + +func (*server) DeleteConfig(ctx context.Context, req *pb.DeleteConfigRequest) (*pb.DeleteConfigResponse, error) { + for _, k := range req.Keys { + // We assume k does not contain any secrets; it is leaked via 'ps'. + cmd, err := git.Command(ctx, req.Repository, "config", "--unset-all", k) + if err != nil { + return nil, err + } + + if err := cmd.Wait(); err != nil { + if code, ok := command.ExitStatus(err); ok && code == 5 { + // Status code 5 means 'key not in config', see 'git help config' + continue + } + + return nil, status.Errorf(codes.Internal, "command failed: %v", err) + } + } + + return &pb.DeleteConfigResponse{}, nil +} + +func (s *server) SetConfig(ctx context.Context, req *pb.SetConfigRequest) (*pb.SetConfigResponse, error) { + // We use gitaly-ruby here because in gitaly-ruby we can use Rugged, and + // Rugged lets us set config values without leaking secrets via 'ps'. We + // can't use `git config foo.bar secret` because that leaks secrets. + client, err := s.RepositoryServiceClient(ctx) + if err != nil { + return nil, err + } + + clientCtx, err := rubyserver.SetHeaders(ctx, req.GetRepository()) + if err != nil { + return nil, err + } + + return client.SetConfig(clientCtx, req) +} diff --git a/internal/service/repository/config_test.go b/internal/service/repository/config_test.go new file mode 100644 index 000000000..1c824f0d7 --- /dev/null +++ b/internal/service/repository/config_test.go @@ -0,0 +1,123 @@ +package repository + +import ( + "bufio" + "bytes" + "strings" + "testing" + + "github.com/stretchr/testify/require" + pb "gitlab.com/gitlab-org/gitaly-proto/go" + "gitlab.com/gitlab-org/gitaly/internal/testhelper" +) + +func TestDeleteConfig(t *testing.T) { + server, serverSocketPath := runRepoServer(t) + defer server.Stop() + + client, conn := newRepositoryClient(t, serverSocketPath) + defer conn.Close() + + testcases := []struct { + desc string + addKeys []string + reqKeys []string + }{ + { + desc: "empty request", + }, + { + desc: "keys that don't exist", + reqKeys: []string{"test.foo", "test.bar"}, + }, + { + desc: "mix of keys that do and do not exist", + addKeys: []string{"test.bar"}, + reqKeys: []string{"test.foo", "test.bar", "test.baz"}, + }, + } + + for _, tc := range testcases { + t.Run(tc.desc, func(t *testing.T) { + ctx, cancel := testhelper.Context() + defer cancel() + + testRepo, testRepoPath, cleanupFn := testhelper.NewTestRepo(t) + defer cleanupFn() + + for _, k := range tc.addKeys { + testhelper.MustRunCommand(t, nil, "git", "-C", testRepoPath, "config", k, "blabla") + } + + _, err := client.DeleteConfig(ctx, &pb.DeleteConfigRequest{Repository: testRepo, Keys: tc.reqKeys}) + require.NoError(t, err) + + actualConfig := testhelper.MustRunCommand(t, nil, "git", "-C", testRepoPath, "config", "-l") + scanner := bufio.NewScanner(bytes.NewReader(actualConfig)) + for scanner.Scan() { + for _, k := range tc.reqKeys { + require.False(t, strings.HasPrefix(scanner.Text(), k+"="), "key %q must not occur in config", k) + } + } + + require.NoError(t, scanner.Err()) + }) + } +} + +func TestSetConfig(t *testing.T) { + server, serverSocketPath := runRepoServer(t) + defer server.Stop() + + client, conn := newRepositoryClient(t, serverSocketPath) + defer conn.Close() + + testcases := []struct { + desc string + entries []*pb.SetConfigRequest_Entry + expected []string + }{ + { + desc: "empty request", + }, + { + desc: "mix of different types", + entries: []*pb.SetConfigRequest_Entry{ + &pb.SetConfigRequest_Entry{Key: "test.foo1", Value: &pb.SetConfigRequest_Entry_ValueStr{"hello world"}}, + &pb.SetConfigRequest_Entry{Key: "test.foo2", Value: &pb.SetConfigRequest_Entry_ValueInt32{1234}}, + &pb.SetConfigRequest_Entry{Key: "test.foo3", Value: &pb.SetConfigRequest_Entry_ValueBool{true}}, + }, + expected: []string{ + "test.foo1=hello world", + "test.foo2=1234", + "test.foo3=true", + }, + }, + } + + for _, tc := range testcases { + t.Run(tc.desc, func(t *testing.T) { + ctx, cancel := testhelper.Context() + defer cancel() + + testRepo, testRepoPath, cleanupFn := testhelper.NewTestRepo(t) + defer cleanupFn() + + _, err := client.SetConfig(ctx, &pb.SetConfigRequest{Repository: testRepo, Entries: tc.entries}) + require.NoError(t, err) + + actualConfigBytes := testhelper.MustRunCommand(t, nil, "git", "-C", testRepoPath, "config", "--local", "-l") + scanner := bufio.NewScanner(bytes.NewReader(actualConfigBytes)) + + var actualConfig []string + for scanner.Scan() { + actualConfig = append(actualConfig, scanner.Text()) + } + require.NoError(t, scanner.Err()) + + for _, entry := range tc.expected { + require.Contains(t, actualConfig, entry) + } + }) + } +} diff --git a/ruby/Gemfile b/ruby/Gemfile index 7ad977550..561a920f8 100644 --- a/ruby/Gemfile +++ b/ruby/Gemfile @@ -3,7 +3,7 @@ source 'https://rubygems.org' gem 'rugged', '~> 0.27.2' gem 'github-linguist', '~> 5.3.3', require: 'linguist' gem 'gitlab-markup', '~> 1.6.2' -gem 'gitaly-proto', '~> 0.104.0', require: 'gitaly' +gem 'gitaly-proto', '~> 0.105.0', require: 'gitaly' gem 'activesupport', '~> 5.0.2' gem 'rdoc', '~> 4.2' gem 'gitlab-gollum-lib', '~> 4.2', require: false diff --git a/ruby/Gemfile.lock b/ruby/Gemfile.lock index 2f1b0d6f7..5070bece6 100644 --- a/ruby/Gemfile.lock +++ b/ruby/Gemfile.lock @@ -17,7 +17,7 @@ GEM multipart-post (>= 1.2, < 3) gemojione (3.3.0) json - gitaly-proto (0.104.0) + gitaly-proto (0.105.0) google-protobuf (~> 3.1) grpc (~> 1.10) github-linguist (5.3.3) @@ -142,7 +142,7 @@ PLATFORMS DEPENDENCIES activesupport (~> 5.0.2) faraday (~> 0.12) - gitaly-proto (~> 0.104.0) + gitaly-proto (~> 0.105.0) github-linguist (~> 5.3.3) gitlab-gollum-lib (~> 4.2) gitlab-gollum-rugged_adapter (~> 0.4.4) diff --git a/ruby/lib/gitaly_server/repository_service.rb b/ruby/lib/gitaly_server/repository_service.rb index ec913c363..6a5a62882 100644 --- a/ruby/lib/gitaly_server/repository_service.rb +++ b/ruby/lib/gitaly_server/repository_service.rb @@ -106,6 +106,30 @@ module GitalyServer end end + def set_config(request, call) + bridge_exceptions do + repo = Gitlab::Git::Repository.from_gitaly(request.repository, call) + + request.entries.each do |entry| + key = entry.key + value = case entry.value + when :value_str + entry.value_str + when :value_int32 + entry.value_int32 + when :value_bool + entry.value_bool + else + raise GRPC::InvalidArgument, "unknown entry type: #{entry.value}" + end + + repo.rugged.config[key] = value + end + + Gitaly::SetConfigResponse.new + end + end + def find_license(request, call) bridge_exceptions do repo = Gitlab::Git::Repository.from_gitaly(request.repository, call) diff --git a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/VERSION b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/VERSION index e49057b33..f1b9cc4cd 100644 --- a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/VERSION +++ b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/VERSION @@ -1 +1 @@ -0.104.0 +0.105.0 diff --git a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/blob.pb.go b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/blob.pb.go index 4a5e801a7..7a2527124 100644 --- a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/blob.pb.go +++ b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/blob.pb.go @@ -216,6 +216,10 @@ It has these top-level messages: CreateBundleResponse WriteConfigRequest WriteConfigResponse + SetConfigRequest + SetConfigResponse + DeleteConfigRequest + DeleteConfigResponse RestoreCustomHooksRequest RestoreCustomHooksResponse BackupCustomHooksRequest diff --git a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/repository-service.pb.go b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/repository-service.pb.go index 5231a9901..4ef426a7b 100644 --- a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/repository-service.pb.go +++ b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/repository-service.pb.go @@ -81,7 +81,7 @@ func (x GetRawChangesResponse_RawChange_Operation) String() string { return proto.EnumName(GetRawChangesResponse_RawChange_Operation_name, int32(x)) } func (GetRawChangesResponse_RawChange_Operation) EnumDescriptor() ([]byte, []int) { - return fileDescriptor10, []int{59, 0, 0} + return fileDescriptor10, []int{63, 0, 0} } type RepositoryExistsRequest struct { @@ -908,6 +908,218 @@ func (m *WriteConfigResponse) GetError() []byte { return nil } +type SetConfigRequest struct { + Repository *Repository `protobuf:"bytes,1,opt,name=repository" json:"repository,omitempty"` + Entries []*SetConfigRequest_Entry `protobuf:"bytes,2,rep,name=entries" json:"entries,omitempty"` +} + +func (m *SetConfigRequest) Reset() { *m = SetConfigRequest{} } +func (m *SetConfigRequest) String() string { return proto.CompactTextString(m) } +func (*SetConfigRequest) ProtoMessage() {} +func (*SetConfigRequest) Descriptor() ([]byte, []int) { return fileDescriptor10, []int{42} } + +func (m *SetConfigRequest) GetRepository() *Repository { + if m != nil { + return m.Repository + } + return nil +} + +func (m *SetConfigRequest) GetEntries() []*SetConfigRequest_Entry { + if m != nil { + return m.Entries + } + return nil +} + +type SetConfigRequest_Entry struct { + Key string `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"` + // Types that are valid to be assigned to Value: + // *SetConfigRequest_Entry_ValueStr + // *SetConfigRequest_Entry_ValueInt32 + // *SetConfigRequest_Entry_ValueBool + Value isSetConfigRequest_Entry_Value `protobuf_oneof:"value"` +} + +func (m *SetConfigRequest_Entry) Reset() { *m = SetConfigRequest_Entry{} } +func (m *SetConfigRequest_Entry) String() string { return proto.CompactTextString(m) } +func (*SetConfigRequest_Entry) ProtoMessage() {} +func (*SetConfigRequest_Entry) Descriptor() ([]byte, []int) { return fileDescriptor10, []int{42, 0} } + +type isSetConfigRequest_Entry_Value interface{ isSetConfigRequest_Entry_Value() } + +type SetConfigRequest_Entry_ValueStr struct { + ValueStr string `protobuf:"bytes,2,opt,name=value_str,json=valueStr,oneof"` +} +type SetConfigRequest_Entry_ValueInt32 struct { + ValueInt32 int32 `protobuf:"varint,3,opt,name=value_int32,json=valueInt32,oneof"` +} +type SetConfigRequest_Entry_ValueBool struct { + ValueBool bool `protobuf:"varint,4,opt,name=value_bool,json=valueBool,oneof"` +} + +func (*SetConfigRequest_Entry_ValueStr) isSetConfigRequest_Entry_Value() {} +func (*SetConfigRequest_Entry_ValueInt32) isSetConfigRequest_Entry_Value() {} +func (*SetConfigRequest_Entry_ValueBool) isSetConfigRequest_Entry_Value() {} + +func (m *SetConfigRequest_Entry) GetValue() isSetConfigRequest_Entry_Value { + if m != nil { + return m.Value + } + return nil +} + +func (m *SetConfigRequest_Entry) GetKey() string { + if m != nil { + return m.Key + } + return "" +} + +func (m *SetConfigRequest_Entry) GetValueStr() string { + if x, ok := m.GetValue().(*SetConfigRequest_Entry_ValueStr); ok { + return x.ValueStr + } + return "" +} + +func (m *SetConfigRequest_Entry) GetValueInt32() int32 { + if x, ok := m.GetValue().(*SetConfigRequest_Entry_ValueInt32); ok { + return x.ValueInt32 + } + return 0 +} + +func (m *SetConfigRequest_Entry) GetValueBool() bool { + if x, ok := m.GetValue().(*SetConfigRequest_Entry_ValueBool); ok { + return x.ValueBool + } + return false +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*SetConfigRequest_Entry) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _SetConfigRequest_Entry_OneofMarshaler, _SetConfigRequest_Entry_OneofUnmarshaler, _SetConfigRequest_Entry_OneofSizer, []interface{}{ + (*SetConfigRequest_Entry_ValueStr)(nil), + (*SetConfigRequest_Entry_ValueInt32)(nil), + (*SetConfigRequest_Entry_ValueBool)(nil), + } +} + +func _SetConfigRequest_Entry_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*SetConfigRequest_Entry) + // value + switch x := m.Value.(type) { + case *SetConfigRequest_Entry_ValueStr: + b.EncodeVarint(2<<3 | proto.WireBytes) + b.EncodeStringBytes(x.ValueStr) + case *SetConfigRequest_Entry_ValueInt32: + b.EncodeVarint(3<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.ValueInt32)) + case *SetConfigRequest_Entry_ValueBool: + t := uint64(0) + if x.ValueBool { + t = 1 + } + b.EncodeVarint(4<<3 | proto.WireVarint) + b.EncodeVarint(t) + case nil: + default: + return fmt.Errorf("SetConfigRequest_Entry.Value has unexpected type %T", x) + } + return nil +} + +func _SetConfigRequest_Entry_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*SetConfigRequest_Entry) + switch tag { + case 2: // value.value_str + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Value = &SetConfigRequest_Entry_ValueStr{x} + return true, err + case 3: // value.value_int32 + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Value = &SetConfigRequest_Entry_ValueInt32{int32(x)} + return true, err + case 4: // value.value_bool + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Value = &SetConfigRequest_Entry_ValueBool{x != 0} + return true, err + default: + return false, nil + } +} + +func _SetConfigRequest_Entry_OneofSizer(msg proto.Message) (n int) { + m := msg.(*SetConfigRequest_Entry) + // value + switch x := m.Value.(type) { + case *SetConfigRequest_Entry_ValueStr: + n += proto.SizeVarint(2<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(len(x.ValueStr))) + n += len(x.ValueStr) + case *SetConfigRequest_Entry_ValueInt32: + n += proto.SizeVarint(3<<3 | proto.WireVarint) + n += proto.SizeVarint(uint64(x.ValueInt32)) + case *SetConfigRequest_Entry_ValueBool: + n += proto.SizeVarint(4<<3 | proto.WireVarint) + n += 1 + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +type SetConfigResponse struct { +} + +func (m *SetConfigResponse) Reset() { *m = SetConfigResponse{} } +func (m *SetConfigResponse) String() string { return proto.CompactTextString(m) } +func (*SetConfigResponse) ProtoMessage() {} +func (*SetConfigResponse) Descriptor() ([]byte, []int) { return fileDescriptor10, []int{43} } + +type DeleteConfigRequest struct { + Repository *Repository `protobuf:"bytes,1,opt,name=repository" json:"repository,omitempty"` + Keys []string `protobuf:"bytes,2,rep,name=keys" json:"keys,omitempty"` +} + +func (m *DeleteConfigRequest) Reset() { *m = DeleteConfigRequest{} } +func (m *DeleteConfigRequest) String() string { return proto.CompactTextString(m) } +func (*DeleteConfigRequest) ProtoMessage() {} +func (*DeleteConfigRequest) Descriptor() ([]byte, []int) { return fileDescriptor10, []int{44} } + +func (m *DeleteConfigRequest) GetRepository() *Repository { + if m != nil { + return m.Repository + } + return nil +} + +func (m *DeleteConfigRequest) GetKeys() []string { + if m != nil { + return m.Keys + } + return nil +} + +type DeleteConfigResponse struct { +} + +func (m *DeleteConfigResponse) Reset() { *m = DeleteConfigResponse{} } +func (m *DeleteConfigResponse) String() string { return proto.CompactTextString(m) } +func (*DeleteConfigResponse) ProtoMessage() {} +func (*DeleteConfigResponse) Descriptor() ([]byte, []int) { return fileDescriptor10, []int{45} } + type RestoreCustomHooksRequest struct { Repository *Repository `protobuf:"bytes,1,opt,name=repository" json:"repository,omitempty"` Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` @@ -916,7 +1128,7 @@ type RestoreCustomHooksRequest struct { func (m *RestoreCustomHooksRequest) Reset() { *m = RestoreCustomHooksRequest{} } func (m *RestoreCustomHooksRequest) String() string { return proto.CompactTextString(m) } func (*RestoreCustomHooksRequest) ProtoMessage() {} -func (*RestoreCustomHooksRequest) Descriptor() ([]byte, []int) { return fileDescriptor10, []int{42} } +func (*RestoreCustomHooksRequest) Descriptor() ([]byte, []int) { return fileDescriptor10, []int{46} } func (m *RestoreCustomHooksRequest) GetRepository() *Repository { if m != nil { @@ -938,7 +1150,7 @@ type RestoreCustomHooksResponse struct { func (m *RestoreCustomHooksResponse) Reset() { *m = RestoreCustomHooksResponse{} } func (m *RestoreCustomHooksResponse) String() string { return proto.CompactTextString(m) } func (*RestoreCustomHooksResponse) ProtoMessage() {} -func (*RestoreCustomHooksResponse) Descriptor() ([]byte, []int) { return fileDescriptor10, []int{43} } +func (*RestoreCustomHooksResponse) Descriptor() ([]byte, []int) { return fileDescriptor10, []int{47} } type BackupCustomHooksRequest struct { Repository *Repository `protobuf:"bytes,1,opt,name=repository" json:"repository,omitempty"` @@ -947,7 +1159,7 @@ type BackupCustomHooksRequest struct { func (m *BackupCustomHooksRequest) Reset() { *m = BackupCustomHooksRequest{} } func (m *BackupCustomHooksRequest) String() string { return proto.CompactTextString(m) } func (*BackupCustomHooksRequest) ProtoMessage() {} -func (*BackupCustomHooksRequest) Descriptor() ([]byte, []int) { return fileDescriptor10, []int{44} } +func (*BackupCustomHooksRequest) Descriptor() ([]byte, []int) { return fileDescriptor10, []int{48} } func (m *BackupCustomHooksRequest) GetRepository() *Repository { if m != nil { @@ -963,7 +1175,7 @@ type BackupCustomHooksResponse struct { func (m *BackupCustomHooksResponse) Reset() { *m = BackupCustomHooksResponse{} } func (m *BackupCustomHooksResponse) String() string { return proto.CompactTextString(m) } func (*BackupCustomHooksResponse) ProtoMessage() {} -func (*BackupCustomHooksResponse) Descriptor() ([]byte, []int) { return fileDescriptor10, []int{45} } +func (*BackupCustomHooksResponse) Descriptor() ([]byte, []int) { return fileDescriptor10, []int{49} } func (m *BackupCustomHooksResponse) GetData() []byte { if m != nil { @@ -982,7 +1194,7 @@ func (m *CreateRepositoryFromBundleRequest) Reset() { *m = CreateReposit func (m *CreateRepositoryFromBundleRequest) String() string { return proto.CompactTextString(m) } func (*CreateRepositoryFromBundleRequest) ProtoMessage() {} func (*CreateRepositoryFromBundleRequest) Descriptor() ([]byte, []int) { - return fileDescriptor10, []int{46} + return fileDescriptor10, []int{50} } func (m *CreateRepositoryFromBundleRequest) GetRepository() *Repository { @@ -1006,7 +1218,7 @@ func (m *CreateRepositoryFromBundleResponse) Reset() { *m = CreateReposi func (m *CreateRepositoryFromBundleResponse) String() string { return proto.CompactTextString(m) } func (*CreateRepositoryFromBundleResponse) ProtoMessage() {} func (*CreateRepositoryFromBundleResponse) Descriptor() ([]byte, []int) { - return fileDescriptor10, []int{47} + return fileDescriptor10, []int{51} } type FindLicenseRequest struct { @@ -1016,7 +1228,7 @@ type FindLicenseRequest struct { func (m *FindLicenseRequest) Reset() { *m = FindLicenseRequest{} } func (m *FindLicenseRequest) String() string { return proto.CompactTextString(m) } func (*FindLicenseRequest) ProtoMessage() {} -func (*FindLicenseRequest) Descriptor() ([]byte, []int) { return fileDescriptor10, []int{48} } +func (*FindLicenseRequest) Descriptor() ([]byte, []int) { return fileDescriptor10, []int{52} } func (m *FindLicenseRequest) GetRepository() *Repository { if m != nil { @@ -1032,7 +1244,7 @@ type FindLicenseResponse struct { func (m *FindLicenseResponse) Reset() { *m = FindLicenseResponse{} } func (m *FindLicenseResponse) String() string { return proto.CompactTextString(m) } func (*FindLicenseResponse) ProtoMessage() {} -func (*FindLicenseResponse) Descriptor() ([]byte, []int) { return fileDescriptor10, []int{49} } +func (*FindLicenseResponse) Descriptor() ([]byte, []int) { return fileDescriptor10, []int{53} } func (m *FindLicenseResponse) GetLicenseShortName() string { if m != nil { @@ -1048,7 +1260,7 @@ type GetInfoAttributesRequest struct { func (m *GetInfoAttributesRequest) Reset() { *m = GetInfoAttributesRequest{} } func (m *GetInfoAttributesRequest) String() string { return proto.CompactTextString(m) } func (*GetInfoAttributesRequest) ProtoMessage() {} -func (*GetInfoAttributesRequest) Descriptor() ([]byte, []int) { return fileDescriptor10, []int{50} } +func (*GetInfoAttributesRequest) Descriptor() ([]byte, []int) { return fileDescriptor10, []int{54} } func (m *GetInfoAttributesRequest) GetRepository() *Repository { if m != nil { @@ -1064,7 +1276,7 @@ type GetInfoAttributesResponse struct { func (m *GetInfoAttributesResponse) Reset() { *m = GetInfoAttributesResponse{} } func (m *GetInfoAttributesResponse) String() string { return proto.CompactTextString(m) } func (*GetInfoAttributesResponse) ProtoMessage() {} -func (*GetInfoAttributesResponse) Descriptor() ([]byte, []int) { return fileDescriptor10, []int{51} } +func (*GetInfoAttributesResponse) Descriptor() ([]byte, []int) { return fileDescriptor10, []int{55} } func (m *GetInfoAttributesResponse) GetAttributes() []byte { if m != nil { @@ -1080,7 +1292,7 @@ type CalculateChecksumRequest struct { func (m *CalculateChecksumRequest) Reset() { *m = CalculateChecksumRequest{} } func (m *CalculateChecksumRequest) String() string { return proto.CompactTextString(m) } func (*CalculateChecksumRequest) ProtoMessage() {} -func (*CalculateChecksumRequest) Descriptor() ([]byte, []int) { return fileDescriptor10, []int{52} } +func (*CalculateChecksumRequest) Descriptor() ([]byte, []int) { return fileDescriptor10, []int{56} } func (m *CalculateChecksumRequest) GetRepository() *Repository { if m != nil { @@ -1096,7 +1308,7 @@ type CalculateChecksumResponse struct { func (m *CalculateChecksumResponse) Reset() { *m = CalculateChecksumResponse{} } func (m *CalculateChecksumResponse) String() string { return proto.CompactTextString(m) } func (*CalculateChecksumResponse) ProtoMessage() {} -func (*CalculateChecksumResponse) Descriptor() ([]byte, []int) { return fileDescriptor10, []int{53} } +func (*CalculateChecksumResponse) Descriptor() ([]byte, []int) { return fileDescriptor10, []int{57} } func (m *CalculateChecksumResponse) GetChecksum() string { if m != nil { @@ -1112,7 +1324,7 @@ type GetSnapshotRequest struct { func (m *GetSnapshotRequest) Reset() { *m = GetSnapshotRequest{} } func (m *GetSnapshotRequest) String() string { return proto.CompactTextString(m) } func (*GetSnapshotRequest) ProtoMessage() {} -func (*GetSnapshotRequest) Descriptor() ([]byte, []int) { return fileDescriptor10, []int{54} } +func (*GetSnapshotRequest) Descriptor() ([]byte, []int) { return fileDescriptor10, []int{58} } func (m *GetSnapshotRequest) GetRepository() *Repository { if m != nil { @@ -1128,7 +1340,7 @@ type GetSnapshotResponse struct { func (m *GetSnapshotResponse) Reset() { *m = GetSnapshotResponse{} } func (m *GetSnapshotResponse) String() string { return proto.CompactTextString(m) } func (*GetSnapshotResponse) ProtoMessage() {} -func (*GetSnapshotResponse) Descriptor() ([]byte, []int) { return fileDescriptor10, []int{55} } +func (*GetSnapshotResponse) Descriptor() ([]byte, []int) { return fileDescriptor10, []int{59} } func (m *GetSnapshotResponse) GetData() []byte { if m != nil { @@ -1147,7 +1359,7 @@ func (m *CreateRepositoryFromSnapshotRequest) Reset() { *m = CreateRepos func (m *CreateRepositoryFromSnapshotRequest) String() string { return proto.CompactTextString(m) } func (*CreateRepositoryFromSnapshotRequest) ProtoMessage() {} func (*CreateRepositoryFromSnapshotRequest) Descriptor() ([]byte, []int) { - return fileDescriptor10, []int{56} + return fileDescriptor10, []int{60} } func (m *CreateRepositoryFromSnapshotRequest) GetRepository() *Repository { @@ -1178,7 +1390,7 @@ func (m *CreateRepositoryFromSnapshotResponse) Reset() { *m = CreateRepo func (m *CreateRepositoryFromSnapshotResponse) String() string { return proto.CompactTextString(m) } func (*CreateRepositoryFromSnapshotResponse) ProtoMessage() {} func (*CreateRepositoryFromSnapshotResponse) Descriptor() ([]byte, []int) { - return fileDescriptor10, []int{57} + return fileDescriptor10, []int{61} } type GetRawChangesRequest struct { @@ -1190,7 +1402,7 @@ type GetRawChangesRequest struct { func (m *GetRawChangesRequest) Reset() { *m = GetRawChangesRequest{} } func (m *GetRawChangesRequest) String() string { return proto.CompactTextString(m) } func (*GetRawChangesRequest) ProtoMessage() {} -func (*GetRawChangesRequest) Descriptor() ([]byte, []int) { return fileDescriptor10, []int{58} } +func (*GetRawChangesRequest) Descriptor() ([]byte, []int) { return fileDescriptor10, []int{62} } func (m *GetRawChangesRequest) GetRepository() *Repository { if m != nil { @@ -1220,7 +1432,7 @@ type GetRawChangesResponse struct { func (m *GetRawChangesResponse) Reset() { *m = GetRawChangesResponse{} } func (m *GetRawChangesResponse) String() string { return proto.CompactTextString(m) } func (*GetRawChangesResponse) ProtoMessage() {} -func (*GetRawChangesResponse) Descriptor() ([]byte, []int) { return fileDescriptor10, []int{59} } +func (*GetRawChangesResponse) Descriptor() ([]byte, []int) { return fileDescriptor10, []int{63} } func (m *GetRawChangesResponse) GetRawChanges() []*GetRawChangesResponse_RawChange { if m != nil { @@ -1242,7 +1454,7 @@ func (m *GetRawChangesResponse_RawChange) Reset() { *m = GetRawChangesRe func (m *GetRawChangesResponse_RawChange) String() string { return proto.CompactTextString(m) } func (*GetRawChangesResponse_RawChange) ProtoMessage() {} func (*GetRawChangesResponse_RawChange) Descriptor() ([]byte, []int) { - return fileDescriptor10, []int{59, 0} + return fileDescriptor10, []int{63, 0} } func (m *GetRawChangesResponse_RawChange) GetBlobId() string { @@ -1296,7 +1508,7 @@ type SearchFilesByNameRequest struct { func (m *SearchFilesByNameRequest) Reset() { *m = SearchFilesByNameRequest{} } func (m *SearchFilesByNameRequest) String() string { return proto.CompactTextString(m) } func (*SearchFilesByNameRequest) ProtoMessage() {} -func (*SearchFilesByNameRequest) Descriptor() ([]byte, []int) { return fileDescriptor10, []int{60} } +func (*SearchFilesByNameRequest) Descriptor() ([]byte, []int) { return fileDescriptor10, []int{64} } func (m *SearchFilesByNameRequest) GetRepository() *Repository { if m != nil { @@ -1326,7 +1538,7 @@ type SearchFilesByNameResponse struct { func (m *SearchFilesByNameResponse) Reset() { *m = SearchFilesByNameResponse{} } func (m *SearchFilesByNameResponse) String() string { return proto.CompactTextString(m) } func (*SearchFilesByNameResponse) ProtoMessage() {} -func (*SearchFilesByNameResponse) Descriptor() ([]byte, []int) { return fileDescriptor10, []int{61} } +func (*SearchFilesByNameResponse) Descriptor() ([]byte, []int) { return fileDescriptor10, []int{65} } func (m *SearchFilesByNameResponse) GetFiles() [][]byte { if m != nil { @@ -1344,7 +1556,7 @@ type SearchFilesByContentRequest struct { func (m *SearchFilesByContentRequest) Reset() { *m = SearchFilesByContentRequest{} } func (m *SearchFilesByContentRequest) String() string { return proto.CompactTextString(m) } func (*SearchFilesByContentRequest) ProtoMessage() {} -func (*SearchFilesByContentRequest) Descriptor() ([]byte, []int) { return fileDescriptor10, []int{62} } +func (*SearchFilesByContentRequest) Descriptor() ([]byte, []int) { return fileDescriptor10, []int{66} } func (m *SearchFilesByContentRequest) GetRepository() *Repository { if m != nil { @@ -1374,7 +1586,7 @@ type SearchFilesByContentResponse struct { func (m *SearchFilesByContentResponse) Reset() { *m = SearchFilesByContentResponse{} } func (m *SearchFilesByContentResponse) String() string { return proto.CompactTextString(m) } func (*SearchFilesByContentResponse) ProtoMessage() {} -func (*SearchFilesByContentResponse) Descriptor() ([]byte, []int) { return fileDescriptor10, []int{63} } +func (*SearchFilesByContentResponse) Descriptor() ([]byte, []int) { return fileDescriptor10, []int{67} } func (m *SearchFilesByContentResponse) GetMatches() [][]byte { if m != nil { @@ -1426,6 +1638,11 @@ func init() { proto.RegisterType((*CreateBundleResponse)(nil), "gitaly.CreateBundleResponse") proto.RegisterType((*WriteConfigRequest)(nil), "gitaly.WriteConfigRequest") proto.RegisterType((*WriteConfigResponse)(nil), "gitaly.WriteConfigResponse") + proto.RegisterType((*SetConfigRequest)(nil), "gitaly.SetConfigRequest") + proto.RegisterType((*SetConfigRequest_Entry)(nil), "gitaly.SetConfigRequest.Entry") + proto.RegisterType((*SetConfigResponse)(nil), "gitaly.SetConfigResponse") + proto.RegisterType((*DeleteConfigRequest)(nil), "gitaly.DeleteConfigRequest") + proto.RegisterType((*DeleteConfigResponse)(nil), "gitaly.DeleteConfigResponse") proto.RegisterType((*RestoreCustomHooksRequest)(nil), "gitaly.RestoreCustomHooksRequest") proto.RegisterType((*RestoreCustomHooksResponse)(nil), "gitaly.RestoreCustomHooksResponse") proto.RegisterType((*BackupCustomHooksRequest)(nil), "gitaly.BackupCustomHooksRequest") @@ -1485,6 +1702,8 @@ type RepositoryServiceClient interface { CreateBundle(ctx context.Context, in *CreateBundleRequest, opts ...grpc.CallOption) (RepositoryService_CreateBundleClient, error) CreateRepositoryFromBundle(ctx context.Context, opts ...grpc.CallOption) (RepositoryService_CreateRepositoryFromBundleClient, error) WriteConfig(ctx context.Context, in *WriteConfigRequest, opts ...grpc.CallOption) (*WriteConfigResponse, error) + SetConfig(ctx context.Context, in *SetConfigRequest, opts ...grpc.CallOption) (*SetConfigResponse, error) + DeleteConfig(ctx context.Context, in *DeleteConfigRequest, opts ...grpc.CallOption) (*DeleteConfigResponse, error) FindLicense(ctx context.Context, in *FindLicenseRequest, opts ...grpc.CallOption) (*FindLicenseResponse, error) GetInfoAttributes(ctx context.Context, in *GetInfoAttributesRequest, opts ...grpc.CallOption) (RepositoryService_GetInfoAttributesClient, error) CalculateChecksum(ctx context.Context, in *CalculateChecksumRequest, opts ...grpc.CallOption) (*CalculateChecksumResponse, error) @@ -1766,6 +1985,24 @@ func (c *repositoryServiceClient) WriteConfig(ctx context.Context, in *WriteConf return out, nil } +func (c *repositoryServiceClient) SetConfig(ctx context.Context, in *SetConfigRequest, opts ...grpc.CallOption) (*SetConfigResponse, error) { + out := new(SetConfigResponse) + err := grpc.Invoke(ctx, "/gitaly.RepositoryService/SetConfig", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *repositoryServiceClient) DeleteConfig(ctx context.Context, in *DeleteConfigRequest, opts ...grpc.CallOption) (*DeleteConfigResponse, error) { + out := new(DeleteConfigResponse) + err := grpc.Invoke(ctx, "/gitaly.RepositoryService/DeleteConfig", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *repositoryServiceClient) FindLicense(ctx context.Context, in *FindLicenseRequest, opts ...grpc.CallOption) (*FindLicenseResponse, error) { out := new(FindLicenseResponse) err := grpc.Invoke(ctx, "/gitaly.RepositoryService/FindLicense", in, out, c.cc, opts...) @@ -2052,6 +2289,8 @@ type RepositoryServiceServer interface { CreateBundle(*CreateBundleRequest, RepositoryService_CreateBundleServer) error CreateRepositoryFromBundle(RepositoryService_CreateRepositoryFromBundleServer) error WriteConfig(context.Context, *WriteConfigRequest) (*WriteConfigResponse, error) + SetConfig(context.Context, *SetConfigRequest) (*SetConfigResponse, error) + DeleteConfig(context.Context, *DeleteConfigRequest) (*DeleteConfigResponse, error) FindLicense(context.Context, *FindLicenseRequest) (*FindLicenseResponse, error) GetInfoAttributes(*GetInfoAttributesRequest, RepositoryService_GetInfoAttributesServer) error CalculateChecksum(context.Context, *CalculateChecksumRequest) (*CalculateChecksumResponse, error) @@ -2461,6 +2700,42 @@ func _RepositoryService_WriteConfig_Handler(srv interface{}, ctx context.Context return interceptor(ctx, in, info, handler) } +func _RepositoryService_SetConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetConfigRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RepositoryServiceServer).SetConfig(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/gitaly.RepositoryService/SetConfig", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RepositoryServiceServer).SetConfig(ctx, req.(*SetConfigRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _RepositoryService_DeleteConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteConfigRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RepositoryServiceServer).DeleteConfig(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/gitaly.RepositoryService/DeleteConfig", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RepositoryServiceServer).DeleteConfig(ctx, req.(*DeleteConfigRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _RepositoryService_FindLicense_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(FindLicenseRequest) if err := dec(in); err != nil { @@ -2762,6 +3037,14 @@ var _RepositoryService_serviceDesc = grpc.ServiceDesc{ Handler: _RepositoryService_WriteConfig_Handler, }, { + MethodName: "SetConfig", + Handler: _RepositoryService_SetConfig_Handler, + }, + { + MethodName: "DeleteConfig", + Handler: _RepositoryService_DeleteConfig_Handler, + }, + { MethodName: "FindLicense", Handler: _RepositoryService_FindLicense_Handler, }, @@ -2836,141 +3119,152 @@ var _RepositoryService_serviceDesc = grpc.ServiceDesc{ func init() { proto.RegisterFile("repository-service.proto", fileDescriptor10) } var fileDescriptor10 = []byte{ - // 2174 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0xef, 0x72, 0xdb, 0xb8, - 0x11, 0xb7, 0x2c, 0xff, 0xd3, 0x4a, 0xc9, 0xc9, 0xb0, 0x9d, 0xd0, 0x8c, 0x93, 0x38, 0x4c, 0xe6, - 0xce, 0x77, 0x49, 0xdd, 0x3b, 0xe7, 0x43, 0x6f, 0xa6, 0xed, 0xdc, 0xd8, 0xb2, 0x6c, 0xeb, 0x12, - 0x3b, 0x2e, 0x9d, 0x4c, 0xa6, 0x99, 0xbb, 0xd1, 0xd0, 0x14, 0x64, 0x72, 0x44, 0x11, 0x0a, 0x08, - 0xc6, 0xe7, 0xeb, 0xd7, 0x7e, 0xe8, 0xc7, 0xf6, 0x59, 0xfa, 0x06, 0x7d, 0x81, 0x7e, 0xe8, 0x03, - 0xf4, 0x01, 0xfa, 0x12, 0x1d, 0x80, 0x20, 0x41, 0x8a, 0xa4, 0x9a, 0x19, 0xa6, 0xed, 0x37, 0x61, - 0x01, 0xec, 0x2e, 0x76, 0x17, 0x4b, 0xfc, 0x7e, 0x36, 0x68, 0x14, 0x4f, 0x48, 0xe0, 0x32, 0x42, - 0x6f, 0x7e, 0x11, 0x60, 0xfa, 0xc1, 0xb5, 0xf1, 0xee, 0x84, 0x12, 0x46, 0xd0, 0xd2, 0x95, 0xcb, - 0x2c, 0xef, 0x46, 0x6f, 0x05, 0x8e, 0x45, 0xf1, 0x20, 0x92, 0x1a, 0xa7, 0x70, 0xd7, 0x4c, 0x76, - 0x74, 0x7f, 0x72, 0x03, 0x16, 0x98, 0xf8, 0x7d, 0x88, 0x03, 0x86, 0xf6, 0x00, 0x94, 0x32, 0xad, - 0xb6, 0x5d, 0xdb, 0x69, 0xee, 0xa1, 0xdd, 0x48, 0xcb, 0xae, 0xda, 0x64, 0xa6, 0x56, 0x19, 0x7b, - 0xa0, 0xe5, 0xd5, 0x05, 0x13, 0xe2, 0x07, 0x18, 0xdd, 0x81, 0x25, 0x2c, 0x24, 0x42, 0xd7, 0x8a, - 0x29, 0x47, 0xc6, 0x99, 0xd8, 0x63, 0xd9, 0xa3, 0x9e, 0x6f, 0x53, 0x3c, 0xc6, 0x3e, 0xb3, 0xbc, - 0x2a, 0x3e, 0xdc, 0x83, 0xcd, 0x02, 0x7d, 0x91, 0x13, 0x86, 0x07, 0xab, 0xd1, 0xe4, 0x51, 0xe8, - 0x55, 0xb1, 0x82, 0x1e, 0xc3, 0x2d, 0x9b, 0x62, 0x8b, 0xe1, 0xfe, 0xa5, 0xcb, 0xc6, 0xd6, 0x44, - 0x9b, 0x17, 0x87, 0x6a, 0x45, 0xc2, 0x03, 0x21, 0x33, 0xd6, 0x01, 0xa5, 0xad, 0x49, 0x1f, 0x26, - 0xb0, 0x71, 0x6c, 0xd1, 0x4b, 0xeb, 0x0a, 0x77, 0x88, 0xe7, 0x61, 0x9b, 0xfd, 0xd7, 0xfd, 0xd0, - 0xe0, 0xce, 0xb4, 0x45, 0xe9, 0xcb, 0x21, 0xdc, 0xee, 0x78, 0xd8, 0xf2, 0xc3, 0x49, 0x95, 0x90, - 0xaf, 0xc2, 0x67, 0x89, 0x16, 0xa9, 0xf8, 0x05, 0x6c, 0xa8, 0xc5, 0x17, 0xee, 0xcf, 0xb8, 0x8a, - 0xfe, 0x67, 0x70, 0x67, 0x5a, 0x99, 0x2c, 0x2a, 0x04, 0x0b, 0x81, 0xfb, 0x33, 0x16, 0x7a, 0xea, - 0xa6, 0xf8, 0x6d, 0x8c, 0x60, 0x73, 0x7f, 0x32, 0xf1, 0x6e, 0x8e, 0x5d, 0x66, 0x31, 0x46, 0xdd, - 0xcb, 0x90, 0xe1, 0x2a, 0x55, 0x8d, 0x74, 0x58, 0xa1, 0xf8, 0x83, 0x1b, 0xb8, 0xc4, 0x17, 0xe1, - 0x6d, 0x99, 0xc9, 0xd8, 0xd8, 0x02, 0xbd, 0xc8, 0x98, 0x8c, 0xc2, 0x1f, 0xe7, 0x01, 0x1d, 0x61, - 0x66, 0x3b, 0x26, 0x1e, 0x13, 0x56, 0x25, 0x06, 0xfc, 0xfa, 0x50, 0xa1, 0x44, 0xb8, 0xd0, 0x30, - 0xe5, 0x08, 0xad, 0xc3, 0xe2, 0x90, 0x50, 0x1b, 0x6b, 0x75, 0x91, 0xf8, 0x68, 0x80, 0xee, 0xc2, - 0xb2, 0x4f, 0xfa, 0xcc, 0xba, 0x0a, 0xb4, 0x85, 0xe8, 0xb6, 0xf9, 0xe4, 0xb5, 0x75, 0x15, 0x20, - 0x0d, 0x96, 0x99, 0x3b, 0xc6, 0x24, 0x64, 0xda, 0xe2, 0x76, 0x6d, 0x67, 0xd1, 0x8c, 0x87, 0x7c, - 0x4b, 0x10, 0x38, 0xfd, 0x11, 0xbe, 0xd1, 0x96, 0x22, 0x0b, 0x41, 0xe0, 0xbc, 0xc0, 0x37, 0xe8, - 0x21, 0x34, 0x47, 0x3e, 0xb9, 0xf6, 0xfb, 0x0e, 0xe1, 0xb7, 0x77, 0x59, 0x4c, 0x82, 0x10, 0x9d, - 0x70, 0x09, 0xda, 0x84, 0x15, 0x9f, 0xf4, 0x27, 0x34, 0xf4, 0xb1, 0xd6, 0x10, 0xd6, 0x96, 0x7d, - 0x72, 0xce, 0x87, 0xdf, 0x2f, 0xac, 0xac, 0xb4, 0x1b, 0xc6, 0x06, 0xac, 0x65, 0xa2, 0x20, 0xa3, - 0x73, 0x0a, 0x77, 0x3b, 0xa2, 0x4c, 0x53, 0x47, 0xae, 0x50, 0x25, 0x3a, 0x68, 0x79, 0x75, 0xd2, - 0xd4, 0xbf, 0x6a, 0xb0, 0x7a, 0x8c, 0xd9, 0x3e, 0xb5, 0x1d, 0xf7, 0x43, 0xa5, 0x3c, 0xdc, 0x83, - 0x86, 0x4d, 0xc6, 0x63, 0x97, 0xf5, 0xdd, 0x81, 0x4c, 0xc5, 0x4a, 0x24, 0xe8, 0x0d, 0x78, 0x92, - 0x26, 0x14, 0x0f, 0xdd, 0x9f, 0x44, 0x36, 0x1a, 0xa6, 0x1c, 0xa1, 0x6f, 0x61, 0x69, 0x48, 0xe8, - 0xd8, 0x62, 0x22, 0x1b, 0xb7, 0xf7, 0xb6, 0x63, 0x23, 0x39, 0x9f, 0x76, 0x8f, 0xc4, 0x3a, 0x53, - 0xae, 0x37, 0x9e, 0xc3, 0x52, 0x24, 0x41, 0xcb, 0x50, 0x7f, 0xd7, 0x3b, 0x6f, 0xcf, 0xf1, 0x1f, - 0xaf, 0xf7, 0xcd, 0x76, 0x0d, 0x01, 0x2c, 0xbd, 0xde, 0x37, 0xfb, 0xc7, 0xef, 0xda, 0xf3, 0xa8, - 0x09, 0xcb, 0xfc, 0xf7, 0xc1, 0xbb, 0xbd, 0x76, 0xdd, 0xd8, 0x01, 0x94, 0x56, 0xac, 0xee, 0xca, - 0xc0, 0x62, 0x96, 0x38, 0x67, 0xcb, 0x14, 0xbf, 0x79, 0x0a, 0x4e, 0xac, 0xe0, 0x25, 0xb1, 0x2d, - 0xef, 0x80, 0x5a, 0xbe, 0xed, 0x54, 0xba, 0x29, 0xc6, 0xd7, 0xa0, 0xe5, 0xd5, 0x49, 0xf3, 0xeb, - 0xb0, 0xf8, 0xc1, 0xf2, 0x42, 0x2c, 0xdb, 0x7f, 0x34, 0x30, 0xfe, 0x51, 0x03, 0x4d, 0xd4, 0xc6, - 0x05, 0x09, 0xa9, 0x8d, 0xa3, 0x5d, 0x55, 0xf2, 0xf3, 0x1d, 0xac, 0x06, 0x42, 0x55, 0x3f, 0xb5, - 0x75, 0xbe, 0x74, 0x6b, 0x3b, 0x5a, 0x6c, 0x66, 0x3a, 0xaa, 0x54, 0x70, 0x29, 0x9c, 0x11, 0xa9, - 0x6c, 0x99, 0xad, 0x20, 0xe5, 0x20, 0xba, 0x0f, 0xc0, 0x2c, 0x7a, 0x85, 0x59, 0x9f, 0xe2, 0xa1, - 0x48, 0x6a, 0xcb, 0x6c, 0x44, 0x12, 0x13, 0x0f, 0x8d, 0xe7, 0xb0, 0x59, 0x70, 0x28, 0xf5, 0x21, - 0xa4, 0x38, 0x08, 0x3d, 0x16, 0x7f, 0x08, 0xa3, 0x91, 0xb1, 0x0f, 0xcd, 0xa3, 0xc0, 0x1e, 0x55, - 0x89, 0xff, 0x13, 0x68, 0x45, 0x2a, 0x54, 0xcc, 0x31, 0xa5, 0x84, 0xca, 0x9c, 0x47, 0x03, 0xe3, - 0x6f, 0x35, 0xf8, 0xec, 0x2d, 0x75, 0xf9, 0x45, 0x19, 0x56, 0x09, 0x75, 0x1b, 0xea, 0xfc, 0xf4, - 0x51, 0x4b, 0xe4, 0x3f, 0x33, 0x9d, 0xb2, 0x9e, 0xed, 0x94, 0xe8, 0x11, 0xb4, 0x88, 0x37, 0xe8, - 0x27, 0xf3, 0x51, 0xd0, 0x9a, 0xc4, 0x1b, 0x98, 0xf1, 0x92, 0xa4, 0x97, 0x2d, 0xa6, 0x7b, 0xd9, - 0x3a, 0x2c, 0x06, 0x0e, 0xf6, 0x3c, 0xd1, 0x96, 0x56, 0xcc, 0x68, 0x60, 0xec, 0x40, 0x5b, 0x9d, - 0x61, 0xe6, 0x71, 0x1d, 0x58, 0x3f, 0x72, 0xfd, 0xc1, 0x29, 0xa6, 0x57, 0xf8, 0xc0, 0x0a, 0x2a, - 0xdd, 0xfe, 0x2d, 0x68, 0xc4, 0x07, 0x08, 0xb4, 0xf9, 0xed, 0x3a, 0x4f, 0x7b, 0x22, 0x30, 0x9e, - 0xc2, 0xc6, 0x94, 0x25, 0x75, 0xf5, 0x2e, 0xad, 0x20, 0x2a, 0xfd, 0x86, 0x29, 0x7e, 0x1b, 0x7f, - 0xaa, 0xc1, 0x6a, 0xd4, 0xaf, 0x8e, 0x08, 0x1d, 0xfd, 0x3f, 0x4b, 0x9e, 0xbf, 0x53, 0xd2, 0x9e, - 0x24, 0x6f, 0xa5, 0xcd, 0x5e, 0x60, 0x62, 0xee, 0x6c, 0xcf, 0x3f, 0xa7, 0xe4, 0x8a, 0xe2, 0x20, - 0xa8, 0xd8, 0x3a, 0xa9, 0x50, 0x97, 0x6a, 0x9d, 0x91, 0xa0, 0x37, 0x30, 0x7e, 0x0b, 0x7a, 0x91, - 0x35, 0x19, 0xc0, 0x87, 0xd0, 0x74, 0xfd, 0xfe, 0x44, 0x8a, 0xe5, 0xc5, 0x01, 0x37, 0x59, 0x18, - 0x39, 0x7b, 0xf1, 0x3e, 0xb4, 0x02, 0xe7, 0x93, 0x39, 0x1b, 0x08, 0x75, 0x29, 0x67, 0x23, 0x41, - 0xec, 0x6c, 0xde, 0xda, 0xc7, 0x3a, 0x3b, 0x84, 0x07, 0xd3, 0x5f, 0xaa, 0x23, 0x4a, 0xc6, 0x6f, - 0xcc, 0x97, 0x15, 0xaf, 0x63, 0x48, 0x3d, 0xe9, 0x2b, 0xff, 0x69, 0x3c, 0x82, 0x87, 0xa5, 0x76, - 0x64, 0x92, 0x7b, 0xb0, 0x16, 0x2d, 0x39, 0x08, 0xfd, 0x81, 0x57, 0xe9, 0x95, 0xf6, 0x15, 0xac, - 0x67, 0x55, 0xcd, 0xf8, 0xee, 0x60, 0x40, 0xe2, 0xf6, 0x76, 0x88, 0x3f, 0x74, 0xaf, 0x2a, 0xe6, - 0x69, 0x18, 0x7a, 0x5e, 0x7f, 0x62, 0x31, 0x27, 0xce, 0x13, 0x17, 0x9c, 0x5b, 0xcc, 0x31, 0x9e, - 0xc2, 0x5a, 0xc6, 0xcc, 0xcc, 0x3e, 0x61, 0x73, 0xe0, 0x10, 0x30, 0x42, 0x71, 0x27, 0x0c, 0x18, - 0x19, 0x9f, 0x10, 0x32, 0xaa, 0x54, 0x42, 0xf1, 0xc1, 0xe7, 0x53, 0x07, 0xdf, 0x02, 0xbd, 0xc8, - 0x88, 0xcc, 0xc6, 0x19, 0x68, 0x07, 0x96, 0x3d, 0x0a, 0x27, 0x9f, 0xc6, 0x03, 0xe3, 0x97, 0xb0, - 0x59, 0xa0, 0x6f, 0x46, 0x5e, 0x46, 0xf0, 0xa8, 0xa8, 0x62, 0x2a, 0x17, 0x47, 0x61, 0x2c, 0x9e, - 0x80, 0x31, 0xcb, 0x98, 0x8c, 0xc9, 0x09, 0x20, 0xde, 0x54, 0x5f, 0xba, 0x36, 0xf6, 0x2b, 0x35, - 0x6f, 0xa3, 0x03, 0x6b, 0x19, 0x4d, 0x32, 0x0e, 0xcf, 0x00, 0x79, 0x91, 0xa8, 0x1f, 0x38, 0x84, - 0xb2, 0xbe, 0x6f, 0x8d, 0xe3, 0x56, 0xdd, 0x96, 0x33, 0x17, 0x7c, 0xe2, 0xcc, 0x1a, 0x8b, 0x14, - 0x1d, 0x63, 0xd6, 0xf3, 0x87, 0x64, 0xff, 0x53, 0x80, 0x0b, 0xe3, 0xd7, 0xb0, 0x59, 0xa0, 0x4f, - 0xba, 0xf6, 0x00, 0x40, 0xa1, 0x0a, 0x99, 0xa8, 0x94, 0x84, 0x3b, 0xd3, 0xb1, 0x3c, 0x3b, 0xf4, - 0x2c, 0x86, 0x3b, 0x0e, 0xb6, 0x47, 0x41, 0x38, 0xae, 0xe2, 0xcc, 0xaf, 0x60, 0xb3, 0x40, 0x9f, - 0x74, 0x46, 0x87, 0x15, 0x5b, 0xca, 0x64, 0x74, 0x92, 0x31, 0x4f, 0xd2, 0x31, 0x66, 0x17, 0xbe, - 0x35, 0x09, 0x1c, 0x52, 0x05, 0xd0, 0x1a, 0x5f, 0xc2, 0x5a, 0x46, 0xd3, 0x8c, 0x62, 0xfd, 0x4b, - 0x0d, 0x1e, 0x17, 0x15, 0xd0, 0x27, 0x70, 0x83, 0x63, 0x1a, 0x87, 0xb1, 0x49, 0x5f, 0x75, 0xd4, - 0x65, 0x3e, 0x7e, 0x43, 0x3d, 0xde, 0x71, 0xc4, 0x94, 0x15, 0x32, 0x47, 0xbe, 0xf3, 0xc5, 0xda, - 0xfd, 0x90, 0x39, 0xc6, 0xe7, 0xf0, 0x64, 0xb6, 0x4b, 0xb2, 0xaa, 0xff, 0x5c, 0x83, 0xf5, 0x63, - 0xcc, 0x4c, 0xeb, 0xba, 0xe3, 0x58, 0xfe, 0x55, 0x35, 0x80, 0xfa, 0x18, 0x6e, 0x0d, 0x29, 0x19, - 0xf7, 0x33, 0x28, 0xb5, 0x61, 0xb6, 0xb8, 0x30, 0x79, 0x5c, 0x3d, 0x84, 0x26, 0x23, 0xfd, 0xcc, - 0xf3, 0xac, 0x61, 0x02, 0x23, 0xf1, 0x02, 0xe3, 0xaf, 0x75, 0xd8, 0x98, 0x72, 0x49, 0x06, 0xff, - 0x04, 0x9a, 0xd4, 0xba, 0xee, 0xdb, 0x91, 0x58, 0xab, 0x6d, 0xd7, 0x77, 0x9a, 0x7b, 0x5f, 0xa4, - 0x30, 0x4c, 0x7e, 0xcf, 0x6e, 0x22, 0x32, 0x81, 0x26, 0xb3, 0xfa, 0xdf, 0xe7, 0xa1, 0x91, 0xcc, - 0x70, 0xc8, 0x79, 0xe9, 0x91, 0x4b, 0xfe, 0x85, 0x8d, 0x0a, 0x6a, 0x89, 0x0f, 0x7b, 0x83, 0x04, - 0xd6, 0xcf, 0x2b, 0x58, 0x2f, 0x50, 0x26, 0xbe, 0x8e, 0xfa, 0x7c, 0xe4, 0xfc, 0xb2, 0x8f, 0xaf, - 0x79, 0x9b, 0xe7, 0x53, 0xfc, 0x69, 0x29, 0xa6, 0x16, 0xa2, 0x29, 0xe2, 0x0d, 0xc4, 0xd4, 0x2b, - 0x68, 0x90, 0x09, 0xa6, 0x16, 0xe3, 0x67, 0x5e, 0x14, 0xe0, 0xeb, 0x9b, 0x8f, 0x74, 0x7c, 0xf7, - 0x55, 0xbc, 0xd1, 0x54, 0x3a, 0x78, 0xac, 0x79, 0x2c, 0x94, 0xd2, 0x08, 0x2c, 0xb7, 0xa8, 0x75, - 0x9d, 0xac, 0x37, 0x5c, 0x68, 0x24, 0x03, 0x0e, 0xcd, 0xde, 0x9c, 0xbd, 0x38, 0x7b, 0xf5, 0xf6, - 0xac, 0x3d, 0x87, 0x1a, 0xb0, 0xb8, 0x7f, 0x78, 0xd8, 0x3d, 0x8c, 0xe0, 0x5b, 0xe7, 0xd5, 0x79, - 0xaf, 0x7b, 0x18, 0xc1, 0xb7, 0xc3, 0xee, 0xcb, 0xee, 0xeb, 0xee, 0x61, 0xbb, 0x8e, 0x5a, 0xb0, - 0x72, 0xfa, 0xea, 0xb0, 0x77, 0xc4, 0xa7, 0x16, 0xf8, 0x94, 0xd9, 0x3d, 0xdb, 0x3f, 0xed, 0x1e, - 0xb6, 0x17, 0x51, 0x1b, 0x5a, 0xaf, 0x7f, 0x7f, 0xde, 0xed, 0x77, 0x4e, 0xf6, 0xcf, 0x8e, 0xbb, - 0x87, 0xed, 0x25, 0xe3, 0x03, 0x68, 0x17, 0xd8, 0xa2, 0xb6, 0x73, 0xe4, 0x7a, 0x38, 0x38, 0xb8, - 0xe1, 0x4d, 0xaa, 0x4a, 0x2d, 0xad, 0xc3, 0xe2, 0xfb, 0x10, 0xcb, 0x07, 0x64, 0xc3, 0x8c, 0x06, - 0xf1, 0x53, 0xbf, 0x9e, 0x3c, 0xf5, 0x8d, 0x6f, 0x60, 0xb3, 0xc0, 0xae, 0xfa, 0xc0, 0x0e, 0xb9, - 0x58, 0x94, 0x4a, 0xcb, 0x8c, 0x06, 0xc6, 0x0d, 0xdc, 0xcb, 0x6c, 0xe9, 0x10, 0x9f, 0x61, 0x9f, - 0xfd, 0x2f, 0xbc, 0xfd, 0x16, 0xb6, 0x8a, 0x4d, 0x4b, 0x87, 0x35, 0x58, 0x1e, 0x5b, 0x8c, 0xe3, - 0x55, 0xe9, 0x72, 0x3c, 0xdc, 0xfb, 0xe7, 0x86, 0xa0, 0x0c, 0x63, 0xf2, 0x29, 0xe2, 0x54, 0xd1, - 0x5b, 0x68, 0x4f, 0x13, 0x9d, 0xe8, 0x61, 0xde, 0xd7, 0x0c, 0xa3, 0xaa, 0x6f, 0x97, 0x2f, 0x90, - 0x5d, 0x61, 0x0e, 0xbd, 0x8b, 0x09, 0xca, 0x14, 0x7b, 0x89, 0xd2, 0x1b, 0x0b, 0x89, 0x52, 0xfd, - 0xd1, 0x8c, 0x15, 0x89, 0xee, 0x2e, 0x80, 0xa2, 0x23, 0xd1, 0x66, 0x76, 0x4b, 0x8a, 0x10, 0xd5, - 0xf5, 0xa2, 0xa9, 0x44, 0xcd, 0xef, 0xe0, 0x76, 0x96, 0x4d, 0x44, 0xf7, 0x93, 0x1b, 0x55, 0xc4, - 0x6b, 0xea, 0x0f, 0xca, 0xa6, 0xd3, 0x2a, 0xb3, 0x04, 0x9f, 0x52, 0x59, 0xc8, 0x22, 0x2a, 0x95, - 0xc5, 0xbc, 0xa0, 0x31, 0x87, 0x7e, 0x04, 0x94, 0x27, 0xe6, 0x50, 0x12, 0xa7, 0x52, 0x86, 0x50, - 0x37, 0x66, 0x2d, 0x49, 0xd4, 0x9f, 0x40, 0x33, 0x45, 0x69, 0xa1, 0x24, 0x62, 0x79, 0xb6, 0x4f, - 0xbf, 0x57, 0x38, 0x97, 0x68, 0x7a, 0x0b, 0xed, 0xe9, 0x2f, 0x86, 0x2a, 0xa5, 0x12, 0x7e, 0x4c, - 0x95, 0x52, 0x29, 0xe3, 0x35, 0x87, 0x8e, 0x01, 0x14, 0x0b, 0xa4, 0xd2, 0x9d, 0xa3, 0x9c, 0x54, - 0xba, 0xf3, 0xa4, 0x91, 0x31, 0xf7, 0x75, 0x8d, 0x7b, 0x38, 0xcd, 0xea, 0x28, 0x0f, 0x4b, 0xe8, - 0x23, 0xe5, 0x61, 0x19, 0x21, 0x14, 0x15, 0x7b, 0x8e, 0x26, 0x51, 0xc5, 0x5e, 0x46, 0x0b, 0xa9, - 0x62, 0x2f, 0xe5, 0x58, 0x8c, 0x39, 0xf4, 0x1c, 0x16, 0x8e, 0x02, 0x7b, 0x84, 0xd6, 0x92, 0xc5, - 0x8a, 0x5b, 0xd1, 0xd7, 0xb3, 0xc2, 0x64, 0xd3, 0x77, 0xb0, 0x12, 0x93, 0x0a, 0xe8, 0x6e, 0xbc, - 0x66, 0x8a, 0x2a, 0xd1, 0xb5, 0xfc, 0x44, 0xa2, 0xe0, 0x0c, 0x6e, 0x65, 0x18, 0x00, 0xb4, 0x95, - 0x58, 0x2a, 0xa0, 0x20, 0xf4, 0xfb, 0x25, 0xb3, 0xe9, 0x2b, 0xab, 0x90, 0xb9, 0xca, 0x61, 0x8e, - 0x37, 0x50, 0x39, 0x2c, 0x00, 0xf2, 0xe2, 0x32, 0xe4, 0xc1, 0xb5, 0xba, 0x0c, 0xa5, 0x30, 0x5f, - 0x5d, 0x86, 0x72, 0x6c, 0x1e, 0xab, 0x9f, 0x86, 0xc3, 0x69, 0xf5, 0x25, 0xc0, 0x3c, 0xad, 0xbe, - 0x0c, 0x4d, 0x1b, 0x73, 0xc8, 0xcb, 0xf3, 0xc4, 0x12, 0xc6, 0xa2, 0xcf, 0xcb, 0xee, 0x41, 0x16, - 0x4f, 0xeb, 0x5f, 0xfc, 0xc7, 0x75, 0x89, 0xb5, 0x53, 0x68, 0xa5, 0x61, 0x2c, 0xba, 0x97, 0xdd, - 0x9a, 0x81, 0x42, 0xfa, 0x56, 0xf1, 0x64, 0xea, 0xf2, 0x5c, 0x83, 0x5e, 0x0e, 0x72, 0xd0, 0x97, - 0xb3, 0xfc, 0xca, 0x9a, 0xfa, 0xea, 0x63, 0x96, 0xc6, 0x86, 0x77, 0x6a, 0xbc, 0x43, 0xa5, 0xb0, - 0xaf, 0xea, 0x50, 0x79, 0xdc, 0xad, 0x3a, 0x54, 0x01, 0x58, 0x96, 0xbd, 0x4e, 0xe1, 0xa6, 0x54, - 0xaf, 0xcb, 0xc1, 0xb2, 0x54, 0xaf, 0xcb, 0x03, 0x2d, 0x63, 0x0e, 0xfd, 0x20, 0x58, 0xf8, 0x2c, - 0xd8, 0x41, 0x69, 0x32, 0xbc, 0x10, 0x57, 0xa9, 0x0b, 0x5f, 0x8a, 0x94, 0x44, 0xa8, 0xdf, 0xc1, - 0x6a, 0x0e, 0xbd, 0x28, 0xed, 0x65, 0x40, 0x49, 0x69, 0x2f, 0x85, 0x3e, 0xc6, 0x1c, 0xfa, 0x0d, - 0x2c, 0xcb, 0x3f, 0x71, 0xa1, 0x3b, 0xc9, 0xfa, 0xcc, 0x5f, 0xce, 0xf4, 0xbb, 0x39, 0x79, 0xb2, - 0xfb, 0x7b, 0x68, 0xa6, 0x40, 0x0d, 0x4a, 0x37, 0xdc, 0x29, 0xb0, 0xa2, 0x22, 0x58, 0x80, 0x82, - 0xc4, 0x29, 0xff, 0x00, 0x5b, 0xb3, 0x10, 0x06, 0x7a, 0x3a, 0xab, 0x4e, 0xa6, 0xad, 0x3d, 0xfb, - 0xb8, 0xc5, 0xc9, 0x41, 0xce, 0xe1, 0x56, 0xe6, 0xd5, 0xac, 0xfa, 0x5b, 0x11, 0x98, 0x51, 0xfd, - 0xad, 0xf0, 0xa9, 0x2d, 0x8e, 0x83, 0x61, 0xbd, 0xe8, 0x65, 0x86, 0x1e, 0xc7, 0x5b, 0x67, 0x3c, - 0x19, 0xf5, 0x27, 0xb3, 0x17, 0xa5, 0xcc, 0xfc, 0x00, 0xab, 0xb9, 0xe7, 0xaa, 0xaa, 0x8d, 0xb2, - 0x17, 0xb4, 0xaa, 0x8d, 0xd2, 0xb7, 0xae, 0xd0, 0xfe, 0x23, 0xa0, 0x3c, 0xab, 0x83, 0x52, 0x8f, - 0xb2, 0x12, 0x5a, 0x49, 0x35, 0xc0, 0x72, 0x52, 0x68, 0x47, 0x38, 0x9f, 0xa3, 0x71, 0x94, 0xf3, - 0x65, 0x8c, 0x91, 0x72, 0xbe, 0x94, 0x03, 0xe2, 0xce, 0x5f, 0x2e, 0x89, 0x7f, 0x05, 0x78, 0xfe, - 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0x4a, 0x33, 0x66, 0x84, 0x3c, 0x20, 0x00, 0x00, + // 2344 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x51, 0x73, 0xdb, 0xb8, + 0x11, 0x96, 0x6c, 0xcb, 0xb2, 0x56, 0xca, 0x9d, 0x0c, 0x2b, 0xb6, 0xc4, 0x38, 0x71, 0xc2, 0x64, + 0xee, 0x7c, 0x97, 0xd4, 0xbd, 0x73, 0x1e, 0x9a, 0x99, 0xb6, 0x73, 0x63, 0x4b, 0xb2, 0xad, 0x4b, + 0xec, 0xb8, 0x74, 0x32, 0x99, 0x66, 0x2e, 0xa3, 0xa1, 0x29, 0xc8, 0xe4, 0x88, 0x22, 0x14, 0x10, + 0x8a, 0xcf, 0xd7, 0xd7, 0x76, 0xe6, 0x1e, 0xdb, 0xdf, 0xd2, 0x7f, 0xd0, 0x3f, 0xd0, 0x87, 0xfe, + 0x8c, 0xbe, 0xf4, 0x27, 0x74, 0x00, 0x50, 0x04, 0x29, 0x92, 0x6a, 0x66, 0x98, 0xb6, 0x6f, 0xc4, + 0x62, 0xb1, 0xbb, 0xd8, 0x5d, 0x2c, 0xb0, 0x9f, 0x04, 0x4d, 0x8a, 0x27, 0xc4, 0x77, 0x18, 0xa1, + 0x37, 0xbf, 0xf0, 0x31, 0xfd, 0xe0, 0x58, 0x78, 0x6f, 0x42, 0x09, 0x23, 0x68, 0xf5, 0xca, 0x61, + 0xa6, 0x7b, 0xa3, 0xd5, 0x7c, 0xdb, 0xa4, 0x78, 0x20, 0xa9, 0xfa, 0x29, 0x6c, 0x19, 0xe1, 0x8a, + 0xee, 0x8f, 0x8e, 0xcf, 0x7c, 0x03, 0xbf, 0x9f, 0x62, 0x9f, 0xa1, 0x7d, 0x00, 0x25, 0xac, 0x59, + 0xbc, 0x5f, 0xdc, 0xad, 0xee, 0xa3, 0x3d, 0x29, 0x65, 0x4f, 0x2d, 0x32, 0x22, 0x5c, 0xfa, 0x3e, + 0x34, 0x93, 0xe2, 0xfc, 0x09, 0xf1, 0x7c, 0x8c, 0x36, 0x61, 0x15, 0x0b, 0x8a, 0x90, 0xb5, 0x66, + 0x04, 0x23, 0xfd, 0x4c, 0xac, 0x31, 0xad, 0x51, 0xcf, 0xb3, 0x28, 0x1e, 0x63, 0x8f, 0x99, 0x6e, + 0x1e, 0x1b, 0xee, 0x40, 0x2b, 0x45, 0x9e, 0x34, 0x42, 0x77, 0x61, 0x5d, 0x4e, 0x1e, 0x4d, 0xdd, + 0x3c, 0x5a, 0xd0, 0x43, 0xb8, 0x65, 0x51, 0x6c, 0x32, 0xdc, 0xbf, 0x74, 0xd8, 0xd8, 0x9c, 0x34, + 0x97, 0xc4, 0xa6, 0x6a, 0x92, 0x78, 0x28, 0x68, 0x7a, 0x03, 0x50, 0x54, 0x5b, 0x60, 0xc3, 0x04, + 0x6e, 0x1f, 0x9b, 0xf4, 0xd2, 0xbc, 0xc2, 0x6d, 0xe2, 0xba, 0xd8, 0x62, 0xff, 0x75, 0x3b, 0x9a, + 0xb0, 0x39, 0xaf, 0x31, 0xb0, 0xa5, 0x03, 0x9f, 0xb5, 0x5d, 0x6c, 0x7a, 0xd3, 0x49, 0x1e, 0x97, + 0xaf, 0xc3, 0xe7, 0xa1, 0x94, 0x40, 0xf0, 0x73, 0xb8, 0xad, 0x98, 0x2f, 0x9c, 0x9f, 0x70, 0x1e, + 0xf9, 0x4f, 0x60, 0x73, 0x5e, 0x58, 0x90, 0x54, 0x08, 0x56, 0x7c, 0xe7, 0x27, 0x2c, 0xe4, 0x2c, + 0x1b, 0xe2, 0x5b, 0x1f, 0x41, 0xeb, 0x60, 0x32, 0x71, 0x6f, 0x8e, 0x1d, 0x66, 0x32, 0x46, 0x9d, + 0xcb, 0x29, 0xc3, 0x79, 0xb2, 0x1a, 0x69, 0xb0, 0x46, 0xf1, 0x07, 0xc7, 0x77, 0x88, 0x27, 0xdc, + 0x5b, 0x33, 0xc2, 0xb1, 0xbe, 0x0d, 0x5a, 0x9a, 0xb2, 0xc0, 0x0b, 0x7f, 0x5c, 0x02, 0x74, 0x84, + 0x99, 0x65, 0x1b, 0x78, 0x4c, 0x58, 0x1e, 0x1f, 0xf0, 0xe3, 0x43, 0x85, 0x10, 0x61, 0x42, 0xc5, + 0x08, 0x46, 0xa8, 0x01, 0xa5, 0x21, 0xa1, 0x16, 0x6e, 0x2e, 0x8b, 0xc0, 0xcb, 0x01, 0xda, 0x82, + 0xb2, 0x47, 0xfa, 0xcc, 0xbc, 0xf2, 0x9b, 0x2b, 0xf2, 0xb4, 0x79, 0xe4, 0x95, 0x79, 0xe5, 0xa3, + 0x26, 0x94, 0x99, 0x33, 0xc6, 0x64, 0xca, 0x9a, 0xa5, 0xfb, 0xc5, 0xdd, 0x92, 0x31, 0x1b, 0xf2, + 0x25, 0xbe, 0x6f, 0xf7, 0x47, 0xf8, 0xa6, 0xb9, 0x2a, 0x35, 0xf8, 0xbe, 0xfd, 0x1c, 0xdf, 0xa0, + 0x1d, 0xa8, 0x8e, 0x3c, 0x72, 0xed, 0xf5, 0x6d, 0xc2, 0x4f, 0x6f, 0x59, 0x4c, 0x82, 0x20, 0x9d, + 0x70, 0x0a, 0x6a, 0xc1, 0x9a, 0x47, 0xfa, 0x13, 0x3a, 0xf5, 0x70, 0xb3, 0x22, 0xb4, 0x95, 0x3d, + 0x72, 0xce, 0x87, 0xdf, 0xaf, 0xac, 0xad, 0xd5, 0x2b, 0xfa, 0x6d, 0xd8, 0x88, 0x79, 0x21, 0xf0, + 0xce, 0x29, 0x6c, 0xb5, 0x45, 0x9a, 0x46, 0xb6, 0x9c, 0x23, 0x4b, 0x34, 0x68, 0x26, 0xc5, 0x05, + 0xaa, 0xfe, 0x59, 0x84, 0xf5, 0x63, 0xcc, 0x0e, 0xa8, 0x65, 0x3b, 0x1f, 0x72, 0xc5, 0xe1, 0x0e, + 0x54, 0x2c, 0x32, 0x1e, 0x3b, 0xac, 0xef, 0x0c, 0x82, 0x50, 0xac, 0x49, 0x42, 0x6f, 0xc0, 0x83, + 0x34, 0xa1, 0x78, 0xe8, 0xfc, 0x28, 0xa2, 0x51, 0x31, 0x82, 0x11, 0x7a, 0x06, 0xab, 0x43, 0x42, + 0xc7, 0x26, 0x13, 0xd1, 0xf8, 0x6c, 0xff, 0xfe, 0x4c, 0x49, 0xc2, 0xa6, 0xbd, 0x23, 0xc1, 0x67, + 0x04, 0xfc, 0xfa, 0x53, 0x58, 0x95, 0x14, 0x54, 0x86, 0xe5, 0xb7, 0xbd, 0xf3, 0x7a, 0x81, 0x7f, + 0xbc, 0x3a, 0x30, 0xea, 0x45, 0x04, 0xb0, 0xfa, 0xea, 0xc0, 0xe8, 0x1f, 0xbf, 0xad, 0x2f, 0xa1, + 0x2a, 0x94, 0xf9, 0xf7, 0xe1, 0xdb, 0xfd, 0xfa, 0xb2, 0xbe, 0x0b, 0x28, 0x2a, 0x58, 0x9d, 0x95, + 0x81, 0xc9, 0x4c, 0xb1, 0xcf, 0x9a, 0x21, 0xbe, 0x79, 0x08, 0x4e, 0x4c, 0xff, 0x05, 0xb1, 0x4c, + 0xf7, 0x90, 0x9a, 0x9e, 0x65, 0xe7, 0x3a, 0x29, 0xfa, 0x37, 0xd0, 0x4c, 0x8a, 0x0b, 0xd4, 0x37, + 0xa0, 0xf4, 0xc1, 0x74, 0xa7, 0x38, 0x28, 0xff, 0x72, 0xa0, 0xff, 0xa3, 0x08, 0x4d, 0x91, 0x1b, + 0x17, 0x64, 0x4a, 0x2d, 0x2c, 0x57, 0xe5, 0x89, 0xcf, 0x77, 0xb0, 0xee, 0x0b, 0x51, 0xfd, 0xc8, + 0xd2, 0xa5, 0xcc, 0xa5, 0x75, 0xc9, 0x6c, 0xc4, 0x2a, 0x6a, 0x20, 0xe0, 0x52, 0x18, 0x23, 0x42, + 0x59, 0x33, 0x6a, 0x7e, 0xc4, 0x40, 0x74, 0x17, 0x80, 0x99, 0xf4, 0x0a, 0xb3, 0x3e, 0xc5, 0x43, + 0x11, 0xd4, 0x9a, 0x51, 0x91, 0x14, 0x03, 0x0f, 0xf5, 0xa7, 0xd0, 0x4a, 0xd9, 0x94, 0xba, 0x08, + 0x29, 0xf6, 0xa7, 0x2e, 0x9b, 0x5d, 0x84, 0x72, 0xa4, 0x1f, 0x40, 0xf5, 0xc8, 0xb7, 0x46, 0x79, + 0xfc, 0xff, 0x08, 0x6a, 0x52, 0x84, 0xf2, 0x39, 0xa6, 0x94, 0xd0, 0x20, 0xe6, 0x72, 0xa0, 0xff, + 0xad, 0x08, 0x9f, 0xbf, 0xa1, 0x0e, 0x3f, 0x28, 0xc3, 0x3c, 0xae, 0xae, 0xc3, 0x32, 0xdf, 0xbd, + 0x2c, 0x89, 0xfc, 0x33, 0x56, 0x29, 0x97, 0xe3, 0x95, 0x12, 0x3d, 0x80, 0x1a, 0x71, 0x07, 0xfd, + 0x70, 0x5e, 0x3a, 0xad, 0x4a, 0xdc, 0x81, 0x31, 0x63, 0x09, 0x6b, 0x59, 0x29, 0x5a, 0xcb, 0x1a, + 0x50, 0xf2, 0x6d, 0xec, 0xba, 0xa2, 0x2c, 0xad, 0x19, 0x72, 0xa0, 0xef, 0x42, 0x5d, 0xed, 0x61, + 0xe1, 0x76, 0x6d, 0x68, 0x1c, 0x39, 0xde, 0xe0, 0x14, 0xd3, 0x2b, 0x7c, 0x68, 0xfa, 0xb9, 0x4e, + 0xff, 0x36, 0x54, 0x66, 0x1b, 0xf0, 0x9b, 0x4b, 0xf7, 0x97, 0x79, 0xd8, 0x43, 0x82, 0xfe, 0x18, + 0x6e, 0xcf, 0x69, 0x52, 0x47, 0xef, 0xd2, 0xf4, 0x65, 0xea, 0x57, 0x0c, 0xf1, 0xad, 0xff, 0x5c, + 0x84, 0x75, 0x59, 0xaf, 0x8e, 0x08, 0x1d, 0xfd, 0x3f, 0x53, 0x9e, 0xbf, 0x53, 0xa2, 0x96, 0x84, + 0x6f, 0xa5, 0x56, 0xcf, 0x37, 0x30, 0x37, 0xb6, 0xe7, 0x9d, 0x53, 0x72, 0x45, 0xb1, 0xef, 0xe7, + 0x2c, 0x9d, 0x54, 0x88, 0x8b, 0x94, 0x4e, 0x49, 0xe8, 0x0d, 0xf4, 0xdf, 0x82, 0x96, 0xa6, 0x2d, + 0x70, 0xe0, 0x0e, 0x54, 0x1d, 0xaf, 0x3f, 0x09, 0xc8, 0xc1, 0xc1, 0x01, 0x27, 0x64, 0x94, 0xc6, + 0x5e, 0xbc, 0x9f, 0x9a, 0xbe, 0xfd, 0xc9, 0x8c, 0xf5, 0x85, 0xb8, 0x88, 0xb1, 0x92, 0x30, 0x33, + 0x36, 0xa9, 0xed, 0x63, 0x8d, 0x1d, 0xc2, 0xbd, 0xf9, 0x9b, 0xea, 0x88, 0x92, 0xf1, 0x6b, 0xe3, + 0x45, 0xce, 0xe3, 0x38, 0xa5, 0x6e, 0x60, 0x2b, 0xff, 0xd4, 0x1f, 0xc0, 0x4e, 0xa6, 0x9e, 0x20, + 0xc8, 0x3d, 0xd8, 0x90, 0x2c, 0x87, 0x53, 0x6f, 0xe0, 0xe6, 0x7a, 0xa5, 0x7d, 0x0d, 0x8d, 0xb8, + 0xa8, 0x05, 0xf7, 0x0e, 0x06, 0x24, 0x4e, 0x6f, 0x9b, 0x78, 0x43, 0xe7, 0x2a, 0x67, 0x9c, 0x86, + 0x53, 0xd7, 0xed, 0x4f, 0x4c, 0x66, 0xcf, 0xe2, 0xc4, 0x09, 0xe7, 0x26, 0xb3, 0xf5, 0xc7, 0xb0, + 0x11, 0x53, 0xb3, 0xb0, 0x4e, 0xfc, 0xbc, 0x04, 0xf5, 0x0b, 0xcc, 0xf2, 0x9b, 0xf4, 0x0c, 0xca, + 0xd8, 0x63, 0xd4, 0xc1, 0xb2, 0x44, 0x54, 0xf7, 0xef, 0xcd, 0x16, 0xcc, 0x8b, 0xdf, 0xeb, 0x7a, + 0x8c, 0xde, 0x18, 0x33, 0x76, 0xed, 0x4f, 0x45, 0x28, 0x09, 0x12, 0x0f, 0x26, 0x7f, 0x89, 0xc9, + 0x82, 0xc1, 0x3f, 0xd1, 0x5d, 0xa8, 0x88, 0x2b, 0xb3, 0xef, 0x33, 0x2a, 0x37, 0x7a, 0x52, 0x30, + 0xd6, 0x04, 0xe9, 0x82, 0x51, 0xf4, 0x00, 0xaa, 0x72, 0xda, 0xf1, 0xd8, 0xd3, 0x7d, 0x51, 0x7d, + 0x4b, 0x27, 0x05, 0x03, 0x04, 0xb1, 0xc7, 0x69, 0x68, 0x07, 0xe4, 0xa8, 0x7f, 0x49, 0x88, 0x2b, + 0xdf, 0x85, 0x27, 0x05, 0x43, 0x4a, 0x3d, 0x24, 0xc4, 0x3d, 0x2c, 0x07, 0x57, 0xb4, 0xbe, 0x01, + 0xeb, 0x11, 0x53, 0x83, 0x54, 0x79, 0x07, 0x1b, 0x1d, 0xec, 0xe2, 0x4f, 0x11, 0x34, 0x04, 0x2b, + 0x23, 0x7c, 0x23, 0xdd, 0x53, 0x31, 0xc4, 0xb7, 0xbe, 0x09, 0x8d, 0xb8, 0xf8, 0x40, 0xad, 0xc5, + 0xfb, 0x39, 0x9f, 0x11, 0x8a, 0xdb, 0x53, 0x9f, 0x91, 0xf1, 0x09, 0x21, 0x23, 0x3f, 0xa7, 0x72, + 0x91, 0x8f, 0x4b, 0x91, 0x7c, 0xdc, 0x06, 0x2d, 0x4d, 0x49, 0x60, 0xc2, 0x19, 0x34, 0x0f, 0x4d, + 0x6b, 0x34, 0x9d, 0x7c, 0x1a, 0x0b, 0xf4, 0x5f, 0x42, 0x2b, 0x45, 0xde, 0x82, 0xe3, 0x32, 0x82, + 0x07, 0x69, 0x07, 0x39, 0xf7, 0x99, 0x4d, 0xf5, 0xc5, 0x23, 0xd0, 0x17, 0x29, 0x0b, 0x7c, 0x72, + 0x02, 0x88, 0xdf, 0x75, 0x2f, 0x1c, 0x0b, 0x7b, 0xb9, 0xee, 0x54, 0xbd, 0x0d, 0x1b, 0x31, 0x49, + 0x81, 0x1f, 0x9e, 0x00, 0x72, 0x25, 0xa9, 0xef, 0xdb, 0x84, 0xb2, 0xbe, 0x67, 0x8e, 0x67, 0x37, + 0x68, 0x3d, 0x98, 0xb9, 0xe0, 0x13, 0x67, 0xe6, 0x58, 0x84, 0xe8, 0x18, 0xb3, 0x9e, 0x37, 0x24, + 0x07, 0x9f, 0xa2, 0xe7, 0xd3, 0x7f, 0x0d, 0xad, 0x14, 0x79, 0x81, 0x69, 0xf7, 0x00, 0x54, 0xb3, + 0x17, 0x04, 0x2a, 0x42, 0xe1, 0xc6, 0xb4, 0x4d, 0xd7, 0x9a, 0xba, 0x26, 0xc3, 0x6d, 0x1b, 0x5b, + 0x23, 0x7f, 0x3a, 0xce, 0x63, 0xcc, 0xaf, 0xa0, 0x95, 0x22, 0x2f, 0x30, 0x46, 0x83, 0x35, 0x2b, + 0xa0, 0x05, 0xde, 0x09, 0xc7, 0x3c, 0x48, 0xc7, 0x98, 0x5d, 0x78, 0xe6, 0xc4, 0xb7, 0x49, 0x1e, + 0x9c, 0x41, 0xff, 0x0a, 0x36, 0x62, 0x92, 0x16, 0x24, 0xeb, 0x5f, 0x8a, 0xf0, 0x30, 0x2d, 0x81, + 0x3e, 0x81, 0x19, 0xbc, 0xd5, 0xb4, 0x19, 0x9b, 0xf4, 0xd5, 0x45, 0x57, 0xe6, 0xe3, 0xd7, 0xd4, + 0xe5, 0x17, 0x81, 0x98, 0x32, 0xa7, 0xcc, 0x0e, 0xda, 0x2f, 0xc1, 0x7b, 0x30, 0x65, 0xb6, 0xfe, + 0x05, 0x3c, 0x5a, 0x6c, 0x52, 0x90, 0xd5, 0x7f, 0x2e, 0x42, 0xe3, 0x18, 0x33, 0xc3, 0xbc, 0x6e, + 0xdb, 0xa6, 0x77, 0x95, 0x0f, 0x37, 0x78, 0x08, 0xb7, 0x86, 0x94, 0x8c, 0xfb, 0x31, 0xf0, 0xa0, + 0x62, 0xd4, 0x38, 0x31, 0x7c, 0xf3, 0xee, 0x40, 0x95, 0x91, 0x7e, 0xec, 0xd5, 0x5c, 0x31, 0x80, + 0x91, 0x19, 0x83, 0xfe, 0xd7, 0x65, 0xb8, 0x3d, 0x67, 0x52, 0xe0, 0xfc, 0x13, 0xa8, 0x52, 0xf3, + 0xba, 0x6f, 0x49, 0x72, 0xb3, 0x28, 0xee, 0x9a, 0x2f, 0x23, 0xad, 0x65, 0x72, 0xcd, 0x5e, 0x48, + 0x32, 0x80, 0x86, 0xb3, 0xda, 0xdf, 0x97, 0xa0, 0x12, 0xce, 0xa0, 0x2d, 0x28, 0x5f, 0xba, 0xe4, + 0x92, 0x3f, 0x7c, 0x64, 0x42, 0xad, 0xf2, 0x61, 0x6f, 0x10, 0xa2, 0x2d, 0x4b, 0x0a, 0x6d, 0x11, + 0xcd, 0x3f, 0xbe, 0x96, 0xd7, 0xaf, 0x34, 0xbe, 0xec, 0xe1, 0x6b, 0x7e, 0xfb, 0xf2, 0x29, 0xfe, + 0xe2, 0x17, 0x53, 0x2b, 0x72, 0x8a, 0xb8, 0x03, 0x31, 0xf5, 0x12, 0x2a, 0x64, 0x82, 0xa9, 0xc9, + 0xf8, 0x9e, 0x4b, 0xa2, 0x27, 0xfe, 0xf6, 0x23, 0x0d, 0xdf, 0x7b, 0x39, 0x5b, 0x68, 0x28, 0x19, + 0xdc, 0xd7, 0xdc, 0x17, 0x4a, 0xa8, 0xc4, 0x30, 0x6a, 0xd4, 0xbc, 0x0e, 0xf9, 0x75, 0x07, 0x2a, + 0xe1, 0x80, 0x77, 0xcc, 0xaf, 0xcf, 0x9e, 0x9f, 0xbd, 0x7c, 0x73, 0x56, 0x2f, 0xa0, 0x0a, 0x94, + 0x0e, 0x3a, 0x9d, 0x6e, 0x47, 0x76, 0xd5, 0xed, 0x97, 0xe7, 0xbd, 0x6e, 0x47, 0x76, 0xd5, 0x9d, + 0xee, 0x8b, 0xee, 0xab, 0x6e, 0xa7, 0xbe, 0x8c, 0x6a, 0xb0, 0x76, 0xfa, 0xb2, 0xd3, 0x3b, 0xe2, + 0x53, 0x2b, 0x7c, 0xca, 0xe8, 0x9e, 0x1d, 0x9c, 0x76, 0x3b, 0xf5, 0x12, 0xaa, 0x43, 0xed, 0xd5, + 0xef, 0xcf, 0xbb, 0xfd, 0xf6, 0xc9, 0xc1, 0xd9, 0x71, 0xb7, 0x53, 0x5f, 0xd5, 0x3f, 0x40, 0xf3, + 0x02, 0x9b, 0xd4, 0xb2, 0x8f, 0x1c, 0x17, 0xfb, 0x87, 0x37, 0xbc, 0x48, 0xe5, 0xc9, 0xa5, 0x06, + 0x94, 0xde, 0x4f, 0x71, 0xf0, 0xae, 0xaf, 0x18, 0x72, 0x30, 0xeb, 0xc0, 0x96, 0xc3, 0x0e, 0x4c, + 0xff, 0x16, 0x5a, 0x29, 0x7a, 0xd5, 0xbb, 0x67, 0xc8, 0xc9, 0x22, 0x55, 0x6a, 0x86, 0x1c, 0xe8, + 0x37, 0x70, 0x27, 0xb6, 0xa4, 0x4d, 0x3c, 0x86, 0x3d, 0xf6, 0xbf, 0xb0, 0xf6, 0x19, 0x6c, 0xa7, + 0xab, 0x0e, 0x0c, 0x6e, 0x42, 0x79, 0x6c, 0x32, 0xcb, 0x0e, 0x4d, 0x9e, 0x0d, 0xf7, 0xff, 0xb5, + 0x29, 0x90, 0xdc, 0x19, 0x26, 0x28, 0xa1, 0x6e, 0xf4, 0x06, 0xea, 0xf3, 0xf8, 0x33, 0xda, 0x49, + 0xda, 0x1a, 0x03, 0xba, 0xb5, 0xfb, 0xd9, 0x0c, 0x41, 0x55, 0x28, 0xa0, 0xb7, 0x33, 0xdc, 0x38, + 0x02, 0x2a, 0xa3, 0xe8, 0xc2, 0x54, 0xfc, 0x5a, 0x7b, 0xb0, 0x80, 0x23, 0x94, 0xdd, 0x05, 0x50, + 0x28, 0x31, 0x6a, 0xc5, 0x97, 0x44, 0x70, 0x6a, 0x4d, 0x4b, 0x9b, 0x0a, 0xc5, 0xfc, 0x0e, 0x3e, + 0x8b, 0x83, 0xbc, 0xe8, 0x6e, 0x78, 0xa2, 0xd2, 0xe0, 0x66, 0xed, 0x5e, 0xd6, 0x74, 0x54, 0x64, + 0x1c, 0x77, 0x55, 0x22, 0x53, 0xc1, 0x5d, 0x25, 0x32, 0x1d, 0xae, 0xd5, 0x0b, 0xe8, 0x1d, 0xa0, + 0x24, 0x5e, 0x8a, 0x42, 0x3f, 0x65, 0x02, 0xb7, 0x9a, 0xbe, 0x88, 0x25, 0x14, 0x7f, 0x02, 0xd5, + 0x08, 0xd2, 0x88, 0x42, 0x8f, 0x25, 0x41, 0x58, 0xed, 0x4e, 0xea, 0x5c, 0x28, 0xe9, 0x0d, 0xd4, + 0xe7, 0x6f, 0x0c, 0x95, 0x4a, 0x19, 0xb0, 0xa5, 0x4a, 0xa5, 0x4c, 0x20, 0xb2, 0x80, 0x8e, 0x01, + 0x14, 0x38, 0xa7, 0xc2, 0x9d, 0x40, 0x02, 0x55, 0xb8, 0x93, 0x58, 0x9e, 0x5e, 0xf8, 0xa6, 0xc8, + 0x2d, 0x9c, 0x07, 0xdb, 0x94, 0x85, 0x19, 0xa8, 0x9e, 0xb2, 0x30, 0x0b, 0xa7, 0x93, 0xc9, 0x9e, + 0x40, 0xaf, 0x54, 0xb2, 0x67, 0xa1, 0x75, 0x2a, 0xd9, 0x33, 0xa1, 0x2f, 0xbd, 0x80, 0x9e, 0xc2, + 0xca, 0x91, 0x6f, 0x8d, 0xd0, 0x46, 0xc8, 0xac, 0x20, 0x2f, 0xad, 0x11, 0x27, 0x86, 0x8b, 0xbe, + 0x83, 0xb5, 0x19, 0xd6, 0x83, 0xb6, 0x66, 0x3c, 0x73, 0x08, 0x96, 0xd6, 0x4c, 0x4e, 0x84, 0x02, + 0xce, 0xe0, 0x56, 0x0c, 0x98, 0x41, 0xdb, 0xa1, 0xa6, 0x14, 0x64, 0x48, 0xbb, 0x9b, 0x31, 0x1b, + 0x3d, 0xb2, 0x0a, 0x30, 0x51, 0x31, 0x4c, 0xc0, 0x39, 0x2a, 0x86, 0x29, 0xf8, 0x8a, 0x38, 0x0c, + 0x49, 0xcc, 0x43, 0x1d, 0x86, 0x4c, 0xf4, 0x45, 0x1d, 0x86, 0x6c, 0xc8, 0x64, 0x26, 0x7e, 0x1e, + 0xa5, 0x88, 0x8a, 0xcf, 0xc0, 0x4b, 0xa2, 0xe2, 0xb3, 0x40, 0x0e, 0xbd, 0x80, 0xdc, 0x24, 0x7c, + 0x1f, 0xa0, 0x0b, 0xe8, 0x8b, 0xac, 0x73, 0x10, 0x87, 0x39, 0xb4, 0x2f, 0xff, 0x23, 0x5f, 0xa8, + 0xed, 0x14, 0x6a, 0x51, 0x74, 0x01, 0xdd, 0x89, 0x2f, 0x8d, 0xb5, 0x42, 0xda, 0x76, 0xfa, 0x64, + 0xe4, 0xf0, 0x5c, 0x83, 0x96, 0xdd, 0xe4, 0xa0, 0xaf, 0x16, 0xd9, 0x15, 0x57, 0xf5, 0xf5, 0xc7, + 0xb0, 0xce, 0x14, 0xef, 0x16, 0x79, 0x85, 0x8a, 0x40, 0x12, 0xaa, 0x42, 0x25, 0xe1, 0x10, 0x55, + 0xa1, 0x52, 0x30, 0x0c, 0xbd, 0x80, 0x0e, 0xa1, 0x12, 0x36, 0xe9, 0xa8, 0x99, 0x05, 0x31, 0x68, + 0xad, 0x94, 0x99, 0x50, 0xc6, 0x73, 0xa8, 0x45, 0x9b, 0x6e, 0xe5, 0xd5, 0x94, 0x4e, 0x5f, 0x79, + 0x35, 0xb5, 0x4f, 0x97, 0xc5, 0x57, 0x35, 0x72, 0x91, 0xe2, 0x9b, 0xe8, 0x13, 0x23, 0xc5, 0x37, + 0xd9, 0xf9, 0xe9, 0x05, 0xf4, 0x83, 0xf8, 0xb5, 0x26, 0xde, 0x7d, 0xa1, 0xe8, 0x8f, 0x26, 0xa9, + 0x8d, 0x9e, 0xaa, 0x40, 0x99, 0xad, 0x9b, 0x88, 0xfd, 0x5b, 0x58, 0x4f, 0xb4, 0x53, 0x4a, 0x7a, + 0x56, 0xe7, 0xa6, 0xa4, 0x67, 0xf6, 0x62, 0x7a, 0x01, 0xfd, 0x06, 0xca, 0xc1, 0x4f, 0xa1, 0x68, + 0x33, 0xe4, 0x8f, 0xfd, 0xc2, 0xaa, 0x6d, 0x25, 0xe8, 0xe1, 0xea, 0xef, 0xa1, 0x1a, 0xe9, 0xb2, + 0x50, 0xf4, 0x06, 0x98, 0xeb, 0x9e, 0x94, 0x07, 0x53, 0xda, 0x32, 0xb1, 0xcb, 0x3f, 0xc0, 0xf6, + 0xa2, 0x96, 0x07, 0x3d, 0x5e, 0x94, 0xb8, 0xf3, 0xda, 0x9e, 0x7c, 0x1c, 0x73, 0xb8, 0x91, 0x73, + 0xb8, 0x15, 0x7b, 0xc6, 0xab, 0x82, 0x9b, 0xd6, 0x5d, 0xa9, 0x82, 0x9b, 0xfa, 0xf6, 0x17, 0xdb, + 0xc1, 0xd0, 0x48, 0x7b, 0x2a, 0xa2, 0x87, 0x2a, 0xbd, 0x33, 0xdf, 0xb0, 0xda, 0xa3, 0xc5, 0x4c, + 0x11, 0x35, 0x3f, 0xc0, 0x7a, 0xe2, 0xfd, 0xac, 0x72, 0x23, 0xeb, 0x49, 0xaf, 0x72, 0x23, 0xf3, + 0xf1, 0x2d, 0xa4, 0xbf, 0x03, 0x94, 0x84, 0x99, 0x50, 0xe4, 0x95, 0x98, 0x81, 0x73, 0xa9, 0x8a, + 0x9c, 0x8d, 0x52, 0xed, 0x0a, 0xe3, 0x13, 0xb8, 0x92, 0x32, 0x3e, 0x0b, 0xc2, 0x52, 0xc6, 0x67, + 0x82, 0x52, 0xdc, 0xf8, 0xcb, 0x55, 0xf1, 0x97, 0x91, 0xa7, 0xff, 0x0e, 0x00, 0x00, 0xff, 0xff, + 0xcc, 0xc6, 0x1f, 0x98, 0x64, 0x22, 0x00, 0x00, } diff --git a/vendor/vendor.json b/vendor/vendor.json index 3a345fa7b..dc8a5fcab 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -201,12 +201,12 @@ "revisionTime": "2017-12-31T12:27:32Z" }, { - "checksumSHA1": "+dHH1vrPnkaVFGkoiH1YF/X3wX8=", + "checksumSHA1": "e7B5BBSJHbUWmrToFLnwri6GM9g=", "path": "gitlab.com/gitlab-org/gitaly-proto/go", - "revision": "259c6614b4e66a8203610a94e62264b5b229cb25", - "revisionTime": "2018-06-29T02:43:47Z", - "version": "v0.104.0", - "versionExact": "v0.104.0" + "revision": "8ccaaaeb92e3babf523d8f8a91d464ee42228e62", + "revisionTime": "2018-07-04T10:00:37Z", + "version": "v0.105.0", + "versionExact": "v0.105.0" }, { "checksumSHA1": "nqWNlnMmVpt628zzvyo6Yv2CX5Q=", |