Add compaction interfaces in proxy (#11431)

issue: #9904
Signed-off-by: sunby <bingyi.sun@zilliz.com>

Co-authored-by: sunby <bingyi.sun@zilliz.com>
pull/11491/head
Bingyi Sun 2021-11-09 14:47:02 +08:00 committed by GitHub
parent 0eb71f7ee5
commit c3f0c5a3ff
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
26 changed files with 5525 additions and 915 deletions

View File

@ -169,7 +169,7 @@ static void InitDefaultsscc_info_Status_common_2eproto() {
{{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsscc_info_Status_common_2eproto}, {}};
static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_common_2eproto[8];
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* file_level_enum_descriptors_common_2eproto[5];
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* file_level_enum_descriptors_common_2eproto[6];
static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_common_2eproto = nullptr;
const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_common_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
@ -314,9 +314,10 @@ const char descriptor_table_protodef_common_2eproto[] PROTOBUF_SECTION_VARIABLE(
"\263\t\022\017\n\nRequestTSO\020\264\t\022\024\n\017AllocateSegment\020\265"
"\t\022\026\n\021SegmentStatistics\020\266\t\022\025\n\020SegmentFlus"
"hDone\020\267\t\022\017\n\nDataNodeTt\020\270\t*\"\n\007DslType\022\007\n\003"
"Dsl\020\000\022\016\n\nBoolExprV1\020\001B5Z3github.com/milv"
"us-io/milvus/internal/proto/commonpbb\006pr"
"oto3"
"Dsl\020\000\022\016\n\nBoolExprV1\020\001*B\n\017CompactionState"
"\022\021\n\rUndefiedState\020\000\022\r\n\tExecuting\020\001\022\r\n\tCo"
"mpleted\020\002B5Z3github.com/milvus-io/milvus"
"/internal/proto/commonpbb\006proto3"
;
static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_common_2eproto_deps[1] = {
};
@ -333,7 +334,7 @@ static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_com
static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_common_2eproto_once;
static bool descriptor_table_common_2eproto_initialized = false;
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_common_2eproto = {
&descriptor_table_common_2eproto_initialized, descriptor_table_protodef_common_2eproto, "common.proto", 2524,
&descriptor_table_common_2eproto_initialized, descriptor_table_protodef_common_2eproto, "common.proto", 2592,
&descriptor_table_common_2eproto_once, descriptor_table_common_2eproto_sccs, descriptor_table_common_2eproto_deps, 8, 0,
schemas, file_default_instances, TableStruct_common_2eproto::offsets,
file_level_metadata_common_2eproto, 8, file_level_enum_descriptors_common_2eproto, file_level_service_descriptors_common_2eproto,
@ -500,6 +501,21 @@ bool DslType_IsValid(int value) {
}
}
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* CompactionState_descriptor() {
::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_common_2eproto);
return file_level_enum_descriptors_common_2eproto[5];
}
bool CompactionState_IsValid(int value) {
switch (value) {
case 0:
case 1:
case 2:
return true;
default:
return false;
}
}
// ===================================================================

View File

@ -310,6 +310,32 @@ inline bool DslType_Parse(
return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<DslType>(
DslType_descriptor(), name, value);
}
enum CompactionState : int {
UndefiedState = 0,
Executing = 1,
Completed = 2,
CompactionState_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(),
CompactionState_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max()
};
bool CompactionState_IsValid(int value);
constexpr CompactionState CompactionState_MIN = UndefiedState;
constexpr CompactionState CompactionState_MAX = Completed;
constexpr int CompactionState_ARRAYSIZE = CompactionState_MAX + 1;
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* CompactionState_descriptor();
template<typename T>
inline const std::string& CompactionState_Name(T enum_t_value) {
static_assert(::std::is_same<T, CompactionState>::value ||
::std::is_integral<T>::value,
"Incorrect type passed to function CompactionState_Name.");
return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
CompactionState_descriptor(), enum_t_value);
}
inline bool CompactionState_Parse(
const std::string& name, CompactionState* value) {
return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<CompactionState>(
CompactionState_descriptor(), name, value);
}
// ===================================================================
class Status :
@ -2152,6 +2178,11 @@ template <>
inline const EnumDescriptor* GetEnumDescriptor< ::milvus::proto::common::DslType>() {
return ::milvus::proto::common::DslType_descriptor();
}
template <> struct is_proto_enum< ::milvus::proto::common::CompactionState> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::milvus::proto::common::CompactionState>() {
return ::milvus::proto::common::CompactionState_descriptor();
}
PROTOBUF_NAMESPACE_CLOSE

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -33,8 +33,8 @@ type compactionPlanContext interface {
expireCompaction(ts Timestamp) error
// isFull return true if the task pool is full
isFull() bool
// get compaction by signal id and return the number of executing/completed/timeout plans
getCompactionBySignalID(signalID int64) (executing, completed, timeout int)
// get compaction tasks by signal id
getCompactionTasksBySignalID(signalID int64) []*compactionTask
}
type compactionTaskState int8
@ -55,6 +55,7 @@ type compactionTask struct {
plan *datapb.CompactionPlan
state compactionTaskState
dataNodeID int64
result *datapb.CompactionResult
}
func (t *compactionTask) shadowClone(opts ...compactionTaskOpt) *compactionTask {
@ -188,6 +189,7 @@ func (c *compactionPlanHandler) completeCompaction(result *datapb.CompactionResu
return errors.New("unknown compaction type")
}
c.plans[planID] = c.plans[planID].shadowClone(setState(completed))
c.plans[planID] = c.plans[planID].shadowClone(setResult(result))
c.executingTaskNum--
if c.plans[planID].plan.GetType() == datapb.CompactionType_MergeCompaction {
c.flushCh <- result.GetSegmentID()
@ -258,25 +260,19 @@ func (c *compactionPlanHandler) getExecutingCompactions() []*compactionTask {
return tasks
}
// get compaction by signal id and return the number of executing/completed/timeout plans
func (c *compactionPlanHandler) getCompactionBySignalID(signalID int64) (executingPlans int, completedPlans int, timeoutPlans int) {
// get compaction tasks by signal id
func (c *compactionPlanHandler) getCompactionTasksBySignalID(signalID int64) []*compactionTask {
c.mu.RLock()
defer c.mu.RUnlock()
var tasks []*compactionTask
for _, t := range c.plans {
if t.triggerInfo.id != signalID {
continue
}
switch t.state {
case executing:
executingPlans++
case completed:
completedPlans++
case timeout:
timeoutPlans++
}
tasks = append(tasks, t)
}
return
return tasks
}
type compactionTaskOpt func(task *compactionTask)
@ -286,3 +282,9 @@ func setState(state compactionTaskState) compactionTaskOpt {
task.state = state
}
}
func setResult(result *datapb.CompactionResult) compactionTaskOpt {
return func(task *compactionTask) {
task.result = result
}
}

View File

@ -365,3 +365,63 @@ func Test_newCompactionPlanHandler(t *testing.T) {
})
}
}
func Test_getCompactionTasksBySignalID(t *testing.T) {
type fields struct {
plans map[int64]*compactionTask
}
type args struct {
signalID int64
}
tests := []struct {
name string
fields fields
args args
want []*compactionTask
}{
{
"test get compaction tasks",
fields{
plans: map[int64]*compactionTask{
1: {
triggerInfo: &compactionSignal{id: 1},
state: executing,
},
2: {
triggerInfo: &compactionSignal{id: 1},
state: completed,
},
3: {
triggerInfo: &compactionSignal{id: 1},
state: timeout,
},
},
},
args{1},
[]*compactionTask{
{
triggerInfo: &compactionSignal{id: 1},
state: executing,
},
{
triggerInfo: &compactionSignal{id: 1},
state: completed,
},
{
triggerInfo: &compactionSignal{id: 1},
state: timeout,
},
},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
h := &compactionPlanHandler{
plans: tt.fields.plans,
}
got := h.getCompactionTasksBySignalID(tt.args.signalID)
assert.ElementsMatch(t, tt.want, got)
})
}
}

View File

@ -42,8 +42,8 @@ func (h *spyCompactionHandler) isFull() bool {
return false
}
// get compaction by signal id and return the number of executing/completed/timeout plans
func (h *spyCompactionHandler) getCompactionBySignalID(signalID int64) (executing int, completed int, timeout int) {
// get compaction tasks by signal id
func (h *spyCompactionHandler) getCompactionTasksBySignalID(signalID int64) []*compactionTask {
panic("not implemented") // TODO: Implement
}

View File

@ -521,10 +521,10 @@ func (h *mockCompactionHandler) isFull() bool {
panic("not implemented")
}
// get compaction by signal id and return the number of executing/completed/timeout plans
func (h *mockCompactionHandler) getCompactionBySignalID(signalID int64) (executing int, completed int, timeout int) {
if f, ok := h.methods["getCompactionBySignalID"]; ok {
if ff, ok := f.(func(signalID int64) (executing int, completed int, timeout int)); ok {
// get compaction tasks by signal id
func (h *mockCompactionHandler) getCompactionTasksBySignalID(signalID int64) []*compactionTask {
if f, ok := h.methods["getCompactionTasksBySignalID"]; ok {
if ff, ok := f.(func(signalID int64) []*compactionTask); ok {
return ff(signalID)
}
}

View File

@ -1312,16 +1312,18 @@ func TestGetCompactionState(t *testing.T) {
svr.compactionHandler = &mockCompactionHandler{
methods: map[string]interface{}{
"getCompactionBySignalID": func(signalID int64) (executing, completed, timeout int) {
return 0, 1, 0
"getCompactionTasksBySignalID": func(signalID int64) []*compactionTask {
return []*compactionTask{
{state: completed},
}
},
},
}
resp, err := svr.GetCompactionState(context.Background(), &datapb.GetCompactionStateRequest{})
resp, err := svr.GetCompactionState(context.Background(), &milvuspb.GetCompactionStateRequest{})
assert.NoError(t, err)
assert.Equal(t, commonpb.ErrorCode_Success, resp.GetStatus().GetErrorCode())
assert.Equal(t, datapb.CompactionState_Completed, resp.GetState())
assert.Equal(t, commonpb.CompactionState_Completed, resp.GetState())
})
t.Run("test get compaction state in running", func(t *testing.T) {
svr := &Server{}
@ -1329,16 +1331,23 @@ func TestGetCompactionState(t *testing.T) {
svr.compactionHandler = &mockCompactionHandler{
methods: map[string]interface{}{
"getCompactionBySignalID": func(signalID int64) (executing, completed, timeout int) {
return 3, 2, 1
"getCompactionTasksBySignalID": func(signalID int64) []*compactionTask {
return []*compactionTask{
{state: executing},
{state: executing},
{state: executing},
{state: completed},
{state: completed},
{state: timeout},
}
},
},
}
resp, err := svr.GetCompactionState(context.Background(), &datapb.GetCompactionStateRequest{CompactionID: 1})
resp, err := svr.GetCompactionState(context.Background(), &milvuspb.GetCompactionStateRequest{CompactionID: 1})
assert.NoError(t, err)
assert.Equal(t, commonpb.ErrorCode_Success, resp.GetStatus().GetErrorCode())
assert.Equal(t, datapb.CompactionState_Executing, resp.GetState())
assert.Equal(t, commonpb.CompactionState_Executing, resp.GetState())
assert.EqualValues(t, 3, resp.GetExecutingPlanNo())
assert.EqualValues(t, 2, resp.GetCompletedPlanNo())
assert.EqualValues(t, 1, resp.GetTimeoutPlanNo())
@ -1348,7 +1357,7 @@ func TestGetCompactionState(t *testing.T) {
svr := &Server{}
svr.isServing = ServerStateStopped
resp, err := svr.GetCompactionState(context.Background(), &datapb.GetCompactionStateRequest{})
resp, err := svr.GetCompactionState(context.Background(), &milvuspb.GetCompactionStateRequest{})
assert.Nil(t, err)
assert.Equal(t, commonpb.ErrorCode_UnexpectedError, resp.GetStatus().GetErrorCode())
assert.Equal(t, msgDataCoordIsUnhealthy(Params.NodeID), resp.GetStatus().GetReason())
@ -1412,7 +1421,7 @@ func TestManualCompaction(t *testing.T) {
},
}
resp, err := svr.ManualCompaction(context.TODO(), &datapb.ManualCompactionRequest{
resp, err := svr.ManualCompaction(context.TODO(), &milvuspb.ManualCompactionRequest{
CollectionID: 1,
Timetravel: 1,
})
@ -1431,7 +1440,7 @@ func TestManualCompaction(t *testing.T) {
},
}
resp, err := svr.ManualCompaction(context.TODO(), &datapb.ManualCompactionRequest{
resp, err := svr.ManualCompaction(context.TODO(), &milvuspb.ManualCompactionRequest{
CollectionID: 1,
Timetravel: 1,
})
@ -1450,7 +1459,7 @@ func TestManualCompaction(t *testing.T) {
},
}
resp, err := svr.ManualCompaction(context.TODO(), &datapb.ManualCompactionRequest{
resp, err := svr.ManualCompaction(context.TODO(), &milvuspb.ManualCompactionRequest{
CollectionID: 1,
Timetravel: 1,
})
@ -1460,6 +1469,56 @@ func TestManualCompaction(t *testing.T) {
})
}
func TestGetCompactionStateWithPlans(t *testing.T) {
t.Run("test get compaction state successfully", func(t *testing.T) {
svr := &Server{}
svr.isServing = ServerStateHealthy
svr.compactionHandler = &mockCompactionHandler{
methods: map[string]interface{}{
"getCompactionTasksBySignalID": func(signalID int64) []*compactionTask {
return []*compactionTask{
{
triggerInfo: &compactionSignal{id: 1},
state: executing,
},
}
},
},
}
resp, err := svr.GetCompactionStateWithPlans(context.TODO(), &milvuspb.GetCompactionPlansRequest{
CompactionID: 1,
})
assert.Nil(t, err)
assert.Equal(t, commonpb.ErrorCode_Success, resp.Status.ErrorCode)
assert.Equal(t, commonpb.CompactionState_Executing, resp.State)
})
t.Run("test get compaction state with closed server", func(t *testing.T) {
svr := &Server{}
svr.isServing = ServerStateStopped
svr.compactionHandler = &mockCompactionHandler{
methods: map[string]interface{}{
"getCompactionTasksBySignalID": func(signalID int64) []*compactionTask {
return []*compactionTask{
{
triggerInfo: &compactionSignal{id: 1},
state: executing,
},
}
},
},
}
resp, err := svr.GetCompactionStateWithPlans(context.TODO(), &milvuspb.GetCompactionPlansRequest{
CompactionID: 1,
})
assert.Nil(t, err)
assert.Equal(t, commonpb.ErrorCode_UnexpectedError, resp.Status.ErrorCode)
assert.Equal(t, msgDataCoordIsUnhealthy(Params.NodeID), resp.Status.Reason)
})
}
func TestOptions(t *testing.T) {
t.Run("SetRootCoordCreator", func(t *testing.T) {
svr := newTestServer(t, nil)

View File

@ -645,10 +645,10 @@ func (s *Server) CompleteCompaction(ctx context.Context, req *datapb.CompactionR
return resp, nil
}
func (s *Server) ManualCompaction(ctx context.Context, req *datapb.ManualCompactionRequest) (*datapb.ManualCompactionResponse, error) {
func (s *Server) ManualCompaction(ctx context.Context, req *milvuspb.ManualCompactionRequest) (*milvuspb.ManualCompactionResponse, error) {
log.Debug("receive manual compaction", zap.Int64("collectionID", req.GetCollectionID()))
resp := &datapb.ManualCompactionResponse{
resp := &milvuspb.ManualCompactionResponse{
Status: &commonpb.Status{
ErrorCode: commonpb.ErrorCode_UnexpectedError,
},
@ -679,9 +679,9 @@ func (s *Server) ManualCompaction(ctx context.Context, req *datapb.ManualCompact
return resp, nil
}
func (s *Server) GetCompactionState(ctx context.Context, req *datapb.GetCompactionStateRequest) (*datapb.GetCompactionStateResponse, error) {
func (s *Server) GetCompactionState(ctx context.Context, req *milvuspb.GetCompactionStateRequest) (*milvuspb.GetCompactionStateResponse, error) {
log.Debug("receive get compaction state request", zap.Int64("compactionID", req.GetCompactionID()))
resp := &datapb.GetCompactionStateResponse{
resp := &milvuspb.GetCompactionStateResponse{
Status: &commonpb.Status{
ErrorCode: commonpb.ErrorCode_UnexpectedError,
},
@ -699,16 +699,80 @@ func (s *Server) GetCompactionState(ctx context.Context, req *datapb.GetCompacti
return resp, nil
}
executing, completed, timeout := s.compactionHandler.getCompactionBySignalID(req.GetCompactionID())
if executing != 0 {
resp.State = datapb.CompactionState_Executing
} else {
resp.State = datapb.CompactionState_Completed
}
tasks := s.compactionHandler.getCompactionTasksBySignalID(req.GetCompactionID())
state, executingCnt, completedCnt, timeoutCnt := getCompactionState(tasks)
resp.ExecutingPlanNo = int64(executing)
resp.CompletedPlanNo = int64(completed)
resp.TimeoutPlanNo = int64(timeout)
resp.State = state
resp.ExecutingPlanNo = int64(executingCnt)
resp.CompletedPlanNo = int64(completedCnt)
resp.TimeoutPlanNo = int64(timeoutCnt)
resp.Status.ErrorCode = commonpb.ErrorCode_Success
return resp, nil
}
func (s *Server) GetCompactionStateWithPlans(ctx context.Context, req *milvuspb.GetCompactionPlansRequest) (*milvuspb.GetCompactionPlansResponse, error) {
log.Debug("received GetCompactionStateWithPlans request", zap.Int64("compactionID", req.GetCompactionID()))
resp := &milvuspb.GetCompactionPlansResponse{
Status: &commonpb.Status{ErrorCode: commonpb.ErrorCode_UnexpectedError},
}
if s.isClosed() {
log.Warn("failed to get compaction state with plans", zap.Int64("compactionID", req.GetCompactionID()), zap.Error(errDataCoordIsUnhealthy(Params.NodeID)))
resp.Status.Reason = msgDataCoordIsUnhealthy(Params.NodeID)
return resp, nil
}
if !Params.EnableCompaction {
resp.Status.Reason = "compaction disabled"
return resp, nil
}
tasks := s.compactionHandler.getCompactionTasksBySignalID(req.GetCompactionID())
for _, task := range tasks {
resp.MergeInfos = append(resp.MergeInfos, getCompactionMergeInfo(task))
}
state, _, _, _ := getCompactionState(tasks)
resp.Status.ErrorCode = commonpb.ErrorCode_Success
resp.State = state
return resp, nil
}
func getCompactionMergeInfo(task *compactionTask) *milvuspb.CompactionMergeInfo {
segments := task.plan.GetSegmentBinlogs()
var sources []int64
for _, s := range segments {
sources = append(sources, s.GetSegmentID())
}
var target int64 = -1
if task.result != nil {
target = task.result.GetSegmentID()
}
return &milvuspb.CompactionMergeInfo{
Sources: sources,
Target: target,
}
}
func getCompactionState(tasks []*compactionTask) (state commonpb.CompactionState, executingCnt, completedCnt, timeoutCnt int) {
for _, t := range tasks {
switch t.state {
case executing:
executingCnt++
case completed:
completedCnt++
case timeout:
timeoutCnt++
}
}
if executingCnt != 0 {
state = commonpb.CompactionState_Executing
} else {
state = commonpb.CompactionState_Completed
}
return
}

View File

@ -546,7 +546,7 @@ func (c *Client) CompleteCompaction(ctx context.Context, req *datapb.CompactionR
return ret.(*commonpb.Status), err
}
func (c *Client) ManualCompaction(ctx context.Context, req *datapb.ManualCompactionRequest) (*datapb.ManualCompactionResponse, error) {
func (c *Client) ManualCompaction(ctx context.Context, req *milvuspb.ManualCompactionRequest) (*milvuspb.ManualCompactionResponse, error) {
ret, err := c.recall(func() (interface{}, error) {
client, err := c.getGrpcClient()
if err != nil {
@ -558,10 +558,10 @@ func (c *Client) ManualCompaction(ctx context.Context, req *datapb.ManualCompact
if err != nil || ret == nil {
return nil, err
}
return ret.(*datapb.ManualCompactionResponse), err
return ret.(*milvuspb.ManualCompactionResponse), err
}
func (c *Client) GetCompactionState(ctx context.Context, req *datapb.GetCompactionStateRequest) (*datapb.GetCompactionStateResponse, error) {
func (c *Client) GetCompactionState(ctx context.Context, req *milvuspb.GetCompactionStateRequest) (*milvuspb.GetCompactionStateResponse, error) {
ret, err := c.recall(func() (interface{}, error) {
client, err := c.getGrpcClient()
if err != nil {
@ -573,5 +573,20 @@ func (c *Client) GetCompactionState(ctx context.Context, req *datapb.GetCompacti
if err != nil || ret == nil {
return nil, err
}
return ret.(*datapb.GetCompactionStateResponse), err
return ret.(*milvuspb.GetCompactionStateResponse), err
}
func (c *Client) GetCompactionStateWithPlans(ctx context.Context, req *milvuspb.GetCompactionPlansRequest) (*milvuspb.GetCompactionPlansResponse, error) {
ret, err := c.recall(func() (interface{}, error) {
client, err := c.getGrpcClient()
if err != nil {
return nil, err
}
return client.GetCompactionStateWithPlans(ctx, req)
})
if err != nil || ret == nil {
return nil, err
}
return ret.(*milvuspb.GetCompactionPlansResponse), err
}

View File

@ -98,12 +98,16 @@ func (m *MockDataCoordClient) CompleteCompaction(ctx context.Context, req *datap
return &commonpb.Status{}, m.err
}
func (m *MockDataCoordClient) ManualCompaction(ctx context.Context, in *datapb.ManualCompactionRequest, opts ...grpc.CallOption) (*datapb.ManualCompactionResponse, error) {
return &datapb.ManualCompactionResponse{}, m.err
func (m *MockDataCoordClient) ManualCompaction(ctx context.Context, in *milvuspb.ManualCompactionRequest, opts ...grpc.CallOption) (*milvuspb.ManualCompactionResponse, error) {
return &milvuspb.ManualCompactionResponse{}, m.err
}
func (m *MockDataCoordClient) GetCompactionState(ctx context.Context, in *datapb.GetCompactionStateRequest, opts ...grpc.CallOption) (*datapb.GetCompactionStateResponse, error) {
return &datapb.GetCompactionStateResponse{}, m.err
func (m *MockDataCoordClient) GetCompactionState(ctx context.Context, in *milvuspb.GetCompactionStateRequest, opts ...grpc.CallOption) (*milvuspb.GetCompactionStateResponse, error) {
return &milvuspb.GetCompactionStateResponse{}, m.err
}
func (m *MockDataCoordClient) GetCompactionStateWithPlans(ctx context.Context, req *milvuspb.GetCompactionPlansRequest, opts ...grpc.CallOption) (*milvuspb.GetCompactionPlansResponse, error) {
return &milvuspb.GetCompactionPlansResponse{}, m.err
}
func Test_NewClient(t *testing.T) {
@ -187,6 +191,9 @@ func Test_NewClient(t *testing.T) {
r18, err := client.ManualCompaction(ctx, nil)
retCheck(retNotNil, r18, err)
r19, err := client.GetCompactionStateWithPlans(ctx, nil)
retCheck(retNotNil, r19, err)
}
client.getGrpcClient = func() (datapb.DataCoordClient, error) {

View File

@ -267,10 +267,14 @@ func (s *Server) CompleteCompaction(ctx context.Context, req *datapb.CompactionR
return s.dataCoord.CompleteCompaction(ctx, req)
}
func (s *Server) ManualCompaction(ctx context.Context, req *datapb.ManualCompactionRequest) (*datapb.ManualCompactionResponse, error) {
func (s *Server) ManualCompaction(ctx context.Context, req *milvuspb.ManualCompactionRequest) (*milvuspb.ManualCompactionResponse, error) {
return s.dataCoord.ManualCompaction(ctx, req)
}
func (s *Server) GetCompactionState(ctx context.Context, req *datapb.GetCompactionStateRequest) (*datapb.GetCompactionStateResponse, error) {
func (s *Server) GetCompactionState(ctx context.Context, req *milvuspb.GetCompactionStateRequest) (*milvuspb.GetCompactionStateResponse, error) {
return s.dataCoord.GetCompactionState(ctx, req)
}
func (s *Server) GetCompactionStateWithPlans(ctx context.Context, req *milvuspb.GetCompactionPlansRequest) (*milvuspb.GetCompactionPlansResponse, error) {
return s.dataCoord.GetCompactionStateWithPlans(ctx, req)
}

View File

@ -48,8 +48,9 @@ type MockDataCoord struct {
recoverResp *datapb.GetRecoveryInfoResponse
flushSegResp *datapb.GetFlushedSegmentsResponse
metricResp *milvuspb.GetMetricsResponse
compactionStateResp *datapb.GetCompactionStateResponse
manualCompactionResp *datapb.ManualCompactionResponse
compactionStateResp *milvuspb.GetCompactionStateResponse
manualCompactionResp *milvuspb.ManualCompactionResponse
compactionPlansResp *milvuspb.GetCompactionPlansResponse
}
func (m *MockDataCoord) Init() error {
@ -132,14 +133,18 @@ func (m *MockDataCoord) CompleteCompaction(ctx context.Context, req *datapb.Comp
return m.status, m.err
}
func (m *MockDataCoord) ManualCompaction(ctx context.Context, req *datapb.ManualCompactionRequest) (*datapb.ManualCompactionResponse, error) {
func (m *MockDataCoord) ManualCompaction(ctx context.Context, req *milvuspb.ManualCompactionRequest) (*milvuspb.ManualCompactionResponse, error) {
return m.manualCompactionResp, m.err
}
func (m *MockDataCoord) GetCompactionState(ctx context.Context, req *datapb.GetCompactionStateRequest) (*datapb.GetCompactionStateResponse, error) {
func (m *MockDataCoord) GetCompactionState(ctx context.Context, req *milvuspb.GetCompactionStateRequest) (*milvuspb.GetCompactionStateResponse, error) {
return m.compactionStateResp, m.err
}
func (m *MockDataCoord) GetCompactionStateWithPlans(ctx context.Context, req *milvuspb.GetCompactionPlansRequest) (*milvuspb.GetCompactionPlansResponse, error) {
return m.compactionPlansResp, m.err
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
func Test_NewServer(t *testing.T) {
ctx := context.Background()

View File

@ -449,3 +449,15 @@ func (s *Server) DropAlias(ctx context.Context, request *milvuspb.DropAliasReque
func (s *Server) AlterAlias(ctx context.Context, request *milvuspb.AlterAliasRequest) (*commonpb.Status, error) {
return s.proxy.AlterAlias(ctx, request)
}
func (s *Server) GetCompactionState(ctx context.Context, req *milvuspb.GetCompactionStateRequest) (*milvuspb.GetCompactionStateResponse, error) {
return s.proxy.GetCompactionState(ctx, req)
}
func (s *Server) ManualCompaction(ctx context.Context, req *milvuspb.ManualCompactionRequest) (*milvuspb.ManualCompactionResponse, error) {
return s.proxy.ManualCompaction(ctx, req)
}
func (s *Server) GetCompactionStateWithPlans(ctx context.Context, req *milvuspb.GetCompactionPlansRequest) (*milvuspb.GetCompactionPlansResponse, error) {
return s.proxy.GetCompactionStateWithPlans(ctx, req)
}

View File

@ -383,11 +383,15 @@ func (m *MockDataCoord) CompleteCompaction(ctx context.Context, req *datapb.Comp
return nil, nil
}
func (m *MockDataCoord) ManualCompaction(ctx context.Context, req *datapb.ManualCompactionRequest) (*datapb.ManualCompactionResponse, error) {
func (m *MockDataCoord) ManualCompaction(ctx context.Context, req *milvuspb.ManualCompactionRequest) (*milvuspb.ManualCompactionResponse, error) {
return nil, nil
}
func (m *MockDataCoord) GetCompactionState(ctx context.Context, req *datapb.GetCompactionStateRequest) (*datapb.GetCompactionStateResponse, error) {
func (m *MockDataCoord) GetCompactionState(ctx context.Context, req *milvuspb.GetCompactionStateRequest) (*milvuspb.GetCompactionStateResponse, error) {
return nil, nil
}
func (m *MockDataCoord) GetCompactionStateWithPlans(ctx context.Context, req *milvuspb.GetCompactionPlansRequest) (*milvuspb.GetCompactionPlansResponse, error) {
return nil, nil
}
@ -589,6 +593,18 @@ func (m *MockProxy) UpdateStateCode(stateCode internalpb.StateCode) {
}
func (m *MockProxy) GetCompactionState(ctx context.Context, req *milvuspb.GetCompactionStateRequest) (*milvuspb.GetCompactionStateResponse, error) {
return nil, nil
}
func (m *MockProxy) ManualCompaction(ctx context.Context, req *milvuspb.ManualCompactionRequest) (*milvuspb.ManualCompactionResponse, error) {
return nil, nil
}
func (m *MockProxy) GetCompactionStateWithPlans(ctx context.Context, req *milvuspb.GetCompactionPlansRequest) (*milvuspb.GetCompactionPlansResponse, error) {
return nil, nil
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
func Test_NewServer(t *testing.T) {
ctx := context.Background()
@ -807,6 +823,21 @@ func Test_NewServer(t *testing.T) {
assert.Nil(t, err)
})
t.Run("GetCompactionState", func(t *testing.T) {
_, err := server.GetCompactionState(ctx, nil)
assert.Nil(t, err)
})
t.Run("ManualCompaction", func(t *testing.T) {
_, err := server.ManualCompaction(ctx, nil)
assert.Nil(t, err)
})
t.Run("GetCompactionStateWithPlans", func(t *testing.T) {
_, err := server.GetCompactionStateWithPlans(ctx, nil)
assert.Nil(t, err)
})
err = server.Stop()
assert.Nil(t, err)
}

View File

@ -175,3 +175,9 @@ message DMLMsgHeader {
common.MsgBase base = 1;
string shardName = 2;
}
enum CompactionState {
UndefiedState = 0;
Executing = 1;
Completed = 2;
}

View File

@ -412,6 +412,34 @@ func (DslType) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_555bd8c177793206, []int{4}
}
type CompactionState int32
const (
CompactionState_UndefiedState CompactionState = 0
CompactionState_Executing CompactionState = 1
CompactionState_Completed CompactionState = 2
)
var CompactionState_name = map[int32]string{
0: "UndefiedState",
1: "Executing",
2: "Completed",
}
var CompactionState_value = map[string]int32{
"UndefiedState": 0,
"Executing": 1,
"Completed": 2,
}
func (x CompactionState) String() string {
return proto.EnumName(CompactionState_name, int32(x))
}
func (CompactionState) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_555bd8c177793206, []int{5}
}
type Status struct {
ErrorCode ErrorCode `protobuf:"varint,1,opt,name=error_code,json=errorCode,proto3,enum=milvus.proto.common.ErrorCode" json:"error_code,omitempty"`
Reason string `protobuf:"bytes,2,opt,name=reason,proto3" json:"reason,omitempty"`
@ -796,6 +824,7 @@ func init() {
proto.RegisterEnum("milvus.proto.common.SegmentState", SegmentState_name, SegmentState_value)
proto.RegisterEnum("milvus.proto.common.MsgType", MsgType_name, MsgType_value)
proto.RegisterEnum("milvus.proto.common.DslType", DslType_name, DslType_value)
proto.RegisterEnum("milvus.proto.common.CompactionState", CompactionState_name, CompactionState_value)
proto.RegisterType((*Status)(nil), "milvus.proto.common.Status")
proto.RegisterType((*KeyValuePair)(nil), "milvus.proto.common.KeyValuePair")
proto.RegisterType((*KeyDataPair)(nil), "milvus.proto.common.KeyDataPair")
@ -809,92 +838,95 @@ func init() {
func init() { proto.RegisterFile("common.proto", fileDescriptor_555bd8c177793206) }
var fileDescriptor_555bd8c177793206 = []byte{
// 1390 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0x4b, 0x73, 0x1b, 0x37,
0x12, 0xd6, 0x70, 0x28, 0x51, 0x84, 0x28, 0x09, 0x82, 0x1e, 0x96, 0xbd, 0xda, 0x2d, 0x17, 0x4f,
0x2e, 0x55, 0x59, 0xda, 0x5d, 0xd7, 0xee, 0x9e, 0x7c, 0x90, 0x38, 0x7a, 0xb0, 0x6c, 0x3d, 0x76,
0x28, 0x3b, 0xa9, 0x1c, 0xe2, 0x82, 0x66, 0x9a, 0x24, 0xe2, 0x19, 0x80, 0x01, 0x40, 0x59, 0xbc,
0x25, 0xff, 0x20, 0xf1, 0xef, 0x48, 0x52, 0x79, 0x27, 0x95, 0x5f, 0x90, 0xf7, 0x39, 0xf9, 0x07,
0xf9, 0x01, 0x79, 0xfa, 0x99, 0x6a, 0xcc, 0x90, 0x1c, 0x57, 0xd9, 0xa7, 0xdc, 0xd0, 0x1f, 0xba,
0xbf, 0x6e, 0x7c, 0xdd, 0xc0, 0x0c, 0xa9, 0x45, 0x2a, 0x4d, 0x95, 0xdc, 0xe8, 0x69, 0x65, 0x15,
0x5b, 0x4c, 0x45, 0x72, 0xd6, 0x37, 0x99, 0xb5, 0x91, 0x6d, 0xd5, 0xef, 0x90, 0xa9, 0x96, 0xe5,
0xb6, 0x6f, 0xd8, 0x75, 0x42, 0x40, 0x6b, 0xa5, 0xef, 0x44, 0x2a, 0x86, 0x55, 0xef, 0xb2, 0x77,
0x65, 0xee, 0xdf, 0xff, 0xd8, 0x78, 0x4e, 0xcc, 0xc6, 0x0e, 0xba, 0x35, 0x54, 0x0c, 0x61, 0x15,
0x86, 0x4b, 0xb6, 0x42, 0xa6, 0x34, 0x70, 0xa3, 0xe4, 0x6a, 0xe9, 0xb2, 0x77, 0xa5, 0x1a, 0xe6,
0x56, 0xfd, 0xbf, 0xa4, 0x76, 0x03, 0x06, 0xb7, 0x79, 0xd2, 0x87, 0x63, 0x2e, 0x34, 0xa3, 0xc4,
0xbf, 0x0b, 0x03, 0xc7, 0x5f, 0x0d, 0x71, 0xc9, 0x96, 0xc8, 0xe4, 0x19, 0x6e, 0xe7, 0x81, 0x99,
0x51, 0xbf, 0x46, 0x66, 0x6e, 0xc0, 0x20, 0xe0, 0x96, 0xbf, 0x20, 0x8c, 0x91, 0x72, 0xcc, 0x2d,
0x77, 0x51, 0xb5, 0xd0, 0xad, 0xeb, 0x6b, 0xa4, 0xbc, 0x9d, 0xa8, 0xd3, 0x31, 0xa5, 0xe7, 0x36,
0x73, 0xca, 0xab, 0xa4, 0xb2, 0x15, 0xc7, 0x1a, 0x8c, 0x61, 0x73, 0xa4, 0x24, 0x7a, 0x39, 0x5b,
0x49, 0xf4, 0x90, 0xac, 0xa7, 0xb4, 0x75, 0x64, 0x7e, 0xe8, 0xd6, 0xf5, 0xfb, 0x1e, 0xa9, 0x1c,
0x98, 0xce, 0x36, 0x37, 0xc0, 0xfe, 0x47, 0xa6, 0x53, 0xd3, 0xb9, 0x63, 0x07, 0xbd, 0xa1, 0x34,
0x6b, 0xcf, 0x95, 0xe6, 0xc0, 0x74, 0x4e, 0x06, 0x3d, 0x08, 0x2b, 0x69, 0xb6, 0xc0, 0x4a, 0x52,
0xd3, 0x69, 0x06, 0x39, 0x73, 0x66, 0xb0, 0x35, 0x52, 0xb5, 0x22, 0x05, 0x63, 0x79, 0xda, 0x5b,
0xf5, 0x2f, 0x7b, 0x57, 0xca, 0xe1, 0x18, 0x60, 0x97, 0xc8, 0xb4, 0x51, 0x7d, 0x1d, 0x41, 0x33,
0x58, 0x2d, 0xbb, 0xb0, 0x91, 0x5d, 0xbf, 0x4e, 0xaa, 0x07, 0xa6, 0xb3, 0x0f, 0x3c, 0x06, 0xcd,
0xfe, 0x49, 0xca, 0xa7, 0xdc, 0x64, 0x15, 0xcd, 0xbc, 0xb8, 0x22, 0x3c, 0x41, 0xe8, 0x3c, 0xeb,
0xaf, 0x92, 0x5a, 0x70, 0x70, 0xf3, 0x2f, 0x30, 0x60, 0xe9, 0xa6, 0xcb, 0x75, 0x7c, 0xc8, 0xd3,
0x61, 0xc7, 0xc6, 0xc0, 0xfa, 0x17, 0x65, 0x52, 0x1d, 0x8d, 0x07, 0x9b, 0x21, 0x95, 0x56, 0x3f,
0x8a, 0xc0, 0x18, 0x3a, 0xc1, 0x16, 0xc9, 0xfc, 0x2d, 0x09, 0xe7, 0x3d, 0x88, 0x2c, 0xc4, 0xce,
0x87, 0x7a, 0x6c, 0x81, 0xcc, 0x36, 0x94, 0x94, 0x10, 0xd9, 0x5d, 0x2e, 0x12, 0x88, 0x69, 0x89,
0x2d, 0x11, 0x7a, 0x0c, 0x3a, 0x15, 0xc6, 0x08, 0x25, 0x03, 0x90, 0x02, 0x62, 0xea, 0xb3, 0x0b,
0x64, 0xb1, 0xa1, 0x92, 0x04, 0x22, 0x2b, 0x94, 0x3c, 0x54, 0x76, 0xe7, 0x5c, 0x18, 0x6b, 0x68,
0x19, 0x69, 0x9b, 0x49, 0x02, 0x1d, 0x9e, 0x6c, 0xe9, 0x4e, 0x3f, 0x05, 0x69, 0xe9, 0x24, 0x72,
0xe4, 0x60, 0x20, 0x52, 0x90, 0xc8, 0x44, 0x2b, 0x05, 0xb4, 0x29, 0x63, 0x38, 0xc7, 0xfe, 0xd0,
0x69, 0x76, 0x91, 0x2c, 0xe7, 0x68, 0x21, 0x01, 0x4f, 0x81, 0x56, 0xd9, 0x3c, 0x99, 0xc9, 0xb7,
0x4e, 0x8e, 0x8e, 0x6f, 0x50, 0x52, 0x60, 0x08, 0xd5, 0xbd, 0x10, 0x22, 0xa5, 0x63, 0x3a, 0x53,
0x28, 0xe1, 0x36, 0x44, 0x56, 0xe9, 0x66, 0x40, 0x6b, 0x58, 0x70, 0x0e, 0xb6, 0x80, 0xeb, 0xa8,
0x1b, 0x82, 0xe9, 0x27, 0x96, 0xce, 0x32, 0x4a, 0x6a, 0xbb, 0x22, 0x81, 0x43, 0x65, 0x77, 0x55,
0x5f, 0xc6, 0x74, 0x8e, 0xcd, 0x11, 0x72, 0x00, 0x96, 0xe7, 0x0a, 0xcc, 0x63, 0xda, 0x06, 0x8f,
0xba, 0x90, 0x03, 0x94, 0xad, 0x10, 0xd6, 0xe0, 0x52, 0x2a, 0xdb, 0xd0, 0xc0, 0x2d, 0xec, 0xaa,
0x24, 0x06, 0x4d, 0x17, 0xb0, 0x9c, 0x67, 0x70, 0x91, 0x00, 0x65, 0x63, 0xef, 0x00, 0x12, 0x18,
0x79, 0x2f, 0x8e, 0xbd, 0x73, 0x1c, 0xbd, 0x97, 0xb0, 0xf8, 0xed, 0xbe, 0x48, 0x62, 0x27, 0x49,
0xd6, 0x96, 0x65, 0xac, 0x31, 0x2f, 0xfe, 0xf0, 0x66, 0xb3, 0x75, 0x42, 0x57, 0xd8, 0x32, 0x59,
0xc8, 0x91, 0x03, 0xb0, 0x5a, 0x44, 0x4e, 0xbc, 0x0b, 0x58, 0xea, 0x51, 0xdf, 0x1e, 0xb5, 0x0f,
0x20, 0x55, 0x7a, 0x40, 0x57, 0xb1, 0xa1, 0x8e, 0x69, 0xd8, 0x22, 0x7a, 0x11, 0x33, 0xec, 0xa4,
0x3d, 0x3b, 0x18, 0xcb, 0x4b, 0x2f, 0x31, 0x46, 0x66, 0x83, 0x20, 0x84, 0xd7, 0xfb, 0x60, 0x6c,
0xc8, 0x23, 0xa0, 0x3f, 0x55, 0xd6, 0x5f, 0x26, 0xc4, 0xc5, 0xe2, 0x83, 0x04, 0x8c, 0x91, 0xb9,
0xb1, 0x75, 0xa8, 0x24, 0xd0, 0x09, 0x56, 0x23, 0xd3, 0xb7, 0xa4, 0x30, 0xa6, 0x0f, 0x31, 0xf5,
0x50, 0xb7, 0xa6, 0x3c, 0xd6, 0xaa, 0x83, 0x57, 0x9a, 0x96, 0x70, 0x77, 0x57, 0x48, 0x61, 0xba,
0x6e, 0x62, 0x08, 0x99, 0xca, 0x05, 0x2c, 0xaf, 0xb7, 0x49, 0xad, 0x05, 0x1d, 0x1c, 0x8e, 0x8c,
0x7b, 0x89, 0xd0, 0xa2, 0x3d, 0x66, 0x1f, 0x95, 0xed, 0xe1, 0xf0, 0xee, 0x69, 0x75, 0x4f, 0xc8,
0x0e, 0x2d, 0x21, 0x59, 0x0b, 0x78, 0xe2, 0x88, 0x67, 0x48, 0x65, 0x37, 0xe9, 0xbb, 0x2c, 0x65,
0x97, 0x13, 0x0d, 0x74, 0x9b, 0x5c, 0x7f, 0x3c, 0xed, 0x9e, 0x0c, 0x77, 0xf3, 0x67, 0x49, 0xf5,
0x96, 0x8c, 0xa1, 0x2d, 0x24, 0xc4, 0x74, 0xc2, 0xa9, 0xef, 0xba, 0x54, 0x90, 0x21, 0xc6, 0x43,
0x06, 0x5a, 0xf5, 0x0a, 0x18, 0xa0, 0x84, 0xfb, 0xdc, 0x14, 0xa0, 0x36, 0xb6, 0x34, 0x00, 0x13,
0x69, 0x71, 0x5a, 0x0c, 0xef, 0xa0, 0xb4, 0xad, 0xae, 0xba, 0x37, 0xc6, 0x0c, 0xed, 0x62, 0xa6,
0x3d, 0xb0, 0xad, 0x81, 0xb1, 0x90, 0x36, 0x94, 0x6c, 0x8b, 0x8e, 0xa1, 0x02, 0x33, 0xdd, 0x54,
0x3c, 0x2e, 0x84, 0xbf, 0x86, 0x4d, 0x0d, 0x21, 0x01, 0x6e, 0x8a, 0xac, 0x77, 0xdd, 0xfc, 0xb9,
0x52, 0xb7, 0x12, 0xc1, 0x0d, 0x4d, 0xf0, 0x28, 0x58, 0x65, 0x66, 0xa6, 0xa8, 0xfb, 0x56, 0x62,
0x41, 0x67, 0xb6, 0x64, 0x4b, 0x64, 0x3e, 0xf3, 0x3f, 0xe6, 0xda, 0x0a, 0x47, 0xf2, 0xa5, 0xe7,
0x3a, 0xac, 0x55, 0x6f, 0x8c, 0x7d, 0x85, 0xd7, 0xbd, 0xb6, 0xcf, 0xcd, 0x18, 0xfa, 0xda, 0x63,
0x2b, 0x64, 0x61, 0x78, 0xb4, 0x31, 0xfe, 0x8d, 0xc7, 0x16, 0xc9, 0x1c, 0x1e, 0x6d, 0x84, 0x19,
0xfa, 0xad, 0x03, 0xf1, 0x10, 0x05, 0xf0, 0x3b, 0xc7, 0x90, 0x9f, 0xa2, 0x80, 0x7f, 0xef, 0x92,
0x21, 0x43, 0xde, 0x68, 0x43, 0x1f, 0x78, 0x58, 0xe9, 0x30, 0x59, 0x0e, 0xd3, 0x87, 0xce, 0x11,
0x59, 0x47, 0x8e, 0x8f, 0x9c, 0x63, 0xce, 0x39, 0x42, 0x1f, 0x3b, 0x74, 0x9f, 0xcb, 0x58, 0xb5,
0xdb, 0x23, 0xf4, 0x89, 0xc7, 0x56, 0xc9, 0x22, 0x86, 0x6f, 0xf3, 0x84, 0xcb, 0x68, 0xec, 0xff,
0xd4, 0x63, 0x74, 0x28, 0xa4, 0x1b, 0x64, 0xfa, 0x4e, 0xc9, 0x89, 0x92, 0x17, 0x90, 0x61, 0xef,
0x96, 0xd8, 0x5c, 0xa6, 0x6e, 0x66, 0xbf, 0x57, 0x62, 0x33, 0x64, 0xaa, 0x29, 0x0d, 0x68, 0x4b,
0xdf, 0xc2, 0x61, 0x9b, 0xca, 0xae, 0x2b, 0x7d, 0x1b, 0x47, 0x7a, 0xd2, 0x0d, 0x1b, 0xbd, 0xef,
0x36, 0xb2, 0x87, 0x85, 0xfe, 0xec, 0xbb, 0xa3, 0x16, 0x5f, 0x99, 0x5f, 0x7c, 0xcc, 0xb4, 0x07,
0x76, 0x7c, 0x83, 0xe8, 0xaf, 0x3e, 0xbb, 0x44, 0x96, 0x87, 0x98, 0xbb, 0xf3, 0xa3, 0xbb, 0xf3,
0x9b, 0xcf, 0xd6, 0xc8, 0x85, 0x3d, 0xb0, 0xe3, 0x39, 0xc0, 0x20, 0x61, 0xac, 0x88, 0x0c, 0xfd,
0xdd, 0x67, 0x7f, 0x23, 0x2b, 0x7b, 0x60, 0x47, 0xfa, 0x16, 0x36, 0xff, 0xf0, 0xd9, 0x2c, 0x99,
0x0e, 0xf1, 0x51, 0x80, 0x33, 0xa0, 0x0f, 0x7c, 0x6c, 0xd2, 0xd0, 0xcc, 0xcb, 0x79, 0xe8, 0xa3,
0x74, 0x2f, 0x71, 0x1b, 0x75, 0x83, 0xb4, 0xd1, 0xe5, 0x52, 0x42, 0x62, 0xe8, 0x23, 0x9f, 0x2d,
0x13, 0x1a, 0x42, 0xaa, 0xce, 0xa0, 0x00, 0x3f, 0xc6, 0xc7, 0x9e, 0x39, 0xe7, 0xff, 0xf7, 0x41,
0x0f, 0x46, 0x1b, 0x4f, 0x7c, 0x94, 0x3a, 0xf3, 0x7f, 0x76, 0xe7, 0xa9, 0xcf, 0xfe, 0x4e, 0x56,
0xb3, 0x0b, 0x3a, 0xd4, 0x1f, 0x37, 0x3b, 0xd0, 0x94, 0x6d, 0x45, 0xdf, 0x28, 0x8f, 0x18, 0x03,
0x48, 0x2c, 0x1f, 0xc5, 0xbd, 0x59, 0xc6, 0x16, 0xe5, 0x11, 0xce, 0xf5, 0x87, 0x32, 0x9b, 0x27,
0x24, 0xbb, 0x3b, 0x0e, 0xf8, 0xb1, 0x8c, 0xc7, 0x3b, 0x11, 0x29, 0x9c, 0x88, 0xe8, 0x2e, 0x7d,
0xbf, 0x8a, 0xc7, 0x73, 0xd9, 0x0f, 0x55, 0x0c, 0xa8, 0x83, 0xa1, 0x1f, 0x54, 0xb1, 0x87, 0x38,
0x03, 0x59, 0x0f, 0x3f, 0x74, 0x76, 0xfe, 0xb8, 0x35, 0x03, 0xfa, 0x11, 0x7e, 0x49, 0x48, 0x6e,
0x9f, 0xb4, 0x8e, 0xe8, 0xc7, 0x55, 0xd4, 0x63, 0x2b, 0x49, 0x54, 0xc4, 0xed, 0x68, 0x12, 0x3f,
0xa9, 0xe2, 0x28, 0x17, 0xde, 0xa5, 0x5c, 0xe1, 0x4f, 0xab, 0xa8, 0x53, 0x8e, 0xbb, 0xfe, 0x07,
0xf8, 0x5e, 0x7d, 0xe6, 0x58, 0xf1, 0x07, 0x09, 0x2b, 0x39, 0xb1, 0xf4, 0xf3, 0xea, 0x7a, 0x9d,
0x54, 0x02, 0x93, 0xb8, 0xe7, 0xa7, 0x42, 0xfc, 0xc0, 0x24, 0x74, 0x02, 0x6f, 0xeb, 0xb6, 0x52,
0xc9, 0xce, 0x79, 0x4f, 0xdf, 0xfe, 0x17, 0xf5, 0xb6, 0xff, 0xf3, 0xca, 0xb5, 0x8e, 0xb0, 0xdd,
0xfe, 0x29, 0x7e, 0xdf, 0x37, 0xb3, 0x0f, 0xfe, 0x55, 0xa1, 0xf2, 0xd5, 0xa6, 0x90, 0x16, 0xb4,
0xe4, 0xc9, 0xa6, 0xfb, 0x07, 0xd8, 0xcc, 0xfe, 0x01, 0x7a, 0xa7, 0xa7, 0x53, 0xce, 0xbe, 0xf6,
0x67, 0x00, 0x00, 0x00, 0xff, 0xff, 0x26, 0x52, 0x92, 0x64, 0x54, 0x0a, 0x00, 0x00,
// 1426 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0x4b, 0x73, 0xdb, 0xc8,
0x11, 0x16, 0x08, 0x4a, 0x14, 0x5b, 0x94, 0x34, 0x1a, 0x3d, 0x2c, 0x3b, 0x4a, 0xca, 0xc5, 0x93,
0x4b, 0x55, 0x96, 0x92, 0xb8, 0x92, 0x9c, 0x7c, 0x90, 0x08, 0x3d, 0x58, 0xb6, 0x1e, 0x01, 0x65,
0x27, 0x95, 0x43, 0x5c, 0x23, 0xa0, 0x49, 0x4e, 0x0c, 0x60, 0x18, 0xcc, 0x40, 0x16, 0x6f, 0xc9,
0x3f, 0x48, 0xfc, 0x3b, 0x92, 0x54, 0x92, 0x7d, 0xd6, 0xfe, 0x82, 0x7d, 0x9f, 0x77, 0xff, 0xc1,
0xfe, 0x80, 0x7d, 0xfa, 0xb9, 0xd5, 0x03, 0x90, 0x84, 0xab, 0xec, 0xd3, 0xde, 0xa6, 0xbf, 0xe9,
0xfe, 0xa6, 0xe7, 0xeb, 0x9e, 0x06, 0xa0, 0x11, 0xa8, 0x38, 0x56, 0xc9, 0xd6, 0x20, 0x55, 0x46,
0xf1, 0xe5, 0x58, 0x46, 0x17, 0x99, 0xce, 0xad, 0xad, 0x7c, 0xab, 0xf9, 0x00, 0x66, 0x3a, 0x46,
0x98, 0x4c, 0xf3, 0xdb, 0x00, 0x98, 0xa6, 0x2a, 0x7d, 0x10, 0xa8, 0x10, 0xd7, 0x9d, 0xeb, 0xce,
0x8d, 0x85, 0x5f, 0xff, 0x62, 0xeb, 0x35, 0x31, 0x5b, 0x7b, 0xe4, 0xd6, 0x52, 0x21, 0xfa, 0x75,
0x1c, 0x2d, 0xf9, 0x1a, 0xcc, 0xa4, 0x28, 0xb4, 0x4a, 0xd6, 0x2b, 0xd7, 0x9d, 0x1b, 0x75, 0xbf,
0xb0, 0x9a, 0xbf, 0x85, 0xc6, 0x1d, 0x1c, 0xde, 0x17, 0x51, 0x86, 0xa7, 0x42, 0xa6, 0x9c, 0x81,
0xfb, 0x10, 0x87, 0x96, 0xbf, 0xee, 0xd3, 0x92, 0xaf, 0xc0, 0xf4, 0x05, 0x6d, 0x17, 0x81, 0xb9,
0xd1, 0xbc, 0x05, 0x73, 0x77, 0x70, 0xe8, 0x09, 0x23, 0xde, 0x10, 0xc6, 0xa1, 0x1a, 0x0a, 0x23,
0x6c, 0x54, 0xc3, 0xb7, 0xeb, 0xe6, 0x06, 0x54, 0x77, 0x23, 0x75, 0x3e, 0xa1, 0x74, 0xec, 0x66,
0x41, 0x79, 0x13, 0x6a, 0x3b, 0x61, 0x98, 0xa2, 0xd6, 0x7c, 0x01, 0x2a, 0x72, 0x50, 0xb0, 0x55,
0xe4, 0x80, 0xc8, 0x06, 0x2a, 0x35, 0x96, 0xcc, 0xf5, 0xed, 0xba, 0xf9, 0xd8, 0x81, 0xda, 0x91,
0xee, 0xed, 0x0a, 0x8d, 0xfc, 0x77, 0x30, 0x1b, 0xeb, 0xde, 0x03, 0x33, 0x1c, 0x8c, 0xa4, 0xd9,
0x78, 0xad, 0x34, 0x47, 0xba, 0x77, 0x36, 0x1c, 0xa0, 0x5f, 0x8b, 0xf3, 0x05, 0x65, 0x12, 0xeb,
0x5e, 0xdb, 0x2b, 0x98, 0x73, 0x83, 0x6f, 0x40, 0xdd, 0xc8, 0x18, 0xb5, 0x11, 0xf1, 0x60, 0xdd,
0xbd, 0xee, 0xdc, 0xa8, 0xfa, 0x13, 0x80, 0x5f, 0x83, 0x59, 0xad, 0xb2, 0x34, 0xc0, 0xb6, 0xb7,
0x5e, 0xb5, 0x61, 0x63, 0xbb, 0x79, 0x1b, 0xea, 0x47, 0xba, 0x77, 0x88, 0x22, 0xc4, 0x94, 0xff,
0x12, 0xaa, 0xe7, 0x42, 0xe7, 0x19, 0xcd, 0xbd, 0x39, 0x23, 0xba, 0x81, 0x6f, 0x3d, 0x9b, 0x7f,
0x86, 0x86, 0x77, 0x74, 0xf7, 0x27, 0x30, 0x50, 0xea, 0xba, 0x2f, 0xd2, 0xf0, 0x58, 0xc4, 0xa3,
0x8a, 0x4d, 0x80, 0xcd, 0x0f, 0xaa, 0x50, 0x1f, 0xb7, 0x07, 0x9f, 0x83, 0x5a, 0x27, 0x0b, 0x02,
0xd4, 0x9a, 0x4d, 0xf1, 0x65, 0x58, 0xbc, 0x97, 0xe0, 0xe5, 0x00, 0x03, 0x83, 0xa1, 0xf5, 0x61,
0x0e, 0x5f, 0x82, 0xf9, 0x96, 0x4a, 0x12, 0x0c, 0xcc, 0xbe, 0x90, 0x11, 0x86, 0xac, 0xc2, 0x57,
0x80, 0x9d, 0x62, 0x1a, 0x4b, 0xad, 0xa5, 0x4a, 0x3c, 0x4c, 0x24, 0x86, 0xcc, 0xe5, 0x57, 0x60,
0xb9, 0xa5, 0xa2, 0x08, 0x03, 0x23, 0x55, 0x72, 0xac, 0xcc, 0xde, 0xa5, 0xd4, 0x46, 0xb3, 0x2a,
0xd1, 0xb6, 0xa3, 0x08, 0x7b, 0x22, 0xda, 0x49, 0x7b, 0x59, 0x8c, 0x89, 0x61, 0xd3, 0xc4, 0x51,
0x80, 0x9e, 0x8c, 0x31, 0x21, 0x26, 0x56, 0x2b, 0xa1, 0xed, 0x24, 0xc4, 0x4b, 0xaa, 0x0f, 0x9b,
0xe5, 0x57, 0x61, 0xb5, 0x40, 0x4b, 0x07, 0x88, 0x18, 0x59, 0x9d, 0x2f, 0xc2, 0x5c, 0xb1, 0x75,
0x76, 0x72, 0x7a, 0x87, 0x41, 0x89, 0xc1, 0x57, 0x8f, 0x7c, 0x0c, 0x54, 0x1a, 0xb2, 0xb9, 0x52,
0x0a, 0xf7, 0x31, 0x30, 0x2a, 0x6d, 0x7b, 0xac, 0x41, 0x09, 0x17, 0x60, 0x07, 0x45, 0x1a, 0xf4,
0x7d, 0xd4, 0x59, 0x64, 0xd8, 0x3c, 0x67, 0xd0, 0xd8, 0x97, 0x11, 0x1e, 0x2b, 0xb3, 0xaf, 0xb2,
0x24, 0x64, 0x0b, 0x7c, 0x01, 0xe0, 0x08, 0x8d, 0x28, 0x14, 0x58, 0xa4, 0x63, 0x5b, 0x22, 0xe8,
0x63, 0x01, 0x30, 0xbe, 0x06, 0xbc, 0x25, 0x92, 0x44, 0x99, 0x56, 0x8a, 0xc2, 0xe0, 0xbe, 0x8a,
0x42, 0x4c, 0xd9, 0x12, 0xa5, 0xf3, 0x0a, 0x2e, 0x23, 0x64, 0x7c, 0xe2, 0xed, 0x61, 0x84, 0x63,
0xef, 0xe5, 0x89, 0x77, 0x81, 0x93, 0xf7, 0x0a, 0x25, 0xbf, 0x9b, 0xc9, 0x28, 0xb4, 0x92, 0xe4,
0x65, 0x59, 0xa5, 0x1c, 0x8b, 0xe4, 0x8f, 0xef, 0xb6, 0x3b, 0x67, 0x6c, 0x8d, 0xaf, 0xc2, 0x52,
0x81, 0x1c, 0xa1, 0x49, 0x65, 0x60, 0xc5, 0xbb, 0x42, 0xa9, 0x9e, 0x64, 0xe6, 0xa4, 0x7b, 0x84,
0xb1, 0x4a, 0x87, 0x6c, 0x9d, 0x0a, 0x6a, 0x99, 0x46, 0x25, 0x62, 0x57, 0xe9, 0x84, 0xbd, 0x78,
0x60, 0x86, 0x13, 0x79, 0xd9, 0x35, 0xce, 0x61, 0xde, 0xf3, 0x7c, 0xfc, 0x6b, 0x86, 0xda, 0xf8,
0x22, 0x40, 0xf6, 0x55, 0x6d, 0xf3, 0x8f, 0x00, 0x36, 0x96, 0x06, 0x12, 0x72, 0x0e, 0x0b, 0x13,
0xeb, 0x58, 0x25, 0xc8, 0xa6, 0x78, 0x03, 0x66, 0xef, 0x25, 0x52, 0xeb, 0x0c, 0x43, 0xe6, 0x90,
0x6e, 0xed, 0xe4, 0x34, 0x55, 0x3d, 0x7a, 0xd2, 0xac, 0x42, 0xbb, 0xfb, 0x32, 0x91, 0xba, 0x6f,
0x3b, 0x06, 0x60, 0xa6, 0x10, 0xb0, 0xba, 0xd9, 0x85, 0x46, 0x07, 0x7b, 0xd4, 0x1c, 0x39, 0xf7,
0x0a, 0xb0, 0xb2, 0x3d, 0x61, 0x1f, 0xa7, 0xed, 0x50, 0xf3, 0x1e, 0xa4, 0xea, 0x91, 0x4c, 0x7a,
0xac, 0x42, 0x64, 0x1d, 0x14, 0x91, 0x25, 0x9e, 0x83, 0xda, 0x7e, 0x94, 0xd9, 0x53, 0xaa, 0xf6,
0x4c, 0x32, 0xc8, 0x6d, 0x7a, 0xf3, 0xf9, 0xac, 0x1d, 0x19, 0xf6, 0xe5, 0xcf, 0x43, 0xfd, 0x5e,
0x12, 0x62, 0x57, 0x26, 0x18, 0xb2, 0x29, 0xab, 0xbe, 0xad, 0x52, 0x49, 0x86, 0x90, 0x2e, 0xe9,
0xa5, 0x6a, 0x50, 0xc2, 0x90, 0x24, 0x3c, 0x14, 0xba, 0x04, 0x75, 0xa9, 0xa4, 0x1e, 0xea, 0x20,
0x95, 0xe7, 0xe5, 0xf0, 0x1e, 0x49, 0xdb, 0xe9, 0xab, 0x47, 0x13, 0x4c, 0xb3, 0x3e, 0x9d, 0x74,
0x80, 0xa6, 0x33, 0xd4, 0x06, 0xe3, 0x96, 0x4a, 0xba, 0xb2, 0xa7, 0x99, 0xa4, 0x93, 0xee, 0x2a,
0x11, 0x96, 0xc2, 0xff, 0x42, 0x45, 0xf5, 0x31, 0x42, 0xa1, 0xcb, 0xac, 0x0f, 0x6d, 0xff, 0xd9,
0x54, 0x77, 0x22, 0x29, 0x34, 0x8b, 0xe8, 0x2a, 0x94, 0x65, 0x6e, 0xc6, 0xa4, 0xfb, 0x4e, 0x64,
0x30, 0xcd, 0xed, 0x84, 0xaf, 0xc0, 0x62, 0xee, 0x7f, 0x2a, 0x52, 0x23, 0x2d, 0xc9, 0x87, 0x8e,
0xad, 0x70, 0xaa, 0x06, 0x13, 0xec, 0x23, 0x7a, 0xee, 0x8d, 0x43, 0xa1, 0x27, 0xd0, 0xc7, 0x0e,
0x5f, 0x83, 0xa5, 0xd1, 0xd5, 0x26, 0xf8, 0x27, 0x0e, 0x5f, 0x86, 0x05, 0xba, 0xda, 0x18, 0xd3,
0xec, 0x53, 0x0b, 0xd2, 0x25, 0x4a, 0xe0, 0x67, 0x96, 0xa1, 0xb8, 0x45, 0x09, 0xff, 0xdc, 0x1e,
0x46, 0x0c, 0x45, 0xa1, 0x35, 0x7b, 0xe2, 0x50, 0xa6, 0xa3, 0xc3, 0x0a, 0x98, 0x3d, 0xb5, 0x8e,
0xc4, 0x3a, 0x76, 0x7c, 0x66, 0x1d, 0x0b, 0xce, 0x31, 0xfa, 0xdc, 0xa2, 0x87, 0x22, 0x09, 0x55,
0xb7, 0x3b, 0x46, 0x5f, 0x38, 0x7c, 0x1d, 0x96, 0x29, 0x7c, 0x57, 0x44, 0x22, 0x09, 0x26, 0xfe,
0x2f, 0x1d, 0xce, 0x46, 0x42, 0xda, 0x46, 0x66, 0xff, 0xaa, 0x58, 0x51, 0x8a, 0x04, 0x72, 0xec,
0xdf, 0x15, 0xbe, 0x90, 0xab, 0x9b, 0xdb, 0xff, 0xa9, 0xf0, 0x39, 0x98, 0x69, 0x27, 0x1a, 0x53,
0xc3, 0xfe, 0x41, 0xcd, 0x36, 0x93, 0x3f, 0x57, 0xf6, 0x4f, 0x6a, 0xe9, 0x69, 0xdb, 0x6c, 0xec,
0xb1, 0xdd, 0xc8, 0x07, 0x0b, 0xfb, 0xda, 0xb5, 0x57, 0x2d, 0x4f, 0x99, 0x6f, 0x5c, 0x3a, 0xe9,
0x00, 0xcd, 0xe4, 0x05, 0xb1, 0x6f, 0x5d, 0x7e, 0x0d, 0x56, 0x47, 0x98, 0x7d, 0xf3, 0xe3, 0xb7,
0xf3, 0x9d, 0xcb, 0x37, 0xe0, 0xca, 0x01, 0x9a, 0x49, 0x1f, 0x50, 0x90, 0xd4, 0x46, 0x06, 0x9a,
0x7d, 0xef, 0xf2, 0x9f, 0xc1, 0xda, 0x01, 0x9a, 0xb1, 0xbe, 0xa5, 0xcd, 0x1f, 0x5c, 0x3e, 0x0f,
0xb3, 0x3e, 0x0d, 0x05, 0xbc, 0x40, 0xf6, 0xc4, 0xa5, 0x22, 0x8d, 0xcc, 0x22, 0x9d, 0xa7, 0x2e,
0x49, 0xf7, 0x07, 0x61, 0x82, 0xbe, 0x17, 0xb7, 0xfa, 0x22, 0x49, 0x30, 0xd2, 0xec, 0x99, 0xcb,
0x57, 0x81, 0xf9, 0x18, 0xab, 0x0b, 0x2c, 0xc1, 0xcf, 0x69, 0xd8, 0x73, 0xeb, 0xfc, 0xfb, 0x0c,
0xd3, 0xe1, 0x78, 0xe3, 0x85, 0x4b, 0x52, 0xe7, 0xfe, 0xaf, 0xee, 0xbc, 0x74, 0xf9, 0xcf, 0x61,
0x3d, 0x7f, 0xa0, 0x23, 0xfd, 0x69, 0xb3, 0x87, 0xed, 0xa4, 0xab, 0xd8, 0xdf, 0xaa, 0x63, 0x46,
0x0f, 0x23, 0x23, 0xc6, 0x71, 0x7f, 0xaf, 0x52, 0x89, 0x8a, 0x08, 0xeb, 0xfa, 0x45, 0x95, 0x2f,
0x02, 0xe4, 0x6f, 0xc7, 0x02, 0x5f, 0x56, 0xe9, 0x7a, 0x67, 0x32, 0xc6, 0x33, 0x19, 0x3c, 0x64,
0xff, 0xad, 0xd3, 0xf5, 0xec, 0xe9, 0xc7, 0x2a, 0x44, 0xd2, 0x41, 0xb3, 0xff, 0xd5, 0xa9, 0x86,
0xd4, 0x03, 0x79, 0x0d, 0xff, 0x6f, 0xed, 0x62, 0xb8, 0xb5, 0x3d, 0xf6, 0x16, 0x7d, 0x49, 0xa0,
0xb0, 0xcf, 0x3a, 0x27, 0xec, 0xed, 0x3a, 0xe9, 0xb1, 0x13, 0x45, 0x2a, 0x10, 0x66, 0xdc, 0x89,
0xef, 0xd4, 0xa9, 0x95, 0x4b, 0x73, 0xa9, 0x50, 0xf8, 0xdd, 0x3a, 0xe9, 0x54, 0xe0, 0xb6, 0xfe,
0x1e, 0xcd, 0xab, 0xf7, 0x2c, 0x2b, 0xfd, 0x20, 0x51, 0x26, 0x67, 0x86, 0xbd, 0x5f, 0xdf, 0x6c,
0x42, 0xcd, 0xd3, 0x91, 0x1d, 0x3f, 0x35, 0x70, 0x3d, 0x1d, 0xb1, 0x29, 0x7a, 0xad, 0xbb, 0x4a,
0x45, 0x7b, 0x97, 0x83, 0xf4, 0xfe, 0xaf, 0x98, 0xb3, 0xb9, 0x0b, 0x8b, 0x2d, 0x15, 0x0f, 0xc4,
0xb8, 0xca, 0x76, 0xe2, 0xe4, 0xa3, 0x0a, 0xc3, 0xbc, 0x57, 0xa6, 0xe8, 0xc9, 0xef, 0x5d, 0x62,
0x90, 0x19, 0x1a, 0x6c, 0x0e, 0x99, 0x14, 0x44, 0x8d, 0x18, 0xb2, 0xca, 0xee, 0x6f, 0xfe, 0x74,
0xab, 0x27, 0x4d, 0x3f, 0x3b, 0xa7, 0x7f, 0x84, 0xed, 0xfc, 0xa7, 0xe1, 0xa6, 0x54, 0xc5, 0x6a,
0x5b, 0x26, 0x06, 0xd3, 0x44, 0x44, 0xdb, 0xf6, 0x3f, 0x62, 0x3b, 0xff, 0x8f, 0x18, 0x9c, 0x9f,
0xcf, 0x58, 0xfb, 0xd6, 0x8f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xcb, 0xb8, 0xc4, 0xb1, 0x98, 0x0a,
0x00, 0x00,
}

View File

@ -34,8 +34,9 @@ service DataCoord {
// https://wiki.lfaidata.foundation/display/MIL/MEP+8+--+Add+metrics+for+proxy
rpc GetMetrics(milvus.GetMetricsRequest) returns (milvus.GetMetricsResponse) {}
rpc CompleteCompaction(CompactionResult) returns (common.Status) {}
rpc ManualCompaction(ManualCompactionRequest) returns (ManualCompactionResponse) {}
rpc GetCompactionState(GetCompactionStateRequest) returns (GetCompactionStateResponse) {}
rpc ManualCompaction(milvus.ManualCompactionRequest) returns (milvus.ManualCompactionResponse) {}
rpc GetCompactionState(milvus.GetCompactionStateRequest) returns (milvus.GetCompactionStateResponse) {}
rpc GetCompactionStateWithPlans(milvus.GetCompactionPlansRequest) returns (milvus.GetCompactionPlansResponse) {}
}
service DataNode {
@ -343,36 +344,8 @@ message CompactionResult {
repeated DeltaLogInfo deltalogs = 6;
}
message ManualCompactionRequest {
int64 collectionID = 1;
uint64 timetravel = 2;
}
message ManualCompactionResponse {
common.Status status = 1;
int64 compactionID = 2;
}
message GetCompactionStateRequest {
int64 compactionID = 1;
}
enum CompactionState {
UndefiedState = 0;
Executing = 1;
Completed = 2;
}
message GetCompactionStateResponse {
common.Status status = 1;
CompactionState state = 2;
int64 executingPlanNo = 3;
int64 timeoutPlanNo = 4;
int64 completedPlanNo = 5;
}
// Deprecated
message SegmentFieldBinlogMeta {
int64 fieldID = 1;
string binlog_path = 2;
}
}

View File

@ -81,34 +81,6 @@ func (CompactionType) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_82cd95f524594f49, []int{1}
}
type CompactionState int32
const (
CompactionState_UndefiedState CompactionState = 0
CompactionState_Executing CompactionState = 1
CompactionState_Completed CompactionState = 2
)
var CompactionState_name = map[int32]string{
0: "UndefiedState",
1: "Executing",
2: "Completed",
}
var CompactionState_value = map[string]int32{
"UndefiedState": 0,
"Executing": 1,
"Completed": 2,
}
func (x CompactionState) String() string {
return proto.EnumName(CompactionState_name, int32(x))
}
func (CompactionState) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_82cd95f524594f49, []int{2}
}
type FlushRequest struct {
Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
DbID int64 `protobuf:"varint,2,opt,name=dbID,proto3" json:"dbID,omitempty"`
@ -2636,210 +2608,6 @@ func (m *CompactionResult) GetDeltalogs() []*DeltaLogInfo {
return nil
}
type ManualCompactionRequest struct {
CollectionID int64 `protobuf:"varint,1,opt,name=collectionID,proto3" json:"collectionID,omitempty"`
Timetravel uint64 `protobuf:"varint,2,opt,name=timetravel,proto3" json:"timetravel,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ManualCompactionRequest) Reset() { *m = ManualCompactionRequest{} }
func (m *ManualCompactionRequest) String() string { return proto.CompactTextString(m) }
func (*ManualCompactionRequest) ProtoMessage() {}
func (*ManualCompactionRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_82cd95f524594f49, []int{42}
}
func (m *ManualCompactionRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ManualCompactionRequest.Unmarshal(m, b)
}
func (m *ManualCompactionRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ManualCompactionRequest.Marshal(b, m, deterministic)
}
func (m *ManualCompactionRequest) XXX_Merge(src proto.Message) {
xxx_messageInfo_ManualCompactionRequest.Merge(m, src)
}
func (m *ManualCompactionRequest) XXX_Size() int {
return xxx_messageInfo_ManualCompactionRequest.Size(m)
}
func (m *ManualCompactionRequest) XXX_DiscardUnknown() {
xxx_messageInfo_ManualCompactionRequest.DiscardUnknown(m)
}
var xxx_messageInfo_ManualCompactionRequest proto.InternalMessageInfo
func (m *ManualCompactionRequest) GetCollectionID() int64 {
if m != nil {
return m.CollectionID
}
return 0
}
func (m *ManualCompactionRequest) GetTimetravel() uint64 {
if m != nil {
return m.Timetravel
}
return 0
}
type ManualCompactionResponse struct {
Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
CompactionID int64 `protobuf:"varint,2,opt,name=compactionID,proto3" json:"compactionID,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ManualCompactionResponse) Reset() { *m = ManualCompactionResponse{} }
func (m *ManualCompactionResponse) String() string { return proto.CompactTextString(m) }
func (*ManualCompactionResponse) ProtoMessage() {}
func (*ManualCompactionResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_82cd95f524594f49, []int{43}
}
func (m *ManualCompactionResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ManualCompactionResponse.Unmarshal(m, b)
}
func (m *ManualCompactionResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ManualCompactionResponse.Marshal(b, m, deterministic)
}
func (m *ManualCompactionResponse) XXX_Merge(src proto.Message) {
xxx_messageInfo_ManualCompactionResponse.Merge(m, src)
}
func (m *ManualCompactionResponse) XXX_Size() int {
return xxx_messageInfo_ManualCompactionResponse.Size(m)
}
func (m *ManualCompactionResponse) XXX_DiscardUnknown() {
xxx_messageInfo_ManualCompactionResponse.DiscardUnknown(m)
}
var xxx_messageInfo_ManualCompactionResponse proto.InternalMessageInfo
func (m *ManualCompactionResponse) GetStatus() *commonpb.Status {
if m != nil {
return m.Status
}
return nil
}
func (m *ManualCompactionResponse) GetCompactionID() int64 {
if m != nil {
return m.CompactionID
}
return 0
}
type GetCompactionStateRequest struct {
CompactionID int64 `protobuf:"varint,1,opt,name=compactionID,proto3" json:"compactionID,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *GetCompactionStateRequest) Reset() { *m = GetCompactionStateRequest{} }
func (m *GetCompactionStateRequest) String() string { return proto.CompactTextString(m) }
func (*GetCompactionStateRequest) ProtoMessage() {}
func (*GetCompactionStateRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_82cd95f524594f49, []int{44}
}
func (m *GetCompactionStateRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetCompactionStateRequest.Unmarshal(m, b)
}
func (m *GetCompactionStateRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GetCompactionStateRequest.Marshal(b, m, deterministic)
}
func (m *GetCompactionStateRequest) XXX_Merge(src proto.Message) {
xxx_messageInfo_GetCompactionStateRequest.Merge(m, src)
}
func (m *GetCompactionStateRequest) XXX_Size() int {
return xxx_messageInfo_GetCompactionStateRequest.Size(m)
}
func (m *GetCompactionStateRequest) XXX_DiscardUnknown() {
xxx_messageInfo_GetCompactionStateRequest.DiscardUnknown(m)
}
var xxx_messageInfo_GetCompactionStateRequest proto.InternalMessageInfo
func (m *GetCompactionStateRequest) GetCompactionID() int64 {
if m != nil {
return m.CompactionID
}
return 0
}
type GetCompactionStateResponse struct {
Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
State CompactionState `protobuf:"varint,2,opt,name=state,proto3,enum=milvus.proto.data.CompactionState" json:"state,omitempty"`
ExecutingPlanNo int64 `protobuf:"varint,3,opt,name=executingPlanNo,proto3" json:"executingPlanNo,omitempty"`
TimeoutPlanNo int64 `protobuf:"varint,4,opt,name=timeoutPlanNo,proto3" json:"timeoutPlanNo,omitempty"`
CompletedPlanNo int64 `protobuf:"varint,5,opt,name=completedPlanNo,proto3" json:"completedPlanNo,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *GetCompactionStateResponse) Reset() { *m = GetCompactionStateResponse{} }
func (m *GetCompactionStateResponse) String() string { return proto.CompactTextString(m) }
func (*GetCompactionStateResponse) ProtoMessage() {}
func (*GetCompactionStateResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_82cd95f524594f49, []int{45}
}
func (m *GetCompactionStateResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetCompactionStateResponse.Unmarshal(m, b)
}
func (m *GetCompactionStateResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GetCompactionStateResponse.Marshal(b, m, deterministic)
}
func (m *GetCompactionStateResponse) XXX_Merge(src proto.Message) {
xxx_messageInfo_GetCompactionStateResponse.Merge(m, src)
}
func (m *GetCompactionStateResponse) XXX_Size() int {
return xxx_messageInfo_GetCompactionStateResponse.Size(m)
}
func (m *GetCompactionStateResponse) XXX_DiscardUnknown() {
xxx_messageInfo_GetCompactionStateResponse.DiscardUnknown(m)
}
var xxx_messageInfo_GetCompactionStateResponse proto.InternalMessageInfo
func (m *GetCompactionStateResponse) GetStatus() *commonpb.Status {
if m != nil {
return m.Status
}
return nil
}
func (m *GetCompactionStateResponse) GetState() CompactionState {
if m != nil {
return m.State
}
return CompactionState_UndefiedState
}
func (m *GetCompactionStateResponse) GetExecutingPlanNo() int64 {
if m != nil {
return m.ExecutingPlanNo
}
return 0
}
func (m *GetCompactionStateResponse) GetTimeoutPlanNo() int64 {
if m != nil {
return m.TimeoutPlanNo
}
return 0
}
func (m *GetCompactionStateResponse) GetCompletedPlanNo() int64 {
if m != nil {
return m.CompletedPlanNo
}
return 0
}
// Deprecated
type SegmentFieldBinlogMeta struct {
FieldID int64 `protobuf:"varint,1,opt,name=fieldID,proto3" json:"fieldID,omitempty"`
@ -2853,7 +2621,7 @@ func (m *SegmentFieldBinlogMeta) Reset() { *m = SegmentFieldBinlogMeta{}
func (m *SegmentFieldBinlogMeta) String() string { return proto.CompactTextString(m) }
func (*SegmentFieldBinlogMeta) ProtoMessage() {}
func (*SegmentFieldBinlogMeta) Descriptor() ([]byte, []int) {
return fileDescriptor_82cd95f524594f49, []int{46}
return fileDescriptor_82cd95f524594f49, []int{42}
}
func (m *SegmentFieldBinlogMeta) XXX_Unmarshal(b []byte) error {
@ -2891,7 +2659,6 @@ func (m *SegmentFieldBinlogMeta) GetBinlogPath() string {
func init() {
proto.RegisterEnum("milvus.proto.data.ChannelWatchState", ChannelWatchState_name, ChannelWatchState_value)
proto.RegisterEnum("milvus.proto.data.CompactionType", CompactionType_name, CompactionType_value)
proto.RegisterEnum("milvus.proto.data.CompactionState", CompactionState_name, CompactionState_value)
proto.RegisterType((*FlushRequest)(nil), "milvus.proto.data.FlushRequest")
proto.RegisterType((*FlushResponse)(nil), "milvus.proto.data.FlushResponse")
proto.RegisterType((*SegmentIDRequest)(nil), "milvus.proto.data.SegmentIDRequest")
@ -2934,182 +2701,171 @@ func init() {
proto.RegisterType((*CompactionSegmentBinlogs)(nil), "milvus.proto.data.CompactionSegmentBinlogs")
proto.RegisterType((*CompactionPlan)(nil), "milvus.proto.data.CompactionPlan")
proto.RegisterType((*CompactionResult)(nil), "milvus.proto.data.CompactionResult")
proto.RegisterType((*ManualCompactionRequest)(nil), "milvus.proto.data.ManualCompactionRequest")
proto.RegisterType((*ManualCompactionResponse)(nil), "milvus.proto.data.ManualCompactionResponse")
proto.RegisterType((*GetCompactionStateRequest)(nil), "milvus.proto.data.GetCompactionStateRequest")
proto.RegisterType((*GetCompactionStateResponse)(nil), "milvus.proto.data.GetCompactionStateResponse")
proto.RegisterType((*SegmentFieldBinlogMeta)(nil), "milvus.proto.data.SegmentFieldBinlogMeta")
}
func init() { proto.RegisterFile("data_coord.proto", fileDescriptor_82cd95f524594f49) }
var fileDescriptor_82cd95f524594f49 = []byte{
// 2631 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x3a, 0xcb, 0x6f, 0x1c, 0x49,
0xf9, 0xee, 0x79, 0xd8, 0x9e, 0x6f, 0x1e, 0x1e, 0x57, 0xf2, 0x73, 0xe6, 0x37, 0x49, 0x1c, 0xa7,
0x37, 0x9b, 0x78, 0xbd, 0x59, 0x3b, 0x71, 0x58, 0x11, 0x91, 0x5d, 0xa2, 0x75, 0x9c, 0x98, 0x11,
0x76, 0x30, 0x3d, 0xde, 0x5d, 0xc4, 0x0a, 0x8d, 0xda, 0xd3, 0xe5, 0x71, 0x93, 0xe9, 0xee, 0xd9,
0xae, 0x1e, 0xc7, 0xde, 0xcb, 0xae, 0x16, 0x81, 0x04, 0x02, 0x16, 0xc4, 0x85, 0x03, 0x12, 0x88,
0x13, 0x12, 0x17, 0x2e, 0x5c, 0xe0, 0xc2, 0x11, 0xc1, 0x85, 0x13, 0x7f, 0x0f, 0xaa, 0x47, 0x57,
0x3f, 0x67, 0xa6, 0x6d, 0xe7, 0x71, 0x9b, 0xfa, 0xfa, 0x7b, 0xd5, 0x57, 0xdf, 0xb3, 0x6a, 0xa0,
0x6e, 0xe8, 0x9e, 0xde, 0xe9, 0x3a, 0x8e, 0x6b, 0xac, 0x0e, 0x5c, 0xc7, 0x73, 0xd0, 0xbc, 0x65,
0xf6, 0x8f, 0x86, 0x84, 0xaf, 0x56, 0xe9, 0xe7, 0x66, 0xa5, 0xeb, 0x58, 0x96, 0x63, 0x73, 0x50,
0xb3, 0x66, 0xda, 0x1e, 0x76, 0x6d, 0xbd, 0x2f, 0xd6, 0x95, 0x30, 0x41, 0xb3, 0x42, 0xba, 0x87,
0xd8, 0xd2, 0xf9, 0x4a, 0x3d, 0x86, 0xca, 0x93, 0xfe, 0x90, 0x1c, 0x6a, 0xf8, 0xd3, 0x21, 0x26,
0x1e, 0xba, 0x03, 0x85, 0x7d, 0x9d, 0xe0, 0x86, 0xb2, 0xa4, 0x2c, 0x97, 0xd7, 0xaf, 0xac, 0x46,
0x64, 0x09, 0x29, 0x3b, 0xa4, 0xb7, 0xa1, 0x13, 0xac, 0x31, 0x4c, 0x84, 0xa0, 0x60, 0xec, 0xb7,
0x36, 0x1b, 0xb9, 0x25, 0x65, 0x39, 0xaf, 0xb1, 0xdf, 0x48, 0x85, 0x4a, 0xd7, 0xe9, 0xf7, 0x71,
0xd7, 0x33, 0x1d, 0xbb, 0xb5, 0xd9, 0x28, 0xb0, 0x6f, 0x11, 0x98, 0xfa, 0x3b, 0x05, 0xaa, 0x42,
0x34, 0x19, 0x38, 0x36, 0xc1, 0xe8, 0x1e, 0x4c, 0x13, 0x4f, 0xf7, 0x86, 0x44, 0x48, 0xbf, 0x9c,
0x2a, 0xbd, 0xcd, 0x50, 0x34, 0x81, 0x9a, 0x49, 0x7c, 0x3e, 0x29, 0x1e, 0x2d, 0x02, 0x10, 0xdc,
0xb3, 0xb0, 0xed, 0xb5, 0x36, 0x49, 0xa3, 0xb0, 0x94, 0x5f, 0xce, 0x6b, 0x21, 0x88, 0xfa, 0x6b,
0x05, 0xea, 0x6d, 0x7f, 0xe9, 0x5b, 0xe7, 0x22, 0x14, 0xbb, 0xce, 0xd0, 0xf6, 0x98, 0x82, 0x55,
0x8d, 0x2f, 0xd0, 0x75, 0xa8, 0x74, 0x0f, 0x75, 0xdb, 0xc6, 0xfd, 0x8e, 0xad, 0x5b, 0x98, 0xa9,
0x52, 0xd2, 0xca, 0x02, 0xf6, 0x54, 0xb7, 0x70, 0x26, 0x8d, 0x96, 0xa0, 0x3c, 0xd0, 0x5d, 0xcf,
0x8c, 0xd8, 0x2c, 0x0c, 0x52, 0xff, 0xa0, 0xc0, 0xc2, 0x07, 0x84, 0x98, 0x3d, 0x3b, 0xa1, 0xd9,
0x02, 0x4c, 0xdb, 0x8e, 0x81, 0x5b, 0x9b, 0x4c, 0xb5, 0xbc, 0x26, 0x56, 0xe8, 0x32, 0x94, 0x06,
0x18, 0xbb, 0x1d, 0xd7, 0xe9, 0xfb, 0x8a, 0xcd, 0x52, 0x80, 0xe6, 0xf4, 0x31, 0xfa, 0x2e, 0xcc,
0x93, 0x18, 0x23, 0xd2, 0xc8, 0x2f, 0xe5, 0x97, 0xcb, 0xeb, 0x6f, 0xac, 0x26, 0xbc, 0x6c, 0x35,
0x2e, 0x54, 0x4b, 0x52, 0xab, 0x5f, 0xe4, 0xe0, 0x82, 0xc4, 0xe3, 0xba, 0xd2, 0xdf, 0xd4, 0x72,
0x04, 0xf7, 0xa4, 0x7a, 0x7c, 0x91, 0xc5, 0x72, 0xd2, 0xe4, 0xf9, 0xb0, 0xc9, 0x33, 0x38, 0x58,
0xdc, 0x9e, 0xc5, 0x84, 0x3d, 0xd1, 0x35, 0x28, 0xe3, 0xe3, 0x81, 0xe9, 0xe2, 0x8e, 0x67, 0x5a,
0xb8, 0x31, 0xbd, 0xa4, 0x2c, 0x17, 0x34, 0xe0, 0xa0, 0x3d, 0xd3, 0x0a, 0x7b, 0xe4, 0x4c, 0x66,
0x8f, 0x54, 0xff, 0xa8, 0xc0, 0xa5, 0xc4, 0x29, 0x09, 0x17, 0xd7, 0xa0, 0xce, 0x76, 0x1e, 0x58,
0x86, 0x3a, 0x3b, 0x35, 0xf8, 0xcd, 0x71, 0x06, 0x0f, 0xd0, 0xb5, 0x04, 0x7d, 0x48, 0xc9, 0x5c,
0x76, 0x25, 0x9f, 0xc1, 0xa5, 0x2d, 0xec, 0x09, 0x01, 0xf4, 0x1b, 0x26, 0x67, 0x4f, 0x01, 0xd1,
0x58, 0xca, 0x25, 0x62, 0xe9, 0x2f, 0x39, 0x19, 0x4b, 0x4c, 0x54, 0xcb, 0x3e, 0x70, 0xd0, 0x15,
0x28, 0x49, 0x14, 0xe1, 0x15, 0x01, 0x00, 0x7d, 0x1d, 0x8a, 0x54, 0x53, 0xee, 0x12, 0xb5, 0xf5,
0xeb, 0xe9, 0x7b, 0x0a, 0xf1, 0xd4, 0x38, 0x3e, 0x6a, 0x41, 0x8d, 0x78, 0xba, 0xeb, 0x75, 0x06,
0x0e, 0x61, 0xe7, 0xcc, 0x1c, 0xa7, 0xbc, 0xae, 0x46, 0x39, 0xc8, 0x14, 0xb9, 0x43, 0x7a, 0xbb,
0x02, 0x53, 0xab, 0x32, 0x4a, 0x7f, 0x89, 0x1e, 0x43, 0x05, 0xdb, 0x46, 0xc0, 0xa8, 0x90, 0x99,
0x51, 0x19, 0xdb, 0x86, 0x64, 0x13, 0x9c, 0x4f, 0x31, 0xfb, 0xf9, 0xfc, 0x5c, 0x81, 0x46, 0xf2,
0x80, 0xce, 0x93, 0x28, 0x1f, 0x70, 0x22, 0xcc, 0x0f, 0x68, 0x6c, 0x84, 0xcb, 0x43, 0xd2, 0x04,
0x89, 0x6a, 0xc2, 0xff, 0x05, 0xda, 0xb0, 0x2f, 0x2f, 0xcd, 0x59, 0x7e, 0xa4, 0xc0, 0x42, 0x5c,
0xd6, 0x79, 0xf6, 0xfd, 0x35, 0x28, 0x9a, 0xf6, 0x81, 0xe3, 0x6f, 0x7b, 0x71, 0x4c, 0x9c, 0x51,
0x59, 0x1c, 0x59, 0xb5, 0xe0, 0xf2, 0x16, 0xf6, 0x5a, 0x36, 0xc1, 0xae, 0xb7, 0x61, 0xda, 0x7d,
0xa7, 0xb7, 0xab, 0x7b, 0x87, 0xe7, 0x88, 0x91, 0x88, 0xbb, 0xe7, 0x62, 0xee, 0xae, 0xfe, 0x49,
0x81, 0x2b, 0xe9, 0xf2, 0xc4, 0xd6, 0x9b, 0x30, 0x7b, 0x60, 0xe2, 0xbe, 0x41, 0x6d, 0xa6, 0x30,
0x9b, 0xc9, 0x35, 0x8d, 0x95, 0x01, 0x45, 0x16, 0x3b, 0xbc, 0x3e, 0xc2, 0x41, 0xdb, 0x9e, 0x6b,
0xda, 0xbd, 0x6d, 0x93, 0x78, 0x1a, 0xc7, 0x0f, 0xd9, 0x33, 0x9f, 0xdd, 0x33, 0x7f, 0xa6, 0xc0,
0xe2, 0x16, 0xf6, 0x1e, 0xc9, 0x54, 0x4b, 0xbf, 0x9b, 0xc4, 0x33, 0xbb, 0xe4, 0xe5, 0x36, 0x11,
0x29, 0x35, 0x53, 0xfd, 0x4a, 0x81, 0x6b, 0x23, 0x95, 0x11, 0xa6, 0x13, 0xa9, 0xc4, 0x4f, 0xb4,
0xe9, 0xa9, 0xe4, 0xdb, 0xf8, 0xe4, 0x23, 0xbd, 0x3f, 0xc4, 0xbb, 0xba, 0xe9, 0xf2, 0x54, 0x72,
0xc6, 0xc4, 0xfa, 0x67, 0x05, 0xae, 0x6e, 0x61, 0x6f, 0xd7, 0x2f, 0x33, 0xaf, 0xd1, 0x3a, 0x19,
0x3a, 0x8a, 0x5f, 0xf2, 0xc3, 0x4c, 0xd5, 0xf6, 0xb5, 0x98, 0x6f, 0x91, 0xc5, 0x41, 0x28, 0x20,
0x1f, 0xf1, 0x5e, 0x40, 0x18, 0x4f, 0xfd, 0x6b, 0x0e, 0x2a, 0x1f, 0x89, 0xfe, 0x80, 0x95, 0x91,
0xb8, 0x1d, 0x94, 0x74, 0x3b, 0x84, 0x5a, 0x8a, 0xb4, 0x2e, 0x63, 0x0b, 0xaa, 0x04, 0xe3, 0x67,
0x67, 0x29, 0x1a, 0x15, 0x4a, 0x28, 0x93, 0xfd, 0x36, 0xcc, 0x0f, 0xed, 0x03, 0xda, 0xd6, 0x62,
0x43, 0xec, 0x82, 0x77, 0x97, 0x93, 0x33, 0x4f, 0x92, 0x10, 0x7d, 0x0b, 0xe6, 0xe2, 0xbc, 0x8a,
0x99, 0x78, 0xc5, 0xc9, 0xd4, 0x9f, 0x2a, 0xb0, 0xf0, 0xb1, 0xee, 0x75, 0x0f, 0x37, 0x2d, 0x61,
0xd1, 0x73, 0xf8, 0xe3, 0xfb, 0x50, 0x3a, 0x12, 0xd6, 0xf3, 0x93, 0xce, 0xb5, 0x14, 0x85, 0xc2,
0xe7, 0xa4, 0x05, 0x14, 0xea, 0x3f, 0x15, 0xb8, 0xc8, 0x3a, 0x7f, 0x5f, 0xbb, 0x57, 0x1f, 0x19,
0x13, 0xba, 0x7f, 0x74, 0x13, 0x6a, 0x96, 0xee, 0x3e, 0x6b, 0x07, 0x38, 0x45, 0x86, 0x13, 0x83,
0xaa, 0xc7, 0x00, 0x62, 0xb5, 0x43, 0x7a, 0x67, 0xd0, 0xff, 0x3e, 0xcc, 0x08, 0xa9, 0x22, 0x48,
0x26, 0x1d, 0xac, 0x8f, 0xae, 0xfe, 0x4b, 0x81, 0x5a, 0x90, 0xf6, 0x58, 0x28, 0xd4, 0x20, 0x27,
0x03, 0x20, 0xd7, 0xda, 0x44, 0xef, 0xc3, 0x34, 0x9f, 0xf5, 0x04, 0xef, 0x37, 0xa3, 0xbc, 0xc5,
0x1c, 0x18, 0xca, 0x9d, 0x0c, 0xa0, 0x09, 0x22, 0x6a, 0x23, 0x99, 0x2a, 0xf8, 0x58, 0x90, 0xd7,
0x42, 0x10, 0xd4, 0x82, 0xb9, 0x68, 0xa7, 0xe5, 0x3b, 0xfa, 0xd2, 0xa8, 0x14, 0xb1, 0xa9, 0x7b,
0x3a, 0xcb, 0x10, 0xb5, 0x48, 0xa3, 0x45, 0xd4, 0xff, 0x14, 0xa1, 0x1c, 0xda, 0x65, 0x62, 0x27,
0xf1, 0x23, 0xcd, 0x4d, 0x4e, 0x76, 0xf9, 0x64, 0xbb, 0xff, 0x26, 0xd4, 0x4c, 0x56, 0x60, 0x3b,
0xc2, 0x15, 0x59, 0x46, 0x2c, 0x69, 0x55, 0x0e, 0x15, 0x71, 0x81, 0x16, 0xa1, 0x6c, 0x0f, 0xad,
0x8e, 0x73, 0xd0, 0x71, 0x9d, 0xe7, 0x44, 0xcc, 0x0d, 0x25, 0x7b, 0x68, 0x7d, 0xe7, 0x40, 0x73,
0x9e, 0x93, 0xa0, 0x35, 0x9d, 0x3e, 0x65, 0x6b, 0xba, 0x08, 0x65, 0x4b, 0x3f, 0xa6, 0x5c, 0x3b,
0xf6, 0xd0, 0x62, 0x23, 0x45, 0x5e, 0x2b, 0x59, 0xfa, 0xb1, 0xe6, 0x3c, 0x7f, 0x3a, 0xb4, 0xd0,
0x32, 0xd4, 0xfb, 0x3a, 0xf1, 0x3a, 0xe1, 0x99, 0x64, 0x96, 0xcd, 0x24, 0x35, 0x0a, 0x7f, 0x1c,
0xcc, 0x25, 0xc9, 0x26, 0xb7, 0x74, 0x8e, 0x26, 0xd7, 0xb0, 0xfa, 0x01, 0x23, 0xc8, 0xde, 0xe4,
0x1a, 0x56, 0x5f, 0xb2, 0xb9, 0x0f, 0x33, 0xfb, 0xac, 0x6d, 0x21, 0x8d, 0xf2, 0xc8, 0x0c, 0xf5,
0x84, 0x76, 0x2c, 0xbc, 0xbb, 0xd1, 0x7c, 0x74, 0xf4, 0x1e, 0x94, 0x58, 0xbd, 0x60, 0xb4, 0x95,
0x4c, 0xb4, 0x01, 0x01, 0x4d, 0x45, 0x06, 0xee, 0x7b, 0x3a, 0xa3, 0xae, 0x8e, 0x4c, 0x45, 0x9b,
0x14, 0x67, 0xdb, 0xe9, 0xf1, 0x54, 0x24, 0x29, 0xd0, 0x1d, 0xb8, 0xd0, 0x75, 0xb1, 0xee, 0x61,
0x63, 0xe3, 0xe4, 0x91, 0x63, 0x0d, 0x74, 0xe6, 0x4d, 0x8d, 0xda, 0x92, 0xb2, 0x3c, 0xab, 0xa5,
0x7d, 0xa2, 0x99, 0xa1, 0x2b, 0x57, 0x4f, 0x5c, 0xc7, 0x6a, 0xcc, 0xf1, 0xcc, 0x10, 0x85, 0xaa,
0x9f, 0xc3, 0xc5, 0xc0, 0x07, 0x42, 0xf6, 0x4e, 0x1e, 0x9d, 0x72, 0xd6, 0xa3, 0x1b, 0xdf, 0x52,
0xfe, 0xb6, 0x00, 0x0b, 0x6d, 0xfd, 0x08, 0xbf, 0xfc, 0xee, 0x35, 0x53, 0xc6, 0xdd, 0x86, 0x79,
0xd6, 0xb0, 0xae, 0x87, 0xf4, 0x19, 0x53, 0x18, 0xc3, 0xc7, 0x9d, 0x24, 0x44, 0x0f, 0x69, 0x45,
0xc7, 0xdd, 0x67, 0xbb, 0x8e, 0x19, 0x14, 0xc5, 0xab, 0x29, 0x7c, 0x1e, 0x49, 0x2c, 0x2d, 0x4c,
0x81, 0x76, 0x93, 0xc9, 0x6b, 0x9a, 0x31, 0xb9, 0x35, 0x76, 0x2c, 0x0a, 0xac, 0x1f, 0xcf, 0x61,
0xa8, 0x01, 0x33, 0xa2, 0xe8, 0xb2, 0xc8, 0x9e, 0xd5, 0xfc, 0x25, 0xda, 0x85, 0x0b, 0x7c, 0x07,
0x6d, 0xe1, 0xb6, 0x7c, 0xf3, 0xb3, 0x99, 0x36, 0x9f, 0x46, 0x1a, 0xf5, 0xfa, 0xd2, 0x69, 0xbd,
0x9e, 0xb6, 0xf0, 0x10, 0x18, 0x66, 0xc2, 0x24, 0xfe, 0x4d, 0x98, 0x95, 0xae, 0x9a, 0xcb, 0xec,
0xaa, 0x92, 0x26, 0x9e, 0x4e, 0xf3, 0xb1, 0x74, 0xaa, 0xfe, 0x5b, 0x81, 0x4a, 0x58, 0x51, 0x9a,
0xa6, 0x5d, 0xdc, 0x75, 0x5c, 0xa3, 0x83, 0x6d, 0xcf, 0x35, 0x31, 0x9f, 0xf6, 0x0a, 0x5a, 0x95,
0x43, 0x1f, 0x73, 0x20, 0x45, 0xa3, 0x19, 0x92, 0x78, 0xba, 0x35, 0xe8, 0x1c, 0xd0, 0x40, 0xcc,
0x71, 0x34, 0x09, 0xa5, 0x71, 0x88, 0xae, 0x43, 0x25, 0x40, 0xf3, 0x1c, 0x26, 0xbf, 0xa0, 0x95,
0x25, 0x6c, 0xcf, 0x41, 0x37, 0xa0, 0xc6, 0x6c, 0xd3, 0xe9, 0x3b, 0xbd, 0x0e, 0x9d, 0x8c, 0x44,
0x5d, 0xa8, 0x18, 0x42, 0x2d, 0x6a, 0xf4, 0x28, 0x16, 0x31, 0x3f, 0xc3, 0xa2, 0x32, 0x48, 0xac,
0xb6, 0xf9, 0x19, 0x56, 0xbf, 0x54, 0xa0, 0x4a, 0xcb, 0xdc, 0x53, 0xc7, 0xc0, 0x7b, 0x67, 0x6c,
0x0a, 0x32, 0xdc, 0x8a, 0x5d, 0x81, 0x92, 0xdc, 0x81, 0xd8, 0x52, 0x00, 0xa0, 0x23, 0x74, 0x55,
0x54, 0xb3, 0xb6, 0xbc, 0x25, 0x65, 0xac, 0x14, 0xc6, 0x8a, 0xfd, 0x46, 0xdf, 0x88, 0x5e, 0xb1,
0xdc, 0x48, 0x8d, 0x1e, 0xc6, 0x84, 0x35, 0x8e, 0x91, 0x52, 0x96, 0x65, 0x36, 0xfb, 0x82, 0x1e,
0xac, 0x30, 0x05, 0x3b, 0xd8, 0x06, 0xcc, 0xe8, 0x86, 0xe1, 0x62, 0x42, 0x84, 0x1e, 0xfe, 0x92,
0x7e, 0x39, 0xc2, 0x2e, 0xf1, 0x5d, 0x2c, 0xaf, 0xf9, 0x4b, 0xf4, 0x1e, 0xcc, 0xca, 0x4e, 0x33,
0x9f, 0xd6, 0x5d, 0x84, 0xf5, 0x14, 0xb3, 0x84, 0xa4, 0x50, 0xbf, 0xca, 0x41, 0x4d, 0x04, 0xef,
0x86, 0x28, 0x37, 0xe3, 0x9d, 0x7d, 0x03, 0x2a, 0x07, 0x41, 0xf0, 0x8d, 0xbb, 0x33, 0x08, 0xc7,
0x68, 0x84, 0x66, 0x92, 0xc3, 0x47, 0x0b, 0x5e, 0xe1, 0x5c, 0x05, 0xaf, 0x78, 0xea, 0xd0, 0xff,
0x00, 0xca, 0x21, 0xc6, 0x2c, 0x69, 0xf1, 0x6b, 0x04, 0x61, 0x0b, 0x7f, 0x49, 0xbf, 0xec, 0x87,
0x8c, 0x50, 0x92, 0x05, 0x9b, 0xb6, 0xef, 0x97, 0xb6, 0xb0, 0xa7, 0xe1, 0xae, 0x73, 0x84, 0xdd,
0x93, 0xf3, 0xdf, 0xd0, 0x3c, 0x08, 0x9d, 0x71, 0xc6, 0x69, 0x42, 0x12, 0xa0, 0x07, 0x81, 0x9e,
0xf9, 0xb4, 0x01, 0x35, 0x9c, 0xc0, 0xc5, 0x09, 0x05, 0x5b, 0xf9, 0x15, 0xbf, 0x6b, 0x8a, 0x6e,
0xe5, 0xac, 0x35, 0xf2, 0x85, 0x34, 0xa9, 0xea, 0x6f, 0x14, 0xf8, 0xff, 0x2d, 0xec, 0x3d, 0x89,
0xce, 0x6f, 0xaf, 0x5b, 0x2b, 0x0b, 0x9a, 0x69, 0x4a, 0x9d, 0xe7, 0xd4, 0x9b, 0x30, 0x4b, 0xfc,
0xa1, 0x96, 0xdf, 0x02, 0xca, 0xb5, 0xfa, 0x13, 0x05, 0x1a, 0x42, 0x0a, 0x93, 0x49, 0xfb, 0xaf,
0x3e, 0xf6, 0xb0, 0xf1, 0xaa, 0xa7, 0xac, 0xdf, 0x2b, 0x50, 0x0f, 0x27, 0x41, 0x96, 0xc7, 0xde,
0x85, 0x22, 0x1b, 0x66, 0x85, 0x06, 0x13, 0x9d, 0x95, 0x63, 0xd3, 0x88, 0x62, 0x2d, 0xc3, 0x1e,
0xf1, 0x93, 0x9c, 0x58, 0x06, 0x99, 0x38, 0x7f, 0xea, 0x4c, 0xac, 0xfe, 0x22, 0x07, 0x8d, 0xa0,
0x3d, 0x7d, 0xe5, 0xc9, 0x6e, 0x44, 0x6f, 0x93, 0x7f, 0x41, 0xbd, 0x4d, 0xe1, 0xd4, 0x09, 0xee,
0xef, 0x39, 0x3a, 0x17, 0xfb, 0xf6, 0xd8, 0xed, 0xeb, 0x36, 0x5a, 0x80, 0xe9, 0x41, 0x5f, 0x0f,
0x2e, 0x87, 0xc4, 0x0a, 0xb5, 0xa1, 0x46, 0x22, 0xf6, 0x12, 0x16, 0x78, 0x3b, 0xcd, 0xfe, 0x23,
0x4c, 0xac, 0xc5, 0x58, 0xa0, 0xab, 0x00, 0xbc, 0xb1, 0x64, 0xe3, 0x9b, 0x28, 0xcd, 0xfc, 0xa0,
0xe9, 0xe4, 0x76, 0x1b, 0x10, 0xfd, 0xe0, 0x0c, 0xbd, 0x8e, 0x69, 0x77, 0x08, 0xee, 0x3a, 0xb6,
0x41, 0x58, 0xbf, 0x51, 0xd4, 0xea, 0xe2, 0x4b, 0xcb, 0x6e, 0x73, 0x38, 0x7a, 0x17, 0x0a, 0xde,
0xc9, 0x80, 0x77, 0x1a, 0xb5, 0xd4, 0xcc, 0x16, 0xe8, 0xb5, 0x77, 0x32, 0xc0, 0x1a, 0x43, 0xa7,
0x93, 0x3b, 0x65, 0xe5, 0xb9, 0xfa, 0x11, 0xee, 0xfb, 0xcf, 0x5a, 0x01, 0x84, 0x7a, 0xa2, 0x3f,
0x01, 0xcf, 0xf0, 0x42, 0x2c, 0x96, 0xea, 0xdf, 0x72, 0x50, 0x0f, 0x58, 0x6a, 0x98, 0x0c, 0xfb,
0xde, 0x48, 0xfb, 0x8d, 0x1f, 0x0a, 0x26, 0x95, 0xc1, 0x87, 0x50, 0x16, 0xd3, 0xf8, 0x29, 0x0a,
0x21, 0x70, 0x92, 0xed, 0x31, 0xae, 0x57, 0x7c, 0x41, 0xae, 0x37, 0x7d, 0x6a, 0xd7, 0xfb, 0x01,
0x5c, 0xda, 0xd1, 0xed, 0xa1, 0xde, 0x0f, 0x5b, 0x90, 0xe7, 0xed, 0x2c, 0xb7, 0x94, 0xd1, 0x53,
0xcb, 0xc5, 0x4f, 0x4d, 0x25, 0xd0, 0x48, 0xb2, 0x3f, 0x4f, 0x06, 0x66, 0x4a, 0xf9, 0xac, 0xc2,
0xa5, 0x21, 0x80, 0xa9, 0x0f, 0x59, 0x35, 0x0a, 0x79, 0x3f, 0xcb, 0x3d, 0xe1, 0x5d, 0x85, 0x18,
0x28, 0x29, 0x0c, 0x7e, 0x9c, 0x63, 0xa5, 0x23, 0xc1, 0xe1, 0x3c, 0x8a, 0xdf, 0x8f, 0x76, 0xae,
0xea, 0xf8, 0x78, 0x0d, 0xf7, 0xad, 0xcb, 0x30, 0x87, 0x8f, 0x71, 0x77, 0xe8, 0x99, 0x76, 0x8f,
0xe6, 0x86, 0xa7, 0x8e, 0x70, 0xcc, 0x38, 0x18, 0xdd, 0x80, 0xaa, 0x08, 0x47, 0x81, 0xc7, 0x6f,
0xcf, 0xa3, 0x40, 0xca, 0xaf, 0xeb, 0xd7, 0x26, 0x81, 0xc7, 0xa7, 0x82, 0x38, 0x58, 0x6d, 0xc3,
0x82, 0x5f, 0xd1, 0x02, 0x37, 0xdc, 0xc1, 0x9e, 0x3e, 0xa6, 0x07, 0xbb, 0x06, 0x65, 0xde, 0xa9,
0xf0, 0xa9, 0x84, 0xcf, 0x01, 0xb0, 0x2f, 0xe7, 0xe0, 0x95, 0xbb, 0x30, 0x9f, 0x28, 0x0c, 0xa8,
0x06, 0xf0, 0xa1, 0xed, 0x8b, 0xaf, 0x4f, 0xa1, 0x0a, 0xcc, 0xfa, 0xf5, 0xb3, 0xae, 0xac, 0xb4,
0xc3, 0xe9, 0x91, 0xe6, 0x0c, 0x74, 0x09, 0x2e, 0x7c, 0x68, 0x1b, 0xf8, 0xc0, 0xb4, 0xb1, 0x11,
0x7c, 0xaa, 0x4f, 0xa1, 0x0b, 0x30, 0xd7, 0xb2, 0x6d, 0xec, 0x86, 0x80, 0x0a, 0x05, 0xee, 0x60,
0xb7, 0x87, 0x43, 0xc0, 0xdc, 0xca, 0x06, 0xcc, 0xc5, 0x0c, 0x8e, 0xe6, 0xa1, 0xca, 0xb9, 0x62,
0x83, 0x01, 0xea, 0x53, 0xa8, 0x0a, 0xa5, 0xc7, 0xbe, 0x95, 0xeb, 0x0a, 0x5d, 0xca, 0xba, 0x5e,
0xcf, 0xad, 0xff, 0x63, 0x0e, 0x4a, 0x74, 0x5c, 0x78, 0xe4, 0x38, 0xae, 0x81, 0x06, 0x80, 0x84,
0xd7, 0x38, 0xb6, 0x7c, 0x00, 0x45, 0x77, 0x46, 0x4c, 0x9e, 0x49, 0x54, 0xe1, 0xa2, 0xcd, 0x9b,
0x23, 0x28, 0x62, 0xe8, 0xea, 0x14, 0xb2, 0x98, 0x44, 0x9a, 0xa4, 0xf7, 0xcc, 0xee, 0x33, 0xff,
0x32, 0x70, 0x8c, 0xc4, 0x18, 0xaa, 0x2f, 0x31, 0xf6, 0xae, 0x2a, 0x16, 0xfc, 0xf1, 0xcd, 0x77,
0x7b, 0x75, 0x0a, 0x7d, 0x0a, 0x17, 0xb7, 0xb0, 0x17, 0xbc, 0xb7, 0xf8, 0x02, 0xd7, 0x47, 0x0b,
0x4c, 0x20, 0x9f, 0x52, 0xe4, 0x36, 0x14, 0x59, 0x37, 0x85, 0xd2, 0x92, 0x5a, 0xf8, 0x5f, 0x40,
0xcd, 0xa5, 0xd1, 0x08, 0x92, 0xdb, 0x0f, 0x61, 0x2e, 0xf6, 0x2f, 0x07, 0xf4, 0x56, 0x0a, 0x59,
0xfa, 0xff, 0x55, 0x9a, 0x2b, 0x59, 0x50, 0xa5, 0xac, 0x1e, 0xd4, 0xa2, 0xaf, 0x42, 0x68, 0x39,
0x85, 0x3e, 0xf5, 0x85, 0xba, 0xf9, 0x56, 0x06, 0x4c, 0x29, 0xc8, 0x82, 0x7a, 0xfc, 0xd5, 0x1d,
0xad, 0x8c, 0x65, 0x10, 0x75, 0xb7, 0xb7, 0x33, 0xe1, 0x4a, 0x71, 0x27, 0xcc, 0x09, 0x12, 0xaf,
0xbe, 0x68, 0x35, 0x9d, 0xcd, 0xa8, 0xe7, 0xe8, 0xe6, 0x5a, 0x66, 0x7c, 0x29, 0xfa, 0x4b, 0x3e,
0xc5, 0xa5, 0xbd, 0x9c, 0xa2, 0xbb, 0xe9, 0xec, 0xc6, 0x3c, 0xf9, 0x36, 0xd7, 0x4f, 0x43, 0x22,
0x95, 0xf8, 0x9c, 0x8d, 0x5f, 0x29, 0xaf, 0x8f, 0xf1, 0xb8, 0xf3, 0xf9, 0x8d, 0x7e, 0x56, 0x6d,
0xde, 0x3d, 0x05, 0x85, 0x54, 0xc0, 0x89, 0xff, 0xaf, 0xc1, 0x0f, 0xc3, 0xb5, 0x89, 0x5e, 0x73,
0xb6, 0x18, 0xfc, 0x04, 0xe6, 0x62, 0x97, 0xb2, 0xa9, 0x51, 0x93, 0x7e, 0x71, 0xdb, 0x1c, 0x57,
0x1d, 0x79, 0x48, 0xc6, 0xa6, 0x59, 0x34, 0xc2, 0xfb, 0x53, 0x26, 0xde, 0xe6, 0x4a, 0x16, 0x54,
0xb9, 0x11, 0xc2, 0xd2, 0x65, 0x6c, 0x22, 0x44, 0xb7, 0xd3, 0x79, 0xa4, 0x4f, 0xb3, 0xcd, 0x77,
0x32, 0x62, 0x4b, 0xa1, 0x1d, 0x80, 0x2d, 0xec, 0xed, 0x60, 0xcf, 0xa5, 0x3e, 0x72, 0x33, 0xd5,
0xe4, 0x01, 0x82, 0x2f, 0xe6, 0xd6, 0x44, 0x3c, 0x29, 0xe0, 0x7b, 0x80, 0xfc, 0x9a, 0x14, 0xba,
0xf3, 0x7f, 0x63, 0x6c, 0x83, 0xc1, 0xbb, 0xe4, 0x49, 0x67, 0x63, 0x41, 0x3d, 0xde, 0xbd, 0xa5,
0x66, 0x96, 0x11, 0x1d, 0x64, 0x6a, 0x66, 0x19, 0xd5, 0x0e, 0xca, 0xe3, 0x89, 0x17, 0xe5, 0xdb,
0xa3, 0xa2, 0x34, 0xad, 0xbd, 0x1b, 0x75, 0x3c, 0x23, 0x5a, 0x39, 0x75, 0x6a, 0xfd, 0xbf, 0x05,
0x98, 0xf5, 0x6f, 0xfc, 0x5e, 0x43, 0x05, 0x7f, 0x0d, 0x25, 0xf5, 0x13, 0x98, 0x8b, 0xbd, 0xaa,
0xa7, 0x46, 0x5c, 0xfa, 0xcb, 0xfb, 0x24, 0x97, 0xf9, 0x58, 0xfc, 0x41, 0x56, 0x46, 0xd7, 0xad,
0x51, 0x65, 0x39, 0x1e, 0x58, 0x13, 0x18, 0xbf, 0xf4, 0x30, 0x7a, 0x0a, 0x10, 0x72, 0xf3, 0xf1,
0x73, 0x2b, 0xed, 0x8f, 0x27, 0x28, 0xbc, 0x71, 0xef, 0xfb, 0x77, 0x7b, 0xa6, 0x77, 0x38, 0xdc,
0xa7, 0x5f, 0xd6, 0x38, 0xea, 0x3b, 0xa6, 0x23, 0x7e, 0xad, 0xf9, 0x27, 0xba, 0xc6, 0xa8, 0xd7,
0xa8, 0x80, 0xc1, 0xfe, 0xfe, 0x34, 0x5b, 0xdd, 0xfb, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x6f,
0x95, 0xc4, 0x82, 0x42, 0x2d, 0x00, 0x00,
// 2520 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x1a, 0x4b, 0x6f, 0x1b, 0xc7,
0xd9, 0xcb, 0x87, 0x24, 0x7e, 0xa4, 0x28, 0x7a, 0xec, 0xca, 0x2c, 0x6d, 0xcb, 0xf2, 0x26, 0xb1,
0x15, 0xc7, 0x91, 0x6c, 0xb9, 0x41, 0x83, 0x3a, 0x69, 0x10, 0x59, 0xb6, 0x4a, 0x54, 0x72, 0xd5,
0xa5, 0x12, 0x17, 0xcd, 0x81, 0x58, 0x71, 0x47, 0xd4, 0xd6, 0xfb, 0xa0, 0x77, 0x86, 0xb2, 0x95,
0x4b, 0x8c, 0x14, 0x28, 0xd0, 0xa2, 0x6d, 0x5a, 0xf4, 0xd2, 0x43, 0x81, 0x16, 0x3d, 0x15, 0xe8,
0xa5, 0x97, 0x5e, 0xda, 0x3f, 0x50, 0x34, 0x97, 0x9e, 0xfa, 0x7b, 0x82, 0x79, 0xec, 0xec, 0x72,
0xb9, 0x24, 0x97, 0x92, 0x1f, 0x37, 0xce, 0xb7, 0xdf, 0x6b, 0xbe, 0xf9, 0x9e, 0x33, 0x84, 0x9a,
0x65, 0x52, 0xb3, 0xdd, 0xf1, 0xfd, 0xc0, 0x5a, 0xed, 0x05, 0x3e, 0xf5, 0xd1, 0x59, 0xd7, 0x76,
0x8e, 0xfa, 0x44, 0xac, 0x56, 0xd9, 0xe7, 0x46, 0xa5, 0xe3, 0xbb, 0xae, 0xef, 0x09, 0x50, 0xa3,
0x6a, 0x7b, 0x14, 0x07, 0x9e, 0xe9, 0xc8, 0x75, 0x25, 0x4e, 0xd0, 0xa8, 0x90, 0xce, 0x21, 0x76,
0x4d, 0xb1, 0xd2, 0x9f, 0x41, 0xe5, 0x81, 0xd3, 0x27, 0x87, 0x06, 0x7e, 0xd2, 0xc7, 0x84, 0xa2,
0x5b, 0x50, 0xd8, 0x37, 0x09, 0xae, 0x6b, 0xcb, 0xda, 0x4a, 0x79, 0xfd, 0xd2, 0xea, 0x80, 0x2c,
0x29, 0x65, 0x87, 0x74, 0x37, 0x4c, 0x82, 0x0d, 0x8e, 0x89, 0x10, 0x14, 0xac, 0xfd, 0xe6, 0x66,
0x3d, 0xb7, 0xac, 0xad, 0xe4, 0x0d, 0xfe, 0x1b, 0xe9, 0x50, 0xe9, 0xf8, 0x8e, 0x83, 0x3b, 0xd4,
0xf6, 0xbd, 0xe6, 0x66, 0xbd, 0xc0, 0xbf, 0x0d, 0xc0, 0xf4, 0x3f, 0x69, 0x30, 0x2f, 0x45, 0x93,
0x9e, 0xef, 0x11, 0x8c, 0xee, 0xc0, 0x0c, 0xa1, 0x26, 0xed, 0x13, 0x29, 0xfd, 0x62, 0xaa, 0xf4,
0x16, 0x47, 0x31, 0x24, 0x6a, 0x26, 0xf1, 0xf9, 0x61, 0xf1, 0x68, 0x09, 0x80, 0xe0, 0xae, 0x8b,
0x3d, 0xda, 0xdc, 0x24, 0xf5, 0xc2, 0x72, 0x7e, 0x25, 0x6f, 0xc4, 0x20, 0xfa, 0xef, 0x35, 0xa8,
0xb5, 0xc2, 0x65, 0x68, 0x9d, 0xf3, 0x50, 0xec, 0xf8, 0x7d, 0x8f, 0x72, 0x05, 0xe7, 0x0d, 0xb1,
0x40, 0x57, 0xa1, 0xd2, 0x39, 0x34, 0x3d, 0x0f, 0x3b, 0x6d, 0xcf, 0x74, 0x31, 0x57, 0xa5, 0x64,
0x94, 0x25, 0xec, 0xa1, 0xe9, 0xe2, 0x4c, 0x1a, 0x2d, 0x43, 0xb9, 0x67, 0x06, 0xd4, 0x1e, 0xb0,
0x59, 0x1c, 0xa4, 0xff, 0x45, 0x83, 0xc5, 0x8f, 0x09, 0xb1, 0xbb, 0xde, 0x90, 0x66, 0x8b, 0x30,
0xe3, 0xf9, 0x16, 0x6e, 0x6e, 0x72, 0xd5, 0xf2, 0x86, 0x5c, 0xa1, 0x8b, 0x50, 0xea, 0x61, 0x1c,
0xb4, 0x03, 0xdf, 0x09, 0x15, 0x9b, 0x63, 0x00, 0xc3, 0x77, 0x30, 0xfa, 0x31, 0x9c, 0x25, 0x09,
0x46, 0xa4, 0x9e, 0x5f, 0xce, 0xaf, 0x94, 0xd7, 0xdf, 0x58, 0x1d, 0xf2, 0xb2, 0xd5, 0xa4, 0x50,
0x63, 0x98, 0x5a, 0x7f, 0x9e, 0x83, 0x73, 0x0a, 0x4f, 0xe8, 0xca, 0x7e, 0x33, 0xcb, 0x11, 0xdc,
0x55, 0xea, 0x89, 0x45, 0x16, 0xcb, 0x29, 0x93, 0xe7, 0xe3, 0x26, 0xcf, 0xe0, 0x60, 0x49, 0x7b,
0x16, 0x87, 0xec, 0x89, 0xae, 0x40, 0x19, 0x3f, 0xeb, 0xd9, 0x01, 0x6e, 0x53, 0xdb, 0xc5, 0xf5,
0x99, 0x65, 0x6d, 0xa5, 0x60, 0x80, 0x00, 0xed, 0xd9, 0x6e, 0xdc, 0x23, 0x67, 0x33, 0x7b, 0xa4,
0xfe, 0x57, 0x0d, 0x2e, 0x0c, 0x9d, 0x92, 0x74, 0x71, 0x03, 0x6a, 0x7c, 0xe7, 0x91, 0x65, 0x98,
0xb3, 0x33, 0x83, 0x5f, 0x1b, 0x67, 0xf0, 0x08, 0xdd, 0x18, 0xa2, 0x8f, 0x29, 0x99, 0xcb, 0xae,
0xe4, 0x63, 0xb8, 0xb0, 0x85, 0xa9, 0x14, 0xc0, 0xbe, 0x61, 0x72, 0xf2, 0x14, 0x30, 0x18, 0x4b,
0xb9, 0xa1, 0x58, 0xfa, 0x47, 0x4e, 0xc5, 0x12, 0x17, 0xd5, 0xf4, 0x0e, 0x7c, 0x74, 0x09, 0x4a,
0x0a, 0x45, 0x7a, 0x45, 0x04, 0x40, 0xdf, 0x85, 0x22, 0xd3, 0x54, 0xb8, 0x44, 0x75, 0xfd, 0x6a,
0xfa, 0x9e, 0x62, 0x3c, 0x0d, 0x81, 0x8f, 0x9a, 0x50, 0x25, 0xd4, 0x0c, 0x68, 0xbb, 0xe7, 0x13,
0x7e, 0xce, 0xdc, 0x71, 0xca, 0xeb, 0xfa, 0x20, 0x07, 0x95, 0x22, 0x77, 0x48, 0x77, 0x57, 0x62,
0x1a, 0xf3, 0x9c, 0x32, 0x5c, 0xa2, 0xfb, 0x50, 0xc1, 0x9e, 0x15, 0x31, 0x2a, 0x64, 0x66, 0x54,
0xc6, 0x9e, 0xa5, 0xd8, 0x44, 0xe7, 0x53, 0xcc, 0x7e, 0x3e, 0xbf, 0xd6, 0xa0, 0x3e, 0x7c, 0x40,
0xa7, 0x49, 0x94, 0x77, 0x05, 0x11, 0x16, 0x07, 0x34, 0x36, 0xc2, 0xd5, 0x21, 0x19, 0x92, 0x44,
0xb7, 0xe1, 0x5b, 0x91, 0x36, 0xfc, 0xcb, 0x4b, 0x73, 0x96, 0x9f, 0x6b, 0xb0, 0x98, 0x94, 0x75,
0x9a, 0x7d, 0x7f, 0x07, 0x8a, 0xb6, 0x77, 0xe0, 0x87, 0xdb, 0x5e, 0x1a, 0x13, 0x67, 0x4c, 0x96,
0x40, 0xd6, 0x5d, 0xb8, 0xb8, 0x85, 0x69, 0xd3, 0x23, 0x38, 0xa0, 0x1b, 0xb6, 0xe7, 0xf8, 0xdd,
0x5d, 0x93, 0x1e, 0x9e, 0x22, 0x46, 0x06, 0xdc, 0x3d, 0x97, 0x70, 0x77, 0xfd, 0x6f, 0x1a, 0x5c,
0x4a, 0x97, 0x27, 0xb7, 0xde, 0x80, 0xb9, 0x03, 0x1b, 0x3b, 0x16, 0xb3, 0x99, 0xc6, 0x6d, 0xa6,
0xd6, 0x2c, 0x56, 0x7a, 0x0c, 0x59, 0xee, 0xf0, 0xea, 0x08, 0x07, 0x6d, 0xd1, 0xc0, 0xf6, 0xba,
0xdb, 0x36, 0xa1, 0x86, 0xc0, 0x8f, 0xd9, 0x33, 0x9f, 0xdd, 0x33, 0x7f, 0xa5, 0xc1, 0xd2, 0x16,
0xa6, 0xf7, 0x54, 0xaa, 0x65, 0xdf, 0x6d, 0x42, 0xed, 0x0e, 0x79, 0xb9, 0x4d, 0x44, 0x4a, 0xcd,
0xd4, 0xbf, 0xd2, 0xe0, 0xca, 0x48, 0x65, 0xa4, 0xe9, 0x64, 0x2a, 0x09, 0x13, 0x6d, 0x7a, 0x2a,
0xf9, 0x21, 0x3e, 0xfe, 0xd4, 0x74, 0xfa, 0x78, 0xd7, 0xb4, 0x03, 0x91, 0x4a, 0x4e, 0x98, 0x58,
0xff, 0xae, 0xc1, 0xe5, 0x2d, 0x4c, 0x77, 0xc3, 0x32, 0xf3, 0x1a, 0xad, 0x93, 0xa1, 0xa3, 0xf8,
0xad, 0x38, 0xcc, 0x54, 0x6d, 0x5f, 0x8b, 0xf9, 0x96, 0x78, 0x1c, 0xc4, 0x02, 0xf2, 0x9e, 0xe8,
0x05, 0xa4, 0xf1, 0xf4, 0x7f, 0xe6, 0xa0, 0xf2, 0xa9, 0xec, 0x0f, 0x78, 0x19, 0x49, 0xda, 0x41,
0x4b, 0xb7, 0x43, 0xac, 0xa5, 0x48, 0xeb, 0x32, 0xb6, 0x60, 0x9e, 0x60, 0xfc, 0xf8, 0x24, 0x45,
0xa3, 0xc2, 0x08, 0x55, 0xb2, 0xdf, 0x86, 0xb3, 0x7d, 0xef, 0x80, 0xb5, 0xb5, 0xd8, 0x92, 0xbb,
0x10, 0xdd, 0xe5, 0xe4, 0xcc, 0x33, 0x4c, 0x88, 0x7e, 0x00, 0x0b, 0x49, 0x5e, 0xc5, 0x4c, 0xbc,
0x92, 0x64, 0xfa, 0x2f, 0x35, 0x58, 0x7c, 0x64, 0xd2, 0xce, 0xe1, 0xa6, 0x2b, 0x2d, 0x7a, 0x0a,
0x7f, 0xfc, 0x10, 0x4a, 0x47, 0xd2, 0x7a, 0x61, 0xd2, 0xb9, 0x92, 0xa2, 0x50, 0xfc, 0x9c, 0x8c,
0x88, 0x42, 0xff, 0x8f, 0x06, 0xe7, 0x79, 0xe7, 0x1f, 0x6a, 0xf7, 0xea, 0x23, 0x63, 0x42, 0xf7,
0x8f, 0xae, 0x41, 0xd5, 0x35, 0x83, 0xc7, 0xad, 0x08, 0xa7, 0xc8, 0x71, 0x12, 0x50, 0xfd, 0x19,
0x80, 0x5c, 0xed, 0x90, 0xee, 0x09, 0xf4, 0x7f, 0x1f, 0x66, 0xa5, 0x54, 0x19, 0x24, 0x93, 0x0e,
0x36, 0x44, 0xd7, 0xff, 0xab, 0x41, 0x35, 0x4a, 0x7b, 0x3c, 0x14, 0xaa, 0x90, 0x53, 0x01, 0x90,
0x6b, 0x6e, 0xa2, 0x0f, 0x61, 0x46, 0xcc, 0x7a, 0x92, 0xf7, 0x5b, 0x83, 0xbc, 0xe5, 0x1c, 0x18,
0xcb, 0x9d, 0x1c, 0x60, 0x48, 0x22, 0x66, 0x23, 0x95, 0x2a, 0xc4, 0x58, 0x90, 0x37, 0x62, 0x10,
0xd4, 0x84, 0x85, 0xc1, 0x4e, 0x2b, 0x74, 0xf4, 0xe5, 0x51, 0x29, 0x62, 0xd3, 0xa4, 0x26, 0xcf,
0x10, 0xd5, 0x81, 0x46, 0x8b, 0xe8, 0xff, 0x2b, 0x42, 0x39, 0xb6, 0xcb, 0xa1, 0x9d, 0x24, 0x8f,
0x34, 0x37, 0x39, 0xd9, 0xe5, 0x87, 0xdb, 0xfd, 0xb7, 0xa0, 0x6a, 0xf3, 0x02, 0xdb, 0x96, 0xae,
0xc8, 0x33, 0x62, 0xc9, 0x98, 0x17, 0x50, 0x19, 0x17, 0x68, 0x09, 0xca, 0x5e, 0xdf, 0x6d, 0xfb,
0x07, 0xed, 0xc0, 0x7f, 0x4a, 0xe4, 0xdc, 0x50, 0xf2, 0xfa, 0xee, 0x8f, 0x0e, 0x0c, 0xff, 0x29,
0x89, 0x5a, 0xd3, 0x99, 0x29, 0x5b, 0xd3, 0x25, 0x28, 0xbb, 0xe6, 0x33, 0xc6, 0xb5, 0xed, 0xf5,
0x5d, 0x3e, 0x52, 0xe4, 0x8d, 0x92, 0x6b, 0x3e, 0x33, 0xfc, 0xa7, 0x0f, 0xfb, 0x2e, 0x5a, 0x81,
0x9a, 0x63, 0x12, 0xda, 0x8e, 0xcf, 0x24, 0x73, 0x7c, 0x26, 0xa9, 0x32, 0xf8, 0xfd, 0x68, 0x2e,
0x19, 0x6e, 0x72, 0x4b, 0xa7, 0x68, 0x72, 0x2d, 0xd7, 0x89, 0x18, 0x41, 0xf6, 0x26, 0xd7, 0x72,
0x1d, 0xc5, 0xe6, 0x7d, 0x98, 0xdd, 0xe7, 0x6d, 0x0b, 0xa9, 0x97, 0x47, 0x66, 0xa8, 0x07, 0xac,
0x63, 0x11, 0xdd, 0x8d, 0x11, 0xa2, 0xa3, 0x0f, 0xa0, 0xc4, 0xeb, 0x05, 0xa7, 0xad, 0x64, 0xa2,
0x8d, 0x08, 0x58, 0x2a, 0xb2, 0xb0, 0x43, 0x4d, 0x4e, 0x3d, 0x3f, 0x32, 0x15, 0x6d, 0x32, 0x9c,
0x6d, 0xbf, 0x2b, 0x52, 0x91, 0xa2, 0x40, 0xb7, 0xe0, 0x5c, 0x27, 0xc0, 0x26, 0xc5, 0xd6, 0xc6,
0xf1, 0x3d, 0xdf, 0xed, 0x99, 0xdc, 0x9b, 0xea, 0xd5, 0x65, 0x6d, 0x65, 0xce, 0x48, 0xfb, 0xc4,
0x32, 0x43, 0x47, 0xad, 0x1e, 0x04, 0xbe, 0x5b, 0x5f, 0x10, 0x99, 0x61, 0x10, 0xaa, 0x7f, 0x01,
0xe7, 0x23, 0x1f, 0x88, 0xd9, 0x7b, 0xf8, 0xe8, 0xb4, 0x93, 0x1e, 0xdd, 0xf8, 0x96, 0xf2, 0x8f,
0x05, 0x58, 0x6c, 0x99, 0x47, 0xf8, 0xe5, 0x77, 0xaf, 0x99, 0x32, 0xee, 0x36, 0x9c, 0xe5, 0x0d,
0xeb, 0x7a, 0x4c, 0x9f, 0x31, 0x85, 0x31, 0x7e, 0xdc, 0xc3, 0x84, 0xe8, 0x23, 0x56, 0xd1, 0x71,
0xe7, 0xf1, 0xae, 0x6f, 0x47, 0x45, 0xf1, 0x72, 0x0a, 0x9f, 0x7b, 0x0a, 0xcb, 0x88, 0x53, 0xa0,
0xdd, 0xe1, 0xe4, 0x35, 0xc3, 0x99, 0x5c, 0x1f, 0x3b, 0x16, 0x45, 0xd6, 0x4f, 0xe6, 0x30, 0x54,
0x87, 0x59, 0x59, 0x74, 0x79, 0x64, 0xcf, 0x19, 0xe1, 0x12, 0xed, 0xc2, 0x39, 0xb1, 0x83, 0x96,
0x74, 0x5b, 0xb1, 0xf9, 0xb9, 0x4c, 0x9b, 0x4f, 0x23, 0x1d, 0xf4, 0xfa, 0xd2, 0xb4, 0x5e, 0xcf,
0x5a, 0x78, 0x88, 0x0c, 0x33, 0x61, 0x12, 0xff, 0x3e, 0xcc, 0x29, 0x57, 0xcd, 0x65, 0x76, 0x55,
0x45, 0x93, 0x4c, 0xa7, 0xf9, 0x44, 0x3a, 0xd5, 0xbf, 0xd6, 0xa0, 0x12, 0x57, 0x94, 0xa5, 0xe9,
0x00, 0x77, 0xfc, 0xc0, 0x6a, 0x63, 0x8f, 0x06, 0x36, 0x16, 0xd3, 0x5e, 0xc1, 0x98, 0x17, 0xd0,
0xfb, 0x02, 0xc8, 0xd0, 0x58, 0x86, 0x24, 0xd4, 0x74, 0x7b, 0xed, 0x03, 0x16, 0x88, 0x39, 0x81,
0xa6, 0xa0, 0x2c, 0x0e, 0xd1, 0x55, 0xa8, 0x44, 0x68, 0xd4, 0xe7, 0xf2, 0x0b, 0x46, 0x59, 0xc1,
0xf6, 0x7c, 0xf4, 0x26, 0x54, 0xb9, 0x6d, 0xda, 0x8e, 0xdf, 0x6d, 0xb3, 0xc9, 0x48, 0xd6, 0x85,
0x8a, 0x25, 0xd5, 0x62, 0x46, 0x1f, 0xc4, 0x22, 0xf6, 0xe7, 0x58, 0x56, 0x06, 0x85, 0xd5, 0xb2,
0x3f, 0xc7, 0xfa, 0x97, 0x1a, 0xcc, 0xb3, 0x32, 0xf7, 0xd0, 0xb7, 0xf0, 0xde, 0x09, 0x9b, 0x82,
0x0c, 0xb7, 0x62, 0x97, 0xa0, 0xa4, 0x76, 0x20, 0xb7, 0x14, 0x01, 0xd8, 0x08, 0x3d, 0x2f, 0xab,
0x59, 0x4b, 0xdd, 0x92, 0x72, 0x56, 0x1a, 0x67, 0xc5, 0x7f, 0xa3, 0xef, 0x0d, 0x5e, 0xb1, 0xbc,
0x99, 0x1a, 0x3d, 0x9c, 0x09, 0x6f, 0x1c, 0x07, 0x4a, 0x59, 0x96, 0xd9, 0xec, 0x39, 0x3b, 0x58,
0x69, 0x0a, 0x7e, 0xb0, 0x75, 0x98, 0x35, 0x2d, 0x2b, 0xc0, 0x84, 0x48, 0x3d, 0xc2, 0x25, 0xfb,
0x72, 0x84, 0x03, 0x12, 0xba, 0x58, 0xde, 0x08, 0x97, 0xe8, 0x03, 0x98, 0x53, 0x9d, 0x66, 0x3e,
0xad, 0xbb, 0x88, 0xeb, 0x29, 0x67, 0x09, 0x45, 0xa1, 0x7f, 0x95, 0x83, 0xaa, 0x0c, 0xde, 0x0d,
0x59, 0x6e, 0xc6, 0x3b, 0xfb, 0x06, 0x54, 0x0e, 0xa2, 0xe0, 0x1b, 0x77, 0x67, 0x10, 0x8f, 0xd1,
0x01, 0x9a, 0x49, 0x0e, 0x3f, 0x58, 0xf0, 0x0a, 0xa7, 0x2a, 0x78, 0xc5, 0xa9, 0x43, 0xff, 0x63,
0x28, 0xc7, 0x18, 0xf3, 0xa4, 0x25, 0xae, 0x11, 0xa4, 0x2d, 0xc2, 0x25, 0xfb, 0xb2, 0x1f, 0x33,
0x42, 0x49, 0x15, 0x6c, 0xd6, 0xbe, 0x5f, 0xd8, 0xc2, 0xd4, 0xc0, 0x1d, 0xff, 0x08, 0x07, 0xc7,
0xa7, 0xbf, 0xa1, 0xb9, 0x1b, 0x3b, 0xe3, 0x8c, 0xd3, 0x84, 0x22, 0x40, 0x77, 0x23, 0x3d, 0xf3,
0x69, 0x03, 0x6a, 0x3c, 0x81, 0xcb, 0x13, 0x8a, 0xb6, 0xf2, 0x3b, 0x71, 0xd7, 0x34, 0xb8, 0x95,
0x93, 0xd6, 0xc8, 0x17, 0xd2, 0xa4, 0xea, 0x7f, 0xd0, 0xe0, 0xdb, 0x5b, 0x98, 0x3e, 0x18, 0x9c,
0xdf, 0x5e, 0xb7, 0x56, 0x2e, 0x34, 0xd2, 0x94, 0x3a, 0xcd, 0xa9, 0x37, 0x60, 0x8e, 0x84, 0x43,
0xad, 0xb8, 0x05, 0x54, 0x6b, 0xfd, 0x17, 0x1a, 0xd4, 0xa5, 0x14, 0x2e, 0x93, 0xf5, 0x5f, 0x0e,
0xa6, 0xd8, 0x7a, 0xd5, 0x53, 0xd6, 0x9f, 0x35, 0xa8, 0xc5, 0x93, 0x20, 0xcf, 0x63, 0xef, 0x41,
0x91, 0x0f, 0xb3, 0x52, 0x83, 0x89, 0xce, 0x2a, 0xb0, 0x59, 0x44, 0xf1, 0x96, 0x61, 0x8f, 0x84,
0x49, 0x4e, 0x2e, 0xa3, 0x4c, 0x9c, 0x9f, 0x3a, 0x13, 0xeb, 0xbf, 0xc9, 0x41, 0x3d, 0x6a, 0x4f,
0x5f, 0x79, 0xb2, 0x1b, 0xd1, 0xdb, 0xe4, 0x5f, 0x50, 0x6f, 0x53, 0x98, 0x3a, 0xc1, 0xfd, 0x3b,
0xc7, 0xe6, 0xe2, 0xd0, 0x1e, 0xbb, 0x8e, 0xe9, 0xa1, 0x45, 0x98, 0xe9, 0x39, 0x66, 0x74, 0x39,
0x24, 0x57, 0xa8, 0x05, 0x55, 0x32, 0x60, 0x2f, 0x69, 0x81, 0x77, 0xd2, 0xec, 0x3f, 0xc2, 0xc4,
0x46, 0x82, 0x05, 0xba, 0x0c, 0x20, 0x1a, 0x4b, 0x3e, 0xbe, 0xc9, 0xd2, 0x2c, 0x0e, 0x9a, 0x4d,
0x6e, 0x37, 0x01, 0xb1, 0x0f, 0x7e, 0x9f, 0xb6, 0x6d, 0xaf, 0x4d, 0x70, 0xc7, 0xf7, 0x2c, 0xc2,
0xfb, 0x8d, 0xa2, 0x51, 0x93, 0x5f, 0x9a, 0x5e, 0x4b, 0xc0, 0xd1, 0x7b, 0x50, 0xa0, 0xc7, 0x3d,
0xd1, 0x69, 0x54, 0x53, 0x33, 0x5b, 0xa4, 0xd7, 0xde, 0x71, 0x0f, 0x1b, 0x1c, 0x9d, 0x4d, 0xee,
0x8c, 0x15, 0x0d, 0xcc, 0x23, 0xec, 0x84, 0xcf, 0x5a, 0x11, 0x84, 0x79, 0x62, 0x38, 0x01, 0xcf,
0x8a, 0x42, 0x2c, 0x97, 0xfa, 0xbf, 0x72, 0x50, 0x8b, 0x58, 0x1a, 0x98, 0xf4, 0x1d, 0x3a, 0xd2,
0x7e, 0xe3, 0x87, 0x82, 0x49, 0x65, 0xf0, 0x23, 0x28, 0xcb, 0x69, 0x7c, 0x8a, 0x42, 0x08, 0x82,
0x64, 0x7b, 0x8c, 0xeb, 0x15, 0x5f, 0x90, 0xeb, 0xcd, 0x4c, 0xed, 0x7a, 0x2d, 0x58, 0x0c, 0x93,
0x56, 0x24, 0x69, 0x07, 0x53, 0x73, 0x4c, 0x99, 0xbd, 0x02, 0x65, 0x51, 0x8c, 0x44, 0xe3, 0x29,
0x5a, 0x3d, 0xd8, 0x57, 0xa3, 0xce, 0x8d, 0xdb, 0x70, 0x76, 0x28, 0xf6, 0x51, 0x15, 0xe0, 0x13,
0xaf, 0x23, 0x93, 0x62, 0xed, 0x0c, 0xaa, 0xc0, 0x5c, 0x98, 0x22, 0x6b, 0xda, 0x8d, 0x56, 0x3c,
0x02, 0x98, 0x5b, 0xa0, 0x0b, 0x70, 0xee, 0x13, 0xcf, 0xc2, 0x07, 0xb6, 0x87, 0xad, 0xe8, 0x53,
0xed, 0x0c, 0x3a, 0x07, 0x0b, 0x4d, 0xcf, 0xc3, 0x41, 0x0c, 0xa8, 0x31, 0xe0, 0x0e, 0x0e, 0xba,
0x38, 0x06, 0xcc, 0xad, 0x7f, 0x5d, 0x83, 0x12, 0xeb, 0xe6, 0xee, 0xf9, 0x7e, 0x60, 0xa1, 0x1e,
0x20, 0x7e, 0xed, 0xee, 0xf6, 0x7c, 0x4f, 0xbd, 0x4f, 0xa1, 0x5b, 0x23, 0x06, 0x83, 0x61, 0x54,
0x59, 0xcf, 0x1a, 0xd7, 0x46, 0x50, 0x24, 0xd0, 0xf5, 0x33, 0xc8, 0xe5, 0x12, 0x59, 0x0c, 0xed,
0xd9, 0x9d, 0xc7, 0xe1, 0x5d, 0xcd, 0x18, 0x89, 0x09, 0xd4, 0x50, 0x62, 0xe2, 0xd9, 0x4b, 0x2e,
0xc4, 0xdb, 0x48, 0x58, 0xd0, 0xf4, 0x33, 0xe8, 0x09, 0x9c, 0xdf, 0xc2, 0x34, 0xba, 0x0e, 0x0f,
0x05, 0xae, 0x8f, 0x16, 0x38, 0x84, 0x3c, 0xa5, 0xc8, 0x6d, 0x28, 0xf2, 0x62, 0x87, 0xd2, 0x7c,
0x2e, 0xfe, 0x27, 0x8d, 0xc6, 0xf2, 0x68, 0x04, 0xc5, 0xed, 0x67, 0xb0, 0x90, 0x78, 0x84, 0x46,
0x6f, 0xa7, 0x90, 0xa5, 0xff, 0x9d, 0xa0, 0x71, 0x23, 0x0b, 0xaa, 0x92, 0xd5, 0x85, 0xea, 0xe0,
0xa5, 0x3d, 0x5a, 0x49, 0xa1, 0x4f, 0x7d, 0x40, 0x6c, 0xbc, 0x9d, 0x01, 0x53, 0x09, 0x72, 0xa1,
0x96, 0x7c, 0x14, 0x45, 0x37, 0xc6, 0x32, 0x18, 0x74, 0xb7, 0x77, 0x32, 0xe1, 0x2a, 0x71, 0xc7,
0xdc, 0x09, 0x86, 0x1e, 0xe5, 0xd0, 0x6a, 0x3a, 0x9b, 0x51, 0xaf, 0x85, 0x8d, 0xb5, 0xcc, 0xf8,
0x4a, 0xf4, 0x97, 0xa2, 0xc9, 0x4e, 0x7b, 0xd8, 0x42, 0xb7, 0xd3, 0xd9, 0x8d, 0x79, 0x91, 0x6b,
0xac, 0x4f, 0x43, 0xa2, 0x94, 0xf8, 0x82, 0x77, 0xc7, 0x29, 0x8f, 0x43, 0xc9, 0xb8, 0x0b, 0xf9,
0x8d, 0x7e, 0xf5, 0x6a, 0xdc, 0x9e, 0x82, 0x42, 0x29, 0xe0, 0x27, 0x9f, 0x9d, 0xc3, 0x30, 0x5c,
0x9b, 0xe8, 0x35, 0x27, 0x8b, 0xc1, 0xcf, 0x60, 0x21, 0x71, 0x67, 0x96, 0x1a, 0x35, 0xe9, 0xf7,
0x6a, 0x8d, 0x71, 0x7d, 0xaf, 0x08, 0xc9, 0xc4, 0xb0, 0x81, 0x46, 0x78, 0x7f, 0xca, 0x40, 0xd2,
0xb8, 0x91, 0x05, 0x55, 0x6d, 0x84, 0xf0, 0x74, 0x99, 0x68, 0xd8, 0xd1, 0xcd, 0x74, 0x1e, 0xe9,
0xc3, 0x46, 0xe3, 0xdd, 0x8c, 0xd8, 0x4a, 0x68, 0x1b, 0x60, 0x0b, 0xd3, 0x1d, 0x4c, 0x03, 0xe6,
0x23, 0xd7, 0x52, 0x4d, 0x1e, 0x21, 0x84, 0x62, 0xae, 0x4f, 0xc4, 0x53, 0x02, 0x7e, 0x02, 0x28,
0xac, 0x73, 0xb1, 0x2b, 0xd9, 0x37, 0xc6, 0xf6, 0x45, 0xa2, 0x89, 0x99, 0x74, 0x36, 0x4f, 0xa0,
0xb6, 0x63, 0x7a, 0x7d, 0xd3, 0x89, 0xf1, 0xbd, 0x99, 0xaa, 0x58, 0x12, 0x6d, 0x84, 0xb5, 0x46,
0x62, 0xab, 0xcd, 0x3c, 0x55, 0x35, 0xd4, 0x54, 0x21, 0x88, 0x93, 0xb9, 0x25, 0xb2, 0x46, 0x02,
0x71, 0x44, 0x6e, 0x19, 0x83, 0xaf, 0x04, 0x3f, 0xd7, 0xf8, 0x9f, 0x1b, 0x12, 0x08, 0x8f, 0x6c,
0x7a, 0xc8, 0xda, 0x65, 0x92, 0x45, 0x05, 0x8e, 0x38, 0x85, 0x0a, 0x12, 0x3f, 0x54, 0x61, 0xfd,
0xff, 0x05, 0x98, 0x0b, 0xef, 0x86, 0x5e, 0x43, 0x33, 0xf1, 0x1a, 0xaa, 0xfb, 0x67, 0xb0, 0x90,
0x78, 0x7f, 0x4d, 0x0d, 0xfe, 0xf4, 0x37, 0xda, 0x49, 0xde, 0xfb, 0x48, 0xfe, 0x95, 0x52, 0x05,
0xfa, 0xf5, 0x51, 0x1d, 0x42, 0x32, 0xc6, 0x27, 0x30, 0x7e, 0xe9, 0x11, 0xfd, 0x10, 0x20, 0x16,
0x71, 0xe3, 0x27, 0x1c, 0xe6, 0x44, 0x13, 0x14, 0xde, 0xb8, 0xf3, 0xd3, 0xdb, 0x5d, 0x9b, 0x1e,
0xf6, 0xf7, 0xd9, 0x97, 0x35, 0x81, 0xfa, 0xae, 0xed, 0xcb, 0x5f, 0x6b, 0xe1, 0x89, 0xae, 0x71,
0xea, 0x35, 0x26, 0xa0, 0xb7, 0xbf, 0x3f, 0xc3, 0x57, 0x77, 0xbe, 0x09, 0x00, 0x00, 0xff, 0xff,
0x3b, 0x13, 0xbe, 0xac, 0x6c, 0x2b, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
@ -3141,8 +2897,9 @@ type DataCoordClient interface {
// https://wiki.lfaidata.foundation/display/MIL/MEP+8+--+Add+metrics+for+proxy
GetMetrics(ctx context.Context, in *milvuspb.GetMetricsRequest, opts ...grpc.CallOption) (*milvuspb.GetMetricsResponse, error)
CompleteCompaction(ctx context.Context, in *CompactionResult, opts ...grpc.CallOption) (*commonpb.Status, error)
ManualCompaction(ctx context.Context, in *ManualCompactionRequest, opts ...grpc.CallOption) (*ManualCompactionResponse, error)
GetCompactionState(ctx context.Context, in *GetCompactionStateRequest, opts ...grpc.CallOption) (*GetCompactionStateResponse, error)
ManualCompaction(ctx context.Context, in *milvuspb.ManualCompactionRequest, opts ...grpc.CallOption) (*milvuspb.ManualCompactionResponse, error)
GetCompactionState(ctx context.Context, in *milvuspb.GetCompactionStateRequest, opts ...grpc.CallOption) (*milvuspb.GetCompactionStateResponse, error)
GetCompactionStateWithPlans(ctx context.Context, in *milvuspb.GetCompactionPlansRequest, opts ...grpc.CallOption) (*milvuspb.GetCompactionPlansResponse, error)
}
type dataCoordClient struct {
@ -3297,8 +3054,8 @@ func (c *dataCoordClient) CompleteCompaction(ctx context.Context, in *Compaction
return out, nil
}
func (c *dataCoordClient) ManualCompaction(ctx context.Context, in *ManualCompactionRequest, opts ...grpc.CallOption) (*ManualCompactionResponse, error) {
out := new(ManualCompactionResponse)
func (c *dataCoordClient) ManualCompaction(ctx context.Context, in *milvuspb.ManualCompactionRequest, opts ...grpc.CallOption) (*milvuspb.ManualCompactionResponse, error) {
out := new(milvuspb.ManualCompactionResponse)
err := c.cc.Invoke(ctx, "/milvus.proto.data.DataCoord/ManualCompaction", in, out, opts...)
if err != nil {
return nil, err
@ -3306,8 +3063,8 @@ func (c *dataCoordClient) ManualCompaction(ctx context.Context, in *ManualCompac
return out, nil
}
func (c *dataCoordClient) GetCompactionState(ctx context.Context, in *GetCompactionStateRequest, opts ...grpc.CallOption) (*GetCompactionStateResponse, error) {
out := new(GetCompactionStateResponse)
func (c *dataCoordClient) GetCompactionState(ctx context.Context, in *milvuspb.GetCompactionStateRequest, opts ...grpc.CallOption) (*milvuspb.GetCompactionStateResponse, error) {
out := new(milvuspb.GetCompactionStateResponse)
err := c.cc.Invoke(ctx, "/milvus.proto.data.DataCoord/GetCompactionState", in, out, opts...)
if err != nil {
return nil, err
@ -3315,6 +3072,15 @@ func (c *dataCoordClient) GetCompactionState(ctx context.Context, in *GetCompact
return out, nil
}
func (c *dataCoordClient) GetCompactionStateWithPlans(ctx context.Context, in *milvuspb.GetCompactionPlansRequest, opts ...grpc.CallOption) (*milvuspb.GetCompactionPlansResponse, error) {
out := new(milvuspb.GetCompactionPlansResponse)
err := c.cc.Invoke(ctx, "/milvus.proto.data.DataCoord/GetCompactionStateWithPlans", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
// DataCoordServer is the server API for DataCoord service.
type DataCoordServer interface {
GetComponentStates(context.Context, *internalpb.GetComponentStatesRequest) (*internalpb.ComponentStates, error)
@ -3334,8 +3100,9 @@ type DataCoordServer interface {
// https://wiki.lfaidata.foundation/display/MIL/MEP+8+--+Add+metrics+for+proxy
GetMetrics(context.Context, *milvuspb.GetMetricsRequest) (*milvuspb.GetMetricsResponse, error)
CompleteCompaction(context.Context, *CompactionResult) (*commonpb.Status, error)
ManualCompaction(context.Context, *ManualCompactionRequest) (*ManualCompactionResponse, error)
GetCompactionState(context.Context, *GetCompactionStateRequest) (*GetCompactionStateResponse, error)
ManualCompaction(context.Context, *milvuspb.ManualCompactionRequest) (*milvuspb.ManualCompactionResponse, error)
GetCompactionState(context.Context, *milvuspb.GetCompactionStateRequest) (*milvuspb.GetCompactionStateResponse, error)
GetCompactionStateWithPlans(context.Context, *milvuspb.GetCompactionPlansRequest) (*milvuspb.GetCompactionPlansResponse, error)
}
// UnimplementedDataCoordServer can be embedded to have forward compatible implementations.
@ -3390,12 +3157,15 @@ func (*UnimplementedDataCoordServer) GetMetrics(ctx context.Context, req *milvus
func (*UnimplementedDataCoordServer) CompleteCompaction(ctx context.Context, req *CompactionResult) (*commonpb.Status, error) {
return nil, status.Errorf(codes.Unimplemented, "method CompleteCompaction not implemented")
}
func (*UnimplementedDataCoordServer) ManualCompaction(ctx context.Context, req *ManualCompactionRequest) (*ManualCompactionResponse, error) {
func (*UnimplementedDataCoordServer) ManualCompaction(ctx context.Context, req *milvuspb.ManualCompactionRequest) (*milvuspb.ManualCompactionResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method ManualCompaction not implemented")
}
func (*UnimplementedDataCoordServer) GetCompactionState(ctx context.Context, req *GetCompactionStateRequest) (*GetCompactionStateResponse, error) {
func (*UnimplementedDataCoordServer) GetCompactionState(ctx context.Context, req *milvuspb.GetCompactionStateRequest) (*milvuspb.GetCompactionStateResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetCompactionState not implemented")
}
func (*UnimplementedDataCoordServer) GetCompactionStateWithPlans(ctx context.Context, req *milvuspb.GetCompactionPlansRequest) (*milvuspb.GetCompactionPlansResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetCompactionStateWithPlans not implemented")
}
func RegisterDataCoordServer(s *grpc.Server, srv DataCoordServer) {
s.RegisterService(&_DataCoord_serviceDesc, srv)
@ -3690,7 +3460,7 @@ func _DataCoord_CompleteCompaction_Handler(srv interface{}, ctx context.Context,
}
func _DataCoord_ManualCompaction_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(ManualCompactionRequest)
in := new(milvuspb.ManualCompactionRequest)
if err := dec(in); err != nil {
return nil, err
}
@ -3702,13 +3472,13 @@ func _DataCoord_ManualCompaction_Handler(srv interface{}, ctx context.Context, d
FullMethod: "/milvus.proto.data.DataCoord/ManualCompaction",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(DataCoordServer).ManualCompaction(ctx, req.(*ManualCompactionRequest))
return srv.(DataCoordServer).ManualCompaction(ctx, req.(*milvuspb.ManualCompactionRequest))
}
return interceptor(ctx, in, info, handler)
}
func _DataCoord_GetCompactionState_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(GetCompactionStateRequest)
in := new(milvuspb.GetCompactionStateRequest)
if err := dec(in); err != nil {
return nil, err
}
@ -3720,7 +3490,25 @@ func _DataCoord_GetCompactionState_Handler(srv interface{}, ctx context.Context,
FullMethod: "/milvus.proto.data.DataCoord/GetCompactionState",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(DataCoordServer).GetCompactionState(ctx, req.(*GetCompactionStateRequest))
return srv.(DataCoordServer).GetCompactionState(ctx, req.(*milvuspb.GetCompactionStateRequest))
}
return interceptor(ctx, in, info, handler)
}
func _DataCoord_GetCompactionStateWithPlans_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(milvuspb.GetCompactionPlansRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(DataCoordServer).GetCompactionStateWithPlans(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/milvus.proto.data.DataCoord/GetCompactionStateWithPlans",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(DataCoordServer).GetCompactionStateWithPlans(ctx, req.(*milvuspb.GetCompactionPlansRequest))
}
return interceptor(ctx, in, info, handler)
}
@ -3801,6 +3589,10 @@ var _DataCoord_serviceDesc = grpc.ServiceDesc{
MethodName: "GetCompactionState",
Handler: _DataCoord_GetCompactionState_Handler,
},
{
MethodName: "GetCompactionStateWithPlans",
Handler: _DataCoord_GetCompactionStateWithPlans_Handler,
},
},
Streams: []grpc.StreamDesc{},
Metadata: "data_coord.proto",

View File

@ -52,6 +52,8 @@ service MilvusService {
// https://wiki.lfaidata.foundation/display/MIL/MEP+8+--+Add+metrics+for+proxy
rpc GetMetrics(GetMetricsRequest) returns (GetMetricsResponse) {}
rpc LoadBalance(LoadBalanceRequest) returns (common.Status) {}
rpc GetCompactionState(GetCompactionStateRequest) returns (GetCompactionStateResponse) {}
rpc ManualCompaction(ManualCompactionRequest) returns (ManualCompactionResponse) {}
}
message CreateAliasRequest {
@ -716,6 +718,43 @@ message LoadBalanceRequest {
repeated int64 sealed_segmentIDs = 4;
}
message ManualCompactionRequest {
int64 collectionID = 1;
uint64 timetravel = 2;
}
message ManualCompactionResponse {
common.Status status = 1;
int64 compactionID = 2;
}
message GetCompactionStateRequest {
int64 compactionID = 1;
}
message GetCompactionStateResponse {
common.Status status = 1;
common.CompactionState state = 2;
int64 executingPlanNo = 3;
int64 timeoutPlanNo = 4;
int64 completedPlanNo = 5;
}
message GetCompactionPlansRequest {
int64 compactionID = 1;
}
message GetCompactionPlansResponse {
common.Status status = 1;
common.CompactionState state = 2;
repeated CompactionMergeInfo mergeInfos = 3;
}
message CompactionMergeInfo {
repeated int64 sources = 1;
int64 target = 2;
}
service ProxyService {
rpc RegisterLink(RegisterLinkRequest) returns (RegisterLinkResponse) {}
}

View File

@ -4456,6 +4456,351 @@ func (m *LoadBalanceRequest) GetSealedSegmentIDs() []int64 {
return nil
}
type ManualCompactionRequest struct {
CollectionID int64 `protobuf:"varint,1,opt,name=collectionID,proto3" json:"collectionID,omitempty"`
Timetravel uint64 `protobuf:"varint,2,opt,name=timetravel,proto3" json:"timetravel,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ManualCompactionRequest) Reset() { *m = ManualCompactionRequest{} }
func (m *ManualCompactionRequest) String() string { return proto.CompactTextString(m) }
func (*ManualCompactionRequest) ProtoMessage() {}
func (*ManualCompactionRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_02345ba45cc0e303, []int{67}
}
func (m *ManualCompactionRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ManualCompactionRequest.Unmarshal(m, b)
}
func (m *ManualCompactionRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ManualCompactionRequest.Marshal(b, m, deterministic)
}
func (m *ManualCompactionRequest) XXX_Merge(src proto.Message) {
xxx_messageInfo_ManualCompactionRequest.Merge(m, src)
}
func (m *ManualCompactionRequest) XXX_Size() int {
return xxx_messageInfo_ManualCompactionRequest.Size(m)
}
func (m *ManualCompactionRequest) XXX_DiscardUnknown() {
xxx_messageInfo_ManualCompactionRequest.DiscardUnknown(m)
}
var xxx_messageInfo_ManualCompactionRequest proto.InternalMessageInfo
func (m *ManualCompactionRequest) GetCollectionID() int64 {
if m != nil {
return m.CollectionID
}
return 0
}
func (m *ManualCompactionRequest) GetTimetravel() uint64 {
if m != nil {
return m.Timetravel
}
return 0
}
type ManualCompactionResponse struct {
Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
CompactionID int64 `protobuf:"varint,2,opt,name=compactionID,proto3" json:"compactionID,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ManualCompactionResponse) Reset() { *m = ManualCompactionResponse{} }
func (m *ManualCompactionResponse) String() string { return proto.CompactTextString(m) }
func (*ManualCompactionResponse) ProtoMessage() {}
func (*ManualCompactionResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_02345ba45cc0e303, []int{68}
}
func (m *ManualCompactionResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ManualCompactionResponse.Unmarshal(m, b)
}
func (m *ManualCompactionResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ManualCompactionResponse.Marshal(b, m, deterministic)
}
func (m *ManualCompactionResponse) XXX_Merge(src proto.Message) {
xxx_messageInfo_ManualCompactionResponse.Merge(m, src)
}
func (m *ManualCompactionResponse) XXX_Size() int {
return xxx_messageInfo_ManualCompactionResponse.Size(m)
}
func (m *ManualCompactionResponse) XXX_DiscardUnknown() {
xxx_messageInfo_ManualCompactionResponse.DiscardUnknown(m)
}
var xxx_messageInfo_ManualCompactionResponse proto.InternalMessageInfo
func (m *ManualCompactionResponse) GetStatus() *commonpb.Status {
if m != nil {
return m.Status
}
return nil
}
func (m *ManualCompactionResponse) GetCompactionID() int64 {
if m != nil {
return m.CompactionID
}
return 0
}
type GetCompactionStateRequest struct {
CompactionID int64 `protobuf:"varint,1,opt,name=compactionID,proto3" json:"compactionID,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *GetCompactionStateRequest) Reset() { *m = GetCompactionStateRequest{} }
func (m *GetCompactionStateRequest) String() string { return proto.CompactTextString(m) }
func (*GetCompactionStateRequest) ProtoMessage() {}
func (*GetCompactionStateRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_02345ba45cc0e303, []int{69}
}
func (m *GetCompactionStateRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetCompactionStateRequest.Unmarshal(m, b)
}
func (m *GetCompactionStateRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GetCompactionStateRequest.Marshal(b, m, deterministic)
}
func (m *GetCompactionStateRequest) XXX_Merge(src proto.Message) {
xxx_messageInfo_GetCompactionStateRequest.Merge(m, src)
}
func (m *GetCompactionStateRequest) XXX_Size() int {
return xxx_messageInfo_GetCompactionStateRequest.Size(m)
}
func (m *GetCompactionStateRequest) XXX_DiscardUnknown() {
xxx_messageInfo_GetCompactionStateRequest.DiscardUnknown(m)
}
var xxx_messageInfo_GetCompactionStateRequest proto.InternalMessageInfo
func (m *GetCompactionStateRequest) GetCompactionID() int64 {
if m != nil {
return m.CompactionID
}
return 0
}
type GetCompactionStateResponse struct {
Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
State commonpb.CompactionState `protobuf:"varint,2,opt,name=state,proto3,enum=milvus.proto.common.CompactionState" json:"state,omitempty"`
ExecutingPlanNo int64 `protobuf:"varint,3,opt,name=executingPlanNo,proto3" json:"executingPlanNo,omitempty"`
TimeoutPlanNo int64 `protobuf:"varint,4,opt,name=timeoutPlanNo,proto3" json:"timeoutPlanNo,omitempty"`
CompletedPlanNo int64 `protobuf:"varint,5,opt,name=completedPlanNo,proto3" json:"completedPlanNo,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *GetCompactionStateResponse) Reset() { *m = GetCompactionStateResponse{} }
func (m *GetCompactionStateResponse) String() string { return proto.CompactTextString(m) }
func (*GetCompactionStateResponse) ProtoMessage() {}
func (*GetCompactionStateResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_02345ba45cc0e303, []int{70}
}
func (m *GetCompactionStateResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetCompactionStateResponse.Unmarshal(m, b)
}
func (m *GetCompactionStateResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GetCompactionStateResponse.Marshal(b, m, deterministic)
}
func (m *GetCompactionStateResponse) XXX_Merge(src proto.Message) {
xxx_messageInfo_GetCompactionStateResponse.Merge(m, src)
}
func (m *GetCompactionStateResponse) XXX_Size() int {
return xxx_messageInfo_GetCompactionStateResponse.Size(m)
}
func (m *GetCompactionStateResponse) XXX_DiscardUnknown() {
xxx_messageInfo_GetCompactionStateResponse.DiscardUnknown(m)
}
var xxx_messageInfo_GetCompactionStateResponse proto.InternalMessageInfo
func (m *GetCompactionStateResponse) GetStatus() *commonpb.Status {
if m != nil {
return m.Status
}
return nil
}
func (m *GetCompactionStateResponse) GetState() commonpb.CompactionState {
if m != nil {
return m.State
}
return commonpb.CompactionState_UndefiedState
}
func (m *GetCompactionStateResponse) GetExecutingPlanNo() int64 {
if m != nil {
return m.ExecutingPlanNo
}
return 0
}
func (m *GetCompactionStateResponse) GetTimeoutPlanNo() int64 {
if m != nil {
return m.TimeoutPlanNo
}
return 0
}
func (m *GetCompactionStateResponse) GetCompletedPlanNo() int64 {
if m != nil {
return m.CompletedPlanNo
}
return 0
}
type GetCompactionPlansRequest struct {
CompactionID int64 `protobuf:"varint,1,opt,name=compactionID,proto3" json:"compactionID,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *GetCompactionPlansRequest) Reset() { *m = GetCompactionPlansRequest{} }
func (m *GetCompactionPlansRequest) String() string { return proto.CompactTextString(m) }
func (*GetCompactionPlansRequest) ProtoMessage() {}
func (*GetCompactionPlansRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_02345ba45cc0e303, []int{71}
}
func (m *GetCompactionPlansRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetCompactionPlansRequest.Unmarshal(m, b)
}
func (m *GetCompactionPlansRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GetCompactionPlansRequest.Marshal(b, m, deterministic)
}
func (m *GetCompactionPlansRequest) XXX_Merge(src proto.Message) {
xxx_messageInfo_GetCompactionPlansRequest.Merge(m, src)
}
func (m *GetCompactionPlansRequest) XXX_Size() int {
return xxx_messageInfo_GetCompactionPlansRequest.Size(m)
}
func (m *GetCompactionPlansRequest) XXX_DiscardUnknown() {
xxx_messageInfo_GetCompactionPlansRequest.DiscardUnknown(m)
}
var xxx_messageInfo_GetCompactionPlansRequest proto.InternalMessageInfo
func (m *GetCompactionPlansRequest) GetCompactionID() int64 {
if m != nil {
return m.CompactionID
}
return 0
}
type GetCompactionPlansResponse struct {
Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
State commonpb.CompactionState `protobuf:"varint,2,opt,name=state,proto3,enum=milvus.proto.common.CompactionState" json:"state,omitempty"`
MergeInfos []*CompactionMergeInfo `protobuf:"bytes,3,rep,name=mergeInfos,proto3" json:"mergeInfos,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *GetCompactionPlansResponse) Reset() { *m = GetCompactionPlansResponse{} }
func (m *GetCompactionPlansResponse) String() string { return proto.CompactTextString(m) }
func (*GetCompactionPlansResponse) ProtoMessage() {}
func (*GetCompactionPlansResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_02345ba45cc0e303, []int{72}
}
func (m *GetCompactionPlansResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetCompactionPlansResponse.Unmarshal(m, b)
}
func (m *GetCompactionPlansResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GetCompactionPlansResponse.Marshal(b, m, deterministic)
}
func (m *GetCompactionPlansResponse) XXX_Merge(src proto.Message) {
xxx_messageInfo_GetCompactionPlansResponse.Merge(m, src)
}
func (m *GetCompactionPlansResponse) XXX_Size() int {
return xxx_messageInfo_GetCompactionPlansResponse.Size(m)
}
func (m *GetCompactionPlansResponse) XXX_DiscardUnknown() {
xxx_messageInfo_GetCompactionPlansResponse.DiscardUnknown(m)
}
var xxx_messageInfo_GetCompactionPlansResponse proto.InternalMessageInfo
func (m *GetCompactionPlansResponse) GetStatus() *commonpb.Status {
if m != nil {
return m.Status
}
return nil
}
func (m *GetCompactionPlansResponse) GetState() commonpb.CompactionState {
if m != nil {
return m.State
}
return commonpb.CompactionState_UndefiedState
}
func (m *GetCompactionPlansResponse) GetMergeInfos() []*CompactionMergeInfo {
if m != nil {
return m.MergeInfos
}
return nil
}
type CompactionMergeInfo struct {
Sources []int64 `protobuf:"varint,1,rep,packed,name=sources,proto3" json:"sources,omitempty"`
Target int64 `protobuf:"varint,2,opt,name=target,proto3" json:"target,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *CompactionMergeInfo) Reset() { *m = CompactionMergeInfo{} }
func (m *CompactionMergeInfo) String() string { return proto.CompactTextString(m) }
func (*CompactionMergeInfo) ProtoMessage() {}
func (*CompactionMergeInfo) Descriptor() ([]byte, []int) {
return fileDescriptor_02345ba45cc0e303, []int{73}
}
func (m *CompactionMergeInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CompactionMergeInfo.Unmarshal(m, b)
}
func (m *CompactionMergeInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CompactionMergeInfo.Marshal(b, m, deterministic)
}
func (m *CompactionMergeInfo) XXX_Merge(src proto.Message) {
xxx_messageInfo_CompactionMergeInfo.Merge(m, src)
}
func (m *CompactionMergeInfo) XXX_Size() int {
return xxx_messageInfo_CompactionMergeInfo.Size(m)
}
func (m *CompactionMergeInfo) XXX_DiscardUnknown() {
xxx_messageInfo_CompactionMergeInfo.DiscardUnknown(m)
}
var xxx_messageInfo_CompactionMergeInfo proto.InternalMessageInfo
func (m *CompactionMergeInfo) GetSources() []int64 {
if m != nil {
return m.Sources
}
return nil
}
func (m *CompactionMergeInfo) GetTarget() int64 {
if m != nil {
return m.Target
}
return 0
}
func init() {
proto.RegisterEnum("milvus.proto.milvus.ShowType", ShowType_name, ShowType_value)
proto.RegisterEnum("milvus.proto.milvus.PlaceholderType", PlaceholderType_name, PlaceholderType_value)
@ -4527,215 +4872,236 @@ func init() {
proto.RegisterType((*GetMetricsRequest)(nil), "milvus.proto.milvus.GetMetricsRequest")
proto.RegisterType((*GetMetricsResponse)(nil), "milvus.proto.milvus.GetMetricsResponse")
proto.RegisterType((*LoadBalanceRequest)(nil), "milvus.proto.milvus.LoadBalanceRequest")
proto.RegisterType((*ManualCompactionRequest)(nil), "milvus.proto.milvus.ManualCompactionRequest")
proto.RegisterType((*ManualCompactionResponse)(nil), "milvus.proto.milvus.ManualCompactionResponse")
proto.RegisterType((*GetCompactionStateRequest)(nil), "milvus.proto.milvus.GetCompactionStateRequest")
proto.RegisterType((*GetCompactionStateResponse)(nil), "milvus.proto.milvus.GetCompactionStateResponse")
proto.RegisterType((*GetCompactionPlansRequest)(nil), "milvus.proto.milvus.GetCompactionPlansRequest")
proto.RegisterType((*GetCompactionPlansResponse)(nil), "milvus.proto.milvus.GetCompactionPlansResponse")
proto.RegisterType((*CompactionMergeInfo)(nil), "milvus.proto.milvus.CompactionMergeInfo")
}
func init() { proto.RegisterFile("milvus.proto", fileDescriptor_02345ba45cc0e303) }
var fileDescriptor_02345ba45cc0e303 = []byte{
// 3241 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x5b, 0xcf, 0x6f, 0x1b, 0xc7,
0xf5, 0xd7, 0x92, 0xe2, 0xaf, 0x47, 0x52, 0xa2, 0x47, 0xb2, 0xcc, 0xd0, 0x76, 0x2c, 0x6f, 0xbe,
0x8e, 0x65, 0x3b, 0xb1, 0x63, 0x39, 0xf9, 0x26, 0xdf, 0xe4, 0xdb, 0x26, 0xb6, 0xd5, 0xd8, 0x42,
0x6c, 0x57, 0x59, 0x25, 0x01, 0xd2, 0xc0, 0x58, 0x8c, 0xb8, 0x63, 0x69, 0xe1, 0xe5, 0x2e, 0xbb,
0x33, 0xb4, 0xad, 0x9c, 0x0a, 0xa4, 0x2d, 0x50, 0x24, 0x4d, 0x50, 0xb4, 0x68, 0xd1, 0x43, 0x7b,
0x68, 0x9b, 0x43, 0x81, 0x1e, 0x9a, 0xa6, 0x68, 0x8b, 0x9e, 0x7a, 0xc8, 0xa1, 0x87, 0x02, 0xfd,
0x71, 0xed, 0xa5, 0xff, 0x40, 0xfe, 0x83, 0x1e, 0x8a, 0xf9, 0xb1, 0xcb, 0x5d, 0x72, 0x96, 0xa2,
0xcc, 0xb8, 0x92, 0x6e, 0xdc, 0x37, 0xef, 0xcd, 0xbc, 0x79, 0xf3, 0x99, 0x37, 0x6f, 0xde, 0x3c,
0x42, 0xad, 0xe3, 0x7a, 0xf7, 0x7a, 0xf4, 0x7c, 0x37, 0x0c, 0x58, 0x80, 0xe6, 0x92, 0x5f, 0xe7,
0xe5, 0x47, 0xab, 0xd6, 0x0e, 0x3a, 0x9d, 0xc0, 0x97, 0xc4, 0x56, 0x8d, 0xb6, 0xb7, 0x48, 0x07,
0xcb, 0x2f, 0xf3, 0xa7, 0x06, 0xa0, 0xab, 0x21, 0xc1, 0x8c, 0x5c, 0xf6, 0x5c, 0x4c, 0x2d, 0xf2,
0xf5, 0x1e, 0xa1, 0x0c, 0x3d, 0x03, 0xd3, 0x1b, 0x98, 0x92, 0xa6, 0xb1, 0x68, 0x2c, 0x55, 0x97,
0x8f, 0x9d, 0x4f, 0x75, 0xab, 0xba, 0xbb, 0x49, 0x37, 0xaf, 0x60, 0x4a, 0x2c, 0xc1, 0x89, 0x8e,
0x40, 0xc9, 0xd9, 0xb0, 0x7d, 0xdc, 0x21, 0xcd, 0xdc, 0xa2, 0xb1, 0x54, 0xb1, 0x8a, 0xce, 0xc6,
0x2d, 0xdc, 0x21, 0xe8, 0x34, 0xcc, 0xb6, 0x03, 0xcf, 0x23, 0x6d, 0xe6, 0x06, 0xbe, 0x64, 0xc8,
0x0b, 0x86, 0x99, 0x3e, 0x59, 0x30, 0xce, 0x43, 0x01, 0x73, 0x1d, 0x9a, 0xd3, 0xa2, 0x59, 0x7e,
0x98, 0x14, 0x1a, 0x2b, 0x61, 0xd0, 0x7d, 0x54, 0xda, 0xc5, 0x83, 0xe6, 0x93, 0x83, 0xfe, 0xc4,
0x80, 0x43, 0x97, 0x3d, 0x46, 0xc2, 0x7d, 0x6a, 0x94, 0xcf, 0x0c, 0x38, 0x22, 0x57, 0xed, 0x6a,
0xcc, 0xbe, 0x97, 0x5a, 0x2e, 0x40, 0x51, 0xa2, 0x4a, 0xa8, 0x59, 0xb3, 0xd4, 0x17, 0x3a, 0x0e,
0x40, 0xb7, 0x70, 0xe8, 0x50, 0xdb, 0xef, 0x75, 0x9a, 0x85, 0x45, 0x63, 0xa9, 0x60, 0x55, 0x24,
0xe5, 0x56, 0xaf, 0x63, 0xbe, 0x6f, 0xc0, 0x61, 0xbe, 0xb8, 0xfb, 0x62, 0x12, 0xe6, 0x2f, 0x0d,
0x98, 0xbf, 0x8e, 0xe9, 0xfe, 0xb0, 0xe8, 0x71, 0x00, 0xe6, 0x76, 0x88, 0x4d, 0x19, 0xee, 0x74,
0x85, 0x55, 0xa7, 0xad, 0x0a, 0xa7, 0xac, 0x73, 0x82, 0xf9, 0x36, 0xd4, 0xae, 0x04, 0x81, 0x67,
0x11, 0xda, 0x0d, 0x7c, 0x4a, 0xd0, 0x25, 0x28, 0x52, 0x86, 0x59, 0x8f, 0x2a, 0x25, 0x8f, 0x6a,
0x95, 0x5c, 0x17, 0x2c, 0x96, 0x62, 0xe5, 0xd8, 0xba, 0x87, 0xbd, 0x9e, 0xd4, 0xb1, 0x6c, 0xc9,
0x0f, 0xf3, 0x1d, 0x98, 0x59, 0x67, 0xa1, 0xeb, 0x6f, 0x7e, 0x81, 0x9d, 0x57, 0xa2, 0xce, 0xff,
0x61, 0xc0, 0x63, 0x2b, 0x84, 0xb6, 0x43, 0x77, 0x63, 0x9f, 0x40, 0xd7, 0x84, 0x5a, 0x9f, 0xb2,
0xba, 0x22, 0x4c, 0x9d, 0xb7, 0x52, 0xb4, 0x81, 0xc5, 0x28, 0x0c, 0x2e, 0xc6, 0x7b, 0xd3, 0xd0,
0xd2, 0x4d, 0x6a, 0x12, 0xf3, 0x7d, 0x29, 0xde, 0x51, 0x39, 0x21, 0x74, 0x2a, 0x2d, 0xa4, 0x7c,
0x78, 0x7f, 0xb4, 0x75, 0x41, 0x88, 0x37, 0xde, 0xe0, 0xac, 0xf2, 0x9a, 0x59, 0x2d, 0xc3, 0xe1,
0x7b, 0x6e, 0xc8, 0x7a, 0xd8, 0xb3, 0xdb, 0x5b, 0xd8, 0xf7, 0x89, 0x27, 0xec, 0xc4, 0x5d, 0x4d,
0x7e, 0xa9, 0x62, 0xcd, 0xa9, 0xc6, 0xab, 0xb2, 0x8d, 0x1b, 0x8b, 0xa2, 0x67, 0x61, 0xa1, 0xbb,
0xb5, 0x4d, 0xdd, 0xf6, 0x90, 0x50, 0x41, 0x08, 0xcd, 0x47, 0xad, 0x29, 0xa9, 0x73, 0x70, 0xa8,
0x2d, 0xbc, 0x95, 0x63, 0x73, 0xab, 0x49, 0x33, 0x16, 0x85, 0x19, 0x1b, 0xaa, 0xe1, 0x8d, 0x88,
0xce, 0xd5, 0x8a, 0x98, 0x7b, 0xac, 0x9d, 0x10, 0x28, 0x09, 0x81, 0x39, 0xd5, 0xf8, 0x26, 0x6b,
0xf7, 0x65, 0xd2, 0x7e, 0xa6, 0x3c, 0xe0, 0x67, 0x50, 0x13, 0x4a, 0xc2, 0x6f, 0x12, 0xda, 0xac,
0x08, 0x35, 0xa3, 0x4f, 0xb4, 0x0a, 0xb3, 0x94, 0xe1, 0x90, 0xd9, 0xdd, 0x80, 0xba, 0xdc, 0x2e,
0xb4, 0x09, 0x8b, 0xf9, 0xa5, 0xea, 0xf2, 0xa2, 0x76, 0x91, 0x5e, 0x23, 0xdb, 0x2b, 0x98, 0xe1,
0x35, 0xec, 0x86, 0xd6, 0x8c, 0x10, 0x5c, 0x8b, 0xe4, 0x84, 0x33, 0xbb, 0x11, 0x60, 0x67, 0x7f,
0x38, 0xb3, 0x0f, 0x0d, 0x68, 0x5a, 0xc4, 0x23, 0x98, 0xee, 0x8f, 0x7d, 0x66, 0xfe, 0xc0, 0x80,
0xc7, 0xaf, 0x11, 0x96, 0x40, 0x2c, 0xc3, 0xcc, 0xa5, 0xcc, 0x6d, 0xef, 0xe5, 0xf9, 0x6a, 0x7e,
0x64, 0xc0, 0x89, 0x4c, 0xb5, 0x26, 0xd9, 0xc0, 0xcf, 0x43, 0x81, 0xff, 0xa2, 0xcd, 0x9c, 0xc0,
0xd3, 0xc9, 0x2c, 0x3c, 0xbd, 0xc5, 0xfd, 0xa2, 0x00, 0x94, 0xe4, 0x37, 0xff, 0x65, 0xc0, 0xc2,
0xfa, 0x56, 0x70, 0xbf, 0xaf, 0xd2, 0xa3, 0x30, 0x50, 0xda, 0xa5, 0xe5, 0x07, 0x5c, 0x1a, 0xba,
0x08, 0xd3, 0x6c, 0xbb, 0x4b, 0x84, 0x37, 0x9c, 0x59, 0x3e, 0x7e, 0x5e, 0x13, 0x56, 0x9e, 0xe7,
0x4a, 0xbe, 0xb1, 0xdd, 0x25, 0x96, 0x60, 0x45, 0x67, 0xa0, 0x31, 0x60, 0xf2, 0xc8, 0x29, 0xcc,
0xa6, 0x6d, 0x4e, 0xcd, 0x3f, 0xe4, 0xe0, 0xc8, 0xd0, 0x14, 0x27, 0x31, 0xb6, 0x6e, 0xec, 0x9c,
0x76, 0x6c, 0x74, 0x0a, 0x12, 0x10, 0xb0, 0x5d, 0x87, 0x47, 0x7e, 0xf9, 0xa5, 0xbc, 0x55, 0x4f,
0xf8, 0x46, 0x87, 0xa2, 0xa7, 0x01, 0x0d, 0xb9, 0x2c, 0xe9, 0x19, 0xa7, 0xad, 0x43, 0x83, 0x3e,
0x4b, 0xf8, 0x45, 0xad, 0xd3, 0x92, 0x26, 0x98, 0xb6, 0xe6, 0x35, 0x5e, 0x8b, 0xa2, 0x8b, 0x30,
0xef, 0xfa, 0x37, 0x49, 0x27, 0x08, 0xb7, 0xed, 0x2e, 0x09, 0xdb, 0xc4, 0x67, 0x78, 0x93, 0xd0,
0x66, 0x51, 0x68, 0x34, 0x17, 0xb5, 0xad, 0xf5, 0x9b, 0xcc, 0x4f, 0x0d, 0x58, 0x90, 0x91, 0xdf,
0x1a, 0x0e, 0x99, 0xbb, 0xd7, 0xa7, 0xe7, 0x29, 0x98, 0xe9, 0x46, 0x7a, 0x48, 0x3e, 0x19, 0xa7,
0xd6, 0x63, 0xaa, 0xd8, 0x65, 0x9f, 0x18, 0x30, 0xcf, 0x03, 0xbd, 0x83, 0xa4, 0xf3, 0xaf, 0x0d,
0x98, 0xbb, 0x8e, 0xe9, 0x41, 0x52, 0xf9, 0xb7, 0xea, 0x08, 0x8a, 0x75, 0xde, 0xd3, 0xab, 0xcb,
0x69, 0x98, 0x4d, 0x2b, 0x1d, 0x45, 0x16, 0x33, 0x29, 0xad, 0xa9, 0xf9, 0xfb, 0xfe, 0x59, 0x75,
0xc0, 0x34, 0xff, 0xa3, 0x01, 0xc7, 0xaf, 0x11, 0x16, 0x6b, 0xbd, 0x2f, 0xce, 0xb4, 0x71, 0xd1,
0xf2, 0xa1, 0x3c, 0x91, 0xb5, 0xca, 0xef, 0xc9, 0xc9, 0xf7, 0x7e, 0x0e, 0x0e, 0xf3, 0x63, 0x61,
0x7f, 0x80, 0x60, 0x9c, 0x8b, 0x81, 0x06, 0x28, 0x05, 0x1d, 0x50, 0xe2, 0xf3, 0xb4, 0x38, 0xf6,
0x79, 0x6a, 0xfe, 0x26, 0x27, 0xe3, 0x80, 0xa4, 0x35, 0x26, 0x59, 0x16, 0x8d, 0xae, 0x39, 0xad,
0xae, 0x26, 0xd4, 0x62, 0xca, 0xea, 0x4a, 0x74, 0x3e, 0xa6, 0x68, 0xfb, 0xf6, 0x78, 0xfc, 0xc0,
0x80, 0x85, 0xe8, 0x2a, 0xb6, 0x4e, 0x36, 0x3b, 0xc4, 0x67, 0x0f, 0x8f, 0xa1, 0x41, 0x04, 0xe4,
0x34, 0x08, 0x38, 0x06, 0x15, 0x2a, 0xc7, 0x89, 0x6f, 0x59, 0x7d, 0x82, 0xf9, 0xb1, 0x01, 0x47,
0x86, 0xd4, 0x99, 0x64, 0x11, 0x9b, 0x50, 0x72, 0x7d, 0x87, 0x3c, 0x88, 0xb5, 0x89, 0x3e, 0x79,
0xcb, 0x46, 0xcf, 0xf5, 0x9c, 0x58, 0x8d, 0xe8, 0x13, 0x9d, 0x84, 0x1a, 0xf1, 0xf1, 0x86, 0x47,
0x6c, 0xc1, 0x2b, 0x80, 0x5c, 0xb6, 0xaa, 0x92, 0xb6, 0xca, 0x49, 0xe6, 0x77, 0x0d, 0x98, 0xe3,
0x58, 0x53, 0x3a, 0xd2, 0x47, 0x6b, 0xb3, 0x45, 0xa8, 0x26, 0xc0, 0xa4, 0xd4, 0x4d, 0x92, 0xcc,
0xbb, 0x30, 0x9f, 0x56, 0x67, 0x12, 0x9b, 0x3d, 0x0e, 0x10, 0xaf, 0x88, 0xc4, 0x7c, 0xde, 0x4a,
0x50, 0xcc, 0xcf, 0xe3, 0x14, 0xa8, 0x30, 0xc6, 0x1e, 0x67, 0x7d, 0xee, 0xb8, 0xc4, 0x73, 0x92,
0x5e, 0xbb, 0x22, 0x28, 0xa2, 0x79, 0x05, 0x6a, 0xe4, 0x01, 0x0b, 0xb1, 0xdd, 0xc5, 0x21, 0xee,
0xc8, 0xcd, 0x33, 0x96, 0x83, 0xad, 0x0a, 0xb1, 0x35, 0x21, 0x65, 0xfe, 0x99, 0x07, 0x63, 0x0a,
0x94, 0xfb, 0x7d, 0xc6, 0xc7, 0x01, 0x04, 0x68, 0x65, 0x73, 0x41, 0x36, 0x0b, 0x8a, 0x38, 0xc2,
0x3e, 0x36, 0xa0, 0x21, 0xa6, 0x20, 0xe7, 0xd3, 0xe5, 0xdd, 0x0e, 0xc8, 0x18, 0x03, 0x32, 0x23,
0xb6, 0xd0, 0xff, 0x41, 0x51, 0x19, 0x36, 0x3f, 0xae, 0x61, 0x95, 0xc0, 0x0e, 0xd3, 0x30, 0x7f,
0x66, 0xc0, 0xe1, 0x01, 0x93, 0x4f, 0x82, 0xe8, 0x37, 0x00, 0xc9, 0x19, 0x3a, 0xfd, 0x69, 0x47,
0xc7, 0xed, 0x29, 0xed, 0xd9, 0x32, 0x68, 0x24, 0xeb, 0x90, 0x3b, 0x40, 0xa1, 0xe6, 0xdf, 0x0c,
0x38, 0x76, 0x8d, 0x30, 0xc1, 0x7a, 0x85, 0xfb, 0x8e, 0xb5, 0x30, 0xd8, 0x0c, 0x09, 0xa5, 0x07,
0x17, 0x1f, 0x3f, 0x94, 0xf1, 0x99, 0x6e, 0x4a, 0x93, 0xd8, 0xff, 0x24, 0xd4, 0xc4, 0x18, 0xc4,
0xb1, 0xc3, 0xe0, 0x3e, 0x55, 0x38, 0xaa, 0x2a, 0x9a, 0x15, 0xdc, 0x17, 0x80, 0x60, 0x01, 0xc3,
0x9e, 0x64, 0x50, 0x07, 0x83, 0xa0, 0xf0, 0x66, 0xb1, 0x07, 0x23, 0xc5, 0x78, 0xe7, 0xe4, 0xe0,
0xda, 0xf8, 0x17, 0x06, 0x1c, 0x1e, 0x98, 0xca, 0x24, 0xb6, 0x7d, 0x4e, 0x46, 0x8f, 0x72, 0x32,
0x33, 0xcb, 0x27, 0xb4, 0x32, 0x89, 0xc1, 0x24, 0x37, 0x3a, 0x01, 0xd5, 0x3b, 0xd8, 0xf5, 0xec,
0x90, 0x60, 0x1a, 0xf8, 0x6a, 0xa2, 0xc0, 0x49, 0x96, 0xa0, 0x98, 0x9f, 0x19, 0xf2, 0x21, 0xe9,
0x80, 0x7b, 0xbc, 0x9f, 0xe7, 0xa0, 0xbe, 0xea, 0x53, 0x12, 0xb2, 0xfd, 0x7f, 0xc3, 0x40, 0x2f,
0x43, 0x55, 0x4c, 0x8c, 0xda, 0x0e, 0x66, 0x58, 0x1d, 0x57, 0x8f, 0x6b, 0x33, 0xd9, 0xaf, 0x72,
0xbe, 0x15, 0xcc, 0xb0, 0x25, 0xad, 0x43, 0xf9, 0x6f, 0x74, 0x14, 0x2a, 0x5b, 0x98, 0x6e, 0xd9,
0x77, 0xc9, 0xb6, 0x0c, 0xfb, 0xea, 0x56, 0x99, 0x13, 0x5e, 0x23, 0xdb, 0x14, 0x3d, 0x06, 0x65,
0xbf, 0xd7, 0x91, 0x1b, 0xac, 0xb4, 0x68, 0x2c, 0xd5, 0xad, 0x92, 0xdf, 0xeb, 0x88, 0xed, 0xf5,
0x97, 0x1c, 0xcc, 0xdc, 0xec, 0xf1, 0xfb, 0x8c, 0xc8, 0xc3, 0xf7, 0x3c, 0xf6, 0x70, 0x60, 0x3c,
0x0b, 0x79, 0x19, 0x33, 0x70, 0x89, 0xa6, 0x56, 0xf1, 0xd5, 0x15, 0x6a, 0x71, 0x26, 0x91, 0x83,
0xee, 0xb5, 0xdb, 0x2a, 0xc8, 0xca, 0x0b, 0x65, 0x2b, 0x9c, 0x22, 0x10, 0xc7, 0xa7, 0x42, 0xc2,
0x30, 0x0e, 0xc1, 0xc4, 0x54, 0x48, 0x18, 0xca, 0x46, 0x13, 0x6a, 0xb8, 0x7d, 0xd7, 0x0f, 0xee,
0x7b, 0xc4, 0xd9, 0x24, 0x8e, 0x58, 0xf6, 0xb2, 0x95, 0xa2, 0x49, 0x60, 0xf0, 0x85, 0xb7, 0xdb,
0x3e, 0x13, 0x17, 0x89, 0x3c, 0x07, 0x06, 0xa7, 0x5c, 0xf5, 0x19, 0x6f, 0x76, 0x88, 0x47, 0x18,
0x11, 0xcd, 0x25, 0xd9, 0x2c, 0x29, 0xaa, 0xb9, 0xd7, 0x8d, 0xa5, 0xcb, 0xb2, 0x59, 0x52, 0x78,
0xf3, 0x31, 0xa8, 0xf4, 0x13, 0xed, 0x95, 0x7e, 0x36, 0x50, 0x10, 0xcc, 0x7f, 0x1a, 0x50, 0x5f,
0x11, 0x5d, 0x1d, 0x00, 0xd0, 0x21, 0x98, 0x26, 0x0f, 0xba, 0xa1, 0xda, 0x3a, 0xe2, 0xf7, 0x48,
0x1c, 0x99, 0xf7, 0xa0, 0xb1, 0xe6, 0xe1, 0x36, 0xd9, 0x0a, 0x3c, 0x87, 0x84, 0xe2, 0x6c, 0x47,
0x0d, 0xc8, 0x33, 0xbc, 0xa9, 0x82, 0x07, 0xfe, 0x13, 0xbd, 0xa0, 0x6e, 0x70, 0xd2, 0x2d, 0xfd,
0x8f, 0xf6, 0x94, 0x4d, 0x74, 0x93, 0x48, 0x8c, 0x2e, 0x40, 0x51, 0x3c, 0x7e, 0xc9, 0xb0, 0xa2,
0x66, 0xa9, 0x2f, 0xf3, 0x76, 0x6a, 0xdc, 0x6b, 0x61, 0xd0, 0xeb, 0xa2, 0x55, 0xa8, 0x75, 0xfb,
0x34, 0x8e, 0xd5, 0xec, 0x33, 0x7d, 0x50, 0x69, 0x2b, 0x25, 0x6a, 0x7e, 0x9e, 0x87, 0xfa, 0x3a,
0xc1, 0x61, 0x7b, 0xeb, 0x20, 0xa4, 0x52, 0xb8, 0xc5, 0x1d, 0xea, 0xa9, 0x55, 0xe3, 0x3f, 0xd1,
0x39, 0x38, 0x94, 0x98, 0x90, 0xbd, 0xc9, 0x0d, 0x24, 0x70, 0x5f, 0xb3, 0x1a, 0xdd, 0x41, 0xc3,
0x3d, 0x0f, 0x65, 0x87, 0x7a, 0xb6, 0x58, 0xa2, 0x92, 0x58, 0x22, 0xfd, 0xfc, 0x56, 0xa8, 0x27,
0x96, 0xa6, 0xe4, 0xc8, 0x1f, 0xe8, 0x09, 0xa8, 0x07, 0x3d, 0xd6, 0xed, 0x31, 0x5b, 0xfa, 0x9d,
0x66, 0x59, 0xa8, 0x57, 0x93, 0x44, 0xe1, 0x96, 0x28, 0x7a, 0x15, 0xea, 0x54, 0x98, 0x32, 0x8a,
0xbc, 0x2b, 0xe3, 0x06, 0x88, 0x35, 0x29, 0x27, 0x43, 0x6f, 0x74, 0x06, 0x1a, 0x2c, 0xc4, 0xf7,
0x88, 0x97, 0x78, 0xd6, 0x02, 0xb1, 0xdb, 0x66, 0x25, 0xbd, 0xff, 0xa4, 0x75, 0x01, 0xe6, 0x36,
0x7b, 0x38, 0xc4, 0x3e, 0x23, 0x24, 0xc1, 0x5d, 0x15, 0xdc, 0x28, 0x6e, 0x8a, 0x05, 0xcc, 0xd7,
0x60, 0xfa, 0xba, 0xcb, 0x84, 0x21, 0xb9, 0xcf, 0x32, 0xc4, 0x3d, 0x47, 0x78, 0xa6, 0xc7, 0xa0,
0x1c, 0x06, 0xf7, 0xa5, 0x0f, 0xce, 0x09, 0x08, 0x96, 0xc2, 0xe0, 0xbe, 0x70, 0xb0, 0xe2, 0xe1,
0x3e, 0x08, 0x15, 0x36, 0x73, 0x96, 0xfa, 0x32, 0xbf, 0x65, 0xf4, 0xc1, 0xc3, 0xdd, 0x27, 0x7d,
0x38, 0xff, 0xf9, 0x32, 0x94, 0x42, 0x29, 0x3f, 0xf2, 0x19, 0x33, 0x39, 0x92, 0x38, 0x03, 0x22,
0x29, 0xf3, 0x9b, 0x06, 0xd4, 0x5e, 0xf5, 0x7a, 0xf4, 0x51, 0x60, 0x58, 0xf7, 0x68, 0x90, 0xd7,
0x3f, 0x58, 0x7c, 0x2f, 0x07, 0x75, 0xa5, 0xc6, 0x24, 0xb1, 0x4d, 0xa6, 0x2a, 0xeb, 0x50, 0xe5,
0x43, 0xda, 0x94, 0x6c, 0x46, 0x19, 0x97, 0xea, 0xf2, 0xb2, 0x76, 0xd7, 0xa7, 0xd4, 0x10, 0x0f,
0xc0, 0xeb, 0x42, 0xe8, 0x2b, 0x3e, 0x0b, 0xb7, 0x2d, 0x68, 0xc7, 0x84, 0xd6, 0x6d, 0x98, 0x1d,
0x68, 0xe6, 0xd8, 0xb8, 0x4b, 0xb6, 0x23, 0xb7, 0x76, 0x97, 0x6c, 0xa3, 0x67, 0x93, 0xcf, 0xf4,
0x59, 0x87, 0xf3, 0x8d, 0xc0, 0xdf, 0xbc, 0x1c, 0x86, 0x78, 0x5b, 0x3d, 0xe3, 0xbf, 0x98, 0x7b,
0xc1, 0x30, 0xff, 0x94, 0x83, 0xda, 0xeb, 0x3d, 0x12, 0x6e, 0xef, 0xa5, 0x7b, 0x89, 0x9c, 0xfd,
0x74, 0xc2, 0xd9, 0x0f, 0xed, 0xe8, 0x82, 0x66, 0x47, 0x6b, 0xfc, 0x52, 0x51, 0xeb, 0x97, 0x74,
0x5b, 0xb6, 0xb4, 0xab, 0x2d, 0x5b, 0xce, 0xdc, 0xb2, 0x1c, 0xdd, 0xca, 0x84, 0x13, 0x6d, 0xb2,
0x54, 0x94, 0x95, 0xdb, 0x6d, 0x94, 0x65, 0x7e, 0x62, 0x40, 0xe5, 0x2d, 0xd2, 0x66, 0x41, 0xc8,
0xbd, 0x85, 0xc6, 0xf6, 0xc6, 0x18, 0x81, 0x6c, 0x6e, 0x30, 0x90, 0xbd, 0x04, 0x65, 0xd7, 0xb1,
0x31, 0x87, 0x8d, 0x58, 0xbc, 0x51, 0x01, 0x54, 0xc9, 0x75, 0x04, 0xbe, 0xc6, 0xcf, 0xbc, 0xff,
0xc8, 0x80, 0x9a, 0xd4, 0x99, 0x4a, 0xc9, 0x97, 0x12, 0xc3, 0x19, 0x3a, 0x2c, 0xab, 0x8f, 0x78,
0xa2, 0xd7, 0xa7, 0xfa, 0xc3, 0x5e, 0x06, 0xe0, 0xb6, 0x53, 0xe2, 0x72, 0x2b, 0x2c, 0x6a, 0xb5,
0x95, 0xe2, 0xc2, 0x8e, 0xd7, 0xa7, 0xac, 0x0a, 0x97, 0x12, 0x5d, 0x5c, 0x29, 0x41, 0x41, 0x48,
0x9b, 0xff, 0x36, 0x60, 0xee, 0x2a, 0xf6, 0xda, 0x2b, 0x2e, 0x65, 0xd8, 0x6f, 0x4f, 0x10, 0x32,
0xbd, 0x08, 0xa5, 0xa0, 0x6b, 0x7b, 0xe4, 0x0e, 0x53, 0x2a, 0x9d, 0x1c, 0x31, 0x23, 0x69, 0x06,
0xab, 0x18, 0x74, 0x6f, 0x90, 0x3b, 0x0c, 0xfd, 0x3f, 0x94, 0x83, 0xae, 0x1d, 0xba, 0x9b, 0x5b,
0x4c, 0x59, 0x7f, 0x0c, 0xe1, 0x52, 0xd0, 0xb5, 0xb8, 0x44, 0x22, 0x13, 0x32, 0xbd, 0xcb, 0x4c,
0x88, 0xf9, 0xf7, 0xa1, 0xe9, 0x4f, 0x00, 0xed, 0x17, 0xa1, 0xec, 0xfa, 0xcc, 0x76, 0x5c, 0x1a,
0x99, 0xe0, 0xb8, 0x1e, 0x43, 0x3e, 0x13, 0x33, 0x10, 0x6b, 0xea, 0x33, 0x3e, 0x36, 0x7a, 0x05,
0xe0, 0x8e, 0x17, 0x60, 0x25, 0x2d, 0x6d, 0x70, 0x42, 0xbf, 0x2b, 0x38, 0x5b, 0x24, 0x5f, 0x11,
0x42, 0xbc, 0x87, 0xfe, 0x92, 0xfe, 0xd5, 0x80, 0xc3, 0x6b, 0x24, 0xa4, 0x2e, 0x65, 0xc4, 0x67,
0x2a, 0x2b, 0xb9, 0xea, 0xdf, 0x09, 0xd2, 0xe9, 0x5f, 0x63, 0x20, 0xfd, 0xfb, 0xc5, 0x24, 0x43,
0x53, 0xf7, 0x1c, 0xf9, 0x08, 0x11, 0xdd, 0x73, 0xa2, 0xa7, 0x16, 0x79, 0x4f, 0x9c, 0xc9, 0x58,
0x26, 0xa5, 0x6f, 0xf2, 0xba, 0x6c, 0x7e, 0x5f, 0x96, 0x3d, 0x68, 0x27, 0xf5, 0xf0, 0x80, 0x5d,
0x00, 0xe5, 0xc0, 0x07, 0xdc, 0xf9, 0x93, 0x30, 0xe0, 0x3b, 0x32, 0x8a, 0x31, 0x7e, 0x6c, 0xc0,
0x62, 0xb6, 0x56, 0x93, 0x9c, 0xbc, 0xaf, 0x40, 0xc1, 0xf5, 0xef, 0x04, 0x51, 0x92, 0xec, 0xac,
0x3e, 0xa0, 0xd6, 0x8e, 0x2b, 0x05, 0xcd, 0xdf, 0xe5, 0xa0, 0x21, 0x7c, 0xf5, 0x1e, 0x2c, 0x7f,
0x87, 0x74, 0x6c, 0xea, 0xbe, 0x4b, 0xa2, 0xe5, 0xef, 0x90, 0xce, 0xba, 0xfb, 0x2e, 0x49, 0x21,
0xa3, 0x90, 0x46, 0x46, 0x3a, 0x8d, 0x50, 0x1c, 0x91, 0x04, 0x2d, 0xa5, 0x93, 0xa0, 0x0b, 0x50,
0xf4, 0x03, 0x87, 0xac, 0xae, 0xa8, 0x4b, 0xa2, 0xfa, 0xea, 0x43, 0xad, 0xb2, 0x4b, 0xa8, 0x7d,
0x68, 0x40, 0xeb, 0x1a, 0x61, 0x83, 0xb6, 0xdb, 0x3b, 0x94, 0x7d, 0x64, 0xc0, 0x51, 0xad, 0x42,
0x93, 0x00, 0xec, 0xa5, 0x34, 0xc0, 0xf4, 0x37, 0xb6, 0xa1, 0x21, 0x15, 0xb6, 0x2e, 0x42, 0x6d,
0xa5, 0xd7, 0xe9, 0xc4, 0x91, 0xd4, 0x49, 0xa8, 0x85, 0xf2, 0xa7, 0xbc, 0xd0, 0xc8, 0xf3, 0xb7,
0xaa, 0x68, 0xfc, 0xda, 0x62, 0x9e, 0x83, 0xba, 0x12, 0x51, 0x5a, 0xb7, 0xa0, 0x1c, 0xaa, 0xdf,
0x8a, 0x3f, 0xfe, 0x36, 0x0f, 0xc3, 0x9c, 0x45, 0x36, 0x39, 0xb4, 0xc3, 0x1b, 0xae, 0x7f, 0x57,
0x0d, 0x63, 0xbe, 0x67, 0xc0, 0x7c, 0x9a, 0xae, 0xfa, 0xfa, 0x5f, 0x28, 0x61, 0xc7, 0x09, 0x09,
0xa5, 0x23, 0x97, 0xe5, 0xb2, 0xe4, 0xb1, 0x22, 0xe6, 0x84, 0xe5, 0x72, 0x63, 0x5b, 0xce, 0xb4,
0xe1, 0xd0, 0x35, 0xc2, 0x6e, 0x12, 0x16, 0x4e, 0xf4, 0x6c, 0xde, 0xe4, 0x57, 0x0d, 0x21, 0xac,
0x60, 0x11, 0x7d, 0x9a, 0x1f, 0x18, 0x80, 0x92, 0x23, 0x4c, 0xb2, 0xcc, 0x49, 0x2b, 0xe7, 0xd2,
0x56, 0x96, 0x95, 0x45, 0x9d, 0x6e, 0xe0, 0x13, 0x9f, 0x25, 0x63, 0xd6, 0x7a, 0x4c, 0x15, 0xf0,
0xfb, 0xd4, 0x00, 0x74, 0x23, 0xc0, 0xce, 0x15, 0xec, 0x4d, 0x16, 0x1e, 0x1c, 0x07, 0xa0, 0x61,
0xdb, 0x56, 0xbb, 0x35, 0xa7, 0xbc, 0x4f, 0xd8, 0xbe, 0x25, 0x37, 0xec, 0x09, 0xa8, 0x3a, 0x94,
0xa9, 0xe6, 0xe8, 0x15, 0x17, 0x1c, 0xca, 0x64, 0xbb, 0xa8, 0xca, 0xa4, 0x04, 0x7b, 0xc4, 0xb1,
0x13, 0xcf, 0x63, 0xd3, 0x82, 0xad, 0x21, 0x1b, 0xd6, 0x63, 0xfa, 0xd9, 0x93, 0x50, 0x8e, 0xde,
0xa7, 0x51, 0x09, 0xf2, 0x97, 0x3d, 0xaf, 0x31, 0x85, 0x6a, 0x50, 0x5e, 0x55, 0x8f, 0xb0, 0x0d,
0xe3, 0xec, 0x97, 0x61, 0x76, 0x20, 0x01, 0x82, 0xca, 0x30, 0x7d, 0x2b, 0xf0, 0x49, 0x63, 0x0a,
0x35, 0xa0, 0x76, 0xc5, 0xf5, 0x71, 0xb8, 0x2d, 0x03, 0x8e, 0x86, 0x83, 0x66, 0xa1, 0x2a, 0x0e,
0x5e, 0x45, 0x20, 0xcb, 0xbf, 0x3a, 0x0a, 0xf5, 0x9b, 0x62, 0xd6, 0xeb, 0x24, 0xbc, 0xe7, 0xb6,
0x09, 0xb2, 0xa1, 0x31, 0x58, 0xe5, 0x8e, 0x9e, 0xd2, 0xee, 0xac, 0x8c, 0x62, 0xf8, 0xd6, 0xa8,
0x45, 0x35, 0xa7, 0xd0, 0x3b, 0x30, 0x93, 0xae, 0x3f, 0x47, 0xfa, 0x93, 0x41, 0x5b, 0xa4, 0xbe,
0x53, 0xe7, 0x36, 0xd4, 0x53, 0xe5, 0xe4, 0xe8, 0x8c, 0xb6, 0x6f, 0x5d, 0xc9, 0x79, 0x4b, 0x1f,
0xac, 0x25, 0x4b, 0xbe, 0xa5, 0xf6, 0xe9, 0x82, 0xd3, 0x0c, 0xed, 0xb5, 0x55, 0xa9, 0x3b, 0x69,
0x8f, 0xe1, 0xd0, 0x50, 0xfd, 0x28, 0x7a, 0x5a, 0xdb, 0x7f, 0x56, 0x9d, 0xe9, 0x4e, 0x43, 0xdc,
0x07, 0x34, 0x5c, 0x36, 0x8d, 0xce, 0xeb, 0x57, 0x20, 0xab, 0x68, 0xbc, 0x75, 0x61, 0x6c, 0xfe,
0xd8, 0x70, 0xdf, 0x36, 0xe0, 0x48, 0x46, 0xd1, 0x27, 0xba, 0xa4, 0xed, 0x6e, 0x74, 0xe5, 0x6a,
0xeb, 0xd9, 0xdd, 0x09, 0xc5, 0x8a, 0xf8, 0x30, 0x3b, 0x50, 0x07, 0x89, 0xce, 0x65, 0xd6, 0x86,
0x0c, 0x17, 0x84, 0xb6, 0x9e, 0x1a, 0x8f, 0x39, 0x1e, 0xef, 0x36, 0xcc, 0x0e, 0x14, 0x0f, 0x66,
0x8c, 0xa7, 0x2f, 0x31, 0xdc, 0x69, 0x41, 0xdf, 0x86, 0x7a, 0xaa, 0xca, 0x2f, 0x03, 0xf1, 0xba,
0x4a, 0xc0, 0x9d, 0xba, 0xbe, 0x0d, 0xb5, 0x64, 0x31, 0x1e, 0x5a, 0xca, 0xda, 0x4b, 0x43, 0x1d,
0xef, 0x66, 0x2b, 0xf5, 0x6b, 0x6d, 0x46, 0x6c, 0xa5, 0xa1, 0xf2, 0xa4, 0xf1, 0xb7, 0x52, 0xa2,
0xff, 0x91, 0x5b, 0x69, 0xd7, 0x43, 0xbc, 0x67, 0xc0, 0x82, 0xbe, 0x96, 0x0b, 0x2d, 0x67, 0x61,
0x33, 0xbb, 0x6a, 0xad, 0x75, 0x69, 0x57, 0x32, 0xb1, 0x15, 0xef, 0xc2, 0x4c, 0xba, 0x62, 0x29,
0xc3, 0x8a, 0xda, 0x22, 0xaf, 0xd6, 0xb9, 0xb1, 0x78, 0xe3, 0xc1, 0xde, 0x84, 0x6a, 0xe2, 0x8f,
0x6b, 0xe8, 0xf4, 0x08, 0x1c, 0x27, 0xff, 0xc5, 0xb5, 0x93, 0x25, 0x5f, 0x87, 0x4a, 0xfc, 0x7f,
0x33, 0x74, 0x2a, 0x13, 0xbf, 0xbb, 0xe9, 0x72, 0x1d, 0xa0, 0xff, 0x67, 0x32, 0xf4, 0xa4, 0xb6,
0xcf, 0xa1, 0x7f, 0x9b, 0xed, 0xd4, 0x69, 0x3c, 0x7d, 0xf9, 0x82, 0x34, 0x6a, 0xfa, 0xc9, 0x27,
0xcf, 0x9d, 0xba, 0xdd, 0x82, 0x7a, 0xaa, 0x50, 0x21, 0x6b, 0x0b, 0x6b, 0xea, 0x47, 0x5a, 0x67,
0xc7, 0x61, 0x8d, 0xd7, 0x6f, 0x0b, 0xea, 0xa9, 0x67, 0xe3, 0x8c, 0x91, 0x74, 0xaf, 0xe4, 0x19,
0x23, 0x69, 0x5f, 0xa1, 0xcd, 0x29, 0xf4, 0x8d, 0xc4, 0x0b, 0x75, 0xaa, 0x0a, 0x00, 0x5d, 0x1c,
0xd9, 0x8f, 0xae, 0x08, 0xa2, 0xb5, 0xbc, 0x1b, 0x91, 0x58, 0x05, 0x85, 0x2a, 0x69, 0xd2, 0x6c,
0x54, 0xed, 0x66, 0xa5, 0xd6, 0xa1, 0x28, 0x1f, 0x82, 0x91, 0x99, 0x51, 0xf2, 0x91, 0x78, 0x25,
0x6e, 0x3d, 0xa1, 0xe5, 0x49, 0xbf, 0x91, 0xca, 0x4e, 0xe5, 0x43, 0x5f, 0x46, 0xa7, 0xa9, 0x57,
0xc0, 0x71, 0x3b, 0xb5, 0xa0, 0x28, 0x33, 0xfc, 0x19, 0x9d, 0xa6, 0x5e, 0xa9, 0x5a, 0xa3, 0x79,
0xe4, 0xb3, 0xc0, 0x14, 0x5a, 0x83, 0x82, 0xc8, 0x84, 0xa3, 0x93, 0xa3, 0xb2, 0xe4, 0xa3, 0x7a,
0x4c, 0x25, 0xd2, 0xcd, 0x29, 0xf4, 0x55, 0x28, 0x88, 0xfb, 0x59, 0x46, 0x8f, 0xc9, 0x54, 0x77,
0x6b, 0x24, 0x4b, 0xa4, 0xa2, 0x03, 0xb5, 0x64, 0x22, 0x2c, 0xe3, 0xc8, 0xd2, 0xa4, 0x0a, 0x5b,
0xe3, 0x70, 0x46, 0xa3, 0x7c, 0xc7, 0x80, 0x66, 0x56, 0xce, 0x04, 0x65, 0xc6, 0x25, 0xa3, 0x12,
0x3f, 0xad, 0xe7, 0x76, 0x29, 0x15, 0x9b, 0xf0, 0x5d, 0x98, 0xd3, 0x5c, 0xac, 0xd1, 0x85, 0xac,
0xfe, 0x32, 0x72, 0x02, 0xad, 0x67, 0xc6, 0x17, 0x88, 0xc7, 0x5e, 0x83, 0x82, 0xb8, 0x10, 0x67,
0x2c, 0x5f, 0xf2, 0x7e, 0x9d, 0x01, 0x88, 0xd4, 0x7d, 0xda, 0x9c, 0x42, 0x04, 0x6a, 0xc9, 0xdb,
0x71, 0xc6, 0xfa, 0x69, 0x2e, 0xd6, 0xad, 0x33, 0x63, 0x70, 0xc6, 0xc3, 0xd8, 0x00, 0xfd, 0xdb,
0x69, 0xc6, 0xe9, 0x30, 0x74, 0x41, 0x6e, 0x9d, 0xde, 0x91, 0x2f, 0x79, 0x50, 0x26, 0xee, 0x9b,
0x19, 0x27, 0xc5, 0xf0, 0x8d, 0x74, 0x07, 0xff, 0xb3, 0xdc, 0x83, 0xda, 0x5a, 0x18, 0x3c, 0xd8,
0x8e, 0x2e, 0x6b, 0xff, 0x1d, 0x73, 0x5d, 0x79, 0xee, 0x6b, 0x97, 0x36, 0x5d, 0xb6, 0xd5, 0xdb,
0xe0, 0x0a, 0x5d, 0x90, 0xbc, 0x4f, 0xbb, 0x81, 0xfa, 0x75, 0xc1, 0xf5, 0x19, 0x09, 0x7d, 0xec,
0x5d, 0x10, 0x7d, 0x29, 0x6a, 0x77, 0x63, 0xa3, 0x28, 0xbe, 0x2f, 0xfd, 0x27, 0x00, 0x00, 0xff,
0xff, 0x54, 0x59, 0x31, 0x8a, 0x2f, 0x3f, 0x00, 0x00,
// 3471 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x1b, 0x4d, 0x6f, 0x1b, 0xc7,
0x55, 0x4b, 0x4a, 0x22, 0xf9, 0x44, 0x4a, 0xf4, 0x48, 0x96, 0x69, 0xc6, 0xb2, 0xe5, 0x4d, 0x1c,
0xcb, 0x76, 0x6c, 0xc7, 0x72, 0xd2, 0xa4, 0x4e, 0xdb, 0xc4, 0xb6, 0x1a, 0x5b, 0x88, 0xed, 0x2a,
0xab, 0x24, 0x40, 0x1a, 0x18, 0xc4, 0x88, 0x3b, 0xa6, 0x16, 0x5e, 0xee, 0x32, 0x3b, 0x43, 0xdb,
0xca, 0xa9, 0x40, 0xfa, 0x81, 0x22, 0x69, 0x82, 0xa2, 0x45, 0x3f, 0x0e, 0xed, 0xa1, 0x6d, 0x0e,
0xbd, 0x35, 0x4d, 0xd1, 0x16, 0x3d, 0xf5, 0x90, 0x43, 0x0f, 0x05, 0xfa, 0x71, 0xe9, 0xa1, 0x97,
0xfe, 0x81, 0xfc, 0x83, 0x1e, 0x8a, 0xf9, 0xd8, 0xe5, 0xee, 0x72, 0x96, 0xa2, 0xcc, 0xb8, 0x92,
0x6e, 0x3b, 0x6f, 0xde, 0x7b, 0xf3, 0xe6, 0xcd, 0x9b, 0x37, 0x6f, 0xde, 0xbc, 0x85, 0x72, 0xdb,
0x71, 0xef, 0x75, 0xe9, 0xb9, 0x4e, 0xe0, 0x33, 0x1f, 0xcd, 0xc6, 0x5b, 0xe7, 0x64, 0xa3, 0x5e,
0x6e, 0xfa, 0xed, 0xb6, 0xef, 0x49, 0x60, 0xbd, 0x4c, 0x9b, 0x9b, 0xa4, 0x8d, 0x65, 0xcb, 0xfc,
0xb9, 0x01, 0xe8, 0x6a, 0x40, 0x30, 0x23, 0x97, 0x5d, 0x07, 0x53, 0x8b, 0xbc, 0xdd, 0x25, 0x94,
0xa1, 0xa7, 0x61, 0x7c, 0x03, 0x53, 0x52, 0x33, 0x16, 0x8d, 0xa5, 0xa9, 0xe5, 0x23, 0xe7, 0x12,
0x6c, 0x15, 0xbb, 0x9b, 0xb4, 0x75, 0x05, 0x53, 0x62, 0x09, 0x4c, 0x74, 0x08, 0x0a, 0xf6, 0x46,
0xc3, 0xc3, 0x6d, 0x52, 0xcb, 0x2d, 0x1a, 0x4b, 0x25, 0x6b, 0xd2, 0xde, 0xb8, 0x85, 0xdb, 0x04,
0x9d, 0x84, 0x99, 0xa6, 0xef, 0xba, 0xa4, 0xc9, 0x1c, 0xdf, 0x93, 0x08, 0x79, 0x81, 0x30, 0xdd,
0x03, 0x0b, 0xc4, 0x39, 0x98, 0xc0, 0x5c, 0x86, 0xda, 0xb8, 0xe8, 0x96, 0x0d, 0x93, 0x42, 0x75,
0x25, 0xf0, 0x3b, 0x8f, 0x4a, 0xba, 0x68, 0xd0, 0x7c, 0x7c, 0xd0, 0x9f, 0x19, 0x70, 0xe0, 0xb2,
0xcb, 0x48, 0xb0, 0x47, 0x95, 0xf2, 0xa9, 0x01, 0x87, 0xe4, 0xaa, 0x5d, 0x8d, 0xd0, 0x77, 0x53,
0xca, 0x79, 0x98, 0x94, 0x56, 0x25, 0xc4, 0x2c, 0x5b, 0xaa, 0x85, 0x16, 0x00, 0xe8, 0x26, 0x0e,
0x6c, 0xda, 0xf0, 0xba, 0xed, 0xda, 0xc4, 0xa2, 0xb1, 0x34, 0x61, 0x95, 0x24, 0xe4, 0x56, 0xb7,
0x6d, 0xbe, 0x67, 0xc0, 0x41, 0xbe, 0xb8, 0x7b, 0x62, 0x12, 0xe6, 0xaf, 0x0d, 0x98, 0xbb, 0x8e,
0xe9, 0xde, 0xd0, 0xe8, 0x02, 0x00, 0x73, 0xda, 0xa4, 0x41, 0x19, 0x6e, 0x77, 0x84, 0x56, 0xc7,
0xad, 0x12, 0x87, 0xac, 0x73, 0x80, 0xf9, 0x26, 0x94, 0xaf, 0xf8, 0xbe, 0x6b, 0x11, 0xda, 0xf1,
0x3d, 0x4a, 0xd0, 0x45, 0x98, 0xa4, 0x0c, 0xb3, 0x2e, 0x55, 0x42, 0x3e, 0xa6, 0x15, 0x72, 0x5d,
0xa0, 0x58, 0x0a, 0x95, 0xdb, 0xd6, 0x3d, 0xec, 0x76, 0xa5, 0x8c, 0x45, 0x4b, 0x36, 0xcc, 0xb7,
0x60, 0x7a, 0x9d, 0x05, 0x8e, 0xd7, 0xfa, 0x1c, 0x99, 0x97, 0x42, 0xe6, 0xff, 0x34, 0xe0, 0xf0,
0x0a, 0xa1, 0xcd, 0xc0, 0xd9, 0xd8, 0x23, 0xa6, 0x6b, 0x42, 0xb9, 0x07, 0x59, 0x5d, 0x11, 0xaa,
0xce, 0x5b, 0x09, 0x58, 0x6a, 0x31, 0x26, 0xd2, 0x8b, 0xf1, 0xee, 0x38, 0xd4, 0x75, 0x93, 0x1a,
0x45, 0x7d, 0x5f, 0x8e, 0x76, 0x54, 0x4e, 0x10, 0x9d, 0x48, 0x12, 0x29, 0x1f, 0xde, 0x1b, 0x6d,
0x5d, 0x00, 0xa2, 0x8d, 0x97, 0x9e, 0x55, 0x5e, 0x33, 0xab, 0x65, 0x38, 0x78, 0xcf, 0x09, 0x58,
0x17, 0xbb, 0x8d, 0xe6, 0x26, 0xf6, 0x3c, 0xe2, 0x0a, 0x3d, 0x71, 0x57, 0x93, 0x5f, 0x2a, 0x59,
0xb3, 0xaa, 0xf3, 0xaa, 0xec, 0xe3, 0xca, 0xa2, 0xe8, 0x19, 0x98, 0xef, 0x6c, 0x6e, 0x51, 0xa7,
0xd9, 0x47, 0x34, 0x21, 0x88, 0xe6, 0xc2, 0xde, 0x04, 0xd5, 0x19, 0x38, 0xd0, 0x14, 0xde, 0xca,
0x6e, 0x70, 0xad, 0x49, 0x35, 0x4e, 0x0a, 0x35, 0x56, 0x55, 0xc7, 0x6b, 0x21, 0x9c, 0x8b, 0x15,
0x22, 0x77, 0x59, 0x33, 0x46, 0x50, 0x10, 0x04, 0xb3, 0xaa, 0xf3, 0x75, 0xd6, 0xec, 0xd1, 0x24,
0xfd, 0x4c, 0x31, 0xe5, 0x67, 0x50, 0x0d, 0x0a, 0xc2, 0x6f, 0x12, 0x5a, 0x2b, 0x09, 0x31, 0xc3,
0x26, 0x5a, 0x85, 0x19, 0xca, 0x70, 0xc0, 0x1a, 0x1d, 0x9f, 0x3a, 0x5c, 0x2f, 0xb4, 0x06, 0x8b,
0xf9, 0xa5, 0xa9, 0xe5, 0x45, 0xed, 0x22, 0xbd, 0x42, 0xb6, 0x56, 0x30, 0xc3, 0x6b, 0xd8, 0x09,
0xac, 0x69, 0x41, 0xb8, 0x16, 0xd2, 0x09, 0x67, 0x76, 0xc3, 0xc7, 0xf6, 0xde, 0x70, 0x66, 0x1f,
0x18, 0x50, 0xb3, 0x88, 0x4b, 0x30, 0xdd, 0x1b, 0xfb, 0xcc, 0xfc, 0xa1, 0x01, 0x47, 0xaf, 0x11,
0x16, 0xb3, 0x58, 0x86, 0x99, 0x43, 0x99, 0xd3, 0xdc, 0xcd, 0xf3, 0xd5, 0xfc, 0xd0, 0x80, 0x63,
0x99, 0x62, 0x8d, 0xb2, 0x81, 0x9f, 0x83, 0x09, 0xfe, 0x45, 0x6b, 0x39, 0x61, 0x4f, 0xc7, 0xb3,
0xec, 0xe9, 0x0d, 0xee, 0x17, 0x85, 0x41, 0x49, 0x7c, 0xf3, 0x3f, 0x06, 0xcc, 0xaf, 0x6f, 0xfa,
0xf7, 0x7b, 0x22, 0x3d, 0x0a, 0x05, 0x25, 0x5d, 0x5a, 0x3e, 0xe5, 0xd2, 0xd0, 0x05, 0x18, 0x67,
0x5b, 0x1d, 0x22, 0xbc, 0xe1, 0xf4, 0xf2, 0xc2, 0x39, 0x4d, 0x58, 0x79, 0x8e, 0x0b, 0xf9, 0xda,
0x56, 0x87, 0x58, 0x02, 0x15, 0x9d, 0x82, 0x6a, 0x4a, 0xe5, 0xa1, 0x53, 0x98, 0x49, 0xea, 0x9c,
0x9a, 0x7f, 0xcc, 0xc1, 0xa1, 0xbe, 0x29, 0x8e, 0xa2, 0x6c, 0xdd, 0xd8, 0x39, 0xed, 0xd8, 0xe8,
0x04, 0xc4, 0x4c, 0xa0, 0xe1, 0xd8, 0x3c, 0xf2, 0xcb, 0x2f, 0xe5, 0xad, 0x4a, 0xcc, 0x37, 0xda,
0x14, 0x9d, 0x05, 0xd4, 0xe7, 0xb2, 0xa4, 0x67, 0x1c, 0xb7, 0x0e, 0xa4, 0x7d, 0x96, 0xf0, 0x8b,
0x5a, 0xa7, 0x25, 0x55, 0x30, 0x6e, 0xcd, 0x69, 0xbc, 0x16, 0x45, 0x17, 0x60, 0xce, 0xf1, 0x6e,
0x92, 0xb6, 0x1f, 0x6c, 0x35, 0x3a, 0x24, 0x68, 0x12, 0x8f, 0xe1, 0x16, 0xa1, 0xb5, 0x49, 0x21,
0xd1, 0x6c, 0xd8, 0xb7, 0xd6, 0xeb, 0x32, 0x3f, 0x31, 0x60, 0x5e, 0x46, 0x7e, 0x6b, 0x38, 0x60,
0xce, 0x6e, 0x9f, 0x9e, 0x27, 0x60, 0xba, 0x13, 0xca, 0x21, 0xf1, 0x64, 0x9c, 0x5a, 0x89, 0xa0,
0x62, 0x97, 0x7d, 0x6c, 0xc0, 0x1c, 0x0f, 0xf4, 0xf6, 0x93, 0xcc, 0xbf, 0x31, 0x60, 0xf6, 0x3a,
0xa6, 0xfb, 0x49, 0xe4, 0xdf, 0xa9, 0x23, 0x28, 0x92, 0x79, 0x57, 0xaf, 0x2e, 0x27, 0x61, 0x26,
0x29, 0x74, 0x18, 0x59, 0x4c, 0x27, 0xa4, 0xa6, 0xe6, 0x1f, 0x7a, 0x67, 0xd5, 0x3e, 0x93, 0xfc,
0x4f, 0x06, 0x2c, 0x5c, 0x23, 0x2c, 0x92, 0x7a, 0x4f, 0x9c, 0x69, 0xc3, 0x5a, 0xcb, 0x07, 0xf2,
0x44, 0xd6, 0x0a, 0xbf, 0x2b, 0x27, 0xdf, 0x7b, 0x39, 0x38, 0xc8, 0x8f, 0x85, 0xbd, 0x61, 0x04,
0xc3, 0x5c, 0x0c, 0x34, 0x86, 0x32, 0xa1, 0x33, 0x94, 0xe8, 0x3c, 0x9d, 0x1c, 0xfa, 0x3c, 0x35,
0x7f, 0x9b, 0x93, 0x71, 0x40, 0x5c, 0x1b, 0xa3, 0x2c, 0x8b, 0x46, 0xd6, 0x9c, 0x56, 0x56, 0x13,
0xca, 0x11, 0x64, 0x75, 0x25, 0x3c, 0x1f, 0x13, 0xb0, 0x3d, 0x7b, 0x3c, 0xbe, 0x6f, 0xc0, 0x7c,
0x78, 0x15, 0x5b, 0x27, 0xad, 0x36, 0xf1, 0xd8, 0xc3, 0xdb, 0x50, 0xda, 0x02, 0x72, 0x1a, 0x0b,
0x38, 0x02, 0x25, 0x2a, 0xc7, 0x89, 0x6e, 0x59, 0x3d, 0x80, 0xf9, 0x91, 0x01, 0x87, 0xfa, 0xc4,
0x19, 0x65, 0x11, 0x6b, 0x50, 0x70, 0x3c, 0x9b, 0x3c, 0x88, 0xa4, 0x09, 0x9b, 0xbc, 0x67, 0xa3,
0xeb, 0xb8, 0x76, 0x24, 0x46, 0xd8, 0x44, 0xc7, 0xa1, 0x4c, 0x3c, 0xbc, 0xe1, 0x92, 0x86, 0xc0,
0x15, 0x86, 0x5c, 0xb4, 0xa6, 0x24, 0x6c, 0x95, 0x83, 0xcc, 0xef, 0x19, 0x30, 0xcb, 0x6d, 0x4d,
0xc9, 0x48, 0x1f, 0xad, 0xce, 0x16, 0x61, 0x2a, 0x66, 0x4c, 0x4a, 0xdc, 0x38, 0xc8, 0xbc, 0x0b,
0x73, 0x49, 0x71, 0x46, 0xd1, 0xd9, 0x51, 0x80, 0x68, 0x45, 0xa4, 0xcd, 0xe7, 0xad, 0x18, 0xc4,
0xfc, 0x2c, 0x4a, 0x81, 0x0a, 0x65, 0xec, 0x72, 0xd6, 0xe7, 0x8e, 0x43, 0x5c, 0x3b, 0xee, 0xb5,
0x4b, 0x02, 0x22, 0xba, 0x57, 0xa0, 0x4c, 0x1e, 0xb0, 0x00, 0x37, 0x3a, 0x38, 0xc0, 0x6d, 0xb9,
0x79, 0x86, 0x72, 0xb0, 0x53, 0x82, 0x6c, 0x4d, 0x50, 0x99, 0x7f, 0xe1, 0xc1, 0x98, 0x32, 0xca,
0xbd, 0x3e, 0xe3, 0x05, 0x00, 0x61, 0xb4, 0xb2, 0x7b, 0x42, 0x76, 0x0b, 0x88, 0x38, 0xc2, 0x3e,
0x32, 0xa0, 0x2a, 0xa6, 0x20, 0xe7, 0xd3, 0xe1, 0x6c, 0x53, 0x34, 0x46, 0x8a, 0x66, 0xc0, 0x16,
0xfa, 0x22, 0x4c, 0x2a, 0xc5, 0xe6, 0x87, 0x55, 0xac, 0x22, 0xd8, 0x66, 0x1a, 0xe6, 0x2f, 0x0c,
0x38, 0x98, 0x52, 0xf9, 0x28, 0x16, 0xfd, 0x1a, 0x20, 0x39, 0x43, 0xbb, 0x37, 0xed, 0xf0, 0xb8,
0x3d, 0xa1, 0x3d, 0x5b, 0xd2, 0x4a, 0xb2, 0x0e, 0x38, 0x29, 0x08, 0x35, 0xff, 0x6e, 0xc0, 0x91,
0x6b, 0x84, 0x09, 0xd4, 0x2b, 0xdc, 0x77, 0xac, 0x05, 0x7e, 0x2b, 0x20, 0x94, 0xee, 0x5f, 0xfb,
0xf8, 0x91, 0x8c, 0xcf, 0x74, 0x53, 0x1a, 0x45, 0xff, 0xc7, 0xa1, 0x2c, 0xc6, 0x20, 0x76, 0x23,
0xf0, 0xef, 0x53, 0x65, 0x47, 0x53, 0x0a, 0x66, 0xf9, 0xf7, 0x85, 0x41, 0x30, 0x9f, 0x61, 0x57,
0x22, 0xa8, 0x83, 0x41, 0x40, 0x78, 0xb7, 0xd8, 0x83, 0xa1, 0x60, 0x9c, 0x39, 0xd9, 0xbf, 0x3a,
0xfe, 0x95, 0x01, 0x07, 0x53, 0x53, 0x19, 0x45, 0xb7, 0xcf, 0xca, 0xe8, 0x51, 0x4e, 0x66, 0x7a,
0xf9, 0x98, 0x96, 0x26, 0x36, 0x98, 0xc4, 0x46, 0xc7, 0x60, 0xea, 0x0e, 0x76, 0xdc, 0x46, 0x40,
0x30, 0xf5, 0x3d, 0x35, 0x51, 0xe0, 0x20, 0x4b, 0x40, 0xcc, 0x4f, 0x0d, 0xf9, 0x90, 0xb4, 0xcf,
0x3d, 0xde, 0x2f, 0x73, 0x50, 0x59, 0xf5, 0x28, 0x09, 0xd8, 0xde, 0xbf, 0x61, 0xa0, 0x17, 0x61,
0x4a, 0x4c, 0x8c, 0x36, 0x6c, 0xcc, 0xb0, 0x3a, 0xae, 0x8e, 0x6a, 0x33, 0xd9, 0x2f, 0x73, 0xbc,
0x15, 0xcc, 0xb0, 0x25, 0xb5, 0x43, 0xf9, 0x37, 0x7a, 0x0c, 0x4a, 0x9b, 0x98, 0x6e, 0x36, 0xee,
0x92, 0x2d, 0x19, 0xf6, 0x55, 0xac, 0x22, 0x07, 0xbc, 0x42, 0xb6, 0x28, 0x3a, 0x0c, 0x45, 0xaf,
0xdb, 0x96, 0x1b, 0xac, 0xb0, 0x68, 0x2c, 0x55, 0xac, 0x82, 0xd7, 0x6d, 0x8b, 0xed, 0xf5, 0xd7,
0x1c, 0x4c, 0xdf, 0xec, 0xf2, 0xfb, 0x8c, 0xc8, 0xc3, 0x77, 0x5d, 0xf6, 0x70, 0xc6, 0x78, 0x1a,
0xf2, 0x32, 0x66, 0xe0, 0x14, 0x35, 0xad, 0xe0, 0xab, 0x2b, 0xd4, 0xe2, 0x48, 0x22, 0x07, 0xdd,
0x6d, 0x36, 0x55, 0x90, 0x95, 0x17, 0xc2, 0x96, 0x38, 0x44, 0x58, 0x1c, 0x9f, 0x0a, 0x09, 0x82,
0x28, 0x04, 0x13, 0x53, 0x21, 0x41, 0x20, 0x3b, 0x4d, 0x28, 0xe3, 0xe6, 0x5d, 0xcf, 0xbf, 0xef,
0x12, 0xbb, 0x45, 0x6c, 0xb1, 0xec, 0x45, 0x2b, 0x01, 0x93, 0x86, 0xc1, 0x17, 0xbe, 0xd1, 0xf4,
0x98, 0xb8, 0x48, 0xe4, 0xb9, 0x61, 0x70, 0xc8, 0x55, 0x8f, 0xf1, 0x6e, 0x9b, 0xb8, 0x84, 0x11,
0xd1, 0x5d, 0x90, 0xdd, 0x12, 0xa2, 0xba, 0xbb, 0x9d, 0x88, 0xba, 0x28, 0xbb, 0x25, 0x84, 0x77,
0x1f, 0x81, 0x52, 0x2f, 0xd1, 0x5e, 0xea, 0x65, 0x03, 0x05, 0xc0, 0xfc, 0xb7, 0x01, 0x95, 0x15,
0xc1, 0x6a, 0x1f, 0x18, 0x1d, 0x82, 0x71, 0xf2, 0xa0, 0x13, 0xa8, 0xad, 0x23, 0xbe, 0x07, 0xda,
0x91, 0x79, 0x0f, 0xaa, 0x6b, 0x2e, 0x6e, 0x92, 0x4d, 0xdf, 0xb5, 0x49, 0x20, 0xce, 0x76, 0x54,
0x85, 0x3c, 0xc3, 0x2d, 0x15, 0x3c, 0xf0, 0x4f, 0xf4, 0xbc, 0xba, 0xc1, 0x49, 0xb7, 0xf4, 0x84,
0xf6, 0x94, 0x8d, 0xb1, 0x89, 0x25, 0x46, 0xe7, 0x61, 0x52, 0x3c, 0x7e, 0xc9, 0xb0, 0xa2, 0x6c,
0xa9, 0x96, 0x79, 0x3b, 0x31, 0xee, 0xb5, 0xc0, 0xef, 0x76, 0xd0, 0x2a, 0x94, 0x3b, 0x3d, 0x18,
0xb7, 0xd5, 0xec, 0x33, 0x3d, 0x2d, 0xb4, 0x95, 0x20, 0x35, 0x3f, 0xcb, 0x43, 0x65, 0x9d, 0xe0,
0xa0, 0xb9, 0xb9, 0x1f, 0x52, 0x29, 0x5c, 0xe3, 0x36, 0x75, 0xd5, 0xaa, 0xf1, 0x4f, 0x74, 0x06,
0x0e, 0xc4, 0x26, 0xd4, 0x68, 0x71, 0x05, 0x09, 0xbb, 0x2f, 0x5b, 0xd5, 0x4e, 0x5a, 0x71, 0xcf,
0x41, 0xd1, 0xa6, 0x6e, 0x43, 0x2c, 0x51, 0x41, 0x2c, 0x91, 0x7e, 0x7e, 0x2b, 0xd4, 0x15, 0x4b,
0x53, 0xb0, 0xe5, 0x07, 0x7a, 0x1c, 0x2a, 0x7e, 0x97, 0x75, 0xba, 0xac, 0x21, 0xfd, 0x4e, 0xad,
0x28, 0xc4, 0x2b, 0x4b, 0xa0, 0x70, 0x4b, 0x14, 0xbd, 0x0c, 0x15, 0x2a, 0x54, 0x19, 0x46, 0xde,
0xa5, 0x61, 0x03, 0xc4, 0xb2, 0xa4, 0x93, 0xa1, 0x37, 0x3a, 0x05, 0x55, 0x16, 0xe0, 0x7b, 0xc4,
0x8d, 0x3d, 0x6b, 0x81, 0xd8, 0x6d, 0x33, 0x12, 0xde, 0x7b, 0xd2, 0x3a, 0x0f, 0xb3, 0xad, 0x2e,
0x0e, 0xb0, 0xc7, 0x08, 0x89, 0x61, 0x4f, 0x09, 0x6c, 0x14, 0x75, 0x45, 0x04, 0xe6, 0x2b, 0x30,
0x7e, 0xdd, 0x61, 0x42, 0x91, 0xdc, 0x67, 0x19, 0xe2, 0x9e, 0x23, 0x3c, 0xd3, 0x61, 0x28, 0x06,
0xfe, 0x7d, 0xe9, 0x83, 0x73, 0xc2, 0x04, 0x0b, 0x81, 0x7f, 0x5f, 0x38, 0x58, 0xf1, 0x70, 0xef,
0x07, 0xca, 0x36, 0x73, 0x96, 0x6a, 0x99, 0xdf, 0x32, 0x7a, 0xc6, 0xc3, 0xdd, 0x27, 0x7d, 0x38,
0xff, 0xf9, 0x22, 0x14, 0x02, 0x49, 0x3f, 0xf0, 0x19, 0x33, 0x3e, 0x92, 0x38, 0x03, 0x42, 0x2a,
0xf3, 0x9b, 0x06, 0x94, 0x5f, 0x76, 0xbb, 0xf4, 0x51, 0xd8, 0xb0, 0xee, 0xd1, 0x20, 0xaf, 0x7f,
0xb0, 0xf8, 0x7e, 0x0e, 0x2a, 0x4a, 0x8c, 0x51, 0x62, 0x9b, 0x4c, 0x51, 0xd6, 0x61, 0x8a, 0x0f,
0xd9, 0xa0, 0xa4, 0x15, 0x66, 0x5c, 0xa6, 0x96, 0x97, 0xb5, 0xbb, 0x3e, 0x21, 0x86, 0x78, 0x00,
0x5e, 0x17, 0x44, 0x5f, 0xf5, 0x58, 0xb0, 0x65, 0x41, 0x33, 0x02, 0xd4, 0x6f, 0xc3, 0x4c, 0xaa,
0x9b, 0xdb, 0xc6, 0x5d, 0xb2, 0x15, 0xba, 0xb5, 0xbb, 0x64, 0x0b, 0x3d, 0x13, 0x7f, 0xa6, 0xcf,
0x3a, 0x9c, 0x6f, 0xf8, 0x5e, 0xeb, 0x72, 0x10, 0xe0, 0x2d, 0xf5, 0x8c, 0x7f, 0x29, 0xf7, 0xbc,
0x61, 0xfe, 0x39, 0x07, 0xe5, 0x57, 0xbb, 0x24, 0xd8, 0xda, 0x4d, 0xf7, 0x12, 0x3a, 0xfb, 0xf1,
0x98, 0xb3, 0xef, 0xdb, 0xd1, 0x13, 0x9a, 0x1d, 0xad, 0xf1, 0x4b, 0x93, 0x5a, 0xbf, 0xa4, 0xdb,
0xb2, 0x85, 0x1d, 0x6d, 0xd9, 0x62, 0xe6, 0x96, 0xe5, 0xd6, 0xad, 0x54, 0x38, 0xd2, 0x26, 0x4b,
0x44, 0x59, 0xb9, 0x9d, 0x46, 0x59, 0xe6, 0xc7, 0x06, 0x94, 0xde, 0x20, 0x4d, 0xe6, 0x07, 0xdc,
0x5b, 0x68, 0x74, 0x6f, 0x0c, 0x11, 0xc8, 0xe6, 0xd2, 0x81, 0xec, 0x45, 0x28, 0x3a, 0x76, 0x03,
0x73, 0xb3, 0x11, 0x8b, 0x37, 0x28, 0x80, 0x2a, 0x38, 0xb6, 0xb0, 0xaf, 0xe1, 0x33, 0xef, 0x3f,
0x36, 0xa0, 0x2c, 0x65, 0xa6, 0x92, 0xf2, 0x85, 0xd8, 0x70, 0x86, 0xce, 0x96, 0x55, 0x23, 0x9a,
0xe8, 0xf5, 0xb1, 0xde, 0xb0, 0x97, 0x01, 0xb8, 0xee, 0x14, 0xb9, 0xdc, 0x0a, 0x8b, 0x5a, 0x69,
0x25, 0xb9, 0xd0, 0xe3, 0xf5, 0x31, 0xab, 0xc4, 0xa9, 0x04, 0x8b, 0x2b, 0x05, 0x98, 0x10, 0xd4,
0xe6, 0x7f, 0x0d, 0x98, 0xbd, 0x8a, 0xdd, 0xe6, 0x8a, 0x43, 0x19, 0xf6, 0x9a, 0x23, 0x84, 0x4c,
0x97, 0xa0, 0xe0, 0x77, 0x1a, 0x2e, 0xb9, 0xc3, 0x94, 0x48, 0xc7, 0x07, 0xcc, 0x48, 0xaa, 0xc1,
0x9a, 0xf4, 0x3b, 0x37, 0xc8, 0x1d, 0x86, 0xbe, 0x04, 0x45, 0xbf, 0xd3, 0x08, 0x9c, 0xd6, 0x26,
0x53, 0xda, 0x1f, 0x82, 0xb8, 0xe0, 0x77, 0x2c, 0x4e, 0x11, 0xcb, 0x84, 0x8c, 0xef, 0x30, 0x13,
0x62, 0xfe, 0xa3, 0x6f, 0xfa, 0x23, 0x98, 0xf6, 0x25, 0x28, 0x3a, 0x1e, 0x6b, 0xd8, 0x0e, 0x0d,
0x55, 0xb0, 0xa0, 0xb7, 0x21, 0x8f, 0x89, 0x19, 0x88, 0x35, 0xf5, 0x18, 0x1f, 0x1b, 0xbd, 0x04,
0x70, 0xc7, 0xf5, 0xb1, 0xa2, 0x96, 0x3a, 0x38, 0xa6, 0xdf, 0x15, 0x1c, 0x2d, 0xa4, 0x2f, 0x09,
0x22, 0xce, 0xa1, 0xb7, 0xa4, 0x7f, 0x33, 0xe0, 0xe0, 0x1a, 0x09, 0xa8, 0x43, 0x19, 0xf1, 0x98,
0xca, 0x4a, 0xae, 0x7a, 0x77, 0xfc, 0x64, 0xfa, 0xd7, 0x48, 0xa5, 0x7f, 0x3f, 0x9f, 0x64, 0x68,
0xe2, 0x9e, 0x23, 0x1f, 0x21, 0xc2, 0x7b, 0x4e, 0xf8, 0xd4, 0x22, 0xef, 0x89, 0xd3, 0x19, 0xcb,
0xa4, 0xe4, 0x8d, 0x5f, 0x97, 0xcd, 0x1f, 0xc8, 0xb2, 0x07, 0xed, 0xa4, 0x1e, 0xde, 0x60, 0xe7,
0x41, 0x39, 0xf0, 0x94, 0x3b, 0x7f, 0x12, 0x52, 0xbe, 0x23, 0xa3, 0x18, 0xe3, 0xa7, 0x06, 0x2c,
0x66, 0x4b, 0x35, 0xca, 0xc9, 0xfb, 0x12, 0x4c, 0x38, 0xde, 0x1d, 0x3f, 0x4c, 0x92, 0x9d, 0xd6,
0x07, 0xd4, 0xda, 0x71, 0x25, 0xa1, 0xf9, 0xfb, 0x1c, 0x54, 0x85, 0xaf, 0xde, 0x85, 0xe5, 0x6f,
0x93, 0x76, 0x83, 0x3a, 0xef, 0x90, 0x70, 0xf9, 0xdb, 0xa4, 0xbd, 0xee, 0xbc, 0x43, 0x12, 0x96,
0x31, 0x91, 0xb4, 0x8c, 0x64, 0x1a, 0x61, 0x72, 0x40, 0x12, 0xb4, 0x90, 0x4c, 0x82, 0xce, 0xc3,
0xa4, 0xe7, 0xdb, 0x64, 0x75, 0x45, 0x5d, 0x12, 0x55, 0xab, 0x67, 0x6a, 0xa5, 0x1d, 0x9a, 0xda,
0x07, 0x06, 0xd4, 0xaf, 0x11, 0x96, 0xd6, 0xdd, 0xee, 0x59, 0xd9, 0x87, 0x06, 0x3c, 0xa6, 0x15,
0x68, 0x14, 0x03, 0x7b, 0x21, 0x69, 0x60, 0xfa, 0x1b, 0x5b, 0xdf, 0x90, 0xca, 0xb6, 0x2e, 0x40,
0x79, 0xa5, 0xdb, 0x6e, 0x47, 0x91, 0xd4, 0x71, 0x28, 0x07, 0xf2, 0x53, 0x5e, 0x68, 0xe4, 0xf9,
0x3b, 0xa5, 0x60, 0xfc, 0xda, 0x62, 0x9e, 0x81, 0x8a, 0x22, 0x51, 0x52, 0xd7, 0xa1, 0x18, 0xa8,
0x6f, 0x85, 0x1f, 0xb5, 0xcd, 0x83, 0x30, 0x6b, 0x91, 0x16, 0x37, 0xed, 0xe0, 0x86, 0xe3, 0xdd,
0x55, 0xc3, 0x98, 0xef, 0x1a, 0x30, 0x97, 0x84, 0x2b, 0x5e, 0x5f, 0x80, 0x02, 0xb6, 0xed, 0x80,
0x50, 0x3a, 0x70, 0x59, 0x2e, 0x4b, 0x1c, 0x2b, 0x44, 0x8e, 0x69, 0x2e, 0x37, 0xb4, 0xe6, 0xcc,
0x06, 0x1c, 0xb8, 0x46, 0xd8, 0x4d, 0xc2, 0x82, 0x91, 0x9e, 0xcd, 0x6b, 0xfc, 0xaa, 0x21, 0x88,
0x95, 0x59, 0x84, 0x4d, 0xf3, 0x7d, 0x03, 0x50, 0x7c, 0x84, 0x51, 0x96, 0x39, 0xae, 0xe5, 0x5c,
0x52, 0xcb, 0xb2, 0xb2, 0xa8, 0xdd, 0xf1, 0x3d, 0xe2, 0xb1, 0x78, 0xcc, 0x5a, 0x89, 0xa0, 0xc2,
0xfc, 0x3e, 0x31, 0x00, 0xdd, 0xf0, 0xb1, 0x7d, 0x05, 0xbb, 0xa3, 0x85, 0x07, 0x0b, 0x00, 0x34,
0x68, 0x36, 0xd4, 0x6e, 0xcd, 0x29, 0xef, 0x13, 0x34, 0x6f, 0xc9, 0x0d, 0x7b, 0x0c, 0xa6, 0x6c,
0xca, 0x54, 0x77, 0xf8, 0x8a, 0x0b, 0x36, 0x65, 0xb2, 0x5f, 0x54, 0x65, 0x52, 0x82, 0x5d, 0x62,
0x37, 0x62, 0xcf, 0x63, 0xe3, 0x02, 0xad, 0x2a, 0x3b, 0xd6, 0x7b, 0x8f, 0x64, 0xb7, 0xe1, 0xd0,
0x4d, 0xec, 0x75, 0xb1, 0x7b, 0xd5, 0x6f, 0x77, 0x70, 0xa2, 0x9a, 0x30, 0xed, 0xe6, 0x0c, 0x8d,
0x9b, 0x3b, 0x2a, 0xcb, 0xcd, 0x64, 0xc4, 0x2c, 0x64, 0x1d, 0xb7, 0x62, 0x10, 0x93, 0x42, 0xad,
0x9f, 0xfd, 0x28, 0x0b, 0x25, 0x84, 0x0a, 0x59, 0xc5, 0x7d, 0x6f, 0x0f, 0x66, 0xbe, 0x08, 0x87,
0x45, 0xe9, 0x5f, 0x08, 0x4a, 0x24, 0xe2, 0xd3, 0x0c, 0x0c, 0x0d, 0x83, 0xef, 0xe4, 0x84, 0x6b,
0xeb, 0xe3, 0x30, 0x8a, 0xe0, 0x97, 0x92, 0xf9, 0xef, 0x27, 0xb4, 0x34, 0xe9, 0x11, 0x55, 0x12,
0x7c, 0x09, 0x66, 0xc8, 0x03, 0xd2, 0xec, 0x32, 0xc7, 0x6b, 0xad, 0xb9, 0xd8, 0xbb, 0xe5, 0xab,
0x03, 0x25, 0x0d, 0x46, 0x4f, 0x40, 0x85, 0x6b, 0xdf, 0xef, 0x32, 0x85, 0x27, 0x4f, 0x96, 0x24,
0x90, 0xf3, 0xe3, 0xf3, 0x75, 0x09, 0x23, 0xb6, 0xc2, 0x93, 0xc7, 0x4c, 0x1a, 0xdc, 0xa7, 0x4a,
0x0e, 0xa6, 0x3b, 0x51, 0xe5, 0xbf, 0x8c, 0x94, 0x2a, 0x15, 0x87, 0xdd, 0x52, 0xe5, 0x75, 0x80,
0x36, 0x09, 0x5a, 0x64, 0x55, 0x38, 0x75, 0x79, 0x21, 0x5f, 0xd2, 0x3a, 0xf5, 0x1e, 0x83, 0x9b,
0x21, 0x81, 0x15, 0xa3, 0x35, 0xaf, 0xc1, 0xac, 0x06, 0x85, 0xfb, 0x2b, 0xea, 0x77, 0x83, 0x26,
0x09, 0x53, 0x35, 0x61, 0x93, 0x9f, 0x6f, 0x0c, 0x07, 0x2d, 0xc2, 0x94, 0xd1, 0xaa, 0xd6, 0xe9,
0xe3, 0x50, 0x0c, 0x4b, 0x44, 0x50, 0x01, 0xf2, 0x97, 0x5d, 0xb7, 0x3a, 0x86, 0xca, 0x50, 0x5c,
0x55, 0x75, 0x10, 0x55, 0xe3, 0xf4, 0x57, 0x60, 0x26, 0x95, 0x83, 0x44, 0x45, 0x18, 0xbf, 0xe5,
0x7b, 0xa4, 0x3a, 0x86, 0xaa, 0x50, 0xbe, 0xe2, 0x78, 0x38, 0xd8, 0x92, 0x31, 0x7f, 0xd5, 0x46,
0x33, 0x30, 0x25, 0x62, 0x5f, 0x05, 0x20, 0xcb, 0x3f, 0x59, 0x80, 0xca, 0x4d, 0x31, 0xad, 0x75,
0x12, 0xdc, 0x73, 0x9a, 0x04, 0x35, 0xa0, 0x9a, 0xfe, 0xd1, 0x04, 0x3d, 0xa5, 0xd7, 0x83, 0xfe,
0x7f, 0x94, 0xfa, 0xa0, 0xa5, 0x32, 0xc7, 0xd0, 0x5b, 0x30, 0x9d, 0xfc, 0x05, 0x04, 0xe9, 0x83,
0x33, 0xed, 0x7f, 0x22, 0xdb, 0x31, 0x6f, 0x40, 0x25, 0xf1, 0x47, 0x07, 0x3a, 0xa5, 0xe5, 0xad,
0xfb, 0xeb, 0xa3, 0xae, 0xbf, 0x2f, 0xc5, 0xff, 0xba, 0x90, 0xd2, 0x27, 0x6b, 0xbe, 0x33, 0xa4,
0xd7, 0x16, 0x86, 0x6f, 0x27, 0x3d, 0x86, 0x03, 0x7d, 0x25, 0xdc, 0xe8, 0xac, 0x96, 0x7f, 0x56,
0xa9, 0xf7, 0x76, 0x43, 0xdc, 0x07, 0xd4, 0xff, 0xe7, 0x02, 0x3a, 0xa7, 0x5f, 0x81, 0xac, 0xff,
0x36, 0xea, 0xe7, 0x87, 0xc6, 0x8f, 0x14, 0xf7, 0x6d, 0x03, 0x0e, 0x65, 0xd4, 0x5d, 0xa3, 0x8b,
0x5a, 0x76, 0x83, 0x8b, 0xc7, 0xeb, 0xcf, 0xec, 0x8c, 0x28, 0x12, 0xc4, 0x83, 0x99, 0x54, 0x29,
0x32, 0x3a, 0x93, 0x59, 0x9e, 0xd5, 0x5f, 0x93, 0x5d, 0x7f, 0x6a, 0x38, 0xe4, 0x68, 0xbc, 0xdb,
0x30, 0x93, 0xaa, 0xdf, 0xcd, 0x18, 0x4f, 0x5f, 0xe5, 0xbb, 0xdd, 0x82, 0xbe, 0x09, 0x95, 0x44,
0xa1, 0x6d, 0x86, 0xc5, 0xeb, 0x8a, 0x71, 0xb7, 0x63, 0x7d, 0x1b, 0xca, 0xf1, 0x7a, 0x58, 0xb4,
0x94, 0xb5, 0x97, 0xfa, 0x18, 0xef, 0x64, 0x2b, 0xf5, 0xca, 0xdd, 0x06, 0x6c, 0xa5, 0xbe, 0x0a,
0xc1, 0xe1, 0xb7, 0x52, 0x8c, 0xff, 0xc0, 0xad, 0xb4, 0xe3, 0x21, 0xde, 0x35, 0x60, 0x5e, 0x5f,
0x4e, 0x89, 0x96, 0xb3, 0x6c, 0x33, 0xbb, 0x70, 0xb4, 0x7e, 0x71, 0x47, 0x34, 0x91, 0x16, 0xef,
0xc2, 0x74, 0xb2, 0x68, 0x30, 0x43, 0x8b, 0xda, 0x3a, 0xcb, 0xfa, 0x99, 0xa1, 0x70, 0xa3, 0xc1,
0x5e, 0x87, 0xa9, 0xd8, 0xbf, 0xa3, 0xe8, 0xe4, 0x00, 0x3b, 0x8e, 0xff, 0x48, 0xb9, 0x9d, 0x26,
0x5f, 0x85, 0x52, 0xf4, 0xcb, 0x27, 0x3a, 0x91, 0x69, 0xbf, 0x3b, 0x61, 0xb9, 0x0e, 0xd0, 0xfb,
0x9f, 0x13, 0x3d, 0xa9, 0xe5, 0xd9, 0xf7, 0xc3, 0xe7, 0x76, 0x4c, 0xa3, 0xe9, 0xcb, 0x47, 0xdc,
0x41, 0xd3, 0x8f, 0x57, 0x1d, 0x6c, 0xc7, 0x76, 0x13, 0x2a, 0x89, 0x5a, 0xa1, 0xac, 0x2d, 0xac,
0x29, 0xe1, 0xaa, 0x9f, 0x1e, 0x06, 0x35, 0x5a, 0xbf, 0x4d, 0xa8, 0x24, 0x2a, 0x37, 0x32, 0x46,
0xd2, 0x15, 0xaa, 0x64, 0x8c, 0xa4, 0x2d, 0x04, 0x31, 0xc7, 0xd0, 0x37, 0x62, 0x45, 0x22, 0x89,
0x42, 0x1c, 0x74, 0x61, 0x20, 0x1f, 0x5d, 0x1d, 0x52, 0x7d, 0x79, 0x27, 0x24, 0x91, 0x08, 0xca,
0xaa, 0xa4, 0x4a, 0xb3, 0xad, 0x6a, 0x27, 0x2b, 0xb5, 0x0e, 0x93, 0xb2, 0x16, 0x03, 0x99, 0x19,
0x55, 0x57, 0xb1, 0x42, 0x8d, 0xfa, 0xe3, 0x5a, 0x9c, 0x64, 0x99, 0x82, 0x64, 0x2a, 0xdf, 0xda,
0x33, 0x98, 0x26, 0x1e, 0xe2, 0x87, 0x65, 0x6a, 0xc1, 0xa4, 0x7c, 0x64, 0xcb, 0x60, 0x9a, 0x78,
0x28, 0xae, 0x0f, 0xc6, 0x91, 0x2f, 0x73, 0x63, 0x68, 0x0d, 0x26, 0xc4, 0x63, 0x14, 0x3a, 0x3e,
0xe8, 0xa1, 0x6a, 0x10, 0xc7, 0xc4, 0x5b, 0x96, 0x39, 0x86, 0xbe, 0x06, 0x13, 0x22, 0x45, 0x92,
0xc1, 0x31, 0xfe, 0xda, 0x54, 0x1f, 0x88, 0x12, 0x8a, 0x68, 0x43, 0x39, 0x9e, 0x8b, 0xce, 0x38,
0xb2, 0x34, 0xd9, 0xfa, 0xfa, 0x30, 0x98, 0xe1, 0x28, 0xdf, 0x35, 0xa0, 0x96, 0x95, 0xb6, 0x44,
0x99, 0x71, 0xc9, 0xa0, 0xdc, 0x6b, 0xfd, 0xd9, 0x1d, 0x52, 0x45, 0x2a, 0x7c, 0x07, 0x66, 0x35,
0xb9, 0x2d, 0x74, 0x3e, 0x8b, 0x5f, 0x46, 0x5a, 0xae, 0xfe, 0xf4, 0xf0, 0x04, 0xd1, 0xd8, 0x6b,
0x30, 0x21, 0x72, 0x52, 0x19, 0xcb, 0x17, 0x4f, 0x71, 0x65, 0x18, 0x44, 0x22, 0xa5, 0x65, 0x8e,
0x21, 0x02, 0xe5, 0x78, 0x82, 0x2a, 0x63, 0xfd, 0x34, 0xb9, 0xad, 0xfa, 0xa9, 0x21, 0x30, 0xa3,
0x61, 0x1a, 0x00, 0xbd, 0x04, 0x51, 0xc6, 0xe9, 0xd0, 0x97, 0xa3, 0xaa, 0x9f, 0xdc, 0x16, 0x2f,
0x7e, 0x50, 0xc6, 0x52, 0x3e, 0x19, 0x27, 0x45, 0x7f, 0x52, 0x68, 0x88, 0xe8, 0xbd, 0x3f, 0xfd,
0x90, 0x11, 0xbd, 0x67, 0x66, 0x3a, 0xea, 0xe7, 0x87, 0xc6, 0x8f, 0xe6, 0xf3, 0x36, 0x54, 0xd3,
0xe9, 0x9a, 0x8c, 0x5b, 0x61, 0x46, 0xd2, 0xa8, 0x7e, 0x76, 0x48, 0xec, 0x70, 0xc8, 0xe5, 0x2e,
0x94, 0xd7, 0x02, 0xff, 0xc1, 0x56, 0x78, 0x31, 0xfd, 0xff, 0x98, 0xc6, 0x95, 0x67, 0xbf, 0x7e,
0xb1, 0xe5, 0xb0, 0xcd, 0xee, 0x06, 0x57, 0xfe, 0x79, 0x89, 0x7b, 0xd6, 0xf1, 0xd5, 0xd7, 0x79,
0xc7, 0x63, 0x24, 0xf0, 0xb0, 0x7b, 0x5e, 0xf0, 0x52, 0xd0, 0xce, 0xc6, 0xc6, 0xa4, 0x68, 0x5f,
0xfc, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x68, 0x6e, 0x3b, 0x29, 0x9e, 0x43, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
@ -4787,6 +5153,8 @@ type MilvusServiceClient interface {
// https://wiki.lfaidata.foundation/display/MIL/MEP+8+--+Add+metrics+for+proxy
GetMetrics(ctx context.Context, in *GetMetricsRequest, opts ...grpc.CallOption) (*GetMetricsResponse, error)
LoadBalance(ctx context.Context, in *LoadBalanceRequest, opts ...grpc.CallOption) (*commonpb.Status, error)
GetCompactionState(ctx context.Context, in *GetCompactionStateRequest, opts ...grpc.CallOption) (*GetCompactionStateResponse, error)
ManualCompaction(ctx context.Context, in *ManualCompactionRequest, opts ...grpc.CallOption) (*ManualCompactionResponse, error)
}
type milvusServiceClient struct {
@ -5112,6 +5480,24 @@ func (c *milvusServiceClient) LoadBalance(ctx context.Context, in *LoadBalanceRe
return out, nil
}
func (c *milvusServiceClient) GetCompactionState(ctx context.Context, in *GetCompactionStateRequest, opts ...grpc.CallOption) (*GetCompactionStateResponse, error) {
out := new(GetCompactionStateResponse)
err := c.cc.Invoke(ctx, "/milvus.proto.milvus.MilvusService/GetCompactionState", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *milvusServiceClient) ManualCompaction(ctx context.Context, in *ManualCompactionRequest, opts ...grpc.CallOption) (*ManualCompactionResponse, error) {
out := new(ManualCompactionResponse)
err := c.cc.Invoke(ctx, "/milvus.proto.milvus.MilvusService/ManualCompaction", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
// MilvusServiceServer is the server API for MilvusService service.
type MilvusServiceServer interface {
CreateCollection(context.Context, *CreateCollectionRequest) (*commonpb.Status, error)
@ -5151,6 +5537,8 @@ type MilvusServiceServer interface {
// https://wiki.lfaidata.foundation/display/MIL/MEP+8+--+Add+metrics+for+proxy
GetMetrics(context.Context, *GetMetricsRequest) (*GetMetricsResponse, error)
LoadBalance(context.Context, *LoadBalanceRequest) (*commonpb.Status, error)
GetCompactionState(context.Context, *GetCompactionStateRequest) (*GetCompactionStateResponse, error)
ManualCompaction(context.Context, *ManualCompactionRequest) (*ManualCompactionResponse, error)
}
// UnimplementedMilvusServiceServer can be embedded to have forward compatible implementations.
@ -5262,6 +5650,12 @@ func (*UnimplementedMilvusServiceServer) GetMetrics(ctx context.Context, req *Ge
func (*UnimplementedMilvusServiceServer) LoadBalance(ctx context.Context, req *LoadBalanceRequest) (*commonpb.Status, error) {
return nil, status.Errorf(codes.Unimplemented, "method LoadBalance not implemented")
}
func (*UnimplementedMilvusServiceServer) GetCompactionState(ctx context.Context, req *GetCompactionStateRequest) (*GetCompactionStateResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetCompactionState not implemented")
}
func (*UnimplementedMilvusServiceServer) ManualCompaction(ctx context.Context, req *ManualCompactionRequest) (*ManualCompactionResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method ManualCompaction not implemented")
}
func RegisterMilvusServiceServer(s *grpc.Server, srv MilvusServiceServer) {
s.RegisterService(&_MilvusService_serviceDesc, srv)
@ -5897,6 +6291,42 @@ func _MilvusService_LoadBalance_Handler(srv interface{}, ctx context.Context, de
return interceptor(ctx, in, info, handler)
}
func _MilvusService_GetCompactionState_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(GetCompactionStateRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(MilvusServiceServer).GetCompactionState(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/milvus.proto.milvus.MilvusService/GetCompactionState",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(MilvusServiceServer).GetCompactionState(ctx, req.(*GetCompactionStateRequest))
}
return interceptor(ctx, in, info, handler)
}
func _MilvusService_ManualCompaction_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(ManualCompactionRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(MilvusServiceServer).ManualCompaction(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/milvus.proto.milvus.MilvusService/ManualCompaction",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(MilvusServiceServer).ManualCompaction(ctx, req.(*ManualCompactionRequest))
}
return interceptor(ctx, in, info, handler)
}
var _MilvusService_serviceDesc = grpc.ServiceDesc{
ServiceName: "milvus.proto.milvus.MilvusService",
HandlerType: (*MilvusServiceServer)(nil),
@ -6041,6 +6471,14 @@ var _MilvusService_serviceDesc = grpc.ServiceDesc{
MethodName: "LoadBalance",
Handler: _MilvusService_LoadBalance_Handler,
},
{
MethodName: "GetCompactionState",
Handler: _MilvusService_GetCompactionState_Handler,
},
{
MethodName: "ManualCompaction",
Handler: _MilvusService_ManualCompaction_Handler,
},
},
Streams: []grpc.StreamDesc{},
Metadata: "milvus.proto",

View File

@ -168,12 +168,16 @@ func (coord *DataCoordMock) CompleteCompaction(ctx context.Context, req *datapb.
return &commonpb.Status{}, nil
}
func (coord *DataCoordMock) ManualCompaction(ctx context.Context, req *datapb.ManualCompactionRequest) (*datapb.ManualCompactionResponse, error) {
return &datapb.ManualCompactionResponse{}, nil
func (coord *DataCoordMock) ManualCompaction(ctx context.Context, req *milvuspb.ManualCompactionRequest) (*milvuspb.ManualCompactionResponse, error) {
return &milvuspb.ManualCompactionResponse{}, nil
}
func (coord *DataCoordMock) GetCompactionState(ctx context.Context, req *datapb.GetCompactionStateRequest) (*datapb.GetCompactionStateResponse, error) {
return &datapb.GetCompactionStateResponse{}, nil
func (coord *DataCoordMock) GetCompactionState(ctx context.Context, req *milvuspb.GetCompactionStateRequest) (*milvuspb.GetCompactionStateResponse, error) {
return &milvuspb.GetCompactionStateResponse{}, nil
}
func (coord *DataCoordMock) GetCompactionStateWithPlans(ctx context.Context, req *milvuspb.GetCompactionPlansRequest) (*milvuspb.GetCompactionPlansResponse, error) {
return &milvuspb.GetCompactionPlansResponse{}, nil
}
func NewDataCoordMock() *DataCoordMock {

View File

@ -2462,6 +2462,45 @@ func (node *Proxy) LoadBalance(ctx context.Context, req *milvuspb.LoadBalanceReq
return status, nil
}
func (node *Proxy) GetCompactionState(ctx context.Context, req *milvuspb.GetCompactionStateRequest) (*milvuspb.GetCompactionStateResponse, error) {
log.Info("received GetCompactionState request", zap.Int64("compactionID", req.GetCompactionID()))
resp := &milvuspb.GetCompactionStateResponse{}
if !node.checkHealthy() {
resp.Status = unhealthyStatus()
return resp, nil
}
resp, err := node.dataCoord.GetCompactionState(ctx, req)
log.Info("received GetCompactionState response", zap.Int64("compactionID", req.GetCompactionID()), zap.Any("resp", resp), zap.Error(err))
return resp, err
}
func (node *Proxy) ManualCompaction(ctx context.Context, req *milvuspb.ManualCompactionRequest) (*milvuspb.ManualCompactionResponse, error) {
log.Info("received ManualCompaction request", zap.Int64("collectionID", req.GetCollectionID()))
resp := &milvuspb.ManualCompactionResponse{}
if !node.checkHealthy() {
resp.Status = unhealthyStatus()
return resp, nil
}
resp, err := node.dataCoord.ManualCompaction(ctx, req)
log.Info("received ManualCompaction response", zap.Int64("collectionID", req.GetCollectionID()), zap.Any("resp", resp), zap.Error(err))
return resp, err
}
func (node *Proxy) GetCompactionStateWithPlans(ctx context.Context, req *milvuspb.GetCompactionPlansRequest) (*milvuspb.GetCompactionPlansResponse, error) {
log.Info("received GetCompactionStateWithPlans request", zap.Int64("compactionID", req.GetCompactionID()))
resp := &milvuspb.GetCompactionPlansResponse{}
if !node.checkHealthy() {
resp.Status = unhealthyStatus()
return resp, nil
}
resp, err := node.dataCoord.GetCompactionStateWithPlans(ctx, req)
log.Info("received GetCompactionStateWithPlans response", zap.Int64("compactionID", req.GetCompactionID()), zap.Any("resp", resp), zap.Error(err))
return resp, err
}
// checkHealthy checks proxy state is Healthy
func (node *Proxy) checkHealthy() bool {
code := node.stateCode.Load().(internalpb.StateCode)

View File

@ -2406,3 +2406,61 @@ func TestProxy(t *testing.T) {
wg.Wait()
cancel()
}
func Test_GetCompactionState(t *testing.T) {
t.Run("get compaction state", func(t *testing.T) {
datacoord := &DataCoordMock{}
proxy := &Proxy{dataCoord: datacoord}
proxy.stateCode.Store(internalpb.StateCode_Healthy)
resp, err := proxy.GetCompactionState(context.TODO(), nil)
assert.EqualValues(t, &milvuspb.GetCompactionStateResponse{}, resp)
assert.Nil(t, err)
})
t.Run("get compaction state with unhealthy proxy", func(t *testing.T) {
datacoord := &DataCoordMock{}
proxy := &Proxy{dataCoord: datacoord}
proxy.stateCode.Store(internalpb.StateCode_Abnormal)
resp, err := proxy.GetCompactionState(context.TODO(), nil)
assert.EqualValues(t, unhealthyStatus(), resp.Status)
assert.Nil(t, err)
})
}
func Test_ManualCompaction(t *testing.T) {
t.Run("test manual compaction", func(t *testing.T) {
datacoord := &DataCoordMock{}
proxy := &Proxy{dataCoord: datacoord}
proxy.stateCode.Store(internalpb.StateCode_Healthy)
resp, err := proxy.ManualCompaction(context.TODO(), nil)
assert.EqualValues(t, &milvuspb.ManualCompactionResponse{}, resp)
assert.Nil(t, err)
})
t.Run("test manual compaction with unhealthy", func(t *testing.T) {
datacoord := &DataCoordMock{}
proxy := &Proxy{dataCoord: datacoord}
proxy.stateCode.Store(internalpb.StateCode_Abnormal)
resp, err := proxy.ManualCompaction(context.TODO(), nil)
assert.EqualValues(t, unhealthyStatus(), resp.Status)
assert.Nil(t, err)
})
}
func Test_GetCompactionStateWithPlans(t *testing.T) {
t.Run("test get compaction state with plans", func(t *testing.T) {
datacoord := &DataCoordMock{}
proxy := &Proxy{dataCoord: datacoord}
proxy.stateCode.Store(internalpb.StateCode_Healthy)
resp, err := proxy.GetCompactionStateWithPlans(context.TODO(), nil)
assert.EqualValues(t, &milvuspb.GetCompactionPlansResponse{}, resp)
assert.Nil(t, err)
})
t.Run("test get compaction state with plans with unhealthy proxy", func(t *testing.T) {
datacoord := &DataCoordMock{}
proxy := &Proxy{dataCoord: datacoord}
proxy.stateCode.Store(internalpb.StateCode_Abnormal)
resp, err := proxy.GetCompactionStateWithPlans(context.TODO(), nil)
assert.EqualValues(t, unhealthyStatus(), resp.Status)
assert.Nil(t, err)
})
}

View File

@ -1,5 +1,4 @@
// Copyright (C) 2019-2020 Zilliz. All rights reserved.
//
// Copyright (C) 2019-2020 Zilliz. All rights reserved.//
// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
@ -225,9 +224,10 @@ type DataCoord interface {
// CompleteCompaction completes a compaction with the result
CompleteCompaction(ctx context.Context, req *datapb.CompactionResult) (*commonpb.Status, error)
// ManualCompaction triggers a compaction for a collection
ManualCompaction(ctx context.Context, req *datapb.ManualCompactionRequest) (*datapb.ManualCompactionResponse, error)
ManualCompaction(ctx context.Context, req *milvuspb.ManualCompactionRequest) (*milvuspb.ManualCompactionResponse, error)
// GetCompactionState gets the state of a compaction
GetCompactionState(ctx context.Context, req *datapb.GetCompactionStateRequest) (*datapb.GetCompactionStateResponse, error)
GetCompactionState(ctx context.Context, req *milvuspb.GetCompactionStateRequest) (*milvuspb.GetCompactionStateResponse, error)
GetCompactionStateWithPlans(ctx context.Context, req *milvuspb.GetCompactionPlansRequest) (*milvuspb.GetCompactionPlansResponse, error)
}
// IndexNode is the interface `indexnode` package implements
@ -953,6 +953,9 @@ type ProxyComponent interface {
// otherwise, the `ErrorCode` of `Status` will be `Error`, and the `Reason` of `Status` will record the fail cause.
// error is always nil
AlterAlias(ctx context.Context, request *milvuspb.AlterAliasRequest) (*commonpb.Status, error)
GetCompactionState(ctx context.Context, req *milvuspb.GetCompactionStateRequest) (*milvuspb.GetCompactionStateResponse, error)
ManualCompaction(ctx context.Context, req *milvuspb.ManualCompactionRequest) (*milvuspb.ManualCompactionResponse, error)
GetCompactionStateWithPlans(ctx context.Context, req *milvuspb.GetCompactionPlansRequest) (*milvuspb.GetCompactionPlansResponse, error)
}
// QueryNode is the interface `querynode` package implements