diff --git a/Cargo.lock b/Cargo.lock index 4b6b72c..a382cdd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -119,7 +119,7 @@ dependencies = [ [[package]] name = "dragonfly-api" -version = "2.3.2" +version = "2.3.3" dependencies = [ "prost", "prost-types", diff --git a/Cargo.toml b/Cargo.toml index edcff93..e02dd4a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "dragonfly-api" -version = "2.3.2" +version = "2.3.3" authors = ["Gaius "] edition = "2021" license = "Apache-2.0" diff --git a/pkg/apis/scheduler/v2/scheduler.pb.go b/pkg/apis/scheduler/v2/scheduler.pb.go index 5c7527a..5589585 100644 --- a/pkg/apis/scheduler/v2/scheduler.pb.go +++ b/pkg/apis/scheduler/v2/scheduler.pb.go @@ -5816,6 +5816,11 @@ type StatImageRequest struct { // - all_peers: stat image from all available peers. // If not specified, stat image from all available peers. Scope string `protobuf:"bytes,15,opt,name=scope,proto3" json:"scope,omitempty"` + // enable_task_id_based_blob_digest indicates whether to use the blob digest for task ID calculation + // when the layer url is an OCI blob url (e.g., /v2//blobs/sha256:). It should be + // consistent with the value used when the image was preheated, otherwise the tasks can not be + // found on the peers. + EnableTaskIdBasedBlobDigest bool `protobuf:"varint,16,opt,name=enable_task_id_based_blob_digest,json=enableTaskIdBasedBlobDigest,proto3" json:"enable_task_id_based_blob_digest,omitempty"` } func (x *StatImageRequest) Reset() { @@ -5955,6 +5960,13 @@ func (x *StatImageRequest) GetScope() string { return "" } +func (x *StatImageRequest) GetEnableTaskIdBasedBlobDigest() bool { + if x != nil { + return x.EnableTaskIdBasedBlobDigest + } + return false +} + // StatImageResponse represents response of StatImage. type StatImageResponse struct { state protoimpl.MessageState @@ -7967,7 +7979,7 @@ var file_pkg_apis_scheduler_v2_scheduler_proto_rawDesc = []byte{ 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0a, 0x0a, 0x08, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0xb4, 0x07, 0x0a, 0x10, 0x53, 0x74, 0x61, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0xfb, 0x07, 0x0a, 0x10, 0x53, 0x74, 0x61, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x88, 0x01, 0x01, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x39, 0x0a, 0x0c, 0x70, 0x69, 0x65, @@ -8014,378 +8026,383 @@ var file_pkg_apis_scheduler_v2_scheduler_proto_rawDesc = []byte{ 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xfa, 0x42, 0x23, 0x72, 0x21, 0x32, 0x1c, 0x5e, 0x28, 0x61, 0x6c, 0x6c, 0x5f, 0x73, 0x65, 0x65, 0x64, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x73, 0x7c, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x73, 0x29, 0x24, 0xd0, 0x01, 0x01, 0x52, 0x05, 0x73, 0x63, - 0x6f, 0x70, 0x65, 0x1a, 0x39, 0x0a, 0x0b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0f, - 0x0a, 0x0d, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, - 0x06, 0x0a, 0x04, 0x5f, 0x74, 0x61, 0x67, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x70, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x75, 0x73, 0x65, 0x72, - 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, - 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0x19, - 0x0a, 0x17, 0x5f, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x63, 0x6f, - 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, - 0x6d, 0x0a, 0x11, 0x53, 0x74, 0x61, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, - 0x76, 0x32, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, - 0x2d, 0x0a, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, - 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, - 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x22, 0x83, - 0x01, 0x0a, 0x09, 0x50, 0x65, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x17, 0x0a, 0x02, - 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x70, - 0x01, 0x52, 0x02, 0x69, 0x70, 0x12, 0x23, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, - 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x0d, 0x63, 0x61, - 0x63, 0x68, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, - 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x0c, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x4c, 0x61, - 0x79, 0x65, 0x72, 0x73, 0x22, 0x34, 0x0a, 0x05, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x2b, 0x0a, - 0x06, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, - 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x61, 0x79, - 0x65, 0x72, 0x52, 0x06, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x22, 0x59, 0x0a, 0x05, 0x4c, 0x61, - 0x79, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x6f, 0x70, 0x65, 0x12, 0x45, 0x0a, 0x20, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x74, 0x61, + 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6f, 0x62, + 0x5f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1b, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x42, 0x61, 0x73, 0x65, 0x64, + 0x42, 0x6c, 0x6f, 0x62, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x0a, 0x0b, 0x48, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x74, 0x61, 0x67, 0x42, 0x0e, + 0x0a, 0x0c, 0x5f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0b, + 0x0a, 0x09, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, + 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, + 0x70, 0x65, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0x6d, 0x0a, 0x11, 0x53, 0x74, 0x61, 0x74, 0x49, 0x6d, + 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x05, 0x69, + 0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, + 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x05, + 0x70, 0x65, 0x65, 0x72, 0x73, 0x22, 0x83, 0x01, 0x0a, 0x09, 0x50, 0x65, 0x65, 0x72, 0x49, 0x6d, + 0x61, 0x67, 0x65, 0x12, 0x17, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x70, 0x01, 0x52, 0x02, 0x69, 0x70, 0x12, 0x23, 0x0a, 0x08, + 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, + 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x38, 0x0a, 0x0d, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x0c, 0x63, + 0x61, 0x63, 0x68, 0x65, 0x64, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x22, 0x34, 0x0a, 0x05, 0x49, + 0x6d, 0x61, 0x67, 0x65, 0x12, 0x2b, 0x0a, 0x06, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, + 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x06, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x73, 0x22, 0x59, 0x0a, 0x05, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x03, 0x75, 0x72, + 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x88, 0x01, + 0x01, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x66, 0x69, 0x6e, + 0x69, 0x73, 0x68, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0a, 0x69, + 0x73, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, + 0x5f, 0x69, 0x73, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x22, 0xc8, 0x09, 0x0a, + 0x12, 0x50, 0x72, 0x65, 0x68, 0x65, 0x61, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x88, 0x01, 0x01, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, - 0x24, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0a, 0x69, 0x73, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, - 0x65, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x73, 0x5f, 0x66, 0x69, 0x6e, - 0x69, 0x73, 0x68, 0x65, 0x64, 0x22, 0xc8, 0x09, 0x0a, 0x12, 0x50, 0x72, 0x65, 0x68, 0x65, 0x61, - 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x03, - 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, - 0x88, 0x01, 0x01, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x39, 0x0a, 0x0c, 0x70, 0x69, 0x65, 0x63, - 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x11, - 0xfa, 0x42, 0x0e, 0x32, 0x0c, 0x18, 0x80, 0x80, 0x80, 0x20, 0x28, 0x80, 0x80, 0x80, 0x02, 0x40, - 0x01, 0x48, 0x00, 0x52, 0x0b, 0x70, 0x69, 0x65, 0x63, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x01, 0x52, 0x03, 0x74, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x61, 0x70, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x02, 0x52, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, - 0x01, 0x12, 0x32, 0x0a, 0x15, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x5f, 0x71, 0x75, - 0x65, 0x72, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x13, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x44, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, - 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, - 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x65, 0x68, 0x65, 0x61, 0x74, 0x46, 0x69, 0x6c, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x05, 0x73, - 0x63, 0x6f, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x34, 0xfa, 0x42, 0x31, 0x72, - 0x2f, 0x32, 0x2d, 0x5e, 0x28, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x65, 0x64, - 0x5f, 0x70, 0x65, 0x65, 0x72, 0x7c, 0x61, 0x6c, 0x6c, 0x5f, 0x73, 0x65, 0x65, 0x64, 0x5f, 0x70, - 0x65, 0x65, 0x72, 0x73, 0x7c, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x73, 0x29, 0x24, - 0x52, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x70, 0x73, 0x18, 0x08, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x69, 0x70, 0x73, 0x12, 0x30, 0x0a, 0x0a, 0x70, 0x65, 0x72, - 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x0b, 0xfa, - 0x42, 0x08, 0x2a, 0x06, 0x18, 0x64, 0x28, 0x01, 0x40, 0x01, 0x48, 0x03, 0x52, 0x0a, 0x70, 0x65, - 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x0c, 0xfa, 0x42, 0x09, 0x2a, - 0x07, 0x18, 0xc8, 0x01, 0x28, 0x01, 0x40, 0x01, 0x48, 0x04, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x15, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, - 0x6e, 0x74, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x03, 0x42, 0x0b, 0xfa, 0x42, 0x08, 0x22, 0x06, 0x18, 0x64, 0x28, 0x01, 0x40, 0x01, - 0x48, 0x05, 0x52, 0x13, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x61, - 0x73, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x15, 0x63, 0x6f, - 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x42, 0x0c, 0xfa, 0x42, 0x09, 0x22, 0x07, - 0x18, 0xe8, 0x07, 0x28, 0x01, 0x40, 0x01, 0x48, 0x06, 0x52, 0x13, 0x63, 0x6f, 0x6e, 0x63, 0x75, - 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x38, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x07, 0x52, - 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x08, 0x70, - 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, - 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x82, 0x01, 0x02, 0x10, 0x01, 0x52, 0x08, 0x70, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x18, 0x0f, 0x20, 0x03, 0x28, - 0x0c, 0x52, 0x10, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x68, - 0x61, 0x69, 0x6e, 0x12, 0x30, 0x0a, 0x14, 0x69, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x5f, - 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x12, 0x69, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x53, 0x6b, 0x69, 0x70, 0x56, - 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x44, 0x0a, 0x0e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, - 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x48, 0x08, 0x52, 0x0d, 0x6f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x04, 0x68, - 0x64, 0x66, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x44, 0x46, 0x53, 0x48, 0x09, 0x52, 0x04, 0x68, 0x64, - 0x66, 0x73, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, - 0x70, 0x61, 0x74, 0x68, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, - 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x0a, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x1a, 0x39, 0x0a, 0x0b, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x39, 0x0a, 0x0c, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x11, 0xfa, 0x42, 0x0e, 0x32, 0x0c, 0x18, 0x80, 0x80, 0x80, + 0x20, 0x28, 0x80, 0x80, 0x80, 0x02, 0x40, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x70, 0x69, 0x65, 0x63, + 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x74, 0x61, + 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x03, 0x74, 0x61, 0x67, 0x88, 0x01, + 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x15, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x13, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, + 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x44, 0x0a, 0x06, + 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x65, 0x68, + 0x65, 0x61, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x34, 0xfa, 0x42, 0x31, 0x72, 0x2f, 0x32, 0x2d, 0x5e, 0x28, 0x73, 0x69, 0x6e, 0x67, + 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x65, 0x64, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x7c, 0x61, 0x6c, 0x6c, + 0x5f, 0x73, 0x65, 0x65, 0x64, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x73, 0x7c, 0x61, 0x6c, 0x6c, 0x5f, + 0x70, 0x65, 0x65, 0x72, 0x73, 0x29, 0x24, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x69, 0x70, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x69, 0x70, 0x73, + 0x12, 0x30, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x0b, 0xfa, 0x42, 0x08, 0x2a, 0x06, 0x18, 0x64, 0x28, 0x01, 0x40, + 0x01, 0x48, 0x03, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x27, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x0c, 0xfa, 0x42, 0x09, 0x2a, 0x07, 0x18, 0xc8, 0x01, 0x28, 0x01, 0x40, 0x01, 0x48, + 0x04, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x15, 0x63, + 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x42, 0x0b, 0xfa, 0x42, 0x08, 0x22, + 0x06, 0x18, 0x64, 0x28, 0x01, 0x40, 0x01, 0x48, 0x05, 0x52, 0x13, 0x63, 0x6f, 0x6e, 0x63, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x45, 0x0a, 0x15, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, + 0x70, 0x65, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, + 0x42, 0x0c, 0xfa, 0x42, 0x09, 0x22, 0x07, 0x18, 0xe8, 0x07, 0x28, 0x01, 0x40, 0x01, 0x48, 0x06, + 0x52, 0x13, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, + 0x6f, 0x75, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x07, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x39, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, + 0x2e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x82, 0x01, + 0x02, 0x10, 0x01, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x2b, 0x0a, + 0x11, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x10, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x30, 0x0a, 0x14, 0x69, 0x6e, + 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, + 0x66, 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x69, 0x6e, 0x73, 0x65, 0x63, 0x75, + 0x72, 0x65, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x44, 0x0a, 0x0e, + 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x11, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, + 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x48, 0x08, + 0x52, 0x0d, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x28, 0x0a, 0x04, 0x68, 0x64, 0x66, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x44, 0x46, + 0x53, 0x48, 0x09, 0x52, 0x04, 0x68, 0x64, 0x66, 0x73, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x0b, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x13, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x0a, 0x52, + 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x1a, 0x39, + 0x0a, 0x0b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x69, + 0x65, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x74, + 0x61, 0x67, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, + 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x18, 0x0a, 0x16, 0x5f, + 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, + 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, + 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x68, 0x64, 0x66, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x22, 0x93, 0x06, 0x0a, 0x0f, 0x53, 0x74, 0x61, 0x74, + 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x03, 0x75, + 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x88, + 0x01, 0x01, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x39, 0x0a, 0x0c, 0x70, 0x69, 0x65, 0x63, 0x65, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x11, 0xfa, + 0x42, 0x0e, 0x32, 0x0c, 0x18, 0x80, 0x80, 0x80, 0x20, 0x28, 0x80, 0x80, 0x80, 0x02, 0x40, 0x01, + 0x48, 0x00, 0x52, 0x0b, 0x70, 0x69, 0x65, 0x63, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, + 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x01, 0x52, 0x03, 0x74, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, + 0x52, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, + 0x12, 0x32, 0x0a, 0x15, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x65, + 0x72, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x13, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, + 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x45, 0x0a, 0x15, 0x63, 0x6f, 0x6e, 0x63, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x42, 0x0c, 0xfa, 0x42, 0x09, 0x22, 0x07, 0x18, 0xe8, 0x07, + 0x28, 0x01, 0x40, 0x01, 0x48, 0x03, 0x52, 0x13, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, + 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x38, + 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x04, 0x52, 0x07, 0x74, 0x69, + 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x65, 0x72, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x18, 0x09, 0x20, + 0x03, 0x28, 0x0c, 0x52, 0x10, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x30, 0x0a, 0x14, 0x69, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x72, + 0x65, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x12, 0x69, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x53, 0x6b, 0x69, + 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x44, 0x0a, 0x0e, 0x6f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x18, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x48, 0x05, 0x52, 0x0d, 0x6f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, + 0x04, 0x68, 0x64, 0x66, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x44, 0x46, 0x53, 0x48, 0x06, 0x52, 0x04, + 0x68, 0x64, 0x66, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x39, 0x0a, 0x0b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x74, 0x61, 0x67, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, - 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, - 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, - 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x18, - 0x0a, 0x16, 0x5f, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x65, - 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x6f, 0x75, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x68, 0x64, 0x66, 0x73, - 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, - 0x22, 0x93, 0x06, 0x0a, 0x0f, 0x53, 0x74, 0x61, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x88, 0x01, 0x01, 0x52, 0x03, 0x75, 0x72, 0x6c, - 0x12, 0x39, 0x0a, 0x0c, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x11, 0xfa, 0x42, 0x0e, 0x32, 0x0c, 0x18, 0x80, 0x80, - 0x80, 0x20, 0x28, 0x80, 0x80, 0x80, 0x02, 0x40, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x70, 0x69, 0x65, - 0x63, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x74, - 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x03, 0x74, 0x61, 0x67, 0x88, - 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x15, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x13, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x65, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x41, 0x0a, - 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x18, 0x0a, 0x16, 0x5f, + 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, + 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x68, 0x64, 0x66, 0x73, 0x22, 0x40, 0x0a, + 0x10, 0x53, 0x74, 0x61, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x2c, 0x0a, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x16, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, + 0x50, 0x65, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x22, + 0x6d, 0x0a, 0x08, 0x50, 0x65, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x68, + 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, + 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x0c, 0x63, 0x61, 0x63, 0x68, 0x65, + 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x6c, + 0x65, 0x52, 0x0b, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x22, 0x58, + 0x0a, 0x04, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x88, 0x01, 0x01, 0x52, 0x03, 0x75, + 0x72, 0x6c, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0a, 0x69, 0x73, 0x46, 0x69, 0x6e, + 0x69, 0x73, 0x68, 0x65, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x73, 0x5f, + 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x32, 0xc2, 0x17, 0x0a, 0x09, 0x53, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x12, 0x59, 0x0a, 0x0c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, + 0x63, 0x65, 0x50, 0x65, 0x65, 0x72, 0x12, 0x21, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x50, 0x65, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x73, 0x63, 0x68, 0x65, + 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, + 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x28, 0x01, 0x30, + 0x01, 0x12, 0x3a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x74, 0x50, 0x65, 0x65, 0x72, 0x12, 0x1d, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, - 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x48, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x12, 0x45, 0x0a, 0x15, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x70, - 0x65, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x42, - 0x0c, 0xfa, 0x42, 0x09, 0x22, 0x07, 0x18, 0xe8, 0x07, 0x28, 0x01, 0x40, 0x01, 0x48, 0x03, 0x52, - 0x13, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, - 0x75, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x48, 0x04, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x10, 0x63, 0x65, - 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x30, - 0x0a, 0x14, 0x69, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, - 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x69, 0x6e, - 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, - 0x12, 0x44, 0x0a, 0x0e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x48, 0x05, 0x52, 0x0d, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x04, 0x68, 0x64, 0x66, 0x73, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, - 0x2e, 0x48, 0x44, 0x46, 0x53, 0x48, 0x06, 0x52, 0x04, 0x68, 0x64, 0x66, 0x73, 0x88, 0x01, 0x01, - 0x1a, 0x39, 0x0a, 0x0b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, - 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, - 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, - 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x06, 0x0a, 0x04, - 0x5f, 0x74, 0x61, 0x67, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, - 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0a, - 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x68, 0x64, 0x66, 0x73, 0x22, 0x40, 0x0a, 0x10, 0x53, 0x74, 0x61, 0x74, 0x46, 0x69, - 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x05, 0x70, 0x65, - 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x46, 0x69, 0x6c, - 0x65, 0x52, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x22, 0x6d, 0x0a, 0x08, 0x50, 0x65, 0x65, 0x72, - 0x46, 0x69, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x02, 0x69, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x35, 0x0a, 0x0c, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, - 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x0b, 0x63, 0x61, 0x63, 0x68, - 0x65, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x22, 0x58, 0x0a, 0x04, 0x46, 0x69, 0x6c, 0x65, 0x12, - 0x1a, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, - 0x05, 0x72, 0x03, 0x88, 0x01, 0x01, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x24, 0x0a, 0x0b, 0x69, - 0x73, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x00, 0x52, 0x0a, 0x69, 0x73, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x88, 0x01, - 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x73, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, - 0x64, 0x32, 0xc2, 0x17, 0x0a, 0x09, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x12, - 0x59, 0x0a, 0x0c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x50, 0x65, 0x65, 0x72, 0x12, - 0x21, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x41, - 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, - 0x32, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x28, 0x01, 0x30, 0x01, 0x12, 0x3a, 0x0a, 0x08, 0x53, 0x74, - 0x61, 0x74, 0x50, 0x65, 0x65, 0x72, 0x12, 0x1d, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, - 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, - 0x32, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x12, 0x45, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x50, 0x65, 0x65, 0x72, 0x12, 0x1f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, - 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3a, 0x0a, - 0x08, 0x53, 0x74, 0x61, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x1d, 0x2e, 0x73, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x54, 0x61, 0x73, - 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x45, 0x0a, 0x0a, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x1f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, - 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, - 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x12, 0x49, 0x0a, 0x0c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x48, 0x6f, 0x73, 0x74, - 0x12, 0x21, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, - 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4c, 0x0a, 0x09, 0x4c, - 0x69, 0x73, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x73, 0x12, 0x1e, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, - 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x73, 0x74, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, - 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x73, 0x74, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0a, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x1f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, - 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x6f, 0x73, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x12, 0x68, 0x0a, 0x11, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x43, 0x61, 0x63, 0x68, - 0x65, 0x50, 0x65, 0x65, 0x72, 0x12, 0x26, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, - 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x43, 0x61, 0x63, - 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, - 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x6e, - 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x28, 0x01, 0x30, 0x01, 0x12, 0x49, 0x0a, 0x0d, 0x53, 0x74, - 0x61, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x12, 0x22, 0x2e, 0x73, 0x63, - 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x43, - 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x14, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, 0x63, 0x68, - 0x65, 0x50, 0x65, 0x65, 0x72, 0x12, 0x4f, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, - 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x12, 0x24, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, - 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x61, - 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x49, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x43, 0x61, - 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x22, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, - 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, - 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x63, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, - 0x6b, 0x12, 0x4f, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, - 0x54, 0x61, 0x73, 0x6b, 0x12, 0x24, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, - 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, - 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x74, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x12, 0x45, 0x0a, + 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x65, 0x65, 0x72, 0x12, 0x1f, 0x2e, 0x73, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x74, 0x54, 0x61, 0x73, 0x6b, + 0x12, 0x1d, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, + 0x12, 0x45, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x1f, + 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x49, 0x0a, 0x0c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, + 0x6e, 0x63, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x21, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, + 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x48, + 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x12, 0x77, 0x0a, 0x16, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x50, 0x65, - 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x12, 0x2b, 0x2e, 0x73, + 0x74, 0x79, 0x12, 0x4c, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x73, 0x12, + 0x1e, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x45, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x1f, + 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x68, 0x0a, 0x11, 0x41, 0x6e, 0x6e, 0x6f, 0x75, + 0x6e, 0x63, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x12, 0x26, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, - 0x75, 0x6e, 0x63, 0x65, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x50, 0x65, - 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x73, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, - 0x65, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x28, 0x01, 0x30, 0x01, 0x12, 0x58, 0x0a, 0x12, 0x53, - 0x74, 0x61, 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, - 0x72, 0x12, 0x27, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, - 0x2e, 0x53, 0x74, 0x61, 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x50, - 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, - 0x74, 0x50, 0x65, 0x65, 0x72, 0x12, 0x59, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, - 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x12, 0x29, 0x2e, - 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x12, 0x67, 0x0a, 0x1b, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, - 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x12, - 0x30, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x55, - 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, - 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x75, 0x6e, 0x63, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, + 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x43, 0x61, 0x63, 0x68, + 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x28, 0x01, 0x30, + 0x01, 0x12, 0x49, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, + 0x65, 0x72, 0x12, 0x22, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, + 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, + 0x76, 0x32, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x12, 0x4f, 0x0a, 0x0f, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x12, + 0x24, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x49, 0x0a, + 0x0d, 0x53, 0x74, 0x61, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x22, + 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, + 0x61, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x43, + 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x4f, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x24, 0x2e, 0x73, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x6c, 0x0a, 0x1c, 0x55, 0x70, 0x6c, - 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, - 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, - 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, - 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x63, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x77, 0x0a, 0x16, 0x41, 0x6e, 0x6e, + 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x50, + 0x65, 0x65, 0x72, 0x12, 0x2b, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, + 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x50, 0x65, 0x72, 0x73, 0x69, + 0x73, 0x74, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, + 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x28, 0x01, + 0x30, 0x01, 0x12, 0x58, 0x0a, 0x12, 0x53, 0x74, 0x61, 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, + 0x74, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x12, 0x27, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x50, 0x65, 0x72, 0x73, + 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x19, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, + 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x12, 0x59, 0x0a, 0x14, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, + 0x50, 0x65, 0x65, 0x72, 0x12, 0x29, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, + 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, + 0x74, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x67, 0x0a, 0x1b, 0x55, 0x70, 0x6c, 0x6f, 0x61, + 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x12, 0x30, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, + 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, + 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x12, 0x6c, 0x0a, 0x1c, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, + 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, + 0x12, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, + 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, + 0x54, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, + 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x65, + 0x0a, 0x1a, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x2f, 0x2e, 0x73, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x6c, 0x6f, + 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, + 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x58, 0x0a, 0x12, 0x53, 0x74, 0x61, 0x74, 0x50, 0x65, 0x72, + 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x27, 0x2e, 0x73, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x50, + 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, + 0x2e, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, + 0x59, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x29, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, + 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x65, 0x72, + 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x86, 0x01, 0x0a, 0x1b, 0x41, + 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, + 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x12, 0x30, 0x2e, 0x73, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, + 0x63, 0x65, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, + 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x73, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, + 0x75, 0x6e, 0x63, 0x65, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, + 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x28, + 0x01, 0x30, 0x01, 0x12, 0x67, 0x0a, 0x17, 0x53, 0x74, 0x61, 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, + 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x12, 0x2c, + 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, + 0x61, 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, + 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, - 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x65, 0x0a, 0x1a, 0x55, 0x70, 0x6c, 0x6f, 0x61, - 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x46, - 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x2f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, - 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, - 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x58, - 0x0a, 0x12, 0x53, 0x74, 0x61, 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, - 0x54, 0x61, 0x73, 0x6b, 0x12, 0x27, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, - 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, - 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, - 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x59, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, - 0x12, 0x29, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, + 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x12, 0x63, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, - 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x12, 0x86, 0x01, 0x0a, 0x1b, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, - 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, - 0x65, 0x65, 0x72, 0x12, 0x30, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, - 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x50, 0x65, 0x72, 0x73, 0x69, - 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, - 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x50, 0x65, 0x72, - 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x28, 0x01, 0x30, 0x01, 0x12, 0x67, 0x0a, 0x17, - 0x53, 0x74, 0x61, 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, - 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x12, 0x2c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, - 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, - 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, - 0x32, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, - 0x65, 0x50, 0x65, 0x65, 0x72, 0x12, 0x63, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, + 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x12, 0x2e, 0x2e, 0x73, 0x63, 0x68, 0x65, + 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, - 0x65, 0x72, 0x12, 0x2e, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, - 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x71, 0x0a, 0x20, 0x55, 0x70, - 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, - 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x12, 0x35, - 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, - 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, - 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x7b, 0x0a, - 0x21, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, - 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, - 0x65, 0x64, 0x12, 0x36, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, - 0x32, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, - 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, - 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x6f, 0x0a, 0x1f, 0x55, 0x70, - 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, - 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x34, 0x2e, - 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x6c, - 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, - 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x67, 0x0a, 0x17, 0x53, - 0x74, 0x61, 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, - 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x2c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, - 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, - 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, - 0x2e, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, - 0x54, 0x61, 0x73, 0x6b, 0x12, 0x63, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x65, - 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, - 0x6b, 0x12, 0x2e, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, - 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, - 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x49, 0x0a, 0x0c, 0x50, 0x72, 0x65, - 0x68, 0x65, 0x61, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x21, 0x2e, 0x73, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x65, 0x68, 0x65, 0x61, 0x74, - 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x12, 0x71, 0x0a, 0x20, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, + 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x65, 0x64, 0x12, 0x35, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, + 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x74, 0x49, 0x6d, 0x61, 0x67, - 0x65, 0x12, 0x1e, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, - 0x2e, 0x53, 0x74, 0x61, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, - 0x2e, 0x53, 0x74, 0x61, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0b, 0x50, 0x72, 0x65, 0x68, 0x65, 0x61, 0x74, 0x46, 0x69, 0x6c, - 0x65, 0x12, 0x20, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, - 0x2e, 0x50, 0x72, 0x65, 0x68, 0x65, 0x61, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x6d, 0x70, 0x74, 0x79, 0x12, 0x7b, 0x0a, 0x21, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, + 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, + 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x36, 0x2e, 0x73, 0x63, 0x68, 0x65, + 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, + 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, + 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1e, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, + 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, + 0x6b, 0x12, 0x6f, 0x0a, 0x1f, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, + 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x61, + 0x69, 0x6c, 0x65, 0x64, 0x12, 0x34, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, + 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, + 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x61, 0x69, + 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x12, 0x67, 0x0a, 0x17, 0x53, 0x74, 0x61, 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, + 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x2c, 0x2e, + 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, + 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, + 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x63, 0x0a, 0x19, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, + 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x2e, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x65, + 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, + 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x12, 0x49, 0x0a, 0x0c, 0x50, 0x72, 0x65, 0x68, 0x65, 0x61, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, + 0x12, 0x21, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, + 0x50, 0x72, 0x65, 0x68, 0x65, 0x61, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x49, 0x0a, 0x08, 0x53, - 0x74, 0x61, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x1d, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, - 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, - 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x2f, 0x5a, 0x2d, 0x64, 0x37, 0x79, 0x2e, 0x69, 0x6f, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x61, 0x70, 0x69, 0x73, - 0x2f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2f, 0x76, 0x32, 0x3b, 0x73, 0x63, - 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4c, 0x0a, 0x09, 0x53, + 0x74, 0x61, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x49, 0x6d, 0x61, 0x67, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x49, 0x6d, 0x61, 0x67, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0b, 0x50, 0x72, 0x65, + 0x68, 0x65, 0x61, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x20, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x65, 0x68, 0x65, 0x61, 0x74, 0x46, + 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x12, 0x49, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x1d, + 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, + 0x61, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, + 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, + 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x2f, 0x5a, + 0x2d, 0x64, 0x37, 0x79, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x70, + 0x6b, 0x67, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x72, 0x2f, 0x76, 0x32, 0x3b, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/pkg/apis/scheduler/v2/scheduler.pb.validate.go b/pkg/apis/scheduler/v2/scheduler.pb.validate.go index 416ab77..1814df0 100644 --- a/pkg/apis/scheduler/v2/scheduler.pb.validate.go +++ b/pkg/apis/scheduler/v2/scheduler.pb.validate.go @@ -13205,6 +13205,8 @@ func (m *StatImageRequest) validate(all bool) error { } + // no validation rules for EnableTaskIdBasedBlobDigest + if m.PieceLength != nil { if m.GetPieceLength() != 0 { diff --git a/pkg/apis/scheduler/v2/scheduler.proto b/pkg/apis/scheduler/v2/scheduler.proto index 41cc35d..3b9848e 100644 --- a/pkg/apis/scheduler/v2/scheduler.proto +++ b/pkg/apis/scheduler/v2/scheduler.proto @@ -1018,6 +1018,11 @@ message StatImageRequest { pattern: "^(all_seed_peers|all_peers)$" ignore_empty: true }]; + // enable_task_id_based_blob_digest indicates whether to use the blob digest for task ID calculation + // when the layer url is an OCI blob url (e.g., /v2//blobs/sha256:). It should be + // consistent with the value used when the image was preheated, otherwise the tasks can not be + // found on the peers. + bool enable_task_id_based_blob_digest = 16; } // StatImageResponse represents response of StatImage. diff --git a/proto/scheduler.proto b/proto/scheduler.proto index d927fb5..b590c09 100644 --- a/proto/scheduler.proto +++ b/proto/scheduler.proto @@ -884,6 +884,11 @@ message StatImageRequest { // - all_peers: stat image from all available peers. // If not specified, stat image from all available peers. string scope = 15; + // enable_task_id_based_blob_digest indicates whether to use the blob digest for task ID calculation + // when the layer url is an OCI blob url (e.g., /v2//blobs/sha256:). It should be + // consistent with the value used when the image was preheated, otherwise the tasks can not be + // found on the peers. + bool enable_task_id_based_blob_digest = 16; } // StatImageResponse represents response of StatImage. diff --git a/python/dragonfly_api/scheduler_pb2.py b/python/dragonfly_api/scheduler_pb2.py index 4f62cce..ed94ccc 100644 --- a/python/dragonfly_api/scheduler_pb2.py +++ b/python/dragonfly_api/scheduler_pb2.py @@ -28,7 +28,7 @@ from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0fscheduler.proto\x12\x0cscheduler.v2\x1a\x0c\x63ommon.proto\x1a\x12\x65rrordetails.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1bgoogle/protobuf/empty.proto\"<\n\x13RegisterPeerRequest\x12%\n\x08\x64ownload\x18\x01 \x01(\x0b\x32\x13.common.v2.Download\"\x1c\n\x1a\x44ownloadPeerStartedRequest\"R\n&DownloadPeerBackToSourceStartedRequest\x12\x18\n\x0b\x64\x65scription\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\"m\n\x15ReschedulePeerRequest\x12*\n\x11\x63\x61ndidate_parents\x18\x01 \x03(\x0b\x32\x0f.common.v2.Peer\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\"F\n\x1b\x44ownloadPeerFinishedRequestJ\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03R\x0e\x63ontent_lengthR\x0bpiece_count\"R\n\'DownloadPeerBackToSourceFinishedRequestJ\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03R\x0e\x63ontent_lengthR\x0bpiece_count\"E\n\x19\x44ownloadPeerFailedRequest\x12\x18\n\x0b\x64\x65scription\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\"Q\n%DownloadPeerBackToSourceFailedRequest\x12\x18\n\x0b\x64\x65scription\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\"?\n\x1c\x44ownloadPieceFinishedRequest\x12\x1f\n\x05piece\x18\x01 \x01(\x0b\x32\x10.common.v2.Piece\"K\n(DownloadPieceBackToSourceFinishedRequest\x12\x1f\n\x05piece\x18\x01 \x01(\x0b\x32\x10.common.v2.Piece\"n\n\x1a\x44ownloadPieceFailedRequest\x12\x19\n\x0cpiece_number\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\tparent_id\x18\x02 \x01(\t\x12\x11\n\ttemporary\x18\x03 \x01(\x08\x42\x0f\n\r_piece_number\"\xba\x01\n&DownloadPieceBackToSourceFailedRequest\x12\x19\n\x0cpiece_number\x18\x01 \x01(\rH\x01\x88\x01\x01\x12+\n\x07\x62\x61\x63kend\x18\x02 \x01(\x0b\x32\x18.errordetails.v2.BackendH\x00\x12+\n\x07unknown\x18\x03 \x01(\x0b\x32\x18.errordetails.v2.UnknownH\x00\x42\n\n\x08responseB\x0f\n\r_piece_number\"\xac\t\n\x13\x41nnouncePeerRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x0f\n\x07peer_id\x18\x03 \x01(\t\x12\x42\n\x15register_peer_request\x18\x04 \x01(\x0b\x32!.scheduler.v2.RegisterPeerRequestH\x00\x12Q\n\x1d\x64ownload_peer_started_request\x18\x05 \x01(\x0b\x32(.scheduler.v2.DownloadPeerStartedRequestH\x00\x12l\n,download_peer_back_to_source_started_request\x18\x06 \x01(\x0b\x32\x34.scheduler.v2.DownloadPeerBackToSourceStartedRequestH\x00\x12\x46\n\x17reschedule_peer_request\x18\x07 \x01(\x0b\x32#.scheduler.v2.ReschedulePeerRequestH\x00\x12S\n\x1e\x64ownload_peer_finished_request\x18\x08 \x01(\x0b\x32).scheduler.v2.DownloadPeerFinishedRequestH\x00\x12n\n-download_peer_back_to_source_finished_request\x18\t \x01(\x0b\x32\x35.scheduler.v2.DownloadPeerBackToSourceFinishedRequestH\x00\x12O\n\x1c\x64ownload_peer_failed_request\x18\n \x01(\x0b\x32\'.scheduler.v2.DownloadPeerFailedRequestH\x00\x12j\n+download_peer_back_to_source_failed_request\x18\x0b \x01(\x0b\x32\x33.scheduler.v2.DownloadPeerBackToSourceFailedRequestH\x00\x12U\n\x1f\x64ownload_piece_finished_request\x18\x0c \x01(\x0b\x32*.scheduler.v2.DownloadPieceFinishedRequestH\x00\x12p\n.download_piece_back_to_source_finished_request\x18\r \x01(\x0b\x32\x36.scheduler.v2.DownloadPieceBackToSourceFinishedRequestH\x00\x12Q\n\x1d\x64ownload_piece_failed_request\x18\x0e \x01(\x0b\x32(.scheduler.v2.DownloadPieceFailedRequestH\x00\x12l\n,download_piece_back_to_source_failed_request\x18\x0f \x01(\x0b\x32\x34.scheduler.v2.DownloadPieceBackToSourceFailedRequestH\x00\x42\t\n\x07request\"\x13\n\x11\x45mptyTaskResponse\"@\n\x12NormalTaskResponse\x12*\n\x11\x63\x61ndidate_parents\x18\x01 \x03(\x0b\x32\x0f.common.v2.Peer\"D\n\x18NeedBackToSourceResponse\x12\x18\n\x0b\x64\x65scription\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\"\x16\n\x14MetadataOnlyResponse\"\xba\x02\n\x14\x41nnouncePeerResponse\x12>\n\x13\x65mpty_task_response\x18\x01 \x01(\x0b\x32\x1f.scheduler.v2.EmptyTaskResponseH\x00\x12@\n\x14normal_task_response\x18\x02 \x01(\x0b\x32 .scheduler.v2.NormalTaskResponseH\x00\x12N\n\x1cneed_back_to_source_response\x18\x03 \x01(\x0b\x32&.scheduler.v2.NeedBackToSourceResponseH\x00\x12\x44\n\x16metadata_only_response\x18\x04 \x01(\x0b\x32\".scheduler.v2.MetadataOnlyResponseH\x00\x42\n\n\x08response\"D\n\x0fStatPeerRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x0f\n\x07peer_id\x18\x03 \x01(\t\"F\n\x11\x44\x65letePeerRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x0f\n\x07peer_id\x18\x03 \x01(\t\"3\n\x0fStatTaskRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\"5\n\x11\x44\x65leteTaskRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\"s\n\x13\x41nnounceHostRequest\x12\x1d\n\x04host\x18\x01 \x01(\x0b\x32\x0f.common.v2.Host\x12\x30\n\x08interval\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x88\x01\x01\x42\x0b\n\t_interval\".\n\x10ListHostsRequest\x12\x11\n\x04type\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\x07\n\x05_type\"3\n\x11ListHostsResponse\x12\x1e\n\x05hosts\x18\x01 \x03(\x0b\x32\x0f.common.v2.Host\"$\n\x11\x44\x65leteHostRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\"\xba\t\n\x18RegisterCachePeerRequest\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x13\n\x06\x64igest\x18\x02 \x01(\tH\x00\x88\x01\x01\x12$\n\x05range\x18\x03 \x01(\x0b\x32\x10.common.v2.RangeH\x01\x88\x01\x01\x12!\n\x04type\x18\x04 \x01(\x0e\x32\x13.common.v2.TaskType\x12\x10\n\x03tag\x18\x05 \x01(\tH\x02\x88\x01\x01\x12\x18\n\x0b\x61pplication\x18\x06 \x01(\tH\x03\x88\x01\x01\x12%\n\x08priority\x18\x07 \x01(\x0e\x32\x13.common.v2.Priority\x12\x1d\n\x15\x66iltered_query_params\x18\x08 \x03(\t\x12Q\n\x0erequest_header\x18\t \x03(\x0b\x32\x39.scheduler.v2.RegisterCachePeerRequest.RequestHeaderEntry\x12\x19\n\x0cpiece_length\x18\n \x01(\x04H\x04\x88\x01\x01\x12\x18\n\x0boutput_path\x18\x0b \x01(\tH\x05\x88\x01\x01\x12/\n\x07timeout\x18\x0c \x01(\x0b\x32\x19.google.protobuf.DurationH\x06\x88\x01\x01\x12\x1e\n\x16\x64isable_back_to_source\x18\r \x01(\x08\x12\x1b\n\x13need_back_to_source\x18\x0e \x01(\x08\x12\x19\n\x11\x63\x65rtificate_chain\x18\x0f \x03(\x0c\x12\x10\n\x08prefetch\x18\x10 \x01(\x08\x12\x35\n\x0eobject_storage\x18\x11 \x01(\x0b\x32\x18.common.v2.ObjectStorageH\x07\x88\x01\x01\x12\"\n\x04hdfs\x18\x12 \x01(\x0b\x32\x0f.common.v2.HDFSH\x08\x88\x01\x01\x12\x13\n\x0bis_prefetch\x18\x13 \x01(\x08\x12\x1a\n\x12need_piece_content\x18\x14 \x01(\x08\x12,\n\x1f\x63ontent_for_calculating_task_id\x18\x15 \x01(\tH\t\x88\x01\x01\x12\x16\n\tremote_ip\x18\x16 \x01(\tH\n\x88\x01\x01\x12#\n\x16\x63oncurrent_piece_count\x18\x17 \x01(\rH\x0b\x88\x01\x01\x12 \n\x13\x61\x63tual_piece_length\x18\x18 \x01(\x04H\x0c\x88\x01\x01\x12\"\n\x15\x61\x63tual_content_length\x18\x19 \x01(\x04H\r\x88\x01\x01\x12\x1f\n\x12\x61\x63tual_piece_count\x18\x1a \x01(\x04H\x0e\x88\x01\x01\x1a\x34\n\x12RequestHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\t\n\x07_digestB\x08\n\x06_rangeB\x06\n\x04_tagB\x0e\n\x0c_applicationB\x0f\n\r_piece_lengthB\x0e\n\x0c_output_pathB\n\n\x08_timeoutB\x11\n\x0f_object_storageB\x07\n\x05_hdfsB\"\n _content_for_calculating_task_idB\x0c\n\n_remote_ipB\x19\n\x17_concurrent_piece_countB\x16\n\x14_actual_piece_lengthB\x18\n\x16_actual_content_lengthB\x15\n\x13_actual_piece_count\"!\n\x1f\x44ownloadCachePeerStartedRequest\"W\n+DownloadCachePeerBackToSourceStartedRequest\x12\x18\n\x0b\x64\x65scription\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\"w\n\x1aRescheduleCachePeerRequest\x12/\n\x11\x63\x61ndidate_parents\x18\x01 \x03(\x0b\x32\x14.common.v2.CachePeer\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\"K\n DownloadCachePeerFinishedRequestJ\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03R\x0e\x63ontent_lengthR\x0bpiece_count\"W\n,DownloadCachePeerBackToSourceFinishedRequestJ\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03R\x0e\x63ontent_lengthR\x0bpiece_count\"J\n\x1e\x44ownloadCachePeerFailedRequest\x12\x18\n\x0b\x64\x65scription\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\"V\n*DownloadCachePeerBackToSourceFailedRequest\x12\x18\n\x0b\x64\x65scription\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\"\x89\n\n\x18\x41nnounceCachePeerRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x0f\n\x07peer_id\x18\x03 \x01(\t\x12M\n\x1bregister_cache_peer_request\x18\x04 \x01(\x0b\x32&.scheduler.v2.RegisterCachePeerRequestH\x00\x12\\\n#download_cache_peer_started_request\x18\x05 \x01(\x0b\x32-.scheduler.v2.DownloadCachePeerStartedRequestH\x00\x12w\n2download_cache_peer_back_to_source_started_request\x18\x06 \x01(\x0b\x32\x39.scheduler.v2.DownloadCachePeerBackToSourceStartedRequestH\x00\x12Q\n\x1dreschedule_cache_peer_request\x18\x07 \x01(\x0b\x32(.scheduler.v2.RescheduleCachePeerRequestH\x00\x12^\n$download_cache_peer_finished_request\x18\x08 \x01(\x0b\x32..scheduler.v2.DownloadCachePeerFinishedRequestH\x00\x12y\n3download_cache_peer_back_to_source_finished_request\x18\t \x01(\x0b\x32:.scheduler.v2.DownloadCachePeerBackToSourceFinishedRequestH\x00\x12Z\n\"download_cache_peer_failed_request\x18\n \x01(\x0b\x32,.scheduler.v2.DownloadCachePeerFailedRequestH\x00\x12u\n1download_cache_peer_back_to_source_failed_request\x18\x0b \x01(\x0b\x32\x38.scheduler.v2.DownloadCachePeerBackToSourceFailedRequestH\x00\x12U\n\x1f\x64ownload_piece_finished_request\x18\x0c \x01(\x0b\x32*.scheduler.v2.DownloadPieceFinishedRequestH\x00\x12p\n.download_piece_back_to_source_finished_request\x18\r \x01(\x0b\x32\x36.scheduler.v2.DownloadPieceBackToSourceFinishedRequestH\x00\x12Q\n\x1d\x64ownload_piece_failed_request\x18\x0e \x01(\x0b\x32(.scheduler.v2.DownloadPieceFailedRequestH\x00\x12l\n,download_piece_back_to_source_failed_request\x18\x0f \x01(\x0b\x32\x34.scheduler.v2.DownloadPieceBackToSourceFailedRequestH\x00\x42\t\n\x07request\"\x18\n\x16\x45mptyCacheTaskResponse\"J\n\x17NormalCacheTaskResponse\x12/\n\x11\x63\x61ndidate_parents\x18\x01 \x03(\x0b\x32\x14.common.v2.CachePeer\"\x8f\x02\n\x19\x41nnounceCachePeerResponse\x12I\n\x19\x65mpty_cache_task_response\x18\x01 \x01(\x0b\x32$.scheduler.v2.EmptyCacheTaskResponseH\x00\x12K\n\x1anormal_cache_task_response\x18\x02 \x01(\x0b\x32%.scheduler.v2.NormalCacheTaskResponseH\x00\x12N\n\x1cneed_back_to_source_response\x18\x03 \x01(\x0b\x32&.scheduler.v2.NeedBackToSourceResponseH\x00\x42\n\n\x08response\"I\n\x14StatCachePeerRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x0f\n\x07peer_id\x18\x03 \x01(\t\"K\n\x16\x44\x65leteCachePeerRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x0f\n\x07peer_id\x18\x03 \x01(\t\"8\n\x14StatCacheTaskRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\":\n\x16\x44\x65leteCacheTaskRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\"\x8e\x02\n\x1dRegisterPersistentPeerRequest\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x30\n\x0eobject_storage\x18\x02 \x01(\x0b\x32\x18.common.v2.ObjectStorage\x12\x12\n\npersistent\x18\x03 \x01(\x08\x12\x18\n\x0boutput_path\x18\x04 \x01(\tH\x00\x88\x01\x01\x12#\n\x16\x63oncurrent_piece_count\x18\x05 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x0bpiece_count\x18\x06 \x01(\x04\x12\x1b\n\x13need_back_to_source\x18\x07 \x01(\x08\x42\x0e\n\x0c_output_pathB\x19\n\x17_concurrent_piece_count\"&\n$DownloadPersistentPeerStartedRequest\"\\\n0DownloadPersistentPeerBackToSourceStartedRequest\x12\x18\n\x0b\x64\x65scription\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\"\x81\x01\n\x1fReschedulePersistentPeerRequest\x12\x34\n\x11\x63\x61ndidate_parents\x18\x01 \x03(\x0b\x32\x19.common.v2.PersistentPeer\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\"\'\n%DownloadPersistentPeerFinishedRequest\"3\n1DownloadPersistentPeerBackToSourceFinishedRequest\"O\n#DownloadPersistentPeerFailedRequest\x12\x18\n\x0b\x64\x65scription\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\"[\n/DownloadPersistentPeerBackToSourceFailedRequest\x12\x18\n\x0b\x64\x65scription\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\"\xe0\n\n\x1d\x41nnouncePersistentPeerRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x0f\n\x07peer_id\x18\x03 \x01(\t\x12W\n register_persistent_peer_request\x18\x04 \x01(\x0b\x32+.scheduler.v2.RegisterPersistentPeerRequestH\x00\x12\x66\n(download_persistent_peer_started_request\x18\x05 \x01(\x0b\x32\x32.scheduler.v2.DownloadPersistentPeerStartedRequestH\x00\x12\x81\x01\n7download_persistent_peer_back_to_source_started_request\x18\x06 \x01(\x0b\x32>.scheduler.v2.DownloadPersistentPeerBackToSourceStartedRequestH\x00\x12[\n\"reschedule_persistent_peer_request\x18\x07 \x01(\x0b\x32-.scheduler.v2.ReschedulePersistentPeerRequestH\x00\x12h\n)download_persistent_peer_finished_request\x18\x08 \x01(\x0b\x32\x33.scheduler.v2.DownloadPersistentPeerFinishedRequestH\x00\x12\x83\x01\n8download_persistent_peer_back_to_source_finished_request\x18\t \x01(\x0b\x32?.scheduler.v2.DownloadPersistentPeerBackToSourceFinishedRequestH\x00\x12\x64\n\'download_persistent_peer_failed_request\x18\n \x01(\x0b\x32\x31.scheduler.v2.DownloadPersistentPeerFailedRequestH\x00\x12\x7f\n6download_persistent_peer_back_to_source_failed_request\x18\x0b \x01(\x0b\x32=.scheduler.v2.DownloadPersistentPeerBackToSourceFailedRequestH\x00\x12U\n\x1f\x64ownload_piece_finished_request\x18\x0c \x01(\x0b\x32*.scheduler.v2.DownloadPieceFinishedRequestH\x00\x12p\n.download_piece_back_to_source_finished_request\x18\r \x01(\x0b\x32\x36.scheduler.v2.DownloadPieceBackToSourceFinishedRequestH\x00\x12Q\n\x1d\x64ownload_piece_failed_request\x18\x0e \x01(\x0b\x32(.scheduler.v2.DownloadPieceFailedRequestH\x00\x12l\n,download_piece_back_to_source_failed_request\x18\x0f \x01(\x0b\x32\x34.scheduler.v2.DownloadPieceBackToSourceFailedRequestH\x00\x42\t\n\x07request\"\x1d\n\x1b\x45mptyPersistentTaskResponse\"T\n\x1cNormalPersistentTaskResponse\x12\x34\n\x11\x63\x61ndidate_parents\x18\x01 \x03(\x0b\x32\x19.common.v2.PersistentPeer\"\xa8\x02\n\x1e\x41nnouncePersistentPeerResponse\x12S\n\x1e\x65mpty_persistent_task_response\x18\x01 \x01(\x0b\x32).scheduler.v2.EmptyPersistentTaskResponseH\x00\x12U\n\x1fnormal_persistent_task_response\x18\x02 \x01(\x0b\x32*.scheduler.v2.NormalPersistentTaskResponseH\x00\x12N\n\x1cneed_back_to_source_response\x18\x03 \x01(\x0b\x32&.scheduler.v2.NeedBackToSourceResponseH\x00\x42\n\n\x08response\"N\n\x19StatPersistentPeerRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x0f\n\x07peer_id\x18\x03 \x01(\t\"P\n\x1b\x44\x65letePersistentPeerRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x0f\n\x07peer_id\x18\x03 \x01(\t\"\x8d\x02\n\"UploadPersistentTaskStartedRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x0f\n\x07peer_id\x18\x03 \x01(\t\x12\x0b\n\x03url\x18\x04 \x01(\t\x12\x30\n\x0eobject_storage\x18\x05 \x01(\x0b\x32\x18.common.v2.ObjectStorage\x12 \n\x18persistent_replica_count\x18\x06 \x01(\x04\x12\x16\n\x0e\x63ontent_length\x18\x07 \x01(\x04\x12\x13\n\x0bpiece_count\x18\x08 \x01(\r\x12&\n\x03ttl\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\"X\n#UploadPersistentTaskFinishedRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x0f\n\x07peer_id\x18\x03 \x01(\t\"\x80\x01\n!UploadPersistentTaskFailedRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x0f\n\x07peer_id\x18\x03 \x01(\t\x12\x18\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\"=\n\x19StatPersistentTaskRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\"?\n\x1b\x44\x65letePersistentTaskRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\"\x91\x02\n\"RegisterPersistentCachePeerRequest\x12\x12\n\npersistent\x18\x01 \x01(\x08\x12\x10\n\x03tag\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x61pplication\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x0cpiece_length\x18\x04 \x01(\x04\x12\x18\n\x0boutput_path\x18\x05 \x01(\tH\x02\x88\x01\x01\x12#\n\x16\x63oncurrent_piece_count\x18\x06 \x01(\rH\x03\x88\x01\x01\x12\x13\n\x0bpiece_count\x18\x07 \x01(\x04\x42\x06\n\x04_tagB\x0e\n\x0c_applicationB\x0e\n\x0c_output_pathB\x19\n\x17_concurrent_piece_count\"+\n)DownloadPersistentCachePeerStartedRequest\"\x8b\x01\n$ReschedulePersistentCachePeerRequest\x12\x39\n\x11\x63\x61ndidate_parents\x18\x01 \x03(\x0b\x32\x1e.common.v2.PersistentCachePeer\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\"?\n*DownloadPersistentCachePeerFinishedRequestJ\x04\x08\x01\x10\x02R\x0bpiece_count\"T\n(DownloadPersistentCachePeerFailedRequest\x12\x18\n\x0b\x64\x65scription\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\"\xb1\x06\n\"AnnouncePersistentCachePeerRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x0f\n\x07peer_id\x18\x03 \x01(\t\x12\x62\n®ister_persistent_cache_peer_request\x18\x04 \x01(\x0b\x32\x30.scheduler.v2.RegisterPersistentCachePeerRequestH\x00\x12q\n.download_persistent_cache_peer_started_request\x18\x05 \x01(\x0b\x32\x37.scheduler.v2.DownloadPersistentCachePeerStartedRequestH\x00\x12\x66\n(reschedule_persistent_cache_peer_request\x18\x06 \x01(\x0b\x32\x32.scheduler.v2.ReschedulePersistentCachePeerRequestH\x00\x12s\n/download_persistent_cache_peer_finished_request\x18\x07 \x01(\x0b\x32\x38.scheduler.v2.DownloadPersistentCachePeerFinishedRequestH\x00\x12o\n-download_persistent_cache_peer_failed_request\x18\x08 \x01(\x0b\x32\x36.scheduler.v2.DownloadPersistentCachePeerFailedRequestH\x00\x12U\n\x1f\x64ownload_piece_finished_request\x18\t \x01(\x0b\x32*.scheduler.v2.DownloadPieceFinishedRequestH\x00\x12Q\n\x1d\x64ownload_piece_failed_request\x18\n \x01(\x0b\x32(.scheduler.v2.DownloadPieceFailedRequestH\x00\x42\t\n\x07request\"\"\n EmptyPersistentCacheTaskResponse\"d\n!NormalPersistentCacheTaskResponse\x12?\n\x17\x63\x61ndidate_cache_parents\x18\x01 \x03(\x0b\x32\x1e.common.v2.PersistentCachePeer\"\xf3\x01\n#AnnouncePersistentCachePeerResponse\x12^\n$empty_persistent_cache_task_response\x18\x01 \x01(\x0b\x32..scheduler.v2.EmptyPersistentCacheTaskResponseH\x00\x12`\n%normal_persistent_cache_task_response\x18\x02 \x01(\x0b\x32/.scheduler.v2.NormalPersistentCacheTaskResponseH\x00\x42\n\n\x08response\"S\n\x1eStatPersistentCachePeerRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x0f\n\x07peer_id\x18\x03 \x01(\t\"U\n DeletePersistentCachePeerRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x0f\n\x07peer_id\x18\x03 \x01(\t\"\xad\x02\n\'UploadPersistentCacheTaskStartedRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x0f\n\x07peer_id\x18\x03 \x01(\t\x12 \n\x18persistent_replica_count\x18\x04 \x01(\x04\x12\x10\n\x03tag\x18\x05 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x61pplication\x18\x06 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x0cpiece_length\x18\x07 \x01(\x04\x12\x16\n\x0e\x63ontent_length\x18\x08 \x01(\x04\x12\x13\n\x0bpiece_count\x18\t \x01(\r\x12&\n\x03ttl\x18\n \x01(\x0b\x32\x19.google.protobuf.DurationB\x06\n\x04_tagB\x0e\n\x0c_application\"]\n(UploadPersistentCacheTaskFinishedRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x0f\n\x07peer_id\x18\x03 \x01(\t\"\x85\x01\n&UploadPersistentCacheTaskFailedRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x0f\n\x07peer_id\x18\x03 \x01(\t\x12\x18\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\"B\n\x1eStatPersistentCacheTaskRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\"D\n DeletePersistentCacheTaskRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\"\x86\x06\n\x13PreheatImageRequest\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x19\n\x0cpiece_length\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x10\n\x03tag\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x61pplication\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x1d\n\x15\x66iltered_query_params\x18\x05 \x03(\t\x12=\n\x06header\x18\x06 \x03(\x0b\x32-.scheduler.v2.PreheatImageRequest.HeaderEntry\x12\x15\n\x08username\x18\x07 \x01(\tH\x03\x88\x01\x01\x12\x15\n\x08password\x18\x08 \x01(\tH\x04\x88\x01\x01\x12\x15\n\x08platform\x18\t \x01(\tH\x05\x88\x01\x01\x12\r\n\x05scope\x18\n \x01(\t\x12\x0b\n\x03ips\x18\x0b \x03(\t\x12\x17\n\npercentage\x18\x0c \x01(\rH\x06\x88\x01\x01\x12\x12\n\x05\x63ount\x18\r \x01(\rH\x07\x88\x01\x01\x12\"\n\x15\x63oncurrent_task_count\x18\x0e \x01(\x03H\x08\x88\x01\x01\x12\"\n\x15\x63oncurrent_peer_count\x18\x0f \x01(\x03H\t\x88\x01\x01\x12/\n\x07timeout\x18\x10 \x01(\x0b\x32\x19.google.protobuf.DurationH\n\x88\x01\x01\x12%\n\x08priority\x18\x11 \x01(\x0e\x32\x13.common.v2.Priority\x12\x19\n\x11\x63\x65rtificate_chain\x18\x12 \x03(\x0c\x12\x1c\n\x14insecure_skip_verify\x18\x13 \x01(\x08\x1a-\n\x0bHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x0f\n\r_piece_lengthB\x06\n\x04_tagB\x0e\n\x0c_applicationB\x0b\n\t_usernameB\x0b\n\t_passwordB\x0b\n\t_platformB\r\n\x0b_percentageB\x08\n\x06_countB\x18\n\x16_concurrent_task_countB\x18\n\x16_concurrent_peer_countB\n\n\x08_timeout\"\x88\x05\n\x10StatImageRequest\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x19\n\x0cpiece_length\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x10\n\x03tag\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x61pplication\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x1d\n\x15\x66iltered_query_params\x18\x05 \x03(\t\x12:\n\x06header\x18\x06 \x03(\x0b\x32*.scheduler.v2.StatImageRequest.HeaderEntry\x12\x15\n\x08username\x18\x07 \x01(\tH\x03\x88\x01\x01\x12\x15\n\x08password\x18\x08 \x01(\tH\x04\x88\x01\x01\x12\x15\n\x08platform\x18\t \x01(\tH\x05\x88\x01\x01\x12#\n\x16\x63oncurrent_layer_count\x18\n \x01(\x03H\x06\x88\x01\x01\x12\"\n\x15\x63oncurrent_peer_count\x18\x0b \x01(\x03H\x07\x88\x01\x01\x12/\n\x07timeout\x18\x0c \x01(\x0b\x32\x19.google.protobuf.DurationH\x08\x88\x01\x01\x12\x19\n\x11\x63\x65rtificate_chain\x18\r \x03(\x0c\x12\x1c\n\x14insecure_skip_verify\x18\x0e \x01(\x08\x12\r\n\x05scope\x18\x0f \x01(\t\x1a-\n\x0bHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x0f\n\r_piece_lengthB\x06\n\x04_tagB\x0e\n\x0c_applicationB\x0b\n\t_usernameB\x0b\n\t_passwordB\x0b\n\t_platformB\x19\n\x17_concurrent_layer_countB\x18\n\x16_concurrent_peer_countB\n\n\x08_timeout\"_\n\x11StatImageResponse\x12\"\n\x05image\x18\x01 \x01(\x0b\x32\x13.scheduler.v2.Image\x12&\n\x05peers\x18\x02 \x03(\x0b\x32\x17.scheduler.v2.PeerImage\"U\n\tPeerImage\x12\n\n\x02ip\x18\x01 \x01(\t\x12\x10\n\x08hostname\x18\x02 \x01(\t\x12*\n\rcached_layers\x18\x03 \x03(\x0b\x32\x13.scheduler.v2.Layer\",\n\x05Image\x12#\n\x06layers\x18\x01 \x03(\x0b\x32\x13.scheduler.v2.Layer\">\n\x05Layer\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x18\n\x0bis_finished\x18\x02 \x01(\x08H\x00\x88\x01\x01\x42\x0e\n\x0c_is_finished\"\xb9\x06\n\x12PreheatFileRequest\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x19\n\x0cpiece_length\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x10\n\x03tag\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x61pplication\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x1d\n\x15\x66iltered_query_params\x18\x05 \x03(\t\x12<\n\x06header\x18\x06 \x03(\x0b\x32,.scheduler.v2.PreheatFileRequest.HeaderEntry\x12\r\n\x05scope\x18\x07 \x01(\t\x12\x0b\n\x03ips\x18\x08 \x03(\t\x12\x17\n\npercentage\x18\t \x01(\rH\x03\x88\x01\x01\x12\x12\n\x05\x63ount\x18\n \x01(\rH\x04\x88\x01\x01\x12\"\n\x15\x63oncurrent_task_count\x18\x0b \x01(\x03H\x05\x88\x01\x01\x12\"\n\x15\x63oncurrent_peer_count\x18\x0c \x01(\x03H\x06\x88\x01\x01\x12/\n\x07timeout\x18\r \x01(\x0b\x32\x19.google.protobuf.DurationH\x07\x88\x01\x01\x12%\n\x08priority\x18\x0e \x01(\x0e\x32\x13.common.v2.Priority\x12\x19\n\x11\x63\x65rtificate_chain\x18\x0f \x03(\x0c\x12\x1c\n\x14insecure_skip_verify\x18\x10 \x01(\x08\x12\x35\n\x0eobject_storage\x18\x11 \x01(\x0b\x32\x18.common.v2.ObjectStorageH\x08\x88\x01\x01\x12\"\n\x04hdfs\x18\x12 \x01(\x0b\x32\x0f.common.v2.HDFSH\t\x88\x01\x01\x12\x18\n\x0boutput_path\x18\x13 \x01(\tH\n\x88\x01\x01\x1a-\n\x0bHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x0f\n\r_piece_lengthB\x06\n\x04_tagB\x0e\n\x0c_applicationB\r\n\x0b_percentageB\x08\n\x06_countB\x18\n\x16_concurrent_task_countB\x18\n\x16_concurrent_peer_countB\n\n\x08_timeoutB\x11\n\x0f_object_storageB\x07\n\x05_hdfsB\x0e\n\x0c_output_path\"\xc2\x04\n\x0fStatFileRequest\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x19\n\x0cpiece_length\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x10\n\x03tag\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x61pplication\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x1d\n\x15\x66iltered_query_params\x18\x05 \x03(\t\x12\x39\n\x06header\x18\x06 \x03(\x0b\x32).scheduler.v2.StatFileRequest.HeaderEntry\x12\"\n\x15\x63oncurrent_peer_count\x18\x07 \x01(\x03H\x03\x88\x01\x01\x12/\n\x07timeout\x18\x08 \x01(\x0b\x32\x19.google.protobuf.DurationH\x04\x88\x01\x01\x12\x19\n\x11\x63\x65rtificate_chain\x18\t \x03(\x0c\x12\x1c\n\x14insecure_skip_verify\x18\n \x01(\x08\x12\x35\n\x0eobject_storage\x18\x0b \x01(\x0b\x32\x18.common.v2.ObjectStorageH\x05\x88\x01\x01\x12\"\n\x04hdfs\x18\x0c \x01(\x0b\x32\x0f.common.v2.HDFSH\x06\x88\x01\x01\x1a-\n\x0bHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x0f\n\r_piece_lengthB\x06\n\x04_tagB\x0e\n\x0c_applicationB\x18\n\x16_concurrent_peer_countB\n\n\x08_timeoutB\x11\n\x0f_object_storageB\x07\n\x05_hdfs\"9\n\x10StatFileResponse\x12%\n\x05peers\x18\x01 \x03(\x0b\x32\x16.scheduler.v2.PeerFile\"R\n\x08PeerFile\x12\n\n\x02ip\x18\x01 \x01(\t\x12\x10\n\x08hostname\x18\x02 \x01(\t\x12(\n\x0c\x63\x61\x63hed_files\x18\x03 \x03(\x0b\x32\x12.scheduler.v2.File\"=\n\x04\x46ile\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x18\n\x0bis_finished\x18\x02 \x01(\x08H\x00\x88\x01\x01\x42\x0e\n\x0c_is_finished2\xc2\x17\n\tScheduler\x12Y\n\x0c\x41nnouncePeer\x12!.scheduler.v2.AnnouncePeerRequest\x1a\".scheduler.v2.AnnouncePeerResponse(\x01\x30\x01\x12:\n\x08StatPeer\x12\x1d.scheduler.v2.StatPeerRequest\x1a\x0f.common.v2.Peer\x12\x45\n\nDeletePeer\x12\x1f.scheduler.v2.DeletePeerRequest\x1a\x16.google.protobuf.Empty\x12:\n\x08StatTask\x12\x1d.scheduler.v2.StatTaskRequest\x1a\x0f.common.v2.Task\x12\x45\n\nDeleteTask\x12\x1f.scheduler.v2.DeleteTaskRequest\x1a\x16.google.protobuf.Empty\x12I\n\x0c\x41nnounceHost\x12!.scheduler.v2.AnnounceHostRequest\x1a\x16.google.protobuf.Empty\x12L\n\tListHosts\x12\x1e.scheduler.v2.ListHostsRequest\x1a\x1f.scheduler.v2.ListHostsResponse\x12\x45\n\nDeleteHost\x12\x1f.scheduler.v2.DeleteHostRequest\x1a\x16.google.protobuf.Empty\x12h\n\x11\x41nnounceCachePeer\x12&.scheduler.v2.AnnounceCachePeerRequest\x1a\'.scheduler.v2.AnnounceCachePeerResponse(\x01\x30\x01\x12I\n\rStatCachePeer\x12\".scheduler.v2.StatCachePeerRequest\x1a\x14.common.v2.CachePeer\x12O\n\x0f\x44\x65leteCachePeer\x12$.scheduler.v2.DeleteCachePeerRequest\x1a\x16.google.protobuf.Empty\x12I\n\rStatCacheTask\x12\".scheduler.v2.StatCacheTaskRequest\x1a\x14.common.v2.CacheTask\x12O\n\x0f\x44\x65leteCacheTask\x12$.scheduler.v2.DeleteCacheTaskRequest\x1a\x16.google.protobuf.Empty\x12w\n\x16\x41nnouncePersistentPeer\x12+.scheduler.v2.AnnouncePersistentPeerRequest\x1a,.scheduler.v2.AnnouncePersistentPeerResponse(\x01\x30\x01\x12X\n\x12StatPersistentPeer\x12\'.scheduler.v2.StatPersistentPeerRequest\x1a\x19.common.v2.PersistentPeer\x12Y\n\x14\x44\x65letePersistentPeer\x12).scheduler.v2.DeletePersistentPeerRequest\x1a\x16.google.protobuf.Empty\x12g\n\x1bUploadPersistentTaskStarted\x12\x30.scheduler.v2.UploadPersistentTaskStartedRequest\x1a\x16.google.protobuf.Empty\x12l\n\x1cUploadPersistentTaskFinished\x12\x31.scheduler.v2.UploadPersistentTaskFinishedRequest\x1a\x19.common.v2.PersistentTask\x12\x65\n\x1aUploadPersistentTaskFailed\x12/.scheduler.v2.UploadPersistentTaskFailedRequest\x1a\x16.google.protobuf.Empty\x12X\n\x12StatPersistentTask\x12\'.scheduler.v2.StatPersistentTaskRequest\x1a\x19.common.v2.PersistentTask\x12Y\n\x14\x44\x65letePersistentTask\x12).scheduler.v2.DeletePersistentTaskRequest\x1a\x16.google.protobuf.Empty\x12\x86\x01\n\x1b\x41nnouncePersistentCachePeer\x12\x30.scheduler.v2.AnnouncePersistentCachePeerRequest\x1a\x31.scheduler.v2.AnnouncePersistentCachePeerResponse(\x01\x30\x01\x12g\n\x17StatPersistentCachePeer\x12,.scheduler.v2.StatPersistentCachePeerRequest\x1a\x1e.common.v2.PersistentCachePeer\x12\x63\n\x19\x44\x65letePersistentCachePeer\x12..scheduler.v2.DeletePersistentCachePeerRequest\x1a\x16.google.protobuf.Empty\x12q\n UploadPersistentCacheTaskStarted\x12\x35.scheduler.v2.UploadPersistentCacheTaskStartedRequest\x1a\x16.google.protobuf.Empty\x12{\n!UploadPersistentCacheTaskFinished\x12\x36.scheduler.v2.UploadPersistentCacheTaskFinishedRequest\x1a\x1e.common.v2.PersistentCacheTask\x12o\n\x1fUploadPersistentCacheTaskFailed\x12\x34.scheduler.v2.UploadPersistentCacheTaskFailedRequest\x1a\x16.google.protobuf.Empty\x12g\n\x17StatPersistentCacheTask\x12,.scheduler.v2.StatPersistentCacheTaskRequest\x1a\x1e.common.v2.PersistentCacheTask\x12\x63\n\x19\x44\x65letePersistentCacheTask\x12..scheduler.v2.DeletePersistentCacheTaskRequest\x1a\x16.google.protobuf.Empty\x12I\n\x0cPreheatImage\x12!.scheduler.v2.PreheatImageRequest\x1a\x16.google.protobuf.Empty\x12L\n\tStatImage\x12\x1e.scheduler.v2.StatImageRequest\x1a\x1f.scheduler.v2.StatImageResponse\x12G\n\x0bPreheatFile\x12 .scheduler.v2.PreheatFileRequest\x1a\x16.google.protobuf.Empty\x12I\n\x08StatFile\x12\x1d.scheduler.v2.StatFileRequest\x1a\x1e.scheduler.v2.StatFileResponseb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0fscheduler.proto\x12\x0cscheduler.v2\x1a\x0c\x63ommon.proto\x1a\x12\x65rrordetails.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1bgoogle/protobuf/empty.proto\"<\n\x13RegisterPeerRequest\x12%\n\x08\x64ownload\x18\x01 \x01(\x0b\x32\x13.common.v2.Download\"\x1c\n\x1a\x44ownloadPeerStartedRequest\"R\n&DownloadPeerBackToSourceStartedRequest\x12\x18\n\x0b\x64\x65scription\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\"m\n\x15ReschedulePeerRequest\x12*\n\x11\x63\x61ndidate_parents\x18\x01 \x03(\x0b\x32\x0f.common.v2.Peer\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\"F\n\x1b\x44ownloadPeerFinishedRequestJ\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03R\x0e\x63ontent_lengthR\x0bpiece_count\"R\n\'DownloadPeerBackToSourceFinishedRequestJ\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03R\x0e\x63ontent_lengthR\x0bpiece_count\"E\n\x19\x44ownloadPeerFailedRequest\x12\x18\n\x0b\x64\x65scription\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\"Q\n%DownloadPeerBackToSourceFailedRequest\x12\x18\n\x0b\x64\x65scription\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\"?\n\x1c\x44ownloadPieceFinishedRequest\x12\x1f\n\x05piece\x18\x01 \x01(\x0b\x32\x10.common.v2.Piece\"K\n(DownloadPieceBackToSourceFinishedRequest\x12\x1f\n\x05piece\x18\x01 \x01(\x0b\x32\x10.common.v2.Piece\"n\n\x1a\x44ownloadPieceFailedRequest\x12\x19\n\x0cpiece_number\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\tparent_id\x18\x02 \x01(\t\x12\x11\n\ttemporary\x18\x03 \x01(\x08\x42\x0f\n\r_piece_number\"\xba\x01\n&DownloadPieceBackToSourceFailedRequest\x12\x19\n\x0cpiece_number\x18\x01 \x01(\rH\x01\x88\x01\x01\x12+\n\x07\x62\x61\x63kend\x18\x02 \x01(\x0b\x32\x18.errordetails.v2.BackendH\x00\x12+\n\x07unknown\x18\x03 \x01(\x0b\x32\x18.errordetails.v2.UnknownH\x00\x42\n\n\x08responseB\x0f\n\r_piece_number\"\xac\t\n\x13\x41nnouncePeerRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x0f\n\x07peer_id\x18\x03 \x01(\t\x12\x42\n\x15register_peer_request\x18\x04 \x01(\x0b\x32!.scheduler.v2.RegisterPeerRequestH\x00\x12Q\n\x1d\x64ownload_peer_started_request\x18\x05 \x01(\x0b\x32(.scheduler.v2.DownloadPeerStartedRequestH\x00\x12l\n,download_peer_back_to_source_started_request\x18\x06 \x01(\x0b\x32\x34.scheduler.v2.DownloadPeerBackToSourceStartedRequestH\x00\x12\x46\n\x17reschedule_peer_request\x18\x07 \x01(\x0b\x32#.scheduler.v2.ReschedulePeerRequestH\x00\x12S\n\x1e\x64ownload_peer_finished_request\x18\x08 \x01(\x0b\x32).scheduler.v2.DownloadPeerFinishedRequestH\x00\x12n\n-download_peer_back_to_source_finished_request\x18\t \x01(\x0b\x32\x35.scheduler.v2.DownloadPeerBackToSourceFinishedRequestH\x00\x12O\n\x1c\x64ownload_peer_failed_request\x18\n \x01(\x0b\x32\'.scheduler.v2.DownloadPeerFailedRequestH\x00\x12j\n+download_peer_back_to_source_failed_request\x18\x0b \x01(\x0b\x32\x33.scheduler.v2.DownloadPeerBackToSourceFailedRequestH\x00\x12U\n\x1f\x64ownload_piece_finished_request\x18\x0c \x01(\x0b\x32*.scheduler.v2.DownloadPieceFinishedRequestH\x00\x12p\n.download_piece_back_to_source_finished_request\x18\r \x01(\x0b\x32\x36.scheduler.v2.DownloadPieceBackToSourceFinishedRequestH\x00\x12Q\n\x1d\x64ownload_piece_failed_request\x18\x0e \x01(\x0b\x32(.scheduler.v2.DownloadPieceFailedRequestH\x00\x12l\n,download_piece_back_to_source_failed_request\x18\x0f \x01(\x0b\x32\x34.scheduler.v2.DownloadPieceBackToSourceFailedRequestH\x00\x42\t\n\x07request\"\x13\n\x11\x45mptyTaskResponse\"@\n\x12NormalTaskResponse\x12*\n\x11\x63\x61ndidate_parents\x18\x01 \x03(\x0b\x32\x0f.common.v2.Peer\"D\n\x18NeedBackToSourceResponse\x12\x18\n\x0b\x64\x65scription\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\"\x16\n\x14MetadataOnlyResponse\"\xba\x02\n\x14\x41nnouncePeerResponse\x12>\n\x13\x65mpty_task_response\x18\x01 \x01(\x0b\x32\x1f.scheduler.v2.EmptyTaskResponseH\x00\x12@\n\x14normal_task_response\x18\x02 \x01(\x0b\x32 .scheduler.v2.NormalTaskResponseH\x00\x12N\n\x1cneed_back_to_source_response\x18\x03 \x01(\x0b\x32&.scheduler.v2.NeedBackToSourceResponseH\x00\x12\x44\n\x16metadata_only_response\x18\x04 \x01(\x0b\x32\".scheduler.v2.MetadataOnlyResponseH\x00\x42\n\n\x08response\"D\n\x0fStatPeerRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x0f\n\x07peer_id\x18\x03 \x01(\t\"F\n\x11\x44\x65letePeerRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x0f\n\x07peer_id\x18\x03 \x01(\t\"3\n\x0fStatTaskRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\"5\n\x11\x44\x65leteTaskRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\"s\n\x13\x41nnounceHostRequest\x12\x1d\n\x04host\x18\x01 \x01(\x0b\x32\x0f.common.v2.Host\x12\x30\n\x08interval\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x88\x01\x01\x42\x0b\n\t_interval\".\n\x10ListHostsRequest\x12\x11\n\x04type\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\x07\n\x05_type\"3\n\x11ListHostsResponse\x12\x1e\n\x05hosts\x18\x01 \x03(\x0b\x32\x0f.common.v2.Host\"$\n\x11\x44\x65leteHostRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\"\xba\t\n\x18RegisterCachePeerRequest\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x13\n\x06\x64igest\x18\x02 \x01(\tH\x00\x88\x01\x01\x12$\n\x05range\x18\x03 \x01(\x0b\x32\x10.common.v2.RangeH\x01\x88\x01\x01\x12!\n\x04type\x18\x04 \x01(\x0e\x32\x13.common.v2.TaskType\x12\x10\n\x03tag\x18\x05 \x01(\tH\x02\x88\x01\x01\x12\x18\n\x0b\x61pplication\x18\x06 \x01(\tH\x03\x88\x01\x01\x12%\n\x08priority\x18\x07 \x01(\x0e\x32\x13.common.v2.Priority\x12\x1d\n\x15\x66iltered_query_params\x18\x08 \x03(\t\x12Q\n\x0erequest_header\x18\t \x03(\x0b\x32\x39.scheduler.v2.RegisterCachePeerRequest.RequestHeaderEntry\x12\x19\n\x0cpiece_length\x18\n \x01(\x04H\x04\x88\x01\x01\x12\x18\n\x0boutput_path\x18\x0b \x01(\tH\x05\x88\x01\x01\x12/\n\x07timeout\x18\x0c \x01(\x0b\x32\x19.google.protobuf.DurationH\x06\x88\x01\x01\x12\x1e\n\x16\x64isable_back_to_source\x18\r \x01(\x08\x12\x1b\n\x13need_back_to_source\x18\x0e \x01(\x08\x12\x19\n\x11\x63\x65rtificate_chain\x18\x0f \x03(\x0c\x12\x10\n\x08prefetch\x18\x10 \x01(\x08\x12\x35\n\x0eobject_storage\x18\x11 \x01(\x0b\x32\x18.common.v2.ObjectStorageH\x07\x88\x01\x01\x12\"\n\x04hdfs\x18\x12 \x01(\x0b\x32\x0f.common.v2.HDFSH\x08\x88\x01\x01\x12\x13\n\x0bis_prefetch\x18\x13 \x01(\x08\x12\x1a\n\x12need_piece_content\x18\x14 \x01(\x08\x12,\n\x1f\x63ontent_for_calculating_task_id\x18\x15 \x01(\tH\t\x88\x01\x01\x12\x16\n\tremote_ip\x18\x16 \x01(\tH\n\x88\x01\x01\x12#\n\x16\x63oncurrent_piece_count\x18\x17 \x01(\rH\x0b\x88\x01\x01\x12 \n\x13\x61\x63tual_piece_length\x18\x18 \x01(\x04H\x0c\x88\x01\x01\x12\"\n\x15\x61\x63tual_content_length\x18\x19 \x01(\x04H\r\x88\x01\x01\x12\x1f\n\x12\x61\x63tual_piece_count\x18\x1a \x01(\x04H\x0e\x88\x01\x01\x1a\x34\n\x12RequestHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\t\n\x07_digestB\x08\n\x06_rangeB\x06\n\x04_tagB\x0e\n\x0c_applicationB\x0f\n\r_piece_lengthB\x0e\n\x0c_output_pathB\n\n\x08_timeoutB\x11\n\x0f_object_storageB\x07\n\x05_hdfsB\"\n _content_for_calculating_task_idB\x0c\n\n_remote_ipB\x19\n\x17_concurrent_piece_countB\x16\n\x14_actual_piece_lengthB\x18\n\x16_actual_content_lengthB\x15\n\x13_actual_piece_count\"!\n\x1f\x44ownloadCachePeerStartedRequest\"W\n+DownloadCachePeerBackToSourceStartedRequest\x12\x18\n\x0b\x64\x65scription\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\"w\n\x1aRescheduleCachePeerRequest\x12/\n\x11\x63\x61ndidate_parents\x18\x01 \x03(\x0b\x32\x14.common.v2.CachePeer\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\"K\n DownloadCachePeerFinishedRequestJ\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03R\x0e\x63ontent_lengthR\x0bpiece_count\"W\n,DownloadCachePeerBackToSourceFinishedRequestJ\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03R\x0e\x63ontent_lengthR\x0bpiece_count\"J\n\x1e\x44ownloadCachePeerFailedRequest\x12\x18\n\x0b\x64\x65scription\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\"V\n*DownloadCachePeerBackToSourceFailedRequest\x12\x18\n\x0b\x64\x65scription\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\"\x89\n\n\x18\x41nnounceCachePeerRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x0f\n\x07peer_id\x18\x03 \x01(\t\x12M\n\x1bregister_cache_peer_request\x18\x04 \x01(\x0b\x32&.scheduler.v2.RegisterCachePeerRequestH\x00\x12\\\n#download_cache_peer_started_request\x18\x05 \x01(\x0b\x32-.scheduler.v2.DownloadCachePeerStartedRequestH\x00\x12w\n2download_cache_peer_back_to_source_started_request\x18\x06 \x01(\x0b\x32\x39.scheduler.v2.DownloadCachePeerBackToSourceStartedRequestH\x00\x12Q\n\x1dreschedule_cache_peer_request\x18\x07 \x01(\x0b\x32(.scheduler.v2.RescheduleCachePeerRequestH\x00\x12^\n$download_cache_peer_finished_request\x18\x08 \x01(\x0b\x32..scheduler.v2.DownloadCachePeerFinishedRequestH\x00\x12y\n3download_cache_peer_back_to_source_finished_request\x18\t \x01(\x0b\x32:.scheduler.v2.DownloadCachePeerBackToSourceFinishedRequestH\x00\x12Z\n\"download_cache_peer_failed_request\x18\n \x01(\x0b\x32,.scheduler.v2.DownloadCachePeerFailedRequestH\x00\x12u\n1download_cache_peer_back_to_source_failed_request\x18\x0b \x01(\x0b\x32\x38.scheduler.v2.DownloadCachePeerBackToSourceFailedRequestH\x00\x12U\n\x1f\x64ownload_piece_finished_request\x18\x0c \x01(\x0b\x32*.scheduler.v2.DownloadPieceFinishedRequestH\x00\x12p\n.download_piece_back_to_source_finished_request\x18\r \x01(\x0b\x32\x36.scheduler.v2.DownloadPieceBackToSourceFinishedRequestH\x00\x12Q\n\x1d\x64ownload_piece_failed_request\x18\x0e \x01(\x0b\x32(.scheduler.v2.DownloadPieceFailedRequestH\x00\x12l\n,download_piece_back_to_source_failed_request\x18\x0f \x01(\x0b\x32\x34.scheduler.v2.DownloadPieceBackToSourceFailedRequestH\x00\x42\t\n\x07request\"\x18\n\x16\x45mptyCacheTaskResponse\"J\n\x17NormalCacheTaskResponse\x12/\n\x11\x63\x61ndidate_parents\x18\x01 \x03(\x0b\x32\x14.common.v2.CachePeer\"\x8f\x02\n\x19\x41nnounceCachePeerResponse\x12I\n\x19\x65mpty_cache_task_response\x18\x01 \x01(\x0b\x32$.scheduler.v2.EmptyCacheTaskResponseH\x00\x12K\n\x1anormal_cache_task_response\x18\x02 \x01(\x0b\x32%.scheduler.v2.NormalCacheTaskResponseH\x00\x12N\n\x1cneed_back_to_source_response\x18\x03 \x01(\x0b\x32&.scheduler.v2.NeedBackToSourceResponseH\x00\x42\n\n\x08response\"I\n\x14StatCachePeerRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x0f\n\x07peer_id\x18\x03 \x01(\t\"K\n\x16\x44\x65leteCachePeerRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x0f\n\x07peer_id\x18\x03 \x01(\t\"8\n\x14StatCacheTaskRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\":\n\x16\x44\x65leteCacheTaskRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\"\x8e\x02\n\x1dRegisterPersistentPeerRequest\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x30\n\x0eobject_storage\x18\x02 \x01(\x0b\x32\x18.common.v2.ObjectStorage\x12\x12\n\npersistent\x18\x03 \x01(\x08\x12\x18\n\x0boutput_path\x18\x04 \x01(\tH\x00\x88\x01\x01\x12#\n\x16\x63oncurrent_piece_count\x18\x05 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x0bpiece_count\x18\x06 \x01(\x04\x12\x1b\n\x13need_back_to_source\x18\x07 \x01(\x08\x42\x0e\n\x0c_output_pathB\x19\n\x17_concurrent_piece_count\"&\n$DownloadPersistentPeerStartedRequest\"\\\n0DownloadPersistentPeerBackToSourceStartedRequest\x12\x18\n\x0b\x64\x65scription\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\"\x81\x01\n\x1fReschedulePersistentPeerRequest\x12\x34\n\x11\x63\x61ndidate_parents\x18\x01 \x03(\x0b\x32\x19.common.v2.PersistentPeer\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\"\'\n%DownloadPersistentPeerFinishedRequest\"3\n1DownloadPersistentPeerBackToSourceFinishedRequest\"O\n#DownloadPersistentPeerFailedRequest\x12\x18\n\x0b\x64\x65scription\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\"[\n/DownloadPersistentPeerBackToSourceFailedRequest\x12\x18\n\x0b\x64\x65scription\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\"\xe0\n\n\x1d\x41nnouncePersistentPeerRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x0f\n\x07peer_id\x18\x03 \x01(\t\x12W\n register_persistent_peer_request\x18\x04 \x01(\x0b\x32+.scheduler.v2.RegisterPersistentPeerRequestH\x00\x12\x66\n(download_persistent_peer_started_request\x18\x05 \x01(\x0b\x32\x32.scheduler.v2.DownloadPersistentPeerStartedRequestH\x00\x12\x81\x01\n7download_persistent_peer_back_to_source_started_request\x18\x06 \x01(\x0b\x32>.scheduler.v2.DownloadPersistentPeerBackToSourceStartedRequestH\x00\x12[\n\"reschedule_persistent_peer_request\x18\x07 \x01(\x0b\x32-.scheduler.v2.ReschedulePersistentPeerRequestH\x00\x12h\n)download_persistent_peer_finished_request\x18\x08 \x01(\x0b\x32\x33.scheduler.v2.DownloadPersistentPeerFinishedRequestH\x00\x12\x83\x01\n8download_persistent_peer_back_to_source_finished_request\x18\t \x01(\x0b\x32?.scheduler.v2.DownloadPersistentPeerBackToSourceFinishedRequestH\x00\x12\x64\n\'download_persistent_peer_failed_request\x18\n \x01(\x0b\x32\x31.scheduler.v2.DownloadPersistentPeerFailedRequestH\x00\x12\x7f\n6download_persistent_peer_back_to_source_failed_request\x18\x0b \x01(\x0b\x32=.scheduler.v2.DownloadPersistentPeerBackToSourceFailedRequestH\x00\x12U\n\x1f\x64ownload_piece_finished_request\x18\x0c \x01(\x0b\x32*.scheduler.v2.DownloadPieceFinishedRequestH\x00\x12p\n.download_piece_back_to_source_finished_request\x18\r \x01(\x0b\x32\x36.scheduler.v2.DownloadPieceBackToSourceFinishedRequestH\x00\x12Q\n\x1d\x64ownload_piece_failed_request\x18\x0e \x01(\x0b\x32(.scheduler.v2.DownloadPieceFailedRequestH\x00\x12l\n,download_piece_back_to_source_failed_request\x18\x0f \x01(\x0b\x32\x34.scheduler.v2.DownloadPieceBackToSourceFailedRequestH\x00\x42\t\n\x07request\"\x1d\n\x1b\x45mptyPersistentTaskResponse\"T\n\x1cNormalPersistentTaskResponse\x12\x34\n\x11\x63\x61ndidate_parents\x18\x01 \x03(\x0b\x32\x19.common.v2.PersistentPeer\"\xa8\x02\n\x1e\x41nnouncePersistentPeerResponse\x12S\n\x1e\x65mpty_persistent_task_response\x18\x01 \x01(\x0b\x32).scheduler.v2.EmptyPersistentTaskResponseH\x00\x12U\n\x1fnormal_persistent_task_response\x18\x02 \x01(\x0b\x32*.scheduler.v2.NormalPersistentTaskResponseH\x00\x12N\n\x1cneed_back_to_source_response\x18\x03 \x01(\x0b\x32&.scheduler.v2.NeedBackToSourceResponseH\x00\x42\n\n\x08response\"N\n\x19StatPersistentPeerRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x0f\n\x07peer_id\x18\x03 \x01(\t\"P\n\x1b\x44\x65letePersistentPeerRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x0f\n\x07peer_id\x18\x03 \x01(\t\"\x8d\x02\n\"UploadPersistentTaskStartedRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x0f\n\x07peer_id\x18\x03 \x01(\t\x12\x0b\n\x03url\x18\x04 \x01(\t\x12\x30\n\x0eobject_storage\x18\x05 \x01(\x0b\x32\x18.common.v2.ObjectStorage\x12 \n\x18persistent_replica_count\x18\x06 \x01(\x04\x12\x16\n\x0e\x63ontent_length\x18\x07 \x01(\x04\x12\x13\n\x0bpiece_count\x18\x08 \x01(\r\x12&\n\x03ttl\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\"X\n#UploadPersistentTaskFinishedRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x0f\n\x07peer_id\x18\x03 \x01(\t\"\x80\x01\n!UploadPersistentTaskFailedRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x0f\n\x07peer_id\x18\x03 \x01(\t\x12\x18\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\"=\n\x19StatPersistentTaskRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\"?\n\x1b\x44\x65letePersistentTaskRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\"\x91\x02\n\"RegisterPersistentCachePeerRequest\x12\x12\n\npersistent\x18\x01 \x01(\x08\x12\x10\n\x03tag\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x61pplication\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x0cpiece_length\x18\x04 \x01(\x04\x12\x18\n\x0boutput_path\x18\x05 \x01(\tH\x02\x88\x01\x01\x12#\n\x16\x63oncurrent_piece_count\x18\x06 \x01(\rH\x03\x88\x01\x01\x12\x13\n\x0bpiece_count\x18\x07 \x01(\x04\x42\x06\n\x04_tagB\x0e\n\x0c_applicationB\x0e\n\x0c_output_pathB\x19\n\x17_concurrent_piece_count\"+\n)DownloadPersistentCachePeerStartedRequest\"\x8b\x01\n$ReschedulePersistentCachePeerRequest\x12\x39\n\x11\x63\x61ndidate_parents\x18\x01 \x03(\x0b\x32\x1e.common.v2.PersistentCachePeer\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\"?\n*DownloadPersistentCachePeerFinishedRequestJ\x04\x08\x01\x10\x02R\x0bpiece_count\"T\n(DownloadPersistentCachePeerFailedRequest\x12\x18\n\x0b\x64\x65scription\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\"\xb1\x06\n\"AnnouncePersistentCachePeerRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x0f\n\x07peer_id\x18\x03 \x01(\t\x12\x62\n®ister_persistent_cache_peer_request\x18\x04 \x01(\x0b\x32\x30.scheduler.v2.RegisterPersistentCachePeerRequestH\x00\x12q\n.download_persistent_cache_peer_started_request\x18\x05 \x01(\x0b\x32\x37.scheduler.v2.DownloadPersistentCachePeerStartedRequestH\x00\x12\x66\n(reschedule_persistent_cache_peer_request\x18\x06 \x01(\x0b\x32\x32.scheduler.v2.ReschedulePersistentCachePeerRequestH\x00\x12s\n/download_persistent_cache_peer_finished_request\x18\x07 \x01(\x0b\x32\x38.scheduler.v2.DownloadPersistentCachePeerFinishedRequestH\x00\x12o\n-download_persistent_cache_peer_failed_request\x18\x08 \x01(\x0b\x32\x36.scheduler.v2.DownloadPersistentCachePeerFailedRequestH\x00\x12U\n\x1f\x64ownload_piece_finished_request\x18\t \x01(\x0b\x32*.scheduler.v2.DownloadPieceFinishedRequestH\x00\x12Q\n\x1d\x64ownload_piece_failed_request\x18\n \x01(\x0b\x32(.scheduler.v2.DownloadPieceFailedRequestH\x00\x42\t\n\x07request\"\"\n EmptyPersistentCacheTaskResponse\"d\n!NormalPersistentCacheTaskResponse\x12?\n\x17\x63\x61ndidate_cache_parents\x18\x01 \x03(\x0b\x32\x1e.common.v2.PersistentCachePeer\"\xf3\x01\n#AnnouncePersistentCachePeerResponse\x12^\n$empty_persistent_cache_task_response\x18\x01 \x01(\x0b\x32..scheduler.v2.EmptyPersistentCacheTaskResponseH\x00\x12`\n%normal_persistent_cache_task_response\x18\x02 \x01(\x0b\x32/.scheduler.v2.NormalPersistentCacheTaskResponseH\x00\x42\n\n\x08response\"S\n\x1eStatPersistentCachePeerRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x0f\n\x07peer_id\x18\x03 \x01(\t\"U\n DeletePersistentCachePeerRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x0f\n\x07peer_id\x18\x03 \x01(\t\"\xad\x02\n\'UploadPersistentCacheTaskStartedRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x0f\n\x07peer_id\x18\x03 \x01(\t\x12 \n\x18persistent_replica_count\x18\x04 \x01(\x04\x12\x10\n\x03tag\x18\x05 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x61pplication\x18\x06 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x0cpiece_length\x18\x07 \x01(\x04\x12\x16\n\x0e\x63ontent_length\x18\x08 \x01(\x04\x12\x13\n\x0bpiece_count\x18\t \x01(\r\x12&\n\x03ttl\x18\n \x01(\x0b\x32\x19.google.protobuf.DurationB\x06\n\x04_tagB\x0e\n\x0c_application\"]\n(UploadPersistentCacheTaskFinishedRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x0f\n\x07peer_id\x18\x03 \x01(\t\"\x85\x01\n&UploadPersistentCacheTaskFailedRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x0f\n\x07peer_id\x18\x03 \x01(\t\x12\x18\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\"B\n\x1eStatPersistentCacheTaskRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\"D\n DeletePersistentCacheTaskRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\"\x86\x06\n\x13PreheatImageRequest\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x19\n\x0cpiece_length\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x10\n\x03tag\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x61pplication\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x1d\n\x15\x66iltered_query_params\x18\x05 \x03(\t\x12=\n\x06header\x18\x06 \x03(\x0b\x32-.scheduler.v2.PreheatImageRequest.HeaderEntry\x12\x15\n\x08username\x18\x07 \x01(\tH\x03\x88\x01\x01\x12\x15\n\x08password\x18\x08 \x01(\tH\x04\x88\x01\x01\x12\x15\n\x08platform\x18\t \x01(\tH\x05\x88\x01\x01\x12\r\n\x05scope\x18\n \x01(\t\x12\x0b\n\x03ips\x18\x0b \x03(\t\x12\x17\n\npercentage\x18\x0c \x01(\rH\x06\x88\x01\x01\x12\x12\n\x05\x63ount\x18\r \x01(\rH\x07\x88\x01\x01\x12\"\n\x15\x63oncurrent_task_count\x18\x0e \x01(\x03H\x08\x88\x01\x01\x12\"\n\x15\x63oncurrent_peer_count\x18\x0f \x01(\x03H\t\x88\x01\x01\x12/\n\x07timeout\x18\x10 \x01(\x0b\x32\x19.google.protobuf.DurationH\n\x88\x01\x01\x12%\n\x08priority\x18\x11 \x01(\x0e\x32\x13.common.v2.Priority\x12\x19\n\x11\x63\x65rtificate_chain\x18\x12 \x03(\x0c\x12\x1c\n\x14insecure_skip_verify\x18\x13 \x01(\x08\x1a-\n\x0bHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x0f\n\r_piece_lengthB\x06\n\x04_tagB\x0e\n\x0c_applicationB\x0b\n\t_usernameB\x0b\n\t_passwordB\x0b\n\t_platformB\r\n\x0b_percentageB\x08\n\x06_countB\x18\n\x16_concurrent_task_countB\x18\n\x16_concurrent_peer_countB\n\n\x08_timeout\"\xb2\x05\n\x10StatImageRequest\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x19\n\x0cpiece_length\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x10\n\x03tag\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x61pplication\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x1d\n\x15\x66iltered_query_params\x18\x05 \x03(\t\x12:\n\x06header\x18\x06 \x03(\x0b\x32*.scheduler.v2.StatImageRequest.HeaderEntry\x12\x15\n\x08username\x18\x07 \x01(\tH\x03\x88\x01\x01\x12\x15\n\x08password\x18\x08 \x01(\tH\x04\x88\x01\x01\x12\x15\n\x08platform\x18\t \x01(\tH\x05\x88\x01\x01\x12#\n\x16\x63oncurrent_layer_count\x18\n \x01(\x03H\x06\x88\x01\x01\x12\"\n\x15\x63oncurrent_peer_count\x18\x0b \x01(\x03H\x07\x88\x01\x01\x12/\n\x07timeout\x18\x0c \x01(\x0b\x32\x19.google.protobuf.DurationH\x08\x88\x01\x01\x12\x19\n\x11\x63\x65rtificate_chain\x18\r \x03(\x0c\x12\x1c\n\x14insecure_skip_verify\x18\x0e \x01(\x08\x12\r\n\x05scope\x18\x0f \x01(\t\x12(\n enable_task_id_based_blob_digest\x18\x10 \x01(\x08\x1a-\n\x0bHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x0f\n\r_piece_lengthB\x06\n\x04_tagB\x0e\n\x0c_applicationB\x0b\n\t_usernameB\x0b\n\t_passwordB\x0b\n\t_platformB\x19\n\x17_concurrent_layer_countB\x18\n\x16_concurrent_peer_countB\n\n\x08_timeout\"_\n\x11StatImageResponse\x12\"\n\x05image\x18\x01 \x01(\x0b\x32\x13.scheduler.v2.Image\x12&\n\x05peers\x18\x02 \x03(\x0b\x32\x17.scheduler.v2.PeerImage\"U\n\tPeerImage\x12\n\n\x02ip\x18\x01 \x01(\t\x12\x10\n\x08hostname\x18\x02 \x01(\t\x12*\n\rcached_layers\x18\x03 \x03(\x0b\x32\x13.scheduler.v2.Layer\",\n\x05Image\x12#\n\x06layers\x18\x01 \x03(\x0b\x32\x13.scheduler.v2.Layer\">\n\x05Layer\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x18\n\x0bis_finished\x18\x02 \x01(\x08H\x00\x88\x01\x01\x42\x0e\n\x0c_is_finished\"\xb9\x06\n\x12PreheatFileRequest\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x19\n\x0cpiece_length\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x10\n\x03tag\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x61pplication\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x1d\n\x15\x66iltered_query_params\x18\x05 \x03(\t\x12<\n\x06header\x18\x06 \x03(\x0b\x32,.scheduler.v2.PreheatFileRequest.HeaderEntry\x12\r\n\x05scope\x18\x07 \x01(\t\x12\x0b\n\x03ips\x18\x08 \x03(\t\x12\x17\n\npercentage\x18\t \x01(\rH\x03\x88\x01\x01\x12\x12\n\x05\x63ount\x18\n \x01(\rH\x04\x88\x01\x01\x12\"\n\x15\x63oncurrent_task_count\x18\x0b \x01(\x03H\x05\x88\x01\x01\x12\"\n\x15\x63oncurrent_peer_count\x18\x0c \x01(\x03H\x06\x88\x01\x01\x12/\n\x07timeout\x18\r \x01(\x0b\x32\x19.google.protobuf.DurationH\x07\x88\x01\x01\x12%\n\x08priority\x18\x0e \x01(\x0e\x32\x13.common.v2.Priority\x12\x19\n\x11\x63\x65rtificate_chain\x18\x0f \x03(\x0c\x12\x1c\n\x14insecure_skip_verify\x18\x10 \x01(\x08\x12\x35\n\x0eobject_storage\x18\x11 \x01(\x0b\x32\x18.common.v2.ObjectStorageH\x08\x88\x01\x01\x12\"\n\x04hdfs\x18\x12 \x01(\x0b\x32\x0f.common.v2.HDFSH\t\x88\x01\x01\x12\x18\n\x0boutput_path\x18\x13 \x01(\tH\n\x88\x01\x01\x1a-\n\x0bHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x0f\n\r_piece_lengthB\x06\n\x04_tagB\x0e\n\x0c_applicationB\r\n\x0b_percentageB\x08\n\x06_countB\x18\n\x16_concurrent_task_countB\x18\n\x16_concurrent_peer_countB\n\n\x08_timeoutB\x11\n\x0f_object_storageB\x07\n\x05_hdfsB\x0e\n\x0c_output_path\"\xc2\x04\n\x0fStatFileRequest\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x19\n\x0cpiece_length\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x10\n\x03tag\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x61pplication\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x1d\n\x15\x66iltered_query_params\x18\x05 \x03(\t\x12\x39\n\x06header\x18\x06 \x03(\x0b\x32).scheduler.v2.StatFileRequest.HeaderEntry\x12\"\n\x15\x63oncurrent_peer_count\x18\x07 \x01(\x03H\x03\x88\x01\x01\x12/\n\x07timeout\x18\x08 \x01(\x0b\x32\x19.google.protobuf.DurationH\x04\x88\x01\x01\x12\x19\n\x11\x63\x65rtificate_chain\x18\t \x03(\x0c\x12\x1c\n\x14insecure_skip_verify\x18\n \x01(\x08\x12\x35\n\x0eobject_storage\x18\x0b \x01(\x0b\x32\x18.common.v2.ObjectStorageH\x05\x88\x01\x01\x12\"\n\x04hdfs\x18\x0c \x01(\x0b\x32\x0f.common.v2.HDFSH\x06\x88\x01\x01\x1a-\n\x0bHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x0f\n\r_piece_lengthB\x06\n\x04_tagB\x0e\n\x0c_applicationB\x18\n\x16_concurrent_peer_countB\n\n\x08_timeoutB\x11\n\x0f_object_storageB\x07\n\x05_hdfs\"9\n\x10StatFileResponse\x12%\n\x05peers\x18\x01 \x03(\x0b\x32\x16.scheduler.v2.PeerFile\"R\n\x08PeerFile\x12\n\n\x02ip\x18\x01 \x01(\t\x12\x10\n\x08hostname\x18\x02 \x01(\t\x12(\n\x0c\x63\x61\x63hed_files\x18\x03 \x03(\x0b\x32\x12.scheduler.v2.File\"=\n\x04\x46ile\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x18\n\x0bis_finished\x18\x02 \x01(\x08H\x00\x88\x01\x01\x42\x0e\n\x0c_is_finished2\xc2\x17\n\tScheduler\x12Y\n\x0c\x41nnouncePeer\x12!.scheduler.v2.AnnouncePeerRequest\x1a\".scheduler.v2.AnnouncePeerResponse(\x01\x30\x01\x12:\n\x08StatPeer\x12\x1d.scheduler.v2.StatPeerRequest\x1a\x0f.common.v2.Peer\x12\x45\n\nDeletePeer\x12\x1f.scheduler.v2.DeletePeerRequest\x1a\x16.google.protobuf.Empty\x12:\n\x08StatTask\x12\x1d.scheduler.v2.StatTaskRequest\x1a\x0f.common.v2.Task\x12\x45\n\nDeleteTask\x12\x1f.scheduler.v2.DeleteTaskRequest\x1a\x16.google.protobuf.Empty\x12I\n\x0c\x41nnounceHost\x12!.scheduler.v2.AnnounceHostRequest\x1a\x16.google.protobuf.Empty\x12L\n\tListHosts\x12\x1e.scheduler.v2.ListHostsRequest\x1a\x1f.scheduler.v2.ListHostsResponse\x12\x45\n\nDeleteHost\x12\x1f.scheduler.v2.DeleteHostRequest\x1a\x16.google.protobuf.Empty\x12h\n\x11\x41nnounceCachePeer\x12&.scheduler.v2.AnnounceCachePeerRequest\x1a\'.scheduler.v2.AnnounceCachePeerResponse(\x01\x30\x01\x12I\n\rStatCachePeer\x12\".scheduler.v2.StatCachePeerRequest\x1a\x14.common.v2.CachePeer\x12O\n\x0f\x44\x65leteCachePeer\x12$.scheduler.v2.DeleteCachePeerRequest\x1a\x16.google.protobuf.Empty\x12I\n\rStatCacheTask\x12\".scheduler.v2.StatCacheTaskRequest\x1a\x14.common.v2.CacheTask\x12O\n\x0f\x44\x65leteCacheTask\x12$.scheduler.v2.DeleteCacheTaskRequest\x1a\x16.google.protobuf.Empty\x12w\n\x16\x41nnouncePersistentPeer\x12+.scheduler.v2.AnnouncePersistentPeerRequest\x1a,.scheduler.v2.AnnouncePersistentPeerResponse(\x01\x30\x01\x12X\n\x12StatPersistentPeer\x12\'.scheduler.v2.StatPersistentPeerRequest\x1a\x19.common.v2.PersistentPeer\x12Y\n\x14\x44\x65letePersistentPeer\x12).scheduler.v2.DeletePersistentPeerRequest\x1a\x16.google.protobuf.Empty\x12g\n\x1bUploadPersistentTaskStarted\x12\x30.scheduler.v2.UploadPersistentTaskStartedRequest\x1a\x16.google.protobuf.Empty\x12l\n\x1cUploadPersistentTaskFinished\x12\x31.scheduler.v2.UploadPersistentTaskFinishedRequest\x1a\x19.common.v2.PersistentTask\x12\x65\n\x1aUploadPersistentTaskFailed\x12/.scheduler.v2.UploadPersistentTaskFailedRequest\x1a\x16.google.protobuf.Empty\x12X\n\x12StatPersistentTask\x12\'.scheduler.v2.StatPersistentTaskRequest\x1a\x19.common.v2.PersistentTask\x12Y\n\x14\x44\x65letePersistentTask\x12).scheduler.v2.DeletePersistentTaskRequest\x1a\x16.google.protobuf.Empty\x12\x86\x01\n\x1b\x41nnouncePersistentCachePeer\x12\x30.scheduler.v2.AnnouncePersistentCachePeerRequest\x1a\x31.scheduler.v2.AnnouncePersistentCachePeerResponse(\x01\x30\x01\x12g\n\x17StatPersistentCachePeer\x12,.scheduler.v2.StatPersistentCachePeerRequest\x1a\x1e.common.v2.PersistentCachePeer\x12\x63\n\x19\x44\x65letePersistentCachePeer\x12..scheduler.v2.DeletePersistentCachePeerRequest\x1a\x16.google.protobuf.Empty\x12q\n UploadPersistentCacheTaskStarted\x12\x35.scheduler.v2.UploadPersistentCacheTaskStartedRequest\x1a\x16.google.protobuf.Empty\x12{\n!UploadPersistentCacheTaskFinished\x12\x36.scheduler.v2.UploadPersistentCacheTaskFinishedRequest\x1a\x1e.common.v2.PersistentCacheTask\x12o\n\x1fUploadPersistentCacheTaskFailed\x12\x34.scheduler.v2.UploadPersistentCacheTaskFailedRequest\x1a\x16.google.protobuf.Empty\x12g\n\x17StatPersistentCacheTask\x12,.scheduler.v2.StatPersistentCacheTaskRequest\x1a\x1e.common.v2.PersistentCacheTask\x12\x63\n\x19\x44\x65letePersistentCacheTask\x12..scheduler.v2.DeletePersistentCacheTaskRequest\x1a\x16.google.protobuf.Empty\x12I\n\x0cPreheatImage\x12!.scheduler.v2.PreheatImageRequest\x1a\x16.google.protobuf.Empty\x12L\n\tStatImage\x12\x1e.scheduler.v2.StatImageRequest\x1a\x1f.scheduler.v2.StatImageResponse\x12G\n\x0bPreheatFile\x12 .scheduler.v2.PreheatFileRequest\x1a\x16.google.protobuf.Empty\x12I\n\x08StatFile\x12\x1d.scheduler.v2.StatFileRequest\x1a\x1e.scheduler.v2.StatFileResponseb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -206,31 +206,31 @@ _globals['_PREHEATIMAGEREQUEST_HEADERENTRY']._serialized_start=13706 _globals['_PREHEATIMAGEREQUEST_HEADERENTRY']._serialized_end=13751 _globals['_STATIMAGEREQUEST']._serialized_start=13923 - _globals['_STATIMAGEREQUEST']._serialized_end=14571 + _globals['_STATIMAGEREQUEST']._serialized_end=14613 _globals['_STATIMAGEREQUEST_HEADERENTRY']._serialized_start=13706 _globals['_STATIMAGEREQUEST_HEADERENTRY']._serialized_end=13751 - _globals['_STATIMAGERESPONSE']._serialized_start=14573 - _globals['_STATIMAGERESPONSE']._serialized_end=14668 - _globals['_PEERIMAGE']._serialized_start=14670 - _globals['_PEERIMAGE']._serialized_end=14755 - _globals['_IMAGE']._serialized_start=14757 - _globals['_IMAGE']._serialized_end=14801 - _globals['_LAYER']._serialized_start=14803 - _globals['_LAYER']._serialized_end=14865 - _globals['_PREHEATFILEREQUEST']._serialized_start=14868 - _globals['_PREHEATFILEREQUEST']._serialized_end=15693 + _globals['_STATIMAGERESPONSE']._serialized_start=14615 + _globals['_STATIMAGERESPONSE']._serialized_end=14710 + _globals['_PEERIMAGE']._serialized_start=14712 + _globals['_PEERIMAGE']._serialized_end=14797 + _globals['_IMAGE']._serialized_start=14799 + _globals['_IMAGE']._serialized_end=14843 + _globals['_LAYER']._serialized_start=14845 + _globals['_LAYER']._serialized_end=14907 + _globals['_PREHEATFILEREQUEST']._serialized_start=14910 + _globals['_PREHEATFILEREQUEST']._serialized_end=15735 _globals['_PREHEATFILEREQUEST_HEADERENTRY']._serialized_start=13706 _globals['_PREHEATFILEREQUEST_HEADERENTRY']._serialized_end=13751 - _globals['_STATFILEREQUEST']._serialized_start=15696 - _globals['_STATFILEREQUEST']._serialized_end=16274 + _globals['_STATFILEREQUEST']._serialized_start=15738 + _globals['_STATFILEREQUEST']._serialized_end=16316 _globals['_STATFILEREQUEST_HEADERENTRY']._serialized_start=13706 _globals['_STATFILEREQUEST_HEADERENTRY']._serialized_end=13751 - _globals['_STATFILERESPONSE']._serialized_start=16276 - _globals['_STATFILERESPONSE']._serialized_end=16333 - _globals['_PEERFILE']._serialized_start=16335 - _globals['_PEERFILE']._serialized_end=16417 - _globals['_FILE']._serialized_start=16419 - _globals['_FILE']._serialized_end=16480 - _globals['_SCHEDULER']._serialized_start=16483 - _globals['_SCHEDULER']._serialized_end=19493 + _globals['_STATFILERESPONSE']._serialized_start=16318 + _globals['_STATFILERESPONSE']._serialized_end=16375 + _globals['_PEERFILE']._serialized_start=16377 + _globals['_PEERFILE']._serialized_end=16459 + _globals['_FILE']._serialized_start=16461 + _globals['_FILE']._serialized_end=16522 + _globals['_SCHEDULER']._serialized_start=16525 + _globals['_SCHEDULER']._serialized_end=19535 # @@protoc_insertion_point(module_scope) diff --git a/python/dragonfly_api/scheduler_pb2.pyi b/python/dragonfly_api/scheduler_pb2.pyi index 6f8ac74..40138db 100644 --- a/python/dragonfly_api/scheduler_pb2.pyi +++ b/python/dragonfly_api/scheduler_pb2.pyi @@ -811,7 +811,7 @@ class PreheatImageRequest(_message.Message): def __init__(self, url: _Optional[str] = ..., piece_length: _Optional[int] = ..., tag: _Optional[str] = ..., application: _Optional[str] = ..., filtered_query_params: _Optional[_Iterable[str]] = ..., header: _Optional[_Mapping[str, str]] = ..., username: _Optional[str] = ..., password: _Optional[str] = ..., platform: _Optional[str] = ..., scope: _Optional[str] = ..., ips: _Optional[_Iterable[str]] = ..., percentage: _Optional[int] = ..., count: _Optional[int] = ..., concurrent_task_count: _Optional[int] = ..., concurrent_peer_count: _Optional[int] = ..., timeout: _Optional[_Union[datetime.timedelta, _duration_pb2.Duration, _Mapping]] = ..., priority: _Optional[_Union[_common_pb2.Priority, str]] = ..., certificate_chain: _Optional[_Iterable[bytes]] = ..., insecure_skip_verify: bool = ...) -> None: ... class StatImageRequest(_message.Message): - __slots__ = ("url", "piece_length", "tag", "application", "filtered_query_params", "header", "username", "password", "platform", "concurrent_layer_count", "concurrent_peer_count", "timeout", "certificate_chain", "insecure_skip_verify", "scope") + __slots__ = ("url", "piece_length", "tag", "application", "filtered_query_params", "header", "username", "password", "platform", "concurrent_layer_count", "concurrent_peer_count", "timeout", "certificate_chain", "insecure_skip_verify", "scope", "enable_task_id_based_blob_digest") class HeaderEntry(_message.Message): __slots__ = ("key", "value") KEY_FIELD_NUMBER: _ClassVar[int] @@ -834,6 +834,7 @@ class StatImageRequest(_message.Message): CERTIFICATE_CHAIN_FIELD_NUMBER: _ClassVar[int] INSECURE_SKIP_VERIFY_FIELD_NUMBER: _ClassVar[int] SCOPE_FIELD_NUMBER: _ClassVar[int] + ENABLE_TASK_ID_BASED_BLOB_DIGEST_FIELD_NUMBER: _ClassVar[int] url: str piece_length: int tag: str @@ -849,7 +850,8 @@ class StatImageRequest(_message.Message): certificate_chain: _containers.RepeatedScalarFieldContainer[bytes] insecure_skip_verify: bool scope: str - def __init__(self, url: _Optional[str] = ..., piece_length: _Optional[int] = ..., tag: _Optional[str] = ..., application: _Optional[str] = ..., filtered_query_params: _Optional[_Iterable[str]] = ..., header: _Optional[_Mapping[str, str]] = ..., username: _Optional[str] = ..., password: _Optional[str] = ..., platform: _Optional[str] = ..., concurrent_layer_count: _Optional[int] = ..., concurrent_peer_count: _Optional[int] = ..., timeout: _Optional[_Union[datetime.timedelta, _duration_pb2.Duration, _Mapping]] = ..., certificate_chain: _Optional[_Iterable[bytes]] = ..., insecure_skip_verify: bool = ..., scope: _Optional[str] = ...) -> None: ... + enable_task_id_based_blob_digest: bool + def __init__(self, url: _Optional[str] = ..., piece_length: _Optional[int] = ..., tag: _Optional[str] = ..., application: _Optional[str] = ..., filtered_query_params: _Optional[_Iterable[str]] = ..., header: _Optional[_Mapping[str, str]] = ..., username: _Optional[str] = ..., password: _Optional[str] = ..., platform: _Optional[str] = ..., concurrent_layer_count: _Optional[int] = ..., concurrent_peer_count: _Optional[int] = ..., timeout: _Optional[_Union[datetime.timedelta, _duration_pb2.Duration, _Mapping]] = ..., certificate_chain: _Optional[_Iterable[bytes]] = ..., insecure_skip_verify: bool = ..., scope: _Optional[str] = ..., enable_task_id_based_blob_digest: bool = ...) -> None: ... class StatImageResponse(_message.Message): __slots__ = ("image", "peers") diff --git a/src/descriptor.bin b/src/descriptor.bin index 7f7dec2..6236f82 100644 Binary files a/src/descriptor.bin and b/src/descriptor.bin differ diff --git a/src/scheduler.v2.rs b/src/scheduler.v2.rs index 9b51101..9b57b80 100644 --- a/src/scheduler.v2.rs +++ b/src/scheduler.v2.rs @@ -1304,6 +1304,12 @@ pub struct StatImageRequest { /// If not specified, stat image from all available peers. #[prost(string, tag = "15")] pub scope: ::prost::alloc::string::String, + /// enable_task_id_based_blob_digest indicates whether to use the blob digest for task ID calculation + /// when the layer url is an OCI blob url (e.g., /v2//blobs/sha256:). It should be + /// consistent with the value used when the image was preheated, otherwise the tasks can not be + /// found on the peers. + #[prost(bool, tag = "16")] + pub enable_task_id_based_blob_digest: bool, } /// StatImageResponse represents response of StatImage. #[derive(serde::Serialize, serde::Deserialize)]