From 94ab3bfaa5ad1a1f62f5b026eff113366c945860 Mon Sep 17 00:00:00 2001 From: hougang liu Date: Mon, 24 Dec 2018 14:14:23 +0800 Subject: [PATCH 1/2] add bestTrialId to statusJob status --- cmd/manager/main.go | 5 + pkg/api/api.pb.go | 454 ++++++++++++++++++ pkg/api/api.pb.gw.go | 60 +++ pkg/api/api.proto | 22 + pkg/api/api.swagger.json | 33 ++ .../apis/studyjob/v1alpha1/studyjob_types.go | 7 +- pkg/api/python/api_pb2.py | 428 ++++++++++++++++- pkg/api/python/api_pb2_grpc.py | 18 + .../studyjob/studyjob_controller.go | 38 +- pkg/controller/studyjob/utils.go | 37 ++ 10 files changed, 1044 insertions(+), 58 deletions(-) diff --git a/cmd/manager/main.go b/cmd/manager/main.go index fe7d388f091..7754876024a 100644 --- a/cmd/manager/main.go +++ b/cmd/manager/main.go @@ -79,6 +79,11 @@ func (s *server) GetTrials(ctx context.Context, in *api_pb.GetTrialsRequest) (*a return &api_pb.GetTrialsReply{Trials: tl}, err } +func (s *server) GetTrial(ctx context.Context, in *api_pb.GetTrialRequest) (*api_pb.GetTrialReply, error) { + t, err := dbIf.GetTrial(in.TrialId) + return &api_pb.GetTrialReply{Trial: t}, err +} + func (s *server) GetSuggestions(ctx context.Context, in *api_pb.GetSuggestionsRequest) (*api_pb.GetSuggestionsReply, error) { if in.SuggestionAlgorithm == "" { return &api_pb.GetSuggestionsReply{Trials: []*api_pb.Trial{}}, errors.New("No suggest algorithm specified") diff --git a/pkg/api/api.pb.go b/pkg/api/api.pb.go index cbf55bdee78..dde36f65135 100644 --- a/pkg/api/api.pb.go +++ b/pkg/api/api.pb.go @@ -32,6 +32,8 @@ It has these top-level messages: CreateTrialReply GetTrialsRequest GetTrialsReply + GetTrialRequest + GetTrialReply RegisterWorkerRequest RegisterWorkerReply StopWorkersRequest @@ -937,9 +939,44 @@ func (m *GetTrialsReply) GetTrials() []*Trial { return nil } +<<<<<<< HEAD // * // Create a Worker from Worker Config. // Generate a unique ID and store the Worker to DB. +======= +type GetTrialRequest struct { + TrialId string `protobuf:"bytes,1,opt,name=trial_id,json=trialId" json:"trial_id,omitempty"` +} + +func (m *GetTrialRequest) Reset() { *m = GetTrialRequest{} } +func (m *GetTrialRequest) String() string { return proto.CompactTextString(m) } +func (*GetTrialRequest) ProtoMessage() {} +func (*GetTrialRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{26} } + +func (m *GetTrialRequest) GetTrialId() string { + if m != nil { + return m.TrialId + } + return "" +} + +type GetTrialReply struct { + Trial *Trial `protobuf:"bytes,1,opt,name=trial" json:"trial,omitempty"` +} + +func (m *GetTrialReply) Reset() { *m = GetTrialReply{} } +func (m *GetTrialReply) String() string { return proto.CompactTextString(m) } +func (*GetTrialReply) ProtoMessage() {} +func (*GetTrialReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{27} } + +func (m *GetTrialReply) GetTrial() *Trial { + if m != nil { + return m.Trial + } + return nil +} + +>>>>>>> add bestTrialId to statusJob status type RegisterWorkerRequest struct { Worker *Worker `protobuf:"bytes,1,opt,name=worker" json:"worker,omitempty"` } @@ -947,7 +984,11 @@ type RegisterWorkerRequest struct { func (m *RegisterWorkerRequest) Reset() { *m = RegisterWorkerRequest{} } func (m *RegisterWorkerRequest) String() string { return proto.CompactTextString(m) } func (*RegisterWorkerRequest) ProtoMessage() {} +<<<<<<< HEAD func (*RegisterWorkerRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} } +======= +func (*RegisterWorkerRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{28} } +>>>>>>> add bestTrialId to statusJob status func (m *RegisterWorkerRequest) GetWorker() *Worker { if m != nil { @@ -965,7 +1006,11 @@ type RegisterWorkerReply struct { func (m *RegisterWorkerReply) Reset() { *m = RegisterWorkerReply{} } func (m *RegisterWorkerReply) String() string { return proto.CompactTextString(m) } func (*RegisterWorkerReply) ProtoMessage() {} +<<<<<<< HEAD func (*RegisterWorkerReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25} } +======= +func (*RegisterWorkerReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{29} } +>>>>>>> add bestTrialId to statusJob status func (m *RegisterWorkerReply) GetWorkerId() string { if m != nil { @@ -983,7 +1028,11 @@ type StopWorkersRequest struct { func (m *StopWorkersRequest) Reset() { *m = StopWorkersRequest{} } func (m *StopWorkersRequest) String() string { return proto.CompactTextString(m) } func (*StopWorkersRequest) ProtoMessage() {} +<<<<<<< HEAD func (*StopWorkersRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{26} } +======= +func (*StopWorkersRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{30} } +>>>>>>> add bestTrialId to statusJob status func (m *StopWorkersRequest) GetStudyId() string { if m != nil { @@ -1012,7 +1061,11 @@ type StopWorkersReply struct { func (m *StopWorkersReply) Reset() { *m = StopWorkersReply{} } func (m *StopWorkersReply) String() string { return proto.CompactTextString(m) } func (*StopWorkersReply) ProtoMessage() {} +<<<<<<< HEAD func (*StopWorkersReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{27} } +======= +func (*StopWorkersReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{31} } +>>>>>>> add bestTrialId to statusJob status // * // Get a Worker Configs and Statuses from DB by ID of Study, Trial or Worker. @@ -1025,7 +1078,11 @@ type GetWorkersRequest struct { func (m *GetWorkersRequest) Reset() { *m = GetWorkersRequest{} } func (m *GetWorkersRequest) String() string { return proto.CompactTextString(m) } func (*GetWorkersRequest) ProtoMessage() {} +<<<<<<< HEAD func (*GetWorkersRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{28} } +======= +func (*GetWorkersRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{32} } +>>>>>>> add bestTrialId to statusJob status func (m *GetWorkersRequest) GetStudyId() string { if m != nil { @@ -1057,7 +1114,11 @@ type GetWorkersReply struct { func (m *GetWorkersReply) Reset() { *m = GetWorkersReply{} } func (m *GetWorkersReply) String() string { return proto.CompactTextString(m) } func (*GetWorkersReply) ProtoMessage() {} +<<<<<<< HEAD func (*GetWorkersReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{29} } +======= +func (*GetWorkersReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{33} } +>>>>>>> add bestTrialId to statusJob status func (m *GetWorkersReply) GetWorkers() []*Worker { if m != nil { @@ -1076,7 +1137,11 @@ type UpdateWorkerStateRequest struct { func (m *UpdateWorkerStateRequest) Reset() { *m = UpdateWorkerStateRequest{} } func (m *UpdateWorkerStateRequest) String() string { return proto.CompactTextString(m) } func (*UpdateWorkerStateRequest) ProtoMessage() {} +<<<<<<< HEAD func (*UpdateWorkerStateRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{30} } +======= +func (*UpdateWorkerStateRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{34} } +>>>>>>> add bestTrialId to statusJob status func (m *UpdateWorkerStateRequest) GetWorkerId() string { if m != nil { @@ -1098,7 +1163,11 @@ type UpdateWorkerStateReply struct { func (m *UpdateWorkerStateReply) Reset() { *m = UpdateWorkerStateReply{} } func (m *UpdateWorkerStateReply) String() string { return proto.CompactTextString(m) } func (*UpdateWorkerStateReply) ProtoMessage() {} +<<<<<<< HEAD func (*UpdateWorkerStateReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{31} } +======= +func (*UpdateWorkerStateReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{35} } +>>>>>>> add bestTrialId to statusJob status // * // Get a full informations related to specified Workers. @@ -1113,7 +1182,11 @@ type GetWorkerFullInfoRequest struct { func (m *GetWorkerFullInfoRequest) Reset() { *m = GetWorkerFullInfoRequest{} } func (m *GetWorkerFullInfoRequest) String() string { return proto.CompactTextString(m) } func (*GetWorkerFullInfoRequest) ProtoMessage() {} +<<<<<<< HEAD func (*GetWorkerFullInfoRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{32} } +======= +func (*GetWorkerFullInfoRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{36} } +>>>>>>> add bestTrialId to statusJob status func (m *GetWorkerFullInfoRequest) GetStudyId() string { if m != nil { @@ -1152,7 +1225,11 @@ type WorkerFullInfo struct { func (m *WorkerFullInfo) Reset() { *m = WorkerFullInfo{} } func (m *WorkerFullInfo) String() string { return proto.CompactTextString(m) } func (*WorkerFullInfo) ProtoMessage() {} +<<<<<<< HEAD func (*WorkerFullInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{33} } +======= +func (*WorkerFullInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{37} } +>>>>>>> add bestTrialId to statusJob status func (m *WorkerFullInfo) GetWorker() *Worker { if m != nil { @@ -1182,7 +1259,11 @@ type GetWorkerFullInfoReply struct { func (m *GetWorkerFullInfoReply) Reset() { *m = GetWorkerFullInfoReply{} } func (m *GetWorkerFullInfoReply) String() string { return proto.CompactTextString(m) } func (*GetWorkerFullInfoReply) ProtoMessage() {} +<<<<<<< HEAD func (*GetWorkerFullInfoReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{34} } +======= +func (*GetWorkerFullInfoReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{38} } +>>>>>>> add bestTrialId to statusJob status func (m *GetWorkerFullInfoReply) GetWorkerFullInfos() []*WorkerFullInfo { if m != nil { @@ -1202,7 +1283,11 @@ type GetSuggestionsRequest struct { func (m *GetSuggestionsRequest) Reset() { *m = GetSuggestionsRequest{} } func (m *GetSuggestionsRequest) String() string { return proto.CompactTextString(m) } func (*GetSuggestionsRequest) ProtoMessage() {} +<<<<<<< HEAD func (*GetSuggestionsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{35} } +======= +func (*GetSuggestionsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{39} } +>>>>>>> add bestTrialId to statusJob status func (m *GetSuggestionsRequest) GetStudyId() string { if m != nil { @@ -1246,7 +1331,11 @@ type GetSuggestionsReply struct { func (m *GetSuggestionsReply) Reset() { *m = GetSuggestionsReply{} } func (m *GetSuggestionsReply) String() string { return proto.CompactTextString(m) } func (*GetSuggestionsReply) ProtoMessage() {} +<<<<<<< HEAD func (*GetSuggestionsReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{36} } +======= +func (*GetSuggestionsReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{40} } +>>>>>>> add bestTrialId to statusJob status func (m *GetSuggestionsReply) GetTrials() []*Trial { if m != nil { @@ -1264,7 +1353,11 @@ type GetShouldStopWorkersRequest struct { func (m *GetShouldStopWorkersRequest) Reset() { *m = GetShouldStopWorkersRequest{} } func (m *GetShouldStopWorkersRequest) String() string { return proto.CompactTextString(m) } func (*GetShouldStopWorkersRequest) ProtoMessage() {} +<<<<<<< HEAD func (*GetShouldStopWorkersRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{37} } +======= +func (*GetShouldStopWorkersRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{41} } +>>>>>>> add bestTrialId to statusJob status func (m *GetShouldStopWorkersRequest) GetStudyId() string { if m != nil { @@ -1294,7 +1387,11 @@ type GetShouldStopWorkersReply struct { func (m *GetShouldStopWorkersReply) Reset() { *m = GetShouldStopWorkersReply{} } func (m *GetShouldStopWorkersReply) String() string { return proto.CompactTextString(m) } func (*GetShouldStopWorkersReply) ProtoMessage() {} +<<<<<<< HEAD func (*GetShouldStopWorkersReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{38} } +======= +func (*GetShouldStopWorkersReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{42} } +>>>>>>> add bestTrialId to statusJob status func (m *GetShouldStopWorkersReply) GetShouldStopWorkerIds() []string { if m != nil { @@ -1312,7 +1409,11 @@ type GetMetricsRequest struct { func (m *GetMetricsRequest) Reset() { *m = GetMetricsRequest{} } func (m *GetMetricsRequest) String() string { return proto.CompactTextString(m) } func (*GetMetricsRequest) ProtoMessage() {} +<<<<<<< HEAD func (*GetMetricsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{39} } +======= +func (*GetMetricsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{43} } +>>>>>>> add bestTrialId to statusJob status func (m *GetMetricsRequest) GetStudyId() string { if m != nil { @@ -1342,7 +1443,11 @@ type GetMetricsReply struct { func (m *GetMetricsReply) Reset() { *m = GetMetricsReply{} } func (m *GetMetricsReply) String() string { return proto.CompactTextString(m) } func (*GetMetricsReply) ProtoMessage() {} +<<<<<<< HEAD func (*GetMetricsReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{40} } +======= +func (*GetMetricsReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{44} } +>>>>>>> add bestTrialId to statusJob status func (m *GetMetricsReply) GetMetricsLogSets() []*MetricsLogSet { if m != nil { @@ -1359,7 +1464,11 @@ type ReportMetricsLogsRequest struct { func (m *ReportMetricsLogsRequest) Reset() { *m = ReportMetricsLogsRequest{} } func (m *ReportMetricsLogsRequest) String() string { return proto.CompactTextString(m) } func (*ReportMetricsLogsRequest) ProtoMessage() {} +<<<<<<< HEAD func (*ReportMetricsLogsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{41} } +======= +func (*ReportMetricsLogsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{45} } +>>>>>>> add bestTrialId to statusJob status func (m *ReportMetricsLogsRequest) GetStudyId() string { if m != nil { @@ -1381,7 +1490,11 @@ type ReportMetricsLogsReply struct { func (m *ReportMetricsLogsReply) Reset() { *m = ReportMetricsLogsReply{} } func (m *ReportMetricsLogsReply) String() string { return proto.CompactTextString(m) } func (*ReportMetricsLogsReply) ProtoMessage() {} +<<<<<<< HEAD func (*ReportMetricsLogsReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{42} } +======= +func (*ReportMetricsLogsReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{46} } +>>>>>>> add bestTrialId to statusJob status type ModelInfo struct { StudyName string `protobuf:"bytes,1,opt,name=study_name,json=studyName" json:"study_name,omitempty"` @@ -1394,7 +1507,11 @@ type ModelInfo struct { func (m *ModelInfo) Reset() { *m = ModelInfo{} } func (m *ModelInfo) String() string { return proto.CompactTextString(m) } func (*ModelInfo) ProtoMessage() {} +<<<<<<< HEAD func (*ModelInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{43} } +======= +func (*ModelInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{47} } +>>>>>>> add bestTrialId to statusJob status func (m *ModelInfo) GetStudyName() string { if m != nil { @@ -1439,7 +1556,11 @@ type DataSetInfo struct { func (m *DataSetInfo) Reset() { *m = DataSetInfo{} } func (m *DataSetInfo) String() string { return proto.CompactTextString(m) } func (*DataSetInfo) ProtoMessage() {} +<<<<<<< HEAD func (*DataSetInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{44} } +======= +func (*DataSetInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{48} } +>>>>>>> add bestTrialId to statusJob status func (m *DataSetInfo) GetName() string { if m != nil { @@ -1464,7 +1585,11 @@ type SaveStudyRequest struct { func (m *SaveStudyRequest) Reset() { *m = SaveStudyRequest{} } func (m *SaveStudyRequest) String() string { return proto.CompactTextString(m) } func (*SaveStudyRequest) ProtoMessage() {} +<<<<<<< HEAD func (*SaveStudyRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{45} } +======= +func (*SaveStudyRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{49} } +>>>>>>> add bestTrialId to statusJob status func (m *SaveStudyRequest) GetStudyName() string { if m != nil { @@ -1493,7 +1618,11 @@ type SaveStudyReply struct { func (m *SaveStudyReply) Reset() { *m = SaveStudyReply{} } func (m *SaveStudyReply) String() string { return proto.CompactTextString(m) } func (*SaveStudyReply) ProtoMessage() {} +<<<<<<< HEAD func (*SaveStudyReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{46} } +======= +func (*SaveStudyReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{50} } +>>>>>>> add bestTrialId to statusJob status type SaveModelRequest struct { Model *ModelInfo `protobuf:"bytes,1,opt,name=model" json:"model,omitempty"` @@ -1504,7 +1633,11 @@ type SaveModelRequest struct { func (m *SaveModelRequest) Reset() { *m = SaveModelRequest{} } func (m *SaveModelRequest) String() string { return proto.CompactTextString(m) } func (*SaveModelRequest) ProtoMessage() {} +<<<<<<< HEAD func (*SaveModelRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{47} } +======= +func (*SaveModelRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{51} } +>>>>>>> add bestTrialId to statusJob status func (m *SaveModelRequest) GetModel() *ModelInfo { if m != nil { @@ -1533,7 +1666,11 @@ type SaveModelReply struct { func (m *SaveModelReply) Reset() { *m = SaveModelReply{} } func (m *SaveModelReply) String() string { return proto.CompactTextString(m) } func (*SaveModelReply) ProtoMessage() {} +<<<<<<< HEAD func (*SaveModelReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{48} } +======= +func (*SaveModelReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{52} } +>>>>>>> add bestTrialId to statusJob status type GetSavedStudiesRequest struct { } @@ -1541,7 +1678,11 @@ type GetSavedStudiesRequest struct { func (m *GetSavedStudiesRequest) Reset() { *m = GetSavedStudiesRequest{} } func (m *GetSavedStudiesRequest) String() string { return proto.CompactTextString(m) } func (*GetSavedStudiesRequest) ProtoMessage() {} +<<<<<<< HEAD func (*GetSavedStudiesRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{49} } +======= +func (*GetSavedStudiesRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{53} } +>>>>>>> add bestTrialId to statusJob status type GetSavedStudiesReply struct { Studies []*StudyOverview `protobuf:"bytes,1,rep,name=studies" json:"studies,omitempty"` @@ -1550,7 +1691,11 @@ type GetSavedStudiesReply struct { func (m *GetSavedStudiesReply) Reset() { *m = GetSavedStudiesReply{} } func (m *GetSavedStudiesReply) String() string { return proto.CompactTextString(m) } func (*GetSavedStudiesReply) ProtoMessage() {} +<<<<<<< HEAD func (*GetSavedStudiesReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{50} } +======= +func (*GetSavedStudiesReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{54} } +>>>>>>> add bestTrialId to statusJob status func (m *GetSavedStudiesReply) GetStudies() []*StudyOverview { if m != nil { @@ -1566,7 +1711,11 @@ type GetSavedModelsRequest struct { func (m *GetSavedModelsRequest) Reset() { *m = GetSavedModelsRequest{} } func (m *GetSavedModelsRequest) String() string { return proto.CompactTextString(m) } func (*GetSavedModelsRequest) ProtoMessage() {} +<<<<<<< HEAD func (*GetSavedModelsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{51} } +======= +func (*GetSavedModelsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{55} } +>>>>>>> add bestTrialId to statusJob status func (m *GetSavedModelsRequest) GetStudyName() string { if m != nil { @@ -1582,7 +1731,11 @@ type GetSavedModelsReply struct { func (m *GetSavedModelsReply) Reset() { *m = GetSavedModelsReply{} } func (m *GetSavedModelsReply) String() string { return proto.CompactTextString(m) } func (*GetSavedModelsReply) ProtoMessage() {} +<<<<<<< HEAD func (*GetSavedModelsReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{52} } +======= +func (*GetSavedModelsReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{56} } +>>>>>>> add bestTrialId to statusJob status func (m *GetSavedModelsReply) GetModels() []*ModelInfo { if m != nil { @@ -1599,7 +1752,11 @@ type GetSavedModelRequest struct { func (m *GetSavedModelRequest) Reset() { *m = GetSavedModelRequest{} } func (m *GetSavedModelRequest) String() string { return proto.CompactTextString(m) } func (*GetSavedModelRequest) ProtoMessage() {} +<<<<<<< HEAD func (*GetSavedModelRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{53} } +======= +func (*GetSavedModelRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{57} } +>>>>>>> add bestTrialId to statusJob status func (m *GetSavedModelRequest) GetStudyName() string { if m != nil { @@ -1622,7 +1779,11 @@ type GetSavedModelReply struct { func (m *GetSavedModelReply) Reset() { *m = GetSavedModelReply{} } func (m *GetSavedModelReply) String() string { return proto.CompactTextString(m) } func (*GetSavedModelReply) ProtoMessage() {} +<<<<<<< HEAD func (*GetSavedModelReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{54} } +======= +func (*GetSavedModelReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{58} } +>>>>>>> add bestTrialId to statusJob status func (m *GetSavedModelReply) GetModel() *ModelInfo { if m != nil { @@ -1641,7 +1802,11 @@ type SetSuggestionParametersRequest struct { func (m *SetSuggestionParametersRequest) Reset() { *m = SetSuggestionParametersRequest{} } func (m *SetSuggestionParametersRequest) String() string { return proto.CompactTextString(m) } func (*SetSuggestionParametersRequest) ProtoMessage() {} +<<<<<<< HEAD func (*SetSuggestionParametersRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{55} } +======= +func (*SetSuggestionParametersRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{59} } +>>>>>>> add bestTrialId to statusJob status func (m *SetSuggestionParametersRequest) GetStudyId() string { if m != nil { @@ -1678,7 +1843,11 @@ type SetSuggestionParametersReply struct { func (m *SetSuggestionParametersReply) Reset() { *m = SetSuggestionParametersReply{} } func (m *SetSuggestionParametersReply) String() string { return proto.CompactTextString(m) } func (*SetSuggestionParametersReply) ProtoMessage() {} +<<<<<<< HEAD func (*SetSuggestionParametersReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{56} } +======= +func (*SetSuggestionParametersReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{60} } +>>>>>>> add bestTrialId to statusJob status func (m *SetSuggestionParametersReply) GetParamId() string { if m != nil { @@ -1694,7 +1863,11 @@ type GetSuggestionParametersRequest struct { func (m *GetSuggestionParametersRequest) Reset() { *m = GetSuggestionParametersRequest{} } func (m *GetSuggestionParametersRequest) String() string { return proto.CompactTextString(m) } func (*GetSuggestionParametersRequest) ProtoMessage() {} +<<<<<<< HEAD func (*GetSuggestionParametersRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{57} } +======= +func (*GetSuggestionParametersRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{61} } +>>>>>>> add bestTrialId to statusJob status func (m *GetSuggestionParametersRequest) GetParamId() string { if m != nil { @@ -1710,7 +1883,11 @@ type GetSuggestionParametersReply struct { func (m *GetSuggestionParametersReply) Reset() { *m = GetSuggestionParametersReply{} } func (m *GetSuggestionParametersReply) String() string { return proto.CompactTextString(m) } func (*GetSuggestionParametersReply) ProtoMessage() {} +<<<<<<< HEAD func (*GetSuggestionParametersReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{58} } +======= +func (*GetSuggestionParametersReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{62} } +>>>>>>> add bestTrialId to statusJob status func (m *GetSuggestionParametersReply) GetSuggestionParameters() []*SuggestionParameter { if m != nil { @@ -1727,7 +1904,11 @@ func (m *GetSuggestionParameterListRequest) Reset() { *m = GetSuggestion func (m *GetSuggestionParameterListRequest) String() string { return proto.CompactTextString(m) } func (*GetSuggestionParameterListRequest) ProtoMessage() {} func (*GetSuggestionParameterListRequest) Descriptor() ([]byte, []int) { +<<<<<<< HEAD return fileDescriptor0, []int{59} +======= + return fileDescriptor0, []int{63} +>>>>>>> add bestTrialId to statusJob status } func (m *GetSuggestionParameterListRequest) GetStudyId() string { @@ -1746,7 +1927,11 @@ type SuggestionParameterSet struct { func (m *SuggestionParameterSet) Reset() { *m = SuggestionParameterSet{} } func (m *SuggestionParameterSet) String() string { return proto.CompactTextString(m) } func (*SuggestionParameterSet) ProtoMessage() {} +<<<<<<< HEAD func (*SuggestionParameterSet) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{60} } +======= +func (*SuggestionParameterSet) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{64} } +>>>>>>> add bestTrialId to statusJob status func (m *SuggestionParameterSet) GetParamId() string { if m != nil { @@ -1777,7 +1962,11 @@ func (m *GetSuggestionParameterListReply) Reset() { *m = GetSuggestionPa func (m *GetSuggestionParameterListReply) String() string { return proto.CompactTextString(m) } func (*GetSuggestionParameterListReply) ProtoMessage() {} func (*GetSuggestionParameterListReply) Descriptor() ([]byte, []int) { +<<<<<<< HEAD return fileDescriptor0, []int{61} +======= + return fileDescriptor0, []int{65} +>>>>>>> add bestTrialId to statusJob status } func (m *GetSuggestionParameterListReply) GetSuggestionParameterSets() []*SuggestionParameterSet { @@ -1794,7 +1983,11 @@ type StopSuggestionRequest struct { func (m *StopSuggestionRequest) Reset() { *m = StopSuggestionRequest{} } func (m *StopSuggestionRequest) String() string { return proto.CompactTextString(m) } func (*StopSuggestionRequest) ProtoMessage() {} +<<<<<<< HEAD func (*StopSuggestionRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{62} } +======= +func (*StopSuggestionRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{66} } +>>>>>>> add bestTrialId to statusJob status func (m *StopSuggestionRequest) GetStudyId() string { if m != nil { @@ -1809,7 +2002,11 @@ type StopSuggestionReply struct { func (m *StopSuggestionReply) Reset() { *m = StopSuggestionReply{} } func (m *StopSuggestionReply) String() string { return proto.CompactTextString(m) } func (*StopSuggestionReply) ProtoMessage() {} +<<<<<<< HEAD func (*StopSuggestionReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{63} } +======= +func (*StopSuggestionReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{67} } +>>>>>>> add bestTrialId to statusJob status type SetEarlyStoppingParametersRequest struct { StudyId string `protobuf:"bytes,1,opt,name=study_id,json=studyId" json:"study_id,omitempty"` @@ -1822,7 +2019,11 @@ func (m *SetEarlyStoppingParametersRequest) Reset() { *m = SetEarlyStopp func (m *SetEarlyStoppingParametersRequest) String() string { return proto.CompactTextString(m) } func (*SetEarlyStoppingParametersRequest) ProtoMessage() {} func (*SetEarlyStoppingParametersRequest) Descriptor() ([]byte, []int) { +<<<<<<< HEAD return fileDescriptor0, []int{64} +======= + return fileDescriptor0, []int{68} +>>>>>>> add bestTrialId to statusJob status } func (m *SetEarlyStoppingParametersRequest) GetStudyId() string { @@ -1861,7 +2062,11 @@ func (m *SetEarlyStoppingParametersReply) Reset() { *m = SetEarlyStoppin func (m *SetEarlyStoppingParametersReply) String() string { return proto.CompactTextString(m) } func (*SetEarlyStoppingParametersReply) ProtoMessage() {} func (*SetEarlyStoppingParametersReply) Descriptor() ([]byte, []int) { +<<<<<<< HEAD return fileDescriptor0, []int{65} +======= + return fileDescriptor0, []int{69} +>>>>>>> add bestTrialId to statusJob status } func (m *SetEarlyStoppingParametersReply) GetParamId() string { @@ -1879,7 +2084,11 @@ func (m *GetEarlyStoppingParametersRequest) Reset() { *m = GetEarlyStopp func (m *GetEarlyStoppingParametersRequest) String() string { return proto.CompactTextString(m) } func (*GetEarlyStoppingParametersRequest) ProtoMessage() {} func (*GetEarlyStoppingParametersRequest) Descriptor() ([]byte, []int) { +<<<<<<< HEAD return fileDescriptor0, []int{66} +======= + return fileDescriptor0, []int{70} +>>>>>>> add bestTrialId to statusJob status } func (m *GetEarlyStoppingParametersRequest) GetParamId() string { @@ -1897,7 +2106,11 @@ func (m *GetEarlyStoppingParametersReply) Reset() { *m = GetEarlyStoppin func (m *GetEarlyStoppingParametersReply) String() string { return proto.CompactTextString(m) } func (*GetEarlyStoppingParametersReply) ProtoMessage() {} func (*GetEarlyStoppingParametersReply) Descriptor() ([]byte, []int) { +<<<<<<< HEAD return fileDescriptor0, []int{67} +======= + return fileDescriptor0, []int{71} +>>>>>>> add bestTrialId to statusJob status } func (m *GetEarlyStoppingParametersReply) GetEarlyStoppingParameters() []*EarlyStoppingParameter { @@ -1915,7 +2128,11 @@ func (m *GetEarlyStoppingParameterListRequest) Reset() { *m = GetEarlySt func (m *GetEarlyStoppingParameterListRequest) String() string { return proto.CompactTextString(m) } func (*GetEarlyStoppingParameterListRequest) ProtoMessage() {} func (*GetEarlyStoppingParameterListRequest) Descriptor() ([]byte, []int) { +<<<<<<< HEAD return fileDescriptor0, []int{68} +======= + return fileDescriptor0, []int{72} +>>>>>>> add bestTrialId to statusJob status } func (m *GetEarlyStoppingParameterListRequest) GetStudyId() string { @@ -1934,7 +2151,11 @@ type EarlyStoppingParameterSet struct { func (m *EarlyStoppingParameterSet) Reset() { *m = EarlyStoppingParameterSet{} } func (m *EarlyStoppingParameterSet) String() string { return proto.CompactTextString(m) } func (*EarlyStoppingParameterSet) ProtoMessage() {} +<<<<<<< HEAD func (*EarlyStoppingParameterSet) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{69} } +======= +func (*EarlyStoppingParameterSet) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{73} } +>>>>>>> add bestTrialId to statusJob status func (m *EarlyStoppingParameterSet) GetParamId() string { if m != nil { @@ -1965,7 +2186,11 @@ func (m *GetEarlyStoppingParameterListReply) Reset() { *m = GetEarlyStop func (m *GetEarlyStoppingParameterListReply) String() string { return proto.CompactTextString(m) } func (*GetEarlyStoppingParameterListReply) ProtoMessage() {} func (*GetEarlyStoppingParameterListReply) Descriptor() ([]byte, []int) { +<<<<<<< HEAD return fileDescriptor0, []int{70} +======= + return fileDescriptor0, []int{74} +>>>>>>> add bestTrialId to statusJob status } func (m *GetEarlyStoppingParameterListReply) GetEarlyStoppingParameterSets() []*EarlyStoppingParameterSet { @@ -2001,6 +2226,8 @@ func init() { proto.RegisterType((*CreateTrialReply)(nil), "api.CreateTrialReply") proto.RegisterType((*GetTrialsRequest)(nil), "api.GetTrialsRequest") proto.RegisterType((*GetTrialsReply)(nil), "api.GetTrialsReply") + proto.RegisterType((*GetTrialRequest)(nil), "api.GetTrialRequest") + proto.RegisterType((*GetTrialReply)(nil), "api.GetTrialReply") proto.RegisterType((*RegisterWorkerRequest)(nil), "api.RegisterWorkerRequest") proto.RegisterType((*RegisterWorkerReply)(nil), "api.RegisterWorkerReply") proto.RegisterType((*StopWorkersRequest)(nil), "api.StopWorkersRequest") @@ -2081,9 +2308,15 @@ type ManagerClient interface { // * // Get a Trial Configs from DB by ID of Study. GetTrials(ctx context.Context, in *GetTrialsRequest, opts ...grpc.CallOption) (*GetTrialsReply, error) +<<<<<<< HEAD // * // Create a Worker from Worker Config. // Generate a unique ID and store the Worker to DB. +======= + // + // Get a Trial Configuration from DB by ID of Trial. + GetTrial(ctx context.Context, in *GetTrialRequest, opts ...grpc.CallOption) (*GetTrialReply, error) +>>>>>>> add bestTrialId to statusJob status RegisterWorker(ctx context.Context, in *RegisterWorkerRequest, opts ...grpc.CallOption) (*RegisterWorkerReply, error) // * // Get a Worker Configs and Statuses from DB by ID of Study, Trial or Worker. @@ -2182,6 +2415,15 @@ func (c *managerClient) GetTrials(ctx context.Context, in *GetTrialsRequest, opt return out, nil } +func (c *managerClient) GetTrial(ctx context.Context, in *GetTrialRequest, opts ...grpc.CallOption) (*GetTrialReply, error) { + out := new(GetTrialReply) + err := grpc.Invoke(ctx, "/api.Manager/GetTrial", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *managerClient) RegisterWorker(ctx context.Context, in *RegisterWorkerRequest, opts ...grpc.CallOption) (*RegisterWorkerReply, error) { out := new(RegisterWorkerReply) err := grpc.Invoke(ctx, "/api.Manager/RegisterWorker", in, out, c.cc, opts...) @@ -2364,9 +2606,15 @@ type ManagerServer interface { // * // Get a Trial Configs from DB by ID of Study. GetTrials(context.Context, *GetTrialsRequest) (*GetTrialsReply, error) +<<<<<<< HEAD // * // Create a Worker from Worker Config. // Generate a unique ID and store the Worker to DB. +======= + // + // Get a Trial Configuration from DB by ID of Trial. + GetTrial(context.Context, *GetTrialRequest) (*GetTrialReply, error) +>>>>>>> add bestTrialId to statusJob status RegisterWorker(context.Context, *RegisterWorkerRequest) (*RegisterWorkerReply, error) // * // Get a Worker Configs and Statuses from DB by ID of Study, Trial or Worker. @@ -2506,6 +2754,24 @@ func _Manager_GetTrials_Handler(srv interface{}, ctx context.Context, dec func(i return interceptor(ctx, in, info, handler) } +func _Manager_GetTrial_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetTrialRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ManagerServer).GetTrial(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.Manager/GetTrial", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ManagerServer).GetTrial(ctx, req.(*GetTrialRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _Manager_RegisterWorker_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(RegisterWorkerRequest) if err := dec(in); err != nil { @@ -2854,6 +3120,10 @@ var _Manager_serviceDesc = grpc.ServiceDesc{ MethodName: "GetTrials", Handler: _Manager_GetTrials_Handler, }, + { + MethodName: "GetTrial", + Handler: _Manager_GetTrial_Handler, + }, { MethodName: "RegisterWorker", Handler: _Manager_RegisterWorker_Handler, @@ -3062,6 +3332,7 @@ var _EarlyStopping_serviceDesc = grpc.ServiceDesc{ func init() { proto.RegisterFile("api.proto", fileDescriptor0) } var fileDescriptor0 = []byte{ +<<<<<<< HEAD // 2783 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x5a, 0x4b, 0x73, 0x1b, 0xc7, 0xf1, 0xf7, 0x02, 0x7c, 0xa1, 0x41, 0x80, 0xe0, 0xf0, 0xb5, 0x04, 0x1f, 0x22, 0x47, 0xb4, 0x44, @@ -3237,4 +3508,187 @@ var fileDescriptor0 = []byte{ 0x09, 0x2d, 0x44, 0x6a, 0xe3, 0x94, 0xa5, 0x3a, 0x80, 0x5f, 0x36, 0xd0, 0xe3, 0x1f, 0xe7, 0x71, 0x2d, 0x19, 0x90, 0x0b, 0x04, 0x24, 0xfa, 0xf4, 0x75, 0x3d, 0xa2, 0x27, 0x23, 0xec, 0x5f, 0xf4, 0xee, 0xfd, 0x37, 0x00, 0x00, 0xff, 0xff, 0xe7, 0x43, 0xd7, 0x20, 0xd2, 0x27, 0x00, 0x00, +======= + // 2871 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x5a, 0x4b, 0x73, 0x1b, 0xc7, + 0x11, 0xf6, 0x02, 0x7c, 0xa1, 0x41, 0x82, 0xe0, 0xf0, 0xa1, 0x25, 0x28, 0x52, 0xe4, 0x48, 0x96, + 0x64, 0xc9, 0x26, 0x6d, 0xc8, 0x4f, 0x59, 0x8e, 0x4b, 0x22, 0x69, 0x06, 0x65, 0x12, 0x64, 0x2d, + 0x21, 0xd3, 0x8f, 0x2a, 0xa3, 0x96, 0xc4, 0x10, 0x5a, 0x1b, 0xc0, 0x6e, 0xb0, 0x4b, 0xca, 0x92, + 0xcb, 0x97, 0x5c, 0x92, 0x4b, 0xaa, 0x9c, 0xa4, 0x72, 0xc9, 0xc1, 0xc7, 0xfc, 0x80, 0x54, 0xe5, + 0x90, 0x4b, 0xee, 0x39, 0xe4, 0x94, 0x4a, 0x55, 0x7e, 0x40, 0x6e, 0xc9, 0x7f, 0x48, 0x6a, 0x7a, + 0x66, 0x77, 0x67, 0x17, 0xbb, 0x4b, 0x58, 0xb2, 0x73, 0xdb, 0x99, 0xe9, 0xe9, 0xfe, 0xba, 0xa7, + 0xbb, 0xa7, 0xa7, 0x01, 0x28, 0x98, 0x8e, 0xb5, 0xee, 0xf4, 0x6d, 0xcf, 0x26, 0x79, 0xd3, 0xb1, + 0x2a, 0x97, 0xdb, 0xb6, 0xdd, 0xee, 0xb0, 0x0d, 0xd3, 0xb1, 0x36, 0xcc, 0x5e, 0xcf, 0xf6, 0x4c, + 0xcf, 0xb2, 0x7b, 0xae, 0x20, 0xa1, 0x3b, 0x30, 0xf5, 0x01, 0x33, 0x5d, 0xeb, 0xb8, 0xc3, 0x0e, + 0x1d, 0xf3, 0x84, 0x91, 0x32, 0xe4, 0xbb, 0xe6, 0x57, 0xba, 0xb6, 0xaa, 0xdd, 0x2c, 0x18, 0xfc, + 0x13, 0x67, 0xac, 0x9e, 0x9e, 0x93, 0x33, 0x56, 0x8f, 0x10, 0x18, 0xe9, 0x58, 0xae, 0xa7, 0xe7, + 0x57, 0xf3, 0x37, 0x0b, 0x06, 0x7e, 0xd3, 0x6f, 0x35, 0x98, 0x3e, 0x30, 0xfb, 0x66, 0x97, 0x79, + 0xac, 0xbf, 0x69, 0xf7, 0x4e, 0xad, 0x36, 0xa7, 0xeb, 0x99, 0x5d, 0x26, 0x99, 0xe1, 0x37, 0x79, + 0x07, 0x4a, 0x8e, 0x4f, 0xd6, 0xf4, 0x9e, 0x38, 0x0c, 0x19, 0x97, 0xaa, 0x64, 0x9d, 0xe3, 0x0e, + 0x38, 0x34, 0x9e, 0x38, 0xcc, 0x98, 0x72, 0xd4, 0x21, 0x59, 0x87, 0x89, 0x53, 0x89, 0x55, 0xcf, + 0xaf, 0x6a, 0x37, 0x8b, 0x72, 0x53, 0x44, 0x01, 0x23, 0xa0, 0xa1, 0x0e, 0x14, 0x02, 0x7e, 0x3f, + 0x34, 0x96, 0x39, 0x18, 0x3d, 0x37, 0x3b, 0x67, 0x02, 0x48, 0xc1, 0x10, 0x03, 0xfa, 0x6b, 0x0d, + 0xa6, 0xf6, 0x98, 0xd7, 0xb7, 0x4e, 0xdc, 0x5d, 0xbb, 0x7d, 0xc8, 0x3c, 0xb2, 0x04, 0x85, 0xc7, + 0x76, 0xff, 0x4b, 0xd6, 0x6f, 0x5a, 0x2d, 0x29, 0x7b, 0x42, 0x4c, 0xd4, 0x5a, 0xa4, 0x0a, 0x93, + 0x5d, 0x41, 0xdd, 0xec, 0xd8, 0x6d, 0x57, 0xcf, 0xad, 0xe6, 0x6f, 0x16, 0xab, 0xd3, 0x28, 0x3d, + 0x64, 0x63, 0x14, 0xbb, 0xc1, 0xb7, 0x4b, 0x36, 0x60, 0x4a, 0x32, 0x74, 0x3d, 0xd3, 0x3b, 0x73, + 0x11, 0x40, 0xa9, 0x0a, 0xb8, 0xe9, 0xd0, 0x33, 0x3d, 0x66, 0x4c, 0x0a, 0x82, 0x43, 0x5c, 0xa7, + 0x77, 0x60, 0x5c, 0xf2, 0x4a, 0xb4, 0x41, 0xa0, 0x48, 0x4e, 0x55, 0xe4, 0x1e, 0x94, 0xe5, 0xa6, + 0x8f, 0xf8, 0xb8, 0x61, 0x75, 0x19, 0xdf, 0xed, 0x59, 0xe1, 0x6e, 0xfe, 0x9d, 0xb2, 0x7b, 0x1f, + 0x20, 0x84, 0x9f, 0x28, 0xf5, 0x15, 0x18, 0x43, 0x52, 0x5f, 0xe7, 0x79, 0x55, 0xe7, 0x40, 0xa4, + 0x21, 0x89, 0xe8, 0xfb, 0x30, 0x7b, 0x78, 0xd6, 0x6e, 0x33, 0x97, 0xbb, 0x6e, 0xf6, 0x99, 0x26, + 0x23, 0x7a, 0x00, 0x0b, 0xdb, 0x66, 0xbf, 0xf3, 0xe4, 0xd0, 0xb3, 0x1d, 0xc7, 0xea, 0xb5, 0x9f, + 0x85, 0xc7, 0x06, 0xe4, 0x1b, 0x66, 0xfb, 0x7b, 0x6c, 0xf8, 0x12, 0xa6, 0x0e, 0xbd, 0xb3, 0xd6, + 0x93, 0xfd, 0x73, 0xd6, 0x3f, 0xb7, 0xd8, 0xe3, 0xb4, 0xad, 0xf6, 0xe3, 0x1e, 0xeb, 0xfb, 0x5b, + 0x71, 0x40, 0x4a, 0x90, 0xb3, 0x5a, 0xd2, 0xb7, 0x72, 0x56, 0x8b, 0xac, 0x42, 0xb1, 0xc5, 0xdc, + 0x93, 0xbe, 0xe5, 0x70, 0x0b, 0xe8, 0x23, 0xb8, 0xa0, 0x4e, 0xd1, 0x3f, 0x6b, 0x30, 0xda, 0xe8, + 0x5b, 0x66, 0x87, 0x2c, 0xc2, 0x84, 0xc7, 0x3f, 0x42, 0x8f, 0x1b, 0xc7, 0x71, 0xad, 0xc5, 0x97, + 0x5c, 0x8e, 0x88, 0x2f, 0x09, 0x79, 0xe3, 0x38, 0xae, 0xb5, 0xc8, 0x1d, 0x08, 0x3d, 0xbc, 0xe9, + 0x32, 0x11, 0xdc, 0xc5, 0x6a, 0x29, 0x1a, 0x0a, 0xc6, 0x64, 0x40, 0xc4, 0xbd, 0xfb, 0x06, 0x4c, + 0xdb, 0xc7, 0x5f, 0xb0, 0x13, 0xcf, 0x3a, 0x67, 0x4d, 0x61, 0x01, 0x01, 0xad, 0x14, 0x4c, 0xe3, + 0x61, 0x92, 0xcb, 0x30, 0xe2, 0x99, 0x6d, 0x57, 0x1f, 0x45, 0xa6, 0x13, 0xc8, 0xb4, 0x61, 0xb6, + 0x0d, 0x9c, 0xa5, 0x9f, 0x02, 0x7c, 0x64, 0x77, 0xce, 0xba, 0x8c, 0xe7, 0x8d, 0x44, 0x2b, 0x2d, + 0xc2, 0x84, 0x73, 0x7e, 0xd2, 0xc4, 0x79, 0x09, 0xdc, 0x39, 0x3f, 0xa9, 0xf3, 0xa5, 0x65, 0x80, + 0xae, 0x7d, 0xd6, 0xf3, 0x9a, 0x8e, 0xe9, 0x3d, 0x92, 0x26, 0x2b, 0xe0, 0xcc, 0x81, 0xe9, 0x3d, + 0xa2, 0xff, 0xd0, 0x60, 0xec, 0x08, 0xe3, 0x21, 0x3b, 0x16, 0x33, 0x4c, 0xa3, 0x1a, 0x34, 0x1f, + 0x35, 0x28, 0x81, 0x11, 0x9e, 0x0e, 0xa4, 0xd6, 0xf8, 0x4d, 0x28, 0x8c, 0xc9, 0xd0, 0x1c, 0x1d, + 0x08, 0x4d, 0xb9, 0x42, 0x28, 0x4c, 0x36, 0x58, 0xd7, 0xe9, 0x98, 0x1e, 0xe3, 0x28, 0xf5, 0x31, + 0xdc, 0x1f, 0x99, 0x0b, 0x6c, 0x36, 0x9e, 0x68, 0xb3, 0x7f, 0xe7, 0xa1, 0x88, 0xde, 0x95, 0x91, + 0x6b, 0x93, 0x7d, 0xeb, 0x01, 0xcc, 0xd8, 0x8e, 0x67, 0x75, 0xad, 0xa7, 0x78, 0x13, 0x88, 0xc4, + 0x27, 0xb2, 0x88, 0x08, 0xc3, 0x7d, 0x65, 0x15, 0x73, 0x5f, 0xd9, 0x8e, 0xcd, 0x90, 0xdb, 0x31, + 0x1e, 0x6d, 0xdb, 0xec, 0xa0, 0x11, 0xb4, 0x28, 0xf1, 0x8e, 0x6d, 0x76, 0x48, 0x1d, 0x66, 0x42, + 0xd7, 0x3a, 0x41, 0xb8, 0xc2, 0x36, 0xc5, 0xea, 0x9a, 0xb4, 0x4d, 0xa0, 0xc7, 0x7a, 0xec, 0x0e, + 0x71, 0x8d, 0xb2, 0x13, 0x9b, 0x21, 0xaf, 0x00, 0x31, 0x4f, 0x4e, 0x98, 0xeb, 0x36, 0x1d, 0xd6, + 0xef, 0x5a, 0xae, 0xcb, 0xef, 0x33, 0x7d, 0x0c, 0x2f, 0xa3, 0x19, 0xb1, 0x72, 0x10, 0x2e, 0x64, + 0xdb, 0x91, 0xbc, 0x0a, 0x73, 0x31, 0x17, 0x16, 0x5e, 0x36, 0x81, 0x26, 0x23, 0x51, 0x3f, 0x46, + 0x87, 0xd3, 0x61, 0x5c, 0x26, 0x64, 0xbd, 0x80, 0x32, 0xfd, 0x21, 0xb7, 0xf7, 0x17, 0xf6, 0x71, + 0xad, 0xa5, 0x83, 0xb0, 0x37, 0x0e, 0x2a, 0x0f, 0xa0, 0x1c, 0x57, 0x8a, 0xac, 0xc3, 0xb8, 0x6f, + 0x08, 0x0d, 0x61, 0xcd, 0x45, 0xe3, 0x4c, 0xd0, 0x19, 0x3e, 0x11, 0xad, 0x01, 0xd9, 0xec, 0x33, + 0xd3, 0x63, 0x68, 0x2a, 0x83, 0xfd, 0xec, 0x8c, 0xb9, 0x1e, 0xb9, 0x03, 0x93, 0xc2, 0x67, 0x05, + 0x19, 0x9e, 0x7d, 0xb1, 0x5a, 0x8e, 0xdb, 0xd4, 0x28, 0xba, 0xe1, 0x80, 0xbe, 0x02, 0xe5, 0x08, + 0x2b, 0xa7, 0xf3, 0x24, 0xe2, 0xfc, 0x5a, 0xc4, 0xf9, 0x69, 0x19, 0x4a, 0x3c, 0x69, 0x86, 0xc4, + 0xf4, 0x65, 0x98, 0xde, 0x61, 0x5e, 0x04, 0x48, 0xc6, 0xfe, 0x2d, 0x98, 0x0a, 0xa9, 0xb9, 0xac, + 0x67, 0x02, 0x3d, 0x0f, 0xb3, 0x3e, 0x97, 0x5d, 0xcb, 0xf5, 0xa4, 0x5c, 0x7a, 0x00, 0x33, 0xd1, + 0x69, 0x2e, 0xe0, 0x5d, 0x98, 0x16, 0x02, 0x6c, 0x99, 0x77, 0x7d, 0x1b, 0x93, 0x50, 0x86, 0x9f, + 0x92, 0x8d, 0x92, 0xab, 0x0e, 0x5d, 0xfa, 0xa6, 0x6f, 0x68, 0xcc, 0xa5, 0xbe, 0x7e, 0xab, 0x30, + 0x8a, 0x11, 0x2f, 0xc1, 0x8a, 0x88, 0x16, 0x14, 0x62, 0x21, 0xb4, 0xaa, 0xdc, 0x27, 0xad, 0x9a, + 0x92, 0x88, 0x39, 0xf9, 0x0e, 0xf3, 0x90, 0xd6, 0x1d, 0xc2, 0x88, 0xaf, 0x43, 0x49, 0x21, 0xe7, + 0xbc, 0x29, 0x8c, 0x21, 0x2f, 0x5f, 0x37, 0x15, 0x92, 0x5c, 0x91, 0x07, 0x15, 0x51, 0x24, 0x03, + 0xd2, 0x6b, 0x78, 0x50, 0x0a, 0xfc, 0x8b, 0x95, 0xbe, 0x07, 0xf3, 0x06, 0x6b, 0x5b, 0xae, 0xc7, + 0xfa, 0x22, 0xc5, 0xfa, 0x62, 0xae, 0xc2, 0x98, 0x48, 0xac, 0x72, 0x6f, 0x11, 0xf7, 0x4a, 0x1a, + 0xb9, 0x44, 0xab, 0x30, 0x1b, 0xdf, 0xcd, 0xc5, 0x66, 0x65, 0x69, 0x6a, 0x03, 0xe1, 0xde, 0x28, + 0xe8, 0x87, 0xb0, 0x1c, 0xbf, 0x1d, 0x02, 0x6e, 0xa2, 0xd8, 0x28, 0x18, 0x05, 0x9f, 0x9d, 0x4b, + 0xae, 0x40, 0xd1, 0x72, 0x9b, 0x27, 0x76, 0xd7, 0xe9, 0x30, 0x4f, 0x64, 0xc1, 0x09, 0x03, 0x2c, + 0x77, 0x53, 0xce, 0x50, 0x02, 0xe5, 0x88, 0x40, 0x1e, 0x00, 0xa7, 0xe8, 0x75, 0xc3, 0x63, 0x50, + 0x8d, 0x9e, 0x8b, 0xde, 0x1f, 0x11, 0x65, 0xf3, 0x31, 0x65, 0xdf, 0xc6, 0xf3, 0x53, 0x45, 0x93, + 0x17, 0x61, 0x5c, 0x2c, 0xfb, 0xe7, 0x1e, 0xb1, 0xac, 0xbf, 0x46, 0x3f, 0x03, 0xfd, 0xa1, 0xd3, + 0x32, 0x3d, 0x76, 0x14, 0x54, 0x82, 0xcc, 0x07, 0x9a, 0x79, 0x0b, 0x86, 0x77, 0x57, 0x2e, 0xed, + 0xee, 0xa2, 0x3a, 0x2c, 0x24, 0x30, 0xe7, 0x86, 0xf9, 0x9d, 0x06, 0x7a, 0x80, 0xf8, 0x83, 0xb3, + 0x4e, 0xa7, 0xd6, 0x3b, 0xb5, 0x7f, 0x3c, 0x03, 0x91, 0xeb, 0x30, 0x6d, 0xf7, 0x3a, 0x4f, 0x9a, + 0xfc, 0xca, 0x74, 0x3d, 0x5e, 0x43, 0xe3, 0x1d, 0x34, 0x61, 0x4c, 0xf1, 0xe9, 0x5d, 0x9c, 0xdd, + 0xb5, 0xdb, 0xf4, 0x3b, 0x0d, 0x4a, 0x51, 0x50, 0xdc, 0x43, 0x8f, 0xd2, 0x3d, 0x54, 0x16, 0x0c, + 0x03, 0x35, 0x51, 0x6e, 0x88, 0x9a, 0x28, 0x5e, 0xd4, 0xe7, 0x2f, 0x2e, 0xea, 0xe9, 0x27, 0xb0, + 0x90, 0x60, 0x37, 0x7e, 0xe0, 0xef, 0xc3, 0x8c, 0xd4, 0xff, 0xf4, 0xac, 0xd3, 0x69, 0x5a, 0xbd, + 0x53, 0xdb, 0x3f, 0xfa, 0x59, 0x05, 0x72, 0xb0, 0x69, 0xfa, 0x71, 0x64, 0xec, 0xd2, 0xbf, 0x69, + 0x30, 0xcf, 0x73, 0x64, 0x50, 0x3e, 0x0f, 0xe3, 0xb1, 0xaf, 0xc1, 0x9c, 0x1b, 0x6c, 0x68, 0x9a, + 0x9d, 0xb6, 0xdd, 0xb7, 0xbc, 0x47, 0x5d, 0x79, 0x38, 0xb3, 0xe1, 0xda, 0x7d, 0x7f, 0x89, 0xbc, + 0x08, 0xa5, 0xbe, 0x60, 0xdc, 0xec, 0x9d, 0x75, 0x8f, 0x59, 0x1f, 0x4f, 0x6b, 0xd4, 0x98, 0x92, + 0xb3, 0x75, 0x9c, 0x24, 0xd7, 0xa0, 0xd4, 0xb1, 0xdb, 0x4d, 0x25, 0x26, 0x47, 0x30, 0x26, 0x27, + 0x3b, 0x76, 0xfb, 0x28, 0x08, 0x4b, 0x5e, 0xee, 0x71, 0x9b, 0x72, 0x68, 0xa3, 0xb2, 0xdc, 0xe3, + 0xe3, 0x5a, 0x8b, 0xbe, 0x23, 0x6e, 0x02, 0x55, 0x9d, 0x61, 0xf3, 0xe1, 0xaf, 0x34, 0x58, 0xe2, + 0x7b, 0x1f, 0xd9, 0x67, 0x9d, 0xd6, 0xf7, 0x4b, 0x23, 0x6f, 0x83, 0xce, 0xf8, 0xfb, 0xa1, 0xe9, + 0xca, 0x07, 0xc4, 0x80, 0x51, 0x16, 0x98, 0xfa, 0xbe, 0x08, 0xed, 0x92, 0xa1, 0xca, 0x01, 0x2c, + 0x26, 0xc3, 0x11, 0xd7, 0xe4, 0x82, 0x8b, 0x2b, 0x28, 0x52, 0x35, 0x98, 0x86, 0x06, 0x9b, 0x75, + 0x63, 0xfb, 0x6a, 0x2d, 0x97, 0xf6, 0x31, 0x33, 0x49, 0x2f, 0x7b, 0xfe, 0xec, 0x78, 0x15, 0xa6, + 0x7c, 0x57, 0xe6, 0x35, 0x91, 0x2b, 0x1f, 0xfc, 0xbe, 0x7f, 0xf3, 0x6a, 0xc8, 0xa5, 0xfb, 0x98, + 0xa5, 0x02, 0x99, 0x1c, 0xfb, 0x3d, 0x28, 0x2b, 0x21, 0xc0, 0x23, 0x27, 0x7a, 0x05, 0x47, 0x9e, + 0xc8, 0x46, 0xa9, 0xab, 0x0e, 0x5d, 0xea, 0x82, 0x6e, 0x30, 0xc7, 0xee, 0x7b, 0x21, 0xd9, 0x30, + 0xba, 0x24, 0x09, 0xcd, 0x0f, 0x2d, 0x54, 0x87, 0x85, 0x04, 0xa1, 0x3c, 0xa9, 0xfd, 0x45, 0x83, + 0xc2, 0x9e, 0xdd, 0x62, 0x22, 0x6f, 0x2c, 0x03, 0x08, 0x00, 0x4a, 0xb1, 0x5d, 0xc0, 0x19, 0xac, + 0x0d, 0x23, 0xe9, 0x2a, 0x17, 0x4b, 0x57, 0xeb, 0x00, 0x41, 0xa6, 0x70, 0x53, 0xde, 0x57, 0x0a, + 0x05, 0xb9, 0x1e, 0x16, 0x9a, 0x23, 0x48, 0x3c, 0xa9, 0x2a, 0x12, 0x96, 0x9d, 0xf8, 0x02, 0x6a, + 0xb1, 0x8e, 0x78, 0x01, 0x8d, 0xfa, 0x2f, 0xa0, 0x16, 0xeb, 0xe0, 0x0b, 0xe8, 0x0d, 0x28, 0x6e, + 0x99, 0x9e, 0x79, 0xc8, 0x3c, 0xd4, 0x20, 0xe9, 0xa1, 0x40, 0x60, 0x04, 0xf7, 0x0a, 0xc4, 0xf8, + 0x4d, 0x2d, 0x28, 0x1f, 0x9a, 0xe7, 0xd1, 0x82, 0xf3, 0x02, 0xed, 0x93, 0xdf, 0x1b, 0xb1, 0xb7, + 0x6b, 0x7e, 0xf0, 0xed, 0xca, 0x6b, 0xcc, 0x50, 0x14, 0x37, 0xfa, 0x2f, 0x35, 0x21, 0x1d, 0x0d, + 0xef, 0x4b, 0xbf, 0x06, 0xa3, 0xa8, 0x95, 0x4c, 0xd9, 0xc2, 0x74, 0xc1, 0xd1, 0x18, 0x62, 0x91, + 0xdc, 0x86, 0x89, 0x96, 0xe9, 0x99, 0x32, 0x5f, 0x87, 0xb5, 0xa5, 0x62, 0x03, 0x63, 0xbc, 0x25, + 0x06, 0x64, 0x0d, 0x26, 0x3d, 0xd6, 0x73, 0xed, 0x7e, 0xf3, 0xd8, 0x36, 0xfb, 0x2d, 0x59, 0x00, + 0x14, 0xc5, 0xdc, 0x03, 0x3e, 0xe5, 0x83, 0x93, 0x48, 0x38, 0x38, 0x1d, 0xb3, 0x35, 0x9f, 0x6c, + 0x71, 0xc8, 0x16, 0xf3, 0xdd, 0x93, 0x6e, 0xc1, 0xdc, 0xc0, 0x0a, 0x0f, 0x88, 0x97, 0x01, 0xdd, + 0xd4, 0x62, 0x59, 0xa5, 0xa8, 0x4f, 0x42, 0xdf, 0x14, 0x19, 0x9b, 0x73, 0x41, 0xa9, 0xee, 0x70, + 0xe6, 0xa7, 0xef, 0x89, 0xd4, 0xa8, 0xee, 0xe3, 0xc2, 0xaf, 0xc3, 0x18, 0x5a, 0xc6, 0x97, 0x1d, + 0xb7, 0x9b, 0x5c, 0xa5, 0x46, 0x08, 0x3e, 0x62, 0xf6, 0xe7, 0x70, 0x79, 0x7a, 0x17, 0x48, 0x8c, + 0x27, 0x47, 0x34, 0xd4, 0x41, 0xd2, 0x7f, 0x6a, 0xb0, 0x72, 0xa8, 0xa6, 0xfa, 0x20, 0x4a, 0x7e, + 0xa4, 0x2b, 0x4c, 0x4d, 0xd5, 0xf9, 0x48, 0xaa, 0x26, 0x7b, 0x30, 0xaf, 0x70, 0x53, 0xa2, 0x58, + 0x04, 0xa6, 0x2e, 0x8e, 0x73, 0x10, 0xa9, 0xa1, 0x80, 0x08, 0xe1, 0xd3, 0x77, 0xe0, 0x72, 0xaa, + 0x66, 0xf2, 0xe5, 0x10, 0x20, 0xd1, 0xa2, 0x97, 0xc6, 0xbb, 0xb0, 0xb2, 0x73, 0xa1, 0x51, 0xd2, + 0x36, 0x77, 0xe1, 0xf2, 0x4e, 0x96, 0xdc, 0x54, 0x35, 0xb5, 0x67, 0x52, 0xf3, 0x27, 0xb0, 0x96, + 0x2c, 0x4e, 0x79, 0xc3, 0x65, 0x3d, 0x7b, 0xfe, 0xa4, 0xc1, 0x42, 0xc2, 0x6e, 0x1e, 0xb8, 0xe9, + 0x4a, 0x3e, 0xcb, 0xc9, 0xa7, 0xea, 0x9d, 0x7f, 0x26, 0xbd, 0x9f, 0xc2, 0x95, 0x2c, 0xbd, 0xb9, + 0xa5, 0x8f, 0x60, 0x31, 0x49, 0xa2, 0x7a, 0x57, 0x2e, 0xa5, 0x49, 0xe5, 0xf7, 0xd7, 0x25, 0x37, + 0x71, 0xde, 0xa5, 0x55, 0x98, 0xc7, 0xf7, 0x7a, 0xb0, 0x3c, 0x84, 0x9d, 0xe7, 0x61, 0x36, 0xbe, + 0x87, 0xe7, 0xb9, 0xff, 0x68, 0xb0, 0x76, 0xc8, 0xbc, 0xe4, 0xc6, 0xe9, 0xff, 0xaf, 0x6a, 0x8a, + 0x85, 0xe2, 0x11, 0x2c, 0xc6, 0x98, 0x0e, 0x84, 0xa3, 0xb0, 0x5c, 0x32, 0x6e, 0xe3, 0x12, 0x4b, + 0xd6, 0x87, 0xde, 0x83, 0x2b, 0x59, 0xda, 0x5e, 0x10, 0x97, 0xc2, 0xd7, 0x2f, 0xb6, 0x55, 0xda, + 0x7e, 0xe1, 0x33, 0x99, 0xd2, 0x33, 0x35, 0xd7, 0x9e, 0x43, 0xf3, 0xfb, 0x70, 0x2d, 0x55, 0xf6, + 0x90, 0xa1, 0xfa, 0x57, 0x0d, 0x16, 0x93, 0x19, 0x5c, 0x10, 0xad, 0xcf, 0xee, 0x23, 0x99, 0xe6, + 0xc8, 0x3f, 0x87, 0x39, 0x7e, 0xa1, 0x01, 0xbd, 0xc0, 0x1e, 0xfc, 0x38, 0x4c, 0x58, 0x4e, 0x93, + 0xaf, 0x86, 0xf1, 0x4a, 0x06, 0x06, 0x1e, 0xc9, 0x15, 0x96, 0xb6, 0xe4, 0xde, 0x7a, 0x08, 0x53, + 0x91, 0x5f, 0xa1, 0x48, 0x19, 0x26, 0x1f, 0xd6, 0x3f, 0xac, 0xef, 0x1f, 0xd5, 0x9b, 0x8d, 0x4f, + 0x0e, 0xb6, 0xcb, 0x2f, 0x10, 0x80, 0xb1, 0xad, 0xfd, 0x87, 0x0f, 0x76, 0xb7, 0xcb, 0x1a, 0x19, + 0x87, 0x7c, 0xad, 0xde, 0x28, 0xe7, 0xc8, 0x24, 0x4c, 0x6c, 0xd5, 0x0e, 0x37, 0x8d, 0xed, 0xc6, + 0x76, 0x39, 0x4f, 0xa6, 0xa1, 0xb8, 0x79, 0xbf, 0xb1, 0xbd, 0xb3, 0x6f, 0xd4, 0x36, 0xef, 0xef, + 0x96, 0x47, 0x6e, 0xfd, 0x14, 0xca, 0xf1, 0x1e, 0x2f, 0xd1, 0x61, 0xce, 0xe7, 0xbc, 0x7f, 0xd0, + 0xa8, 0xed, 0xd5, 0x3e, 0xbd, 0xdf, 0xa8, 0xed, 0xd7, 0xcb, 0x2f, 0x70, 0x66, 0x7b, 0xb5, 0x3a, + 0x9f, 0xe1, 0x32, 0xf8, 0xe8, 0xfe, 0xc7, 0x62, 0x94, 0xbb, 0xb5, 0x03, 0xa3, 0xf8, 0xfe, 0x27, + 0x45, 0x18, 0x3f, 0xd8, 0xae, 0x6f, 0xd5, 0xea, 0x3b, 0xe5, 0x17, 0xf8, 0xc0, 0x78, 0x58, 0xaf, + 0xf3, 0x81, 0x46, 0xa6, 0xa0, 0xb0, 0xb9, 0xbf, 0x77, 0xb0, 0xbb, 0xdd, 0xd8, 0xde, 0x2a, 0xe7, + 0x38, 0xde, 0x0f, 0x6b, 0xbb, 0xbb, 0xdb, 0x5b, 0xe5, 0x3c, 0x29, 0xc0, 0xe8, 0xb6, 0x61, 0xec, + 0x1b, 0xe5, 0xaf, 0xaa, 0xff, 0x5d, 0x80, 0xf1, 0x3d, 0xb3, 0x67, 0xb6, 0x59, 0x9f, 0x74, 0xa1, + 0xa8, 0x74, 0x28, 0xc9, 0x25, 0x34, 0xe0, 0x60, 0xfb, 0xb3, 0x32, 0x3f, 0xb8, 0xc0, 0xd3, 0xd6, + 0xfa, 0xcf, 0xff, 0xfe, 0xaf, 0xdf, 0xe6, 0x6e, 0x52, 0x1d, 0x7f, 0xf2, 0x94, 0x4c, 0x37, 0x14, + 0xb2, 0xbb, 0x91, 0x06, 0x24, 0xf9, 0x1c, 0x26, 0xfc, 0x26, 0x22, 0x11, 0x6d, 0xd8, 0x58, 0x7b, + 0xb3, 0x42, 0x62, 0xb3, 0x5c, 0xca, 0x4d, 0x94, 0x42, 0xc9, 0x6a, 0x44, 0x8a, 0x4f, 0xb3, 0xf1, + 0xb5, 0x1f, 0x28, 0xdf, 0x90, 0x13, 0x98, 0x54, 0x9b, 0x94, 0x44, 0x8f, 0x70, 0x53, 0xe2, 0xab, + 0xb2, 0x90, 0xb0, 0xc2, 0x65, 0xad, 0xa1, 0xac, 0x25, 0xb2, 0x98, 0x28, 0x0b, 0x99, 0x9e, 0xfa, + 0x36, 0x13, 0xbf, 0x01, 0xa9, 0x36, 0x53, 0x1b, 0x80, 0x11, 0x9b, 0x85, 0xbd, 0x3e, 0x7a, 0x03, + 0x25, 0xac, 0x25, 0xda, 0x0c, 0xc9, 0xee, 0x8a, 0x96, 0x1f, 0x39, 0x86, 0x42, 0xd0, 0x89, 0x24, + 0xf3, 0x3e, 0xde, 0x48, 0x23, 0xb3, 0x32, 0x1b, 0x9f, 0xe6, 0x12, 0x5e, 0x42, 0x09, 0x57, 0xc9, + 0x5a, 0x5c, 0x07, 0x41, 0xa4, 0x1a, 0x4c, 0x1c, 0x88, 0x50, 0x64, 0x2e, 0xc2, 0x6b, 0xe0, 0x40, + 0x14, 0x15, 0x52, 0x0f, 0x04, 0x69, 0x36, 0xbe, 0xf6, 0x3b, 0x4c, 0xdf, 0x10, 0x17, 0x4a, 0xd1, + 0xc6, 0x23, 0xa9, 0x20, 0xbf, 0xc4, 0x5e, 0x66, 0x45, 0x4f, 0x5c, 0xe3, 0x12, 0x6f, 0xa3, 0xc4, + 0x17, 0xe9, 0x52, 0x44, 0x62, 0x94, 0xf2, 0xae, 0xec, 0x76, 0x92, 0xcf, 0x00, 0xc2, 0x66, 0x1e, + 0x09, 0x4e, 0x3a, 0xda, 0x82, 0xa8, 0xcc, 0x0d, 0xcc, 0x73, 0x41, 0x57, 0x50, 0xd0, 0x22, 0xb9, + 0x14, 0x57, 0xcd, 0x67, 0xf7, 0x14, 0x66, 0x06, 0x5a, 0x72, 0x64, 0x19, 0x79, 0xa5, 0xf5, 0x01, + 0x2b, 0x4b, 0x69, 0xcb, 0xca, 0x69, 0x55, 0x56, 0x22, 0x12, 0x07, 0x88, 0xef, 0x6a, 0xb7, 0xc8, + 0x63, 0xa5, 0x1b, 0x1a, 0xb4, 0xd7, 0x96, 0xa3, 0x7a, 0xc4, 0x7a, 0x81, 0x52, 0x76, 0x72, 0xcb, + 0x8b, 0x5e, 0x47, 0xd9, 0xab, 0x64, 0x25, 0x59, 0xdb, 0x40, 0x46, 0x0f, 0x9b, 0xe2, 0x4a, 0x27, + 0x48, 0x1e, 0x63, 0x62, 0xb7, 0xab, 0xa2, 0x27, 0xae, 0x29, 0xf2, 0x62, 0xc7, 0x18, 0xa5, 0xe4, + 0x8a, 0x7e, 0xab, 0x89, 0x07, 0x52, 0xbc, 0x5f, 0x43, 0x56, 0x03, 0xd6, 0x29, 0x9d, 0xa5, 0xca, + 0x4a, 0x06, 0x05, 0x87, 0xf0, 0x26, 0x42, 0x78, 0x95, 0xde, 0x4e, 0x09, 0x8e, 0xa4, 0x9d, 0x1c, + 0xd2, 0xe7, 0xe8, 0x54, 0xfe, 0xcf, 0xfb, 0x81, 0x53, 0x45, 0x1b, 0x40, 0xa1, 0x53, 0xa9, 0x4d, + 0x1a, 0x4a, 0x51, 0xe6, 0x65, 0x3a, 0xe0, 0x54, 0x92, 0x8a, 0xf3, 0xff, 0x8d, 0x06, 0x97, 0x52, + 0x1e, 0x2a, 0xe4, 0xaa, 0x28, 0x4f, 0x33, 0xdf, 0x22, 0x95, 0xb5, 0x6c, 0x22, 0x8e, 0x63, 0x03, + 0x71, 0xbc, 0x44, 0xaf, 0x45, 0x70, 0xa4, 0x6c, 0xe1, 0xa0, 0x7e, 0xaf, 0xc1, 0xa5, 0x9d, 0x4c, + 0x50, 0x3b, 0xc3, 0x80, 0xca, 0x7a, 0x08, 0xd1, 0xb7, 0x10, 0xd4, 0x6b, 0x64, 0x23, 0xdd, 0x27, + 0xc2, 0x2d, 0x1b, 0x5f, 0xfb, 0xc5, 0xcd, 0x37, 0xe4, 0x0f, 0x1a, 0x54, 0xd2, 0x6b, 0x7f, 0x72, + 0x3d, 0x43, 0xb4, 0x7a, 0x13, 0x5c, 0xbb, 0x90, 0x8e, 0xa3, 0xbc, 0x8b, 0x28, 0x5f, 0x27, 0xd5, + 0x21, 0x50, 0xf2, 0x5d, 0x6a, 0x92, 0xfd, 0x4e, 0x83, 0x4a, 0x7a, 0xb9, 0x2b, 0x81, 0x5e, 0x58, + 0xfd, 0x4b, 0xa0, 0x17, 0xd4, 0xcd, 0xb4, 0x8a, 0x40, 0x5f, 0xa6, 0x37, 0xe2, 0x67, 0x9c, 0xb2, + 0x8b, 0x1f, 0xb3, 0xb4, 0x64, 0x36, 0xc0, 0x9d, 0x21, 0x01, 0x5e, 0x50, 0x5a, 0xa7, 0x5b, 0x32, + 0x65, 0x97, 0x7a, 0xe4, 0x7f, 0xd4, 0x60, 0x39, 0xb3, 0x5c, 0x24, 0x2f, 0x65, 0x63, 0x50, 0x0f, + 0xfe, 0xc6, 0x30, 0xa4, 0x1c, 0xf1, 0x7b, 0x88, 0xf8, 0x2d, 0xf2, 0xc6, 0x70, 0x88, 0xe3, 0xc7, + 0xff, 0x29, 0x14, 0x82, 0x96, 0x9b, 0xbc, 0xc7, 0xe3, 0xdd, 0x3e, 0x79, 0x8f, 0xc7, 0x3a, 0x73, + 0xb2, 0x16, 0xa1, 0x0b, 0xd1, 0xa3, 0xf4, 0x89, 0xf8, 0xc9, 0x49, 0xde, 0xd8, 0xd0, 0x51, 0x78, + 0xab, 0x4d, 0x25, 0x85, 0xb7, 0xd2, 0x58, 0x4b, 0xe7, 0x8d, 0x44, 0x9c, 0xf7, 0x53, 0x98, 0x19, + 0xe8, 0xd3, 0xca, 0xdb, 0x26, 0xad, 0x69, 0x2c, 0x6f, 0x9b, 0x94, 0xf6, 0xae, 0xbc, 0xe9, 0xe8, + 0x4a, 0xec, 0x12, 0x8f, 0x11, 0x73, 0xd9, 0xb6, 0xf8, 0xe1, 0x5b, 0xe9, 0xee, 0x91, 0xe0, 0x22, + 0x4b, 0xe8, 0x06, 0x56, 0x16, 0x93, 0x17, 0xb9, 0xd4, 0x6b, 0x28, 0x75, 0x85, 0x5c, 0x1e, 0x88, + 0x5c, 0x95, 0xfb, 0x97, 0xe2, 0x86, 0x0b, 0x1b, 0x7a, 0xca, 0x0d, 0x37, 0xd0, 0x1d, 0x54, 0x6e, + 0xb8, 0x58, 0x07, 0x90, 0x5e, 0x45, 0x69, 0xcb, 0x64, 0x29, 0x51, 0x9a, 0xa0, 0xac, 0x36, 0x00, + 0xc2, 0xb4, 0x41, 0x3e, 0xf8, 0x61, 0x2e, 0xd7, 0xaa, 0x05, 0x53, 0x11, 0x87, 0x24, 0x1f, 0xff, + 0x58, 0x97, 0xe8, 0xf1, 0x18, 0xfe, 0xa3, 0xf1, 0xce, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0xe5, + 0x81, 0xe5, 0x06, 0x01, 0x29, 0x00, 0x00, +>>>>>>> add bestTrialId to statusJob status } diff --git a/pkg/api/api.pb.gw.go b/pkg/api/api.pb.gw.go index 8672bef142c..3d726c3494b 100644 --- a/pkg/api/api.pb.gw.go +++ b/pkg/api/api.pb.gw.go @@ -117,6 +117,33 @@ func request_Manager_GetTrials_0(ctx context.Context, marshaler runtime.Marshale } +func request_Manager_GetTrial_0(ctx context.Context, marshaler runtime.Marshaler, client ManagerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetTrialRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["trial_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "trial_id") + } + + protoReq.TrialId, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "trial_id", err) + } + + msg, err := client.GetTrial(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + func request_Manager_RegisterWorker_0(ctx context.Context, marshaler runtime.Marshaler, client ManagerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq RegisterWorkerRequest var metadata runtime.ServerMetadata @@ -590,6 +617,35 @@ func RegisterManagerHandler(ctx context.Context, mux *runtime.ServeMux, conn *gr }) + mux.Handle("GET", pattern_Manager_GetTrial_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(ctx) + defer cancel() + if cn, ok := w.(http.CloseNotifier); ok { + go func(done <-chan struct{}, closed <-chan bool) { + select { + case <-done: + case <-closed: + cancel() + } + }(ctx.Done(), cn.CloseNotify()) + } + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_Manager_GetTrial_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_Manager_GetTrial_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("POST", pattern_Manager_RegisterWorker_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(ctx) defer cancel() @@ -1126,6 +1182,8 @@ var ( pattern_Manager_GetTrials_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "Manager", "GetTrials", "study_id"}, "")) + pattern_Manager_GetTrial_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "Manager", "GetTrial", "trial_id"}, "")) + pattern_Manager_RegisterWorker_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "Manager", "RegisterWorker"}, "")) pattern_Manager_GetWorkers_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "Manager", "GetWorkers"}, "")) @@ -1174,6 +1232,8 @@ var ( forward_Manager_GetTrials_0 = runtime.ForwardResponseMessage + forward_Manager_GetTrial_0 = runtime.ForwardResponseMessage + forward_Manager_RegisterWorker_0 = runtime.ForwardResponseMessage forward_Manager_GetWorkers_0 = runtime.ForwardResponseMessage diff --git a/pkg/api/api.proto b/pkg/api/api.proto index e3f990d6b97..f4e38393ab4 100644 --- a/pkg/api/api.proto +++ b/pkg/api/api.proto @@ -58,6 +58,14 @@ service Manager { get: "/api/Manager/GetTrials/{study_id}" }; }; + /** + * Get a Trial Configuration from DB by ID of Trial. + */ + rpc GetTrial(GetTrialRequest) returns (GetTrialReply){ + option (google.api.http) = { + get: "/api/Manager/GetTrial/{trial_id}" + }; + }; /** * Create a Worker from Worker Config. * Generate a unique ID and store the Worker to DB. @@ -460,6 +468,20 @@ message GetTrialsReply { repeated Trial trials = 1; } +/** + * Get a trial configuration from DB by trial ID + */ +message GetTrialRequest { + string trial_id = 1; +} + +/** + * Return a trial configuration by specified trial ID + */ +message GetTrialReply { + Trial trial = 1; +} + /** * Create a Worker from Worker Config. * Generate an unique ID and store the Worker to DB. diff --git a/pkg/api/api.swagger.json b/pkg/api/api.swagger.json index d949005f21c..bb121bccb5a 100644 --- a/pkg/api/api.swagger.json +++ b/pkg/api/api.swagger.json @@ -303,6 +303,31 @@ ] } }, + "/api/Manager/GetTrial/{trial_id}": { + "get": { + "summary": "Get a Trial Configuration from DB by ID of Trial.", + "operationId": "GetTrial", + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/apiGetTrialReply" + } + } + }, + "parameters": [ + { + "name": "trial_id", + "in": "path", + "required": true, + "type": "string" + } + ], + "tags": [ + "Manager" + ] + } + }, "/api/Manager/GetTrials/GetShouldStopWorkers": { "post": { "operationId": "GetShouldStopWorkers", @@ -889,6 +914,14 @@ } } }, + "apiGetTrialReply": { + "type": "object", + "properties": { + "trial": { + "$ref": "#/definitions/apiTrial" + } + } + }, "apiGetTrialsReply": { "type": "object", "properties": { diff --git a/pkg/api/operators/apis/studyjob/v1alpha1/studyjob_types.go b/pkg/api/operators/apis/studyjob/v1alpha1/studyjob_types.go index 84d9731170f..1d81ccc5fb4 100644 --- a/pkg/api/operators/apis/studyjob/v1alpha1/studyjob_types.go +++ b/pkg/api/operators/apis/studyjob/v1alpha1/studyjob_types.go @@ -42,17 +42,17 @@ type StudyJobSpec struct { // StudyJobStatus defines the observed state of StudyJob type StudyJobStatus struct { - // Represents time when the TFJob was acknowledged by the TFJob controller. + // Represents time when the StudyJob was acknowledged by the StudyJob controller. // It is not guaranteed to be set in happens-before order across separate operations. // It is represented in RFC3339 form and is in UTC. StartTime *metav1.Time `json:"startTime,omitempty"` - // Represents time when the TFJob was completed. It is not guaranteed to + // Represents time when the StudyJob was completed. It is not guaranteed to // be set in happens-before order across separate operations. // It is represented in RFC3339 form and is in UTC. CompletionTime *metav1.Time `json:"completionTime,omitempty"` - // Represents last time when the TFJob was reconciled. It is not guaranteed to + // Represents last time when the StudyJob was reconciled. It is not guaranteed to // be set in happens-before order across separate operations. // It is represented in RFC3339 form and is in UTC. LastReconcileTime *metav1.Time `json:"lastReconcileTime,omitempty"` @@ -63,6 +63,7 @@ type StudyJobStatus struct { EarlyStoppingParameterID string `json:"earlyStoppingParameterId"` Trials []TrialSet `json:"trials,omitempty"` BestObjectiveValue *float64 `json:"bestObjectiveValue,omitempty"` + BestTrialID string `json:"bestTrialId,omitempty"` SuggestionCount int `json:"suggestionCount,omitempty"` } diff --git a/pkg/api/python/api_pb2.py b/pkg/api/python/api_pb2.py index eca61355170..97b38c3ceba 100644 --- a/pkg/api/python/api_pb2.py +++ b/pkg/api/python/api_pb2.py @@ -21,7 +21,11 @@ name='api.proto', package='api', syntax='proto3', +<<<<<<< HEAD serialized_pb=_b('\n\tapi.proto\x12\x03\x61pi\x1a\x1cgoogle/api/annotations.proto\"7\n\rFeasibleSpace\x12\x0b\n\x03max\x18\x01 \x01(\t\x12\x0b\n\x03min\x18\x02 \x01(\t\x12\x0c\n\x04list\x18\x03 \x03(\t\"q\n\x0fParameterConfig\x12\x0c\n\x04name\x18\x01 \x01(\t\x12*\n\x0eparameter_type\x18\x02 \x01(\x0e\x32\x12.api.ParameterType\x12$\n\x08\x66\x65\x61sible\x18\x03 \x01(\x0b\x32\x12.api.FeasibleSpace\"T\n\tParameter\x12\x0c\n\x04name\x18\x01 \x01(\t\x12*\n\x0eparameter_type\x18\x02 \x01(\x0e\x32\x12.api.ParameterType\x12\r\n\x05value\x18\x03 \x01(\t\"l\n\rMetricsLogSet\x12\x11\n\tworker_id\x18\x01 \x01(\t\x12%\n\x0cmetrics_logs\x18\x02 \x03(\x0b\x32\x0f.api.MetricsLog\x12!\n\rworker_status\x18\x03 \x01(\x0e\x32\n.api.State\"&\n\x07Metrics\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"/\n\x10MetricsValueTime\x12\x0c\n\x04time\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"A\n\nMetricsLog\x12\x0c\n\x04name\x18\x01 \x01(\t\x12%\n\x06values\x18\x02 \x03(\x0b\x32\x15.api.MetricsValueTime\"2\n\x13SuggestionParameter\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"5\n\x16\x45\x61rlyStoppingParameter\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"\"\n\x03Tag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"M\n\rStudyOverview\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05owner\x18\x02 \x01(\t\x12\n\n\x02id\x18\x03 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\"\x83\x01\n\x05Trial\x12\x10\n\x08trial_id\x18\x01 \x01(\t\x12\x10\n\x08study_id\x18\x02 \x01(\t\x12%\n\rparameter_set\x18\x03 \x03(\x0b\x32\x0e.api.Parameter\x12\x17\n\x0fobjective_value\x18\x04 \x01(\t\x12\x16\n\x04tags\x18\x05 \x03(\x0b\x32\x08.api.Tag\"\x97\x01\n\x06Worker\x12\x11\n\tworker_id\x18\x01 \x01(\t\x12\x10\n\x08study_id\x18\x02 \x01(\t\x12\x10\n\x08trial_id\x18\x03 \x01(\t\x12\x0c\n\x04Type\x18\x04 \x01(\t\x12\x1a\n\x06status\x18\x05 \x01(\x0e\x32\n.api.State\x12\x14\n\x0cTemplatePath\x18\x06 \x01(\t\x12\x16\n\x04tags\x18\x07 \x03(\x0b\x32\x08.api.Tag\"\xe2\x02\n\x0bStudyConfig\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05owner\x18\x02 \x01(\t\x12\x30\n\x11optimization_type\x18\x03 \x01(\x0e\x32\x15.api.OptimizationType\x12\x19\n\x11optimization_goal\x18\x04 \x01(\x01\x12<\n\x11parameter_configs\x18\x05 \x01(\x0b\x32!.api.StudyConfig.ParameterConfigs\x12\x1a\n\x12\x61\x63\x63\x65ss_permissions\x18\x06 \x03(\t\x12\x16\n\x04tags\x18\x07 \x03(\x0b\x32\x08.api.Tag\x12\x1c\n\x14objective_value_name\x18\x08 \x01(\t\x12\x0f\n\x07metrics\x18\t \x03(\t\x12\r\n\x05jobId\x18\n \x01(\t\x1a\x39\n\x10ParameterConfigs\x12%\n\x07\x63onfigs\x18\x01 \x03(\x0b\x32\x14.api.ParameterConfig\"<\n\x12\x43reateStudyRequest\x12&\n\x0cstudy_config\x18\x01 \x01(\x0b\x32\x10.api.StudyConfig\"$\n\x10\x43reateStudyReply\x12\x10\n\x08study_id\x18\x01 \x01(\t\"#\n\x0fGetStudyRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\"7\n\rGetStudyReply\x12&\n\x0cstudy_config\x18\x01 \x01(\x0b\x32\x10.api.StudyConfig\"\x15\n\x13GetStudyListRequest\"@\n\x11GetStudyListReply\x12+\n\x0fstudy_overviews\x18\x01 \x03(\x0b\x32\x12.api.StudyOverview\"/\n\x12\x43reateTrialRequest\x12\x19\n\x05trial\x18\x01 \x01(\x0b\x32\n.api.Trial\"$\n\x10\x43reateTrialReply\x12\x10\n\x08trial_id\x18\x01 \x01(\t\"$\n\x10GetTrialsRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\",\n\x0eGetTrialsReply\x12\x1a\n\x06trials\x18\x01 \x03(\x0b\x32\n.api.Trial\"4\n\x15RegisterWorkerRequest\x12\x1b\n\x06worker\x18\x01 \x01(\x0b\x32\x0b.api.Worker\"(\n\x13RegisterWorkerReply\x12\x11\n\tworker_id\x18\x01 \x01(\t\"O\n\x12StopWorkersRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\x12\x12\n\nworker_ids\x18\x02 \x03(\t\x12\x13\n\x0bis_complete\x18\x03 \x01(\x08\"\x12\n\x10StopWorkersReply\"J\n\x11GetWorkersRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\x12\x10\n\x08trial_id\x18\x02 \x01(\t\x12\x11\n\tworker_id\x18\x03 \x01(\t\"/\n\x0fGetWorkersReply\x12\x1c\n\x07workers\x18\x01 \x03(\x0b\x32\x0b.api.Worker\"I\n\x18UpdateWorkerStateRequest\x12\x11\n\tworker_id\x18\x01 \x01(\t\x12\x1a\n\x06status\x18\x02 \x01(\x0e\x32\n.api.State\"\x18\n\x16UpdateWorkerStateReply\"j\n\x18GetWorkerFullInfoRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\x12\x10\n\x08trial_id\x18\x02 \x01(\t\x12\x11\n\tworker_id\x18\x03 \x01(\t\x12\x17\n\x0fonly_latest_log\x18\x04 \x01(\x08\"{\n\x0eWorkerFullInfo\x12\x1b\n\x06Worker\x18\x01 \x01(\x0b\x32\x0b.api.Worker\x12%\n\rparameter_set\x18\x02 \x03(\x0b\x32\x0e.api.Parameter\x12%\n\x0cmetrics_logs\x18\x03 \x03(\x0b\x32\x0f.api.MetricsLog\"H\n\x16GetWorkerFullInfoReply\x12.\n\x11worker_full_infos\x18\x01 \x03(\x0b\x32\x13.api.WorkerFullInfo\"\x89\x01\n\x15GetSuggestionsRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\x12\x1c\n\x14suggestion_algorithm\x18\x02 \x01(\t\x12\x16\n\x0erequest_number\x18\x03 \x01(\x05\x12\x16\n\x0elog_worker_ids\x18\x04 \x03(\t\x12\x10\n\x08param_id\x18\x05 \x01(\t\"1\n\x13GetSuggestionsReply\x12\x1a\n\x06trials\x18\x01 \x03(\x0b\x32\n.api.Trial\"c\n\x1bGetShouldStopWorkersRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\x12 \n\x18\x65\x61rly_stopping_algorithm\x18\x02 \x01(\t\x12\x10\n\x08param_id\x18\x05 \x01(\t\";\n\x19GetShouldStopWorkersReply\x12\x1e\n\x16should_stop_worker_ids\x18\x01 \x03(\t\"P\n\x11GetMetricsRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\x12\x12\n\nworker_ids\x18\x02 \x03(\t\x12\x15\n\rmetrics_names\x18\x03 \x03(\t\"?\n\x0fGetMetricsReply\x12,\n\x10metrics_log_sets\x18\x01 \x03(\x0b\x32\x12.api.MetricsLogSet\"Z\n\x18ReportMetricsLogsRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\x12,\n\x10metrics_log_sets\x18\x03 \x03(\x0b\x32\x12.api.MetricsLogSet\"\x18\n\x16ReportMetricsLogsReply\"\x89\x01\n\tModelInfo\x12\x12\n\nstudy_name\x18\x01 \x01(\t\x12\x11\n\tworker_id\x18\x02 \x01(\t\x12\"\n\nparameters\x18\x03 \x03(\x0b\x32\x0e.api.Parameter\x12\x1d\n\x07metrics\x18\x04 \x03(\x0b\x32\x0c.api.Metrics\x12\x12\n\nmodel_path\x18\x05 \x01(\t\")\n\x0b\x44\x61taSetInfo\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\"J\n\x10SaveStudyRequest\x12\x12\n\nstudy_name\x18\x01 \x01(\t\x12\r\n\x05owner\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\"\x10\n\x0eSaveStudyReply\"k\n\x10SaveModelRequest\x12\x1d\n\x05model\x18\x01 \x01(\x0b\x32\x0e.api.ModelInfo\x12\"\n\x08\x64\x61ta_set\x18\x02 \x01(\x0b\x32\x10.api.DataSetInfo\x12\x14\n\x0ctensor_board\x18\x03 \x01(\x08\"\x10\n\x0eSaveModelReply\"\x18\n\x16GetSavedStudiesRequest\";\n\x14GetSavedStudiesReply\x12#\n\x07studies\x18\x01 \x03(\x0b\x32\x12.api.StudyOverview\"+\n\x15GetSavedModelsRequest\x12\x12\n\nstudy_name\x18\x01 \x01(\t\"5\n\x13GetSavedModelsReply\x12\x1e\n\x06models\x18\x01 \x03(\x0b\x32\x0e.api.ModelInfo\"=\n\x14GetSavedModelRequest\x12\x12\n\nstudy_name\x18\x01 \x01(\t\x12\x11\n\tworker_id\x18\x02 \x01(\t\"3\n\x12GetSavedModelReply\x12\x1d\n\x05model\x18\x01 \x01(\x0b\x32\x0e.api.ModelInfo\"\x9b\x01\n\x1eSetSuggestionParametersRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\x12\x1c\n\x14suggestion_algorithm\x18\x02 \x01(\t\x12\x10\n\x08param_id\x18\x03 \x01(\t\x12\x37\n\x15suggestion_parameters\x18\x04 \x03(\x0b\x32\x18.api.SuggestionParameter\"0\n\x1cSetSuggestionParametersReply\x12\x10\n\x08param_id\x18\x01 \x01(\t\"2\n\x1eGetSuggestionParametersRequest\x12\x10\n\x08param_id\x18\x01 \x01(\t\"W\n\x1cGetSuggestionParametersReply\x12\x37\n\x15suggestion_parameters\x18\x01 \x03(\x0b\x32\x18.api.SuggestionParameter\"5\n!GetSuggestionParameterListRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\"\x81\x01\n\x16SuggestionParameterSet\x12\x10\n\x08param_id\x18\x01 \x01(\t\x12\x1c\n\x14suggestion_algorithm\x18\x02 \x01(\t\x12\x37\n\x15suggestion_parameters\x18\x03 \x03(\x0b\x32\x18.api.SuggestionParameter\"a\n\x1fGetSuggestionParameterListReply\x12>\n\x19suggestion_parameter_sets\x18\x01 \x03(\x0b\x32\x1b.api.SuggestionParameterSet\")\n\x15StopSuggestionRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\"\x15\n\x13StopSuggestionReply\"\xa9\x01\n!SetEarlyStoppingParametersRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\x12 \n\x18\x65\x61rly_stopping_algorithm\x18\x02 \x01(\t\x12\x10\n\x08param_id\x18\x03 \x01(\t\x12>\n\x19\x65\x61rly_stopping_parameters\x18\x04 \x03(\x0b\x32\x1b.api.EarlyStoppingParameter\"3\n\x1fSetEarlyStoppingParametersReply\x12\x10\n\x08param_id\x18\x01 \x01(\t\"5\n!GetEarlyStoppingParametersRequest\x12\x10\n\x08param_id\x18\x01 \x01(\t\"a\n\x1fGetEarlyStoppingParametersReply\x12>\n\x19\x65\x61rly_stopping_parameters\x18\x01 \x03(\x0b\x32\x1b.api.EarlyStoppingParameter\"8\n$GetEarlyStoppingParameterListRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\"\x8f\x01\n\x19\x45\x61rlyStoppingParameterSet\x12\x10\n\x08param_id\x18\x01 \x01(\t\x12 \n\x18\x65\x61rly_stopping_algorithm\x18\x02 \x01(\t\x12>\n\x19\x65\x61rly_stopping_parameters\x18\x03 \x03(\x0b\x32\x1b.api.EarlyStoppingParameter\"k\n\"GetEarlyStoppingParameterListReply\x12\x45\n\x1d\x65\x61rly_stopping_parameter_sets\x18\x01 \x03(\x0b\x32\x1e.api.EarlyStoppingParameterSet*U\n\rParameterType\x12\x10\n\x0cUNKNOWN_TYPE\x10\x00\x12\n\n\x06\x44OUBLE\x10\x01\x12\x07\n\x03INT\x10\x02\x12\x0c\n\x08\x44ISCRETE\x10\x03\x12\x0f\n\x0b\x43\x41TEGORICAL\x10\x04*H\n\x10OptimizationType\x12\x18\n\x14UNKNOWN_OPTIMIZATION\x10\x00\x12\x0c\n\x08MINIMIZE\x10\x01\x12\x0c\n\x08MAXIMIZE\x10\x02*G\n\x05State\x12\x0b\n\x07PENDING\x10\x00\x12\x0b\n\x07RUNNING\x10\x01\x12\r\n\tCOMPLETED\x10\x02\x12\n\n\x06KILLED\x10\x03\x12\t\n\x05\x45RROR\x10x2\x9f\x16\n\x07Manager\x12m\n\x0b\x43reateStudy\x12\x17.api.CreateStudyRequest\x1a\x15.api.CreateStudyReply\".\x82\xd3\xe4\x93\x02(\"\x18/api/Manager/CreateStudy:\x0cstudy_config\x12^\n\x08GetStudy\x12\x14.api.GetStudyRequest\x1a\x12.api.GetStudyReply\"(\x82\xd3\xe4\x93\x02\"\x12 /api/Manager/GetStudy/{study_id}\x12\x63\n\x0cGetStudyList\x12\x18.api.GetStudyListRequest\x1a\x16.api.GetStudyListReply\"!\x82\xd3\xe4\x93\x02\x1b\x12\x19/api/Manager/GetStudyList\x12\x66\n\x0b\x43reateTrial\x12\x17.api.CreateTrialRequest\x1a\x15.api.CreateTrialReply\"\'\x82\xd3\xe4\x93\x02!\"\x18/api/Manager/CreateTrial:\x05trial\x12\x62\n\tGetTrials\x12\x15.api.GetTrialsRequest\x1a\x13.api.GetTrialsReply\")\x82\xd3\xe4\x93\x02#\x12!/api/Manager/GetTrials/{study_id}\x12s\n\x0eRegisterWorker\x12\x1a.api.RegisterWorkerRequest\x1a\x18.api.RegisterWorkerReply\"+\x82\xd3\xe4\x93\x02%\"\x1b/api/Manager/RegisterWorker:\x06worker\x12[\n\nGetWorkers\x12\x16.api.GetWorkersRequest\x1a\x14.api.GetWorkersReply\"\x1f\x82\xd3\xe4\x93\x02\x19\x12\x17/api/Manager/GetWorkers\x12z\n\x11UpdateWorkerState\x12\x1d.api.UpdateWorkerStateRequest\x1a\x1b.api.UpdateWorkerStateReply\")\x82\xd3\xe4\x93\x02#\x1a\x1e/api/Manager/UpdateWorkerState:\x01*\x12w\n\x11GetWorkerFullInfo\x12\x1d.api.GetWorkerFullInfoRequest\x1a\x1b.api.GetWorkerFullInfoReply\"&\x82\xd3\xe4\x93\x02 \x12\x1e/api/Manager/GetWorkerFullInfo\x12n\n\x0eGetSuggestions\x12\x1a.api.GetSuggestionsRequest\x1a\x18.api.GetSuggestionsReply\"&\x82\xd3\xe4\x93\x02 \"\x1b/api/Manager/GetSuggestions:\x01*\x12\x90\x01\n\x14GetShouldStopWorkers\x12 .api.GetShouldStopWorkersRequest\x1a\x1e.api.GetShouldStopWorkersReply\"6\x82\xd3\xe4\x93\x02\x30\"+/api/Manager/GetTrials/GetShouldStopWorkers:\x01*\x12^\n\nGetMetrics\x12\x16.api.GetMetricsRequest\x1a\x14.api.GetMetricsReply\"\"\x82\xd3\xe4\x93\x02\x1c\"\x17/api/Manager/GetMetrics:\x01*\x12\x92\x01\n\x17SetSuggestionParameters\x12#.api.SetSuggestionParametersRequest\x1a!.api.SetSuggestionParametersReply\"/\x82\xd3\xe4\x93\x02)\"$/api/Manager/SetSuggestionParameters:\x01*\x12\x9a\x01\n\x17GetSuggestionParameters\x12#.api.GetSuggestionParametersRequest\x1a!.api.GetSuggestionParametersReply\"7\x82\xd3\xe4\x93\x02\x31\x12//api/Manager/GetSuggestionParameters/{param_id}\x12\xa6\x01\n\x1aGetSuggestionParameterList\x12&.api.GetSuggestionParameterListRequest\x1a$.api.GetSuggestionParameterListReply\":\x82\xd3\xe4\x93\x02\x34\x12\x32/api/Manager/GetSuggestionParameterList/{study_id}\x12\x9e\x01\n\x1aSetEarlyStoppingParameters\x12&.api.SetEarlyStoppingParametersRequest\x1a$.api.SetEarlyStoppingParametersReply\"2\x82\xd3\xe4\x93\x02,\"\'/api/Manager/SetEarlyStoppingParameters:\x01*\x12\xa6\x01\n\x1aGetEarlyStoppingParameters\x12&.api.GetEarlyStoppingParametersRequest\x1a$.api.GetEarlyStoppingParametersReply\":\x82\xd3\xe4\x93\x02\x34\x12\x32/api/Manager/GetEarlyStoppingParameters/{param_id}\x12\xb2\x01\n\x1dGetEarlyStoppingParameterList\x12).api.GetEarlyStoppingParameterListRequest\x1a\'.api.GetEarlyStoppingParameterListReply\"=\x82\xd3\xe4\x93\x02\x37\x12\x35/api/Manager/GetEarlyStoppingParameterList/{study_id}\x12Z\n\tSaveStudy\x12\x15.api.SaveStudyRequest\x1a\x13.api.SaveStudyReply\"!\x82\xd3\xe4\x93\x02\x1b\"\x16/api/Manager/SaveStudy:\x01*\x12Z\n\tSaveModel\x12\x15.api.SaveModelRequest\x1a\x13.api.SaveModelReply\"!\x82\xd3\xe4\x93\x02\x1b\"\x16/api/Manager/SaveModel:\x01*\x12z\n\x11ReportMetricsLogs\x12\x1d.api.ReportMetricsLogsRequest\x1a\x1b.api.ReportMetricsLogsReply\")\x82\xd3\xe4\x93\x02#\"\x1e/api/Manager/ReportMetricsLogs:\x01*\x12o\n\x0fGetSavedStudies\x12\x1b.api.GetSavedStudiesRequest\x1a\x19.api.GetSavedStudiesReply\"$\x82\xd3\xe4\x93\x02\x1e\x12\x1c/api/Manager/GetSavedStudies\x12k\n\x0eGetSavedModels\x12\x1a.api.GetSavedModelsRequest\x1a\x18.api.GetSavedModelsReply\"#\x82\xd3\xe4\x93\x02\x1d\x12\x1b/api/Manager/GetSavedModels2T\n\nSuggestion\x12\x46\n\x0eGetSuggestions\x12\x1a.api.GetSuggestionsRequest\x1a\x18.api.GetSuggestionsReply2i\n\rEarlyStopping\x12X\n\x14GetShouldStopWorkers\x12 .api.GetShouldStopWorkersRequest\x1a\x1e.api.GetShouldStopWorkersReplyb\x06proto3') +======= + serialized_pb=_b('\n\tapi.proto\x12\x03\x61pi\x1a\x1cgoogle/api/annotations.proto\"7\n\rFeasibleSpace\x12\x0b\n\x03max\x18\x01 \x01(\t\x12\x0b\n\x03min\x18\x02 \x01(\t\x12\x0c\n\x04list\x18\x03 \x03(\t\"q\n\x0fParameterConfig\x12\x0c\n\x04name\x18\x01 \x01(\t\x12*\n\x0eparameter_type\x18\x02 \x01(\x0e\x32\x12.api.ParameterType\x12$\n\x08\x66\x65\x61sible\x18\x03 \x01(\x0b\x32\x12.api.FeasibleSpace\"T\n\tParameter\x12\x0c\n\x04name\x18\x01 \x01(\t\x12*\n\x0eparameter_type\x18\x02 \x01(\x0e\x32\x12.api.ParameterType\x12\r\n\x05value\x18\x03 \x01(\t\"l\n\rMetricsLogSet\x12\x11\n\tworker_id\x18\x01 \x01(\t\x12%\n\x0cmetrics_logs\x18\x02 \x03(\x0b\x32\x0f.api.MetricsLog\x12!\n\rworker_status\x18\x03 \x01(\x0e\x32\n.api.State\"&\n\x07Metrics\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"/\n\x10MetricsValueTime\x12\x0c\n\x04time\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"A\n\nMetricsLog\x12\x0c\n\x04name\x18\x01 \x01(\t\x12%\n\x06values\x18\x02 \x03(\x0b\x32\x15.api.MetricsValueTime\"2\n\x13SuggestionParameter\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"5\n\x16\x45\x61rlyStoppingParameter\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"\"\n\x03Tag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"M\n\rStudyOverview\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05owner\x18\x02 \x01(\t\x12\n\n\x02id\x18\x03 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\"\x83\x01\n\x05Trial\x12\x10\n\x08trial_id\x18\x01 \x01(\t\x12\x10\n\x08study_id\x18\x02 \x01(\t\x12%\n\rparameter_set\x18\x03 \x03(\x0b\x32\x0e.api.Parameter\x12\x17\n\x0fobjective_value\x18\x04 \x01(\t\x12\x16\n\x04tags\x18\x05 \x03(\x0b\x32\x08.api.Tag\"@\n\nVolumeConf\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x10\n\x08pvc_name\x18\x02 \x01(\t\x12\x12\n\nmount_path\x18\x03 \x01(\t\"\x97\x01\n\x06Worker\x12\x11\n\tworker_id\x18\x01 \x01(\t\x12\x10\n\x08study_id\x18\x02 \x01(\t\x12\x10\n\x08trial_id\x18\x03 \x01(\t\x12\x0c\n\x04Type\x18\x04 \x01(\t\x12\x1a\n\x06status\x18\x05 \x01(\x0e\x32\n.api.State\x12\x14\n\x0cTemplatePath\x18\x06 \x01(\t\x12\x16\n\x04tags\x18\x07 \x03(\x0b\x32\x08.api.Tag\"\xe2\x02\n\x0bStudyConfig\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05owner\x18\x02 \x01(\t\x12\x30\n\x11optimization_type\x18\x03 \x01(\x0e\x32\x15.api.OptimizationType\x12\x19\n\x11optimization_goal\x18\x04 \x01(\x01\x12<\n\x11parameter_configs\x18\x05 \x01(\x0b\x32!.api.StudyConfig.ParameterConfigs\x12\x1a\n\x12\x61\x63\x63\x65ss_permissions\x18\x06 \x03(\t\x12\x16\n\x04tags\x18\x07 \x03(\x0b\x32\x08.api.Tag\x12\x1c\n\x14objective_value_name\x18\x08 \x01(\t\x12\x0f\n\x07metrics\x18\t \x03(\t\x12\r\n\x05jobId\x18\n \x01(\t\x1a\x39\n\x10ParameterConfigs\x12%\n\x07\x63onfigs\x18\x01 \x03(\x0b\x32\x14.api.ParameterConfig\"<\n\x12\x43reateStudyRequest\x12&\n\x0cstudy_config\x18\x01 \x01(\x0b\x32\x10.api.StudyConfig\"$\n\x10\x43reateStudyReply\x12\x10\n\x08study_id\x18\x01 \x01(\t\"\x10\n\x0eStopStudyReply\"#\n\x0fGetStudyRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\"7\n\rGetStudyReply\x12&\n\x0cstudy_config\x18\x01 \x01(\x0b\x32\x10.api.StudyConfig\"\x15\n\x13GetStudyListRequest\"@\n\x11GetStudyListReply\x12+\n\x0fstudy_overviews\x18\x01 \x03(\x0b\x32\x12.api.StudyOverview\"/\n\x12\x43reateTrialRequest\x12\x19\n\x05trial\x18\x01 \x01(\x0b\x32\n.api.Trial\"$\n\x10\x43reateTrialReply\x12\x10\n\x08trial_id\x18\x01 \x01(\t\"$\n\x10GetTrialsRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\",\n\x0eGetTrialsReply\x12\x1a\n\x06trials\x18\x01 \x03(\x0b\x32\n.api.Trial\"#\n\x0fGetTrialRequest\x12\x10\n\x08trial_id\x18\x01 \x01(\t\"*\n\rGetTrialReply\x12\x19\n\x05trial\x18\x01 \x01(\x0b\x32\n.api.Trial\"4\n\x15RegisterWorkerRequest\x12\x1b\n\x06worker\x18\x01 \x01(\x0b\x32\x0b.api.Worker\"(\n\x13RegisterWorkerReply\x12\x11\n\tworker_id\x18\x01 \x01(\t\"O\n\x12StopWorkersRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\x12\x12\n\nworker_ids\x18\x02 \x03(\t\x12\x13\n\x0bis_complete\x18\x03 \x01(\x08\"\x12\n\x10StopWorkersReply\"J\n\x11GetWorkersRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\x12\x10\n\x08trial_id\x18\x02 \x01(\t\x12\x11\n\tworker_id\x18\x03 \x01(\t\"/\n\x0fGetWorkersReply\x12\x1c\n\x07workers\x18\x01 \x03(\x0b\x32\x0b.api.Worker\"I\n\x18UpdateWorkerStateRequest\x12\x11\n\tworker_id\x18\x01 \x01(\t\x12\x1a\n\x06status\x18\x02 \x01(\x0e\x32\n.api.State\"\x18\n\x16UpdateWorkerStateReply\"j\n\x18GetWorkerFullInfoRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\x12\x10\n\x08trial_id\x18\x02 \x01(\t\x12\x11\n\tworker_id\x18\x03 \x01(\t\x12\x17\n\x0fonly_latest_log\x18\x04 \x01(\x08\"{\n\x0eWorkerFullInfo\x12\x1b\n\x06Worker\x18\x01 \x01(\x0b\x32\x0b.api.Worker\x12%\n\rparameter_set\x18\x02 \x03(\x0b\x32\x0e.api.Parameter\x12%\n\x0cmetrics_logs\x18\x03 \x03(\x0b\x32\x0f.api.MetricsLog\"H\n\x16GetWorkerFullInfoReply\x12.\n\x11worker_full_infos\x18\x01 \x03(\x0b\x32\x13.api.WorkerFullInfo\"\x89\x01\n\x15GetSuggestionsRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\x12\x1c\n\x14suggestion_algorithm\x18\x02 \x01(\t\x12\x16\n\x0erequest_number\x18\x03 \x01(\x05\x12\x16\n\x0elog_worker_ids\x18\x04 \x03(\t\x12\x10\n\x08param_id\x18\x05 \x01(\t\"1\n\x13GetSuggestionsReply\x12\x1a\n\x06trials\x18\x01 \x03(\x0b\x32\n.api.Trial\"c\n\x1bGetShouldStopWorkersRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\x12 \n\x18\x65\x61rly_stopping_algorithm\x18\x02 \x01(\t\x12\x10\n\x08param_id\x18\x05 \x01(\t\";\n\x19GetShouldStopWorkersReply\x12\x1e\n\x16should_stop_worker_ids\x18\x01 \x03(\t\"P\n\x11GetMetricsRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\x12\x12\n\nworker_ids\x18\x02 \x03(\t\x12\x15\n\rmetrics_names\x18\x03 \x03(\t\"?\n\x0fGetMetricsReply\x12,\n\x10metrics_log_sets\x18\x01 \x03(\x0b\x32\x12.api.MetricsLogSet\"Z\n\x18ReportMetricsLogsRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\x12,\n\x10metrics_log_sets\x18\x03 \x03(\x0b\x32\x12.api.MetricsLogSet\"\x18\n\x16ReportMetricsLogsReply\"\x89\x01\n\tModelInfo\x12\x12\n\nstudy_name\x18\x01 \x01(\t\x12\x11\n\tworker_id\x18\x02 \x01(\t\x12\"\n\nparameters\x18\x03 \x03(\x0b\x32\x0e.api.Parameter\x12\x1d\n\x07metrics\x18\x04 \x03(\x0b\x32\x0c.api.Metrics\x12\x12\n\nmodel_path\x18\x05 \x01(\t\")\n\x0b\x44\x61taSetInfo\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\"J\n\x10SaveStudyRequest\x12\x12\n\nstudy_name\x18\x01 \x01(\t\x12\r\n\x05owner\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\"\x10\n\x0eSaveStudyReply\"k\n\x10SaveModelRequest\x12\x1d\n\x05model\x18\x01 \x01(\x0b\x32\x0e.api.ModelInfo\x12\"\n\x08\x64\x61ta_set\x18\x02 \x01(\x0b\x32\x10.api.DataSetInfo\x12\x14\n\x0ctensor_board\x18\x03 \x01(\x08\"\x10\n\x0eSaveModelReply\"\x18\n\x16GetSavedStudiesRequest\";\n\x14GetSavedStudiesReply\x12#\n\x07studies\x18\x01 \x03(\x0b\x32\x12.api.StudyOverview\"+\n\x15GetSavedModelsRequest\x12\x12\n\nstudy_name\x18\x01 \x01(\t\"5\n\x13GetSavedModelsReply\x12\x1e\n\x06models\x18\x01 \x03(\x0b\x32\x0e.api.ModelInfo\"=\n\x14GetSavedModelRequest\x12\x12\n\nstudy_name\x18\x01 \x01(\t\x12\x11\n\tworker_id\x18\x02 \x01(\t\"3\n\x12GetSavedModelReply\x12\x1d\n\x05model\x18\x01 \x01(\x0b\x32\x0e.api.ModelInfo\"\x9b\x01\n\x1eSetSuggestionParametersRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\x12\x1c\n\x14suggestion_algorithm\x18\x02 \x01(\t\x12\x10\n\x08param_id\x18\x03 \x01(\t\x12\x37\n\x15suggestion_parameters\x18\x04 \x03(\x0b\x32\x18.api.SuggestionParameter\"0\n\x1cSetSuggestionParametersReply\x12\x10\n\x08param_id\x18\x01 \x01(\t\"2\n\x1eGetSuggestionParametersRequest\x12\x10\n\x08param_id\x18\x01 \x01(\t\"W\n\x1cGetSuggestionParametersReply\x12\x37\n\x15suggestion_parameters\x18\x01 \x03(\x0b\x32\x18.api.SuggestionParameter\"5\n!GetSuggestionParameterListRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\"\x81\x01\n\x16SuggestionParameterSet\x12\x10\n\x08param_id\x18\x01 \x01(\t\x12\x1c\n\x14suggestion_algorithm\x18\x02 \x01(\t\x12\x37\n\x15suggestion_parameters\x18\x03 \x03(\x0b\x32\x18.api.SuggestionParameter\"a\n\x1fGetSuggestionParameterListReply\x12>\n\x19suggestion_parameter_sets\x18\x01 \x03(\x0b\x32\x1b.api.SuggestionParameterSet\")\n\x15StopSuggestionRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\"\x15\n\x13StopSuggestionReply\"\xa9\x01\n!SetEarlyStoppingParametersRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\x12 \n\x18\x65\x61rly_stopping_algorithm\x18\x02 \x01(\t\x12\x10\n\x08param_id\x18\x03 \x01(\t\x12>\n\x19\x65\x61rly_stopping_parameters\x18\x04 \x03(\x0b\x32\x1b.api.EarlyStoppingParameter\"3\n\x1fSetEarlyStoppingParametersReply\x12\x10\n\x08param_id\x18\x01 \x01(\t\"5\n!GetEarlyStoppingParametersRequest\x12\x10\n\x08param_id\x18\x01 \x01(\t\"a\n\x1fGetEarlyStoppingParametersReply\x12>\n\x19\x65\x61rly_stopping_parameters\x18\x01 \x03(\x0b\x32\x1b.api.EarlyStoppingParameter\"8\n$GetEarlyStoppingParameterListRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\"\x8f\x01\n\x19\x45\x61rlyStoppingParameterSet\x12\x10\n\x08param_id\x18\x01 \x01(\t\x12 \n\x18\x65\x61rly_stopping_algorithm\x18\x02 \x01(\t\x12>\n\x19\x65\x61rly_stopping_parameters\x18\x03 \x03(\x0b\x32\x1b.api.EarlyStoppingParameter\"k\n\"GetEarlyStoppingParameterListReply\x12\x45\n\x1d\x65\x61rly_stopping_parameter_sets\x18\x01 \x03(\x0b\x32\x1e.api.EarlyStoppingParameterSet*U\n\rParameterType\x12\x10\n\x0cUNKNOWN_TYPE\x10\x00\x12\n\n\x06\x44OUBLE\x10\x01\x12\x07\n\x03INT\x10\x02\x12\x0c\n\x08\x44ISCRETE\x10\x03\x12\x0f\n\x0b\x43\x41TEGORICAL\x10\x04*H\n\x10OptimizationType\x12\x18\n\x14UNKNOWN_OPTIMIZATION\x10\x00\x12\x0c\n\x08MINIMIZE\x10\x01\x12\x0c\n\x08MAXIMIZE\x10\x02*G\n\x05State\x12\x0b\n\x07PENDING\x10\x00\x12\x0b\n\x07RUNNING\x10\x01\x12\r\n\tCOMPLETED\x10\x02\x12\n\n\x06KILLED\x10\x03\x12\t\n\x05\x45RROR\x10x2\xff\x16\n\x07Manager\x12m\n\x0b\x43reateStudy\x12\x17.api.CreateStudyRequest\x1a\x15.api.CreateStudyReply\".\x82\xd3\xe4\x93\x02(\"\x18/api/Manager/CreateStudy:\x0cstudy_config\x12^\n\x08GetStudy\x12\x14.api.GetStudyRequest\x1a\x12.api.GetStudyReply\"(\x82\xd3\xe4\x93\x02\"\x12 /api/Manager/GetStudy/{study_id}\x12\x63\n\x0cGetStudyList\x12\x18.api.GetStudyListRequest\x1a\x16.api.GetStudyListReply\"!\x82\xd3\xe4\x93\x02\x1b\x12\x19/api/Manager/GetStudyList\x12\x66\n\x0b\x43reateTrial\x12\x17.api.CreateTrialRequest\x1a\x15.api.CreateTrialReply\"\'\x82\xd3\xe4\x93\x02!\"\x18/api/Manager/CreateTrial:\x05trial\x12\x62\n\tGetTrials\x12\x15.api.GetTrialsRequest\x1a\x13.api.GetTrialsReply\")\x82\xd3\xe4\x93\x02#\x12!/api/Manager/GetTrials/{study_id}\x12^\n\x08GetTrial\x12\x14.api.GetTrialRequest\x1a\x12.api.GetTrialReply\"(\x82\xd3\xe4\x93\x02\"\x12 /api/Manager/GetTrial/{trial_id}\x12s\n\x0eRegisterWorker\x12\x1a.api.RegisterWorkerRequest\x1a\x18.api.RegisterWorkerReply\"+\x82\xd3\xe4\x93\x02%\"\x1b/api/Manager/RegisterWorker:\x06worker\x12[\n\nGetWorkers\x12\x16.api.GetWorkersRequest\x1a\x14.api.GetWorkersReply\"\x1f\x82\xd3\xe4\x93\x02\x19\x12\x17/api/Manager/GetWorkers\x12z\n\x11UpdateWorkerState\x12\x1d.api.UpdateWorkerStateRequest\x1a\x1b.api.UpdateWorkerStateReply\")\x82\xd3\xe4\x93\x02#\x1a\x1e/api/Manager/UpdateWorkerState:\x01*\x12w\n\x11GetWorkerFullInfo\x12\x1d.api.GetWorkerFullInfoRequest\x1a\x1b.api.GetWorkerFullInfoReply\"&\x82\xd3\xe4\x93\x02 \x12\x1e/api/Manager/GetWorkerFullInfo\x12n\n\x0eGetSuggestions\x12\x1a.api.GetSuggestionsRequest\x1a\x18.api.GetSuggestionsReply\"&\x82\xd3\xe4\x93\x02 \"\x1b/api/Manager/GetSuggestions:\x01*\x12\x90\x01\n\x14GetShouldStopWorkers\x12 .api.GetShouldStopWorkersRequest\x1a\x1e.api.GetShouldStopWorkersReply\"6\x82\xd3\xe4\x93\x02\x30\"+/api/Manager/GetTrials/GetShouldStopWorkers:\x01*\x12^\n\nGetMetrics\x12\x16.api.GetMetricsRequest\x1a\x14.api.GetMetricsReply\"\"\x82\xd3\xe4\x93\x02\x1c\"\x17/api/Manager/GetMetrics:\x01*\x12\x92\x01\n\x17SetSuggestionParameters\x12#.api.SetSuggestionParametersRequest\x1a!.api.SetSuggestionParametersReply\"/\x82\xd3\xe4\x93\x02)\"$/api/Manager/SetSuggestionParameters:\x01*\x12\x9a\x01\n\x17GetSuggestionParameters\x12#.api.GetSuggestionParametersRequest\x1a!.api.GetSuggestionParametersReply\"7\x82\xd3\xe4\x93\x02\x31\x12//api/Manager/GetSuggestionParameters/{param_id}\x12\xa6\x01\n\x1aGetSuggestionParameterList\x12&.api.GetSuggestionParameterListRequest\x1a$.api.GetSuggestionParameterListReply\":\x82\xd3\xe4\x93\x02\x34\x12\x32/api/Manager/GetSuggestionParameterList/{study_id}\x12\x9e\x01\n\x1aSetEarlyStoppingParameters\x12&.api.SetEarlyStoppingParametersRequest\x1a$.api.SetEarlyStoppingParametersReply\"2\x82\xd3\xe4\x93\x02,\"\'/api/Manager/SetEarlyStoppingParameters:\x01*\x12\xa6\x01\n\x1aGetEarlyStoppingParameters\x12&.api.GetEarlyStoppingParametersRequest\x1a$.api.GetEarlyStoppingParametersReply\":\x82\xd3\xe4\x93\x02\x34\x12\x32/api/Manager/GetEarlyStoppingParameters/{param_id}\x12\xb2\x01\n\x1dGetEarlyStoppingParameterList\x12).api.GetEarlyStoppingParameterListRequest\x1a\'.api.GetEarlyStoppingParameterListReply\"=\x82\xd3\xe4\x93\x02\x37\x12\x35/api/Manager/GetEarlyStoppingParameterList/{study_id}\x12Z\n\tSaveStudy\x12\x15.api.SaveStudyRequest\x1a\x13.api.SaveStudyReply\"!\x82\xd3\xe4\x93\x02\x1b\"\x16/api/Manager/SaveStudy:\x01*\x12Z\n\tSaveModel\x12\x15.api.SaveModelRequest\x1a\x13.api.SaveModelReply\"!\x82\xd3\xe4\x93\x02\x1b\"\x16/api/Manager/SaveModel:\x01*\x12z\n\x11ReportMetricsLogs\x12\x1d.api.ReportMetricsLogsRequest\x1a\x1b.api.ReportMetricsLogsReply\")\x82\xd3\xe4\x93\x02#\"\x1e/api/Manager/ReportMetricsLogs:\x01*\x12o\n\x0fGetSavedStudies\x12\x1b.api.GetSavedStudiesRequest\x1a\x19.api.GetSavedStudiesReply\"$\x82\xd3\xe4\x93\x02\x1e\x12\x1c/api/Manager/GetSavedStudies\x12k\n\x0eGetSavedModels\x12\x1a.api.GetSavedModelsRequest\x1a\x18.api.GetSavedModelsReply\"#\x82\xd3\xe4\x93\x02\x1d\x12\x1b/api/Manager/GetSavedModels2T\n\nSuggestion\x12\x46\n\x0eGetSuggestions\x12\x1a.api.GetSuggestionsRequest\x1a\x18.api.GetSuggestionsReply2i\n\rEarlyStopping\x12X\n\x14GetShouldStopWorkers\x12 .api.GetShouldStopWorkersRequest\x1a\x1e.api.GetShouldStopWorkersReplyb\x06proto3') +>>>>>>> add bestTrialId to statusJob status , dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) @@ -54,8 +58,13 @@ ], containing_type=None, options=None, +<<<<<<< HEAD serialized_start=5341, serialized_end=5426, +======= + serialized_start=5506, + serialized_end=5591, +>>>>>>> add bestTrialId to statusJob status ) _sym_db.RegisterEnumDescriptor(_PARAMETERTYPE) @@ -81,8 +90,13 @@ ], containing_type=None, options=None, +<<<<<<< HEAD serialized_start=5428, serialized_end=5500, +======= + serialized_start=5593, + serialized_end=5665, +>>>>>>> add bestTrialId to statusJob status ) _sym_db.RegisterEnumDescriptor(_OPTIMIZATIONTYPE) @@ -116,8 +130,13 @@ ], containing_type=None, options=None, +<<<<<<< HEAD serialized_start=5502, serialized_end=5573, +======= + serialized_start=5667, + serialized_end=5738, +>>>>>>> add bestTrialId to statusJob status ) _sym_db.RegisterEnumDescriptor(_STATE) @@ -1157,6 +1176,68 @@ ) +_GETTRIALREQUEST = _descriptor.Descriptor( + name='GetTrialRequest', + full_name='api.GetTrialRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='trial_id', full_name='api.GetTrialRequest.trial_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1977, + serialized_end=2012, +) + + +_GETTRIALREPLY = _descriptor.Descriptor( + name='GetTrialReply', + full_name='api.GetTrialReply', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='trial', full_name='api.GetTrialReply.trial', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2014, + serialized_end=2056, +) + + _REGISTERWORKERREQUEST = _descriptor.Descriptor( name='RegisterWorkerRequest', full_name='api.RegisterWorkerRequest', @@ -1183,8 +1264,13 @@ extension_ranges=[], oneofs=[ ], +<<<<<<< HEAD serialized_start=1893, serialized_end=1945, +======= + serialized_start=2058, + serialized_end=2110, +>>>>>>> add bestTrialId to statusJob status ) @@ -1214,8 +1300,13 @@ extension_ranges=[], oneofs=[ ], +<<<<<<< HEAD serialized_start=1947, serialized_end=1987, +======= + serialized_start=2112, + serialized_end=2152, +>>>>>>> add bestTrialId to statusJob status ) @@ -1259,8 +1350,13 @@ extension_ranges=[], oneofs=[ ], +<<<<<<< HEAD serialized_start=1989, serialized_end=2068, +======= + serialized_start=2154, + serialized_end=2233, +>>>>>>> add bestTrialId to statusJob status ) @@ -1283,8 +1379,13 @@ extension_ranges=[], oneofs=[ ], +<<<<<<< HEAD serialized_start=2070, serialized_end=2088, +======= + serialized_start=2235, + serialized_end=2253, +>>>>>>> add bestTrialId to statusJob status ) @@ -1328,8 +1429,13 @@ extension_ranges=[], oneofs=[ ], +<<<<<<< HEAD serialized_start=2090, serialized_end=2164, +======= + serialized_start=2255, + serialized_end=2329, +>>>>>>> add bestTrialId to statusJob status ) @@ -1359,8 +1465,13 @@ extension_ranges=[], oneofs=[ ], +<<<<<<< HEAD serialized_start=2166, serialized_end=2213, +======= + serialized_start=2331, + serialized_end=2378, +>>>>>>> add bestTrialId to statusJob status ) @@ -1397,8 +1508,13 @@ extension_ranges=[], oneofs=[ ], +<<<<<<< HEAD serialized_start=2215, serialized_end=2288, +======= + serialized_start=2380, + serialized_end=2453, +>>>>>>> add bestTrialId to statusJob status ) @@ -1421,8 +1537,13 @@ extension_ranges=[], oneofs=[ ], +<<<<<<< HEAD serialized_start=2290, serialized_end=2314, +======= + serialized_start=2455, + serialized_end=2479, +>>>>>>> add bestTrialId to statusJob status ) @@ -1473,8 +1594,13 @@ extension_ranges=[], oneofs=[ ], +<<<<<<< HEAD serialized_start=2316, serialized_end=2422, +======= + serialized_start=2481, + serialized_end=2587, +>>>>>>> add bestTrialId to statusJob status ) @@ -1518,8 +1644,13 @@ extension_ranges=[], oneofs=[ ], +<<<<<<< HEAD serialized_start=2424, serialized_end=2547, +======= + serialized_start=2589, + serialized_end=2712, +>>>>>>> add bestTrialId to statusJob status ) @@ -1549,8 +1680,13 @@ extension_ranges=[], oneofs=[ ], +<<<<<<< HEAD serialized_start=2549, serialized_end=2621, +======= + serialized_start=2714, + serialized_end=2786, +>>>>>>> add bestTrialId to statusJob status ) @@ -1608,8 +1744,13 @@ extension_ranges=[], oneofs=[ ], +<<<<<<< HEAD serialized_start=2624, serialized_end=2761, +======= + serialized_start=2789, + serialized_end=2926, +>>>>>>> add bestTrialId to statusJob status ) @@ -1639,8 +1780,13 @@ extension_ranges=[], oneofs=[ ], +<<<<<<< HEAD serialized_start=2763, serialized_end=2812, +======= + serialized_start=2928, + serialized_end=2977, +>>>>>>> add bestTrialId to statusJob status ) @@ -1684,8 +1830,13 @@ extension_ranges=[], oneofs=[ ], +<<<<<<< HEAD serialized_start=2814, serialized_end=2913, +======= + serialized_start=2979, + serialized_end=3078, +>>>>>>> add bestTrialId to statusJob status ) @@ -1715,8 +1866,13 @@ extension_ranges=[], oneofs=[ ], +<<<<<<< HEAD serialized_start=2915, serialized_end=2974, +======= + serialized_start=3080, + serialized_end=3139, +>>>>>>> add bestTrialId to statusJob status ) @@ -1760,8 +1916,13 @@ extension_ranges=[], oneofs=[ ], +<<<<<<< HEAD serialized_start=2976, serialized_end=3056, +======= + serialized_start=3141, + serialized_end=3221, +>>>>>>> add bestTrialId to statusJob status ) @@ -1791,8 +1952,13 @@ extension_ranges=[], oneofs=[ ], +<<<<<<< HEAD serialized_start=3058, serialized_end=3121, +======= + serialized_start=3223, + serialized_end=3286, +>>>>>>> add bestTrialId to statusJob status ) @@ -1829,8 +1995,13 @@ extension_ranges=[], oneofs=[ ], +<<<<<<< HEAD serialized_start=3123, serialized_end=3213, +======= + serialized_start=3288, + serialized_end=3378, +>>>>>>> add bestTrialId to statusJob status ) @@ -1853,8 +2024,13 @@ extension_ranges=[], oneofs=[ ], +<<<<<<< HEAD serialized_start=3215, serialized_end=3239, +======= + serialized_start=3380, + serialized_end=3404, +>>>>>>> add bestTrialId to statusJob status ) @@ -1912,8 +2088,13 @@ extension_ranges=[], oneofs=[ ], +<<<<<<< HEAD serialized_start=3242, serialized_end=3379, +======= + serialized_start=3407, + serialized_end=3544, +>>>>>>> add bestTrialId to statusJob status ) @@ -1950,8 +2131,13 @@ extension_ranges=[], oneofs=[ ], +<<<<<<< HEAD serialized_start=3381, serialized_end=3422, +======= + serialized_start=3546, + serialized_end=3587, +>>>>>>> add bestTrialId to statusJob status ) @@ -1995,8 +2181,13 @@ extension_ranges=[], oneofs=[ ], +<<<<<<< HEAD serialized_start=3424, serialized_end=3498, +======= + serialized_start=3589, + serialized_end=3663, +>>>>>>> add bestTrialId to statusJob status ) @@ -2019,8 +2210,13 @@ extension_ranges=[], oneofs=[ ], +<<<<<<< HEAD serialized_start=3500, serialized_end=3516, +======= + serialized_start=3665, + serialized_end=3681, +>>>>>>> add bestTrialId to statusJob status ) @@ -2064,8 +2260,13 @@ extension_ranges=[], oneofs=[ ], +<<<<<<< HEAD serialized_start=3518, serialized_end=3625, +======= + serialized_start=3683, + serialized_end=3790, +>>>>>>> add bestTrialId to statusJob status ) @@ -2088,8 +2289,13 @@ extension_ranges=[], oneofs=[ ], +<<<<<<< HEAD serialized_start=3627, serialized_end=3643, +======= + serialized_start=3792, + serialized_end=3808, +>>>>>>> add bestTrialId to statusJob status ) @@ -2112,8 +2318,13 @@ extension_ranges=[], oneofs=[ ], +<<<<<<< HEAD serialized_start=3645, serialized_end=3669, +======= + serialized_start=3810, + serialized_end=3834, +>>>>>>> add bestTrialId to statusJob status ) @@ -2143,8 +2354,13 @@ extension_ranges=[], oneofs=[ ], +<<<<<<< HEAD serialized_start=3671, serialized_end=3730, +======= + serialized_start=3836, + serialized_end=3895, +>>>>>>> add bestTrialId to statusJob status ) @@ -2174,8 +2390,13 @@ extension_ranges=[], oneofs=[ ], +<<<<<<< HEAD serialized_start=3732, serialized_end=3775, +======= + serialized_start=3897, + serialized_end=3940, +>>>>>>> add bestTrialId to statusJob status ) @@ -2205,8 +2426,13 @@ extension_ranges=[], oneofs=[ ], +<<<<<<< HEAD serialized_start=3777, serialized_end=3830, +======= + serialized_start=3942, + serialized_end=3995, +>>>>>>> add bestTrialId to statusJob status ) @@ -2243,8 +2469,13 @@ extension_ranges=[], oneofs=[ ], +<<<<<<< HEAD serialized_start=3832, serialized_end=3893, +======= + serialized_start=3997, + serialized_end=4058, +>>>>>>> add bestTrialId to statusJob status ) @@ -2274,8 +2505,13 @@ extension_ranges=[], oneofs=[ ], +<<<<<<< HEAD serialized_start=3895, serialized_end=3946, +======= + serialized_start=4060, + serialized_end=4111, +>>>>>>> add bestTrialId to statusJob status ) @@ -2326,8 +2562,13 @@ extension_ranges=[], oneofs=[ ], +<<<<<<< HEAD serialized_start=3949, serialized_end=4104, +======= + serialized_start=4114, + serialized_end=4269, +>>>>>>> add bestTrialId to statusJob status ) @@ -2357,8 +2598,13 @@ extension_ranges=[], oneofs=[ ], +<<<<<<< HEAD serialized_start=4106, serialized_end=4154, +======= + serialized_start=4271, + serialized_end=4319, +>>>>>>> add bestTrialId to statusJob status ) @@ -2388,8 +2634,13 @@ extension_ranges=[], oneofs=[ ], +<<<<<<< HEAD serialized_start=4156, serialized_end=4206, +======= + serialized_start=4321, + serialized_end=4371, +>>>>>>> add bestTrialId to statusJob status ) @@ -2419,8 +2670,13 @@ extension_ranges=[], oneofs=[ ], +<<<<<<< HEAD serialized_start=4208, serialized_end=4295, +======= + serialized_start=4373, + serialized_end=4460, +>>>>>>> add bestTrialId to statusJob status ) @@ -2450,8 +2706,13 @@ extension_ranges=[], oneofs=[ ], +<<<<<<< HEAD serialized_start=4297, serialized_end=4350, +======= + serialized_start=4462, + serialized_end=4515, +>>>>>>> add bestTrialId to statusJob status ) @@ -2495,8 +2756,13 @@ extension_ranges=[], oneofs=[ ], +<<<<<<< HEAD serialized_start=4353, serialized_end=4482, +======= + serialized_start=4518, + serialized_end=4647, +>>>>>>> add bestTrialId to statusJob status ) @@ -2526,8 +2792,13 @@ extension_ranges=[], oneofs=[ ], +<<<<<<< HEAD serialized_start=4484, serialized_end=4581, +======= + serialized_start=4649, + serialized_end=4746, +>>>>>>> add bestTrialId to statusJob status ) @@ -2557,8 +2828,13 @@ extension_ranges=[], oneofs=[ ], +<<<<<<< HEAD serialized_start=4583, serialized_end=4624, +======= + serialized_start=4748, + serialized_end=4789, +>>>>>>> add bestTrialId to statusJob status ) @@ -2581,8 +2857,13 @@ extension_ranges=[], oneofs=[ ], +<<<<<<< HEAD serialized_start=4626, serialized_end=4647, +======= + serialized_start=4791, + serialized_end=4812, +>>>>>>> add bestTrialId to statusJob status ) @@ -2633,8 +2914,13 @@ extension_ranges=[], oneofs=[ ], +<<<<<<< HEAD serialized_start=4650, serialized_end=4819, +======= + serialized_start=4815, + serialized_end=4984, +>>>>>>> add bestTrialId to statusJob status ) @@ -2664,8 +2950,13 @@ extension_ranges=[], oneofs=[ ], +<<<<<<< HEAD serialized_start=4821, serialized_end=4872, +======= + serialized_start=4986, + serialized_end=5037, +>>>>>>> add bestTrialId to statusJob status ) @@ -2695,8 +2986,13 @@ extension_ranges=[], oneofs=[ ], +<<<<<<< HEAD serialized_start=4874, serialized_end=4927, +======= + serialized_start=5039, + serialized_end=5092, +>>>>>>> add bestTrialId to statusJob status ) @@ -2726,8 +3022,13 @@ extension_ranges=[], oneofs=[ ], +<<<<<<< HEAD serialized_start=4929, serialized_end=5026, +======= + serialized_start=5094, + serialized_end=5191, +>>>>>>> add bestTrialId to statusJob status ) @@ -2757,8 +3058,13 @@ extension_ranges=[], oneofs=[ ], +<<<<<<< HEAD serialized_start=5028, serialized_end=5084, +======= + serialized_start=5193, + serialized_end=5249, +>>>>>>> add bestTrialId to statusJob status ) @@ -2802,8 +3108,13 @@ extension_ranges=[], oneofs=[ ], +<<<<<<< HEAD serialized_start=5087, serialized_end=5230, +======= + serialized_start=5252, + serialized_end=5395, +>>>>>>> add bestTrialId to statusJob status ) @@ -2833,8 +3144,13 @@ extension_ranges=[], oneofs=[ ], +<<<<<<< HEAD serialized_start=5232, serialized_end=5339, +======= + serialized_start=5397, + serialized_end=5504, +>>>>>>> add bestTrialId to statusJob status ) _PARAMETERCONFIG.fields_by_name['parameter_type'].enum_type = _PARAMETERTYPE @@ -2857,6 +3173,7 @@ _GETSTUDYLISTREPLY.fields_by_name['study_overviews'].message_type = _STUDYOVERVIEW _CREATETRIALREQUEST.fields_by_name['trial'].message_type = _TRIAL _GETTRIALSREPLY.fields_by_name['trials'].message_type = _TRIAL +_GETTRIALREPLY.fields_by_name['trial'].message_type = _TRIAL _REGISTERWORKERREQUEST.fields_by_name['worker'].message_type = _WORKER _GETWORKERSREPLY.fields_by_name['workers'].message_type = _WORKER _UPDATEWORKERSTATEREQUEST.fields_by_name['status'].enum_type = _STATE @@ -2906,6 +3223,8 @@ DESCRIPTOR.message_types_by_name['CreateTrialReply'] = _CREATETRIALREPLY DESCRIPTOR.message_types_by_name['GetTrialsRequest'] = _GETTRIALSREQUEST DESCRIPTOR.message_types_by_name['GetTrialsReply'] = _GETTRIALSREPLY +DESCRIPTOR.message_types_by_name['GetTrialRequest'] = _GETTRIALREQUEST +DESCRIPTOR.message_types_by_name['GetTrialReply'] = _GETTRIALREPLY DESCRIPTOR.message_types_by_name['RegisterWorkerRequest'] = _REGISTERWORKERREQUEST DESCRIPTOR.message_types_by_name['RegisterWorkerReply'] = _REGISTERWORKERREPLY DESCRIPTOR.message_types_by_name['StopWorkersRequest'] = _STOPWORKERSREQUEST @@ -3134,6 +3453,20 @@ )) _sym_db.RegisterMessage(GetTrialsReply) +GetTrialRequest = _reflection.GeneratedProtocolMessageType('GetTrialRequest', (_message.Message,), dict( + DESCRIPTOR = _GETTRIALREQUEST, + __module__ = 'api_pb2' + # @@protoc_insertion_point(class_scope:api.GetTrialRequest) + )) +_sym_db.RegisterMessage(GetTrialRequest) + +GetTrialReply = _reflection.GeneratedProtocolMessageType('GetTrialReply', (_message.Message,), dict( + DESCRIPTOR = _GETTRIALREPLY, + __module__ = 'api_pb2' + # @@protoc_insertion_point(class_scope:api.GetTrialReply) + )) +_sym_db.RegisterMessage(GetTrialReply) + RegisterWorkerRequest = _reflection.GeneratedProtocolMessageType('RegisterWorkerRequest', (_message.Message,), dict( DESCRIPTOR = _REGISTERWORKERREQUEST, __module__ = 'api_pb2' @@ -3471,8 +3804,13 @@ file=DESCRIPTOR, index=0, options=None, +<<<<<<< HEAD serialized_start=5576, serialized_end=8423, +======= + serialized_start=5741, + serialized_end=8684, +>>>>>>> add bestTrialId to statusJob status methods=[ _descriptor.MethodDescriptor( name='CreateStudy', @@ -3519,10 +3857,19 @@ output_type=_GETTRIALSREPLY, options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002#\022!/api/Manager/GetTrials/{study_id}')), ), + _descriptor.MethodDescriptor( + name='GetTrial', + full_name='api.Manager.GetTrial', + index=5, + containing_service=None, + input_type=_GETTRIALREQUEST, + output_type=_GETTRIALREPLY, + options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002\"\022 /api/Manager/GetTrial/{trial_id}')), + ), _descriptor.MethodDescriptor( name='RegisterWorker', full_name='api.Manager.RegisterWorker', - index=5, + index=6, containing_service=None, input_type=_REGISTERWORKERREQUEST, output_type=_REGISTERWORKERREPLY, @@ -3531,7 +3878,7 @@ _descriptor.MethodDescriptor( name='GetWorkers', full_name='api.Manager.GetWorkers', - index=6, + index=7, containing_service=None, input_type=_GETWORKERSREQUEST, output_type=_GETWORKERSREPLY, @@ -3540,7 +3887,7 @@ _descriptor.MethodDescriptor( name='UpdateWorkerState', full_name='api.Manager.UpdateWorkerState', - index=7, + index=8, containing_service=None, input_type=_UPDATEWORKERSTATEREQUEST, output_type=_UPDATEWORKERSTATEREPLY, @@ -3549,7 +3896,7 @@ _descriptor.MethodDescriptor( name='GetWorkerFullInfo', full_name='api.Manager.GetWorkerFullInfo', - index=8, + index=9, containing_service=None, input_type=_GETWORKERFULLINFOREQUEST, output_type=_GETWORKERFULLINFOREPLY, @@ -3558,7 +3905,7 @@ _descriptor.MethodDescriptor( name='GetSuggestions', full_name='api.Manager.GetSuggestions', - index=9, + index=10, containing_service=None, input_type=_GETSUGGESTIONSREQUEST, output_type=_GETSUGGESTIONSREPLY, @@ -3567,7 +3914,7 @@ _descriptor.MethodDescriptor( name='GetShouldStopWorkers', full_name='api.Manager.GetShouldStopWorkers', - index=10, + index=11, containing_service=None, input_type=_GETSHOULDSTOPWORKERSREQUEST, output_type=_GETSHOULDSTOPWORKERSREPLY, @@ -3576,7 +3923,7 @@ _descriptor.MethodDescriptor( name='GetMetrics', full_name='api.Manager.GetMetrics', - index=11, + index=12, containing_service=None, input_type=_GETMETRICSREQUEST, output_type=_GETMETRICSREPLY, @@ -3585,7 +3932,7 @@ _descriptor.MethodDescriptor( name='SetSuggestionParameters', full_name='api.Manager.SetSuggestionParameters', - index=12, + index=13, containing_service=None, input_type=_SETSUGGESTIONPARAMETERSREQUEST, output_type=_SETSUGGESTIONPARAMETERSREPLY, @@ -3594,7 +3941,7 @@ _descriptor.MethodDescriptor( name='GetSuggestionParameters', full_name='api.Manager.GetSuggestionParameters', - index=13, + index=14, containing_service=None, input_type=_GETSUGGESTIONPARAMETERSREQUEST, output_type=_GETSUGGESTIONPARAMETERSREPLY, @@ -3603,7 +3950,7 @@ _descriptor.MethodDescriptor( name='GetSuggestionParameterList', full_name='api.Manager.GetSuggestionParameterList', - index=14, + index=15, containing_service=None, input_type=_GETSUGGESTIONPARAMETERLISTREQUEST, output_type=_GETSUGGESTIONPARAMETERLISTREPLY, @@ -3612,7 +3959,7 @@ _descriptor.MethodDescriptor( name='SetEarlyStoppingParameters', full_name='api.Manager.SetEarlyStoppingParameters', - index=15, + index=16, containing_service=None, input_type=_SETEARLYSTOPPINGPARAMETERSREQUEST, output_type=_SETEARLYSTOPPINGPARAMETERSREPLY, @@ -3621,7 +3968,7 @@ _descriptor.MethodDescriptor( name='GetEarlyStoppingParameters', full_name='api.Manager.GetEarlyStoppingParameters', - index=16, + index=17, containing_service=None, input_type=_GETEARLYSTOPPINGPARAMETERSREQUEST, output_type=_GETEARLYSTOPPINGPARAMETERSREPLY, @@ -3630,7 +3977,7 @@ _descriptor.MethodDescriptor( name='GetEarlyStoppingParameterList', full_name='api.Manager.GetEarlyStoppingParameterList', - index=17, + index=18, containing_service=None, input_type=_GETEARLYSTOPPINGPARAMETERLISTREQUEST, output_type=_GETEARLYSTOPPINGPARAMETERLISTREPLY, @@ -3639,7 +3986,7 @@ _descriptor.MethodDescriptor( name='SaveStudy', full_name='api.Manager.SaveStudy', - index=18, + index=19, containing_service=None, input_type=_SAVESTUDYREQUEST, output_type=_SAVESTUDYREPLY, @@ -3648,7 +3995,7 @@ _descriptor.MethodDescriptor( name='SaveModel', full_name='api.Manager.SaveModel', - index=19, + index=20, containing_service=None, input_type=_SAVEMODELREQUEST, output_type=_SAVEMODELREPLY, @@ -3657,7 +4004,7 @@ _descriptor.MethodDescriptor( name='ReportMetricsLogs', full_name='api.Manager.ReportMetricsLogs', - index=20, + index=21, containing_service=None, input_type=_REPORTMETRICSLOGSREQUEST, output_type=_REPORTMETRICSLOGSREPLY, @@ -3666,7 +4013,7 @@ _descriptor.MethodDescriptor( name='GetSavedStudies', full_name='api.Manager.GetSavedStudies', - index=21, + index=22, containing_service=None, input_type=_GETSAVEDSTUDIESREQUEST, output_type=_GETSAVEDSTUDIESREPLY, @@ -3675,7 +4022,7 @@ _descriptor.MethodDescriptor( name='GetSavedModels', full_name='api.Manager.GetSavedModels', - index=22, + index=23, containing_service=None, input_type=_GETSAVEDMODELSREQUEST, output_type=_GETSAVEDMODELSREPLY, @@ -3693,8 +4040,13 @@ file=DESCRIPTOR, index=1, options=None, +<<<<<<< HEAD serialized_start=8425, serialized_end=8509, +======= + serialized_start=8686, + serialized_end=8770, +>>>>>>> add bestTrialId to statusJob status methods=[ _descriptor.MethodDescriptor( name='GetSuggestions', @@ -3717,8 +4069,13 @@ file=DESCRIPTOR, index=2, options=None, +<<<<<<< HEAD serialized_start=8511, serialized_end=8616, +======= + serialized_start=8772, + serialized_end=8877, +>>>>>>> add bestTrialId to statusJob status methods=[ _descriptor.MethodDescriptor( name='GetShouldStopWorkers', @@ -3783,6 +4140,11 @@ def __init__(self, channel): request_serializer=GetTrialsRequest.SerializeToString, response_deserializer=GetTrialsReply.FromString, ) + self.GetTrial = channel.unary_unary( + '/api.Manager/GetTrial', + request_serializer=GetTrialRequest.SerializeToString, + response_deserializer=GetTrialReply.FromString, + ) self.RegisterWorker = channel.unary_unary( '/api.Manager/RegisterWorker', request_serializer=RegisterWorkerRequest.SerializeToString, @@ -3925,6 +4287,14 @@ def GetTrials(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def GetTrial(self, request, context): + """ + Get a Trial Configuration from DB by ID of Trial. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def RegisterWorker(self, request, context): """* Create a Worker from Worker Config. @@ -4097,6 +4467,11 @@ def add_ManagerServicer_to_server(servicer, server): request_deserializer=GetTrialsRequest.FromString, response_serializer=GetTrialsReply.SerializeToString, ), + 'GetTrial': grpc.unary_unary_rpc_method_handler( + servicer.GetTrial, + request_deserializer=GetTrialRequest.FromString, + response_serializer=GetTrialReply.SerializeToString, + ), 'RegisterWorker': grpc.unary_unary_rpc_method_handler( servicer.RegisterWorker, request_deserializer=RegisterWorkerRequest.FromString, @@ -4316,6 +4691,11 @@ def GetTrials(self, request, context): Get a Trial Configs from DB by ID of Study. """ context.code(beta_interfaces.StatusCode.UNIMPLEMENTED) + def GetTrial(self, request, context): + """ + Get a Trial Configuration from DB by ID of Trial. + """ + context.code(beta_interfaces.StatusCode.UNIMPLEMENTED) def RegisterWorker(self, request, context): """* Create a Worker from Worker Config. @@ -4452,6 +4832,12 @@ def GetTrials(self, request, timeout, metadata=None, with_call=False, protocol_o """ raise NotImplementedError() GetTrials.future = None + def GetTrial(self, request, timeout, metadata=None, with_call=False, protocol_options=None): + """ + Get a Trial Configuration from DB by ID of Trial. + """ + raise NotImplementedError() + GetTrial.future = None def RegisterWorker(self, request, timeout, metadata=None, with_call=False, protocol_options=None): """* Create a Worker from Worker Config. @@ -4582,6 +4968,7 @@ def beta_create_Manager_server(servicer, pool=None, pool_size=None, default_time ('api.Manager', 'GetSuggestionParameterList'): GetSuggestionParameterListRequest.FromString, ('api.Manager', 'GetSuggestionParameters'): GetSuggestionParametersRequest.FromString, ('api.Manager', 'GetSuggestions'): GetSuggestionsRequest.FromString, + ('api.Manager', 'GetTrial'): GetTrialRequest.FromString, ('api.Manager', 'GetTrials'): GetTrialsRequest.FromString, ('api.Manager', 'GetWorkerFullInfo'): GetWorkerFullInfoRequest.FromString, ('api.Manager', 'GetWorkers'): GetWorkersRequest.FromString, @@ -4607,6 +4994,7 @@ def beta_create_Manager_server(servicer, pool=None, pool_size=None, default_time ('api.Manager', 'GetSuggestionParameterList'): GetSuggestionParameterListReply.SerializeToString, ('api.Manager', 'GetSuggestionParameters'): GetSuggestionParametersReply.SerializeToString, ('api.Manager', 'GetSuggestions'): GetSuggestionsReply.SerializeToString, + ('api.Manager', 'GetTrial'): GetTrialReply.SerializeToString, ('api.Manager', 'GetTrials'): GetTrialsReply.SerializeToString, ('api.Manager', 'GetWorkerFullInfo'): GetWorkerFullInfoReply.SerializeToString, ('api.Manager', 'GetWorkers'): GetWorkersReply.SerializeToString, @@ -4632,6 +5020,7 @@ def beta_create_Manager_server(servicer, pool=None, pool_size=None, default_time ('api.Manager', 'GetSuggestionParameterList'): face_utilities.unary_unary_inline(servicer.GetSuggestionParameterList), ('api.Manager', 'GetSuggestionParameters'): face_utilities.unary_unary_inline(servicer.GetSuggestionParameters), ('api.Manager', 'GetSuggestions'): face_utilities.unary_unary_inline(servicer.GetSuggestions), + ('api.Manager', 'GetTrial'): face_utilities.unary_unary_inline(servicer.GetTrial), ('api.Manager', 'GetTrials'): face_utilities.unary_unary_inline(servicer.GetTrials), ('api.Manager', 'GetWorkerFullInfo'): face_utilities.unary_unary_inline(servicer.GetWorkerFullInfo), ('api.Manager', 'GetWorkers'): face_utilities.unary_unary_inline(servicer.GetWorkers), @@ -4667,6 +5056,7 @@ def beta_create_Manager_stub(channel, host=None, metadata_transformer=None, pool ('api.Manager', 'GetSuggestionParameterList'): GetSuggestionParameterListRequest.SerializeToString, ('api.Manager', 'GetSuggestionParameters'): GetSuggestionParametersRequest.SerializeToString, ('api.Manager', 'GetSuggestions'): GetSuggestionsRequest.SerializeToString, + ('api.Manager', 'GetTrial'): GetTrialRequest.SerializeToString, ('api.Manager', 'GetTrials'): GetTrialsRequest.SerializeToString, ('api.Manager', 'GetWorkerFullInfo'): GetWorkerFullInfoRequest.SerializeToString, ('api.Manager', 'GetWorkers'): GetWorkersRequest.SerializeToString, @@ -4692,6 +5082,7 @@ def beta_create_Manager_stub(channel, host=None, metadata_transformer=None, pool ('api.Manager', 'GetSuggestionParameterList'): GetSuggestionParameterListReply.FromString, ('api.Manager', 'GetSuggestionParameters'): GetSuggestionParametersReply.FromString, ('api.Manager', 'GetSuggestions'): GetSuggestionsReply.FromString, + ('api.Manager', 'GetTrial'): GetTrialReply.FromString, ('api.Manager', 'GetTrials'): GetTrialsReply.FromString, ('api.Manager', 'GetWorkerFullInfo'): GetWorkerFullInfoReply.FromString, ('api.Manager', 'GetWorkers'): GetWorkersReply.FromString, @@ -4717,6 +5108,7 @@ def beta_create_Manager_stub(channel, host=None, metadata_transformer=None, pool 'GetSuggestionParameterList': cardinality.Cardinality.UNARY_UNARY, 'GetSuggestionParameters': cardinality.Cardinality.UNARY_UNARY, 'GetSuggestions': cardinality.Cardinality.UNARY_UNARY, + 'GetTrial': cardinality.Cardinality.UNARY_UNARY, 'GetTrials': cardinality.Cardinality.UNARY_UNARY, 'GetWorkerFullInfo': cardinality.Cardinality.UNARY_UNARY, 'GetWorkers': cardinality.Cardinality.UNARY_UNARY, diff --git a/pkg/api/python/api_pb2_grpc.py b/pkg/api/python/api_pb2_grpc.py index fe031416955..ffe426cd51a 100644 --- a/pkg/api/python/api_pb2_grpc.py +++ b/pkg/api/python/api_pb2_grpc.py @@ -43,6 +43,11 @@ def __init__(self, channel): request_serializer=api__pb2.GetTrialsRequest.SerializeToString, response_deserializer=api__pb2.GetTrialsReply.FromString, ) + self.GetTrial = channel.unary_unary( + '/api.Manager/GetTrial', + request_serializer=api__pb2.GetTrialRequest.SerializeToString, + response_deserializer=api__pb2.GetTrialReply.FromString, + ) self.RegisterWorker = channel.unary_unary( '/api.Manager/RegisterWorker', request_serializer=api__pb2.RegisterWorkerRequest.SerializeToString, @@ -185,6 +190,14 @@ def GetTrials(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def GetTrial(self, request, context): + """ + Get a Trial Configuration from DB by ID of Trial. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def RegisterWorker(self, request, context): """* Create a Worker from Worker Config. @@ -357,6 +370,11 @@ def add_ManagerServicer_to_server(servicer, server): request_deserializer=api__pb2.GetTrialsRequest.FromString, response_serializer=api__pb2.GetTrialsReply.SerializeToString, ), + 'GetTrial': grpc.unary_unary_rpc_method_handler( + servicer.GetTrial, + request_deserializer=api__pb2.GetTrialRequest.FromString, + response_serializer=api__pb2.GetTrialReply.SerializeToString, + ), 'RegisterWorker': grpc.unary_unary_rpc_method_handler( servicer.RegisterWorker, request_deserializer=api__pb2.RegisterWorkerRequest.FromString, diff --git a/pkg/controller/studyjob/studyjob_controller.go b/pkg/controller/studyjob/studyjob_controller.go index 1f70f2ca772..7a21288a5c2 100644 --- a/pkg/controller/studyjob/studyjob_controller.go +++ b/pkg/controller/studyjob/studyjob_controller.go @@ -249,43 +249,7 @@ func (r *ReconcileStudyJobController) checkGoal(instance *katibv1alpha1.StudyJob if ml.Name == instance.Spec.ObjectiveValueName { if len(ml.Values) > 0 { curValue, _ := strconv.ParseFloat(ml.Values[len(ml.Values)-1].Value, 32) - if instance.Spec.OptimizationType == katibv1alpha1.OptimizationTypeMinimize { - if curValue < *instance.Spec.OptimizationGoal { - goal = true - } - if instance.Status.BestObjectiveValue != nil { - if *instance.Status.BestObjectiveValue > curValue { - instance.Status.BestObjectiveValue = &curValue - } - } else { - instance.Status.BestObjectiveValue = &curValue - } - for i := range instance.Status.Trials { - for j := range instance.Status.Trials[i].WorkerList { - if instance.Status.Trials[i].WorkerList[j].WorkerID == mls.WorkerId { - instance.Status.Trials[i].WorkerList[j].ObjectiveValue = &curValue - } - } - } - } else if instance.Spec.OptimizationType == katibv1alpha1.OptimizationTypeMaximize { - if curValue > *instance.Spec.OptimizationGoal { - goal = true - } - if instance.Status.BestObjectiveValue != nil { - if *instance.Status.BestObjectiveValue < curValue { - instance.Status.BestObjectiveValue = &curValue - } - } else { - instance.Status.BestObjectiveValue = &curValue - } - for i := range instance.Status.Trials { - for j := range instance.Status.Trials[i].WorkerList { - if instance.Status.Trials[i].WorkerList[j].WorkerID == mls.WorkerId { - instance.Status.Trials[i].WorkerList[j].ObjectiveValue = &curValue - } - } - } - } + goal = checkGoalAndUpdateObject(curValue, instance, mls.WorkerId ) } break } diff --git a/pkg/controller/studyjob/utils.go b/pkg/controller/studyjob/utils.go index 784ac462396..fbb3df09681 100644 --- a/pkg/controller/studyjob/utils.go +++ b/pkg/controller/studyjob/utils.go @@ -96,3 +96,40 @@ func validateStudy(instance *katibv1alpha1.StudyJob, namespace string) error { } return nil } + +func checkGoalAndUpdateObject(curValue float64, instance *katibv1alpha1.StudyJob, workerId string) bool { + optTypeFuncMap := map[katibv1alpha1.OptimizationType] func(float64, float64) bool { + katibv1alpha1.OptimizationTypeMinimize: func(a, b float64) bool {return a < b}, + katibv1alpha1.OptimizationTypeMaximize: func(a, b float64) bool {return a > b}, + } + goal := false + if optTypeFuncMap[instance.Spec.OptimizationType] == nil { + return false + } + var trialId string + OuterLoop: + for i := range instance.Status.Trials { + for j := range instance.Status.Trials[i].WorkerList { + if instance.Status.Trials[i].WorkerList[j].WorkerID == workerId { + instance.Status.Trials[i].WorkerList[j].ObjectiveValue = &curValue + trialId = instance.Status.Trials[i].TrialID + break OuterLoop + } + } + } + opFunc := optTypeFuncMap[instance.Spec.OptimizationType] + if opFunc(curValue, *instance.Spec.OptimizationGoal) { + goal = true + } + if instance.Status.BestObjectiveValue != nil { + if opFunc(curValue, *instance.Status.BestObjectiveValue) { + instance.Status.BestObjectiveValue = &curValue + instance.Status.BestTrialID = trialId + } + } else { + instance.Status.BestObjectiveValue = &curValue + instance.Status.BestTrialID = trialId + } + + return goal +} From 5e194f3391cac1c0ea2a23eff1ffa372eec2a532 Mon Sep 17 00:00:00 2001 From: hougang liu Date: Wed, 26 Dec 2018 08:30:51 +0800 Subject: [PATCH 2/2] generate mock and add bestworkerid --- pkg/api/api.pb.go | 884 +++++------------- pkg/api/api.swagger.json | 19 +- pkg/api/gen-doc/api.md | 57 +- pkg/api/gen-doc/index.html | 87 +- .../apis/studyjob/v1alpha1/studyjob_types.go | 1 + pkg/api/python/api_pb2.py | 521 +++-------- pkg/api/python/api_pb2_grpc.py | 10 +- pkg/controller/studyjob/utils.go | 2 + pkg/mock/api/manager.go | 18 + pkg/mock/db/db.go | 18 +- 10 files changed, 548 insertions(+), 1069 deletions(-) diff --git a/pkg/api/api.pb.go b/pkg/api/api.pb.go index dde36f65135..118750edb43 100644 --- a/pkg/api/api.pb.go +++ b/pkg/api/api.pb.go @@ -415,7 +415,7 @@ func (m *MetricsLog) GetValues() []*MetricsValueTime { } // * -// Parameter for Suggestion service. Key value format. +// Parameter for Suggestion service. Key-value format. type SuggestionParameter struct { Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` Value string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` @@ -441,7 +441,7 @@ func (m *SuggestionParameter) GetValue() string { } // * -// Parameter for EarlyStopping service. Key value format. +// Parameter for EarlyStopping service. Key-value format. type EarlyStoppingParameter struct { Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` Value string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` @@ -467,7 +467,7 @@ func (m *EarlyStoppingParameter) GetValue() string { } // * -// Tag for each resources. +// Tag for each resource. type Tag struct { Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` Value string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` @@ -536,7 +536,7 @@ func (m *StudyOverview) GetDescription() string { // * // A set of Hyperparameter. -// In a study, multiple trials are evaluated by worker. +// In a study, multiple trials are evaluated by workers. // Suggestion service will generate next trials. type Trial struct { TrialId string `protobuf:"bytes,1,opt,name=trial_id,json=trialId" json:"trial_id,omitempty"` @@ -767,7 +767,7 @@ func (m *StudyConfig_ParameterConfigs) GetConfigs() []*ParameterConfig { // * // Create a Study from Study Config. -// Generate a unique ID and store the Study to DB. +// Generate an unique ID and store the Study to DB. type CreateStudyRequest struct { StudyConfig *StudyConfig `protobuf:"bytes,1,opt,name=study_config,json=studyConfig" json:"study_config,omitempty"` } @@ -868,7 +868,7 @@ func (m *GetStudyListReply) GetStudyOverviews() []*StudyOverview { // * // Create a Trial from Trial Config. -// Generate a unique ID and store the Trial to DB. +// Generate an unique ID and store the Trial to DB. type CreateTrialRequest struct { Trial *Trial `protobuf:"bytes,1,opt,name=trial" json:"trial,omitempty"` } @@ -939,11 +939,8 @@ func (m *GetTrialsReply) GetTrials() []*Trial { return nil } -<<<<<<< HEAD // * -// Create a Worker from Worker Config. -// Generate a unique ID and store the Worker to DB. -======= +// Get a trial configuration from DB by trial ID type GetTrialRequest struct { TrialId string `protobuf:"bytes,1,opt,name=trial_id,json=trialId" json:"trial_id,omitempty"` } @@ -951,7 +948,7 @@ type GetTrialRequest struct { func (m *GetTrialRequest) Reset() { *m = GetTrialRequest{} } func (m *GetTrialRequest) String() string { return proto.CompactTextString(m) } func (*GetTrialRequest) ProtoMessage() {} -func (*GetTrialRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{26} } +func (*GetTrialRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} } func (m *GetTrialRequest) GetTrialId() string { if m != nil { @@ -960,6 +957,8 @@ func (m *GetTrialRequest) GetTrialId() string { return "" } +// * +// Return a trial configuration by specified trial ID type GetTrialReply struct { Trial *Trial `protobuf:"bytes,1,opt,name=trial" json:"trial,omitempty"` } @@ -967,7 +966,7 @@ type GetTrialReply struct { func (m *GetTrialReply) Reset() { *m = GetTrialReply{} } func (m *GetTrialReply) String() string { return proto.CompactTextString(m) } func (*GetTrialReply) ProtoMessage() {} -func (*GetTrialReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{27} } +func (*GetTrialReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25} } func (m *GetTrialReply) GetTrial() *Trial { if m != nil { @@ -976,7 +975,9 @@ func (m *GetTrialReply) GetTrial() *Trial { return nil } ->>>>>>> add bestTrialId to statusJob status +// * +// Create a Worker from Worker Config. +// Generate an unique ID and store the Worker to DB. type RegisterWorkerRequest struct { Worker *Worker `protobuf:"bytes,1,opt,name=worker" json:"worker,omitempty"` } @@ -984,11 +985,7 @@ type RegisterWorkerRequest struct { func (m *RegisterWorkerRequest) Reset() { *m = RegisterWorkerRequest{} } func (m *RegisterWorkerRequest) String() string { return proto.CompactTextString(m) } func (*RegisterWorkerRequest) ProtoMessage() {} -<<<<<<< HEAD -func (*RegisterWorkerRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} } -======= -func (*RegisterWorkerRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{28} } ->>>>>>> add bestTrialId to statusJob status +func (*RegisterWorkerRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{26} } func (m *RegisterWorkerRequest) GetWorker() *Worker { if m != nil { @@ -1006,11 +1003,7 @@ type RegisterWorkerReply struct { func (m *RegisterWorkerReply) Reset() { *m = RegisterWorkerReply{} } func (m *RegisterWorkerReply) String() string { return proto.CompactTextString(m) } func (*RegisterWorkerReply) ProtoMessage() {} -<<<<<<< HEAD -func (*RegisterWorkerReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25} } -======= -func (*RegisterWorkerReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{29} } ->>>>>>> add bestTrialId to statusJob status +func (*RegisterWorkerReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{27} } func (m *RegisterWorkerReply) GetWorkerId() string { if m != nil { @@ -1028,11 +1021,7 @@ type StopWorkersRequest struct { func (m *StopWorkersRequest) Reset() { *m = StopWorkersRequest{} } func (m *StopWorkersRequest) String() string { return proto.CompactTextString(m) } func (*StopWorkersRequest) ProtoMessage() {} -<<<<<<< HEAD -func (*StopWorkersRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{26} } -======= -func (*StopWorkersRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{30} } ->>>>>>> add bestTrialId to statusJob status +func (*StopWorkersRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{28} } func (m *StopWorkersRequest) GetStudyId() string { if m != nil { @@ -1061,14 +1050,10 @@ type StopWorkersReply struct { func (m *StopWorkersReply) Reset() { *m = StopWorkersReply{} } func (m *StopWorkersReply) String() string { return proto.CompactTextString(m) } func (*StopWorkersReply) ProtoMessage() {} -<<<<<<< HEAD -func (*StopWorkersReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{27} } -======= -func (*StopWorkersReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{31} } ->>>>>>> add bestTrialId to statusJob status +func (*StopWorkersReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{29} } // * -// Get a Worker Configs and Statuses from DB by ID of Study, Trial or Worker. +// Get a configs and status of a Worker from DB by ID of Study, Trial or Worker. type GetWorkersRequest struct { StudyId string `protobuf:"bytes,1,opt,name=study_id,json=studyId" json:"study_id,omitempty"` TrialId string `protobuf:"bytes,2,opt,name=trial_id,json=trialId" json:"trial_id,omitempty"` @@ -1078,11 +1063,7 @@ type GetWorkersRequest struct { func (m *GetWorkersRequest) Reset() { *m = GetWorkersRequest{} } func (m *GetWorkersRequest) String() string { return proto.CompactTextString(m) } func (*GetWorkersRequest) ProtoMessage() {} -<<<<<<< HEAD -func (*GetWorkersRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{28} } -======= -func (*GetWorkersRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{32} } ->>>>>>> add bestTrialId to statusJob status +func (*GetWorkersRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{30} } func (m *GetWorkersRequest) GetStudyId() string { if m != nil { @@ -1114,11 +1095,7 @@ type GetWorkersReply struct { func (m *GetWorkersReply) Reset() { *m = GetWorkersReply{} } func (m *GetWorkersReply) String() string { return proto.CompactTextString(m) } func (*GetWorkersReply) ProtoMessage() {} -<<<<<<< HEAD -func (*GetWorkersReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{29} } -======= -func (*GetWorkersReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{33} } ->>>>>>> add bestTrialId to statusJob status +func (*GetWorkersReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{31} } func (m *GetWorkersReply) GetWorkers() []*Worker { if m != nil { @@ -1137,11 +1114,7 @@ type UpdateWorkerStateRequest struct { func (m *UpdateWorkerStateRequest) Reset() { *m = UpdateWorkerStateRequest{} } func (m *UpdateWorkerStateRequest) String() string { return proto.CompactTextString(m) } func (*UpdateWorkerStateRequest) ProtoMessage() {} -<<<<<<< HEAD -func (*UpdateWorkerStateRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{30} } -======= -func (*UpdateWorkerStateRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{34} } ->>>>>>> add bestTrialId to statusJob status +func (*UpdateWorkerStateRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{32} } func (m *UpdateWorkerStateRequest) GetWorkerId() string { if m != nil { @@ -1163,14 +1136,10 @@ type UpdateWorkerStateReply struct { func (m *UpdateWorkerStateReply) Reset() { *m = UpdateWorkerStateReply{} } func (m *UpdateWorkerStateReply) String() string { return proto.CompactTextString(m) } func (*UpdateWorkerStateReply) ProtoMessage() {} -<<<<<<< HEAD -func (*UpdateWorkerStateReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{31} } -======= -func (*UpdateWorkerStateReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{35} } ->>>>>>> add bestTrialId to statusJob status +func (*UpdateWorkerStateReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{33} } // * -// Get a full informations related to specified Workers. +// Get a full information related to specified Workers. // It includes Worker Config, HyperParameters and Metrics Logs. type GetWorkerFullInfoRequest struct { StudyId string `protobuf:"bytes,1,opt,name=study_id,json=studyId" json:"study_id,omitempty"` @@ -1182,11 +1151,7 @@ type GetWorkerFullInfoRequest struct { func (m *GetWorkerFullInfoRequest) Reset() { *m = GetWorkerFullInfoRequest{} } func (m *GetWorkerFullInfoRequest) String() string { return proto.CompactTextString(m) } func (*GetWorkerFullInfoRequest) ProtoMessage() {} -<<<<<<< HEAD -func (*GetWorkerFullInfoRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{32} } -======= -func (*GetWorkerFullInfoRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{36} } ->>>>>>> add bestTrialId to statusJob status +func (*GetWorkerFullInfoRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{34} } func (m *GetWorkerFullInfoRequest) GetStudyId() string { if m != nil { @@ -1225,11 +1190,7 @@ type WorkerFullInfo struct { func (m *WorkerFullInfo) Reset() { *m = WorkerFullInfo{} } func (m *WorkerFullInfo) String() string { return proto.CompactTextString(m) } func (*WorkerFullInfo) ProtoMessage() {} -<<<<<<< HEAD -func (*WorkerFullInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{33} } -======= -func (*WorkerFullInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{37} } ->>>>>>> add bestTrialId to statusJob status +func (*WorkerFullInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{35} } func (m *WorkerFullInfo) GetWorker() *Worker { if m != nil { @@ -1259,11 +1220,7 @@ type GetWorkerFullInfoReply struct { func (m *GetWorkerFullInfoReply) Reset() { *m = GetWorkerFullInfoReply{} } func (m *GetWorkerFullInfoReply) String() string { return proto.CompactTextString(m) } func (*GetWorkerFullInfoReply) ProtoMessage() {} -<<<<<<< HEAD -func (*GetWorkerFullInfoReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{34} } -======= -func (*GetWorkerFullInfoReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{38} } ->>>>>>> add bestTrialId to statusJob status +func (*GetWorkerFullInfoReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{36} } func (m *GetWorkerFullInfoReply) GetWorkerFullInfos() []*WorkerFullInfo { if m != nil { @@ -1283,11 +1240,7 @@ type GetSuggestionsRequest struct { func (m *GetSuggestionsRequest) Reset() { *m = GetSuggestionsRequest{} } func (m *GetSuggestionsRequest) String() string { return proto.CompactTextString(m) } func (*GetSuggestionsRequest) ProtoMessage() {} -<<<<<<< HEAD -func (*GetSuggestionsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{35} } -======= -func (*GetSuggestionsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{39} } ->>>>>>> add bestTrialId to statusJob status +func (*GetSuggestionsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{37} } func (m *GetSuggestionsRequest) GetStudyId() string { if m != nil { @@ -1331,11 +1284,7 @@ type GetSuggestionsReply struct { func (m *GetSuggestionsReply) Reset() { *m = GetSuggestionsReply{} } func (m *GetSuggestionsReply) String() string { return proto.CompactTextString(m) } func (*GetSuggestionsReply) ProtoMessage() {} -<<<<<<< HEAD -func (*GetSuggestionsReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{36} } -======= -func (*GetSuggestionsReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{40} } ->>>>>>> add bestTrialId to statusJob status +func (*GetSuggestionsReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{38} } func (m *GetSuggestionsReply) GetTrials() []*Trial { if m != nil { @@ -1353,11 +1302,7 @@ type GetShouldStopWorkersRequest struct { func (m *GetShouldStopWorkersRequest) Reset() { *m = GetShouldStopWorkersRequest{} } func (m *GetShouldStopWorkersRequest) String() string { return proto.CompactTextString(m) } func (*GetShouldStopWorkersRequest) ProtoMessage() {} -<<<<<<< HEAD -func (*GetShouldStopWorkersRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{37} } -======= -func (*GetShouldStopWorkersRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{41} } ->>>>>>> add bestTrialId to statusJob status +func (*GetShouldStopWorkersRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{39} } func (m *GetShouldStopWorkersRequest) GetStudyId() string { if m != nil { @@ -1387,11 +1332,7 @@ type GetShouldStopWorkersReply struct { func (m *GetShouldStopWorkersReply) Reset() { *m = GetShouldStopWorkersReply{} } func (m *GetShouldStopWorkersReply) String() string { return proto.CompactTextString(m) } func (*GetShouldStopWorkersReply) ProtoMessage() {} -<<<<<<< HEAD -func (*GetShouldStopWorkersReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{38} } -======= -func (*GetShouldStopWorkersReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{42} } ->>>>>>> add bestTrialId to statusJob status +func (*GetShouldStopWorkersReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{40} } func (m *GetShouldStopWorkersReply) GetShouldStopWorkerIds() []string { if m != nil { @@ -1409,11 +1350,7 @@ type GetMetricsRequest struct { func (m *GetMetricsRequest) Reset() { *m = GetMetricsRequest{} } func (m *GetMetricsRequest) String() string { return proto.CompactTextString(m) } func (*GetMetricsRequest) ProtoMessage() {} -<<<<<<< HEAD -func (*GetMetricsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{39} } -======= -func (*GetMetricsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{43} } ->>>>>>> add bestTrialId to statusJob status +func (*GetMetricsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{41} } func (m *GetMetricsRequest) GetStudyId() string { if m != nil { @@ -1443,11 +1380,7 @@ type GetMetricsReply struct { func (m *GetMetricsReply) Reset() { *m = GetMetricsReply{} } func (m *GetMetricsReply) String() string { return proto.CompactTextString(m) } func (*GetMetricsReply) ProtoMessage() {} -<<<<<<< HEAD -func (*GetMetricsReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{40} } -======= -func (*GetMetricsReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{44} } ->>>>>>> add bestTrialId to statusJob status +func (*GetMetricsReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{42} } func (m *GetMetricsReply) GetMetricsLogSets() []*MetricsLogSet { if m != nil { @@ -1464,11 +1397,7 @@ type ReportMetricsLogsRequest struct { func (m *ReportMetricsLogsRequest) Reset() { *m = ReportMetricsLogsRequest{} } func (m *ReportMetricsLogsRequest) String() string { return proto.CompactTextString(m) } func (*ReportMetricsLogsRequest) ProtoMessage() {} -<<<<<<< HEAD -func (*ReportMetricsLogsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{41} } -======= -func (*ReportMetricsLogsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{45} } ->>>>>>> add bestTrialId to statusJob status +func (*ReportMetricsLogsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{43} } func (m *ReportMetricsLogsRequest) GetStudyId() string { if m != nil { @@ -1490,11 +1419,7 @@ type ReportMetricsLogsReply struct { func (m *ReportMetricsLogsReply) Reset() { *m = ReportMetricsLogsReply{} } func (m *ReportMetricsLogsReply) String() string { return proto.CompactTextString(m) } func (*ReportMetricsLogsReply) ProtoMessage() {} -<<<<<<< HEAD -func (*ReportMetricsLogsReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{42} } -======= -func (*ReportMetricsLogsReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{46} } ->>>>>>> add bestTrialId to statusJob status +func (*ReportMetricsLogsReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{44} } type ModelInfo struct { StudyName string `protobuf:"bytes,1,opt,name=study_name,json=studyName" json:"study_name,omitempty"` @@ -1507,11 +1432,7 @@ type ModelInfo struct { func (m *ModelInfo) Reset() { *m = ModelInfo{} } func (m *ModelInfo) String() string { return proto.CompactTextString(m) } func (*ModelInfo) ProtoMessage() {} -<<<<<<< HEAD -func (*ModelInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{43} } -======= -func (*ModelInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{47} } ->>>>>>> add bestTrialId to statusJob status +func (*ModelInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{45} } func (m *ModelInfo) GetStudyName() string { if m != nil { @@ -1556,11 +1477,7 @@ type DataSetInfo struct { func (m *DataSetInfo) Reset() { *m = DataSetInfo{} } func (m *DataSetInfo) String() string { return proto.CompactTextString(m) } func (*DataSetInfo) ProtoMessage() {} -<<<<<<< HEAD -func (*DataSetInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{44} } -======= -func (*DataSetInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{48} } ->>>>>>> add bestTrialId to statusJob status +func (*DataSetInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{46} } func (m *DataSetInfo) GetName() string { if m != nil { @@ -1585,11 +1502,7 @@ type SaveStudyRequest struct { func (m *SaveStudyRequest) Reset() { *m = SaveStudyRequest{} } func (m *SaveStudyRequest) String() string { return proto.CompactTextString(m) } func (*SaveStudyRequest) ProtoMessage() {} -<<<<<<< HEAD -func (*SaveStudyRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{45} } -======= -func (*SaveStudyRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{49} } ->>>>>>> add bestTrialId to statusJob status +func (*SaveStudyRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{47} } func (m *SaveStudyRequest) GetStudyName() string { if m != nil { @@ -1618,11 +1531,7 @@ type SaveStudyReply struct { func (m *SaveStudyReply) Reset() { *m = SaveStudyReply{} } func (m *SaveStudyReply) String() string { return proto.CompactTextString(m) } func (*SaveStudyReply) ProtoMessage() {} -<<<<<<< HEAD -func (*SaveStudyReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{46} } -======= -func (*SaveStudyReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{50} } ->>>>>>> add bestTrialId to statusJob status +func (*SaveStudyReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{48} } type SaveModelRequest struct { Model *ModelInfo `protobuf:"bytes,1,opt,name=model" json:"model,omitempty"` @@ -1633,11 +1542,7 @@ type SaveModelRequest struct { func (m *SaveModelRequest) Reset() { *m = SaveModelRequest{} } func (m *SaveModelRequest) String() string { return proto.CompactTextString(m) } func (*SaveModelRequest) ProtoMessage() {} -<<<<<<< HEAD -func (*SaveModelRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{47} } -======= -func (*SaveModelRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{51} } ->>>>>>> add bestTrialId to statusJob status +func (*SaveModelRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{49} } func (m *SaveModelRequest) GetModel() *ModelInfo { if m != nil { @@ -1666,11 +1571,7 @@ type SaveModelReply struct { func (m *SaveModelReply) Reset() { *m = SaveModelReply{} } func (m *SaveModelReply) String() string { return proto.CompactTextString(m) } func (*SaveModelReply) ProtoMessage() {} -<<<<<<< HEAD -func (*SaveModelReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{48} } -======= -func (*SaveModelReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{52} } ->>>>>>> add bestTrialId to statusJob status +func (*SaveModelReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{50} } type GetSavedStudiesRequest struct { } @@ -1678,11 +1579,7 @@ type GetSavedStudiesRequest struct { func (m *GetSavedStudiesRequest) Reset() { *m = GetSavedStudiesRequest{} } func (m *GetSavedStudiesRequest) String() string { return proto.CompactTextString(m) } func (*GetSavedStudiesRequest) ProtoMessage() {} -<<<<<<< HEAD -func (*GetSavedStudiesRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{49} } -======= -func (*GetSavedStudiesRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{53} } ->>>>>>> add bestTrialId to statusJob status +func (*GetSavedStudiesRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{51} } type GetSavedStudiesReply struct { Studies []*StudyOverview `protobuf:"bytes,1,rep,name=studies" json:"studies,omitempty"` @@ -1691,11 +1588,7 @@ type GetSavedStudiesReply struct { func (m *GetSavedStudiesReply) Reset() { *m = GetSavedStudiesReply{} } func (m *GetSavedStudiesReply) String() string { return proto.CompactTextString(m) } func (*GetSavedStudiesReply) ProtoMessage() {} -<<<<<<< HEAD -func (*GetSavedStudiesReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{50} } -======= -func (*GetSavedStudiesReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{54} } ->>>>>>> add bestTrialId to statusJob status +func (*GetSavedStudiesReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{52} } func (m *GetSavedStudiesReply) GetStudies() []*StudyOverview { if m != nil { @@ -1711,11 +1604,7 @@ type GetSavedModelsRequest struct { func (m *GetSavedModelsRequest) Reset() { *m = GetSavedModelsRequest{} } func (m *GetSavedModelsRequest) String() string { return proto.CompactTextString(m) } func (*GetSavedModelsRequest) ProtoMessage() {} -<<<<<<< HEAD -func (*GetSavedModelsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{51} } -======= -func (*GetSavedModelsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{55} } ->>>>>>> add bestTrialId to statusJob status +func (*GetSavedModelsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{53} } func (m *GetSavedModelsRequest) GetStudyName() string { if m != nil { @@ -1731,11 +1620,7 @@ type GetSavedModelsReply struct { func (m *GetSavedModelsReply) Reset() { *m = GetSavedModelsReply{} } func (m *GetSavedModelsReply) String() string { return proto.CompactTextString(m) } func (*GetSavedModelsReply) ProtoMessage() {} -<<<<<<< HEAD -func (*GetSavedModelsReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{52} } -======= -func (*GetSavedModelsReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{56} } ->>>>>>> add bestTrialId to statusJob status +func (*GetSavedModelsReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{54} } func (m *GetSavedModelsReply) GetModels() []*ModelInfo { if m != nil { @@ -1752,11 +1637,7 @@ type GetSavedModelRequest struct { func (m *GetSavedModelRequest) Reset() { *m = GetSavedModelRequest{} } func (m *GetSavedModelRequest) String() string { return proto.CompactTextString(m) } func (*GetSavedModelRequest) ProtoMessage() {} -<<<<<<< HEAD -func (*GetSavedModelRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{53} } -======= -func (*GetSavedModelRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{57} } ->>>>>>> add bestTrialId to statusJob status +func (*GetSavedModelRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{55} } func (m *GetSavedModelRequest) GetStudyName() string { if m != nil { @@ -1779,11 +1660,7 @@ type GetSavedModelReply struct { func (m *GetSavedModelReply) Reset() { *m = GetSavedModelReply{} } func (m *GetSavedModelReply) String() string { return proto.CompactTextString(m) } func (*GetSavedModelReply) ProtoMessage() {} -<<<<<<< HEAD -func (*GetSavedModelReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{54} } -======= -func (*GetSavedModelReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{58} } ->>>>>>> add bestTrialId to statusJob status +func (*GetSavedModelReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{56} } func (m *GetSavedModelReply) GetModel() *ModelInfo { if m != nil { @@ -1802,11 +1679,7 @@ type SetSuggestionParametersRequest struct { func (m *SetSuggestionParametersRequest) Reset() { *m = SetSuggestionParametersRequest{} } func (m *SetSuggestionParametersRequest) String() string { return proto.CompactTextString(m) } func (*SetSuggestionParametersRequest) ProtoMessage() {} -<<<<<<< HEAD -func (*SetSuggestionParametersRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{55} } -======= -func (*SetSuggestionParametersRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{59} } ->>>>>>> add bestTrialId to statusJob status +func (*SetSuggestionParametersRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{57} } func (m *SetSuggestionParametersRequest) GetStudyId() string { if m != nil { @@ -1843,11 +1716,7 @@ type SetSuggestionParametersReply struct { func (m *SetSuggestionParametersReply) Reset() { *m = SetSuggestionParametersReply{} } func (m *SetSuggestionParametersReply) String() string { return proto.CompactTextString(m) } func (*SetSuggestionParametersReply) ProtoMessage() {} -<<<<<<< HEAD -func (*SetSuggestionParametersReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{56} } -======= -func (*SetSuggestionParametersReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{60} } ->>>>>>> add bestTrialId to statusJob status +func (*SetSuggestionParametersReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{58} } func (m *SetSuggestionParametersReply) GetParamId() string { if m != nil { @@ -1863,11 +1732,7 @@ type GetSuggestionParametersRequest struct { func (m *GetSuggestionParametersRequest) Reset() { *m = GetSuggestionParametersRequest{} } func (m *GetSuggestionParametersRequest) String() string { return proto.CompactTextString(m) } func (*GetSuggestionParametersRequest) ProtoMessage() {} -<<<<<<< HEAD -func (*GetSuggestionParametersRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{57} } -======= -func (*GetSuggestionParametersRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{61} } ->>>>>>> add bestTrialId to statusJob status +func (*GetSuggestionParametersRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{59} } func (m *GetSuggestionParametersRequest) GetParamId() string { if m != nil { @@ -1883,11 +1748,7 @@ type GetSuggestionParametersReply struct { func (m *GetSuggestionParametersReply) Reset() { *m = GetSuggestionParametersReply{} } func (m *GetSuggestionParametersReply) String() string { return proto.CompactTextString(m) } func (*GetSuggestionParametersReply) ProtoMessage() {} -<<<<<<< HEAD -func (*GetSuggestionParametersReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{58} } -======= -func (*GetSuggestionParametersReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{62} } ->>>>>>> add bestTrialId to statusJob status +func (*GetSuggestionParametersReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{60} } func (m *GetSuggestionParametersReply) GetSuggestionParameters() []*SuggestionParameter { if m != nil { @@ -1904,11 +1765,7 @@ func (m *GetSuggestionParameterListRequest) Reset() { *m = GetSuggestion func (m *GetSuggestionParameterListRequest) String() string { return proto.CompactTextString(m) } func (*GetSuggestionParameterListRequest) ProtoMessage() {} func (*GetSuggestionParameterListRequest) Descriptor() ([]byte, []int) { -<<<<<<< HEAD - return fileDescriptor0, []int{59} -======= - return fileDescriptor0, []int{63} ->>>>>>> add bestTrialId to statusJob status + return fileDescriptor0, []int{61} } func (m *GetSuggestionParameterListRequest) GetStudyId() string { @@ -1927,11 +1784,7 @@ type SuggestionParameterSet struct { func (m *SuggestionParameterSet) Reset() { *m = SuggestionParameterSet{} } func (m *SuggestionParameterSet) String() string { return proto.CompactTextString(m) } func (*SuggestionParameterSet) ProtoMessage() {} -<<<<<<< HEAD -func (*SuggestionParameterSet) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{60} } -======= -func (*SuggestionParameterSet) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{64} } ->>>>>>> add bestTrialId to statusJob status +func (*SuggestionParameterSet) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{62} } func (m *SuggestionParameterSet) GetParamId() string { if m != nil { @@ -1962,11 +1815,7 @@ func (m *GetSuggestionParameterListReply) Reset() { *m = GetSuggestionPa func (m *GetSuggestionParameterListReply) String() string { return proto.CompactTextString(m) } func (*GetSuggestionParameterListReply) ProtoMessage() {} func (*GetSuggestionParameterListReply) Descriptor() ([]byte, []int) { -<<<<<<< HEAD - return fileDescriptor0, []int{61} -======= - return fileDescriptor0, []int{65} ->>>>>>> add bestTrialId to statusJob status + return fileDescriptor0, []int{63} } func (m *GetSuggestionParameterListReply) GetSuggestionParameterSets() []*SuggestionParameterSet { @@ -1983,11 +1832,7 @@ type StopSuggestionRequest struct { func (m *StopSuggestionRequest) Reset() { *m = StopSuggestionRequest{} } func (m *StopSuggestionRequest) String() string { return proto.CompactTextString(m) } func (*StopSuggestionRequest) ProtoMessage() {} -<<<<<<< HEAD -func (*StopSuggestionRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{62} } -======= -func (*StopSuggestionRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{66} } ->>>>>>> add bestTrialId to statusJob status +func (*StopSuggestionRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{64} } func (m *StopSuggestionRequest) GetStudyId() string { if m != nil { @@ -2002,11 +1847,7 @@ type StopSuggestionReply struct { func (m *StopSuggestionReply) Reset() { *m = StopSuggestionReply{} } func (m *StopSuggestionReply) String() string { return proto.CompactTextString(m) } func (*StopSuggestionReply) ProtoMessage() {} -<<<<<<< HEAD -func (*StopSuggestionReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{63} } -======= -func (*StopSuggestionReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{67} } ->>>>>>> add bestTrialId to statusJob status +func (*StopSuggestionReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{65} } type SetEarlyStoppingParametersRequest struct { StudyId string `protobuf:"bytes,1,opt,name=study_id,json=studyId" json:"study_id,omitempty"` @@ -2019,11 +1860,7 @@ func (m *SetEarlyStoppingParametersRequest) Reset() { *m = SetEarlyStopp func (m *SetEarlyStoppingParametersRequest) String() string { return proto.CompactTextString(m) } func (*SetEarlyStoppingParametersRequest) ProtoMessage() {} func (*SetEarlyStoppingParametersRequest) Descriptor() ([]byte, []int) { -<<<<<<< HEAD - return fileDescriptor0, []int{64} -======= - return fileDescriptor0, []int{68} ->>>>>>> add bestTrialId to statusJob status + return fileDescriptor0, []int{66} } func (m *SetEarlyStoppingParametersRequest) GetStudyId() string { @@ -2062,11 +1899,7 @@ func (m *SetEarlyStoppingParametersReply) Reset() { *m = SetEarlyStoppin func (m *SetEarlyStoppingParametersReply) String() string { return proto.CompactTextString(m) } func (*SetEarlyStoppingParametersReply) ProtoMessage() {} func (*SetEarlyStoppingParametersReply) Descriptor() ([]byte, []int) { -<<<<<<< HEAD - return fileDescriptor0, []int{65} -======= - return fileDescriptor0, []int{69} ->>>>>>> add bestTrialId to statusJob status + return fileDescriptor0, []int{67} } func (m *SetEarlyStoppingParametersReply) GetParamId() string { @@ -2084,11 +1917,7 @@ func (m *GetEarlyStoppingParametersRequest) Reset() { *m = GetEarlyStopp func (m *GetEarlyStoppingParametersRequest) String() string { return proto.CompactTextString(m) } func (*GetEarlyStoppingParametersRequest) ProtoMessage() {} func (*GetEarlyStoppingParametersRequest) Descriptor() ([]byte, []int) { -<<<<<<< HEAD - return fileDescriptor0, []int{66} -======= - return fileDescriptor0, []int{70} ->>>>>>> add bestTrialId to statusJob status + return fileDescriptor0, []int{68} } func (m *GetEarlyStoppingParametersRequest) GetParamId() string { @@ -2106,11 +1935,7 @@ func (m *GetEarlyStoppingParametersReply) Reset() { *m = GetEarlyStoppin func (m *GetEarlyStoppingParametersReply) String() string { return proto.CompactTextString(m) } func (*GetEarlyStoppingParametersReply) ProtoMessage() {} func (*GetEarlyStoppingParametersReply) Descriptor() ([]byte, []int) { -<<<<<<< HEAD - return fileDescriptor0, []int{67} -======= - return fileDescriptor0, []int{71} ->>>>>>> add bestTrialId to statusJob status + return fileDescriptor0, []int{69} } func (m *GetEarlyStoppingParametersReply) GetEarlyStoppingParameters() []*EarlyStoppingParameter { @@ -2128,11 +1953,7 @@ func (m *GetEarlyStoppingParameterListRequest) Reset() { *m = GetEarlySt func (m *GetEarlyStoppingParameterListRequest) String() string { return proto.CompactTextString(m) } func (*GetEarlyStoppingParameterListRequest) ProtoMessage() {} func (*GetEarlyStoppingParameterListRequest) Descriptor() ([]byte, []int) { -<<<<<<< HEAD - return fileDescriptor0, []int{68} -======= - return fileDescriptor0, []int{72} ->>>>>>> add bestTrialId to statusJob status + return fileDescriptor0, []int{70} } func (m *GetEarlyStoppingParameterListRequest) GetStudyId() string { @@ -2151,11 +1972,7 @@ type EarlyStoppingParameterSet struct { func (m *EarlyStoppingParameterSet) Reset() { *m = EarlyStoppingParameterSet{} } func (m *EarlyStoppingParameterSet) String() string { return proto.CompactTextString(m) } func (*EarlyStoppingParameterSet) ProtoMessage() {} -<<<<<<< HEAD -func (*EarlyStoppingParameterSet) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{69} } -======= -func (*EarlyStoppingParameterSet) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{73} } ->>>>>>> add bestTrialId to statusJob status +func (*EarlyStoppingParameterSet) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{71} } func (m *EarlyStoppingParameterSet) GetParamId() string { if m != nil { @@ -2186,11 +2003,7 @@ func (m *GetEarlyStoppingParameterListReply) Reset() { *m = GetEarlyStop func (m *GetEarlyStoppingParameterListReply) String() string { return proto.CompactTextString(m) } func (*GetEarlyStoppingParameterListReply) ProtoMessage() {} func (*GetEarlyStoppingParameterListReply) Descriptor() ([]byte, []int) { -<<<<<<< HEAD - return fileDescriptor0, []int{70} -======= - return fileDescriptor0, []int{74} ->>>>>>> add bestTrialId to statusJob status + return fileDescriptor0, []int{72} } func (m *GetEarlyStoppingParameterListReply) GetEarlyStoppingParameterSets() []*EarlyStoppingParameterSet { @@ -2308,24 +2121,21 @@ type ManagerClient interface { // * // Get a Trial Configs from DB by ID of Study. GetTrials(ctx context.Context, in *GetTrialsRequest, opts ...grpc.CallOption) (*GetTrialsReply, error) -<<<<<<< HEAD // * - // Create a Worker from Worker Config. - // Generate a unique ID and store the Worker to DB. -======= - // // Get a Trial Configuration from DB by ID of Trial. GetTrial(ctx context.Context, in *GetTrialRequest, opts ...grpc.CallOption) (*GetTrialReply, error) ->>>>>>> add bestTrialId to statusJob status + // * + // Create a Worker from Worker Config. + // Generate a unique ID and store the Worker to DB. RegisterWorker(ctx context.Context, in *RegisterWorkerRequest, opts ...grpc.CallOption) (*RegisterWorkerReply, error) // * - // Get a Worker Configs and Statuses from DB by ID of Study, Trial or Worker. + // Get a Worker Configs and Status from DB by ID of Study, Trial or Worker. GetWorkers(ctx context.Context, in *GetWorkersRequest, opts ...grpc.CallOption) (*GetWorkersReply, error) // * // Update a Status of Worker. UpdateWorkerState(ctx context.Context, in *UpdateWorkerStateRequest, opts ...grpc.CallOption) (*UpdateWorkerStateReply, error) // * - // Get a full informations related to specified Workers. + // Get full information related to specified Workers. // It includes Worker Config, HyperParameters and Metrics Logs. GetWorkerFullInfo(ctx context.Context, in *GetWorkerFullInfoRequest, opts ...grpc.CallOption) (*GetWorkerFullInfoReply, error) // * @@ -2338,8 +2148,8 @@ type ManagerClient interface { GetMetrics(ctx context.Context, in *GetMetricsRequest, opts ...grpc.CallOption) (*GetMetricsReply, error) // * // Create or Update parameter set for a suggestion service. - // When you specified a ID of parameter set, it will update the parameter set by your request. - // When you specified no ID, it will create a new parameter set for corresponding study and suggestion service. + // If you specify an ID of parameter set, it will update the parameter set by your request. + // If you don't specify an ID, it will create a new parameter set for corresponding study and suggestion service. // The parameters are key-value format. SetSuggestionParameters(ctx context.Context, in *SetSuggestionParametersRequest, opts ...grpc.CallOption) (*SetSuggestionParametersReply, error) // * @@ -2606,24 +2416,21 @@ type ManagerServer interface { // * // Get a Trial Configs from DB by ID of Study. GetTrials(context.Context, *GetTrialsRequest) (*GetTrialsReply, error) -<<<<<<< HEAD // * - // Create a Worker from Worker Config. - // Generate a unique ID and store the Worker to DB. -======= - // // Get a Trial Configuration from DB by ID of Trial. GetTrial(context.Context, *GetTrialRequest) (*GetTrialReply, error) ->>>>>>> add bestTrialId to statusJob status + // * + // Create a Worker from Worker Config. + // Generate a unique ID and store the Worker to DB. RegisterWorker(context.Context, *RegisterWorkerRequest) (*RegisterWorkerReply, error) // * - // Get a Worker Configs and Statuses from DB by ID of Study, Trial or Worker. + // Get a Worker Configs and Status from DB by ID of Study, Trial or Worker. GetWorkers(context.Context, *GetWorkersRequest) (*GetWorkersReply, error) // * // Update a Status of Worker. UpdateWorkerState(context.Context, *UpdateWorkerStateRequest) (*UpdateWorkerStateReply, error) // * - // Get a full informations related to specified Workers. + // Get full information related to specified Workers. // It includes Worker Config, HyperParameters and Metrics Logs. GetWorkerFullInfo(context.Context, *GetWorkerFullInfoRequest) (*GetWorkerFullInfoReply, error) // * @@ -2636,8 +2443,8 @@ type ManagerServer interface { GetMetrics(context.Context, *GetMetricsRequest) (*GetMetricsReply, error) // * // Create or Update parameter set for a suggestion service. - // When you specified a ID of parameter set, it will update the parameter set by your request. - // When you specified no ID, it will create a new parameter set for corresponding study and suggestion service. + // If you specify an ID of parameter set, it will update the parameter set by your request. + // If you don't specify an ID, it will create a new parameter set for corresponding study and suggestion service. // The parameters are key-value format. SetSuggestionParameters(context.Context, *SetSuggestionParametersRequest) (*SetSuggestionParametersReply, error) // * @@ -3332,363 +3139,182 @@ var _EarlyStopping_serviceDesc = grpc.ServiceDesc{ func init() { proto.RegisterFile("api.proto", fileDescriptor0) } var fileDescriptor0 = []byte{ -<<<<<<< HEAD - // 2783 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x5a, 0x4b, 0x73, 0x1b, 0xc7, - 0xf1, 0xf7, 0x02, 0x7c, 0xa1, 0x41, 0x80, 0xe0, 0xf0, 0xb5, 0x04, 0x1f, 0x22, 0x47, 0xb4, 0x44, - 0xeb, 0x41, 0xda, 0x90, 0x2d, 0x5b, 0xb4, 0xfc, 0x77, 0x51, 0x24, 0x85, 0x3f, 0xca, 0x24, 0xc8, - 0x5a, 0x40, 0xa1, 0x1f, 0x55, 0x46, 0x2d, 0x89, 0x21, 0xb4, 0x16, 0x80, 0xdd, 0x60, 0x97, 0x92, - 0x29, 0x97, 0x2f, 0xb9, 0x24, 0x97, 0x54, 0x39, 0x49, 0xe5, 0x92, 0x83, 0x73, 0xcb, 0x07, 0x48, - 0x55, 0x0e, 0xb9, 0xe4, 0x9e, 0x43, 0x4e, 0xa9, 0x54, 0xe5, 0x03, 0xe4, 0x96, 0x7c, 0x88, 0xd4, - 0x3c, 0x76, 0x77, 0x76, 0xb1, 0xbb, 0x84, 0x29, 0x2b, 0x37, 0xcc, 0x4c, 0x3f, 0x7e, 0xdd, 0xd3, - 0xdd, 0xd3, 0xdb, 0x24, 0x64, 0x74, 0xcb, 0xd8, 0xb0, 0x7a, 0xa6, 0x63, 0xa2, 0xb4, 0x6e, 0x19, - 0xc5, 0xc5, 0x96, 0x69, 0xb6, 0xda, 0x64, 0x53, 0xb7, 0x8c, 0x4d, 0xbd, 0xdb, 0x35, 0x1d, 0xdd, - 0x31, 0xcc, 0xae, 0xcd, 0x49, 0x70, 0x19, 0x72, 0x8f, 0x89, 0x6e, 0x1b, 0x27, 0x6d, 0x52, 0xb3, - 0xf4, 0x53, 0x82, 0x0a, 0x90, 0xee, 0xe8, 0x5f, 0xab, 0xca, 0x8a, 0xb2, 0x9e, 0xd1, 0xe8, 0x4f, - 0xb6, 0x63, 0x74, 0xd5, 0x94, 0xd8, 0x31, 0xba, 0x08, 0xc1, 0x50, 0xdb, 0xb0, 0x1d, 0x35, 0xbd, - 0x92, 0x5e, 0xcf, 0x68, 0xec, 0x37, 0xfe, 0x4e, 0x81, 0x89, 0x23, 0xbd, 0xa7, 0x77, 0x88, 0x43, - 0x7a, 0x3b, 0x66, 0xf7, 0xcc, 0x68, 0x51, 0xba, 0xae, 0xde, 0x21, 0x42, 0x18, 0xfb, 0x8d, 0x1e, - 0x40, 0xde, 0x72, 0xc9, 0x1a, 0xce, 0x85, 0x45, 0x98, 0xe0, 0x7c, 0x09, 0x6d, 0x50, 0xdc, 0x9e, - 0x84, 0xfa, 0x85, 0x45, 0xb4, 0x9c, 0x25, 0x2f, 0xd1, 0x06, 0x8c, 0x9d, 0x09, 0xac, 0x6a, 0x7a, - 0x45, 0x59, 0xcf, 0x0a, 0xa6, 0x80, 0x01, 0x9a, 0x47, 0x83, 0x2d, 0xc8, 0x78, 0xf2, 0x7e, 0x6c, - 0x2c, 0xd3, 0x30, 0xfc, 0x5c, 0x6f, 0x9f, 0x73, 0x20, 0x19, 0x8d, 0x2f, 0xf0, 0xaf, 0x14, 0xc8, - 0x1d, 0x10, 0xa7, 0x67, 0x9c, 0xda, 0xfb, 0x66, 0xab, 0x46, 0x1c, 0xb4, 0x00, 0x99, 0x17, 0x66, - 0xef, 0x19, 0xe9, 0x35, 0x8c, 0xa6, 0xd0, 0x3d, 0xc6, 0x37, 0x2a, 0x4d, 0x54, 0x82, 0xf1, 0x0e, - 0xa7, 0x6e, 0xb4, 0xcd, 0x96, 0xad, 0xa6, 0x56, 0xd2, 0xeb, 0xd9, 0xd2, 0x04, 0xd3, 0xee, 0x8b, - 0xd1, 0xb2, 0x1d, 0xef, 0xb7, 0x8d, 0x36, 0x21, 0x27, 0x04, 0xda, 0x8e, 0xee, 0x9c, 0xdb, 0x0c, - 0x40, 0xbe, 0x04, 0x8c, 0xa9, 0xe6, 0xe8, 0x0e, 0xd1, 0xc6, 0x39, 0x41, 0x8d, 0x9d, 0xe3, 0x7b, - 0x30, 0x2a, 0x64, 0x45, 0xfa, 0xc0, 0x33, 0x24, 0x25, 0x1b, 0xf2, 0x10, 0x0a, 0x82, 0xe9, 0x27, - 0x74, 0x5d, 0x37, 0x3a, 0x84, 0x72, 0x3b, 0x86, 0xcf, 0x4d, 0x7f, 0xc7, 0x70, 0x1f, 0x02, 0xf8, - 0xf0, 0x23, 0xb5, 0xde, 0x85, 0x11, 0x46, 0xea, 0xda, 0x3c, 0x23, 0xdb, 0xec, 0xa9, 0xd4, 0x04, - 0x11, 0xfe, 0x18, 0xa6, 0x6a, 0xe7, 0xad, 0x16, 0xb1, 0x69, 0xe8, 0x26, 0xdf, 0x69, 0x34, 0xa2, - 0x47, 0x30, 0xbb, 0xa7, 0xf7, 0xda, 0x17, 0x35, 0xc7, 0xb4, 0x2c, 0xa3, 0xdb, 0xba, 0x8a, 0x8c, - 0x4d, 0x48, 0xd7, 0xf5, 0xd6, 0x0f, 0x60, 0x78, 0x06, 0xb9, 0x9a, 0x73, 0xde, 0xbc, 0x38, 0x7c, - 0x4e, 0x7a, 0xcf, 0x0d, 0xf2, 0x22, 0x8e, 0xd5, 0x7c, 0xd1, 0x25, 0x3d, 0x97, 0x95, 0x2d, 0x50, - 0x1e, 0x52, 0x46, 0x53, 0xc4, 0x56, 0xca, 0x68, 0xa2, 0x15, 0xc8, 0x36, 0x89, 0x7d, 0xda, 0x33, - 0x2c, 0xea, 0x01, 0x75, 0x88, 0x1d, 0xc8, 0x5b, 0xf8, 0xcf, 0x0a, 0x0c, 0xd7, 0x7b, 0x86, 0xde, - 0x46, 0xf3, 0x30, 0xe6, 0xd0, 0x1f, 0x7e, 0xc4, 0x8d, 0xb2, 0x75, 0xa5, 0x49, 0x8f, 0x6c, 0x8a, - 0x88, 0x1e, 0x71, 0x7d, 0xa3, 0x6c, 0x5d, 0x69, 0xa2, 0x7b, 0xe0, 0x47, 0x78, 0xc3, 0x26, 0x3c, - 0xb9, 0xb3, 0xa5, 0x7c, 0x30, 0x15, 0xb4, 0x71, 0x8f, 0x88, 0x46, 0xf7, 0x4d, 0x98, 0x30, 0x4f, - 0xbe, 0x22, 0xa7, 0x8e, 0xf1, 0x9c, 0x34, 0xb8, 0x07, 0x38, 0xb4, 0xbc, 0xb7, 0xcd, 0x2e, 0x13, - 0x2d, 0xc2, 0x90, 0xa3, 0xb7, 0x6c, 0x75, 0x98, 0x09, 0x1d, 0x63, 0x42, 0xeb, 0x7a, 0x4b, 0x63, - 0xbb, 0xf8, 0x1f, 0x0a, 0x8c, 0x1c, 0xb3, 0x98, 0x4d, 0xce, 0x97, 0x04, 0xf8, 0xb2, 0xd1, 0xe9, - 0xa0, 0xd1, 0x08, 0x86, 0x68, 0xca, 0x0a, 0x64, 0xec, 0x37, 0xc2, 0x30, 0x22, 0xd2, 0x67, 0xb8, - 0x2f, 0x7d, 0xc4, 0x09, 0xc2, 0x30, 0x5e, 0x27, 0x1d, 0xab, 0xad, 0x3b, 0xe4, 0x48, 0x77, 0x9e, - 0xaa, 0x23, 0x8c, 0x3f, 0xb0, 0xe7, 0xd9, 0x35, 0x1a, 0x69, 0xd7, 0xbf, 0xd3, 0x90, 0x65, 0x11, - 0x90, 0x50, 0x0f, 0xa3, 0xef, 0xff, 0x11, 0x4c, 0x9a, 0x96, 0x63, 0x74, 0x8c, 0x97, 0xac, 0x5a, - 0xf3, 0xe2, 0xc4, 0x33, 0x9d, 0xa7, 0xca, 0xa1, 0x74, 0xca, 0xea, 0x53, 0xc1, 0x0c, 0xed, 0xa0, - 0xdb, 0x21, 0x19, 0x2d, 0x53, 0x6f, 0x33, 0x27, 0x28, 0x41, 0xe2, 0xb2, 0xa9, 0xb7, 0x51, 0x15, - 0x26, 0xfd, 0xeb, 0x3f, 0x65, 0x70, 0xb9, 0x6f, 0xb2, 0xa5, 0x55, 0xe1, 0x1b, 0xcf, 0x8e, 0x8d, - 0x50, 0x9d, 0xb7, 0xb5, 0x82, 0x15, 0xda, 0x41, 0x77, 0x01, 0xe9, 0xa7, 0xa7, 0xc4, 0xb6, 0x1b, - 0x16, 0xe9, 0x75, 0x0c, 0xdb, 0xa6, 0x6f, 0x8e, 0x3a, 0xc2, 0x1e, 0x8c, 0x49, 0x7e, 0x72, 0xe4, - 0x1f, 0x24, 0xfb, 0x11, 0xbd, 0x0d, 0xd3, 0xa1, 0x30, 0x6b, 0x30, 0x3f, 0x8e, 0x31, 0x97, 0xa1, - 0x60, 0xac, 0x55, 0xa9, 0x57, 0x55, 0x18, 0x15, 0x45, 0x53, 0xcd, 0x30, 0x9d, 0xee, 0x92, 0xfa, - 0xfb, 0x2b, 0xf3, 0xa4, 0xd2, 0x54, 0x81, 0xfb, 0x9b, 0x2d, 0x8a, 0x8f, 0xa0, 0x10, 0x36, 0x0a, - 0x6d, 0xc0, 0xa8, 0xeb, 0x08, 0x85, 0xc1, 0x9a, 0x0e, 0xe6, 0x02, 0xa7, 0xd3, 0x5c, 0x22, 0x5c, - 0x01, 0xb4, 0xd3, 0x23, 0xba, 0x43, 0x98, 0xab, 0x34, 0xf2, 0xd3, 0x73, 0x62, 0x3b, 0xe8, 0x1e, - 0x8c, 0xf3, 0x98, 0xe5, 0x64, 0xec, 0xee, 0xb3, 0xa5, 0x42, 0xd8, 0xa7, 0x5a, 0xd6, 0xf6, 0x17, - 0xf8, 0x2e, 0x14, 0x02, 0xa2, 0xac, 0xf6, 0x45, 0x20, 0xf8, 0x95, 0x40, 0xf0, 0xe3, 0x3b, 0x30, - 0x51, 0x26, 0x4e, 0x40, 0x6d, 0x02, 0xf5, 0x2e, 0xe4, 0x7c, 0x6a, 0x2a, 0xf9, 0x4a, 0x10, 0x67, - 0x60, 0xca, 0x95, 0xb2, 0x6f, 0xd8, 0x8e, 0xd0, 0x8b, 0x8f, 0x60, 0x32, 0xb8, 0x4d, 0x15, 0x7c, - 0x08, 0x13, 0x5c, 0x81, 0x29, 0x2a, 0xa1, 0xeb, 0x51, 0xe4, 0xeb, 0x70, 0x8b, 0xa4, 0x96, 0xb7, - 0xe5, 0xa5, 0x8d, 0xef, 0xbb, 0x6e, 0x65, 0xd5, 0xcd, 0xb5, 0x6f, 0x05, 0x86, 0x59, 0x7e, 0x0b, - 0xb0, 0x3c, 0x7f, 0x39, 0x05, 0x3f, 0xf0, 0x7d, 0x28, 0xf8, 0x84, 0x0f, 0x63, 0x4a, 0x23, 0x25, - 0x2f, 0x13, 0x87, 0xd1, 0xda, 0x03, 0x38, 0xf1, 0x5d, 0xc8, 0x4b, 0xe4, 0x54, 0x36, 0x86, 0x11, - 0x26, 0xcb, 0xb5, 0x4d, 0x86, 0x24, 0x4e, 0xf0, 0x43, 0x98, 0xd1, 0x48, 0xcb, 0xb0, 0x1d, 0xd2, - 0xe3, 0xf5, 0xce, 0xd5, 0x74, 0x1d, 0x46, 0x78, 0x95, 0x13, 0xf6, 0x64, 0x19, 0xb3, 0xa0, 0x11, - 0x47, 0xb8, 0x04, 0x53, 0x61, 0x6e, 0xaa, 0x38, 0xa9, 0x64, 0x62, 0x13, 0x10, 0x7d, 0xf3, 0x38, - 0xfd, 0x00, 0x86, 0xa1, 0x25, 0x00, 0x4f, 0x1a, 0x7f, 0x9d, 0x33, 0x5a, 0xc6, 0x15, 0x67, 0xa3, - 0x6b, 0x90, 0x35, 0xec, 0xc6, 0xa9, 0xd9, 0xb1, 0xda, 0xc4, 0xe1, 0x25, 0x69, 0x4c, 0x03, 0xc3, - 0xde, 0x11, 0x3b, 0x18, 0x41, 0x21, 0xa0, 0xd0, 0x6a, 0x5f, 0xe0, 0x33, 0x16, 0x14, 0x83, 0x63, - 0x90, 0xaf, 0x29, 0x15, 0x2c, 0xe6, 0x01, 0x63, 0xd3, 0x21, 0x63, 0x3f, 0x60, 0x79, 0x20, 0xab, - 0x46, 0x6f, 0xc2, 0x28, 0x3f, 0x76, 0xaf, 0x25, 0xe0, 0x59, 0xf7, 0x0c, 0x7f, 0x01, 0xea, 0x13, - 0xab, 0xa9, 0x3b, 0xe4, 0xd8, 0x6b, 0x9d, 0x88, 0x0b, 0x34, 0xf1, 0x49, 0xf2, 0x1f, 0x92, 0x54, - 0xdc, 0x43, 0x82, 0x55, 0x98, 0x8d, 0x10, 0x4e, 0x1d, 0xf3, 0x5b, 0x05, 0x54, 0x0f, 0xf1, 0xe3, - 0xf3, 0x76, 0xbb, 0xd2, 0x3d, 0x33, 0x5f, 0x9f, 0x83, 0xd0, 0x0d, 0x98, 0x30, 0xbb, 0xed, 0x8b, - 0x06, 0x7d, 0xbf, 0x6c, 0x87, 0x36, 0x9d, 0xec, 0x41, 0x18, 0xd3, 0x72, 0x74, 0x7b, 0x9f, 0xed, - 0xee, 0x9b, 0x2d, 0xfc, 0xbd, 0x02, 0xf9, 0x20, 0x28, 0x1a, 0xa1, 0xc7, 0xf1, 0x11, 0x2a, 0x5e, - 0xef, 0xbe, 0x26, 0x22, 0x35, 0x40, 0x13, 0x11, 0xee, 0x82, 0xd3, 0x97, 0x77, 0xc1, 0xf8, 0x33, - 0x98, 0x8d, 0xf0, 0x1b, 0xbd, 0xf0, 0x8f, 0x61, 0x52, 0xd8, 0x7f, 0x76, 0xde, 0x6e, 0x37, 0x8c, - 0xee, 0x99, 0xe9, 0x5e, 0xfd, 0x94, 0x04, 0xd9, 0x63, 0x9a, 0x78, 0x11, 0x58, 0xdb, 0xf8, 0x6f, - 0x0a, 0xcc, 0xd0, 0x12, 0xe6, 0xf5, 0x9b, 0x83, 0x44, 0xec, 0x3b, 0x30, 0x6d, 0x7b, 0x0c, 0x0d, - 0xbd, 0xdd, 0x32, 0x7b, 0x86, 0xf3, 0xb4, 0x23, 0x2e, 0x67, 0xca, 0x3f, 0xdb, 0x76, 0x8f, 0xd0, - 0x9b, 0x90, 0xef, 0x71, 0xc1, 0x8d, 0xee, 0x79, 0xe7, 0x84, 0xf4, 0xd8, 0x6d, 0x0d, 0x6b, 0x39, - 0xb1, 0x5b, 0x65, 0x9b, 0x68, 0x0d, 0xf2, 0x6d, 0xb3, 0xd5, 0x90, 0x72, 0x72, 0x88, 0xe5, 0xe4, - 0x78, 0xdb, 0x6c, 0x1d, 0x7b, 0x69, 0x39, 0x0f, 0x63, 0xcc, 0xa7, 0x14, 0xda, 0x30, 0x87, 0xc6, - 0xd6, 0x95, 0x26, 0x7e, 0xc0, 0x0b, 0xb5, 0x6c, 0xce, 0xa0, 0xe5, 0xea, 0x97, 0x0a, 0x2c, 0x50, - 0xde, 0xa7, 0xe6, 0x79, 0xbb, 0xf9, 0xc3, 0xca, 0xc8, 0x07, 0xa0, 0x12, 0xda, 0x70, 0x37, 0x6c, - 0xd1, 0x71, 0xf7, 0x39, 0x65, 0x96, 0xc8, 0x0d, 0xb9, 0xef, 0x97, 0x04, 0x53, 0x8e, 0x60, 0x3e, - 0x1a, 0x0e, 0x7f, 0xc5, 0x66, 0x6d, 0x76, 0xc2, 0x54, 0xca, 0x0e, 0x53, 0x98, 0xc3, 0xa6, 0xec, - 0x10, 0x5f, 0xa5, 0x69, 0xe3, 0x1e, 0xab, 0x4c, 0x22, 0xca, 0x5e, 0xbd, 0x3a, 0x5e, 0x87, 0x9c, - 0x1b, 0xca, 0xb4, 0x41, 0xb1, 0xc5, 0x17, 0xb2, 0x1b, 0xdf, 0xb4, 0x35, 0xb1, 0xf1, 0x21, 0xab, - 0x52, 0x9e, 0x4e, 0x8a, 0xfd, 0x21, 0x14, 0xa4, 0x14, 0xa0, 0x99, 0x13, 0x7c, 0x21, 0x03, 0xdf, - 0x94, 0x5a, 0xbe, 0x23, 0x2f, 0x6d, 0x6c, 0x83, 0xaa, 0x11, 0xcb, 0xec, 0x39, 0x3e, 0xd9, 0x20, - 0xb6, 0x44, 0x29, 0x4d, 0x0f, 0xac, 0x54, 0x85, 0xd9, 0x08, 0xa5, 0xb4, 0xa8, 0xfd, 0x45, 0x81, - 0xcc, 0x81, 0xd9, 0x24, 0xbc, 0x6e, 0x2c, 0x01, 0x70, 0x00, 0x52, 0xe7, 0x9b, 0x61, 0x3b, 0xac, - 0x51, 0x0b, 0x94, 0xab, 0x54, 0xa8, 0x5c, 0x6d, 0x00, 0x78, 0x95, 0xc2, 0x8e, 0xf9, 0x20, 0x91, - 0x28, 0xd0, 0x0d, 0xbf, 0xeb, 0x1b, 0x62, 0xc4, 0xe3, 0xb2, 0x21, 0x7e, 0x0f, 0xb8, 0x04, 0xd0, - 0xa1, 0x00, 0x1b, 0x16, 0xed, 0xeb, 0x79, 0x90, 0x65, 0xd8, 0x0e, 0x6d, 0xea, 0xf1, 0x7b, 0x90, - 0xdd, 0xd5, 0x1d, 0xbd, 0x46, 0x1c, 0x66, 0x41, 0x54, 0xd7, 0x8e, 0x60, 0x88, 0xf1, 0x72, 0xc4, - 0xec, 0x37, 0x36, 0xa0, 0x50, 0xd3, 0x9f, 0x07, 0xbb, 0xbf, 0x4b, 0xac, 0x8f, 0x6e, 0xfe, 0x43, - 0x1f, 0x7b, 0xe9, 0xfe, 0x8f, 0xbd, 0x02, 0xe4, 0x25, 0x55, 0xd4, 0xe9, 0xbf, 0x50, 0xb8, 0x76, - 0xe6, 0x78, 0x57, 0xfb, 0x1a, 0x0c, 0x33, 0xab, 0x44, 0xc9, 0xe6, 0xae, 0xf3, 0xae, 0x46, 0xe3, - 0x87, 0xe8, 0x36, 0x8c, 0x35, 0x75, 0x47, 0x17, 0xf5, 0xda, 0x6f, 0xfd, 0x24, 0x1f, 0x68, 0xa3, - 0x4d, 0xbe, 0x40, 0xab, 0x30, 0xee, 0x90, 0xae, 0x6d, 0xf6, 0x1a, 0x27, 0xa6, 0xde, 0x6b, 0x8a, - 0x06, 0x20, 0xcb, 0xf7, 0x1e, 0xd1, 0x2d, 0x17, 0x9c, 0x40, 0x42, 0xc1, 0xa9, 0xac, 0x5a, 0xd3, - 0xcd, 0x26, 0x85, 0x6c, 0x10, 0x37, 0x3c, 0xf1, 0x2e, 0x4c, 0xf7, 0x9d, 0xd0, 0x84, 0xb8, 0x03, - 0x2c, 0x4c, 0x0d, 0x92, 0xd4, 0x29, 0xba, 0x24, 0xf8, 0x3e, 0xaf, 0xd8, 0x54, 0x0a, 0xd3, 0x6a, - 0x0f, 0xe6, 0x7e, 0xfc, 0x11, 0x2f, 0x8d, 0x32, 0x1f, 0x55, 0x7e, 0x03, 0x46, 0x98, 0x67, 0x5c, - 0xdd, 0x61, 0xbf, 0x89, 0x53, 0xac, 0xf9, 0xe0, 0x03, 0x6e, 0x7f, 0x85, 0x90, 0xc7, 0x5b, 0x80, - 0x42, 0x32, 0x29, 0xa2, 0x81, 0x2e, 0x12, 0xff, 0x53, 0x81, 0xe5, 0x9a, 0x5c, 0xea, 0xbd, 0x2c, - 0x79, 0x4d, 0x4f, 0x98, 0x5c, 0xaa, 0xd3, 0x81, 0x52, 0x8d, 0x0e, 0x60, 0x46, 0x92, 0x26, 0x65, - 0x31, 0x4f, 0x4c, 0x95, 0x5f, 0x67, 0x3f, 0x52, 0x4d, 0x02, 0xe1, 0xc3, 0xc7, 0x0f, 0x60, 0x31, - 0xd6, 0x32, 0xd1, 0xd8, 0x7b, 0x48, 0x94, 0xe0, 0xa3, 0xf1, 0x21, 0x2c, 0x97, 0x2f, 0x75, 0x4a, - 0x1c, 0x73, 0x07, 0x16, 0xcb, 0x49, 0x7a, 0x63, 0xcd, 0x54, 0xae, 0x64, 0xe6, 0xff, 0xc1, 0x6a, - 0xb4, 0x3a, 0xe9, 0x13, 0x2b, 0xe9, 0xab, 0xe4, 0x4f, 0x0a, 0xcc, 0x46, 0x70, 0xd3, 0xc4, 0x8d, - 0x37, 0xf2, 0x2a, 0x37, 0x1f, 0x6b, 0x77, 0xfa, 0x4a, 0x76, 0xbf, 0x84, 0x6b, 0x49, 0x76, 0x53, - 0x4f, 0x1f, 0xc3, 0x7c, 0x94, 0x46, 0xf9, 0xad, 0x5c, 0x88, 0xd3, 0x4a, 0xdf, 0xaf, 0x39, 0x3b, - 0x72, 0xdf, 0xc6, 0x25, 0x98, 0xa1, 0x3d, 0x81, 0xcf, 0x36, 0x80, 0x9f, 0x67, 0x60, 0x2a, 0xcc, - 0x43, 0xeb, 0xdc, 0x7f, 0x14, 0x58, 0xad, 0x11, 0x27, 0x7a, 0xd2, 0xf8, 0xbf, 0xeb, 0x9a, 0x42, - 0xa9, 0x78, 0x0c, 0xf3, 0x21, 0xa1, 0x7d, 0xe9, 0xc8, 0x3d, 0x17, 0x8d, 0x5b, 0x9b, 0x23, 0xd1, - 0xf6, 0xe0, 0x87, 0x70, 0x2d, 0xc9, 0xda, 0x4b, 0xf2, 0x92, 0xc7, 0xfa, 0xe5, 0xbe, 0x8a, 0xe3, - 0xe7, 0x31, 0x93, 0xa8, 0x3d, 0xd1, 0x72, 0xe5, 0x15, 0x2c, 0xdf, 0x86, 0xb5, 0x58, 0xdd, 0x03, - 0xa6, 0xea, 0x5f, 0x15, 0x98, 0x8f, 0x16, 0x70, 0x49, 0xb6, 0x5e, 0x3d, 0x46, 0x12, 0xdd, 0x91, - 0x7e, 0x05, 0x77, 0xfc, 0x5c, 0x01, 0x7c, 0x89, 0x3f, 0xe8, 0x75, 0xe8, 0xb0, 0x14, 0xa7, 0x5f, - 0x4e, 0xe3, 0xe5, 0x04, 0x0c, 0x34, 0x93, 0x8b, 0x24, 0xee, 0xc8, 0xbe, 0xf5, 0x04, 0x72, 0x81, - 0x3f, 0xdb, 0xa0, 0x02, 0x8c, 0x3f, 0xa9, 0x7e, 0x52, 0x3d, 0x3c, 0xae, 0x36, 0xea, 0x9f, 0x1d, - 0xed, 0x15, 0xde, 0x40, 0x00, 0x23, 0xbb, 0x87, 0x4f, 0x1e, 0xed, 0xef, 0x15, 0x14, 0x34, 0x0a, - 0xe9, 0x4a, 0xb5, 0x5e, 0x48, 0xa1, 0x71, 0x18, 0xdb, 0xad, 0xd4, 0x76, 0xb4, 0xbd, 0xfa, 0x5e, - 0x21, 0x8d, 0x26, 0x20, 0xbb, 0xb3, 0x5d, 0xdf, 0x2b, 0x1f, 0x6a, 0x95, 0x9d, 0xed, 0xfd, 0xc2, - 0xd0, 0xad, 0xff, 0x87, 0x42, 0x78, 0xe0, 0x8a, 0x54, 0x98, 0x76, 0x25, 0x1f, 0x1e, 0xd5, 0x2b, - 0x07, 0x95, 0xcf, 0xb7, 0xeb, 0x95, 0xc3, 0x6a, 0xe1, 0x0d, 0x2a, 0xec, 0xa0, 0x52, 0xa5, 0x3b, - 0x54, 0x07, 0x5d, 0x6d, 0x7f, 0xca, 0x57, 0xa9, 0x5b, 0x65, 0x18, 0x66, 0xdf, 0xff, 0x28, 0x0b, - 0xa3, 0x47, 0x7b, 0xd5, 0xdd, 0x4a, 0xb5, 0x5c, 0x78, 0x83, 0x2e, 0xb4, 0x27, 0xd5, 0x2a, 0x5d, - 0x28, 0x28, 0x07, 0x99, 0x9d, 0xc3, 0x83, 0xa3, 0xfd, 0xbd, 0xfa, 0xde, 0x6e, 0x21, 0x45, 0xf1, - 0x7e, 0x52, 0xd9, 0xdf, 0xdf, 0xdb, 0x2d, 0xa4, 0x51, 0x06, 0x86, 0xf7, 0x34, 0xed, 0x50, 0x2b, - 0x7c, 0x5d, 0xfa, 0xfd, 0x2c, 0x8c, 0x1e, 0xe8, 0x5d, 0xbd, 0x45, 0x7a, 0xa8, 0x03, 0x59, 0x69, - 0x5c, 0x88, 0xe6, 0x98, 0x03, 0xfb, 0x67, 0x91, 0xc5, 0x99, 0xfe, 0x03, 0x5a, 0xb6, 0x36, 0x7e, - 0xf6, 0xf7, 0x7f, 0xfd, 0x26, 0xb5, 0x8e, 0x55, 0xf6, 0x37, 0x42, 0x21, 0x74, 0x53, 0x22, 0xdb, - 0x0a, 0xcc, 0x07, 0xd1, 0x97, 0x30, 0xe6, 0xce, 0xf8, 0x10, 0x9f, 0x89, 0x86, 0xa6, 0x8f, 0x45, - 0x14, 0xda, 0xa5, 0x5a, 0xd6, 0x99, 0x16, 0x8c, 0x56, 0x02, 0x5a, 0x5c, 0x9a, 0xcd, 0x6f, 0xdc, - 0x44, 0xf9, 0x16, 0x9d, 0xc2, 0xb8, 0x3c, 0x43, 0x44, 0x6a, 0x40, 0x9a, 0x94, 0x5f, 0xc5, 0xd9, - 0x88, 0x13, 0xaa, 0x6b, 0x95, 0xe9, 0x5a, 0x40, 0xf3, 0x91, 0xba, 0x98, 0xd0, 0x33, 0xd7, 0x67, - 0xfc, 0x8f, 0x26, 0xb2, 0xcf, 0xe4, 0x41, 0x63, 0xc0, 0x67, 0xfe, 0x24, 0x11, 0xdf, 0x64, 0x1a, - 0x56, 0x23, 0x7d, 0xc6, 0xc8, 0xb6, 0xf8, 0x18, 0x12, 0x9d, 0x40, 0xc6, 0x1b, 0x14, 0xa2, 0x19, - 0x17, 0x6f, 0x60, 0xce, 0x58, 0x9c, 0x0a, 0x6f, 0x53, 0x0d, 0x6f, 0x31, 0x0d, 0xd7, 0xd1, 0x6a, - 0xd8, 0x06, 0x4e, 0x24, 0x3b, 0xcc, 0x86, 0x7c, 0x70, 0x30, 0x88, 0x8a, 0x4c, 0x62, 0xe4, 0xac, - 0xb1, 0xa8, 0x46, 0x9e, 0x51, 0x95, 0xb7, 0x99, 0xca, 0x37, 0xf1, 0x42, 0x40, 0x65, 0x90, 0x72, - 0x4b, 0x4c, 0x23, 0xd1, 0x17, 0x00, 0xfe, 0xb0, 0x0d, 0x79, 0x37, 0x11, 0x1c, 0x11, 0x14, 0xa7, - 0xfb, 0xf6, 0xa9, 0xa2, 0x6b, 0x4c, 0xd1, 0x3c, 0x9a, 0x0b, 0xdb, 0xe6, 0x8a, 0x7b, 0x09, 0x93, - 0x7d, 0x23, 0x33, 0xb4, 0xc4, 0x64, 0xc5, 0xcd, 0xe9, 0x8a, 0x0b, 0x71, 0xc7, 0x92, 0x37, 0x8b, - 0xcb, 0x01, 0x8d, 0x7d, 0xc4, 0x5b, 0xca, 0x2d, 0xf4, 0x42, 0x9a, 0x56, 0x7a, 0xe3, 0xaf, 0xa5, - 0xa0, 0x1d, 0xa1, 0x59, 0x9d, 0xd0, 0x1d, 0x3d, 0x92, 0xc2, 0x37, 0x98, 0xee, 0x15, 0xb4, 0x1c, - 0x6d, 0xad, 0xa7, 0xa3, 0xcb, 0x66, 0xca, 0xd2, 0xa4, 0x46, 0x5c, 0x63, 0xe4, 0x34, 0xaa, 0xa8, - 0x46, 0x9e, 0x49, 0xfa, 0x42, 0xd7, 0x18, 0xa4, 0xa4, 0x86, 0x7e, 0xa7, 0xf0, 0x0f, 0x98, 0xf0, - 0x3c, 0x05, 0xad, 0x78, 0xa2, 0x63, 0x26, 0x3f, 0xc5, 0xe5, 0x04, 0x0a, 0x0a, 0xe1, 0x3e, 0x83, - 0xf0, 0x36, 0xbe, 0x1d, 0x13, 0xbc, 0x51, 0x9c, 0x14, 0xd2, 0x97, 0x2c, 0xa8, 0xdc, 0xbf, 0x57, - 0x7b, 0x41, 0x15, 0x1c, 0xd0, 0xf8, 0x41, 0x25, 0x0f, 0x51, 0x30, 0x66, 0x3a, 0x17, 0x71, 0x5f, - 0x50, 0x09, 0x2a, 0x2a, 0xff, 0xd7, 0x0a, 0xcc, 0xc5, 0x7c, 0x48, 0xa0, 0xeb, 0xbc, 0x7d, 0x4c, - 0xfc, 0x56, 0x28, 0xae, 0x26, 0x13, 0x51, 0x1c, 0x9b, 0x0c, 0xc7, 0x5b, 0x78, 0x2d, 0x80, 0x23, - 0x86, 0x85, 0x82, 0xfa, 0x9d, 0x02, 0x73, 0xe5, 0x44, 0x50, 0xe5, 0x41, 0x40, 0x25, 0x7d, 0xa8, - 0xe0, 0xf7, 0x19, 0xa8, 0x77, 0xd0, 0x66, 0x7c, 0x4c, 0xf8, 0x2c, 0x9b, 0xdf, 0xb8, 0xcd, 0xc7, - 0xb7, 0xe8, 0x0f, 0x0a, 0x14, 0xe3, 0x7b, 0x73, 0x74, 0x23, 0x41, 0xb5, 0x5c, 0xa9, 0xd7, 0x2e, - 0xa5, 0xa3, 0x28, 0xb7, 0x18, 0xca, 0x77, 0x51, 0x69, 0x00, 0x94, 0x94, 0x4b, 0x2e, 0x82, 0xdf, - 0x2b, 0x50, 0x8c, 0x6f, 0x47, 0x05, 0xd0, 0x4b, 0xbb, 0x73, 0x01, 0xf4, 0x92, 0xbe, 0x16, 0x97, - 0x18, 0xd0, 0x3b, 0xf8, 0x66, 0xf8, 0x8e, 0x63, 0xb8, 0xe8, 0x35, 0x0b, 0x4f, 0x26, 0x03, 0x2c, - 0x0f, 0x08, 0xf0, 0x92, 0xd6, 0x37, 0xde, 0x93, 0x31, 0x5c, 0xf2, 0x95, 0xff, 0x51, 0x81, 0xa5, - 0xc4, 0x76, 0x0e, 0xbd, 0x95, 0x8c, 0x41, 0xbe, 0xf8, 0x9b, 0x83, 0x90, 0x52, 0xc4, 0x1f, 0x31, - 0xc4, 0xef, 0xa3, 0xf7, 0x06, 0x43, 0x1c, 0xbe, 0xfe, 0xcf, 0x21, 0xe3, 0x8d, 0xc4, 0xc4, 0x3b, - 0x1b, 0x9e, 0xc6, 0x89, 0x77, 0x36, 0x34, 0x39, 0x13, 0xbd, 0x02, 0x9e, 0x0d, 0x5e, 0xa5, 0x4b, - 0x44, 0x6f, 0x4e, 0xc8, 0x66, 0x03, 0x17, 0x49, 0xb6, 0x3c, 0xf4, 0x91, 0x64, 0x4b, 0x83, 0xaf, - 0x78, 0xd9, 0x8c, 0x88, 0xca, 0x7e, 0x09, 0x93, 0x7d, 0x73, 0x54, 0xf1, 0xda, 0xc4, 0x0d, 0x75, - 0xc5, 0x6b, 0x13, 0x33, 0x7e, 0x15, 0x2f, 0x1d, 0x5e, 0x0e, 0x3d, 0xe2, 0x21, 0x62, 0xaa, 0xdb, - 0xe4, 0x7f, 0x37, 0x96, 0xa6, 0x6f, 0xc8, 0x7b, 0xc8, 0x22, 0xa6, 0x75, 0xc5, 0xf9, 0xe8, 0x43, - 0xaa, 0x75, 0x8d, 0x69, 0x5d, 0x46, 0x8b, 0x7d, 0x99, 0x2b, 0x4b, 0x7f, 0xc6, 0x5f, 0x38, 0x7f, - 0xe0, 0x26, 0xbd, 0x70, 0x7d, 0xd3, 0x3b, 0xe9, 0x85, 0x0b, 0x4d, 0xe8, 0xf0, 0x75, 0xa6, 0x6d, - 0x09, 0x2d, 0x44, 0x6a, 0xe3, 0x94, 0xa5, 0x3a, 0x80, 0x5f, 0x36, 0xd0, 0xe3, 0x1f, 0xe7, 0x71, - 0x2d, 0x19, 0x90, 0x0b, 0x04, 0x24, 0xfa, 0xf4, 0x75, 0x3d, 0xa2, 0x27, 0x23, 0xec, 0x5f, 0xf4, - 0xee, 0xfd, 0x37, 0x00, 0x00, 0xff, 0xff, 0xe7, 0x43, 0xd7, 0x20, 0xd2, 0x27, 0x00, 0x00, -======= - // 2871 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x5a, 0x4b, 0x73, 0x1b, 0xc7, - 0x11, 0xf6, 0x02, 0x7c, 0xa1, 0x41, 0x82, 0xe0, 0xf0, 0xa1, 0x25, 0x28, 0x52, 0xe4, 0x48, 0x96, - 0x64, 0xc9, 0x26, 0x6d, 0xc8, 0x4f, 0x59, 0x8e, 0x4b, 0x22, 0x69, 0x06, 0x65, 0x12, 0x64, 0x2d, - 0x21, 0xd3, 0x8f, 0x2a, 0xa3, 0x96, 0xc4, 0x10, 0x5a, 0x1b, 0xc0, 0x6e, 0xb0, 0x4b, 0xca, 0x92, - 0xcb, 0x97, 0x5c, 0x92, 0x4b, 0xaa, 0x9c, 0xa4, 0x72, 0xc9, 0xc1, 0xc7, 0xfc, 0x80, 0x54, 0xe5, - 0x90, 0x4b, 0xee, 0x39, 0xe4, 0x94, 0x4a, 0x55, 0x7e, 0x40, 0x6e, 0xc9, 0x7f, 0x48, 0x6a, 0x7a, - 0x66, 0x77, 0x67, 0x17, 0xbb, 0x4b, 0x58, 0xb2, 0x73, 0xdb, 0x99, 0xe9, 0xe9, 0xfe, 0xba, 0xa7, - 0xbb, 0xa7, 0xa7, 0x01, 0x28, 0x98, 0x8e, 0xb5, 0xee, 0xf4, 0x6d, 0xcf, 0x26, 0x79, 0xd3, 0xb1, - 0x2a, 0x97, 0xdb, 0xb6, 0xdd, 0xee, 0xb0, 0x0d, 0xd3, 0xb1, 0x36, 0xcc, 0x5e, 0xcf, 0xf6, 0x4c, - 0xcf, 0xb2, 0x7b, 0xae, 0x20, 0xa1, 0x3b, 0x30, 0xf5, 0x01, 0x33, 0x5d, 0xeb, 0xb8, 0xc3, 0x0e, - 0x1d, 0xf3, 0x84, 0x91, 0x32, 0xe4, 0xbb, 0xe6, 0x57, 0xba, 0xb6, 0xaa, 0xdd, 0x2c, 0x18, 0xfc, - 0x13, 0x67, 0xac, 0x9e, 0x9e, 0x93, 0x33, 0x56, 0x8f, 0x10, 0x18, 0xe9, 0x58, 0xae, 0xa7, 0xe7, - 0x57, 0xf3, 0x37, 0x0b, 0x06, 0x7e, 0xd3, 0x6f, 0x35, 0x98, 0x3e, 0x30, 0xfb, 0x66, 0x97, 0x79, - 0xac, 0xbf, 0x69, 0xf7, 0x4e, 0xad, 0x36, 0xa7, 0xeb, 0x99, 0x5d, 0x26, 0x99, 0xe1, 0x37, 0x79, - 0x07, 0x4a, 0x8e, 0x4f, 0xd6, 0xf4, 0x9e, 0x38, 0x0c, 0x19, 0x97, 0xaa, 0x64, 0x9d, 0xe3, 0x0e, - 0x38, 0x34, 0x9e, 0x38, 0xcc, 0x98, 0x72, 0xd4, 0x21, 0x59, 0x87, 0x89, 0x53, 0x89, 0x55, 0xcf, - 0xaf, 0x6a, 0x37, 0x8b, 0x72, 0x53, 0x44, 0x01, 0x23, 0xa0, 0xa1, 0x0e, 0x14, 0x02, 0x7e, 0x3f, - 0x34, 0x96, 0x39, 0x18, 0x3d, 0x37, 0x3b, 0x67, 0x02, 0x48, 0xc1, 0x10, 0x03, 0xfa, 0x6b, 0x0d, - 0xa6, 0xf6, 0x98, 0xd7, 0xb7, 0x4e, 0xdc, 0x5d, 0xbb, 0x7d, 0xc8, 0x3c, 0xb2, 0x04, 0x85, 0xc7, - 0x76, 0xff, 0x4b, 0xd6, 0x6f, 0x5a, 0x2d, 0x29, 0x7b, 0x42, 0x4c, 0xd4, 0x5a, 0xa4, 0x0a, 0x93, - 0x5d, 0x41, 0xdd, 0xec, 0xd8, 0x6d, 0x57, 0xcf, 0xad, 0xe6, 0x6f, 0x16, 0xab, 0xd3, 0x28, 0x3d, - 0x64, 0x63, 0x14, 0xbb, 0xc1, 0xb7, 0x4b, 0x36, 0x60, 0x4a, 0x32, 0x74, 0x3d, 0xd3, 0x3b, 0x73, - 0x11, 0x40, 0xa9, 0x0a, 0xb8, 0xe9, 0xd0, 0x33, 0x3d, 0x66, 0x4c, 0x0a, 0x82, 0x43, 0x5c, 0xa7, - 0x77, 0x60, 0x5c, 0xf2, 0x4a, 0xb4, 0x41, 0xa0, 0x48, 0x4e, 0x55, 0xe4, 0x1e, 0x94, 0xe5, 0xa6, - 0x8f, 0xf8, 0xb8, 0x61, 0x75, 0x19, 0xdf, 0xed, 0x59, 0xe1, 0x6e, 0xfe, 0x9d, 0xb2, 0x7b, 0x1f, - 0x20, 0x84, 0x9f, 0x28, 0xf5, 0x15, 0x18, 0x43, 0x52, 0x5f, 0xe7, 0x79, 0x55, 0xe7, 0x40, 0xa4, - 0x21, 0x89, 0xe8, 0xfb, 0x30, 0x7b, 0x78, 0xd6, 0x6e, 0x33, 0x97, 0xbb, 0x6e, 0xf6, 0x99, 0x26, - 0x23, 0x7a, 0x00, 0x0b, 0xdb, 0x66, 0xbf, 0xf3, 0xe4, 0xd0, 0xb3, 0x1d, 0xc7, 0xea, 0xb5, 0x9f, - 0x85, 0xc7, 0x06, 0xe4, 0x1b, 0x66, 0xfb, 0x7b, 0x6c, 0xf8, 0x12, 0xa6, 0x0e, 0xbd, 0xb3, 0xd6, - 0x93, 0xfd, 0x73, 0xd6, 0x3f, 0xb7, 0xd8, 0xe3, 0xb4, 0xad, 0xf6, 0xe3, 0x1e, 0xeb, 0xfb, 0x5b, - 0x71, 0x40, 0x4a, 0x90, 0xb3, 0x5a, 0xd2, 0xb7, 0x72, 0x56, 0x8b, 0xac, 0x42, 0xb1, 0xc5, 0xdc, - 0x93, 0xbe, 0xe5, 0x70, 0x0b, 0xe8, 0x23, 0xb8, 0xa0, 0x4e, 0xd1, 0x3f, 0x6b, 0x30, 0xda, 0xe8, - 0x5b, 0x66, 0x87, 0x2c, 0xc2, 0x84, 0xc7, 0x3f, 0x42, 0x8f, 0x1b, 0xc7, 0x71, 0xad, 0xc5, 0x97, - 0x5c, 0x8e, 0x88, 0x2f, 0x09, 0x79, 0xe3, 0x38, 0xae, 0xb5, 0xc8, 0x1d, 0x08, 0x3d, 0xbc, 0xe9, - 0x32, 0x11, 0xdc, 0xc5, 0x6a, 0x29, 0x1a, 0x0a, 0xc6, 0x64, 0x40, 0xc4, 0xbd, 0xfb, 0x06, 0x4c, - 0xdb, 0xc7, 0x5f, 0xb0, 0x13, 0xcf, 0x3a, 0x67, 0x4d, 0x61, 0x01, 0x01, 0xad, 0x14, 0x4c, 0xe3, - 0x61, 0x92, 0xcb, 0x30, 0xe2, 0x99, 0x6d, 0x57, 0x1f, 0x45, 0xa6, 0x13, 0xc8, 0xb4, 0x61, 0xb6, - 0x0d, 0x9c, 0xa5, 0x9f, 0x02, 0x7c, 0x64, 0x77, 0xce, 0xba, 0x8c, 0xe7, 0x8d, 0x44, 0x2b, 0x2d, - 0xc2, 0x84, 0x73, 0x7e, 0xd2, 0xc4, 0x79, 0x09, 0xdc, 0x39, 0x3f, 0xa9, 0xf3, 0xa5, 0x65, 0x80, - 0xae, 0x7d, 0xd6, 0xf3, 0x9a, 0x8e, 0xe9, 0x3d, 0x92, 0x26, 0x2b, 0xe0, 0xcc, 0x81, 0xe9, 0x3d, - 0xa2, 0xff, 0xd0, 0x60, 0xec, 0x08, 0xe3, 0x21, 0x3b, 0x16, 0x33, 0x4c, 0xa3, 0x1a, 0x34, 0x1f, - 0x35, 0x28, 0x81, 0x11, 0x9e, 0x0e, 0xa4, 0xd6, 0xf8, 0x4d, 0x28, 0x8c, 0xc9, 0xd0, 0x1c, 0x1d, - 0x08, 0x4d, 0xb9, 0x42, 0x28, 0x4c, 0x36, 0x58, 0xd7, 0xe9, 0x98, 0x1e, 0xe3, 0x28, 0xf5, 0x31, - 0xdc, 0x1f, 0x99, 0x0b, 0x6c, 0x36, 0x9e, 0x68, 0xb3, 0x7f, 0xe7, 0xa1, 0x88, 0xde, 0x95, 0x91, - 0x6b, 0x93, 0x7d, 0xeb, 0x01, 0xcc, 0xd8, 0x8e, 0x67, 0x75, 0xad, 0xa7, 0x78, 0x13, 0x88, 0xc4, - 0x27, 0xb2, 0x88, 0x08, 0xc3, 0x7d, 0x65, 0x15, 0x73, 0x5f, 0xd9, 0x8e, 0xcd, 0x90, 0xdb, 0x31, - 0x1e, 0x6d, 0xdb, 0xec, 0xa0, 0x11, 0xb4, 0x28, 0xf1, 0x8e, 0x6d, 0x76, 0x48, 0x1d, 0x66, 0x42, - 0xd7, 0x3a, 0x41, 0xb8, 0xc2, 0x36, 0xc5, 0xea, 0x9a, 0xb4, 0x4d, 0xa0, 0xc7, 0x7a, 0xec, 0x0e, - 0x71, 0x8d, 0xb2, 0x13, 0x9b, 0x21, 0xaf, 0x00, 0x31, 0x4f, 0x4e, 0x98, 0xeb, 0x36, 0x1d, 0xd6, - 0xef, 0x5a, 0xae, 0xcb, 0xef, 0x33, 0x7d, 0x0c, 0x2f, 0xa3, 0x19, 0xb1, 0x72, 0x10, 0x2e, 0x64, - 0xdb, 0x91, 0xbc, 0x0a, 0x73, 0x31, 0x17, 0x16, 0x5e, 0x36, 0x81, 0x26, 0x23, 0x51, 0x3f, 0x46, - 0x87, 0xd3, 0x61, 0x5c, 0x26, 0x64, 0xbd, 0x80, 0x32, 0xfd, 0x21, 0xb7, 0xf7, 0x17, 0xf6, 0x71, - 0xad, 0xa5, 0x83, 0xb0, 0x37, 0x0e, 0x2a, 0x0f, 0xa0, 0x1c, 0x57, 0x8a, 0xac, 0xc3, 0xb8, 0x6f, - 0x08, 0x0d, 0x61, 0xcd, 0x45, 0xe3, 0x4c, 0xd0, 0x19, 0x3e, 0x11, 0xad, 0x01, 0xd9, 0xec, 0x33, - 0xd3, 0x63, 0x68, 0x2a, 0x83, 0xfd, 0xec, 0x8c, 0xb9, 0x1e, 0xb9, 0x03, 0x93, 0xc2, 0x67, 0x05, - 0x19, 0x9e, 0x7d, 0xb1, 0x5a, 0x8e, 0xdb, 0xd4, 0x28, 0xba, 0xe1, 0x80, 0xbe, 0x02, 0xe5, 0x08, - 0x2b, 0xa7, 0xf3, 0x24, 0xe2, 0xfc, 0x5a, 0xc4, 0xf9, 0x69, 0x19, 0x4a, 0x3c, 0x69, 0x86, 0xc4, - 0xf4, 0x65, 0x98, 0xde, 0x61, 0x5e, 0x04, 0x48, 0xc6, 0xfe, 0x2d, 0x98, 0x0a, 0xa9, 0xb9, 0xac, - 0x67, 0x02, 0x3d, 0x0f, 0xb3, 0x3e, 0x97, 0x5d, 0xcb, 0xf5, 0xa4, 0x5c, 0x7a, 0x00, 0x33, 0xd1, - 0x69, 0x2e, 0xe0, 0x5d, 0x98, 0x16, 0x02, 0x6c, 0x99, 0x77, 0x7d, 0x1b, 0x93, 0x50, 0x86, 0x9f, - 0x92, 0x8d, 0x92, 0xab, 0x0e, 0x5d, 0xfa, 0xa6, 0x6f, 0x68, 0xcc, 0xa5, 0xbe, 0x7e, 0xab, 0x30, - 0x8a, 0x11, 0x2f, 0xc1, 0x8a, 0x88, 0x16, 0x14, 0x62, 0x21, 0xb4, 0xaa, 0xdc, 0x27, 0xad, 0x9a, - 0x92, 0x88, 0x39, 0xf9, 0x0e, 0xf3, 0x90, 0xd6, 0x1d, 0xc2, 0x88, 0xaf, 0x43, 0x49, 0x21, 0xe7, - 0xbc, 0x29, 0x8c, 0x21, 0x2f, 0x5f, 0x37, 0x15, 0x92, 0x5c, 0x91, 0x07, 0x15, 0x51, 0x24, 0x03, - 0xd2, 0x6b, 0x78, 0x50, 0x0a, 0xfc, 0x8b, 0x95, 0xbe, 0x07, 0xf3, 0x06, 0x6b, 0x5b, 0xae, 0xc7, - 0xfa, 0x22, 0xc5, 0xfa, 0x62, 0xae, 0xc2, 0x98, 0x48, 0xac, 0x72, 0x6f, 0x11, 0xf7, 0x4a, 0x1a, - 0xb9, 0x44, 0xab, 0x30, 0x1b, 0xdf, 0xcd, 0xc5, 0x66, 0x65, 0x69, 0x6a, 0x03, 0xe1, 0xde, 0x28, - 0xe8, 0x87, 0xb0, 0x1c, 0xbf, 0x1d, 0x02, 0x6e, 0xa2, 0xd8, 0x28, 0x18, 0x05, 0x9f, 0x9d, 0x4b, - 0xae, 0x40, 0xd1, 0x72, 0x9b, 0x27, 0x76, 0xd7, 0xe9, 0x30, 0x4f, 0x64, 0xc1, 0x09, 0x03, 0x2c, - 0x77, 0x53, 0xce, 0x50, 0x02, 0xe5, 0x88, 0x40, 0x1e, 0x00, 0xa7, 0xe8, 0x75, 0xc3, 0x63, 0x50, - 0x8d, 0x9e, 0x8b, 0xde, 0x1f, 0x11, 0x65, 0xf3, 0x31, 0x65, 0xdf, 0xc6, 0xf3, 0x53, 0x45, 0x93, - 0x17, 0x61, 0x5c, 0x2c, 0xfb, 0xe7, 0x1e, 0xb1, 0xac, 0xbf, 0x46, 0x3f, 0x03, 0xfd, 0xa1, 0xd3, - 0x32, 0x3d, 0x76, 0x14, 0x54, 0x82, 0xcc, 0x07, 0x9a, 0x79, 0x0b, 0x86, 0x77, 0x57, 0x2e, 0xed, - 0xee, 0xa2, 0x3a, 0x2c, 0x24, 0x30, 0xe7, 0x86, 0xf9, 0x9d, 0x06, 0x7a, 0x80, 0xf8, 0x83, 0xb3, - 0x4e, 0xa7, 0xd6, 0x3b, 0xb5, 0x7f, 0x3c, 0x03, 0x91, 0xeb, 0x30, 0x6d, 0xf7, 0x3a, 0x4f, 0x9a, - 0xfc, 0xca, 0x74, 0x3d, 0x5e, 0x43, 0xe3, 0x1d, 0x34, 0x61, 0x4c, 0xf1, 0xe9, 0x5d, 0x9c, 0xdd, - 0xb5, 0xdb, 0xf4, 0x3b, 0x0d, 0x4a, 0x51, 0x50, 0xdc, 0x43, 0x8f, 0xd2, 0x3d, 0x54, 0x16, 0x0c, - 0x03, 0x35, 0x51, 0x6e, 0x88, 0x9a, 0x28, 0x5e, 0xd4, 0xe7, 0x2f, 0x2e, 0xea, 0xe9, 0x27, 0xb0, - 0x90, 0x60, 0x37, 0x7e, 0xe0, 0xef, 0xc3, 0x8c, 0xd4, 0xff, 0xf4, 0xac, 0xd3, 0x69, 0x5a, 0xbd, - 0x53, 0xdb, 0x3f, 0xfa, 0x59, 0x05, 0x72, 0xb0, 0x69, 0xfa, 0x71, 0x64, 0xec, 0xd2, 0xbf, 0x69, - 0x30, 0xcf, 0x73, 0x64, 0x50, 0x3e, 0x0f, 0xe3, 0xb1, 0xaf, 0xc1, 0x9c, 0x1b, 0x6c, 0x68, 0x9a, - 0x9d, 0xb6, 0xdd, 0xb7, 0xbc, 0x47, 0x5d, 0x79, 0x38, 0xb3, 0xe1, 0xda, 0x7d, 0x7f, 0x89, 0xbc, - 0x08, 0xa5, 0xbe, 0x60, 0xdc, 0xec, 0x9d, 0x75, 0x8f, 0x59, 0x1f, 0x4f, 0x6b, 0xd4, 0x98, 0x92, - 0xb3, 0x75, 0x9c, 0x24, 0xd7, 0xa0, 0xd4, 0xb1, 0xdb, 0x4d, 0x25, 0x26, 0x47, 0x30, 0x26, 0x27, - 0x3b, 0x76, 0xfb, 0x28, 0x08, 0x4b, 0x5e, 0xee, 0x71, 0x9b, 0x72, 0x68, 0xa3, 0xb2, 0xdc, 0xe3, - 0xe3, 0x5a, 0x8b, 0xbe, 0x23, 0x6e, 0x02, 0x55, 0x9d, 0x61, 0xf3, 0xe1, 0xaf, 0x34, 0x58, 0xe2, - 0x7b, 0x1f, 0xd9, 0x67, 0x9d, 0xd6, 0xf7, 0x4b, 0x23, 0x6f, 0x83, 0xce, 0xf8, 0xfb, 0xa1, 0xe9, - 0xca, 0x07, 0xc4, 0x80, 0x51, 0x16, 0x98, 0xfa, 0xbe, 0x08, 0xed, 0x92, 0xa1, 0xca, 0x01, 0x2c, - 0x26, 0xc3, 0x11, 0xd7, 0xe4, 0x82, 0x8b, 0x2b, 0x28, 0x52, 0x35, 0x98, 0x86, 0x06, 0x9b, 0x75, - 0x63, 0xfb, 0x6a, 0x2d, 0x97, 0xf6, 0x31, 0x33, 0x49, 0x2f, 0x7b, 0xfe, 0xec, 0x78, 0x15, 0xa6, - 0x7c, 0x57, 0xe6, 0x35, 0x91, 0x2b, 0x1f, 0xfc, 0xbe, 0x7f, 0xf3, 0x6a, 0xc8, 0xa5, 0xfb, 0x98, - 0xa5, 0x02, 0x99, 0x1c, 0xfb, 0x3d, 0x28, 0x2b, 0x21, 0xc0, 0x23, 0x27, 0x7a, 0x05, 0x47, 0x9e, - 0xc8, 0x46, 0xa9, 0xab, 0x0e, 0x5d, 0xea, 0x82, 0x6e, 0x30, 0xc7, 0xee, 0x7b, 0x21, 0xd9, 0x30, - 0xba, 0x24, 0x09, 0xcd, 0x0f, 0x2d, 0x54, 0x87, 0x85, 0x04, 0xa1, 0x3c, 0xa9, 0xfd, 0x45, 0x83, - 0xc2, 0x9e, 0xdd, 0x62, 0x22, 0x6f, 0x2c, 0x03, 0x08, 0x00, 0x4a, 0xb1, 0x5d, 0xc0, 0x19, 0xac, - 0x0d, 0x23, 0xe9, 0x2a, 0x17, 0x4b, 0x57, 0xeb, 0x00, 0x41, 0xa6, 0x70, 0x53, 0xde, 0x57, 0x0a, - 0x05, 0xb9, 0x1e, 0x16, 0x9a, 0x23, 0x48, 0x3c, 0xa9, 0x2a, 0x12, 0x96, 0x9d, 0xf8, 0x02, 0x6a, - 0xb1, 0x8e, 0x78, 0x01, 0x8d, 0xfa, 0x2f, 0xa0, 0x16, 0xeb, 0xe0, 0x0b, 0xe8, 0x0d, 0x28, 0x6e, - 0x99, 0x9e, 0x79, 0xc8, 0x3c, 0xd4, 0x20, 0xe9, 0xa1, 0x40, 0x60, 0x04, 0xf7, 0x0a, 0xc4, 0xf8, - 0x4d, 0x2d, 0x28, 0x1f, 0x9a, 0xe7, 0xd1, 0x82, 0xf3, 0x02, 0xed, 0x93, 0xdf, 0x1b, 0xb1, 0xb7, - 0x6b, 0x7e, 0xf0, 0xed, 0xca, 0x6b, 0xcc, 0x50, 0x14, 0x37, 0xfa, 0x2f, 0x35, 0x21, 0x1d, 0x0d, - 0xef, 0x4b, 0xbf, 0x06, 0xa3, 0xa8, 0x95, 0x4c, 0xd9, 0xc2, 0x74, 0xc1, 0xd1, 0x18, 0x62, 0x91, - 0xdc, 0x86, 0x89, 0x96, 0xe9, 0x99, 0x32, 0x5f, 0x87, 0xb5, 0xa5, 0x62, 0x03, 0x63, 0xbc, 0x25, - 0x06, 0x64, 0x0d, 0x26, 0x3d, 0xd6, 0x73, 0xed, 0x7e, 0xf3, 0xd8, 0x36, 0xfb, 0x2d, 0x59, 0x00, - 0x14, 0xc5, 0xdc, 0x03, 0x3e, 0xe5, 0x83, 0x93, 0x48, 0x38, 0x38, 0x1d, 0xb3, 0x35, 0x9f, 0x6c, - 0x71, 0xc8, 0x16, 0xf3, 0xdd, 0x93, 0x6e, 0xc1, 0xdc, 0xc0, 0x0a, 0x0f, 0x88, 0x97, 0x01, 0xdd, - 0xd4, 0x62, 0x59, 0xa5, 0xa8, 0x4f, 0x42, 0xdf, 0x14, 0x19, 0x9b, 0x73, 0x41, 0xa9, 0xee, 0x70, - 0xe6, 0xa7, 0xef, 0x89, 0xd4, 0xa8, 0xee, 0xe3, 0xc2, 0xaf, 0xc3, 0x18, 0x5a, 0xc6, 0x97, 0x1d, - 0xb7, 0x9b, 0x5c, 0xa5, 0x46, 0x08, 0x3e, 0x62, 0xf6, 0xe7, 0x70, 0x79, 0x7a, 0x17, 0x48, 0x8c, - 0x27, 0x47, 0x34, 0xd4, 0x41, 0xd2, 0x7f, 0x6a, 0xb0, 0x72, 0xa8, 0xa6, 0xfa, 0x20, 0x4a, 0x7e, - 0xa4, 0x2b, 0x4c, 0x4d, 0xd5, 0xf9, 0x48, 0xaa, 0x26, 0x7b, 0x30, 0xaf, 0x70, 0x53, 0xa2, 0x58, - 0x04, 0xa6, 0x2e, 0x8e, 0x73, 0x10, 0xa9, 0xa1, 0x80, 0x08, 0xe1, 0xd3, 0x77, 0xe0, 0x72, 0xaa, - 0x66, 0xf2, 0xe5, 0x10, 0x20, 0xd1, 0xa2, 0x97, 0xc6, 0xbb, 0xb0, 0xb2, 0x73, 0xa1, 0x51, 0xd2, - 0x36, 0x77, 0xe1, 0xf2, 0x4e, 0x96, 0xdc, 0x54, 0x35, 0xb5, 0x67, 0x52, 0xf3, 0x27, 0xb0, 0x96, - 0x2c, 0x4e, 0x79, 0xc3, 0x65, 0x3d, 0x7b, 0xfe, 0xa4, 0xc1, 0x42, 0xc2, 0x6e, 0x1e, 0xb8, 0xe9, - 0x4a, 0x3e, 0xcb, 0xc9, 0xa7, 0xea, 0x9d, 0x7f, 0x26, 0xbd, 0x9f, 0xc2, 0x95, 0x2c, 0xbd, 0xb9, - 0xa5, 0x8f, 0x60, 0x31, 0x49, 0xa2, 0x7a, 0x57, 0x2e, 0xa5, 0x49, 0xe5, 0xf7, 0xd7, 0x25, 0x37, - 0x71, 0xde, 0xa5, 0x55, 0x98, 0xc7, 0xf7, 0x7a, 0xb0, 0x3c, 0x84, 0x9d, 0xe7, 0x61, 0x36, 0xbe, - 0x87, 0xe7, 0xb9, 0xff, 0x68, 0xb0, 0x76, 0xc8, 0xbc, 0xe4, 0xc6, 0xe9, 0xff, 0xaf, 0x6a, 0x8a, - 0x85, 0xe2, 0x11, 0x2c, 0xc6, 0x98, 0x0e, 0x84, 0xa3, 0xb0, 0x5c, 0x32, 0x6e, 0xe3, 0x12, 0x4b, - 0xd6, 0x87, 0xde, 0x83, 0x2b, 0x59, 0xda, 0x5e, 0x10, 0x97, 0xc2, 0xd7, 0x2f, 0xb6, 0x55, 0xda, - 0x7e, 0xe1, 0x33, 0x99, 0xd2, 0x33, 0x35, 0xd7, 0x9e, 0x43, 0xf3, 0xfb, 0x70, 0x2d, 0x55, 0xf6, - 0x90, 0xa1, 0xfa, 0x57, 0x0d, 0x16, 0x93, 0x19, 0x5c, 0x10, 0xad, 0xcf, 0xee, 0x23, 0x99, 0xe6, - 0xc8, 0x3f, 0x87, 0x39, 0x7e, 0xa1, 0x01, 0xbd, 0xc0, 0x1e, 0xfc, 0x38, 0x4c, 0x58, 0x4e, 0x93, - 0xaf, 0x86, 0xf1, 0x4a, 0x06, 0x06, 0x1e, 0xc9, 0x15, 0x96, 0xb6, 0xe4, 0xde, 0x7a, 0x08, 0x53, - 0x91, 0x5f, 0xa1, 0x48, 0x19, 0x26, 0x1f, 0xd6, 0x3f, 0xac, 0xef, 0x1f, 0xd5, 0x9b, 0x8d, 0x4f, - 0x0e, 0xb6, 0xcb, 0x2f, 0x10, 0x80, 0xb1, 0xad, 0xfd, 0x87, 0x0f, 0x76, 0xb7, 0xcb, 0x1a, 0x19, - 0x87, 0x7c, 0xad, 0xde, 0x28, 0xe7, 0xc8, 0x24, 0x4c, 0x6c, 0xd5, 0x0e, 0x37, 0x8d, 0xed, 0xc6, - 0x76, 0x39, 0x4f, 0xa6, 0xa1, 0xb8, 0x79, 0xbf, 0xb1, 0xbd, 0xb3, 0x6f, 0xd4, 0x36, 0xef, 0xef, - 0x96, 0x47, 0x6e, 0xfd, 0x14, 0xca, 0xf1, 0x1e, 0x2f, 0xd1, 0x61, 0xce, 0xe7, 0xbc, 0x7f, 0xd0, - 0xa8, 0xed, 0xd5, 0x3e, 0xbd, 0xdf, 0xa8, 0xed, 0xd7, 0xcb, 0x2f, 0x70, 0x66, 0x7b, 0xb5, 0x3a, - 0x9f, 0xe1, 0x32, 0xf8, 0xe8, 0xfe, 0xc7, 0x62, 0x94, 0xbb, 0xb5, 0x03, 0xa3, 0xf8, 0xfe, 0x27, - 0x45, 0x18, 0x3f, 0xd8, 0xae, 0x6f, 0xd5, 0xea, 0x3b, 0xe5, 0x17, 0xf8, 0xc0, 0x78, 0x58, 0xaf, - 0xf3, 0x81, 0x46, 0xa6, 0xa0, 0xb0, 0xb9, 0xbf, 0x77, 0xb0, 0xbb, 0xdd, 0xd8, 0xde, 0x2a, 0xe7, - 0x38, 0xde, 0x0f, 0x6b, 0xbb, 0xbb, 0xdb, 0x5b, 0xe5, 0x3c, 0x29, 0xc0, 0xe8, 0xb6, 0x61, 0xec, - 0x1b, 0xe5, 0xaf, 0xaa, 0xff, 0x5d, 0x80, 0xf1, 0x3d, 0xb3, 0x67, 0xb6, 0x59, 0x9f, 0x74, 0xa1, - 0xa8, 0x74, 0x28, 0xc9, 0x25, 0x34, 0xe0, 0x60, 0xfb, 0xb3, 0x32, 0x3f, 0xb8, 0xc0, 0xd3, 0xd6, - 0xfa, 0xcf, 0xff, 0xfe, 0xaf, 0xdf, 0xe6, 0x6e, 0x52, 0x1d, 0x7f, 0xf2, 0x94, 0x4c, 0x37, 0x14, - 0xb2, 0xbb, 0x91, 0x06, 0x24, 0xf9, 0x1c, 0x26, 0xfc, 0x26, 0x22, 0x11, 0x6d, 0xd8, 0x58, 0x7b, - 0xb3, 0x42, 0x62, 0xb3, 0x5c, 0xca, 0x4d, 0x94, 0x42, 0xc9, 0x6a, 0x44, 0x8a, 0x4f, 0xb3, 0xf1, - 0xb5, 0x1f, 0x28, 0xdf, 0x90, 0x13, 0x98, 0x54, 0x9b, 0x94, 0x44, 0x8f, 0x70, 0x53, 0xe2, 0xab, - 0xb2, 0x90, 0xb0, 0xc2, 0x65, 0xad, 0xa1, 0xac, 0x25, 0xb2, 0x98, 0x28, 0x0b, 0x99, 0x9e, 0xfa, - 0x36, 0x13, 0xbf, 0x01, 0xa9, 0x36, 0x53, 0x1b, 0x80, 0x11, 0x9b, 0x85, 0xbd, 0x3e, 0x7a, 0x03, - 0x25, 0xac, 0x25, 0xda, 0x0c, 0xc9, 0xee, 0x8a, 0x96, 0x1f, 0x39, 0x86, 0x42, 0xd0, 0x89, 0x24, - 0xf3, 0x3e, 0xde, 0x48, 0x23, 0xb3, 0x32, 0x1b, 0x9f, 0xe6, 0x12, 0x5e, 0x42, 0x09, 0x57, 0xc9, - 0x5a, 0x5c, 0x07, 0x41, 0xa4, 0x1a, 0x4c, 0x1c, 0x88, 0x50, 0x64, 0x2e, 0xc2, 0x6b, 0xe0, 0x40, - 0x14, 0x15, 0x52, 0x0f, 0x04, 0x69, 0x36, 0xbe, 0xf6, 0x3b, 0x4c, 0xdf, 0x10, 0x17, 0x4a, 0xd1, - 0xc6, 0x23, 0xa9, 0x20, 0xbf, 0xc4, 0x5e, 0x66, 0x45, 0x4f, 0x5c, 0xe3, 0x12, 0x6f, 0xa3, 0xc4, - 0x17, 0xe9, 0x52, 0x44, 0x62, 0x94, 0xf2, 0xae, 0xec, 0x76, 0x92, 0xcf, 0x00, 0xc2, 0x66, 0x1e, - 0x09, 0x4e, 0x3a, 0xda, 0x82, 0xa8, 0xcc, 0x0d, 0xcc, 0x73, 0x41, 0x57, 0x50, 0xd0, 0x22, 0xb9, - 0x14, 0x57, 0xcd, 0x67, 0xf7, 0x14, 0x66, 0x06, 0x5a, 0x72, 0x64, 0x19, 0x79, 0xa5, 0xf5, 0x01, - 0x2b, 0x4b, 0x69, 0xcb, 0xca, 0x69, 0x55, 0x56, 0x22, 0x12, 0x07, 0x88, 0xef, 0x6a, 0xb7, 0xc8, - 0x63, 0xa5, 0x1b, 0x1a, 0xb4, 0xd7, 0x96, 0xa3, 0x7a, 0xc4, 0x7a, 0x81, 0x52, 0x76, 0x72, 0xcb, - 0x8b, 0x5e, 0x47, 0xd9, 0xab, 0x64, 0x25, 0x59, 0xdb, 0x40, 0x46, 0x0f, 0x9b, 0xe2, 0x4a, 0x27, - 0x48, 0x1e, 0x63, 0x62, 0xb7, 0xab, 0xa2, 0x27, 0xae, 0x29, 0xf2, 0x62, 0xc7, 0x18, 0xa5, 0xe4, - 0x8a, 0x7e, 0xab, 0x89, 0x07, 0x52, 0xbc, 0x5f, 0x43, 0x56, 0x03, 0xd6, 0x29, 0x9d, 0xa5, 0xca, - 0x4a, 0x06, 0x05, 0x87, 0xf0, 0x26, 0x42, 0x78, 0x95, 0xde, 0x4e, 0x09, 0x8e, 0xa4, 0x9d, 0x1c, - 0xd2, 0xe7, 0xe8, 0x54, 0xfe, 0xcf, 0xfb, 0x81, 0x53, 0x45, 0x1b, 0x40, 0xa1, 0x53, 0xa9, 0x4d, - 0x1a, 0x4a, 0x51, 0xe6, 0x65, 0x3a, 0xe0, 0x54, 0x92, 0x8a, 0xf3, 0xff, 0x8d, 0x06, 0x97, 0x52, - 0x1e, 0x2a, 0xe4, 0xaa, 0x28, 0x4f, 0x33, 0xdf, 0x22, 0x95, 0xb5, 0x6c, 0x22, 0x8e, 0x63, 0x03, - 0x71, 0xbc, 0x44, 0xaf, 0x45, 0x70, 0xa4, 0x6c, 0xe1, 0xa0, 0x7e, 0xaf, 0xc1, 0xa5, 0x9d, 0x4c, - 0x50, 0x3b, 0xc3, 0x80, 0xca, 0x7a, 0x08, 0xd1, 0xb7, 0x10, 0xd4, 0x6b, 0x64, 0x23, 0xdd, 0x27, - 0xc2, 0x2d, 0x1b, 0x5f, 0xfb, 0xc5, 0xcd, 0x37, 0xe4, 0x0f, 0x1a, 0x54, 0xd2, 0x6b, 0x7f, 0x72, - 0x3d, 0x43, 0xb4, 0x7a, 0x13, 0x5c, 0xbb, 0x90, 0x8e, 0xa3, 0xbc, 0x8b, 0x28, 0x5f, 0x27, 0xd5, - 0x21, 0x50, 0xf2, 0x5d, 0x6a, 0x92, 0xfd, 0x4e, 0x83, 0x4a, 0x7a, 0xb9, 0x2b, 0x81, 0x5e, 0x58, - 0xfd, 0x4b, 0xa0, 0x17, 0xd4, 0xcd, 0xb4, 0x8a, 0x40, 0x5f, 0xa6, 0x37, 0xe2, 0x67, 0x9c, 0xb2, - 0x8b, 0x1f, 0xb3, 0xb4, 0x64, 0x36, 0xc0, 0x9d, 0x21, 0x01, 0x5e, 0x50, 0x5a, 0xa7, 0x5b, 0x32, - 0x65, 0x97, 0x7a, 0xe4, 0x7f, 0xd4, 0x60, 0x39, 0xb3, 0x5c, 0x24, 0x2f, 0x65, 0x63, 0x50, 0x0f, - 0xfe, 0xc6, 0x30, 0xa4, 0x1c, 0xf1, 0x7b, 0x88, 0xf8, 0x2d, 0xf2, 0xc6, 0x70, 0x88, 0xe3, 0xc7, - 0xff, 0x29, 0x14, 0x82, 0x96, 0x9b, 0xbc, 0xc7, 0xe3, 0xdd, 0x3e, 0x79, 0x8f, 0xc7, 0x3a, 0x73, - 0xb2, 0x16, 0xa1, 0x0b, 0xd1, 0xa3, 0xf4, 0x89, 0xf8, 0xc9, 0x49, 0xde, 0xd8, 0xd0, 0x51, 0x78, - 0xab, 0x4d, 0x25, 0x85, 0xb7, 0xd2, 0x58, 0x4b, 0xe7, 0x8d, 0x44, 0x9c, 0xf7, 0x53, 0x98, 0x19, - 0xe8, 0xd3, 0xca, 0xdb, 0x26, 0xad, 0x69, 0x2c, 0x6f, 0x9b, 0x94, 0xf6, 0xae, 0xbc, 0xe9, 0xe8, - 0x4a, 0xec, 0x12, 0x8f, 0x11, 0x73, 0xd9, 0xb6, 0xf8, 0xe1, 0x5b, 0xe9, 0xee, 0x91, 0xe0, 0x22, - 0x4b, 0xe8, 0x06, 0x56, 0x16, 0x93, 0x17, 0xb9, 0xd4, 0x6b, 0x28, 0x75, 0x85, 0x5c, 0x1e, 0x88, - 0x5c, 0x95, 0xfb, 0x97, 0xe2, 0x86, 0x0b, 0x1b, 0x7a, 0xca, 0x0d, 0x37, 0xd0, 0x1d, 0x54, 0x6e, - 0xb8, 0x58, 0x07, 0x90, 0x5e, 0x45, 0x69, 0xcb, 0x64, 0x29, 0x51, 0x9a, 0xa0, 0xac, 0x36, 0x00, - 0xc2, 0xb4, 0x41, 0x3e, 0xf8, 0x61, 0x2e, 0xd7, 0xaa, 0x05, 0x53, 0x11, 0x87, 0x24, 0x1f, 0xff, - 0x58, 0x97, 0xe8, 0xf1, 0x18, 0xfe, 0xa3, 0xf1, 0xce, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0xe5, - 0x81, 0xe5, 0x06, 0x01, 0x29, 0x00, 0x00, ->>>>>>> add bestTrialId to statusJob status + // 2819 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x5a, 0x4b, 0x73, 0xdb, 0xd6, + 0xf5, 0x0f, 0x48, 0xbd, 0x78, 0x28, 0x52, 0xd4, 0xd5, 0x0b, 0xa2, 0x1e, 0x96, 0xae, 0x15, 0x5b, + 0x7e, 0x49, 0x31, 0x9d, 0x38, 0xb1, 0xe2, 0xfc, 0x33, 0xb2, 0x24, 0xf3, 0xcf, 0x89, 0x44, 0x69, + 0x40, 0xba, 0xca, 0x63, 0x26, 0x1c, 0x48, 0xbc, 0xa2, 0x11, 0x93, 0x04, 0x4b, 0x40, 0x76, 0x64, + 0x8f, 0x37, 0xdd, 0xb4, 0x9b, 0xce, 0xa4, 0xed, 0x74, 0xd3, 0x45, 0x96, 0xfd, 0x00, 0x9d, 0xe9, + 0xa2, 0x9b, 0xee, 0xbb, 0xe8, 0xaa, 0xd3, 0x99, 0x7e, 0x80, 0xee, 0xda, 0xef, 0xd0, 0xce, 0x7d, + 0x00, 0xb8, 0x00, 0x01, 0x90, 0x91, 0xe3, 0xee, 0x78, 0xef, 0x3d, 0xf7, 0x9c, 0xdf, 0x79, 0xde, + 0x83, 0x23, 0x41, 0x4a, 0xef, 0x18, 0x1b, 0x9d, 0xae, 0x69, 0x9b, 0x28, 0xa9, 0x77, 0x8c, 0xfc, + 0x62, 0xc3, 0x34, 0x1b, 0x4d, 0xb2, 0xa9, 0x77, 0x8c, 0x4d, 0xbd, 0xdd, 0x36, 0x6d, 0xdd, 0x36, + 0xcc, 0xb6, 0xc5, 0x49, 0x70, 0x11, 0x32, 0x8f, 0x89, 0x6e, 0x19, 0x27, 0x4d, 0x52, 0xe9, 0xe8, + 0xa7, 0x04, 0xe5, 0x20, 0xd9, 0xd2, 0xbf, 0x55, 0x95, 0x15, 0x65, 0x3d, 0xa5, 0xd1, 0x9f, 0x6c, + 0xc7, 0x68, 0xab, 0x09, 0xb1, 0x63, 0xb4, 0x11, 0x82, 0xa1, 0xa6, 0x61, 0xd9, 0x6a, 0x72, 0x25, + 0xb9, 0x9e, 0xd2, 0xd8, 0x6f, 0xfc, 0x9d, 0x02, 0x13, 0x47, 0x7a, 0x57, 0x6f, 0x11, 0x9b, 0x74, + 0x77, 0xcc, 0xf6, 0x99, 0xd1, 0xa0, 0x74, 0x6d, 0xbd, 0x45, 0x04, 0x33, 0xf6, 0x1b, 0x3d, 0x80, + 0x6c, 0xc7, 0x21, 0xab, 0xd9, 0x17, 0x1d, 0xc2, 0x18, 0x67, 0x0b, 0x68, 0x83, 0xe2, 0x76, 0x39, + 0x54, 0x2f, 0x3a, 0x44, 0xcb, 0x74, 0xe4, 0x25, 0xda, 0x80, 0xb1, 0x33, 0x81, 0x55, 0x4d, 0xae, + 0x28, 0xeb, 0x69, 0x71, 0xc9, 0xa7, 0x80, 0xe6, 0xd2, 0xe0, 0x0e, 0xa4, 0x5c, 0x7e, 0x3f, 0x36, + 0x96, 0x69, 0x18, 0x7e, 0xae, 0x37, 0xcf, 0x39, 0x90, 0x94, 0xc6, 0x17, 0xf8, 0x57, 0x0a, 0x64, + 0x0e, 0x88, 0xdd, 0x35, 0x4e, 0xad, 0x7d, 0xb3, 0x51, 0x21, 0x36, 0x5a, 0x80, 0xd4, 0x0b, 0xb3, + 0xfb, 0x8c, 0x74, 0x6b, 0x46, 0x5d, 0xc8, 0x1e, 0xe3, 0x1b, 0xa5, 0x3a, 0x2a, 0xc0, 0x78, 0x8b, + 0x53, 0xd7, 0x9a, 0x66, 0xc3, 0x52, 0x13, 0x2b, 0xc9, 0xf5, 0x74, 0x61, 0x82, 0x49, 0xf7, 0xd8, + 0x68, 0xe9, 0x96, 0xfb, 0xdb, 0x42, 0x9b, 0x90, 0x11, 0x0c, 0x2d, 0x5b, 0xb7, 0xcf, 0x2d, 0x06, + 0x20, 0x5b, 0x00, 0x76, 0xa9, 0x62, 0xeb, 0x36, 0xd1, 0xc6, 0x39, 0x41, 0x85, 0x9d, 0xe3, 0x7b, + 0x30, 0x2a, 0x78, 0x85, 0xda, 0xc0, 0x55, 0x24, 0x21, 0x2b, 0xf2, 0x10, 0x72, 0xe2, 0xd2, 0x4f, + 0xe8, 0xba, 0x6a, 0xb4, 0x08, 0xbd, 0x6d, 0x1b, 0xde, 0x6d, 0xfa, 0x3b, 0xe2, 0xf6, 0x21, 0x80, + 0x07, 0x3f, 0x54, 0xea, 0x1d, 0x18, 0x61, 0xa4, 0x8e, 0xce, 0x33, 0xb2, 0xce, 0xae, 0x48, 0x4d, + 0x10, 0xe1, 0x4f, 0x61, 0xaa, 0x72, 0xde, 0x68, 0x10, 0x8b, 0x86, 0x6e, 0xbc, 0x4f, 0xc3, 0x11, + 0x3d, 0x82, 0xd9, 0x3d, 0xbd, 0xdb, 0xbc, 0xa8, 0xd8, 0x66, 0xa7, 0x63, 0xb4, 0x1b, 0x97, 0xe1, + 0xb1, 0x09, 0xc9, 0xaa, 0xde, 0xf8, 0x01, 0x17, 0x9e, 0x41, 0xa6, 0x62, 0x9f, 0xd7, 0x2f, 0x0e, + 0x9f, 0x93, 0xee, 0x73, 0x83, 0xbc, 0x88, 0xba, 0x6a, 0xbe, 0x68, 0x93, 0xae, 0x73, 0x95, 0x2d, + 0x50, 0x16, 0x12, 0x46, 0x5d, 0xc4, 0x56, 0xc2, 0xa8, 0xa3, 0x15, 0x48, 0xd7, 0x89, 0x75, 0xda, + 0x35, 0x3a, 0xd4, 0x02, 0xea, 0x10, 0x3b, 0x90, 0xb7, 0xf0, 0x9f, 0x14, 0x18, 0xae, 0x76, 0x0d, + 0xbd, 0x89, 0xe6, 0x61, 0xcc, 0xa6, 0x3f, 0xbc, 0x88, 0x1b, 0x65, 0xeb, 0x52, 0x9d, 0x1e, 0x59, + 0x14, 0x11, 0x3d, 0xe2, 0xf2, 0x46, 0xd9, 0xba, 0x54, 0x47, 0xf7, 0xc0, 0x8b, 0xf0, 0x9a, 0x45, + 0x78, 0x72, 0xa7, 0x0b, 0x59, 0x7f, 0x2a, 0x68, 0xe3, 0x2e, 0x11, 0x8d, 0xee, 0xeb, 0x30, 0x61, + 0x9e, 0x7c, 0x43, 0x4e, 0x6d, 0xe3, 0x39, 0xa9, 0x71, 0x0b, 0x70, 0x68, 0x59, 0x77, 0x9b, 0x39, + 0x13, 0x2d, 0xc2, 0x90, 0xad, 0x37, 0x2c, 0x75, 0x98, 0x31, 0x1d, 0x63, 0x4c, 0xab, 0x7a, 0x43, + 0x63, 0xbb, 0xf8, 0xef, 0x0a, 0x8c, 0x1c, 0xb3, 0x98, 0x8d, 0xcf, 0x97, 0x18, 0xf8, 0xb2, 0xd2, + 0x49, 0xbf, 0xd2, 0x08, 0x86, 0x68, 0xca, 0x0a, 0x64, 0xec, 0x37, 0xc2, 0x30, 0x22, 0xd2, 0x67, + 0xb8, 0x27, 0x7d, 0xc4, 0x09, 0xc2, 0x30, 0x5e, 0x25, 0xad, 0x4e, 0x53, 0xb7, 0xc9, 0x91, 0x6e, + 0x3f, 0x55, 0x47, 0xd8, 0x7d, 0xdf, 0x9e, 0xab, 0xd7, 0x68, 0xa8, 0x5e, 0xff, 0x4a, 0x42, 0x9a, + 0x45, 0x40, 0x4c, 0x3d, 0x0c, 0xf7, 0xff, 0x23, 0x98, 0x34, 0x3b, 0xb6, 0xd1, 0x32, 0x5e, 0xb2, + 0x6a, 0xcd, 0x8b, 0x13, 0xcf, 0x74, 0x9e, 0x2a, 0x87, 0xd2, 0x29, 0xab, 0x4f, 0x39, 0x33, 0xb0, + 0x83, 0x6e, 0x05, 0x78, 0x34, 0x4c, 0xbd, 0xc9, 0x8c, 0xa0, 0xf8, 0x89, 0x8b, 0xa6, 0xde, 0x44, + 0x65, 0x98, 0xf4, 0xdc, 0x7f, 0xca, 0xe0, 0x72, 0xdb, 0xa4, 0x0b, 0xab, 0xc2, 0x36, 0xae, 0x1e, + 0x1b, 0x81, 0x3a, 0x6f, 0x69, 0xb9, 0x4e, 0x60, 0x07, 0xdd, 0x01, 0xa4, 0x9f, 0x9e, 0x12, 0xcb, + 0xaa, 0x75, 0x48, 0xb7, 0x65, 0x58, 0x16, 0x7d, 0x73, 0xd4, 0x11, 0xf6, 0x60, 0x4c, 0xf2, 0x93, + 0x23, 0xef, 0x20, 0xde, 0x8e, 0xe8, 0x3d, 0x98, 0x0e, 0x84, 0x59, 0x8d, 0xd9, 0x71, 0x8c, 0x99, + 0x0c, 0xf9, 0x63, 0xad, 0x4c, 0xad, 0xaa, 0xc2, 0xa8, 0x28, 0x9a, 0x6a, 0x8a, 0xc9, 0x74, 0x96, + 0xd4, 0xde, 0xdf, 0x98, 0x27, 0xa5, 0xba, 0x0a, 0xdc, 0xde, 0x6c, 0x91, 0x7f, 0x04, 0xb9, 0xa0, + 0x52, 0x68, 0x03, 0x46, 0x1d, 0x43, 0x28, 0x0c, 0xd6, 0xb4, 0x3f, 0x17, 0x38, 0x9d, 0xe6, 0x10, + 0xe1, 0x12, 0xa0, 0x9d, 0x2e, 0xd1, 0x6d, 0xc2, 0x4c, 0xa5, 0x91, 0x9f, 0x9e, 0x13, 0xcb, 0x46, + 0xf7, 0x60, 0x9c, 0xc7, 0x2c, 0x27, 0x63, 0xbe, 0x4f, 0x17, 0x72, 0x41, 0x9b, 0x6a, 0x69, 0xcb, + 0x5b, 0xe0, 0x3b, 0x90, 0xf3, 0xb1, 0xea, 0x34, 0x2f, 0x7c, 0xc1, 0xaf, 0xf8, 0x82, 0x1f, 0xdf, + 0x86, 0x89, 0x22, 0xb1, 0x7d, 0x62, 0x63, 0xa8, 0x77, 0x21, 0xe3, 0x51, 0x53, 0xce, 0x97, 0x82, + 0x38, 0x03, 0x53, 0x0e, 0x97, 0x7d, 0xc3, 0xb2, 0x85, 0x5c, 0x7c, 0x04, 0x93, 0xfe, 0x6d, 0x2a, + 0xe0, 0x63, 0x98, 0xe0, 0x02, 0x4c, 0x51, 0x09, 0x1d, 0x8b, 0x22, 0x4f, 0x86, 0x53, 0x24, 0xb5, + 0xac, 0x25, 0x2f, 0x2d, 0x7c, 0xdf, 0x31, 0x2b, 0xab, 0x6e, 0x8e, 0x7e, 0x2b, 0x30, 0xcc, 0xf2, + 0x5b, 0x80, 0xe5, 0xf9, 0xcb, 0x29, 0xf8, 0x81, 0x67, 0x43, 0x71, 0x4f, 0xd8, 0x30, 0xa2, 0x34, + 0x52, 0xf2, 0x22, 0xb1, 0x19, 0xad, 0x35, 0x80, 0x11, 0xdf, 0x87, 0xac, 0x44, 0x4e, 0x79, 0x63, + 0x18, 0x61, 0xbc, 0x1c, 0xdd, 0x64, 0x48, 0xe2, 0x44, 0x38, 0xca, 0xa7, 0x48, 0x0c, 0xa4, 0xbb, + 0xcc, 0x51, 0x12, 0xfc, 0xfe, 0x4a, 0x3f, 0x84, 0x19, 0x8d, 0x34, 0x0c, 0xcb, 0x26, 0x5d, 0x5e, + 0x50, 0x1d, 0x31, 0x57, 0x61, 0x84, 0x97, 0x51, 0x71, 0x37, 0xcd, 0xee, 0x0a, 0x1a, 0x71, 0x84, + 0x0b, 0x30, 0x15, 0xbc, 0x4d, 0xc5, 0xc6, 0xd5, 0x64, 0x6c, 0x02, 0xa2, 0x8f, 0x2a, 0xa7, 0x1f, + 0xc0, 0x72, 0x68, 0x09, 0xc0, 0xe5, 0xc6, 0x9f, 0xff, 0x94, 0x96, 0x72, 0xd8, 0x59, 0xe8, 0x0a, + 0xa4, 0x0d, 0xab, 0x76, 0x6a, 0xb6, 0x3a, 0x4d, 0x62, 0xf3, 0x9a, 0x37, 0xa6, 0x81, 0x61, 0xed, + 0x88, 0x1d, 0x8c, 0x20, 0xe7, 0x13, 0xd8, 0x69, 0x5e, 0xe0, 0x33, 0x16, 0x75, 0x83, 0x63, 0x90, + 0x8d, 0x9e, 0xf0, 0xbf, 0x16, 0x3e, 0x65, 0x93, 0x01, 0x65, 0x3f, 0x62, 0xfe, 0x93, 0x45, 0xa3, + 0x77, 0x61, 0x94, 0x1f, 0x3b, 0x7e, 0xf7, 0x59, 0xd6, 0x39, 0xc3, 0x5f, 0x81, 0xfa, 0xa4, 0x53, + 0xd7, 0x6d, 0x72, 0xec, 0xf6, 0x66, 0xc4, 0x01, 0x1a, 0xfb, 0xe6, 0x79, 0x2f, 0x55, 0x22, 0xea, + 0xa5, 0xc2, 0x2a, 0xcc, 0x86, 0x30, 0xa7, 0x86, 0xf9, 0xad, 0x02, 0xaa, 0x8b, 0xf8, 0xf1, 0x79, + 0xb3, 0x59, 0x6a, 0x9f, 0x99, 0x6f, 0xcf, 0x40, 0xe8, 0x1a, 0x4c, 0x98, 0xed, 0xe6, 0x45, 0x8d, + 0x3e, 0x90, 0x96, 0x4d, 0xbb, 0x5a, 0xf6, 0xe2, 0x8c, 0x69, 0x19, 0xba, 0xbd, 0xcf, 0x76, 0xf7, + 0xcd, 0x06, 0xfe, 0x5e, 0x81, 0xac, 0x1f, 0x14, 0x8d, 0xd0, 0xe3, 0xe8, 0x08, 0x15, 0xed, 0x41, + 0x4f, 0x97, 0x92, 0x18, 0xa0, 0x4b, 0x09, 0xb6, 0xd9, 0xc9, 0xfe, 0x6d, 0x36, 0xfe, 0x02, 0x66, + 0x43, 0xec, 0x46, 0x1d, 0xfe, 0x29, 0x4c, 0x0a, 0xfd, 0xcf, 0xce, 0x9b, 0xcd, 0x9a, 0xd1, 0x3e, + 0x33, 0x1d, 0xd7, 0x4f, 0x49, 0x90, 0xdd, 0x4b, 0x13, 0x2f, 0x7c, 0x6b, 0x0b, 0xff, 0x55, 0x81, + 0x19, 0x5a, 0x23, 0xdd, 0x86, 0x76, 0x90, 0x88, 0xbd, 0x0b, 0xd3, 0x96, 0x7b, 0xa1, 0xa6, 0x37, + 0x1b, 0x66, 0xd7, 0xb0, 0x9f, 0xb6, 0x84, 0x73, 0xa6, 0xbc, 0xb3, 0x6d, 0xe7, 0x08, 0xbd, 0x0b, + 0xd9, 0x2e, 0x67, 0x5c, 0x6b, 0x9f, 0xb7, 0x4e, 0x48, 0x97, 0x79, 0x6b, 0x58, 0xcb, 0x88, 0xdd, + 0x32, 0xdb, 0x44, 0x6b, 0x90, 0x6d, 0x9a, 0x8d, 0x9a, 0x94, 0x93, 0x43, 0x2c, 0x27, 0xc7, 0x9b, + 0x66, 0xe3, 0xd8, 0x4d, 0xcb, 0x79, 0x18, 0x63, 0x36, 0xa5, 0xd0, 0x86, 0x39, 0x34, 0xb6, 0x2e, + 0xd5, 0xf1, 0x03, 0xfe, 0x12, 0xc8, 0xea, 0x0c, 0x5a, 0x0f, 0x7f, 0xa9, 0xc0, 0x02, 0xbd, 0xfb, + 0xd4, 0x3c, 0x6f, 0xd6, 0x7f, 0x58, 0x19, 0xf9, 0x08, 0x54, 0x42, 0x3b, 0xfa, 0x9a, 0x25, 0x5a, + 0xfa, 0x1e, 0xa3, 0xcc, 0x12, 0xb9, 0xe3, 0xf7, 0xec, 0x12, 0xa3, 0xca, 0x11, 0xcc, 0x87, 0xc3, + 0xe1, 0xcf, 0xe4, 0xac, 0xc5, 0x4e, 0x98, 0x48, 0xd9, 0x60, 0x0a, 0x33, 0xd8, 0x94, 0x15, 0xb8, + 0x57, 0xaa, 0x5b, 0xb8, 0xcb, 0x2a, 0x93, 0x88, 0xb2, 0x37, 0xaf, 0x8e, 0x57, 0x21, 0xe3, 0x84, + 0x32, 0xed, 0x80, 0x2c, 0xf1, 0x09, 0xee, 0xc4, 0x37, 0xed, 0x7d, 0x2c, 0x7c, 0xc8, 0xaa, 0x94, + 0x2b, 0x93, 0x62, 0x7f, 0x08, 0x39, 0x29, 0x05, 0x68, 0xe6, 0xf8, 0x9f, 0x60, 0xdf, 0x47, 0xab, + 0x96, 0x6d, 0xc9, 0x4b, 0x0b, 0x5b, 0xa0, 0x6a, 0xa4, 0x63, 0x76, 0x6d, 0x8f, 0x6c, 0x10, 0x5d, + 0xc2, 0x84, 0x26, 0x07, 0x16, 0xaa, 0xc2, 0x6c, 0x88, 0x50, 0x5a, 0xd4, 0xfe, 0xac, 0x40, 0xea, + 0xc0, 0xac, 0x13, 0x5e, 0x37, 0x96, 0x00, 0x38, 0x00, 0xa9, 0xb5, 0x4e, 0xb1, 0x1d, 0xd6, 0x09, + 0xfa, 0xca, 0x55, 0x22, 0x50, 0xae, 0x36, 0x00, 0xdc, 0x4a, 0x61, 0x45, 0x7c, 0xf1, 0x48, 0x14, + 0xe8, 0x9a, 0xd7, 0x56, 0x0e, 0x31, 0xe2, 0x71, 0x59, 0x11, 0xaf, 0xc9, 0x5c, 0x02, 0x68, 0x51, + 0x80, 0xb5, 0x0e, 0xfd, 0x70, 0xe0, 0x41, 0x96, 0x62, 0x3b, 0xf4, 0xab, 0x01, 0x7f, 0x00, 0xe9, + 0x5d, 0xdd, 0xd6, 0x2b, 0xc4, 0x66, 0x1a, 0x84, 0x7d, 0x16, 0x20, 0x18, 0x62, 0x77, 0x39, 0x62, + 0xf6, 0x1b, 0x1b, 0x90, 0xab, 0xe8, 0xcf, 0xfd, 0xed, 0x65, 0x1f, 0xed, 0xc3, 0xbf, 0x2e, 0x02, + 0x5f, 0x93, 0xc9, 0xde, 0xaf, 0xc9, 0x1c, 0x64, 0x25, 0x51, 0xd4, 0xe8, 0xbf, 0x50, 0xb8, 0x74, + 0x66, 0x78, 0x47, 0xfa, 0x1a, 0x0c, 0x33, 0xad, 0x44, 0xc9, 0xe6, 0xa6, 0x73, 0x5d, 0xa3, 0xf1, + 0x43, 0x74, 0x0b, 0xc6, 0xea, 0xba, 0xad, 0x8b, 0x7a, 0xed, 0xf5, 0x96, 0x92, 0x0d, 0xb4, 0xd1, + 0x3a, 0x5f, 0xa0, 0x55, 0x18, 0xb7, 0x49, 0xdb, 0x32, 0xbb, 0xb5, 0x13, 0x53, 0xef, 0xd6, 0x45, + 0x03, 0x90, 0xe6, 0x7b, 0x8f, 0xe8, 0x96, 0x03, 0x4e, 0x20, 0xa1, 0xe0, 0x54, 0x56, 0xad, 0xe9, + 0x66, 0x9d, 0x42, 0x36, 0x88, 0x13, 0x9e, 0x78, 0x17, 0xa6, 0x7b, 0x4e, 0x68, 0x42, 0xdc, 0x06, + 0x16, 0xa6, 0x06, 0x89, 0x6b, 0x45, 0x1d, 0x12, 0x7c, 0x9f, 0x57, 0x6c, 0xca, 0x85, 0x49, 0xb5, + 0x06, 0x33, 0x3f, 0xfe, 0x84, 0x97, 0x46, 0xf9, 0x1e, 0x15, 0x7e, 0x0d, 0x46, 0x98, 0x65, 0x1c, + 0xd9, 0x41, 0xbb, 0x89, 0x53, 0xac, 0x79, 0xe0, 0x7d, 0x66, 0x7f, 0x83, 0x90, 0xc7, 0x5b, 0x80, + 0x02, 0x3c, 0x29, 0xa2, 0x81, 0x1c, 0x89, 0xff, 0xa1, 0xc0, 0x72, 0x45, 0x2e, 0xf5, 0x6e, 0x96, + 0xbc, 0xa5, 0x27, 0x4c, 0x2e, 0xd5, 0x49, 0x5f, 0xa9, 0x46, 0x07, 0x30, 0x23, 0x71, 0x93, 0xb2, + 0x98, 0x27, 0xa6, 0xca, 0xdd, 0xd9, 0x8b, 0x54, 0x93, 0x40, 0x78, 0xf0, 0xf1, 0x03, 0x58, 0x8c, + 0xd4, 0x4c, 0x7c, 0x39, 0xb8, 0x48, 0x14, 0xff, 0xa3, 0xf1, 0x31, 0x2c, 0x17, 0xfb, 0x1a, 0x25, + 0xea, 0x72, 0x0b, 0x16, 0x8b, 0x71, 0x72, 0x23, 0xd5, 0x54, 0x2e, 0xa5, 0xe6, 0xff, 0xc1, 0x6a, + 0xb8, 0x38, 0xe9, 0x1b, 0x2e, 0xee, 0xb3, 0xe7, 0x8f, 0x0a, 0xcc, 0x86, 0xdc, 0xa6, 0x89, 0x1b, + 0xad, 0xe4, 0x65, 0x3c, 0x1f, 0xa9, 0x77, 0xf2, 0x52, 0x7a, 0xbf, 0x84, 0x2b, 0x71, 0x7a, 0x53, + 0x4b, 0x1f, 0xc3, 0x7c, 0x98, 0x44, 0xf9, 0xad, 0x5c, 0x88, 0x92, 0x4a, 0xdf, 0xaf, 0x39, 0x2b, + 0x74, 0xdf, 0xc2, 0x05, 0x98, 0xa1, 0x3d, 0x81, 0x77, 0x6d, 0x00, 0x3b, 0xcf, 0xc0, 0x54, 0xf0, + 0x0e, 0xad, 0x73, 0xff, 0x56, 0x60, 0xb5, 0x42, 0xec, 0xf0, 0x51, 0xe6, 0xff, 0xae, 0x6b, 0x0a, + 0xa4, 0xe2, 0x31, 0xcc, 0x07, 0x98, 0xf6, 0xa4, 0x23, 0xb7, 0x5c, 0x38, 0x6e, 0x6d, 0x8e, 0x84, + 0xeb, 0x83, 0x1f, 0xc2, 0x95, 0x38, 0x6d, 0xfb, 0xe4, 0x25, 0x8f, 0xf5, 0xfe, 0xb6, 0x8a, 0xba, + 0xcf, 0x63, 0x26, 0x56, 0x7a, 0xac, 0xe6, 0xca, 0x1b, 0x68, 0xbe, 0x0d, 0x6b, 0x91, 0xb2, 0x07, + 0x4c, 0xd5, 0xbf, 0x28, 0x30, 0x1f, 0xce, 0xa0, 0x4f, 0xb6, 0x5e, 0x3e, 0x46, 0x62, 0xcd, 0x91, + 0x7c, 0x03, 0x73, 0xfc, 0x5c, 0x01, 0xdc, 0xc7, 0x1e, 0xd4, 0x1d, 0x3a, 0x2c, 0x45, 0xc9, 0x97, + 0xd3, 0x78, 0x39, 0x06, 0x03, 0xcd, 0xe4, 0x3c, 0x89, 0x3a, 0xb2, 0x6e, 0x3e, 0x81, 0x8c, 0xef, + 0xef, 0x42, 0x28, 0x07, 0xe3, 0x4f, 0xca, 0x9f, 0x95, 0x0f, 0x8f, 0xcb, 0xb5, 0xea, 0x17, 0x47, + 0x7b, 0xb9, 0x77, 0x10, 0xc0, 0xc8, 0xee, 0xe1, 0x93, 0x47, 0xfb, 0x7b, 0x39, 0x05, 0x8d, 0x42, + 0xb2, 0x54, 0xae, 0xe6, 0x12, 0x68, 0x1c, 0xc6, 0x76, 0x4b, 0x95, 0x1d, 0x6d, 0xaf, 0xba, 0x97, + 0x4b, 0xa2, 0x09, 0x48, 0xef, 0x6c, 0x57, 0xf7, 0x8a, 0x87, 0x5a, 0x69, 0x67, 0x7b, 0x3f, 0x37, + 0x74, 0xf3, 0xff, 0x21, 0x17, 0x9c, 0xe8, 0x22, 0x15, 0xa6, 0x1d, 0xce, 0x87, 0x47, 0xd5, 0xd2, + 0x41, 0xe9, 0xcb, 0xed, 0x6a, 0xe9, 0xb0, 0x9c, 0x7b, 0x87, 0x32, 0x3b, 0x28, 0x95, 0xe9, 0x0e, + 0x95, 0x41, 0x57, 0xdb, 0x9f, 0xf3, 0x55, 0xe2, 0x66, 0x11, 0x86, 0xd9, 0xf7, 0x3f, 0x4a, 0xc3, + 0xe8, 0xd1, 0x5e, 0x79, 0xb7, 0x54, 0x2e, 0xe6, 0xde, 0xa1, 0x0b, 0xed, 0x49, 0xb9, 0x4c, 0x17, + 0x0a, 0xca, 0x40, 0x6a, 0xe7, 0xf0, 0xe0, 0x68, 0x7f, 0xaf, 0xba, 0xb7, 0x9b, 0x4b, 0x50, 0xbc, + 0x9f, 0x95, 0xf6, 0xf7, 0xf7, 0x76, 0x73, 0x49, 0x94, 0x82, 0xe1, 0x3d, 0x4d, 0x3b, 0xd4, 0x72, + 0xdf, 0x16, 0xfe, 0x33, 0x0b, 0xa3, 0x07, 0x7a, 0x5b, 0x6f, 0x90, 0x2e, 0x6a, 0x41, 0x5a, 0x9a, + 0x47, 0xa2, 0x39, 0x66, 0xc0, 0xde, 0x61, 0x67, 0x7e, 0xa6, 0xf7, 0x80, 0x96, 0xad, 0x8d, 0x9f, + 0xfd, 0xed, 0x9f, 0xbf, 0x49, 0xac, 0x63, 0x95, 0xfd, 0x11, 0x52, 0x30, 0xdd, 0x94, 0xc8, 0xb6, + 0x7c, 0x03, 0x48, 0xf4, 0x35, 0x8c, 0x39, 0x43, 0x44, 0xc4, 0x87, 0xae, 0x81, 0xf1, 0x66, 0x1e, + 0x05, 0x76, 0xa9, 0x94, 0x75, 0x26, 0x05, 0xa3, 0x15, 0x9f, 0x14, 0x87, 0x66, 0xf3, 0x95, 0x93, + 0x28, 0xaf, 0xd1, 0x29, 0x8c, 0xcb, 0x43, 0x4a, 0xa4, 0xfa, 0xb8, 0x49, 0xf9, 0x95, 0x9f, 0x0d, + 0x39, 0xa1, 0xb2, 0x56, 0x99, 0xac, 0x05, 0x34, 0x1f, 0x2a, 0x8b, 0x31, 0x3d, 0x73, 0x6c, 0xc6, + 0xff, 0x2a, 0x23, 0xdb, 0x4c, 0x1e, 0x00, 0xfa, 0x6c, 0xe6, 0xcd, 0xfa, 0xf0, 0x75, 0x26, 0x61, + 0x35, 0xd4, 0x66, 0x8c, 0x6c, 0x8b, 0x8f, 0xfc, 0xd0, 0x09, 0xa4, 0xdc, 0x49, 0x24, 0x9a, 0x71, + 0xf0, 0xfa, 0x06, 0x99, 0xf9, 0xa9, 0xe0, 0x36, 0x95, 0x70, 0x83, 0x49, 0xb8, 0x8a, 0x56, 0x83, + 0x3a, 0x70, 0x22, 0xd9, 0x60, 0xdc, 0x21, 0x5c, 0x91, 0x69, 0x1f, 0xaf, 0x1e, 0x87, 0x48, 0x2a, + 0x44, 0x3a, 0x84, 0xd1, 0x6c, 0xbe, 0x72, 0x26, 0x4c, 0xaf, 0x91, 0x05, 0x59, 0xff, 0xe0, 0x11, + 0xe5, 0x19, 0xbf, 0xd0, 0x59, 0x66, 0x5e, 0x0d, 0x3d, 0xa3, 0x12, 0x6f, 0x31, 0x89, 0xef, 0xe2, + 0x05, 0x9f, 0x44, 0x3f, 0xe5, 0x96, 0x98, 0x76, 0xa2, 0xaf, 0x00, 0xbc, 0x61, 0x1e, 0x72, 0x3d, + 0xed, 0x1f, 0x41, 0xe4, 0xa7, 0x7b, 0xf6, 0xa9, 0xa0, 0x2b, 0x4c, 0xd0, 0x3c, 0x9a, 0x0b, 0xaa, + 0xe6, 0xb0, 0x7b, 0x09, 0x93, 0x3d, 0x23, 0x39, 0xb4, 0xc4, 0x78, 0x45, 0xcd, 0x01, 0xf3, 0x0b, + 0x51, 0xc7, 0x92, 0xb7, 0xf2, 0xcb, 0x3e, 0x89, 0x3d, 0xc4, 0x5b, 0xca, 0x4d, 0xf4, 0x42, 0x9a, + 0x86, 0xba, 0xe3, 0xb5, 0x25, 0xbf, 0x1e, 0x81, 0x59, 0xa0, 0x90, 0x1d, 0x3e, 0xf2, 0xc2, 0xd7, + 0x98, 0xec, 0x15, 0xb4, 0x1c, 0xae, 0xad, 0x2b, 0xa3, 0xcd, 0x86, 0xe2, 0xd2, 0x24, 0x48, 0xb8, + 0x31, 0x74, 0xda, 0x95, 0x57, 0x43, 0xcf, 0x24, 0x79, 0x01, 0x37, 0xfa, 0x29, 0xa9, 0xa2, 0xdf, + 0x29, 0xfc, 0x03, 0x29, 0x38, 0xaf, 0x41, 0x2b, 0x2e, 0xeb, 0x88, 0xc9, 0x52, 0x7e, 0x39, 0x86, + 0x82, 0x42, 0xb8, 0xcf, 0x20, 0xbc, 0x87, 0x6f, 0x45, 0x24, 0x47, 0xd8, 0x4d, 0x0a, 0xe9, 0x6b, + 0x16, 0x54, 0xce, 0x1f, 0xdc, 0xdd, 0xa0, 0xf2, 0x0f, 0x80, 0xbc, 0xa0, 0x92, 0x87, 0x34, 0x18, + 0x33, 0x99, 0x8b, 0xb8, 0x27, 0xa8, 0x04, 0x15, 0xe5, 0xff, 0x6b, 0x05, 0xe6, 0x22, 0x3e, 0x54, + 0xd0, 0x55, 0xde, 0x9e, 0xc6, 0x7e, 0x8b, 0xe4, 0x57, 0xe3, 0x89, 0x28, 0x8e, 0x4d, 0x86, 0xe3, + 0x06, 0x5e, 0xf3, 0xe1, 0x88, 0xb8, 0x42, 0x41, 0xfd, 0x4e, 0x81, 0xb9, 0x62, 0x2c, 0xa8, 0xe2, + 0x20, 0xa0, 0xe2, 0x3e, 0x84, 0xf0, 0x87, 0x0c, 0xd4, 0x5d, 0xb4, 0x19, 0x1d, 0x13, 0xde, 0x95, + 0xcd, 0x57, 0x4e, 0x73, 0xf3, 0x1a, 0xfd, 0x5e, 0x81, 0x7c, 0x74, 0xef, 0x8f, 0xae, 0xc5, 0x88, + 0x96, 0x5f, 0x82, 0xb5, 0xbe, 0x74, 0x14, 0xe5, 0x16, 0x43, 0xf9, 0x3e, 0x2a, 0x0c, 0x80, 0x92, + 0xde, 0x92, 0x8b, 0xec, 0xf7, 0x0a, 0xe4, 0xa3, 0xdb, 0x5d, 0x01, 0xb4, 0x6f, 0xf7, 0x2f, 0x80, + 0xf6, 0xe9, 0x9b, 0x71, 0x81, 0x01, 0xbd, 0x8d, 0xaf, 0x07, 0x7d, 0x1c, 0x71, 0x8b, 0xba, 0x59, + 0x58, 0x32, 0x1e, 0x60, 0x71, 0x40, 0x80, 0x7d, 0x5a, 0xeb, 0x68, 0x4b, 0x46, 0xdc, 0x92, 0x5d, + 0xfe, 0x07, 0x05, 0x96, 0x62, 0xdb, 0x45, 0x74, 0x23, 0x1e, 0x83, 0xec, 0xf8, 0xeb, 0x83, 0x90, + 0x52, 0xc4, 0x9f, 0x30, 0xc4, 0x1f, 0xa2, 0x0f, 0x06, 0x43, 0x1c, 0x74, 0xff, 0x97, 0x90, 0x72, + 0x47, 0x6e, 0xe2, 0x1d, 0x0f, 0x4e, 0xfb, 0xc4, 0x3b, 0x1e, 0x98, 0xcc, 0x89, 0x5e, 0x04, 0xcf, + 0xfa, 0x5d, 0xe9, 0x10, 0x51, 0xcf, 0x09, 0xde, 0x6c, 0xa0, 0x23, 0xf1, 0x96, 0x87, 0x4a, 0x12, + 0x6f, 0x69, 0xb0, 0x16, 0xcd, 0x9b, 0x11, 0x51, 0xde, 0x2f, 0x61, 0xb2, 0x67, 0x4e, 0x2b, 0x5e, + 0x9b, 0xa8, 0xa1, 0xb1, 0x78, 0x6d, 0x22, 0xc6, 0xbb, 0xe2, 0xa5, 0xc3, 0xcb, 0x81, 0x47, 0x3c, + 0x40, 0x4c, 0x65, 0x9b, 0xfc, 0x0f, 0xdf, 0xd2, 0x74, 0x0f, 0xb9, 0x0f, 0x59, 0xc8, 0x34, 0x30, + 0x3f, 0x1f, 0x7e, 0x48, 0xa5, 0xae, 0x31, 0xa9, 0xcb, 0x68, 0xb1, 0x27, 0x73, 0x65, 0xee, 0xcf, + 0xf8, 0x0b, 0xe7, 0x0d, 0xf4, 0xa4, 0x17, 0xae, 0x67, 0x3a, 0x28, 0xbd, 0x70, 0x81, 0x09, 0x20, + 0xbe, 0xca, 0xa4, 0x2d, 0xa1, 0x85, 0x50, 0x69, 0x9c, 0xb2, 0x50, 0x05, 0xf0, 0xca, 0x06, 0x7a, + 0xfc, 0xe3, 0x3c, 0xae, 0x05, 0x03, 0x32, 0xbe, 0x80, 0x44, 0x9f, 0xbf, 0xad, 0x47, 0xf4, 0x64, + 0x84, 0xfd, 0x8f, 0xe1, 0xbd, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0x3a, 0x50, 0x27, 0x40, 0x93, + 0x28, 0x00, 0x00, } diff --git a/pkg/api/api.swagger.json b/pkg/api/api.swagger.json index bb121bccb5a..937bb3fde2c 100644 --- a/pkg/api/api.swagger.json +++ b/pkg/api/api.swagger.json @@ -305,7 +305,7 @@ }, "/api/Manager/GetTrial/{trial_id}": { "get": { - "summary": "Get a Trial Configuration from DB by ID of Trial.", + "summary": "*\nGet a Trial Configuration from DB by ID of Trial.", "operationId": "GetTrial", "responses": { "200": { @@ -381,7 +381,7 @@ }, "/api/Manager/GetWorkerFullInfo": { "get": { - "summary": "* \nGet a full informations related to specified Workers.\nIt includes Worker Config, HyperParameters and Metrics Logs.", + "summary": "* \nGet full information related to specified Workers.\nIt includes Worker Config, HyperParameters and Metrics Logs.", "operationId": "GetWorkerFullInfo", "responses": { "200": { @@ -425,7 +425,7 @@ }, "/api/Manager/GetWorkers": { "get": { - "summary": "* \nGet a Worker Configs and Statuses from DB by ID of Study, Trial or Worker.", + "summary": "* \nGet a Worker Configs and Status from DB by ID of Study, Trial or Worker.", "operationId": "GetWorkers", "responses": { "200": { @@ -594,7 +594,7 @@ }, "/api/Manager/SetSuggestionParameters": { "post": { - "summary": "*\nCreate or Update parameter set for a suggestion service.\nWhen you specified a ID of parameter set, it will update the parameter set by your request.\nWhen you specified no ID, it will create a new parameter set for corresponding study and suggestion service.\nThe parameters are key-value format.", + "summary": "*\nCreate or Update parameter set for a suggestion service.\nIf you specify an ID of parameter set, it will update the parameter set by your request.\nIf you don't specify an ID, it will create a new parameter set for corresponding study and suggestion service.\nThe parameters are key-value format.", "operationId": "SetSuggestionParameters", "responses": { "200": { @@ -699,7 +699,7 @@ "type": "string" } }, - "description": "*\nParameter for EarlyStopping service. Key value format." + "description": "*\nParameter for EarlyStopping service. Key-value format." }, "apiEarlyStoppingParameterSet": { "type": "object", @@ -920,7 +920,8 @@ "trial": { "$ref": "#/definitions/apiTrial" } - } + }, + "title": "*\nReturn a trial configuration by specified trial ID" }, "apiGetTrialsReply": { "type": "object", @@ -1295,7 +1296,7 @@ "type": "string" } }, - "description": "*\nParameter for Suggestion service. Key value format." + "description": "*\nParameter for Suggestion service. Key-value format." }, "apiSuggestionParameterSet": { "type": "object", @@ -1324,7 +1325,7 @@ "type": "string" } }, - "description": "*\nTag for each resources." + "description": "*\nTag for each resource." }, "apiTrial": { "type": "object", @@ -1351,7 +1352,7 @@ } } }, - "description": "*\nA set of Hyperparameter.\nIn a study, multiple trials are evaluated by worker.\nSuggestion service will generate next trials." + "description": "*\nA set of Hyperparameter.\nIn a study, multiple trials are evaluated by workers.\nSuggestion service will generate next trials." }, "apiUpdateWorkerStateReply": { "type": "object" diff --git a/pkg/api/gen-doc/api.md b/pkg/api/gen-doc/api.md index 2a841a0526a..8510bf6add4 100644 --- a/pkg/api/gen-doc/api.md +++ b/pkg/api/gen-doc/api.md @@ -36,6 +36,8 @@ - [GetSuggestionParametersRequest](#api.GetSuggestionParametersRequest) - [GetSuggestionsReply](#api.GetSuggestionsReply) - [GetSuggestionsRequest](#api.GetSuggestionsRequest) + - [GetTrialReply](#api.GetTrialReply) + - [GetTrialRequest](#api.GetTrialRequest) - [GetTrialsReply](#api.GetTrialsReply) - [GetTrialsRequest](#api.GetTrialsRequest) - [GetWorkerFullInfoReply](#api.GetWorkerFullInfoReply) @@ -117,7 +119,7 @@ Return generated StudyID. ### CreateStudyRequest Create a Study from Study Config. -Generate a unique ID and store the Study to DB. +Generate an unique ID and store the Study to DB. | Field | Type | Label | Description | @@ -148,7 +150,7 @@ Return generated TrialID. ### CreateTrialRequest Create a Trial from Trial Config. -Generate a unique ID and store the Trial to DB. +Generate an unique ID and store the Trial to DB. | Field | Type | Label | Description | @@ -179,7 +181,7 @@ Generate a unique ID and store the Trial to DB. ### EarlyStoppingParameter -Parameter for EarlyStopping service. Key value format. +Parameter for EarlyStopping service. Key-value format. | Field | Type | Label | Description | @@ -587,6 +589,36 @@ Get a Study Config from DB by ID of Study. + + +### GetTrialReply +Return a trial configuration by specified trial ID + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| trial | [Trial](#api.Trial) | | | + + + + + + + + +### GetTrialRequest +Get a trial configuration from DB by trial ID + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| trial_id | [string](#string) | | | + + + + + + ### GetTrialsReply @@ -635,7 +667,7 @@ Get a Trial Configs from DB by ID of Study. ### GetWorkerFullInfoRequest -Get a full informations related to specified Workers. +Get a full information related to specified Workers. It includes Worker Config, HyperParameters and Metrics Logs. @@ -669,7 +701,7 @@ Return a Worker list by specified condition. ### GetWorkersRequest -Get a Worker Configs and Statuses from DB by ID of Study, Trial or Worker. +Get a configs and status of a Worker from DB by ID of Study, Trial or Worker. | Field | Type | Label | Description | @@ -822,7 +854,7 @@ Return generated WorkerID. ### RegisterWorkerRequest Create a Worker from Worker Config. -Generate a unique ID and store the Worker to DB. +Generate an unique ID and store the Worker to DB. | Field | Type | Label | Description | @@ -1094,7 +1126,7 @@ Overview of a study. For UI. ### SuggestionParameter -Parameter for Suggestion service. Key value format. +Parameter for Suggestion service. Key-value format. | Field | Type | Label | Description | @@ -1127,7 +1159,7 @@ Parameter for Suggestion service. Key value format. ### Tag -Tag for each resources. +Tag for each resource. | Field | Type | Label | Description | @@ -1144,7 +1176,7 @@ Tag for each resources. ### Trial A set of Hyperparameter. -In a study, multiple trials are evaluated by worker. +In a study, multiple trials are evaluated by workers. Suggestion service will generate next trials. @@ -1301,14 +1333,15 @@ https://cloud.google.com/service-infrastructure/docs/service-management/referenc | GetStudyList | [GetStudyListRequest](#api.GetStudyListRequest) | [GetStudyListReply](#api.GetStudyListRequest) | Get all Study Configs from DB. | | CreateTrial | [CreateTrialRequest](#api.CreateTrialRequest) | [CreateTrialReply](#api.CreateTrialRequest) | Create a Trial from Trial Config. Generate a unique ID and store the Trial to DB. | | GetTrials | [GetTrialsRequest](#api.GetTrialsRequest) | [GetTrialsReply](#api.GetTrialsRequest) | Get a Trial Configs from DB by ID of Study. | +| GetTrial | [GetTrialRequest](#api.GetTrialRequest) | [GetTrialReply](#api.GetTrialRequest) | Get a Trial Configuration from DB by ID of Trial. | | RegisterWorker | [RegisterWorkerRequest](#api.RegisterWorkerRequest) | [RegisterWorkerReply](#api.RegisterWorkerRequest) | Create a Worker from Worker Config. Generate a unique ID and store the Worker to DB. | -| GetWorkers | [GetWorkersRequest](#api.GetWorkersRequest) | [GetWorkersReply](#api.GetWorkersRequest) | Get a Worker Configs and Statuses from DB by ID of Study, Trial or Worker. | +| GetWorkers | [GetWorkersRequest](#api.GetWorkersRequest) | [GetWorkersReply](#api.GetWorkersRequest) | Get a Worker Configs and Status from DB by ID of Study, Trial or Worker. | | UpdateWorkerState | [UpdateWorkerStateRequest](#api.UpdateWorkerStateRequest) | [UpdateWorkerStateReply](#api.UpdateWorkerStateRequest) | Update a Status of Worker. | -| GetWorkerFullInfo | [GetWorkerFullInfoRequest](#api.GetWorkerFullInfoRequest) | [GetWorkerFullInfoReply](#api.GetWorkerFullInfoRequest) | Get a full informations related to specified Workers. It includes Worker Config, HyperParameters and Metrics Logs. | +| GetWorkerFullInfo | [GetWorkerFullInfoRequest](#api.GetWorkerFullInfoRequest) | [GetWorkerFullInfoReply](#api.GetWorkerFullInfoRequest) | Get full information related to specified Workers. It includes Worker Config, HyperParameters and Metrics Logs. | | GetSuggestions | [GetSuggestionsRequest](#api.GetSuggestionsRequest) | [GetSuggestionsReply](#api.GetSuggestionsRequest) | Get Suggestions from a Suggestion service. | | GetShouldStopWorkers | [GetShouldStopWorkersRequest](#api.GetShouldStopWorkersRequest) | [GetShouldStopWorkersReply](#api.GetShouldStopWorkersRequest) | | | GetMetrics | [GetMetricsRequest](#api.GetMetricsRequest) | [GetMetricsReply](#api.GetMetricsRequest) | Get metrics of workers. You can get all logs of metrics since start of the worker. | -| SetSuggestionParameters | [SetSuggestionParametersRequest](#api.SetSuggestionParametersRequest) | [SetSuggestionParametersReply](#api.SetSuggestionParametersRequest) | Create or Update parameter set for a suggestion service. When you specified a ID of parameter set, it will update the parameter set by your request. When you specified no ID, it will create a new parameter set for corresponding study and suggestion service. The parameters are key-value format. | +| SetSuggestionParameters | [SetSuggestionParametersRequest](#api.SetSuggestionParametersRequest) | [SetSuggestionParametersReply](#api.SetSuggestionParametersRequest) | Create or Update parameter set for a suggestion service. If you specify an ID of parameter set, it will update the parameter set by your request. If you don't specify an ID, it will create a new parameter set for corresponding study and suggestion service. The parameters are key-value format. | | GetSuggestionParameters | [GetSuggestionParametersRequest](#api.GetSuggestionParametersRequest) | [GetSuggestionParametersReply](#api.GetSuggestionParametersRequest) | Get suggestion parameter set from DB specified. | | GetSuggestionParameterList | [GetSuggestionParameterListRequest](#api.GetSuggestionParameterListRequest) | [GetSuggestionParameterListReply](#api.GetSuggestionParameterListRequest) | Get all suggestion parameter sets from DB. | | SetEarlyStoppingParameters | [SetEarlyStoppingParametersRequest](#api.SetEarlyStoppingParametersRequest) | [SetEarlyStoppingParametersReply](#api.SetEarlyStoppingParametersRequest) | | diff --git a/pkg/api/gen-doc/index.html b/pkg/api/gen-doc/index.html index e3239455171..fa0b014dd7f 100644 --- a/pkg/api/gen-doc/index.html +++ b/pkg/api/gen-doc/index.html @@ -306,6 +306,14 @@

Table of Contents

MGetSuggestionsRequest +
  • + MGetTrialReply +
  • + +
  • + MGetTrialRequest +
  • +
  • MGetTrialsReply
  • @@ -532,7 +540,7 @@

    CreateStudyReply

    CreateStudyRequest

    -

    Create a Study from Study Config.

    Generate a unique ID and store the Study to DB.

    +

    Create a Study from Study Config.

    Generate an unique ID and store the Study to DB.

    @@ -578,7 +586,7 @@

    CreateTrialReply

    CreateTrialRequest

    -

    Create a Trial from Trial Config.

    Generate a unique ID and store the Trial to DB.

    +

    Create a Trial from Trial Config.

    Generate an unique ID and store the Trial to DB.

    @@ -631,7 +639,7 @@

    DataSetInfo

    EarlyStoppingParameter

    -

    Parameter for EarlyStopping service. Key value format.

    +

    Parameter for EarlyStopping service. Key-value format.

    @@ -1317,6 +1325,52 @@

    GetSuggestionsRequest

    +

    GetTrialReply

    +

    Return a trial configuration by specified trial ID

    + + +
    + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    trialTrial

    + + + + +

    GetTrialRequest

    +

    Get a trial configuration from DB by trial ID

    + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    trial_idstring

    + + + +

    GetTrialsReply

    Return a trial list in specified Study.

    @@ -1387,7 +1441,7 @@

    GetWorkerFullInfoReply

    GetWorkerFullInfoRequest

    -

    Get a full informations related to specified Workers.

    It includes Worker Config, HyperParameters and Metrics Logs.

    +

    Get a full information related to specified Workers.

    It includes Worker Config, HyperParameters and Metrics Logs.

    @@ -1454,7 +1508,7 @@

    GetWorkersReply

    GetWorkersRequest

    -

    Get a Worker Configs and Statuses from DB by ID of Study, Trial or Worker.

    +

    Get a configs and status of a Worker from DB by ID of Study, Trial or Worker.

    @@ -1766,7 +1820,7 @@

    RegisterWorkerReply

    RegisterWorkerRequest

    -

    Create a Worker from Worker Config.

    Generate a unique ID and store the Worker to DB.

    +

    Create a Worker from Worker Config.

    Generate an unique ID and store the Worker to DB.

    @@ -2275,7 +2329,7 @@

    StudyOverview

    SuggestionParameter

    -

    Parameter for Suggestion service. Key value format.

    +

    Parameter for Suggestion service. Key-value format.

    @@ -2342,7 +2396,7 @@

    SuggestionParameterSet

    Tag

    -

    Tag for each resources.

    +

    Tag for each resource.

    @@ -2372,7 +2426,7 @@

    Tag

    Trial

    -

    A set of Hyperparameter.

    In a study, multiple trials are evaluated by worker.

    Suggestion service will generate next trials.

    +

    A set of Hyperparameter.

    In a study, multiple trials are evaluated by workers.

    Suggestion service will generate next trials.

    @@ -2741,6 +2795,13 @@

    Manager

    + + + + + + + @@ -2753,7 +2814,7 @@

    Manager

    - + @@ -2767,7 +2828,7 @@

    Manager

    - @@ -2798,8 +2859,8 @@

    Manager

    diff --git a/pkg/api/operators/apis/studyjob/v1alpha1/studyjob_types.go b/pkg/api/operators/apis/studyjob/v1alpha1/studyjob_types.go index 1d81ccc5fb4..b2b2ca153ad 100644 --- a/pkg/api/operators/apis/studyjob/v1alpha1/studyjob_types.go +++ b/pkg/api/operators/apis/studyjob/v1alpha1/studyjob_types.go @@ -64,6 +64,7 @@ type StudyJobStatus struct { Trials []TrialSet `json:"trials,omitempty"` BestObjectiveValue *float64 `json:"bestObjectiveValue,omitempty"` BestTrialID string `json:"bestTrialId,omitempty"` + BestWorkerID string `json:"bestWorkerId,omitempty"` SuggestionCount int `json:"suggestionCount,omitempty"` } diff --git a/pkg/api/python/api_pb2.py b/pkg/api/python/api_pb2.py index 97b38c3ceba..3bef6a7c8c7 100644 --- a/pkg/api/python/api_pb2.py +++ b/pkg/api/python/api_pb2.py @@ -21,11 +21,7 @@ name='api.proto', package='api', syntax='proto3', -<<<<<<< HEAD - serialized_pb=_b('\n\tapi.proto\x12\x03\x61pi\x1a\x1cgoogle/api/annotations.proto\"7\n\rFeasibleSpace\x12\x0b\n\x03max\x18\x01 \x01(\t\x12\x0b\n\x03min\x18\x02 \x01(\t\x12\x0c\n\x04list\x18\x03 \x03(\t\"q\n\x0fParameterConfig\x12\x0c\n\x04name\x18\x01 \x01(\t\x12*\n\x0eparameter_type\x18\x02 \x01(\x0e\x32\x12.api.ParameterType\x12$\n\x08\x66\x65\x61sible\x18\x03 \x01(\x0b\x32\x12.api.FeasibleSpace\"T\n\tParameter\x12\x0c\n\x04name\x18\x01 \x01(\t\x12*\n\x0eparameter_type\x18\x02 \x01(\x0e\x32\x12.api.ParameterType\x12\r\n\x05value\x18\x03 \x01(\t\"l\n\rMetricsLogSet\x12\x11\n\tworker_id\x18\x01 \x01(\t\x12%\n\x0cmetrics_logs\x18\x02 \x03(\x0b\x32\x0f.api.MetricsLog\x12!\n\rworker_status\x18\x03 \x01(\x0e\x32\n.api.State\"&\n\x07Metrics\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"/\n\x10MetricsValueTime\x12\x0c\n\x04time\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"A\n\nMetricsLog\x12\x0c\n\x04name\x18\x01 \x01(\t\x12%\n\x06values\x18\x02 \x03(\x0b\x32\x15.api.MetricsValueTime\"2\n\x13SuggestionParameter\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"5\n\x16\x45\x61rlyStoppingParameter\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"\"\n\x03Tag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"M\n\rStudyOverview\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05owner\x18\x02 \x01(\t\x12\n\n\x02id\x18\x03 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\"\x83\x01\n\x05Trial\x12\x10\n\x08trial_id\x18\x01 \x01(\t\x12\x10\n\x08study_id\x18\x02 \x01(\t\x12%\n\rparameter_set\x18\x03 \x03(\x0b\x32\x0e.api.Parameter\x12\x17\n\x0fobjective_value\x18\x04 \x01(\t\x12\x16\n\x04tags\x18\x05 \x03(\x0b\x32\x08.api.Tag\"\x97\x01\n\x06Worker\x12\x11\n\tworker_id\x18\x01 \x01(\t\x12\x10\n\x08study_id\x18\x02 \x01(\t\x12\x10\n\x08trial_id\x18\x03 \x01(\t\x12\x0c\n\x04Type\x18\x04 \x01(\t\x12\x1a\n\x06status\x18\x05 \x01(\x0e\x32\n.api.State\x12\x14\n\x0cTemplatePath\x18\x06 \x01(\t\x12\x16\n\x04tags\x18\x07 \x03(\x0b\x32\x08.api.Tag\"\xe2\x02\n\x0bStudyConfig\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05owner\x18\x02 \x01(\t\x12\x30\n\x11optimization_type\x18\x03 \x01(\x0e\x32\x15.api.OptimizationType\x12\x19\n\x11optimization_goal\x18\x04 \x01(\x01\x12<\n\x11parameter_configs\x18\x05 \x01(\x0b\x32!.api.StudyConfig.ParameterConfigs\x12\x1a\n\x12\x61\x63\x63\x65ss_permissions\x18\x06 \x03(\t\x12\x16\n\x04tags\x18\x07 \x03(\x0b\x32\x08.api.Tag\x12\x1c\n\x14objective_value_name\x18\x08 \x01(\t\x12\x0f\n\x07metrics\x18\t \x03(\t\x12\r\n\x05jobId\x18\n \x01(\t\x1a\x39\n\x10ParameterConfigs\x12%\n\x07\x63onfigs\x18\x01 \x03(\x0b\x32\x14.api.ParameterConfig\"<\n\x12\x43reateStudyRequest\x12&\n\x0cstudy_config\x18\x01 \x01(\x0b\x32\x10.api.StudyConfig\"$\n\x10\x43reateStudyReply\x12\x10\n\x08study_id\x18\x01 \x01(\t\"#\n\x0fGetStudyRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\"7\n\rGetStudyReply\x12&\n\x0cstudy_config\x18\x01 \x01(\x0b\x32\x10.api.StudyConfig\"\x15\n\x13GetStudyListRequest\"@\n\x11GetStudyListReply\x12+\n\x0fstudy_overviews\x18\x01 \x03(\x0b\x32\x12.api.StudyOverview\"/\n\x12\x43reateTrialRequest\x12\x19\n\x05trial\x18\x01 \x01(\x0b\x32\n.api.Trial\"$\n\x10\x43reateTrialReply\x12\x10\n\x08trial_id\x18\x01 \x01(\t\"$\n\x10GetTrialsRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\",\n\x0eGetTrialsReply\x12\x1a\n\x06trials\x18\x01 \x03(\x0b\x32\n.api.Trial\"4\n\x15RegisterWorkerRequest\x12\x1b\n\x06worker\x18\x01 \x01(\x0b\x32\x0b.api.Worker\"(\n\x13RegisterWorkerReply\x12\x11\n\tworker_id\x18\x01 \x01(\t\"O\n\x12StopWorkersRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\x12\x12\n\nworker_ids\x18\x02 \x03(\t\x12\x13\n\x0bis_complete\x18\x03 \x01(\x08\"\x12\n\x10StopWorkersReply\"J\n\x11GetWorkersRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\x12\x10\n\x08trial_id\x18\x02 \x01(\t\x12\x11\n\tworker_id\x18\x03 \x01(\t\"/\n\x0fGetWorkersReply\x12\x1c\n\x07workers\x18\x01 \x03(\x0b\x32\x0b.api.Worker\"I\n\x18UpdateWorkerStateRequest\x12\x11\n\tworker_id\x18\x01 \x01(\t\x12\x1a\n\x06status\x18\x02 \x01(\x0e\x32\n.api.State\"\x18\n\x16UpdateWorkerStateReply\"j\n\x18GetWorkerFullInfoRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\x12\x10\n\x08trial_id\x18\x02 \x01(\t\x12\x11\n\tworker_id\x18\x03 \x01(\t\x12\x17\n\x0fonly_latest_log\x18\x04 \x01(\x08\"{\n\x0eWorkerFullInfo\x12\x1b\n\x06Worker\x18\x01 \x01(\x0b\x32\x0b.api.Worker\x12%\n\rparameter_set\x18\x02 \x03(\x0b\x32\x0e.api.Parameter\x12%\n\x0cmetrics_logs\x18\x03 \x03(\x0b\x32\x0f.api.MetricsLog\"H\n\x16GetWorkerFullInfoReply\x12.\n\x11worker_full_infos\x18\x01 \x03(\x0b\x32\x13.api.WorkerFullInfo\"\x89\x01\n\x15GetSuggestionsRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\x12\x1c\n\x14suggestion_algorithm\x18\x02 \x01(\t\x12\x16\n\x0erequest_number\x18\x03 \x01(\x05\x12\x16\n\x0elog_worker_ids\x18\x04 \x03(\t\x12\x10\n\x08param_id\x18\x05 \x01(\t\"1\n\x13GetSuggestionsReply\x12\x1a\n\x06trials\x18\x01 \x03(\x0b\x32\n.api.Trial\"c\n\x1bGetShouldStopWorkersRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\x12 \n\x18\x65\x61rly_stopping_algorithm\x18\x02 \x01(\t\x12\x10\n\x08param_id\x18\x05 \x01(\t\";\n\x19GetShouldStopWorkersReply\x12\x1e\n\x16should_stop_worker_ids\x18\x01 \x03(\t\"P\n\x11GetMetricsRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\x12\x12\n\nworker_ids\x18\x02 \x03(\t\x12\x15\n\rmetrics_names\x18\x03 \x03(\t\"?\n\x0fGetMetricsReply\x12,\n\x10metrics_log_sets\x18\x01 \x03(\x0b\x32\x12.api.MetricsLogSet\"Z\n\x18ReportMetricsLogsRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\x12,\n\x10metrics_log_sets\x18\x03 \x03(\x0b\x32\x12.api.MetricsLogSet\"\x18\n\x16ReportMetricsLogsReply\"\x89\x01\n\tModelInfo\x12\x12\n\nstudy_name\x18\x01 \x01(\t\x12\x11\n\tworker_id\x18\x02 \x01(\t\x12\"\n\nparameters\x18\x03 \x03(\x0b\x32\x0e.api.Parameter\x12\x1d\n\x07metrics\x18\x04 \x03(\x0b\x32\x0c.api.Metrics\x12\x12\n\nmodel_path\x18\x05 \x01(\t\")\n\x0b\x44\x61taSetInfo\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\"J\n\x10SaveStudyRequest\x12\x12\n\nstudy_name\x18\x01 \x01(\t\x12\r\n\x05owner\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\"\x10\n\x0eSaveStudyReply\"k\n\x10SaveModelRequest\x12\x1d\n\x05model\x18\x01 \x01(\x0b\x32\x0e.api.ModelInfo\x12\"\n\x08\x64\x61ta_set\x18\x02 \x01(\x0b\x32\x10.api.DataSetInfo\x12\x14\n\x0ctensor_board\x18\x03 \x01(\x08\"\x10\n\x0eSaveModelReply\"\x18\n\x16GetSavedStudiesRequest\";\n\x14GetSavedStudiesReply\x12#\n\x07studies\x18\x01 \x03(\x0b\x32\x12.api.StudyOverview\"+\n\x15GetSavedModelsRequest\x12\x12\n\nstudy_name\x18\x01 \x01(\t\"5\n\x13GetSavedModelsReply\x12\x1e\n\x06models\x18\x01 \x03(\x0b\x32\x0e.api.ModelInfo\"=\n\x14GetSavedModelRequest\x12\x12\n\nstudy_name\x18\x01 \x01(\t\x12\x11\n\tworker_id\x18\x02 \x01(\t\"3\n\x12GetSavedModelReply\x12\x1d\n\x05model\x18\x01 \x01(\x0b\x32\x0e.api.ModelInfo\"\x9b\x01\n\x1eSetSuggestionParametersRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\x12\x1c\n\x14suggestion_algorithm\x18\x02 \x01(\t\x12\x10\n\x08param_id\x18\x03 \x01(\t\x12\x37\n\x15suggestion_parameters\x18\x04 \x03(\x0b\x32\x18.api.SuggestionParameter\"0\n\x1cSetSuggestionParametersReply\x12\x10\n\x08param_id\x18\x01 \x01(\t\"2\n\x1eGetSuggestionParametersRequest\x12\x10\n\x08param_id\x18\x01 \x01(\t\"W\n\x1cGetSuggestionParametersReply\x12\x37\n\x15suggestion_parameters\x18\x01 \x03(\x0b\x32\x18.api.SuggestionParameter\"5\n!GetSuggestionParameterListRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\"\x81\x01\n\x16SuggestionParameterSet\x12\x10\n\x08param_id\x18\x01 \x01(\t\x12\x1c\n\x14suggestion_algorithm\x18\x02 \x01(\t\x12\x37\n\x15suggestion_parameters\x18\x03 \x03(\x0b\x32\x18.api.SuggestionParameter\"a\n\x1fGetSuggestionParameterListReply\x12>\n\x19suggestion_parameter_sets\x18\x01 \x03(\x0b\x32\x1b.api.SuggestionParameterSet\")\n\x15StopSuggestionRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\"\x15\n\x13StopSuggestionReply\"\xa9\x01\n!SetEarlyStoppingParametersRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\x12 \n\x18\x65\x61rly_stopping_algorithm\x18\x02 \x01(\t\x12\x10\n\x08param_id\x18\x03 \x01(\t\x12>\n\x19\x65\x61rly_stopping_parameters\x18\x04 \x03(\x0b\x32\x1b.api.EarlyStoppingParameter\"3\n\x1fSetEarlyStoppingParametersReply\x12\x10\n\x08param_id\x18\x01 \x01(\t\"5\n!GetEarlyStoppingParametersRequest\x12\x10\n\x08param_id\x18\x01 \x01(\t\"a\n\x1fGetEarlyStoppingParametersReply\x12>\n\x19\x65\x61rly_stopping_parameters\x18\x01 \x03(\x0b\x32\x1b.api.EarlyStoppingParameter\"8\n$GetEarlyStoppingParameterListRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\"\x8f\x01\n\x19\x45\x61rlyStoppingParameterSet\x12\x10\n\x08param_id\x18\x01 \x01(\t\x12 \n\x18\x65\x61rly_stopping_algorithm\x18\x02 \x01(\t\x12>\n\x19\x65\x61rly_stopping_parameters\x18\x03 \x03(\x0b\x32\x1b.api.EarlyStoppingParameter\"k\n\"GetEarlyStoppingParameterListReply\x12\x45\n\x1d\x65\x61rly_stopping_parameter_sets\x18\x01 \x03(\x0b\x32\x1e.api.EarlyStoppingParameterSet*U\n\rParameterType\x12\x10\n\x0cUNKNOWN_TYPE\x10\x00\x12\n\n\x06\x44OUBLE\x10\x01\x12\x07\n\x03INT\x10\x02\x12\x0c\n\x08\x44ISCRETE\x10\x03\x12\x0f\n\x0b\x43\x41TEGORICAL\x10\x04*H\n\x10OptimizationType\x12\x18\n\x14UNKNOWN_OPTIMIZATION\x10\x00\x12\x0c\n\x08MINIMIZE\x10\x01\x12\x0c\n\x08MAXIMIZE\x10\x02*G\n\x05State\x12\x0b\n\x07PENDING\x10\x00\x12\x0b\n\x07RUNNING\x10\x01\x12\r\n\tCOMPLETED\x10\x02\x12\n\n\x06KILLED\x10\x03\x12\t\n\x05\x45RROR\x10x2\x9f\x16\n\x07Manager\x12m\n\x0b\x43reateStudy\x12\x17.api.CreateStudyRequest\x1a\x15.api.CreateStudyReply\".\x82\xd3\xe4\x93\x02(\"\x18/api/Manager/CreateStudy:\x0cstudy_config\x12^\n\x08GetStudy\x12\x14.api.GetStudyRequest\x1a\x12.api.GetStudyReply\"(\x82\xd3\xe4\x93\x02\"\x12 /api/Manager/GetStudy/{study_id}\x12\x63\n\x0cGetStudyList\x12\x18.api.GetStudyListRequest\x1a\x16.api.GetStudyListReply\"!\x82\xd3\xe4\x93\x02\x1b\x12\x19/api/Manager/GetStudyList\x12\x66\n\x0b\x43reateTrial\x12\x17.api.CreateTrialRequest\x1a\x15.api.CreateTrialReply\"\'\x82\xd3\xe4\x93\x02!\"\x18/api/Manager/CreateTrial:\x05trial\x12\x62\n\tGetTrials\x12\x15.api.GetTrialsRequest\x1a\x13.api.GetTrialsReply\")\x82\xd3\xe4\x93\x02#\x12!/api/Manager/GetTrials/{study_id}\x12s\n\x0eRegisterWorker\x12\x1a.api.RegisterWorkerRequest\x1a\x18.api.RegisterWorkerReply\"+\x82\xd3\xe4\x93\x02%\"\x1b/api/Manager/RegisterWorker:\x06worker\x12[\n\nGetWorkers\x12\x16.api.GetWorkersRequest\x1a\x14.api.GetWorkersReply\"\x1f\x82\xd3\xe4\x93\x02\x19\x12\x17/api/Manager/GetWorkers\x12z\n\x11UpdateWorkerState\x12\x1d.api.UpdateWorkerStateRequest\x1a\x1b.api.UpdateWorkerStateReply\")\x82\xd3\xe4\x93\x02#\x1a\x1e/api/Manager/UpdateWorkerState:\x01*\x12w\n\x11GetWorkerFullInfo\x12\x1d.api.GetWorkerFullInfoRequest\x1a\x1b.api.GetWorkerFullInfoReply\"&\x82\xd3\xe4\x93\x02 \x12\x1e/api/Manager/GetWorkerFullInfo\x12n\n\x0eGetSuggestions\x12\x1a.api.GetSuggestionsRequest\x1a\x18.api.GetSuggestionsReply\"&\x82\xd3\xe4\x93\x02 \"\x1b/api/Manager/GetSuggestions:\x01*\x12\x90\x01\n\x14GetShouldStopWorkers\x12 .api.GetShouldStopWorkersRequest\x1a\x1e.api.GetShouldStopWorkersReply\"6\x82\xd3\xe4\x93\x02\x30\"+/api/Manager/GetTrials/GetShouldStopWorkers:\x01*\x12^\n\nGetMetrics\x12\x16.api.GetMetricsRequest\x1a\x14.api.GetMetricsReply\"\"\x82\xd3\xe4\x93\x02\x1c\"\x17/api/Manager/GetMetrics:\x01*\x12\x92\x01\n\x17SetSuggestionParameters\x12#.api.SetSuggestionParametersRequest\x1a!.api.SetSuggestionParametersReply\"/\x82\xd3\xe4\x93\x02)\"$/api/Manager/SetSuggestionParameters:\x01*\x12\x9a\x01\n\x17GetSuggestionParameters\x12#.api.GetSuggestionParametersRequest\x1a!.api.GetSuggestionParametersReply\"7\x82\xd3\xe4\x93\x02\x31\x12//api/Manager/GetSuggestionParameters/{param_id}\x12\xa6\x01\n\x1aGetSuggestionParameterList\x12&.api.GetSuggestionParameterListRequest\x1a$.api.GetSuggestionParameterListReply\":\x82\xd3\xe4\x93\x02\x34\x12\x32/api/Manager/GetSuggestionParameterList/{study_id}\x12\x9e\x01\n\x1aSetEarlyStoppingParameters\x12&.api.SetEarlyStoppingParametersRequest\x1a$.api.SetEarlyStoppingParametersReply\"2\x82\xd3\xe4\x93\x02,\"\'/api/Manager/SetEarlyStoppingParameters:\x01*\x12\xa6\x01\n\x1aGetEarlyStoppingParameters\x12&.api.GetEarlyStoppingParametersRequest\x1a$.api.GetEarlyStoppingParametersReply\":\x82\xd3\xe4\x93\x02\x34\x12\x32/api/Manager/GetEarlyStoppingParameters/{param_id}\x12\xb2\x01\n\x1dGetEarlyStoppingParameterList\x12).api.GetEarlyStoppingParameterListRequest\x1a\'.api.GetEarlyStoppingParameterListReply\"=\x82\xd3\xe4\x93\x02\x37\x12\x35/api/Manager/GetEarlyStoppingParameterList/{study_id}\x12Z\n\tSaveStudy\x12\x15.api.SaveStudyRequest\x1a\x13.api.SaveStudyReply\"!\x82\xd3\xe4\x93\x02\x1b\"\x16/api/Manager/SaveStudy:\x01*\x12Z\n\tSaveModel\x12\x15.api.SaveModelRequest\x1a\x13.api.SaveModelReply\"!\x82\xd3\xe4\x93\x02\x1b\"\x16/api/Manager/SaveModel:\x01*\x12z\n\x11ReportMetricsLogs\x12\x1d.api.ReportMetricsLogsRequest\x1a\x1b.api.ReportMetricsLogsReply\")\x82\xd3\xe4\x93\x02#\"\x1e/api/Manager/ReportMetricsLogs:\x01*\x12o\n\x0fGetSavedStudies\x12\x1b.api.GetSavedStudiesRequest\x1a\x19.api.GetSavedStudiesReply\"$\x82\xd3\xe4\x93\x02\x1e\x12\x1c/api/Manager/GetSavedStudies\x12k\n\x0eGetSavedModels\x12\x1a.api.GetSavedModelsRequest\x1a\x18.api.GetSavedModelsReply\"#\x82\xd3\xe4\x93\x02\x1d\x12\x1b/api/Manager/GetSavedModels2T\n\nSuggestion\x12\x46\n\x0eGetSuggestions\x12\x1a.api.GetSuggestionsRequest\x1a\x18.api.GetSuggestionsReply2i\n\rEarlyStopping\x12X\n\x14GetShouldStopWorkers\x12 .api.GetShouldStopWorkersRequest\x1a\x1e.api.GetShouldStopWorkersReplyb\x06proto3') -======= - serialized_pb=_b('\n\tapi.proto\x12\x03\x61pi\x1a\x1cgoogle/api/annotations.proto\"7\n\rFeasibleSpace\x12\x0b\n\x03max\x18\x01 \x01(\t\x12\x0b\n\x03min\x18\x02 \x01(\t\x12\x0c\n\x04list\x18\x03 \x03(\t\"q\n\x0fParameterConfig\x12\x0c\n\x04name\x18\x01 \x01(\t\x12*\n\x0eparameter_type\x18\x02 \x01(\x0e\x32\x12.api.ParameterType\x12$\n\x08\x66\x65\x61sible\x18\x03 \x01(\x0b\x32\x12.api.FeasibleSpace\"T\n\tParameter\x12\x0c\n\x04name\x18\x01 \x01(\t\x12*\n\x0eparameter_type\x18\x02 \x01(\x0e\x32\x12.api.ParameterType\x12\r\n\x05value\x18\x03 \x01(\t\"l\n\rMetricsLogSet\x12\x11\n\tworker_id\x18\x01 \x01(\t\x12%\n\x0cmetrics_logs\x18\x02 \x03(\x0b\x32\x0f.api.MetricsLog\x12!\n\rworker_status\x18\x03 \x01(\x0e\x32\n.api.State\"&\n\x07Metrics\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"/\n\x10MetricsValueTime\x12\x0c\n\x04time\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"A\n\nMetricsLog\x12\x0c\n\x04name\x18\x01 \x01(\t\x12%\n\x06values\x18\x02 \x03(\x0b\x32\x15.api.MetricsValueTime\"2\n\x13SuggestionParameter\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"5\n\x16\x45\x61rlyStoppingParameter\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"\"\n\x03Tag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"M\n\rStudyOverview\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05owner\x18\x02 \x01(\t\x12\n\n\x02id\x18\x03 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\"\x83\x01\n\x05Trial\x12\x10\n\x08trial_id\x18\x01 \x01(\t\x12\x10\n\x08study_id\x18\x02 \x01(\t\x12%\n\rparameter_set\x18\x03 \x03(\x0b\x32\x0e.api.Parameter\x12\x17\n\x0fobjective_value\x18\x04 \x01(\t\x12\x16\n\x04tags\x18\x05 \x03(\x0b\x32\x08.api.Tag\"@\n\nVolumeConf\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x10\n\x08pvc_name\x18\x02 \x01(\t\x12\x12\n\nmount_path\x18\x03 \x01(\t\"\x97\x01\n\x06Worker\x12\x11\n\tworker_id\x18\x01 \x01(\t\x12\x10\n\x08study_id\x18\x02 \x01(\t\x12\x10\n\x08trial_id\x18\x03 \x01(\t\x12\x0c\n\x04Type\x18\x04 \x01(\t\x12\x1a\n\x06status\x18\x05 \x01(\x0e\x32\n.api.State\x12\x14\n\x0cTemplatePath\x18\x06 \x01(\t\x12\x16\n\x04tags\x18\x07 \x03(\x0b\x32\x08.api.Tag\"\xe2\x02\n\x0bStudyConfig\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05owner\x18\x02 \x01(\t\x12\x30\n\x11optimization_type\x18\x03 \x01(\x0e\x32\x15.api.OptimizationType\x12\x19\n\x11optimization_goal\x18\x04 \x01(\x01\x12<\n\x11parameter_configs\x18\x05 \x01(\x0b\x32!.api.StudyConfig.ParameterConfigs\x12\x1a\n\x12\x61\x63\x63\x65ss_permissions\x18\x06 \x03(\t\x12\x16\n\x04tags\x18\x07 \x03(\x0b\x32\x08.api.Tag\x12\x1c\n\x14objective_value_name\x18\x08 \x01(\t\x12\x0f\n\x07metrics\x18\t \x03(\t\x12\r\n\x05jobId\x18\n \x01(\t\x1a\x39\n\x10ParameterConfigs\x12%\n\x07\x63onfigs\x18\x01 \x03(\x0b\x32\x14.api.ParameterConfig\"<\n\x12\x43reateStudyRequest\x12&\n\x0cstudy_config\x18\x01 \x01(\x0b\x32\x10.api.StudyConfig\"$\n\x10\x43reateStudyReply\x12\x10\n\x08study_id\x18\x01 \x01(\t\"\x10\n\x0eStopStudyReply\"#\n\x0fGetStudyRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\"7\n\rGetStudyReply\x12&\n\x0cstudy_config\x18\x01 \x01(\x0b\x32\x10.api.StudyConfig\"\x15\n\x13GetStudyListRequest\"@\n\x11GetStudyListReply\x12+\n\x0fstudy_overviews\x18\x01 \x03(\x0b\x32\x12.api.StudyOverview\"/\n\x12\x43reateTrialRequest\x12\x19\n\x05trial\x18\x01 \x01(\x0b\x32\n.api.Trial\"$\n\x10\x43reateTrialReply\x12\x10\n\x08trial_id\x18\x01 \x01(\t\"$\n\x10GetTrialsRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\",\n\x0eGetTrialsReply\x12\x1a\n\x06trials\x18\x01 \x03(\x0b\x32\n.api.Trial\"#\n\x0fGetTrialRequest\x12\x10\n\x08trial_id\x18\x01 \x01(\t\"*\n\rGetTrialReply\x12\x19\n\x05trial\x18\x01 \x01(\x0b\x32\n.api.Trial\"4\n\x15RegisterWorkerRequest\x12\x1b\n\x06worker\x18\x01 \x01(\x0b\x32\x0b.api.Worker\"(\n\x13RegisterWorkerReply\x12\x11\n\tworker_id\x18\x01 \x01(\t\"O\n\x12StopWorkersRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\x12\x12\n\nworker_ids\x18\x02 \x03(\t\x12\x13\n\x0bis_complete\x18\x03 \x01(\x08\"\x12\n\x10StopWorkersReply\"J\n\x11GetWorkersRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\x12\x10\n\x08trial_id\x18\x02 \x01(\t\x12\x11\n\tworker_id\x18\x03 \x01(\t\"/\n\x0fGetWorkersReply\x12\x1c\n\x07workers\x18\x01 \x03(\x0b\x32\x0b.api.Worker\"I\n\x18UpdateWorkerStateRequest\x12\x11\n\tworker_id\x18\x01 \x01(\t\x12\x1a\n\x06status\x18\x02 \x01(\x0e\x32\n.api.State\"\x18\n\x16UpdateWorkerStateReply\"j\n\x18GetWorkerFullInfoRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\x12\x10\n\x08trial_id\x18\x02 \x01(\t\x12\x11\n\tworker_id\x18\x03 \x01(\t\x12\x17\n\x0fonly_latest_log\x18\x04 \x01(\x08\"{\n\x0eWorkerFullInfo\x12\x1b\n\x06Worker\x18\x01 \x01(\x0b\x32\x0b.api.Worker\x12%\n\rparameter_set\x18\x02 \x03(\x0b\x32\x0e.api.Parameter\x12%\n\x0cmetrics_logs\x18\x03 \x03(\x0b\x32\x0f.api.MetricsLog\"H\n\x16GetWorkerFullInfoReply\x12.\n\x11worker_full_infos\x18\x01 \x03(\x0b\x32\x13.api.WorkerFullInfo\"\x89\x01\n\x15GetSuggestionsRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\x12\x1c\n\x14suggestion_algorithm\x18\x02 \x01(\t\x12\x16\n\x0erequest_number\x18\x03 \x01(\x05\x12\x16\n\x0elog_worker_ids\x18\x04 \x03(\t\x12\x10\n\x08param_id\x18\x05 \x01(\t\"1\n\x13GetSuggestionsReply\x12\x1a\n\x06trials\x18\x01 \x03(\x0b\x32\n.api.Trial\"c\n\x1bGetShouldStopWorkersRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\x12 \n\x18\x65\x61rly_stopping_algorithm\x18\x02 \x01(\t\x12\x10\n\x08param_id\x18\x05 \x01(\t\";\n\x19GetShouldStopWorkersReply\x12\x1e\n\x16should_stop_worker_ids\x18\x01 \x03(\t\"P\n\x11GetMetricsRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\x12\x12\n\nworker_ids\x18\x02 \x03(\t\x12\x15\n\rmetrics_names\x18\x03 \x03(\t\"?\n\x0fGetMetricsReply\x12,\n\x10metrics_log_sets\x18\x01 \x03(\x0b\x32\x12.api.MetricsLogSet\"Z\n\x18ReportMetricsLogsRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\x12,\n\x10metrics_log_sets\x18\x03 \x03(\x0b\x32\x12.api.MetricsLogSet\"\x18\n\x16ReportMetricsLogsReply\"\x89\x01\n\tModelInfo\x12\x12\n\nstudy_name\x18\x01 \x01(\t\x12\x11\n\tworker_id\x18\x02 \x01(\t\x12\"\n\nparameters\x18\x03 \x03(\x0b\x32\x0e.api.Parameter\x12\x1d\n\x07metrics\x18\x04 \x03(\x0b\x32\x0c.api.Metrics\x12\x12\n\nmodel_path\x18\x05 \x01(\t\")\n\x0b\x44\x61taSetInfo\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\"J\n\x10SaveStudyRequest\x12\x12\n\nstudy_name\x18\x01 \x01(\t\x12\r\n\x05owner\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\"\x10\n\x0eSaveStudyReply\"k\n\x10SaveModelRequest\x12\x1d\n\x05model\x18\x01 \x01(\x0b\x32\x0e.api.ModelInfo\x12\"\n\x08\x64\x61ta_set\x18\x02 \x01(\x0b\x32\x10.api.DataSetInfo\x12\x14\n\x0ctensor_board\x18\x03 \x01(\x08\"\x10\n\x0eSaveModelReply\"\x18\n\x16GetSavedStudiesRequest\";\n\x14GetSavedStudiesReply\x12#\n\x07studies\x18\x01 \x03(\x0b\x32\x12.api.StudyOverview\"+\n\x15GetSavedModelsRequest\x12\x12\n\nstudy_name\x18\x01 \x01(\t\"5\n\x13GetSavedModelsReply\x12\x1e\n\x06models\x18\x01 \x03(\x0b\x32\x0e.api.ModelInfo\"=\n\x14GetSavedModelRequest\x12\x12\n\nstudy_name\x18\x01 \x01(\t\x12\x11\n\tworker_id\x18\x02 \x01(\t\"3\n\x12GetSavedModelReply\x12\x1d\n\x05model\x18\x01 \x01(\x0b\x32\x0e.api.ModelInfo\"\x9b\x01\n\x1eSetSuggestionParametersRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\x12\x1c\n\x14suggestion_algorithm\x18\x02 \x01(\t\x12\x10\n\x08param_id\x18\x03 \x01(\t\x12\x37\n\x15suggestion_parameters\x18\x04 \x03(\x0b\x32\x18.api.SuggestionParameter\"0\n\x1cSetSuggestionParametersReply\x12\x10\n\x08param_id\x18\x01 \x01(\t\"2\n\x1eGetSuggestionParametersRequest\x12\x10\n\x08param_id\x18\x01 \x01(\t\"W\n\x1cGetSuggestionParametersReply\x12\x37\n\x15suggestion_parameters\x18\x01 \x03(\x0b\x32\x18.api.SuggestionParameter\"5\n!GetSuggestionParameterListRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\"\x81\x01\n\x16SuggestionParameterSet\x12\x10\n\x08param_id\x18\x01 \x01(\t\x12\x1c\n\x14suggestion_algorithm\x18\x02 \x01(\t\x12\x37\n\x15suggestion_parameters\x18\x03 \x03(\x0b\x32\x18.api.SuggestionParameter\"a\n\x1fGetSuggestionParameterListReply\x12>\n\x19suggestion_parameter_sets\x18\x01 \x03(\x0b\x32\x1b.api.SuggestionParameterSet\")\n\x15StopSuggestionRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\"\x15\n\x13StopSuggestionReply\"\xa9\x01\n!SetEarlyStoppingParametersRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\x12 \n\x18\x65\x61rly_stopping_algorithm\x18\x02 \x01(\t\x12\x10\n\x08param_id\x18\x03 \x01(\t\x12>\n\x19\x65\x61rly_stopping_parameters\x18\x04 \x03(\x0b\x32\x1b.api.EarlyStoppingParameter\"3\n\x1fSetEarlyStoppingParametersReply\x12\x10\n\x08param_id\x18\x01 \x01(\t\"5\n!GetEarlyStoppingParametersRequest\x12\x10\n\x08param_id\x18\x01 \x01(\t\"a\n\x1fGetEarlyStoppingParametersReply\x12>\n\x19\x65\x61rly_stopping_parameters\x18\x01 \x03(\x0b\x32\x1b.api.EarlyStoppingParameter\"8\n$GetEarlyStoppingParameterListRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\"\x8f\x01\n\x19\x45\x61rlyStoppingParameterSet\x12\x10\n\x08param_id\x18\x01 \x01(\t\x12 \n\x18\x65\x61rly_stopping_algorithm\x18\x02 \x01(\t\x12>\n\x19\x65\x61rly_stopping_parameters\x18\x03 \x03(\x0b\x32\x1b.api.EarlyStoppingParameter\"k\n\"GetEarlyStoppingParameterListReply\x12\x45\n\x1d\x65\x61rly_stopping_parameter_sets\x18\x01 \x03(\x0b\x32\x1e.api.EarlyStoppingParameterSet*U\n\rParameterType\x12\x10\n\x0cUNKNOWN_TYPE\x10\x00\x12\n\n\x06\x44OUBLE\x10\x01\x12\x07\n\x03INT\x10\x02\x12\x0c\n\x08\x44ISCRETE\x10\x03\x12\x0f\n\x0b\x43\x41TEGORICAL\x10\x04*H\n\x10OptimizationType\x12\x18\n\x14UNKNOWN_OPTIMIZATION\x10\x00\x12\x0c\n\x08MINIMIZE\x10\x01\x12\x0c\n\x08MAXIMIZE\x10\x02*G\n\x05State\x12\x0b\n\x07PENDING\x10\x00\x12\x0b\n\x07RUNNING\x10\x01\x12\r\n\tCOMPLETED\x10\x02\x12\n\n\x06KILLED\x10\x03\x12\t\n\x05\x45RROR\x10x2\xff\x16\n\x07Manager\x12m\n\x0b\x43reateStudy\x12\x17.api.CreateStudyRequest\x1a\x15.api.CreateStudyReply\".\x82\xd3\xe4\x93\x02(\"\x18/api/Manager/CreateStudy:\x0cstudy_config\x12^\n\x08GetStudy\x12\x14.api.GetStudyRequest\x1a\x12.api.GetStudyReply\"(\x82\xd3\xe4\x93\x02\"\x12 /api/Manager/GetStudy/{study_id}\x12\x63\n\x0cGetStudyList\x12\x18.api.GetStudyListRequest\x1a\x16.api.GetStudyListReply\"!\x82\xd3\xe4\x93\x02\x1b\x12\x19/api/Manager/GetStudyList\x12\x66\n\x0b\x43reateTrial\x12\x17.api.CreateTrialRequest\x1a\x15.api.CreateTrialReply\"\'\x82\xd3\xe4\x93\x02!\"\x18/api/Manager/CreateTrial:\x05trial\x12\x62\n\tGetTrials\x12\x15.api.GetTrialsRequest\x1a\x13.api.GetTrialsReply\")\x82\xd3\xe4\x93\x02#\x12!/api/Manager/GetTrials/{study_id}\x12^\n\x08GetTrial\x12\x14.api.GetTrialRequest\x1a\x12.api.GetTrialReply\"(\x82\xd3\xe4\x93\x02\"\x12 /api/Manager/GetTrial/{trial_id}\x12s\n\x0eRegisterWorker\x12\x1a.api.RegisterWorkerRequest\x1a\x18.api.RegisterWorkerReply\"+\x82\xd3\xe4\x93\x02%\"\x1b/api/Manager/RegisterWorker:\x06worker\x12[\n\nGetWorkers\x12\x16.api.GetWorkersRequest\x1a\x14.api.GetWorkersReply\"\x1f\x82\xd3\xe4\x93\x02\x19\x12\x17/api/Manager/GetWorkers\x12z\n\x11UpdateWorkerState\x12\x1d.api.UpdateWorkerStateRequest\x1a\x1b.api.UpdateWorkerStateReply\")\x82\xd3\xe4\x93\x02#\x1a\x1e/api/Manager/UpdateWorkerState:\x01*\x12w\n\x11GetWorkerFullInfo\x12\x1d.api.GetWorkerFullInfoRequest\x1a\x1b.api.GetWorkerFullInfoReply\"&\x82\xd3\xe4\x93\x02 \x12\x1e/api/Manager/GetWorkerFullInfo\x12n\n\x0eGetSuggestions\x12\x1a.api.GetSuggestionsRequest\x1a\x18.api.GetSuggestionsReply\"&\x82\xd3\xe4\x93\x02 \"\x1b/api/Manager/GetSuggestions:\x01*\x12\x90\x01\n\x14GetShouldStopWorkers\x12 .api.GetShouldStopWorkersRequest\x1a\x1e.api.GetShouldStopWorkersReply\"6\x82\xd3\xe4\x93\x02\x30\"+/api/Manager/GetTrials/GetShouldStopWorkers:\x01*\x12^\n\nGetMetrics\x12\x16.api.GetMetricsRequest\x1a\x14.api.GetMetricsReply\"\"\x82\xd3\xe4\x93\x02\x1c\"\x17/api/Manager/GetMetrics:\x01*\x12\x92\x01\n\x17SetSuggestionParameters\x12#.api.SetSuggestionParametersRequest\x1a!.api.SetSuggestionParametersReply\"/\x82\xd3\xe4\x93\x02)\"$/api/Manager/SetSuggestionParameters:\x01*\x12\x9a\x01\n\x17GetSuggestionParameters\x12#.api.GetSuggestionParametersRequest\x1a!.api.GetSuggestionParametersReply\"7\x82\xd3\xe4\x93\x02\x31\x12//api/Manager/GetSuggestionParameters/{param_id}\x12\xa6\x01\n\x1aGetSuggestionParameterList\x12&.api.GetSuggestionParameterListRequest\x1a$.api.GetSuggestionParameterListReply\":\x82\xd3\xe4\x93\x02\x34\x12\x32/api/Manager/GetSuggestionParameterList/{study_id}\x12\x9e\x01\n\x1aSetEarlyStoppingParameters\x12&.api.SetEarlyStoppingParametersRequest\x1a$.api.SetEarlyStoppingParametersReply\"2\x82\xd3\xe4\x93\x02,\"\'/api/Manager/SetEarlyStoppingParameters:\x01*\x12\xa6\x01\n\x1aGetEarlyStoppingParameters\x12&.api.GetEarlyStoppingParametersRequest\x1a$.api.GetEarlyStoppingParametersReply\":\x82\xd3\xe4\x93\x02\x34\x12\x32/api/Manager/GetEarlyStoppingParameters/{param_id}\x12\xb2\x01\n\x1dGetEarlyStoppingParameterList\x12).api.GetEarlyStoppingParameterListRequest\x1a\'.api.GetEarlyStoppingParameterListReply\"=\x82\xd3\xe4\x93\x02\x37\x12\x35/api/Manager/GetEarlyStoppingParameterList/{study_id}\x12Z\n\tSaveStudy\x12\x15.api.SaveStudyRequest\x1a\x13.api.SaveStudyReply\"!\x82\xd3\xe4\x93\x02\x1b\"\x16/api/Manager/SaveStudy:\x01*\x12Z\n\tSaveModel\x12\x15.api.SaveModelRequest\x1a\x13.api.SaveModelReply\"!\x82\xd3\xe4\x93\x02\x1b\"\x16/api/Manager/SaveModel:\x01*\x12z\n\x11ReportMetricsLogs\x12\x1d.api.ReportMetricsLogsRequest\x1a\x1b.api.ReportMetricsLogsReply\")\x82\xd3\xe4\x93\x02#\"\x1e/api/Manager/ReportMetricsLogs:\x01*\x12o\n\x0fGetSavedStudies\x12\x1b.api.GetSavedStudiesRequest\x1a\x19.api.GetSavedStudiesReply\"$\x82\xd3\xe4\x93\x02\x1e\x12\x1c/api/Manager/GetSavedStudies\x12k\n\x0eGetSavedModels\x12\x1a.api.GetSavedModelsRequest\x1a\x18.api.GetSavedModelsReply\"#\x82\xd3\xe4\x93\x02\x1d\x12\x1b/api/Manager/GetSavedModels2T\n\nSuggestion\x12\x46\n\x0eGetSuggestions\x12\x1a.api.GetSuggestionsRequest\x1a\x18.api.GetSuggestionsReply2i\n\rEarlyStopping\x12X\n\x14GetShouldStopWorkers\x12 .api.GetShouldStopWorkersRequest\x1a\x1e.api.GetShouldStopWorkersReplyb\x06proto3') ->>>>>>> add bestTrialId to statusJob status + serialized_pb=_b('\n\tapi.proto\x12\x03\x61pi\x1a\x1cgoogle/api/annotations.proto\"7\n\rFeasibleSpace\x12\x0b\n\x03max\x18\x01 \x01(\t\x12\x0b\n\x03min\x18\x02 \x01(\t\x12\x0c\n\x04list\x18\x03 \x03(\t\"q\n\x0fParameterConfig\x12\x0c\n\x04name\x18\x01 \x01(\t\x12*\n\x0eparameter_type\x18\x02 \x01(\x0e\x32\x12.api.ParameterType\x12$\n\x08\x66\x65\x61sible\x18\x03 \x01(\x0b\x32\x12.api.FeasibleSpace\"T\n\tParameter\x12\x0c\n\x04name\x18\x01 \x01(\t\x12*\n\x0eparameter_type\x18\x02 \x01(\x0e\x32\x12.api.ParameterType\x12\r\n\x05value\x18\x03 \x01(\t\"l\n\rMetricsLogSet\x12\x11\n\tworker_id\x18\x01 \x01(\t\x12%\n\x0cmetrics_logs\x18\x02 \x03(\x0b\x32\x0f.api.MetricsLog\x12!\n\rworker_status\x18\x03 \x01(\x0e\x32\n.api.State\"&\n\x07Metrics\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"/\n\x10MetricsValueTime\x12\x0c\n\x04time\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"A\n\nMetricsLog\x12\x0c\n\x04name\x18\x01 \x01(\t\x12%\n\x06values\x18\x02 \x03(\x0b\x32\x15.api.MetricsValueTime\"2\n\x13SuggestionParameter\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"5\n\x16\x45\x61rlyStoppingParameter\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"\"\n\x03Tag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"M\n\rStudyOverview\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05owner\x18\x02 \x01(\t\x12\n\n\x02id\x18\x03 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\"\x83\x01\n\x05Trial\x12\x10\n\x08trial_id\x18\x01 \x01(\t\x12\x10\n\x08study_id\x18\x02 \x01(\t\x12%\n\rparameter_set\x18\x03 \x03(\x0b\x32\x0e.api.Parameter\x12\x17\n\x0fobjective_value\x18\x04 \x01(\t\x12\x16\n\x04tags\x18\x05 \x03(\x0b\x32\x08.api.Tag\"\x97\x01\n\x06Worker\x12\x11\n\tworker_id\x18\x01 \x01(\t\x12\x10\n\x08study_id\x18\x02 \x01(\t\x12\x10\n\x08trial_id\x18\x03 \x01(\t\x12\x0c\n\x04Type\x18\x04 \x01(\t\x12\x1a\n\x06status\x18\x05 \x01(\x0e\x32\n.api.State\x12\x14\n\x0cTemplatePath\x18\x06 \x01(\t\x12\x16\n\x04tags\x18\x07 \x03(\x0b\x32\x08.api.Tag\"\xe2\x02\n\x0bStudyConfig\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05owner\x18\x02 \x01(\t\x12\x30\n\x11optimization_type\x18\x03 \x01(\x0e\x32\x15.api.OptimizationType\x12\x19\n\x11optimization_goal\x18\x04 \x01(\x01\x12<\n\x11parameter_configs\x18\x05 \x01(\x0b\x32!.api.StudyConfig.ParameterConfigs\x12\x1a\n\x12\x61\x63\x63\x65ss_permissions\x18\x06 \x03(\t\x12\x16\n\x04tags\x18\x07 \x03(\x0b\x32\x08.api.Tag\x12\x1c\n\x14objective_value_name\x18\x08 \x01(\t\x12\x0f\n\x07metrics\x18\t \x03(\t\x12\r\n\x05jobId\x18\n \x01(\t\x1a\x39\n\x10ParameterConfigs\x12%\n\x07\x63onfigs\x18\x01 \x03(\x0b\x32\x14.api.ParameterConfig\"<\n\x12\x43reateStudyRequest\x12&\n\x0cstudy_config\x18\x01 \x01(\x0b\x32\x10.api.StudyConfig\"$\n\x10\x43reateStudyReply\x12\x10\n\x08study_id\x18\x01 \x01(\t\"#\n\x0fGetStudyRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\"7\n\rGetStudyReply\x12&\n\x0cstudy_config\x18\x01 \x01(\x0b\x32\x10.api.StudyConfig\"\x15\n\x13GetStudyListRequest\"@\n\x11GetStudyListReply\x12+\n\x0fstudy_overviews\x18\x01 \x03(\x0b\x32\x12.api.StudyOverview\"/\n\x12\x43reateTrialRequest\x12\x19\n\x05trial\x18\x01 \x01(\x0b\x32\n.api.Trial\"$\n\x10\x43reateTrialReply\x12\x10\n\x08trial_id\x18\x01 \x01(\t\"$\n\x10GetTrialsRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\",\n\x0eGetTrialsReply\x12\x1a\n\x06trials\x18\x01 \x03(\x0b\x32\n.api.Trial\"#\n\x0fGetTrialRequest\x12\x10\n\x08trial_id\x18\x01 \x01(\t\"*\n\rGetTrialReply\x12\x19\n\x05trial\x18\x01 \x01(\x0b\x32\n.api.Trial\"4\n\x15RegisterWorkerRequest\x12\x1b\n\x06worker\x18\x01 \x01(\x0b\x32\x0b.api.Worker\"(\n\x13RegisterWorkerReply\x12\x11\n\tworker_id\x18\x01 \x01(\t\"O\n\x12StopWorkersRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\x12\x12\n\nworker_ids\x18\x02 \x03(\t\x12\x13\n\x0bis_complete\x18\x03 \x01(\x08\"\x12\n\x10StopWorkersReply\"J\n\x11GetWorkersRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\x12\x10\n\x08trial_id\x18\x02 \x01(\t\x12\x11\n\tworker_id\x18\x03 \x01(\t\"/\n\x0fGetWorkersReply\x12\x1c\n\x07workers\x18\x01 \x03(\x0b\x32\x0b.api.Worker\"I\n\x18UpdateWorkerStateRequest\x12\x11\n\tworker_id\x18\x01 \x01(\t\x12\x1a\n\x06status\x18\x02 \x01(\x0e\x32\n.api.State\"\x18\n\x16UpdateWorkerStateReply\"j\n\x18GetWorkerFullInfoRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\x12\x10\n\x08trial_id\x18\x02 \x01(\t\x12\x11\n\tworker_id\x18\x03 \x01(\t\x12\x17\n\x0fonly_latest_log\x18\x04 \x01(\x08\"{\n\x0eWorkerFullInfo\x12\x1b\n\x06Worker\x18\x01 \x01(\x0b\x32\x0b.api.Worker\x12%\n\rparameter_set\x18\x02 \x03(\x0b\x32\x0e.api.Parameter\x12%\n\x0cmetrics_logs\x18\x03 \x03(\x0b\x32\x0f.api.MetricsLog\"H\n\x16GetWorkerFullInfoReply\x12.\n\x11worker_full_infos\x18\x01 \x03(\x0b\x32\x13.api.WorkerFullInfo\"\x89\x01\n\x15GetSuggestionsRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\x12\x1c\n\x14suggestion_algorithm\x18\x02 \x01(\t\x12\x16\n\x0erequest_number\x18\x03 \x01(\x05\x12\x16\n\x0elog_worker_ids\x18\x04 \x03(\t\x12\x10\n\x08param_id\x18\x05 \x01(\t\"1\n\x13GetSuggestionsReply\x12\x1a\n\x06trials\x18\x01 \x03(\x0b\x32\n.api.Trial\"c\n\x1bGetShouldStopWorkersRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\x12 \n\x18\x65\x61rly_stopping_algorithm\x18\x02 \x01(\t\x12\x10\n\x08param_id\x18\x05 \x01(\t\";\n\x19GetShouldStopWorkersReply\x12\x1e\n\x16should_stop_worker_ids\x18\x01 \x03(\t\"P\n\x11GetMetricsRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\x12\x12\n\nworker_ids\x18\x02 \x03(\t\x12\x15\n\rmetrics_names\x18\x03 \x03(\t\"?\n\x0fGetMetricsReply\x12,\n\x10metrics_log_sets\x18\x01 \x03(\x0b\x32\x12.api.MetricsLogSet\"Z\n\x18ReportMetricsLogsRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\x12,\n\x10metrics_log_sets\x18\x03 \x03(\x0b\x32\x12.api.MetricsLogSet\"\x18\n\x16ReportMetricsLogsReply\"\x89\x01\n\tModelInfo\x12\x12\n\nstudy_name\x18\x01 \x01(\t\x12\x11\n\tworker_id\x18\x02 \x01(\t\x12\"\n\nparameters\x18\x03 \x03(\x0b\x32\x0e.api.Parameter\x12\x1d\n\x07metrics\x18\x04 \x03(\x0b\x32\x0c.api.Metrics\x12\x12\n\nmodel_path\x18\x05 \x01(\t\")\n\x0b\x44\x61taSetInfo\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\"J\n\x10SaveStudyRequest\x12\x12\n\nstudy_name\x18\x01 \x01(\t\x12\r\n\x05owner\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\"\x10\n\x0eSaveStudyReply\"k\n\x10SaveModelRequest\x12\x1d\n\x05model\x18\x01 \x01(\x0b\x32\x0e.api.ModelInfo\x12\"\n\x08\x64\x61ta_set\x18\x02 \x01(\x0b\x32\x10.api.DataSetInfo\x12\x14\n\x0ctensor_board\x18\x03 \x01(\x08\"\x10\n\x0eSaveModelReply\"\x18\n\x16GetSavedStudiesRequest\";\n\x14GetSavedStudiesReply\x12#\n\x07studies\x18\x01 \x03(\x0b\x32\x12.api.StudyOverview\"+\n\x15GetSavedModelsRequest\x12\x12\n\nstudy_name\x18\x01 \x01(\t\"5\n\x13GetSavedModelsReply\x12\x1e\n\x06models\x18\x01 \x03(\x0b\x32\x0e.api.ModelInfo\"=\n\x14GetSavedModelRequest\x12\x12\n\nstudy_name\x18\x01 \x01(\t\x12\x11\n\tworker_id\x18\x02 \x01(\t\"3\n\x12GetSavedModelReply\x12\x1d\n\x05model\x18\x01 \x01(\x0b\x32\x0e.api.ModelInfo\"\x9b\x01\n\x1eSetSuggestionParametersRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\x12\x1c\n\x14suggestion_algorithm\x18\x02 \x01(\t\x12\x10\n\x08param_id\x18\x03 \x01(\t\x12\x37\n\x15suggestion_parameters\x18\x04 \x03(\x0b\x32\x18.api.SuggestionParameter\"0\n\x1cSetSuggestionParametersReply\x12\x10\n\x08param_id\x18\x01 \x01(\t\"2\n\x1eGetSuggestionParametersRequest\x12\x10\n\x08param_id\x18\x01 \x01(\t\"W\n\x1cGetSuggestionParametersReply\x12\x37\n\x15suggestion_parameters\x18\x01 \x03(\x0b\x32\x18.api.SuggestionParameter\"5\n!GetSuggestionParameterListRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\"\x81\x01\n\x16SuggestionParameterSet\x12\x10\n\x08param_id\x18\x01 \x01(\t\x12\x1c\n\x14suggestion_algorithm\x18\x02 \x01(\t\x12\x37\n\x15suggestion_parameters\x18\x03 \x03(\x0b\x32\x18.api.SuggestionParameter\"a\n\x1fGetSuggestionParameterListReply\x12>\n\x19suggestion_parameter_sets\x18\x01 \x03(\x0b\x32\x1b.api.SuggestionParameterSet\")\n\x15StopSuggestionRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\"\x15\n\x13StopSuggestionReply\"\xa9\x01\n!SetEarlyStoppingParametersRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\x12 \n\x18\x65\x61rly_stopping_algorithm\x18\x02 \x01(\t\x12\x10\n\x08param_id\x18\x03 \x01(\t\x12>\n\x19\x65\x61rly_stopping_parameters\x18\x04 \x03(\x0b\x32\x1b.api.EarlyStoppingParameter\"3\n\x1fSetEarlyStoppingParametersReply\x12\x10\n\x08param_id\x18\x01 \x01(\t\"5\n!GetEarlyStoppingParametersRequest\x12\x10\n\x08param_id\x18\x01 \x01(\t\"a\n\x1fGetEarlyStoppingParametersReply\x12>\n\x19\x65\x61rly_stopping_parameters\x18\x01 \x03(\x0b\x32\x1b.api.EarlyStoppingParameter\"8\n$GetEarlyStoppingParameterListRequest\x12\x10\n\x08study_id\x18\x01 \x01(\t\"\x8f\x01\n\x19\x45\x61rlyStoppingParameterSet\x12\x10\n\x08param_id\x18\x01 \x01(\t\x12 \n\x18\x65\x61rly_stopping_algorithm\x18\x02 \x01(\t\x12>\n\x19\x65\x61rly_stopping_parameters\x18\x03 \x03(\x0b\x32\x1b.api.EarlyStoppingParameter\"k\n\"GetEarlyStoppingParameterListReply\x12\x45\n\x1d\x65\x61rly_stopping_parameter_sets\x18\x01 \x03(\x0b\x32\x1e.api.EarlyStoppingParameterSet*U\n\rParameterType\x12\x10\n\x0cUNKNOWN_TYPE\x10\x00\x12\n\n\x06\x44OUBLE\x10\x01\x12\x07\n\x03INT\x10\x02\x12\x0c\n\x08\x44ISCRETE\x10\x03\x12\x0f\n\x0b\x43\x41TEGORICAL\x10\x04*H\n\x10OptimizationType\x12\x18\n\x14UNKNOWN_OPTIMIZATION\x10\x00\x12\x0c\n\x08MINIMIZE\x10\x01\x12\x0c\n\x08MAXIMIZE\x10\x02*G\n\x05State\x12\x0b\n\x07PENDING\x10\x00\x12\x0b\n\x07RUNNING\x10\x01\x12\r\n\tCOMPLETED\x10\x02\x12\n\n\x06KILLED\x10\x03\x12\t\n\x05\x45RROR\x10x2\xff\x16\n\x07Manager\x12m\n\x0b\x43reateStudy\x12\x17.api.CreateStudyRequest\x1a\x15.api.CreateStudyReply\".\x82\xd3\xe4\x93\x02(\"\x18/api/Manager/CreateStudy:\x0cstudy_config\x12^\n\x08GetStudy\x12\x14.api.GetStudyRequest\x1a\x12.api.GetStudyReply\"(\x82\xd3\xe4\x93\x02\"\x12 /api/Manager/GetStudy/{study_id}\x12\x63\n\x0cGetStudyList\x12\x18.api.GetStudyListRequest\x1a\x16.api.GetStudyListReply\"!\x82\xd3\xe4\x93\x02\x1b\x12\x19/api/Manager/GetStudyList\x12\x66\n\x0b\x43reateTrial\x12\x17.api.CreateTrialRequest\x1a\x15.api.CreateTrialReply\"\'\x82\xd3\xe4\x93\x02!\"\x18/api/Manager/CreateTrial:\x05trial\x12\x62\n\tGetTrials\x12\x15.api.GetTrialsRequest\x1a\x13.api.GetTrialsReply\")\x82\xd3\xe4\x93\x02#\x12!/api/Manager/GetTrials/{study_id}\x12^\n\x08GetTrial\x12\x14.api.GetTrialRequest\x1a\x12.api.GetTrialReply\"(\x82\xd3\xe4\x93\x02\"\x12 /api/Manager/GetTrial/{trial_id}\x12s\n\x0eRegisterWorker\x12\x1a.api.RegisterWorkerRequest\x1a\x18.api.RegisterWorkerReply\"+\x82\xd3\xe4\x93\x02%\"\x1b/api/Manager/RegisterWorker:\x06worker\x12[\n\nGetWorkers\x12\x16.api.GetWorkersRequest\x1a\x14.api.GetWorkersReply\"\x1f\x82\xd3\xe4\x93\x02\x19\x12\x17/api/Manager/GetWorkers\x12z\n\x11UpdateWorkerState\x12\x1d.api.UpdateWorkerStateRequest\x1a\x1b.api.UpdateWorkerStateReply\")\x82\xd3\xe4\x93\x02#\x1a\x1e/api/Manager/UpdateWorkerState:\x01*\x12w\n\x11GetWorkerFullInfo\x12\x1d.api.GetWorkerFullInfoRequest\x1a\x1b.api.GetWorkerFullInfoReply\"&\x82\xd3\xe4\x93\x02 \x12\x1e/api/Manager/GetWorkerFullInfo\x12n\n\x0eGetSuggestions\x12\x1a.api.GetSuggestionsRequest\x1a\x18.api.GetSuggestionsReply\"&\x82\xd3\xe4\x93\x02 \"\x1b/api/Manager/GetSuggestions:\x01*\x12\x90\x01\n\x14GetShouldStopWorkers\x12 .api.GetShouldStopWorkersRequest\x1a\x1e.api.GetShouldStopWorkersReply\"6\x82\xd3\xe4\x93\x02\x30\"+/api/Manager/GetTrials/GetShouldStopWorkers:\x01*\x12^\n\nGetMetrics\x12\x16.api.GetMetricsRequest\x1a\x14.api.GetMetricsReply\"\"\x82\xd3\xe4\x93\x02\x1c\"\x17/api/Manager/GetMetrics:\x01*\x12\x92\x01\n\x17SetSuggestionParameters\x12#.api.SetSuggestionParametersRequest\x1a!.api.SetSuggestionParametersReply\"/\x82\xd3\xe4\x93\x02)\"$/api/Manager/SetSuggestionParameters:\x01*\x12\x9a\x01\n\x17GetSuggestionParameters\x12#.api.GetSuggestionParametersRequest\x1a!.api.GetSuggestionParametersReply\"7\x82\xd3\xe4\x93\x02\x31\x12//api/Manager/GetSuggestionParameters/{param_id}\x12\xa6\x01\n\x1aGetSuggestionParameterList\x12&.api.GetSuggestionParameterListRequest\x1a$.api.GetSuggestionParameterListReply\":\x82\xd3\xe4\x93\x02\x34\x12\x32/api/Manager/GetSuggestionParameterList/{study_id}\x12\x9e\x01\n\x1aSetEarlyStoppingParameters\x12&.api.SetEarlyStoppingParametersRequest\x1a$.api.SetEarlyStoppingParametersReply\"2\x82\xd3\xe4\x93\x02,\"\'/api/Manager/SetEarlyStoppingParameters:\x01*\x12\xa6\x01\n\x1aGetEarlyStoppingParameters\x12&.api.GetEarlyStoppingParametersRequest\x1a$.api.GetEarlyStoppingParametersReply\":\x82\xd3\xe4\x93\x02\x34\x12\x32/api/Manager/GetEarlyStoppingParameters/{param_id}\x12\xb2\x01\n\x1dGetEarlyStoppingParameterList\x12).api.GetEarlyStoppingParameterListRequest\x1a\'.api.GetEarlyStoppingParameterListReply\"=\x82\xd3\xe4\x93\x02\x37\x12\x35/api/Manager/GetEarlyStoppingParameterList/{study_id}\x12Z\n\tSaveStudy\x12\x15.api.SaveStudyRequest\x1a\x13.api.SaveStudyReply\"!\x82\xd3\xe4\x93\x02\x1b\"\x16/api/Manager/SaveStudy:\x01*\x12Z\n\tSaveModel\x12\x15.api.SaveModelRequest\x1a\x13.api.SaveModelReply\"!\x82\xd3\xe4\x93\x02\x1b\"\x16/api/Manager/SaveModel:\x01*\x12z\n\x11ReportMetricsLogs\x12\x1d.api.ReportMetricsLogsRequest\x1a\x1b.api.ReportMetricsLogsReply\")\x82\xd3\xe4\x93\x02#\"\x1e/api/Manager/ReportMetricsLogs:\x01*\x12o\n\x0fGetSavedStudies\x12\x1b.api.GetSavedStudiesRequest\x1a\x19.api.GetSavedStudiesReply\"$\x82\xd3\xe4\x93\x02\x1e\x12\x1c/api/Manager/GetSavedStudies\x12k\n\x0eGetSavedModels\x12\x1a.api.GetSavedModelsRequest\x1a\x18.api.GetSavedModelsReply\"#\x82\xd3\xe4\x93\x02\x1d\x12\x1b/api/Manager/GetSavedModels2T\n\nSuggestion\x12\x46\n\x0eGetSuggestions\x12\x1a.api.GetSuggestionsRequest\x1a\x18.api.GetSuggestionsReply2i\n\rEarlyStopping\x12X\n\x14GetShouldStopWorkers\x12 .api.GetShouldStopWorkersRequest\x1a\x1e.api.GetShouldStopWorkersReplyb\x06proto3') , dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) @@ -58,13 +54,8 @@ ], containing_type=None, options=None, -<<<<<<< HEAD - serialized_start=5341, - serialized_end=5426, -======= - serialized_start=5506, - serialized_end=5591, ->>>>>>> add bestTrialId to statusJob status + serialized_start=5422, + serialized_end=5507, ) _sym_db.RegisterEnumDescriptor(_PARAMETERTYPE) @@ -90,13 +81,8 @@ ], containing_type=None, options=None, -<<<<<<< HEAD - serialized_start=5428, - serialized_end=5500, -======= - serialized_start=5593, - serialized_end=5665, ->>>>>>> add bestTrialId to statusJob status + serialized_start=5509, + serialized_end=5581, ) _sym_db.RegisterEnumDescriptor(_OPTIMIZATIONTYPE) @@ -130,13 +116,8 @@ ], containing_type=None, options=None, -<<<<<<< HEAD - serialized_start=5502, - serialized_end=5573, -======= - serialized_start=5667, - serialized_end=5738, ->>>>>>> add bestTrialId to statusJob status + serialized_start=5583, + serialized_end=5654, ) _sym_db.RegisterEnumDescriptor(_STATE) @@ -1202,8 +1183,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1977, - serialized_end=2012, + serialized_start=1893, + serialized_end=1928, ) @@ -1233,8 +1214,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2014, - serialized_end=2056, + serialized_start=1930, + serialized_end=1972, ) @@ -1264,13 +1245,8 @@ extension_ranges=[], oneofs=[ ], -<<<<<<< HEAD - serialized_start=1893, - serialized_end=1945, -======= - serialized_start=2058, - serialized_end=2110, ->>>>>>> add bestTrialId to statusJob status + serialized_start=1974, + serialized_end=2026, ) @@ -1300,13 +1276,8 @@ extension_ranges=[], oneofs=[ ], -<<<<<<< HEAD - serialized_start=1947, - serialized_end=1987, -======= - serialized_start=2112, - serialized_end=2152, ->>>>>>> add bestTrialId to statusJob status + serialized_start=2028, + serialized_end=2068, ) @@ -1350,13 +1321,8 @@ extension_ranges=[], oneofs=[ ], -<<<<<<< HEAD - serialized_start=1989, - serialized_end=2068, -======= - serialized_start=2154, - serialized_end=2233, ->>>>>>> add bestTrialId to statusJob status + serialized_start=2070, + serialized_end=2149, ) @@ -1379,13 +1345,8 @@ extension_ranges=[], oneofs=[ ], -<<<<<<< HEAD - serialized_start=2070, - serialized_end=2088, -======= - serialized_start=2235, - serialized_end=2253, ->>>>>>> add bestTrialId to statusJob status + serialized_start=2151, + serialized_end=2169, ) @@ -1429,13 +1390,8 @@ extension_ranges=[], oneofs=[ ], -<<<<<<< HEAD - serialized_start=2090, - serialized_end=2164, -======= - serialized_start=2255, - serialized_end=2329, ->>>>>>> add bestTrialId to statusJob status + serialized_start=2171, + serialized_end=2245, ) @@ -1465,13 +1421,8 @@ extension_ranges=[], oneofs=[ ], -<<<<<<< HEAD - serialized_start=2166, - serialized_end=2213, -======= - serialized_start=2331, - serialized_end=2378, ->>>>>>> add bestTrialId to statusJob status + serialized_start=2247, + serialized_end=2294, ) @@ -1508,13 +1459,8 @@ extension_ranges=[], oneofs=[ ], -<<<<<<< HEAD - serialized_start=2215, - serialized_end=2288, -======= - serialized_start=2380, - serialized_end=2453, ->>>>>>> add bestTrialId to statusJob status + serialized_start=2296, + serialized_end=2369, ) @@ -1537,13 +1483,8 @@ extension_ranges=[], oneofs=[ ], -<<<<<<< HEAD - serialized_start=2290, - serialized_end=2314, -======= - serialized_start=2455, - serialized_end=2479, ->>>>>>> add bestTrialId to statusJob status + serialized_start=2371, + serialized_end=2395, ) @@ -1594,13 +1535,8 @@ extension_ranges=[], oneofs=[ ], -<<<<<<< HEAD - serialized_start=2316, - serialized_end=2422, -======= - serialized_start=2481, - serialized_end=2587, ->>>>>>> add bestTrialId to statusJob status + serialized_start=2397, + serialized_end=2503, ) @@ -1644,13 +1580,8 @@ extension_ranges=[], oneofs=[ ], -<<<<<<< HEAD - serialized_start=2424, - serialized_end=2547, -======= - serialized_start=2589, - serialized_end=2712, ->>>>>>> add bestTrialId to statusJob status + serialized_start=2505, + serialized_end=2628, ) @@ -1680,13 +1611,8 @@ extension_ranges=[], oneofs=[ ], -<<<<<<< HEAD - serialized_start=2549, - serialized_end=2621, -======= - serialized_start=2714, - serialized_end=2786, ->>>>>>> add bestTrialId to statusJob status + serialized_start=2630, + serialized_end=2702, ) @@ -1744,13 +1670,8 @@ extension_ranges=[], oneofs=[ ], -<<<<<<< HEAD - serialized_start=2624, - serialized_end=2761, -======= - serialized_start=2789, - serialized_end=2926, ->>>>>>> add bestTrialId to statusJob status + serialized_start=2705, + serialized_end=2842, ) @@ -1780,13 +1701,8 @@ extension_ranges=[], oneofs=[ ], -<<<<<<< HEAD - serialized_start=2763, - serialized_end=2812, -======= - serialized_start=2928, - serialized_end=2977, ->>>>>>> add bestTrialId to statusJob status + serialized_start=2844, + serialized_end=2893, ) @@ -1830,13 +1746,8 @@ extension_ranges=[], oneofs=[ ], -<<<<<<< HEAD - serialized_start=2814, - serialized_end=2913, -======= - serialized_start=2979, - serialized_end=3078, ->>>>>>> add bestTrialId to statusJob status + serialized_start=2895, + serialized_end=2994, ) @@ -1866,13 +1777,8 @@ extension_ranges=[], oneofs=[ ], -<<<<<<< HEAD - serialized_start=2915, - serialized_end=2974, -======= - serialized_start=3080, - serialized_end=3139, ->>>>>>> add bestTrialId to statusJob status + serialized_start=2996, + serialized_end=3055, ) @@ -1916,13 +1822,8 @@ extension_ranges=[], oneofs=[ ], -<<<<<<< HEAD - serialized_start=2976, - serialized_end=3056, -======= - serialized_start=3141, - serialized_end=3221, ->>>>>>> add bestTrialId to statusJob status + serialized_start=3057, + serialized_end=3137, ) @@ -1952,13 +1853,8 @@ extension_ranges=[], oneofs=[ ], -<<<<<<< HEAD - serialized_start=3058, - serialized_end=3121, -======= - serialized_start=3223, - serialized_end=3286, ->>>>>>> add bestTrialId to statusJob status + serialized_start=3139, + serialized_end=3202, ) @@ -1995,13 +1891,8 @@ extension_ranges=[], oneofs=[ ], -<<<<<<< HEAD - serialized_start=3123, - serialized_end=3213, -======= - serialized_start=3288, - serialized_end=3378, ->>>>>>> add bestTrialId to statusJob status + serialized_start=3204, + serialized_end=3294, ) @@ -2024,13 +1915,8 @@ extension_ranges=[], oneofs=[ ], -<<<<<<< HEAD - serialized_start=3215, - serialized_end=3239, -======= - serialized_start=3380, - serialized_end=3404, ->>>>>>> add bestTrialId to statusJob status + serialized_start=3296, + serialized_end=3320, ) @@ -2088,13 +1974,8 @@ extension_ranges=[], oneofs=[ ], -<<<<<<< HEAD - serialized_start=3242, - serialized_end=3379, -======= - serialized_start=3407, - serialized_end=3544, ->>>>>>> add bestTrialId to statusJob status + serialized_start=3323, + serialized_end=3460, ) @@ -2131,13 +2012,8 @@ extension_ranges=[], oneofs=[ ], -<<<<<<< HEAD - serialized_start=3381, - serialized_end=3422, -======= - serialized_start=3546, - serialized_end=3587, ->>>>>>> add bestTrialId to statusJob status + serialized_start=3462, + serialized_end=3503, ) @@ -2181,13 +2057,8 @@ extension_ranges=[], oneofs=[ ], -<<<<<<< HEAD - serialized_start=3424, - serialized_end=3498, -======= - serialized_start=3589, - serialized_end=3663, ->>>>>>> add bestTrialId to statusJob status + serialized_start=3505, + serialized_end=3579, ) @@ -2210,13 +2081,8 @@ extension_ranges=[], oneofs=[ ], -<<<<<<< HEAD - serialized_start=3500, - serialized_end=3516, -======= - serialized_start=3665, - serialized_end=3681, ->>>>>>> add bestTrialId to statusJob status + serialized_start=3581, + serialized_end=3597, ) @@ -2260,13 +2126,8 @@ extension_ranges=[], oneofs=[ ], -<<<<<<< HEAD - serialized_start=3518, - serialized_end=3625, -======= - serialized_start=3683, - serialized_end=3790, ->>>>>>> add bestTrialId to statusJob status + serialized_start=3599, + serialized_end=3706, ) @@ -2289,13 +2150,8 @@ extension_ranges=[], oneofs=[ ], -<<<<<<< HEAD - serialized_start=3627, - serialized_end=3643, -======= - serialized_start=3792, - serialized_end=3808, ->>>>>>> add bestTrialId to statusJob status + serialized_start=3708, + serialized_end=3724, ) @@ -2318,13 +2174,8 @@ extension_ranges=[], oneofs=[ ], -<<<<<<< HEAD - serialized_start=3645, - serialized_end=3669, -======= - serialized_start=3810, - serialized_end=3834, ->>>>>>> add bestTrialId to statusJob status + serialized_start=3726, + serialized_end=3750, ) @@ -2354,13 +2205,8 @@ extension_ranges=[], oneofs=[ ], -<<<<<<< HEAD - serialized_start=3671, - serialized_end=3730, -======= - serialized_start=3836, - serialized_end=3895, ->>>>>>> add bestTrialId to statusJob status + serialized_start=3752, + serialized_end=3811, ) @@ -2390,13 +2236,8 @@ extension_ranges=[], oneofs=[ ], -<<<<<<< HEAD - serialized_start=3732, - serialized_end=3775, -======= - serialized_start=3897, - serialized_end=3940, ->>>>>>> add bestTrialId to statusJob status + serialized_start=3813, + serialized_end=3856, ) @@ -2426,13 +2267,8 @@ extension_ranges=[], oneofs=[ ], -<<<<<<< HEAD - serialized_start=3777, - serialized_end=3830, -======= - serialized_start=3942, - serialized_end=3995, ->>>>>>> add bestTrialId to statusJob status + serialized_start=3858, + serialized_end=3911, ) @@ -2469,13 +2305,8 @@ extension_ranges=[], oneofs=[ ], -<<<<<<< HEAD - serialized_start=3832, - serialized_end=3893, -======= - serialized_start=3997, - serialized_end=4058, ->>>>>>> add bestTrialId to statusJob status + serialized_start=3913, + serialized_end=3974, ) @@ -2505,13 +2336,8 @@ extension_ranges=[], oneofs=[ ], -<<<<<<< HEAD - serialized_start=3895, - serialized_end=3946, -======= - serialized_start=4060, - serialized_end=4111, ->>>>>>> add bestTrialId to statusJob status + serialized_start=3976, + serialized_end=4027, ) @@ -2562,13 +2388,8 @@ extension_ranges=[], oneofs=[ ], -<<<<<<< HEAD - serialized_start=3949, - serialized_end=4104, -======= - serialized_start=4114, - serialized_end=4269, ->>>>>>> add bestTrialId to statusJob status + serialized_start=4030, + serialized_end=4185, ) @@ -2598,13 +2419,8 @@ extension_ranges=[], oneofs=[ ], -<<<<<<< HEAD - serialized_start=4106, - serialized_end=4154, -======= - serialized_start=4271, - serialized_end=4319, ->>>>>>> add bestTrialId to statusJob status + serialized_start=4187, + serialized_end=4235, ) @@ -2634,13 +2450,8 @@ extension_ranges=[], oneofs=[ ], -<<<<<<< HEAD - serialized_start=4156, - serialized_end=4206, -======= - serialized_start=4321, - serialized_end=4371, ->>>>>>> add bestTrialId to statusJob status + serialized_start=4237, + serialized_end=4287, ) @@ -2670,13 +2481,8 @@ extension_ranges=[], oneofs=[ ], -<<<<<<< HEAD - serialized_start=4208, - serialized_end=4295, -======= - serialized_start=4373, - serialized_end=4460, ->>>>>>> add bestTrialId to statusJob status + serialized_start=4289, + serialized_end=4376, ) @@ -2706,13 +2512,8 @@ extension_ranges=[], oneofs=[ ], -<<<<<<< HEAD - serialized_start=4297, - serialized_end=4350, -======= - serialized_start=4462, - serialized_end=4515, ->>>>>>> add bestTrialId to statusJob status + serialized_start=4378, + serialized_end=4431, ) @@ -2756,13 +2557,8 @@ extension_ranges=[], oneofs=[ ], -<<<<<<< HEAD - serialized_start=4353, - serialized_end=4482, -======= - serialized_start=4518, - serialized_end=4647, ->>>>>>> add bestTrialId to statusJob status + serialized_start=4434, + serialized_end=4563, ) @@ -2792,13 +2588,8 @@ extension_ranges=[], oneofs=[ ], -<<<<<<< HEAD - serialized_start=4484, - serialized_end=4581, -======= - serialized_start=4649, - serialized_end=4746, ->>>>>>> add bestTrialId to statusJob status + serialized_start=4565, + serialized_end=4662, ) @@ -2828,13 +2619,8 @@ extension_ranges=[], oneofs=[ ], -<<<<<<< HEAD - serialized_start=4583, - serialized_end=4624, -======= - serialized_start=4748, - serialized_end=4789, ->>>>>>> add bestTrialId to statusJob status + serialized_start=4664, + serialized_end=4705, ) @@ -2857,13 +2643,8 @@ extension_ranges=[], oneofs=[ ], -<<<<<<< HEAD - serialized_start=4626, - serialized_end=4647, -======= - serialized_start=4791, - serialized_end=4812, ->>>>>>> add bestTrialId to statusJob status + serialized_start=4707, + serialized_end=4728, ) @@ -2914,13 +2695,8 @@ extension_ranges=[], oneofs=[ ], -<<<<<<< HEAD - serialized_start=4650, - serialized_end=4819, -======= - serialized_start=4815, - serialized_end=4984, ->>>>>>> add bestTrialId to statusJob status + serialized_start=4731, + serialized_end=4900, ) @@ -2950,13 +2726,8 @@ extension_ranges=[], oneofs=[ ], -<<<<<<< HEAD - serialized_start=4821, - serialized_end=4872, -======= - serialized_start=4986, - serialized_end=5037, ->>>>>>> add bestTrialId to statusJob status + serialized_start=4902, + serialized_end=4953, ) @@ -2986,13 +2757,8 @@ extension_ranges=[], oneofs=[ ], -<<<<<<< HEAD - serialized_start=4874, - serialized_end=4927, -======= - serialized_start=5039, - serialized_end=5092, ->>>>>>> add bestTrialId to statusJob status + serialized_start=4955, + serialized_end=5008, ) @@ -3022,13 +2788,8 @@ extension_ranges=[], oneofs=[ ], -<<<<<<< HEAD - serialized_start=4929, - serialized_end=5026, -======= - serialized_start=5094, - serialized_end=5191, ->>>>>>> add bestTrialId to statusJob status + serialized_start=5010, + serialized_end=5107, ) @@ -3058,13 +2819,8 @@ extension_ranges=[], oneofs=[ ], -<<<<<<< HEAD - serialized_start=5028, - serialized_end=5084, -======= - serialized_start=5193, - serialized_end=5249, ->>>>>>> add bestTrialId to statusJob status + serialized_start=5109, + serialized_end=5165, ) @@ -3108,13 +2864,8 @@ extension_ranges=[], oneofs=[ ], -<<<<<<< HEAD - serialized_start=5087, - serialized_end=5230, -======= - serialized_start=5252, - serialized_end=5395, ->>>>>>> add bestTrialId to statusJob status + serialized_start=5168, + serialized_end=5311, ) @@ -3144,13 +2895,8 @@ extension_ranges=[], oneofs=[ ], -<<<<<<< HEAD - serialized_start=5232, - serialized_end=5339, -======= - serialized_start=5397, - serialized_end=5504, ->>>>>>> add bestTrialId to statusJob status + serialized_start=5313, + serialized_end=5420, ) _PARAMETERCONFIG.fields_by_name['parameter_type'].enum_type = _PARAMETERTYPE @@ -3804,13 +3550,8 @@ file=DESCRIPTOR, index=0, options=None, -<<<<<<< HEAD - serialized_start=5576, - serialized_end=8423, -======= - serialized_start=5741, - serialized_end=8684, ->>>>>>> add bestTrialId to statusJob status + serialized_start=5657, + serialized_end=8600, methods=[ _descriptor.MethodDescriptor( name='CreateStudy', @@ -4040,13 +3781,8 @@ file=DESCRIPTOR, index=1, options=None, -<<<<<<< HEAD - serialized_start=8425, - serialized_end=8509, -======= - serialized_start=8686, - serialized_end=8770, ->>>>>>> add bestTrialId to statusJob status + serialized_start=8602, + serialized_end=8686, methods=[ _descriptor.MethodDescriptor( name='GetSuggestions', @@ -4069,13 +3805,8 @@ file=DESCRIPTOR, index=2, options=None, -<<<<<<< HEAD - serialized_start=8511, - serialized_end=8616, -======= - serialized_start=8772, - serialized_end=8877, ->>>>>>> add bestTrialId to statusJob status + serialized_start=8688, + serialized_end=8793, methods=[ _descriptor.MethodDescriptor( name='GetShouldStopWorkers', @@ -4288,7 +4019,7 @@ def GetTrials(self, request, context): raise NotImplementedError('Method not implemented!') def GetTrial(self, request, context): - """ + """* Get a Trial Configuration from DB by ID of Trial. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) @@ -4306,7 +4037,7 @@ def RegisterWorker(self, request, context): def GetWorkers(self, request, context): """* - Get a Worker Configs and Statuses from DB by ID of Study, Trial or Worker. + Get a Worker Configs and Status from DB by ID of Study, Trial or Worker. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') @@ -4322,7 +4053,7 @@ def UpdateWorkerState(self, request, context): def GetWorkerFullInfo(self, request, context): """* - Get a full informations related to specified Workers. + Get full information related to specified Workers. It includes Worker Config, HyperParameters and Metrics Logs. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) @@ -4356,8 +4087,8 @@ def GetMetrics(self, request, context): def SetSuggestionParameters(self, request, context): """* Create or Update parameter set for a suggestion service. - When you specified a ID of parameter set, it will update the parameter set by your request. - When you specified no ID, it will create a new parameter set for corresponding study and suggestion service. + If you specify an ID of parameter set, it will update the parameter set by your request. + If you don't specify an ID, it will create a new parameter set for corresponding study and suggestion service. The parameters are key-value format. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) @@ -4692,7 +4423,7 @@ def GetTrials(self, request, context): """ context.code(beta_interfaces.StatusCode.UNIMPLEMENTED) def GetTrial(self, request, context): - """ + """* Get a Trial Configuration from DB by ID of Trial. """ context.code(beta_interfaces.StatusCode.UNIMPLEMENTED) @@ -4704,7 +4435,7 @@ def RegisterWorker(self, request, context): context.code(beta_interfaces.StatusCode.UNIMPLEMENTED) def GetWorkers(self, request, context): """* - Get a Worker Configs and Statuses from DB by ID of Study, Trial or Worker. + Get a Worker Configs and Status from DB by ID of Study, Trial or Worker. """ context.code(beta_interfaces.StatusCode.UNIMPLEMENTED) def UpdateWorkerState(self, request, context): @@ -4714,7 +4445,7 @@ def UpdateWorkerState(self, request, context): context.code(beta_interfaces.StatusCode.UNIMPLEMENTED) def GetWorkerFullInfo(self, request, context): """* - Get a full informations related to specified Workers. + Get full information related to specified Workers. It includes Worker Config, HyperParameters and Metrics Logs. """ context.code(beta_interfaces.StatusCode.UNIMPLEMENTED) @@ -4736,8 +4467,8 @@ def GetMetrics(self, request, context): def SetSuggestionParameters(self, request, context): """* Create or Update parameter set for a suggestion service. - When you specified a ID of parameter set, it will update the parameter set by your request. - When you specified no ID, it will create a new parameter set for corresponding study and suggestion service. + If you specify an ID of parameter set, it will update the parameter set by your request. + If you don't specify an ID, it will create a new parameter set for corresponding study and suggestion service. The parameters are key-value format. """ context.code(beta_interfaces.StatusCode.UNIMPLEMENTED) @@ -4833,7 +4564,7 @@ def GetTrials(self, request, timeout, metadata=None, with_call=False, protocol_o raise NotImplementedError() GetTrials.future = None def GetTrial(self, request, timeout, metadata=None, with_call=False, protocol_options=None): - """ + """* Get a Trial Configuration from DB by ID of Trial. """ raise NotImplementedError() @@ -4847,7 +4578,7 @@ def RegisterWorker(self, request, timeout, metadata=None, with_call=False, proto RegisterWorker.future = None def GetWorkers(self, request, timeout, metadata=None, with_call=False, protocol_options=None): """* - Get a Worker Configs and Statuses from DB by ID of Study, Trial or Worker. + Get a Worker Configs and Status from DB by ID of Study, Trial or Worker. """ raise NotImplementedError() GetWorkers.future = None @@ -4859,7 +4590,7 @@ def UpdateWorkerState(self, request, timeout, metadata=None, with_call=False, pr UpdateWorkerState.future = None def GetWorkerFullInfo(self, request, timeout, metadata=None, with_call=False, protocol_options=None): """* - Get a full informations related to specified Workers. + Get full information related to specified Workers. It includes Worker Config, HyperParameters and Metrics Logs. """ raise NotImplementedError() @@ -4885,8 +4616,8 @@ def GetMetrics(self, request, timeout, metadata=None, with_call=False, protocol_ def SetSuggestionParameters(self, request, timeout, metadata=None, with_call=False, protocol_options=None): """* Create or Update parameter set for a suggestion service. - When you specified a ID of parameter set, it will update the parameter set by your request. - When you specified no ID, it will create a new parameter set for corresponding study and suggestion service. + If you specify an ID of parameter set, it will update the parameter set by your request. + If you don't specify an ID, it will create a new parameter set for corresponding study and suggestion service. The parameters are key-value format. """ raise NotImplementedError() diff --git a/pkg/api/python/api_pb2_grpc.py b/pkg/api/python/api_pb2_grpc.py index ffe426cd51a..2180171306a 100644 --- a/pkg/api/python/api_pb2_grpc.py +++ b/pkg/api/python/api_pb2_grpc.py @@ -191,7 +191,7 @@ def GetTrials(self, request, context): raise NotImplementedError('Method not implemented!') def GetTrial(self, request, context): - """ + """* Get a Trial Configuration from DB by ID of Trial. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) @@ -209,7 +209,7 @@ def RegisterWorker(self, request, context): def GetWorkers(self, request, context): """* - Get a Worker Configs and Statuses from DB by ID of Study, Trial or Worker. + Get a Worker Configs and Status from DB by ID of Study, Trial or Worker. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') @@ -225,7 +225,7 @@ def UpdateWorkerState(self, request, context): def GetWorkerFullInfo(self, request, context): """* - Get a full informations related to specified Workers. + Get full information related to specified Workers. It includes Worker Config, HyperParameters and Metrics Logs. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) @@ -259,8 +259,8 @@ def GetMetrics(self, request, context): def SetSuggestionParameters(self, request, context): """* Create or Update parameter set for a suggestion service. - When you specified a ID of parameter set, it will update the parameter set by your request. - When you specified no ID, it will create a new parameter set for corresponding study and suggestion service. + If you specify an ID of parameter set, it will update the parameter set by your request. + If you don't specify an ID, it will create a new parameter set for corresponding study and suggestion service. The parameters are key-value format. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) diff --git a/pkg/controller/studyjob/utils.go b/pkg/controller/studyjob/utils.go index fbb3df09681..5aaf3bd1fd5 100644 --- a/pkg/controller/studyjob/utils.go +++ b/pkg/controller/studyjob/utils.go @@ -125,10 +125,12 @@ func checkGoalAndUpdateObject(curValue float64, instance *katibv1alpha1.StudyJob if opFunc(curValue, *instance.Status.BestObjectiveValue) { instance.Status.BestObjectiveValue = &curValue instance.Status.BestTrialID = trialId + instance.Status.BestWorkerID = workerId } } else { instance.Status.BestObjectiveValue = &curValue instance.Status.BestTrialID = trialId + instance.Status.BestWorkerID = workerId } return goal diff --git a/pkg/mock/api/manager.go b/pkg/mock/api/manager.go index 653d5c9bae6..7d7fbf784b8 100644 --- a/pkg/mock/api/manager.go +++ b/pkg/mock/api/manager.go @@ -269,6 +269,24 @@ func (mr *MockManagerClientMockRecorder) GetSuggestions(arg0, arg1 interface{}, return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSuggestions", reflect.TypeOf((*MockManagerClient)(nil).GetSuggestions), varargs...) } +// GetTrial mocks base method +func (m *MockManagerClient) GetTrial(arg0 context.Context, arg1 *api.GetTrialRequest, arg2 ...grpc.CallOption) (*api.GetTrialReply, error) { + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetTrial", varargs...) + ret0, _ := ret[0].(*api.GetTrialReply) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetTrial indicates an expected call of GetTrial +func (mr *MockManagerClientMockRecorder) GetTrial(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { + varargs := append([]interface{}{arg0, arg1}, arg2...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTrial", reflect.TypeOf((*MockManagerClient)(nil).GetTrial), varargs...) +} + // GetTrials mocks base method func (m *MockManagerClient) GetTrials(arg0 context.Context, arg1 *api.GetTrialsRequest, arg2 ...grpc.CallOption) (*api.GetTrialsReply, error) { varargs := []interface{}{arg0, arg1} diff --git a/pkg/mock/db/db.go b/pkg/mock/db/db.go index bb681ed15c5..35e556e6303 100644 --- a/pkg/mock/db/db.go +++ b/pkg/mock/db/db.go @@ -78,12 +78,6 @@ func (m *MockVizierDBInterface) DBInit() { m.ctrl.Call(m, "DBInit") } -func (m *MockVizierDBInterface) SelectOne() error { - ret := m.ctrl.Call(m, "SelectOne") - ret0, _ := ret[0].(error) - return ret0 -} - // DBInit indicates an expected call of DBInit func (mr *MockVizierDBInterfaceMockRecorder) DBInit() *gomock.Call { return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DBInit", reflect.TypeOf((*MockVizierDBInterface)(nil).DBInit)) @@ -307,6 +301,18 @@ func (mr *MockVizierDBInterfaceMockRecorder) GetWorkerTimestamp(arg0 interface{} return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetWorkerTimestamp", reflect.TypeOf((*MockVizierDBInterface)(nil).GetWorkerTimestamp), arg0) } +// SelectOne mocks base method +func (m *MockVizierDBInterface) SelectOne() error { + ret := m.ctrl.Call(m, "SelectOne") + ret0, _ := ret[0].(error) + return ret0 +} + +// SelectOne indicates an expected call of SelectOne +func (mr *MockVizierDBInterfaceMockRecorder) SelectOne() *gomock.Call { + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SelectOne", reflect.TypeOf((*MockVizierDBInterface)(nil).SelectOne)) +} + // SetEarlyStopParam mocks base method func (m *MockVizierDBInterface) SetEarlyStopParam(arg0, arg1 string, arg2 []*api.EarlyStoppingParameter) (string, error) { ret := m.ctrl.Call(m, "SetEarlyStopParam", arg0, arg1, arg2)

    Get a Trial Configs from DB by ID of Study.

    GetTrialGetTrialRequestGetTrialReply

    Get a Trial Configuration from DB by ID of Trial.

    RegisterWorker RegisterWorkerRequest GetWorkers GetWorkersRequest GetWorkersReply

    Get a Worker Configs and Statuses from DB by ID of Study, Trial or Worker.

    Get a Worker Configs and Status from DB by ID of Study, Trial or Worker.

    GetWorkerFullInfo GetWorkerFullInfoRequest GetWorkerFullInfoReply

    Get a full informations related to specified Workers. +

    Get full information related to specified Workers. It includes Worker Config, HyperParameters and Metrics Logs.

    SetSuggestionParametersRequest SetSuggestionParametersReply

    Create or Update parameter set for a suggestion service. -When you specified a ID of parameter set, it will update the parameter set by your request. -When you specified no ID, it will create a new parameter set for corresponding study and suggestion service. +If you specify an ID of parameter set, it will update the parameter set by your request. +If you don't specify an ID, it will create a new parameter set for corresponding study and suggestion service. The parameters are key-value format.