cheliequan
2023-02-10 54747b4c57f1c44b5c973ad585768c83049429de
protomsg.pb.go
@@ -24,33 +24,63 @@
type TableChanged int32
const (
   TableChanged_T_Camera         TableChanged = 0
   TableChanged_T_CameraTask     TableChanged = 1
   TableChanged_T_CameraTaskArgs TableChanged = 2
   TableChanged_T_Task           TableChanged = 3
   TableChanged_T_TaskSdk        TableChanged = 4
   TableChanged_T_TaskSdkRule    TableChanged = 5
   TableChanged_T_Sdk            TableChanged = 6
   TableChanged_T_Camera                TableChanged = 0
   TableChanged_T_CameraRule            TableChanged = 1
   TableChanged_T_Sdk                   TableChanged = 2
   TableChanged_T_CameraPolygon         TableChanged = 3
   TableChanged_T_TimeRule              TableChanged = 4
   TableChanged_T_Server                TableChanged = 5
   TableChanged_T_PollConfig            TableChanged = 6
   TableChanged_T_File                  TableChanged = 7
   TableChanged_T_FileSetting           TableChanged = 8
   TableChanged_T_SdkChanSet            TableChanged = 9
   TableChanged_T_FileStack             TableChanged = 10
   TableChanged_T_ResourceConfig        TableChanged = 11
   TableChanged_T_CalculationPower      TableChanged = 12
   TableChanged_T_EventPush             TableChanged = 13
   TableChanged_T_Cluster               TableChanged = 14
   TableChanged_T_CameraPolygonRelation TableChanged = 15
   TableChanged_T_Voice                 TableChanged = 16
)
var TableChanged_name = map[int32]string{
   0: "T_Camera",
   1: "T_CameraTask",
   2: "T_CameraTaskArgs",
   3: "T_Task",
   4: "T_TaskSdk",
   5: "T_TaskSdkRule",
   6: "T_Sdk",
   0:  "T_Camera",
   1:  "T_CameraRule",
   2:  "T_Sdk",
   3:  "T_CameraPolygon",
   4:  "T_TimeRule",
   5:  "T_Server",
   6:  "T_PollConfig",
   7:  "T_File",
   8:  "T_FileSetting",
   9:  "T_SdkChanSet",
   10: "T_FileStack",
   11: "T_ResourceConfig",
   12: "T_CalculationPower",
   13: "T_EventPush",
   14: "T_Cluster",
   15: "T_CameraPolygonRelation",
   16: "T_Voice",
}
var TableChanged_value = map[string]int32{
   "T_Camera":         0,
   "T_CameraTask":     1,
   "T_CameraTaskArgs": 2,
   "T_Task":           3,
   "T_TaskSdk":        4,
   "T_TaskSdkRule":    5,
   "T_Sdk":            6,
   "T_Camera":                0,
   "T_CameraRule":            1,
   "T_Sdk":                   2,
   "T_CameraPolygon":         3,
   "T_TimeRule":              4,
   "T_Server":                5,
   "T_PollConfig":            6,
   "T_File":                  7,
   "T_FileSetting":           8,
   "T_SdkChanSet":            9,
   "T_FileStack":             10,
   "T_ResourceConfig":        11,
   "T_CalculationPower":      12,
   "T_EventPush":             13,
   "T_Cluster":               14,
   "T_CameraPolygonRelation": 15,
   "T_Voice":                 16,
}
func (x TableChanged) String() string {
@@ -89,171 +119,57 @@
   return fileDescriptor_32de24555f916688, []int{1}
}
type TaskLabel struct {
   Taskid               string   `protobuf:"bytes,1,opt,name=taskid,proto3" json:"taskid,omitempty"`
   Sdkids               []string `protobuf:"bytes,2,rep,name=sdkids,proto3" json:"sdkids,omitempty"`
   Index                int32    `protobuf:"varint,3,opt,name=index,proto3" json:"index,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
type CompareEventType int32
const (
   CompareEventType_ReInitCache CompareEventType = 0
   CompareEventType_UpdateCache CompareEventType = 1
   CompareEventType_Compare     CompareEventType = 2
)
var CompareEventType_name = map[int32]string{
   0: "ReInitCache",
   1: "UpdateCache",
   2: "Compare",
}
func (m *TaskLabel) Reset()         { *m = TaskLabel{} }
func (m *TaskLabel) String() string { return proto.CompactTextString(m) }
func (*TaskLabel) ProtoMessage()    {}
func (*TaskLabel) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{0}
var CompareEventType_value = map[string]int32{
   "ReInitCache": 0,
   "UpdateCache": 1,
   "Compare":     2,
}
func (m *TaskLabel) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_TaskLabel.Unmarshal(m, b)
}
func (m *TaskLabel) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_TaskLabel.Marshal(b, m, deterministic)
}
func (m *TaskLabel) XXX_Merge(src proto.Message) {
   xxx_messageInfo_TaskLabel.Merge(m, src)
}
func (m *TaskLabel) XXX_Size() int {
   return xxx_messageInfo_TaskLabel.Size(m)
}
func (m *TaskLabel) XXX_DiscardUnknown() {
   xxx_messageInfo_TaskLabel.DiscardUnknown(m)
func (x CompareEventType) String() string {
   return proto.EnumName(CompareEventType_name, int32(x))
}
var xxx_messageInfo_TaskLabel proto.InternalMessageInfo
func (m *TaskLabel) GetTaskid() string {
   if m != nil {
      return m.Taskid
   }
   return ""
}
func (m *TaskLabel) GetSdkids() []string {
   if m != nil {
      return m.Sdkids
   }
   return nil
}
func (m *TaskLabel) GetIndex() int32 {
   if m != nil {
      return m.Index
   }
   return 0
}
//SdkMessage struct test
type SdkMessage struct {
   Cid                  string     `protobuf:"bytes,1,opt,name=cid,proto3" json:"cid,omitempty"`
   Tasklab              *TaskLabel `protobuf:"bytes,2,opt,name=tasklab,proto3" json:"tasklab,omitempty"`
   Data                 []byte     `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`
   XXX_NoUnkeyedLiteral struct{}   `json:"-"`
   XXX_unrecognized     []byte     `json:"-"`
   XXX_sizecache        int32      `json:"-"`
}
func (m *SdkMessage) Reset()         { *m = SdkMessage{} }
func (m *SdkMessage) String() string { return proto.CompactTextString(m) }
func (*SdkMessage) ProtoMessage()    {}
func (*SdkMessage) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{1}
}
func (m *SdkMessage) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_SdkMessage.Unmarshal(m, b)
}
func (m *SdkMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_SdkMessage.Marshal(b, m, deterministic)
}
func (m *SdkMessage) XXX_Merge(src proto.Message) {
   xxx_messageInfo_SdkMessage.Merge(m, src)
}
func (m *SdkMessage) XXX_Size() int {
   return xxx_messageInfo_SdkMessage.Size(m)
}
func (m *SdkMessage) XXX_DiscardUnknown() {
   xxx_messageInfo_SdkMessage.DiscardUnknown(m)
}
var xxx_messageInfo_SdkMessage proto.InternalMessageInfo
func (m *SdkMessage) GetCid() string {
   if m != nil {
      return m.Cid
   }
   return ""
}
func (m *SdkMessage) GetTasklab() *TaskLabel {
   if m != nil {
      return m.Tasklab
   }
   return nil
}
func (m *SdkMessage) GetData() []byte {
   if m != nil {
      return m.Data
   }
   return nil
}
// Image ipc struct
type Image struct {
   Width                int32    `protobuf:"varint,1,opt,name=width,proto3" json:"width,omitempty"`
   Height               int32    `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"`
   Data                 []byte   `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *Image) Reset()         { *m = Image{} }
func (m *Image) String() string { return proto.CompactTextString(m) }
func (*Image) ProtoMessage()    {}
func (*Image) Descriptor() ([]byte, []int) {
func (CompareEventType) EnumDescriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{2}
}
func (m *Image) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_Image.Unmarshal(m, b)
}
func (m *Image) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_Image.Marshal(b, m, deterministic)
}
func (m *Image) XXX_Merge(src proto.Message) {
   xxx_messageInfo_Image.Merge(m, src)
}
func (m *Image) XXX_Size() int {
   return xxx_messageInfo_Image.Size(m)
}
func (m *Image) XXX_DiscardUnknown() {
   xxx_messageInfo_Image.DiscardUnknown(m)
type EsCacheChanged int32
const (
   EsCacheChanged_T_DbTable       EsCacheChanged = 0
   EsCacheChanged_T_DbTablePerson EsCacheChanged = 1
)
var EsCacheChanged_name = map[int32]string{
   0: "T_DbTable",
   1: "T_DbTablePerson",
}
var xxx_messageInfo_Image proto.InternalMessageInfo
func (m *Image) GetWidth() int32 {
   if m != nil {
      return m.Width
   }
   return 0
var EsCacheChanged_value = map[string]int32{
   "T_DbTable":       0,
   "T_DbTablePerson": 1,
}
func (m *Image) GetHeight() int32 {
   if m != nil {
      return m.Height
   }
   return 0
func (x EsCacheChanged) String() string {
   return proto.EnumName(EsCacheChanged_name, int32(x))
}
func (m *Image) GetData() []byte {
   if m != nil {
      return m.Data
   }
   return nil
func (EsCacheChanged) EnumDescriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{3}
}
//Area结构体
@@ -270,7 +186,7 @@
func (m *Area) String() string { return proto.CompactTextString(m) }
func (*Area) ProtoMessage()    {}
func (*Area) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{3}
   return fileDescriptor_32de24555f916688, []int{0}
}
func (m *Area) XXX_Unmarshal(b []byte) error {
@@ -314,30 +230,44 @@
//Camera结构体
type Camera struct {
   Id                   string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   Name                 string   `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
   Type                 int32    `protobuf:"varint,3,opt,name=type,proto3" json:"type,omitempty"`
   Addr                 string   `protobuf:"bytes,4,opt,name=addr,proto3" json:"addr,omitempty"`
   Areaid               int32    `protobuf:"varint,5,opt,name=areaid,proto3" json:"areaid,omitempty"`
   Longitude            float32  `protobuf:"fixed32,6,opt,name=longitude,proto3" json:"longitude,omitempty"`
   Latitude             float32  `protobuf:"fixed32,7,opt,name=latitude,proto3" json:"latitude,omitempty"`
   Rtsp                 string   `protobuf:"bytes,8,opt,name=rtsp,proto3" json:"rtsp,omitempty"`
   Ip                   string   `protobuf:"bytes,9,opt,name=ip,proto3" json:"ip,omitempty"`
   Port                 int32    `protobuf:"varint,10,opt,name=port,proto3" json:"port,omitempty"`
   Username             string   `protobuf:"bytes,11,opt,name=username,proto3" json:"username,omitempty"`
   Password             string   `protobuf:"bytes,12,opt,name=password,proto3" json:"password,omitempty"`
   Brand                string   `protobuf:"bytes,13,opt,name=brand,proto3" json:"brand,omitempty"`
   Reserved             string   `protobuf:"bytes,14,opt,name=reserved,proto3" json:"reserved,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
   Id                   string    `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   Name                 string    `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
   Alias                string    `protobuf:"bytes,3,opt,name=alias,proto3" json:"alias,omitempty"`
   SnapshotUrl          string    `protobuf:"bytes,4,opt,name=snapshot_url,json=snapshotUrl,proto3" json:"snapshot_url,omitempty"`
   Type                 int32     `protobuf:"varint,5,opt,name=type,proto3" json:"type,omitempty"`
   Addr                 string    `protobuf:"bytes,6,opt,name=addr,proto3" json:"addr,omitempty"`
   Longitude            float32   `protobuf:"fixed32,7,opt,name=longitude,proto3" json:"longitude,omitempty"`
   Latitude             float32   `protobuf:"fixed32,8,opt,name=latitude,proto3" json:"latitude,omitempty"`
   Floor                int32     `protobuf:"varint,9,opt,name=floor,proto3" json:"floor,omitempty"`
   Rtsp                 string    `protobuf:"bytes,10,opt,name=rtsp,proto3" json:"rtsp,omitempty"`
   Ip                   string    `protobuf:"bytes,11,opt,name=ip,proto3" json:"ip,omitempty"`
   Port                 int32     `protobuf:"varint,12,opt,name=port,proto3" json:"port,omitempty"`
   Username             string    `protobuf:"bytes,13,opt,name=username,proto3" json:"username,omitempty"`
   Password             string    `protobuf:"bytes,14,opt,name=password,proto3" json:"password,omitempty"`
   Brand                string    `protobuf:"bytes,15,opt,name=brand,proto3" json:"brand,omitempty"`
   Reserved             string    `protobuf:"bytes,16,opt,name=reserved,proto3" json:"reserved,omitempty"`
   IsRunning            bool      `protobuf:"varint,17,opt,name=is_running,json=isRunning,proto3" json:"is_running,omitempty"`
   RunEnable            bool      `protobuf:"varint,18,opt,name=run_enable,json=runEnable,proto3" json:"run_enable,omitempty"`
   RunType              int32     `protobuf:"varint,19,opt,name=run_type,json=runType,proto3" json:"run_type,omitempty"`
   RunServerId          string    `protobuf:"bytes,20,opt,name=run_server_id,json=runServerId,proto3" json:"run_server_id,omitempty"`
   ResolutionWidth      int32     `protobuf:"varint,21,opt,name=resolution_width,json=resolutionWidth,proto3" json:"resolution_width,omitempty"`
   ResolutionHeight     int32     `protobuf:"varint,22,opt,name=resolution_height,json=resolutionHeight,proto3" json:"resolution_height,omitempty"`
   Fps                  int32     `protobuf:"varint,23,opt,name=fps,proto3" json:"fps,omitempty"`
   Sensors              []*Sensor `protobuf:"bytes,24,rep,name=sensors,proto3" json:"sensors,omitempty"`
   VoiceEnable          bool      `protobuf:"varint,25,opt,name=voiceEnable,proto3" json:"voiceEnable,omitempty"`
   VoiceId              string    `protobuf:"bytes,26,opt,name=voiceId,proto3" json:"voiceId,omitempty"`
   CoordTransform       string    `protobuf:"bytes,27,opt,name=coordTransform,proto3" json:"coordTransform,omitempty"`
   Status               int32     `protobuf:"varint,28,opt,name=status,proto3" json:"status,omitempty"`
   XXX_NoUnkeyedLiteral struct{}  `json:"-"`
   XXX_unrecognized     []byte    `json:"-"`
   XXX_sizecache        int32     `json:"-"`
}
func (m *Camera) Reset()         { *m = Camera{} }
func (m *Camera) String() string { return proto.CompactTextString(m) }
func (*Camera) ProtoMessage()    {}
func (*Camera) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{4}
   return fileDescriptor_32de24555f916688, []int{1}
}
func (m *Camera) XXX_Unmarshal(b []byte) error {
@@ -372,6 +302,20 @@
   return ""
}
func (m *Camera) GetAlias() string {
   if m != nil {
      return m.Alias
   }
   return ""
}
func (m *Camera) GetSnapshotUrl() string {
   if m != nil {
      return m.SnapshotUrl
   }
   return ""
}
func (m *Camera) GetType() int32 {
   if m != nil {
      return m.Type
@@ -386,13 +330,6 @@
   return ""
}
func (m *Camera) GetAreaid() int32 {
   if m != nil {
      return m.Areaid
   }
   return 0
}
func (m *Camera) GetLongitude() float32 {
   if m != nil {
      return m.Longitude
@@ -403,6 +340,13 @@
func (m *Camera) GetLatitude() float32 {
   if m != nil {
      return m.Latitude
   }
   return 0
}
func (m *Camera) GetFloor() int32 {
   if m != nil {
      return m.Floor
   }
   return 0
}
@@ -456,323 +400,310 @@
   return ""
}
//摄像机的任务信息
type CameraAndTaskInfo struct {
   Camera               *Camera  `protobuf:"bytes,1,opt,name=camera,proto3" json:"camera,omitempty"`
   Tasks                []*Task  `protobuf:"bytes,2,rep,name=tasks,proto3" json:"tasks,omitempty"`
func (m *Camera) GetIsRunning() bool {
   if m != nil {
      return m.IsRunning
   }
   return false
}
func (m *Camera) GetRunEnable() bool {
   if m != nil {
      return m.RunEnable
   }
   return false
}
func (m *Camera) GetRunType() int32 {
   if m != nil {
      return m.RunType
   }
   return 0
}
func (m *Camera) GetRunServerId() string {
   if m != nil {
      return m.RunServerId
   }
   return ""
}
func (m *Camera) GetResolutionWidth() int32 {
   if m != nil {
      return m.ResolutionWidth
   }
   return 0
}
func (m *Camera) GetResolutionHeight() int32 {
   if m != nil {
      return m.ResolutionHeight
   }
   return 0
}
func (m *Camera) GetFps() int32 {
   if m != nil {
      return m.Fps
   }
   return 0
}
func (m *Camera) GetSensors() []*Sensor {
   if m != nil {
      return m.Sensors
   }
   return nil
}
func (m *Camera) GetVoiceEnable() bool {
   if m != nil {
      return m.VoiceEnable
   }
   return false
}
func (m *Camera) GetVoiceId() string {
   if m != nil {
      return m.VoiceId
   }
   return ""
}
func (m *Camera) GetCoordTransform() string {
   if m != nil {
      return m.CoordTransform
   }
   return ""
}
func (m *Camera) GetStatus() int32 {
   if m != nil {
      return m.Status
   }
   return 0
}
type Sensor struct {
   Id                   string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   Type                 string   `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"`
   Ip                   string   `protobuf:"bytes,3,opt,name=ip,proto3" json:"ip,omitempty"`
   Port                 int32    `protobuf:"varint,4,opt,name=port,proto3" json:"port,omitempty"`
   Username             string   `protobuf:"bytes,5,opt,name=username,proto3" json:"username,omitempty"`
   Password             string   `protobuf:"bytes,6,opt,name=password,proto3" json:"password,omitempty"`
   Threshold            int32    `protobuf:"varint,7,opt,name=threshold,proto3" json:"threshold,omitempty"`
   Enable               bool     `protobuf:"varint,8,opt,name=enable,proto3" json:"enable,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *CameraAndTaskInfo) Reset()         { *m = CameraAndTaskInfo{} }
func (m *CameraAndTaskInfo) String() string { return proto.CompactTextString(m) }
func (*CameraAndTaskInfo) ProtoMessage()    {}
func (*CameraAndTaskInfo) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{5}
func (m *Sensor) Reset()         { *m = Sensor{} }
func (m *Sensor) String() string { return proto.CompactTextString(m) }
func (*Sensor) ProtoMessage()    {}
func (*Sensor) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{2}
}
func (m *CameraAndTaskInfo) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_CameraAndTaskInfo.Unmarshal(m, b)
func (m *Sensor) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_Sensor.Unmarshal(m, b)
}
func (m *CameraAndTaskInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_CameraAndTaskInfo.Marshal(b, m, deterministic)
func (m *Sensor) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_Sensor.Marshal(b, m, deterministic)
}
func (m *CameraAndTaskInfo) XXX_Merge(src proto.Message) {
   xxx_messageInfo_CameraAndTaskInfo.Merge(m, src)
func (m *Sensor) XXX_Merge(src proto.Message) {
   xxx_messageInfo_Sensor.Merge(m, src)
}
func (m *CameraAndTaskInfo) XXX_Size() int {
   return xxx_messageInfo_CameraAndTaskInfo.Size(m)
func (m *Sensor) XXX_Size() int {
   return xxx_messageInfo_Sensor.Size(m)
}
func (m *CameraAndTaskInfo) XXX_DiscardUnknown() {
   xxx_messageInfo_CameraAndTaskInfo.DiscardUnknown(m)
func (m *Sensor) XXX_DiscardUnknown() {
   xxx_messageInfo_Sensor.DiscardUnknown(m)
}
var xxx_messageInfo_CameraAndTaskInfo proto.InternalMessageInfo
var xxx_messageInfo_Sensor proto.InternalMessageInfo
func (m *CameraAndTaskInfo) GetCamera() *Camera {
   if m != nil {
      return m.Camera
   }
   return nil
}
func (m *CameraAndTaskInfo) GetTasks() []*Task {
   if m != nil {
      return m.Tasks
   }
   return nil
}
//Task结构体
type Task struct {
   Taskid               string   `protobuf:"bytes,1,opt,name=taskid,proto3" json:"taskid,omitempty"`
   Taskname             string   `protobuf:"bytes,2,opt,name=taskname,proto3" json:"taskname,omitempty"`
   CreateAt             string   `protobuf:"bytes,3,opt,name=create_at,json=createAt,proto3" json:"create_at,omitempty"`
   CreateBy             string   `protobuf:"bytes,4,opt,name=create_by,json=createBy,proto3" json:"create_by,omitempty"`
   UpdateAt             string   `protobuf:"bytes,5,opt,name=update_at,json=updateAt,proto3" json:"update_at,omitempty"`
   Enable               bool     `protobuf:"varint,6,opt,name=enable,proto3" json:"enable,omitempty"`
   IsAlarm              bool     `protobuf:"varint,7,opt,name=is_alarm,json=isAlarm,proto3" json:"is_alarm,omitempty"`
   DelFlag              bool     `protobuf:"varint,8,opt,name=del_flag,json=delFlag,proto3" json:"del_flag,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *Task) Reset()         { *m = Task{} }
func (m *Task) String() string { return proto.CompactTextString(m) }
func (*Task) ProtoMessage()    {}
func (*Task) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{6}
}
func (m *Task) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_Task.Unmarshal(m, b)
}
func (m *Task) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_Task.Marshal(b, m, deterministic)
}
func (m *Task) XXX_Merge(src proto.Message) {
   xxx_messageInfo_Task.Merge(m, src)
}
func (m *Task) XXX_Size() int {
   return xxx_messageInfo_Task.Size(m)
}
func (m *Task) XXX_DiscardUnknown() {
   xxx_messageInfo_Task.DiscardUnknown(m)
}
var xxx_messageInfo_Task proto.InternalMessageInfo
func (m *Task) GetTaskid() string {
   if m != nil {
      return m.Taskid
   }
   return ""
}
func (m *Task) GetTaskname() string {
   if m != nil {
      return m.Taskname
   }
   return ""
}
func (m *Task) GetCreateAt() string {
   if m != nil {
      return m.CreateAt
   }
   return ""
}
func (m *Task) GetCreateBy() string {
   if m != nil {
      return m.CreateBy
   }
   return ""
}
func (m *Task) GetUpdateAt() string {
   if m != nil {
      return m.UpdateAt
   }
   return ""
}
func (m *Task) GetEnable() bool {
   if m != nil {
      return m.Enable
   }
   return false
}
func (m *Task) GetIsAlarm() bool {
   if m != nil {
      return m.IsAlarm
   }
   return false
}
func (m *Task) GetDelFlag() bool {
   if m != nil {
      return m.DelFlag
   }
   return false
}
type TaskSdkInfo struct {
   Task                 *Task    `protobuf:"bytes,1,opt,name=task,proto3" json:"task,omitempty"`
   Sdks                 []*Sdk   `protobuf:"bytes,2,rep,name=sdks,proto3" json:"sdks,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *TaskSdkInfo) Reset()         { *m = TaskSdkInfo{} }
func (m *TaskSdkInfo) String() string { return proto.CompactTextString(m) }
func (*TaskSdkInfo) ProtoMessage()    {}
func (*TaskSdkInfo) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{7}
}
func (m *TaskSdkInfo) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_TaskSdkInfo.Unmarshal(m, b)
}
func (m *TaskSdkInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_TaskSdkInfo.Marshal(b, m, deterministic)
}
func (m *TaskSdkInfo) XXX_Merge(src proto.Message) {
   xxx_messageInfo_TaskSdkInfo.Merge(m, src)
}
func (m *TaskSdkInfo) XXX_Size() int {
   return xxx_messageInfo_TaskSdkInfo.Size(m)
}
func (m *TaskSdkInfo) XXX_DiscardUnknown() {
   xxx_messageInfo_TaskSdkInfo.DiscardUnknown(m)
}
var xxx_messageInfo_TaskSdkInfo proto.InternalMessageInfo
func (m *TaskSdkInfo) GetTask() *Task {
   if m != nil {
      return m.Task
   }
   return nil
}
func (m *TaskSdkInfo) GetSdks() []*Sdk {
   if m != nil {
      return m.Sdks
   }
   return nil
}
//摄像机任务
type CameraTask struct {
   Id                   string    `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   CameraIds            string    `protobuf:"bytes,2,opt,name=camera_ids,json=cameraIds,proto3" json:"camera_ids,omitempty"`
   TaskId               string    `protobuf:"bytes,3,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
   TimeRule             []*DayCtl `protobuf:"bytes,4,rep,name=time_rule,json=timeRule,proto3" json:"time_rule,omitempty"`
   ReactRule            string    `protobuf:"bytes,5,opt,name=react_rule,json=reactRule,proto3" json:"react_rule,omitempty"`
   ReactDevice          string    `protobuf:"bytes,6,opt,name=react_device,json=reactDevice,proto3" json:"react_device,omitempty"`
   DelFlag              bool      `protobuf:"varint,7,opt,name=del_flag,json=delFlag,proto3" json:"del_flag,omitempty"`
   UpdateFlag           bool      `protobuf:"varint,8,opt,name=update_flag,json=updateFlag,proto3" json:"update_flag,omitempty"`
   Enable               bool      `protobuf:"varint,9,opt,name=enable,proto3" json:"enable,omitempty"`
   Sort                 int32     `protobuf:"varint,10,opt,name=sort,proto3" json:"sort,omitempty"`
   IsFull               bool      `protobuf:"varint,11,opt,name=is_full,json=isFull,proto3" json:"is_full,omitempty"`
   LinkGroupId          string    `protobuf:"bytes,12,opt,name=link_group_id,json=linkGroupId,proto3" json:"link_group_id,omitempty"`
   XXX_NoUnkeyedLiteral struct{}  `json:"-"`
   XXX_unrecognized     []byte    `json:"-"`
   XXX_sizecache        int32     `json:"-"`
}
func (m *CameraTask) Reset()         { *m = CameraTask{} }
func (m *CameraTask) String() string { return proto.CompactTextString(m) }
func (*CameraTask) ProtoMessage()    {}
func (*CameraTask) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{8}
}
func (m *CameraTask) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_CameraTask.Unmarshal(m, b)
}
func (m *CameraTask) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_CameraTask.Marshal(b, m, deterministic)
}
func (m *CameraTask) XXX_Merge(src proto.Message) {
   xxx_messageInfo_CameraTask.Merge(m, src)
}
func (m *CameraTask) XXX_Size() int {
   return xxx_messageInfo_CameraTask.Size(m)
}
func (m *CameraTask) XXX_DiscardUnknown() {
   xxx_messageInfo_CameraTask.DiscardUnknown(m)
}
var xxx_messageInfo_CameraTask proto.InternalMessageInfo
func (m *CameraTask) GetId() string {
func (m *Sensor) GetId() string {
   if m != nil {
      return m.Id
   }
   return ""
}
func (m *CameraTask) GetCameraIds() string {
func (m *Sensor) GetType() string {
   if m != nil {
      return m.CameraIds
      return m.Type
   }
   return ""
}
func (m *CameraTask) GetTaskId() string {
func (m *Sensor) GetIp() string {
   if m != nil {
      return m.TaskId
      return m.Ip
   }
   return ""
}
func (m *CameraTask) GetTimeRule() []*DayCtl {
func (m *Sensor) GetPort() int32 {
   if m != nil {
      return m.TimeRule
      return m.Port
   }
   return nil
   return 0
}
func (m *CameraTask) GetReactRule() string {
func (m *Sensor) GetUsername() string {
   if m != nil {
      return m.ReactRule
      return m.Username
   }
   return ""
}
func (m *CameraTask) GetReactDevice() string {
func (m *Sensor) GetPassword() string {
   if m != nil {
      return m.ReactDevice
      return m.Password
   }
   return ""
}
func (m *CameraTask) GetDelFlag() bool {
func (m *Sensor) GetThreshold() int32 {
   if m != nil {
      return m.DelFlag
      return m.Threshold
   }
   return false
   return 0
}
func (m *CameraTask) GetUpdateFlag() bool {
   if m != nil {
      return m.UpdateFlag
   }
   return false
}
func (m *CameraTask) GetEnable() bool {
func (m *Sensor) GetEnable() bool {
   if m != nil {
      return m.Enable
   }
   return false
}
func (m *CameraTask) GetSort() int32 {
//摄像机联动
type CameraLink struct {
   CameraIds            string   `protobuf:"bytes,1,opt,name=camera_ids,json=cameraIds,proto3" json:"camera_ids,omitempty"`
   LinkTaskId           string   `protobuf:"bytes,2,opt,name=link_task_id,json=linkTaskId,proto3" json:"link_task_id,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *CameraLink) Reset()         { *m = CameraLink{} }
func (m *CameraLink) String() string { return proto.CompactTextString(m) }
func (*CameraLink) ProtoMessage()    {}
func (*CameraLink) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{3}
}
func (m *CameraLink) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_CameraLink.Unmarshal(m, b)
}
func (m *CameraLink) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_CameraLink.Marshal(b, m, deterministic)
}
func (m *CameraLink) XXX_Merge(src proto.Message) {
   xxx_messageInfo_CameraLink.Merge(m, src)
}
func (m *CameraLink) XXX_Size() int {
   return xxx_messageInfo_CameraLink.Size(m)
}
func (m *CameraLink) XXX_DiscardUnknown() {
   xxx_messageInfo_CameraLink.DiscardUnknown(m)
}
var xxx_messageInfo_CameraLink proto.InternalMessageInfo
func (m *CameraLink) GetCameraIds() string {
   if m != nil {
      return m.Sort
      return m.CameraIds
   }
   return ""
}
func (m *CameraLink) GetLinkTaskId() string {
   if m != nil {
      return m.LinkTaskId
   }
   return ""
}
type SdkRun struct {
   IpcId                string   `protobuf:"bytes,1,opt,name=ipc_id,json=ipcId,proto3" json:"ipc_id,omitempty"`
   SdkType              string   `protobuf:"bytes,2,opt,name=sdk_type,json=sdkType,proto3" json:"sdk_type,omitempty"`
   IsTriggerByPreSdk    int32    `protobuf:"varint,3,opt,name=isTriggerByPreSdk,proto3" json:"isTriggerByPreSdk,omitempty"`
   Confidence           int32    `protobuf:"varint,4,opt,name=confidence,proto3" json:"confidence,omitempty"`
   BReid                bool     `protobuf:"varint,5,opt,name=bReid,proto3" json:"bReid,omitempty"`
   TriggerNextSdkType   int32    `protobuf:"varint,6,opt,name=triggerNextSdkType,proto3" json:"triggerNextSdkType,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *SdkRun) Reset()         { *m = SdkRun{} }
func (m *SdkRun) String() string { return proto.CompactTextString(m) }
func (*SdkRun) ProtoMessage()    {}
func (*SdkRun) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{4}
}
func (m *SdkRun) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_SdkRun.Unmarshal(m, b)
}
func (m *SdkRun) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_SdkRun.Marshal(b, m, deterministic)
}
func (m *SdkRun) XXX_Merge(src proto.Message) {
   xxx_messageInfo_SdkRun.Merge(m, src)
}
func (m *SdkRun) XXX_Size() int {
   return xxx_messageInfo_SdkRun.Size(m)
}
func (m *SdkRun) XXX_DiscardUnknown() {
   xxx_messageInfo_SdkRun.DiscardUnknown(m)
}
var xxx_messageInfo_SdkRun proto.InternalMessageInfo
func (m *SdkRun) GetIpcId() string {
   if m != nil {
      return m.IpcId
   }
   return ""
}
func (m *SdkRun) GetSdkType() string {
   if m != nil {
      return m.SdkType
   }
   return ""
}
func (m *SdkRun) GetIsTriggerByPreSdk() int32 {
   if m != nil {
      return m.IsTriggerByPreSdk
   }
   return 0
}
func (m *CameraTask) GetIsFull() bool {
func (m *SdkRun) GetConfidence() int32 {
   if m != nil {
      return m.IsFull
      return m.Confidence
   }
   return 0
}
func (m *SdkRun) GetBReid() bool {
   if m != nil {
      return m.BReid
   }
   return false
}
func (m *CameraTask) GetLinkGroupId() string {
func (m *SdkRun) GetTriggerNextSdkType() int32 {
   if m != nil {
      return m.LinkGroupId
      return m.TriggerNextSdkType
   }
   return ""
   return 0
}
//摄像机布防的时间规则,可以设置多个,用id关联到具体的规则配置中
@@ -789,7 +720,7 @@
func (m *CameraTimerule) String() string { return proto.CompactTextString(m) }
func (*CameraTimerule) ProtoMessage()    {}
func (*CameraTimerule) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{9}
   return fileDescriptor_32de24555f916688, []int{5}
}
func (m *CameraTimerule) XXX_Unmarshal(b []byte) error {
@@ -844,7 +775,7 @@
func (m *DayCtl) String() string { return proto.CompactTextString(m) }
func (*DayCtl) ProtoMessage()    {}
func (*DayCtl) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{10}
   return fileDescriptor_32de24555f916688, []int{6}
}
func (m *DayCtl) XXX_Unmarshal(b []byte) error {
@@ -892,7 +823,7 @@
func (m *TimeRange) String() string { return proto.CompactTextString(m) }
func (*TimeRange) ProtoMessage()    {}
func (*TimeRange) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{11}
   return fileDescriptor_32de24555f916688, []int{7}
}
func (m *TimeRange) XXX_Unmarshal(b []byte) error {
@@ -931,7 +862,7 @@
type Polygon struct {
   Id                   string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   Name                 string   `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
   Points               []*Point `protobuf:"bytes,4,rep,name=points,proto3" json:"points,omitempty"`
   Points               []*Point `protobuf:"bytes,3,rep,name=points,proto3" json:"points,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
@@ -941,7 +872,7 @@
func (m *Polygon) String() string { return proto.CompactTextString(m) }
func (*Polygon) ProtoMessage()    {}
func (*Polygon) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{12}
   return fileDescriptor_32de24555f916688, []int{8}
}
func (m *Polygon) XXX_Unmarshal(b []byte) error {
@@ -983,146 +914,698 @@
   return nil
}
type CameraTaskArgs struct {
   Id                   string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   CameraTaskId         string   `protobuf:"bytes,2,opt,name=camera_task_id,json=cameraTaskId,proto3" json:"camera_task_id,omitempty"`
   CameraId             string   `protobuf:"bytes,3,opt,name=camera_id,json=cameraId,proto3" json:"camera_id,omitempty"`
   PolygonId            string   `protobuf:"bytes,4,opt,name=polygon_id,json=polygonId,proto3" json:"polygon_id,omitempty"`
   SdkId                string   `protobuf:"bytes,5,opt,name=sdk_id,json=sdkId,proto3" json:"sdk_id,omitempty"`
   SdkArgAlias          string   `protobuf:"bytes,6,opt,name=sdk_arg_alias,json=sdkArgAlias,proto3" json:"sdk_arg_alias,omitempty"`
   Operator             string   `protobuf:"bytes,7,opt,name=operator,proto3" json:"operator,omitempty"`
   OperatorType         string   `protobuf:"bytes,8,opt,name=operator_type,json=operatorType,proto3" json:"operator_type,omitempty"`
   SdkArgValue          string   `protobuf:"bytes,9,opt,name=sdk_arg_value,json=sdkArgValue,proto3" json:"sdk_arg_value,omitempty"`
   Sort                 int32    `protobuf:"varint,10,opt,name=sort,proto3" json:"sort,omitempty"`
   RuleWithNext         string   `protobuf:"bytes,11,opt,name=rule_with_next,json=ruleWithNext,proto3" json:"rule_with_next,omitempty"`
   GroupId              string   `protobuf:"bytes,12,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
type CameraInfo struct {
   RunServerName        string   `protobuf:"bytes,1,opt,name=runServerName,proto3" json:"runServerName,omitempty"`
   Id                   string   `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
   Name                 string   `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
   RunType              int32    `protobuf:"varint,4,opt,name=run_type,json=runType,proto3" json:"run_type,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *CameraTaskArgs) Reset()         { *m = CameraTaskArgs{} }
func (m *CameraTaskArgs) String() string { return proto.CompactTextString(m) }
func (*CameraTaskArgs) ProtoMessage()    {}
func (*CameraTaskArgs) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{13}
func (m *CameraInfo) Reset()         { *m = CameraInfo{} }
func (m *CameraInfo) String() string { return proto.CompactTextString(m) }
func (*CameraInfo) ProtoMessage()    {}
func (*CameraInfo) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{9}
}
func (m *CameraTaskArgs) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_CameraTaskArgs.Unmarshal(m, b)
func (m *CameraInfo) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_CameraInfo.Unmarshal(m, b)
}
func (m *CameraTaskArgs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_CameraTaskArgs.Marshal(b, m, deterministic)
func (m *CameraInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_CameraInfo.Marshal(b, m, deterministic)
}
func (m *CameraTaskArgs) XXX_Merge(src proto.Message) {
   xxx_messageInfo_CameraTaskArgs.Merge(m, src)
func (m *CameraInfo) XXX_Merge(src proto.Message) {
   xxx_messageInfo_CameraInfo.Merge(m, src)
}
func (m *CameraTaskArgs) XXX_Size() int {
   return xxx_messageInfo_CameraTaskArgs.Size(m)
func (m *CameraInfo) XXX_Size() int {
   return xxx_messageInfo_CameraInfo.Size(m)
}
func (m *CameraTaskArgs) XXX_DiscardUnknown() {
   xxx_messageInfo_CameraTaskArgs.DiscardUnknown(m)
func (m *CameraInfo) XXX_DiscardUnknown() {
   xxx_messageInfo_CameraInfo.DiscardUnknown(m)
}
var xxx_messageInfo_CameraTaskArgs proto.InternalMessageInfo
var xxx_messageInfo_CameraInfo proto.InternalMessageInfo
func (m *CameraTaskArgs) GetId() string {
func (m *CameraInfo) GetRunServerName() string {
   if m != nil {
      return m.RunServerName
   }
   return ""
}
func (m *CameraInfo) GetId() string {
   if m != nil {
      return m.Id
   }
   return ""
}
func (m *CameraTaskArgs) GetCameraTaskId() string {
func (m *CameraInfo) GetName() string {
   if m != nil {
      return m.CameraTaskId
      return m.Name
   }
   return ""
}
func (m *CameraTaskArgs) GetCameraId() string {
func (m *CameraInfo) GetRunType() int32 {
   if m != nil {
      return m.RunType
   }
   return 0
}
type CameraAndRules struct {
   CameraInfo           *CameraInfo  `protobuf:"bytes,1,opt,name=cameraInfo,proto3" json:"cameraInfo,omitempty"`
   Rules                []*GroupRule `protobuf:"bytes,2,rep,name=rules,proto3" json:"rules,omitempty"`
   XXX_NoUnkeyedLiteral struct{}     `json:"-"`
   XXX_unrecognized     []byte       `json:"-"`
   XXX_sizecache        int32        `json:"-"`
}
func (m *CameraAndRules) Reset()         { *m = CameraAndRules{} }
func (m *CameraAndRules) String() string { return proto.CompactTextString(m) }
func (*CameraAndRules) ProtoMessage()    {}
func (*CameraAndRules) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{10}
}
func (m *CameraAndRules) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_CameraAndRules.Unmarshal(m, b)
}
func (m *CameraAndRules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_CameraAndRules.Marshal(b, m, deterministic)
}
func (m *CameraAndRules) XXX_Merge(src proto.Message) {
   xxx_messageInfo_CameraAndRules.Merge(m, src)
}
func (m *CameraAndRules) XXX_Size() int {
   return xxx_messageInfo_CameraAndRules.Size(m)
}
func (m *CameraAndRules) XXX_DiscardUnknown() {
   xxx_messageInfo_CameraAndRules.DiscardUnknown(m)
}
var xxx_messageInfo_CameraAndRules proto.InternalMessageInfo
func (m *CameraAndRules) GetCameraInfo() *CameraInfo {
   if m != nil {
      return m.CameraInfo
   }
   return nil
}
func (m *CameraAndRules) GetRules() []*GroupRule {
   if m != nil {
      return m.Rules
   }
   return nil
}
type GroupRule struct {
   CameraIds            []string `protobuf:"bytes,1,rep,name=cameraIds,proto3" json:"cameraIds,omitempty"`
   Id                   string   `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
   GroupText            string   `protobuf:"bytes,3,opt,name=group_text,json=groupText,proto3" json:"group_text,omitempty"`
   AlarmLevel           int32    `protobuf:"varint,4,opt,name=alarm_level,json=alarmLevel,proto3" json:"alarm_level,omitempty"`
   Rules                []*Rule  `protobuf:"bytes,5,rep,name=rules,proto3" json:"rules,omitempty"`
   SetType              string   `protobuf:"bytes,6,opt,name=set_type,json=setType,proto3" json:"set_type,omitempty"`
   TemplateId           string   `protobuf:"bytes,7,opt,name=template_id,json=templateId,proto3" json:"template_id,omitempty"`
   TemplateRule         string   `protobuf:"bytes,8,opt,name=template_rule,json=templateRule,proto3" json:"template_rule,omitempty"`
   TimeRuleId           string   `protobuf:"bytes,9,opt,name=time_rule_id,json=timeRuleId,proto3" json:"time_rule_id,omitempty"`
   SceneName            string   `protobuf:"bytes,10,opt,name=scene_name,json=sceneName,proto3" json:"scene_name,omitempty"`
   Desc                 string   `protobuf:"bytes,11,opt,name=desc,proto3" json:"desc,omitempty"`
   Enable               bool     `protobuf:"varint,12,opt,name=enable,proto3" json:"enable,omitempty"`
   VoiceId              string   `protobuf:"bytes,13,opt,name=voiceId,proto3" json:"voiceId,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *GroupRule) Reset()         { *m = GroupRule{} }
func (m *GroupRule) String() string { return proto.CompactTextString(m) }
func (*GroupRule) ProtoMessage()    {}
func (*GroupRule) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{11}
}
func (m *GroupRule) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_GroupRule.Unmarshal(m, b)
}
func (m *GroupRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_GroupRule.Marshal(b, m, deterministic)
}
func (m *GroupRule) XXX_Merge(src proto.Message) {
   xxx_messageInfo_GroupRule.Merge(m, src)
}
func (m *GroupRule) XXX_Size() int {
   return xxx_messageInfo_GroupRule.Size(m)
}
func (m *GroupRule) XXX_DiscardUnknown() {
   xxx_messageInfo_GroupRule.DiscardUnknown(m)
}
var xxx_messageInfo_GroupRule proto.InternalMessageInfo
func (m *GroupRule) GetCameraIds() []string {
   if m != nil {
      return m.CameraIds
   }
   return nil
}
func (m *GroupRule) GetId() string {
   if m != nil {
      return m.Id
   }
   return ""
}
func (m *GroupRule) GetGroupText() string {
   if m != nil {
      return m.GroupText
   }
   return ""
}
func (m *GroupRule) GetAlarmLevel() int32 {
   if m != nil {
      return m.AlarmLevel
   }
   return 0
}
func (m *GroupRule) GetRules() []*Rule {
   if m != nil {
      return m.Rules
   }
   return nil
}
func (m *GroupRule) GetSetType() string {
   if m != nil {
      return m.SetType
   }
   return ""
}
func (m *GroupRule) GetTemplateId() string {
   if m != nil {
      return m.TemplateId
   }
   return ""
}
func (m *GroupRule) GetTemplateRule() string {
   if m != nil {
      return m.TemplateRule
   }
   return ""
}
func (m *GroupRule) GetTimeRuleId() string {
   if m != nil {
      return m.TimeRuleId
   }
   return ""
}
func (m *GroupRule) GetSceneName() string {
   if m != nil {
      return m.SceneName
   }
   return ""
}
func (m *GroupRule) GetDesc() string {
   if m != nil {
      return m.Desc
   }
   return ""
}
func (m *GroupRule) GetEnable() bool {
   if m != nil {
      return m.Enable
   }
   return false
}
func (m *GroupRule) GetVoiceId() string {
   if m != nil {
      return m.VoiceId
   }
   return ""
}
type GroupRuleSdks struct {
   Id                   string    `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   SceneName            string    `protobuf:"bytes,2,opt,name=scene_name,json=sceneName,proto3" json:"scene_name,omitempty"`
   Sdks                 []*SdkRun `protobuf:"bytes,3,rep,name=sdks,proto3" json:"sdks,omitempty"`
   SdkIds               []string  `protobuf:"bytes,4,rep,name=sdkIds,proto3" json:"sdkIds,omitempty"`
   XXX_NoUnkeyedLiteral struct{}  `json:"-"`
   XXX_unrecognized     []byte    `json:"-"`
   XXX_sizecache        int32     `json:"-"`
}
func (m *GroupRuleSdks) Reset()         { *m = GroupRuleSdks{} }
func (m *GroupRuleSdks) String() string { return proto.CompactTextString(m) }
func (*GroupRuleSdks) ProtoMessage()    {}
func (*GroupRuleSdks) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{12}
}
func (m *GroupRuleSdks) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_GroupRuleSdks.Unmarshal(m, b)
}
func (m *GroupRuleSdks) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_GroupRuleSdks.Marshal(b, m, deterministic)
}
func (m *GroupRuleSdks) XXX_Merge(src proto.Message) {
   xxx_messageInfo_GroupRuleSdks.Merge(m, src)
}
func (m *GroupRuleSdks) XXX_Size() int {
   return xxx_messageInfo_GroupRuleSdks.Size(m)
}
func (m *GroupRuleSdks) XXX_DiscardUnknown() {
   xxx_messageInfo_GroupRuleSdks.DiscardUnknown(m)
}
var xxx_messageInfo_GroupRuleSdks proto.InternalMessageInfo
func (m *GroupRuleSdks) GetId() string {
   if m != nil {
      return m.Id
   }
   return ""
}
func (m *GroupRuleSdks) GetSceneName() string {
   if m != nil {
      return m.SceneName
   }
   return ""
}
func (m *GroupRuleSdks) GetSdks() []*SdkRun {
   if m != nil {
      return m.Sdks
   }
   return nil
}
func (m *GroupRuleSdks) GetSdkIds() []string {
   if m != nil {
      return m.SdkIds
   }
   return nil
}
type Rule struct {
   Id                   string        `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   CameraId             string        `protobuf:"bytes,2,opt,name=camera_id,json=cameraId,proto3" json:"camera_id,omitempty"`
   PolygonId            string        `protobuf:"bytes,3,opt,name=polygon_id,json=polygonId,proto3" json:"polygon_id,omitempty"`
   SdkId                string        `protobuf:"bytes,4,opt,name=sdk_id,json=sdkId,proto3" json:"sdk_id,omitempty"`
   SdkSet               []*SdkSetBase `protobuf:"bytes,5,rep,name=sdk_set,json=sdkSet,proto3" json:"sdk_set,omitempty"`
   RuleWithPre          string        `protobuf:"bytes,6,opt,name=rule_with_pre,json=ruleWithPre,proto3" json:"rule_with_pre,omitempty"`
   IsSaveAnyhow         bool          `protobuf:"varint,7,opt,name=is_save_anyhow,json=isSaveAnyhow,proto3" json:"is_save_anyhow,omitempty"`
   GroupId              string        `protobuf:"bytes,8,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
   Sort                 int32         `protobuf:"varint,9,opt,name=sort,proto3" json:"sort,omitempty"`
   XXX_NoUnkeyedLiteral struct{}      `json:"-"`
   XXX_unrecognized     []byte        `json:"-"`
   XXX_sizecache        int32         `json:"-"`
}
func (m *Rule) Reset()         { *m = Rule{} }
func (m *Rule) String() string { return proto.CompactTextString(m) }
func (*Rule) ProtoMessage()    {}
func (*Rule) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{13}
}
func (m *Rule) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_Rule.Unmarshal(m, b)
}
func (m *Rule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_Rule.Marshal(b, m, deterministic)
}
func (m *Rule) XXX_Merge(src proto.Message) {
   xxx_messageInfo_Rule.Merge(m, src)
}
func (m *Rule) XXX_Size() int {
   return xxx_messageInfo_Rule.Size(m)
}
func (m *Rule) XXX_DiscardUnknown() {
   xxx_messageInfo_Rule.DiscardUnknown(m)
}
var xxx_messageInfo_Rule proto.InternalMessageInfo
func (m *Rule) GetId() string {
   if m != nil {
      return m.Id
   }
   return ""
}
func (m *Rule) GetCameraId() string {
   if m != nil {
      return m.CameraId
   }
   return ""
}
func (m *CameraTaskArgs) GetPolygonId() string {
func (m *Rule) GetPolygonId() string {
   if m != nil {
      return m.PolygonId
   }
   return ""
}
func (m *CameraTaskArgs) GetSdkId() string {
func (m *Rule) GetSdkId() string {
   if m != nil {
      return m.SdkId
   }
   return ""
}
func (m *CameraTaskArgs) GetSdkArgAlias() string {
func (m *Rule) GetSdkSet() []*SdkSetBase {
   if m != nil {
      return m.SdkArgAlias
      return m.SdkSet
   }
   return nil
}
func (m *Rule) GetRuleWithPre() string {
   if m != nil {
      return m.RuleWithPre
   }
   return ""
}
func (m *CameraTaskArgs) GetOperator() string {
func (m *Rule) GetIsSaveAnyhow() bool {
   if m != nil {
      return m.Operator
      return m.IsSaveAnyhow
   }
   return ""
   return false
}
func (m *CameraTaskArgs) GetOperatorType() string {
   if m != nil {
      return m.OperatorType
   }
   return ""
}
func (m *CameraTaskArgs) GetSdkArgValue() string {
   if m != nil {
      return m.SdkArgValue
   }
   return ""
}
func (m *CameraTaskArgs) GetSort() int32 {
   if m != nil {
      return m.Sort
   }
   return 0
}
func (m *CameraTaskArgs) GetRuleWithNext() string {
   if m != nil {
      return m.RuleWithNext
   }
   return ""
}
func (m *CameraTaskArgs) GetGroupId() string {
func (m *Rule) GetGroupId() string {
   if m != nil {
      return m.GroupId
   }
   return ""
}
func (m *Rule) GetSort() int32 {
   if m != nil {
      return m.Sort
   }
   return 0
}
type RuleTemplate struct {
   Id                   string         `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   Name                 string         `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
   Desc                 string         `protobuf:"bytes,3,opt,name=desc,proto3" json:"desc,omitempty"`
   Txt                  string         `protobuf:"bytes,4,opt,name=txt,proto3" json:"txt,omitempty"`
   Rules                []*TemplateArg `protobuf:"bytes,5,rep,name=rules,proto3" json:"rules,omitempty"`
   XXX_NoUnkeyedLiteral struct{}       `json:"-"`
   XXX_unrecognized     []byte         `json:"-"`
   XXX_sizecache        int32          `json:"-"`
}
func (m *RuleTemplate) Reset()         { *m = RuleTemplate{} }
func (m *RuleTemplate) String() string { return proto.CompactTextString(m) }
func (*RuleTemplate) ProtoMessage()    {}
func (*RuleTemplate) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{14}
}
func (m *RuleTemplate) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_RuleTemplate.Unmarshal(m, b)
}
func (m *RuleTemplate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_RuleTemplate.Marshal(b, m, deterministic)
}
func (m *RuleTemplate) XXX_Merge(src proto.Message) {
   xxx_messageInfo_RuleTemplate.Merge(m, src)
}
func (m *RuleTemplate) XXX_Size() int {
   return xxx_messageInfo_RuleTemplate.Size(m)
}
func (m *RuleTemplate) XXX_DiscardUnknown() {
   xxx_messageInfo_RuleTemplate.DiscardUnknown(m)
}
var xxx_messageInfo_RuleTemplate proto.InternalMessageInfo
func (m *RuleTemplate) GetId() string {
   if m != nil {
      return m.Id
   }
   return ""
}
func (m *RuleTemplate) GetName() string {
   if m != nil {
      return m.Name
   }
   return ""
}
func (m *RuleTemplate) GetDesc() string {
   if m != nil {
      return m.Desc
   }
   return ""
}
func (m *RuleTemplate) GetTxt() string {
   if m != nil {
      return m.Txt
   }
   return ""
}
func (m *RuleTemplate) GetRules() []*TemplateArg {
   if m != nil {
      return m.Rules
   }
   return nil
}
type RuleTemplateList struct {
   List                 []*RuleTemplate `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"`
   XXX_NoUnkeyedLiteral struct{}        `json:"-"`
   XXX_unrecognized     []byte          `json:"-"`
   XXX_sizecache        int32           `json:"-"`
}
func (m *RuleTemplateList) Reset()         { *m = RuleTemplateList{} }
func (m *RuleTemplateList) String() string { return proto.CompactTextString(m) }
func (*RuleTemplateList) ProtoMessage()    {}
func (*RuleTemplateList) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{15}
}
func (m *RuleTemplateList) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_RuleTemplateList.Unmarshal(m, b)
}
func (m *RuleTemplateList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_RuleTemplateList.Marshal(b, m, deterministic)
}
func (m *RuleTemplateList) XXX_Merge(src proto.Message) {
   xxx_messageInfo_RuleTemplateList.Merge(m, src)
}
func (m *RuleTemplateList) XXX_Size() int {
   return xxx_messageInfo_RuleTemplateList.Size(m)
}
func (m *RuleTemplateList) XXX_DiscardUnknown() {
   xxx_messageInfo_RuleTemplateList.DiscardUnknown(m)
}
var xxx_messageInfo_RuleTemplateList proto.InternalMessageInfo
func (m *RuleTemplateList) GetList() []*RuleTemplate {
   if m != nil {
      return m.List
   }
   return nil
}
type TemplateArg struct {
   SdkId                string   `protobuf:"bytes,1,opt,name=sdk_id,json=sdkId,proto3" json:"sdk_id,omitempty"`
   SdkArgAlias          string   `protobuf:"bytes,2,opt,name=sdk_arg_alias,json=sdkArgAlias,proto3" json:"sdk_arg_alias,omitempty"`
   Operator             string   `protobuf:"bytes,3,opt,name=operator,proto3" json:"operator,omitempty"`
   SdkArgValue          string   `protobuf:"bytes,4,opt,name=sdk_arg_value,json=sdkArgValue,proto3" json:"sdk_arg_value,omitempty"`
   Sort                 string   `protobuf:"bytes,5,opt,name=sort,proto3" json:"sort,omitempty"`
   RuleWithPre          string   `protobuf:"bytes,6,opt,name=rule_with_pre,json=ruleWithPre,proto3" json:"rule_with_pre,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *TemplateArg) Reset()         { *m = TemplateArg{} }
func (m *TemplateArg) String() string { return proto.CompactTextString(m) }
func (*TemplateArg) ProtoMessage()    {}
func (*TemplateArg) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{16}
}
func (m *TemplateArg) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_TemplateArg.Unmarshal(m, b)
}
func (m *TemplateArg) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_TemplateArg.Marshal(b, m, deterministic)
}
func (m *TemplateArg) XXX_Merge(src proto.Message) {
   xxx_messageInfo_TemplateArg.Merge(m, src)
}
func (m *TemplateArg) XXX_Size() int {
   return xxx_messageInfo_TemplateArg.Size(m)
}
func (m *TemplateArg) XXX_DiscardUnknown() {
   xxx_messageInfo_TemplateArg.DiscardUnknown(m)
}
var xxx_messageInfo_TemplateArg proto.InternalMessageInfo
func (m *TemplateArg) GetSdkId() string {
   if m != nil {
      return m.SdkId
   }
   return ""
}
func (m *TemplateArg) GetSdkArgAlias() string {
   if m != nil {
      return m.SdkArgAlias
   }
   return ""
}
func (m *TemplateArg) GetOperator() string {
   if m != nil {
      return m.Operator
   }
   return ""
}
func (m *TemplateArg) GetSdkArgValue() string {
   if m != nil {
      return m.SdkArgValue
   }
   return ""
}
func (m *TemplateArg) GetSort() string {
   if m != nil {
      return m.Sort
   }
   return ""
}
func (m *TemplateArg) GetRuleWithPre() string {
   if m != nil {
      return m.RuleWithPre
   }
   return ""
}
type SdkSetBase struct {
   SdkArgAlias          string   `protobuf:"bytes,1,opt,name=sdk_arg_alias,json=sdkArgAlias,proto3" json:"sdk_arg_alias,omitempty"`
   Operator             string   `protobuf:"bytes,2,opt,name=operator,proto3" json:"operator,omitempty"`
   OperatorType         string   `protobuf:"bytes,3,opt,name=operator_type,json=operatorType,proto3" json:"operator_type,omitempty"`
   SdkArgValue          string   `protobuf:"bytes,4,opt,name=sdk_arg_value,json=sdkArgValue,proto3" json:"sdk_arg_value,omitempty"`
   Sort                 int32    `protobuf:"varint,5,opt,name=sort,proto3" json:"sort,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *SdkSetBase) Reset()         { *m = SdkSetBase{} }
func (m *SdkSetBase) String() string { return proto.CompactTextString(m) }
func (*SdkSetBase) ProtoMessage()    {}
func (*SdkSetBase) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{17}
}
func (m *SdkSetBase) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_SdkSetBase.Unmarshal(m, b)
}
func (m *SdkSetBase) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_SdkSetBase.Marshal(b, m, deterministic)
}
func (m *SdkSetBase) XXX_Merge(src proto.Message) {
   xxx_messageInfo_SdkSetBase.Merge(m, src)
}
func (m *SdkSetBase) XXX_Size() int {
   return xxx_messageInfo_SdkSetBase.Size(m)
}
func (m *SdkSetBase) XXX_DiscardUnknown() {
   xxx_messageInfo_SdkSetBase.DiscardUnknown(m)
}
var xxx_messageInfo_SdkSetBase proto.InternalMessageInfo
func (m *SdkSetBase) GetSdkArgAlias() string {
   if m != nil {
      return m.SdkArgAlias
   }
   return ""
}
func (m *SdkSetBase) GetOperator() string {
   if m != nil {
      return m.Operator
   }
   return ""
}
func (m *SdkSetBase) GetOperatorType() string {
   if m != nil {
      return m.OperatorType
   }
   return ""
}
func (m *SdkSetBase) GetSdkArgValue() string {
   if m != nil {
      return m.SdkArgValue
   }
   return ""
}
func (m *SdkSetBase) GetSort() int32 {
   if m != nil {
      return m.Sort
   }
   return 0
}
//Sdk struct
type Sdk struct {
   Id                   string    `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   SdkType              string    `protobuf:"bytes,2,opt,name=sdk_type,json=sdkType,proto3" json:"sdk_type,omitempty"`
   SdkName              string    `protobuf:"bytes,3,opt,name=sdk_name,json=sdkName,proto3" json:"sdk_name,omitempty"`
   Args                 []*SdkArg `protobuf:"bytes,4,rep,name=args,proto3" json:"args,omitempty"`
   Icon                 string    `protobuf:"bytes,5,opt,name=icon,proto3" json:"icon,omitempty"`
   Url                  string    `protobuf:"bytes,6,opt,name=url,proto3" json:"url,omitempty"`
   CreateTime           string    `protobuf:"bytes,7,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
   UpdateTime           string    `protobuf:"bytes,8,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
   CreateBy             string    `protobuf:"bytes,9,opt,name=create_by,json=createBy,proto3" json:"create_by,omitempty"`
   Enabled              string    `protobuf:"bytes,10,opt,name=enabled,proto3" json:"enabled,omitempty"`
   DelFlag              string    `protobuf:"bytes,11,opt,name=del_flag,json=delFlag,proto3" json:"del_flag,omitempty"`
   IpcId                string    `protobuf:"bytes,2,opt,name=ipc_id,json=ipcId,proto3" json:"ipc_id,omitempty"`
   SdkType              string    `protobuf:"bytes,3,opt,name=sdk_type,json=sdkType,proto3" json:"sdk_type,omitempty"`
   SdkName              string    `protobuf:"bytes,4,opt,name=sdk_name,json=sdkName,proto3" json:"sdk_name,omitempty"`
   Args                 []*SdkArg `protobuf:"bytes,5,rep,name=args,proto3" json:"args,omitempty"`
   Icon                 string    `protobuf:"bytes,6,opt,name=icon,proto3" json:"icon,omitempty"`
   Url                  string    `protobuf:"bytes,7,opt,name=url,proto3" json:"url,omitempty"`
   CreateTime           string    `protobuf:"bytes,8,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
   UpdateTime           string    `protobuf:"bytes,9,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
   CreateBy             string    `protobuf:"bytes,10,opt,name=create_by,json=createBy,proto3" json:"create_by,omitempty"`
   Enable               bool      `protobuf:"varint,11,opt,name=enable,proto3" json:"enable,omitempty"`
   DelFlag              int32     `protobuf:"varint,12,opt,name=del_flag,json=delFlag,proto3" json:"del_flag,omitempty"`
   IconBlob             string    `protobuf:"bytes,13,opt,name=iconBlob,proto3" json:"iconBlob,omitempty"`
   Version              string    `protobuf:"bytes,14,opt,name=version,proto3" json:"version,omitempty"`
   EnTrack              bool      `protobuf:"varint,15,opt,name=enTrack,proto3" json:"enTrack,omitempty"`
   ArgDef               string    `protobuf:"bytes,16,opt,name=argDef,proto3" json:"argDef,omitempty"`
   RuleSo               string    `protobuf:"bytes,17,opt,name=ruleSo,proto3" json:"ruleSo,omitempty"`
   IconBlob2            string    `protobuf:"bytes,18,opt,name=iconBlob2,proto3" json:"iconBlob2,omitempty"`
   ActivateCode         string    `protobuf:"bytes,19,opt,name=activateCode,proto3" json:"activateCode,omitempty"`
   XXX_NoUnkeyedLiteral struct{}  `json:"-"`
   XXX_unrecognized     []byte    `json:"-"`
   XXX_sizecache        int32     `json:"-"`
@@ -1132,7 +1615,7 @@
func (m *Sdk) String() string { return proto.CompactTextString(m) }
func (*Sdk) ProtoMessage()    {}
func (*Sdk) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{14}
   return fileDescriptor_32de24555f916688, []int{18}
}
func (m *Sdk) XXX_Unmarshal(b []byte) error {
@@ -1156,6 +1639,13 @@
func (m *Sdk) GetId() string {
   if m != nil {
      return m.Id
   }
   return ""
}
func (m *Sdk) GetIpcId() string {
   if m != nil {
      return m.IpcId
   }
   return ""
}
@@ -1216,28 +1706,80 @@
   return ""
}
func (m *Sdk) GetEnabled() string {
func (m *Sdk) GetEnable() bool {
   if m != nil {
      return m.Enabled
      return m.Enable
   }
   return false
}
func (m *Sdk) GetDelFlag() int32 {
   if m != nil {
      return m.DelFlag
   }
   return 0
}
func (m *Sdk) GetIconBlob() string {
   if m != nil {
      return m.IconBlob
   }
   return ""
}
func (m *Sdk) GetDelFlag() string {
func (m *Sdk) GetVersion() string {
   if m != nil {
      return m.DelFlag
      return m.Version
   }
   return ""
}
func (m *Sdk) GetEnTrack() bool {
   if m != nil {
      return m.EnTrack
   }
   return false
}
func (m *Sdk) GetArgDef() string {
   if m != nil {
      return m.ArgDef
   }
   return ""
}
func (m *Sdk) GetRuleSo() string {
   if m != nil {
      return m.RuleSo
   }
   return ""
}
func (m *Sdk) GetIconBlob2() string {
   if m != nil {
      return m.IconBlob2
   }
   return ""
}
func (m *Sdk) GetActivateCode() string {
   if m != nil {
      return m.ActivateCode
   }
   return ""
}
//SdkArg struct
type SdkArg struct {
   Alias                string   `protobuf:"bytes,2,opt,name=alias,proto3" json:"alias,omitempty"`
   Name                 string   `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
   Type                 string   `protobuf:"bytes,4,opt,name=type,proto3" json:"type,omitempty"`
   Must                 bool     `protobuf:"varint,5,opt,name=must,proto3" json:"must,omitempty"`
   Alias                string   `protobuf:"bytes,1,opt,name=alias,proto3" json:"alias,omitempty"`
   Name                 string   `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
   Type                 string   `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"`
   Must                 bool     `protobuf:"varint,4,opt,name=must,proto3" json:"must,omitempty"`
   Unit                 string   `protobuf:"bytes,5,opt,name=unit,proto3" json:"unit,omitempty"`
   Range                string   `protobuf:"bytes,6,opt,name=range,proto3" json:"range,omitempty"`
   Sort                 int32    `protobuf:"varint,7,opt,name=sort,proto3" json:"sort,omitempty"`
   DefaultValue         string   `protobuf:"bytes,7,opt,name=default_value,json=defaultValue,proto3" json:"default_value,omitempty"`
   DefaultOperator      string   `protobuf:"bytes,8,opt,name=default_operator,json=defaultOperator,proto3" json:"default_operator,omitempty"`
   Sort                 int32    `protobuf:"varint,9,opt,name=sort,proto3" json:"sort,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
@@ -1247,7 +1789,7 @@
func (m *SdkArg) String() string { return proto.CompactTextString(m) }
func (*SdkArg) ProtoMessage()    {}
func (*SdkArg) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{15}
   return fileDescriptor_32de24555f916688, []int{19}
}
func (m *SdkArg) XXX_Unmarshal(b []byte) error {
@@ -1296,9 +1838,30 @@
   return false
}
func (m *SdkArg) GetUnit() string {
   if m != nil {
      return m.Unit
   }
   return ""
}
func (m *SdkArg) GetRange() string {
   if m != nil {
      return m.Range
   }
   return ""
}
func (m *SdkArg) GetDefaultValue() string {
   if m != nil {
      return m.DefaultValue
   }
   return ""
}
func (m *SdkArg) GetDefaultOperator() string {
   if m != nil {
      return m.DefaultOperator
   }
   return ""
}
@@ -1310,694 +1873,67 @@
   return 0
}
// struct for sdk
type Point struct {
   X                    int32    `protobuf:"varint,1,opt,name=x,proto3" json:"x,omitempty"`
   Y                    int32    `protobuf:"varint,2,opt,name=y,proto3" json:"y,omitempty"`
type SdkChanSet struct {
   SdkType              string   `protobuf:"bytes,1,opt,name=sdk_type,json=sdkType,proto3" json:"sdk_type,omitempty"`
   ChanNum              int32    `protobuf:"varint,2,opt,name=chan_num,json=chanNum,proto3" json:"chan_num,omitempty"`
   ConfidenceInc        int32    `protobuf:"varint,3,opt,name=confidenceInc,proto3" json:"confidenceInc,omitempty"`
   MinMovePos           int32    `protobuf:"varint,4,opt,name=minMovePos,proto3" json:"minMovePos,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *Point) Reset()         { *m = Point{} }
func (m *Point) String() string { return proto.CompactTextString(m) }
func (*Point) ProtoMessage()    {}
func (*Point) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{16}
}
func (m *Point) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_Point.Unmarshal(m, b)
}
func (m *Point) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_Point.Marshal(b, m, deterministic)
}
func (m *Point) XXX_Merge(src proto.Message) {
   xxx_messageInfo_Point.Merge(m, src)
}
func (m *Point) XXX_Size() int {
   return xxx_messageInfo_Point.Size(m)
}
func (m *Point) XXX_DiscardUnknown() {
   xxx_messageInfo_Point.DiscardUnknown(m)
}
var xxx_messageInfo_Point proto.InternalMessageInfo
func (m *Point) GetX() int32 {
   if m != nil {
      return m.X
   }
   return 0
}
func (m *Point) GetY() int32 {
   if m != nil {
      return m.Y
   }
   return 0
}
type Rect struct {
   Left                 int32    `protobuf:"varint,1,opt,name=left,proto3" json:"left,omitempty"`
   Top                  int32    `protobuf:"varint,2,opt,name=top,proto3" json:"top,omitempty"`
   Right                int32    `protobuf:"varint,3,opt,name=right,proto3" json:"right,omitempty"`
   Bottom               int32    `protobuf:"varint,4,opt,name=bottom,proto3" json:"bottom,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *Rect) Reset()         { *m = Rect{} }
func (m *Rect) String() string { return proto.CompactTextString(m) }
func (*Rect) ProtoMessage()    {}
func (*Rect) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{17}
}
func (m *Rect) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_Rect.Unmarshal(m, b)
}
func (m *Rect) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_Rect.Marshal(b, m, deterministic)
}
func (m *Rect) XXX_Merge(src proto.Message) {
   xxx_messageInfo_Rect.Merge(m, src)
}
func (m *Rect) XXX_Size() int {
   return xxx_messageInfo_Rect.Size(m)
}
func (m *Rect) XXX_DiscardUnknown() {
   xxx_messageInfo_Rect.DiscardUnknown(m)
}
var xxx_messageInfo_Rect proto.InternalMessageInfo
func (m *Rect) GetLeft() int32 {
   if m != nil {
      return m.Left
   }
   return 0
}
func (m *Rect) GetTop() int32 {
   if m != nil {
      return m.Top
   }
   return 0
}
func (m *Rect) GetRight() int32 {
   if m != nil {
      return m.Right
   }
   return 0
}
func (m *Rect) GetBottom() int32 {
   if m != nil {
      return m.Bottom
   }
   return 0
}
type FaceAngle struct {
   Yaw                  int32    `protobuf:"varint,1,opt,name=yaw,proto3" json:"yaw,omitempty"`
   Pitch                int32    `protobuf:"varint,2,opt,name=pitch,proto3" json:"pitch,omitempty"`
   Roll                 int32    `protobuf:"varint,3,opt,name=roll,proto3" json:"roll,omitempty"`
   Confidence           float32  `protobuf:"fixed32,4,opt,name=confidence,proto3" json:"confidence,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *FaceAngle) Reset()         { *m = FaceAngle{} }
func (m *FaceAngle) String() string { return proto.CompactTextString(m) }
func (*FaceAngle) ProtoMessage()    {}
func (*FaceAngle) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{18}
}
func (m *FaceAngle) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_FaceAngle.Unmarshal(m, b)
}
func (m *FaceAngle) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_FaceAngle.Marshal(b, m, deterministic)
}
func (m *FaceAngle) XXX_Merge(src proto.Message) {
   xxx_messageInfo_FaceAngle.Merge(m, src)
}
func (m *FaceAngle) XXX_Size() int {
   return xxx_messageInfo_FaceAngle.Size(m)
}
func (m *FaceAngle) XXX_DiscardUnknown() {
   xxx_messageInfo_FaceAngle.DiscardUnknown(m)
}
var xxx_messageInfo_FaceAngle proto.InternalMessageInfo
func (m *FaceAngle) GetYaw() int32 {
   if m != nil {
      return m.Yaw
   }
   return 0
}
func (m *FaceAngle) GetPitch() int32 {
   if m != nil {
      return m.Pitch
   }
   return 0
}
func (m *FaceAngle) GetRoll() int32 {
   if m != nil {
      return m.Roll
   }
   return 0
}
func (m *FaceAngle) GetConfidence() float32 {
   if m != nil {
      return m.Confidence
   }
   return 0
}
type ThftResult struct {
   Gender               int32    `protobuf:"varint,1,opt,name=gender,proto3" json:"gender,omitempty"`
   Age                  int32    `protobuf:"varint,2,opt,name=age,proto3" json:"age,omitempty"`
   Race                 int32    `protobuf:"varint,3,opt,name=race,proto3" json:"race,omitempty"`
   Beauty               int32    `protobuf:"varint,4,opt,name=beauty,proto3" json:"beauty,omitempty"`
   Smile                int32    `protobuf:"varint,5,opt,name=smile,proto3" json:"smile,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *ThftResult) Reset()         { *m = ThftResult{} }
func (m *ThftResult) String() string { return proto.CompactTextString(m) }
func (*ThftResult) ProtoMessage()    {}
func (*ThftResult) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{19}
}
func (m *ThftResult) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_ThftResult.Unmarshal(m, b)
}
func (m *ThftResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_ThftResult.Marshal(b, m, deterministic)
}
func (m *ThftResult) XXX_Merge(src proto.Message) {
   xxx_messageInfo_ThftResult.Merge(m, src)
}
func (m *ThftResult) XXX_Size() int {
   return xxx_messageInfo_ThftResult.Size(m)
}
func (m *ThftResult) XXX_DiscardUnknown() {
   xxx_messageInfo_ThftResult.DiscardUnknown(m)
}
var xxx_messageInfo_ThftResult proto.InternalMessageInfo
func (m *ThftResult) GetGender() int32 {
   if m != nil {
      return m.Gender
   }
   return 0
}
func (m *ThftResult) GetAge() int32 {
   if m != nil {
      return m.Age
   }
   return 0
}
func (m *ThftResult) GetRace() int32 {
   if m != nil {
      return m.Race
   }
   return 0
}
func (m *ThftResult) GetBeauty() int32 {
   if m != nil {
      return m.Beauty
   }
   return 0
}
func (m *ThftResult) GetSmile() int32 {
   if m != nil {
      return m.Smile
   }
   return 0
}
type FacePos struct {
   RcFace               *Rect      `protobuf:"bytes,1,opt,name=rcFace,proto3" json:"rcFace,omitempty"`
   PtLeftEye            *Point     `protobuf:"bytes,2,opt,name=ptLeftEye,proto3" json:"ptLeftEye,omitempty"`
   PtRightEye           *Point     `protobuf:"bytes,3,opt,name=ptRightEye,proto3" json:"ptRightEye,omitempty"`
   PtMouth              *Point     `protobuf:"bytes,4,opt,name=ptMouth,proto3" json:"ptMouth,omitempty"`
   PtNose               *Point     `protobuf:"bytes,5,opt,name=ptNose,proto3" json:"ptNose,omitempty"`
   FAngle               *FaceAngle `protobuf:"bytes,6,opt,name=fAngle,proto3" json:"fAngle,omitempty"`
   Quality              int32      `protobuf:"varint,7,opt,name=quality,proto3" json:"quality,omitempty"`
   FacialData           []byte     `protobuf:"bytes,8,opt,name=facialData,proto3" json:"facialData,omitempty"`
   XXX_NoUnkeyedLiteral struct{}   `json:"-"`
   XXX_unrecognized     []byte     `json:"-"`
   XXX_sizecache        int32      `json:"-"`
}
func (m *FacePos) Reset()         { *m = FacePos{} }
func (m *FacePos) String() string { return proto.CompactTextString(m) }
func (*FacePos) ProtoMessage()    {}
func (*FacePos) Descriptor() ([]byte, []int) {
func (m *SdkChanSet) Reset()         { *m = SdkChanSet{} }
func (m *SdkChanSet) String() string { return proto.CompactTextString(m) }
func (*SdkChanSet) ProtoMessage()    {}
func (*SdkChanSet) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{20}
}
func (m *FacePos) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_FacePos.Unmarshal(m, b)
func (m *SdkChanSet) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_SdkChanSet.Unmarshal(m, b)
}
func (m *FacePos) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_FacePos.Marshal(b, m, deterministic)
func (m *SdkChanSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_SdkChanSet.Marshal(b, m, deterministic)
}
func (m *FacePos) XXX_Merge(src proto.Message) {
   xxx_messageInfo_FacePos.Merge(m, src)
func (m *SdkChanSet) XXX_Merge(src proto.Message) {
   xxx_messageInfo_SdkChanSet.Merge(m, src)
}
func (m *FacePos) XXX_Size() int {
   return xxx_messageInfo_FacePos.Size(m)
func (m *SdkChanSet) XXX_Size() int {
   return xxx_messageInfo_SdkChanSet.Size(m)
}
func (m *FacePos) XXX_DiscardUnknown() {
   xxx_messageInfo_FacePos.DiscardUnknown(m)
func (m *SdkChanSet) XXX_DiscardUnknown() {
   xxx_messageInfo_SdkChanSet.DiscardUnknown(m)
}
var xxx_messageInfo_FacePos proto.InternalMessageInfo
var xxx_messageInfo_SdkChanSet proto.InternalMessageInfo
func (m *FacePos) GetRcFace() *Rect {
func (m *SdkChanSet) GetSdkType() string {
   if m != nil {
      return m.RcFace
      return m.SdkType
   }
   return nil
   return ""
}
func (m *FacePos) GetPtLeftEye() *Point {
func (m *SdkChanSet) GetChanNum() int32 {
   if m != nil {
      return m.PtLeftEye
   }
   return nil
}
func (m *FacePos) GetPtRightEye() *Point {
   if m != nil {
      return m.PtRightEye
   }
   return nil
}
func (m *FacePos) GetPtMouth() *Point {
   if m != nil {
      return m.PtMouth
   }
   return nil
}
func (m *FacePos) GetPtNose() *Point {
   if m != nil {
      return m.PtNose
   }
   return nil
}
func (m *FacePos) GetFAngle() *FaceAngle {
   if m != nil {
      return m.FAngle
   }
   return nil
}
func (m *FacePos) GetQuality() int32 {
   if m != nil {
      return m.Quality
      return m.ChanNum
   }
   return 0
}
func (m *FacePos) GetFacialData() []byte {
func (m *SdkChanSet) GetConfidenceInc() int32 {
   if m != nil {
      return m.FacialData
   }
   return nil
}
type FaceInfo struct {
   RcFace               *Rect      `protobuf:"bytes,1,opt,name=rcFace,proto3" json:"rcFace,omitempty"`
   PtLeftEye            *Point     `protobuf:"bytes,2,opt,name=ptLeftEye,proto3" json:"ptLeftEye,omitempty"`
   PtRightEye           *Point     `protobuf:"bytes,3,opt,name=ptRightEye,proto3" json:"ptRightEye,omitempty"`
   PtMouth              *Point     `protobuf:"bytes,4,opt,name=ptMouth,proto3" json:"ptMouth,omitempty"`
   PtNose               *Point     `protobuf:"bytes,5,opt,name=ptNose,proto3" json:"ptNose,omitempty"`
   FAngle               *FaceAngle `protobuf:"bytes,6,opt,name=fAngle,proto3" json:"fAngle,omitempty"`
   Quality              int32      `protobuf:"varint,7,opt,name=quality,proto3" json:"quality,omitempty"`
   FacialData           []byte     `protobuf:"bytes,8,opt,name=facialData,proto3" json:"facialData,omitempty"`
   FaceID               int64      `protobuf:"varint,9,opt,name=faceID,proto3" json:"faceID,omitempty"`
   XXX_NoUnkeyedLiteral struct{}   `json:"-"`
   XXX_unrecognized     []byte     `json:"-"`
   XXX_sizecache        int32      `json:"-"`
}
func (m *FaceInfo) Reset()         { *m = FaceInfo{} }
func (m *FaceInfo) String() string { return proto.CompactTextString(m) }
func (*FaceInfo) ProtoMessage()    {}
func (*FaceInfo) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{21}
}
func (m *FaceInfo) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_FaceInfo.Unmarshal(m, b)
}
func (m *FaceInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_FaceInfo.Marshal(b, m, deterministic)
}
func (m *FaceInfo) XXX_Merge(src proto.Message) {
   xxx_messageInfo_FaceInfo.Merge(m, src)
}
func (m *FaceInfo) XXX_Size() int {
   return xxx_messageInfo_FaceInfo.Size(m)
}
func (m *FaceInfo) XXX_DiscardUnknown() {
   xxx_messageInfo_FaceInfo.DiscardUnknown(m)
}
var xxx_messageInfo_FaceInfo proto.InternalMessageInfo
func (m *FaceInfo) GetRcFace() *Rect {
   if m != nil {
      return m.RcFace
   }
   return nil
}
func (m *FaceInfo) GetPtLeftEye() *Point {
   if m != nil {
      return m.PtLeftEye
   }
   return nil
}
func (m *FaceInfo) GetPtRightEye() *Point {
   if m != nil {
      return m.PtRightEye
   }
   return nil
}
func (m *FaceInfo) GetPtMouth() *Point {
   if m != nil {
      return m.PtMouth
   }
   return nil
}
func (m *FaceInfo) GetPtNose() *Point {
   if m != nil {
      return m.PtNose
   }
   return nil
}
func (m *FaceInfo) GetFAngle() *FaceAngle {
   if m != nil {
      return m.FAngle
   }
   return nil
}
func (m *FaceInfo) GetQuality() int32 {
   if m != nil {
      return m.Quality
      return m.ConfidenceInc
   }
   return 0
}
func (m *FaceInfo) GetFacialData() []byte {
func (m *SdkChanSet) GetMinMovePos() int32 {
   if m != nil {
      return m.FacialData
   }
   return nil
}
func (m *FaceInfo) GetFaceID() int64 {
   if m != nil {
      return m.FaceID
      return m.MinMovePos
   }
   return 0
}
type ObjInfo struct {
   RcObj                *Rect    `protobuf:"bytes,1,opt,name=rcObj,proto3" json:"rcObj,omitempty"`
   Typ                  int32    `protobuf:"varint,2,opt,name=typ,proto3" json:"typ,omitempty"`
   Prob                 float32  `protobuf:"fixed32,3,opt,name=prob,proto3" json:"prob,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *ObjInfo) Reset()         { *m = ObjInfo{} }
func (m *ObjInfo) String() string { return proto.CompactTextString(m) }
func (*ObjInfo) ProtoMessage()    {}
func (*ObjInfo) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{22}
}
func (m *ObjInfo) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_ObjInfo.Unmarshal(m, b)
}
func (m *ObjInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_ObjInfo.Marshal(b, m, deterministic)
}
func (m *ObjInfo) XXX_Merge(src proto.Message) {
   xxx_messageInfo_ObjInfo.Merge(m, src)
}
func (m *ObjInfo) XXX_Size() int {
   return xxx_messageInfo_ObjInfo.Size(m)
}
func (m *ObjInfo) XXX_DiscardUnknown() {
   xxx_messageInfo_ObjInfo.DiscardUnknown(m)
}
var xxx_messageInfo_ObjInfo proto.InternalMessageInfo
func (m *ObjInfo) GetRcObj() *Rect {
   if m != nil {
      return m.RcObj
   }
   return nil
}
func (m *ObjInfo) GetTyp() int32 {
   if m != nil {
      return m.Typ
   }
   return 0
}
func (m *ObjInfo) GetProb() float32 {
   if m != nil {
      return m.Prob
   }
   return 0
}
// sdk face property
type ParamFacePos struct {
   Pos                  *FacePos `protobuf:"bytes,1,opt,name=pos,proto3" json:"pos,omitempty"`
   Img                  *Image   `protobuf:"bytes,2,opt,name=img,proto3" json:"img,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *ParamFacePos) Reset()         { *m = ParamFacePos{} }
func (m *ParamFacePos) String() string { return proto.CompactTextString(m) }
func (*ParamFacePos) ProtoMessage()    {}
func (*ParamFacePos) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{23}
}
func (m *ParamFacePos) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_ParamFacePos.Unmarshal(m, b)
}
func (m *ParamFacePos) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_ParamFacePos.Marshal(b, m, deterministic)
}
func (m *ParamFacePos) XXX_Merge(src proto.Message) {
   xxx_messageInfo_ParamFacePos.Merge(m, src)
}
func (m *ParamFacePos) XXX_Size() int {
   return xxx_messageInfo_ParamFacePos.Size(m)
}
func (m *ParamFacePos) XXX_DiscardUnknown() {
   xxx_messageInfo_ParamFacePos.DiscardUnknown(m)
}
var xxx_messageInfo_ParamFacePos proto.InternalMessageInfo
func (m *ParamFacePos) GetPos() *FacePos {
   if m != nil {
      return m.Pos
   }
   return nil
}
func (m *ParamFacePos) GetImg() *Image {
   if m != nil {
      return m.Img
   }
   return nil
}
// sdk face extract
type ParamFaceCompare struct {
   Feat1                []byte   `protobuf:"bytes,1,opt,name=feat1,proto3" json:"feat1,omitempty"`
   Feat2                []byte   `protobuf:"bytes,2,opt,name=feat2,proto3" json:"feat2,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *ParamFaceCompare) Reset()         { *m = ParamFaceCompare{} }
func (m *ParamFaceCompare) String() string { return proto.CompactTextString(m) }
func (*ParamFaceCompare) ProtoMessage()    {}
func (*ParamFaceCompare) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{24}
}
func (m *ParamFaceCompare) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_ParamFaceCompare.Unmarshal(m, b)
}
func (m *ParamFaceCompare) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_ParamFaceCompare.Marshal(b, m, deterministic)
}
func (m *ParamFaceCompare) XXX_Merge(src proto.Message) {
   xxx_messageInfo_ParamFaceCompare.Merge(m, src)
}
func (m *ParamFaceCompare) XXX_Size() int {
   return xxx_messageInfo_ParamFaceCompare.Size(m)
}
func (m *ParamFaceCompare) XXX_DiscardUnknown() {
   xxx_messageInfo_ParamFaceCompare.DiscardUnknown(m)
}
var xxx_messageInfo_ParamFaceCompare proto.InternalMessageInfo
func (m *ParamFaceCompare) GetFeat1() []byte {
   if m != nil {
      return m.Feat1
   }
   return nil
}
func (m *ParamFaceCompare) GetFeat2() []byte {
   if m != nil {
      return m.Feat2
   }
   return nil
}
// sdk face property
type ParamFaceProperty struct {
   Result               *ThftResult `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"`
   Img                  *Image      `protobuf:"bytes,2,opt,name=img,proto3" json:"img,omitempty"`
   XXX_NoUnkeyedLiteral struct{}    `json:"-"`
   XXX_unrecognized     []byte      `json:"-"`
   XXX_sizecache        int32       `json:"-"`
}
func (m *ParamFaceProperty) Reset()         { *m = ParamFaceProperty{} }
func (m *ParamFaceProperty) String() string { return proto.CompactTextString(m) }
func (*ParamFaceProperty) ProtoMessage()    {}
func (*ParamFaceProperty) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{25}
}
func (m *ParamFaceProperty) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_ParamFaceProperty.Unmarshal(m, b)
}
func (m *ParamFaceProperty) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_ParamFaceProperty.Marshal(b, m, deterministic)
}
func (m *ParamFaceProperty) XXX_Merge(src proto.Message) {
   xxx_messageInfo_ParamFaceProperty.Merge(m, src)
}
func (m *ParamFaceProperty) XXX_Size() int {
   return xxx_messageInfo_ParamFaceProperty.Size(m)
}
func (m *ParamFaceProperty) XXX_DiscardUnknown() {
   xxx_messageInfo_ParamFaceProperty.DiscardUnknown(m)
}
var xxx_messageInfo_ParamFaceProperty proto.InternalMessageInfo
func (m *ParamFaceProperty) GetResult() *ThftResult {
   if m != nil {
      return m.Result
   }
   return nil
}
func (m *ParamFaceProperty) GetImg() *Image {
   if m != nil {
      return m.Img
   }
   return nil
}
// sdk yolo detect
type ParamYoloObj struct {
   Infos                []*ObjInfo `protobuf:"bytes,1,rep,name=infos,proto3" json:"infos,omitempty"`
   Img                  *Image     `protobuf:"bytes,2,opt,name=img,proto3" json:"img,omitempty"`
   XXX_NoUnkeyedLiteral struct{}   `json:"-"`
   XXX_unrecognized     []byte     `json:"-"`
   XXX_sizecache        int32      `json:"-"`
}
func (m *ParamYoloObj) Reset()         { *m = ParamYoloObj{} }
func (m *ParamYoloObj) String() string { return proto.CompactTextString(m) }
func (*ParamYoloObj) ProtoMessage()    {}
func (*ParamYoloObj) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{26}
}
func (m *ParamYoloObj) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_ParamYoloObj.Unmarshal(m, b)
}
func (m *ParamYoloObj) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_ParamYoloObj.Marshal(b, m, deterministic)
}
func (m *ParamYoloObj) XXX_Merge(src proto.Message) {
   xxx_messageInfo_ParamYoloObj.Merge(m, src)
}
func (m *ParamYoloObj) XXX_Size() int {
   return xxx_messageInfo_ParamYoloObj.Size(m)
}
func (m *ParamYoloObj) XXX_DiscardUnknown() {
   xxx_messageInfo_ParamYoloObj.DiscardUnknown(m)
}
var xxx_messageInfo_ParamYoloObj proto.InternalMessageInfo
func (m *ParamYoloObj) GetInfos() []*ObjInfo {
   if m != nil {
      return m.Infos
   }
   return nil
}
func (m *ParamYoloObj) GetImg() *Image {
   if m != nil {
      return m.Img
   }
   return nil
}
//publish db change message
@@ -2015,7 +1951,7 @@
func (m *DbChangeMessage) String() string { return proto.CompactTextString(m) }
func (*DbChangeMessage) ProtoMessage()    {}
func (*DbChangeMessage) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{27}
   return fileDescriptor_32de24555f916688, []int{21}
}
func (m *DbChangeMessage) XXX_Unmarshal(b []byte) error {
@@ -2073,6 +2009,7 @@
   DirectionLine        string   `protobuf:"bytes,6,opt,name=direction_line,json=directionLine,proto3" json:"direction_line,omitempty"`
   Type                 string   `protobuf:"bytes,7,opt,name=type,proto3" json:"type,omitempty"`
   DefenceState         int32    `protobuf:"varint,8,opt,name=defence_state,json=defenceState,proto3" json:"defence_state,omitempty"`
   CameraName           string   `protobuf:"bytes,9,opt,name=camera_name,json=cameraName,proto3" json:"camera_name,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
@@ -2082,7 +2019,7 @@
func (m *CameraPolygon) String() string { return proto.CompactTextString(m) }
func (*CameraPolygon) ProtoMessage()    {}
func (*CameraPolygon) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{28}
   return fileDescriptor_32de24555f916688, []int{22}
}
func (m *CameraPolygon) XXX_Unmarshal(b []byte) error {
@@ -2159,129 +2096,1383 @@
   return 0
}
type CameraTaskArg struct {
func (m *CameraPolygon) GetCameraName() string {
   if m != nil {
      return m.CameraName
   }
   return ""
}
type CameraPolygonRelation struct {
   Id                   string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   CameraTaskId         string   `protobuf:"bytes,2,opt,name=camera_task_id,json=cameraTaskId,proto3" json:"camera_task_id,omitempty"`
   CameraId             string   `protobuf:"bytes,3,opt,name=camera_id,json=cameraId,proto3" json:"camera_id,omitempty"`
   PolygonId            string   `protobuf:"bytes,4,opt,name=polygon_id,json=polygonId,proto3" json:"polygon_id,omitempty"`
   SdkId                string   `protobuf:"bytes,5,opt,name=sdk_id,json=sdkId,proto3" json:"sdk_id,omitempty"`
   SdkArgAlias          string   `protobuf:"bytes,6,opt,name=sdk_arg_alias,json=sdkArgAlias,proto3" json:"sdk_arg_alias,omitempty"`
   Operator             string   `protobuf:"bytes,7,opt,name=operator,proto3" json:"operator,omitempty"`
   OperatorType         string   `protobuf:"bytes,8,opt,name=operator_type,json=operatorType,proto3" json:"operator_type,omitempty"`
   SdkArgValue          string   `protobuf:"bytes,9,opt,name=sdk_arg_value,json=sdkArgValue,proto3" json:"sdk_arg_value,omitempty"`
   Sort                 int32    `protobuf:"varint,10,opt,name=sort,proto3" json:"sort,omitempty"`
   RuleWithPre          string   `protobuf:"bytes,11,opt,name=rule_with_pre,json=ruleWithPre,proto3" json:"rule_with_pre,omitempty"`
   GroupId              string   `protobuf:"bytes,12,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
   SourceCameraId       string   `protobuf:"bytes,2,opt,name=source_camera_id,json=sourceCameraId,proto3" json:"source_camera_id,omitempty"`
   SourcePolygonId      string   `protobuf:"bytes,3,opt,name=source_polygon_id,json=sourcePolygonId,proto3" json:"source_polygon_id,omitempty"`
   TargetCameraId       string   `protobuf:"bytes,4,opt,name=target_camera_id,json=targetCameraId,proto3" json:"target_camera_id,omitempty"`
   TargetPolygonId      string   `protobuf:"bytes,5,opt,name=target_polygon_id,json=targetPolygonId,proto3" json:"target_polygon_id,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *CameraTaskArg) Reset()         { *m = CameraTaskArg{} }
func (m *CameraTaskArg) String() string { return proto.CompactTextString(m) }
func (*CameraTaskArg) ProtoMessage()    {}
func (*CameraTaskArg) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{29}
func (m *CameraPolygonRelation) Reset()         { *m = CameraPolygonRelation{} }
func (m *CameraPolygonRelation) String() string { return proto.CompactTextString(m) }
func (*CameraPolygonRelation) ProtoMessage()    {}
func (*CameraPolygonRelation) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{23}
}
func (m *CameraTaskArg) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_CameraTaskArg.Unmarshal(m, b)
func (m *CameraPolygonRelation) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_CameraPolygonRelation.Unmarshal(m, b)
}
func (m *CameraTaskArg) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_CameraTaskArg.Marshal(b, m, deterministic)
func (m *CameraPolygonRelation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_CameraPolygonRelation.Marshal(b, m, deterministic)
}
func (m *CameraTaskArg) XXX_Merge(src proto.Message) {
   xxx_messageInfo_CameraTaskArg.Merge(m, src)
func (m *CameraPolygonRelation) XXX_Merge(src proto.Message) {
   xxx_messageInfo_CameraPolygonRelation.Merge(m, src)
}
func (m *CameraTaskArg) XXX_Size() int {
   return xxx_messageInfo_CameraTaskArg.Size(m)
func (m *CameraPolygonRelation) XXX_Size() int {
   return xxx_messageInfo_CameraPolygonRelation.Size(m)
}
func (m *CameraTaskArg) XXX_DiscardUnknown() {
   xxx_messageInfo_CameraTaskArg.DiscardUnknown(m)
func (m *CameraPolygonRelation) XXX_DiscardUnknown() {
   xxx_messageInfo_CameraPolygonRelation.DiscardUnknown(m)
}
var xxx_messageInfo_CameraTaskArg proto.InternalMessageInfo
var xxx_messageInfo_CameraPolygonRelation proto.InternalMessageInfo
func (m *CameraTaskArg) GetId() string {
func (m *CameraPolygonRelation) GetId() string {
   if m != nil {
      return m.Id
   }
   return ""
}
func (m *CameraTaskArg) GetCameraTaskId() string {
func (m *CameraPolygonRelation) GetSourceCameraId() string {
   if m != nil {
      return m.CameraTaskId
      return m.SourceCameraId
   }
   return ""
}
func (m *CameraTaskArg) GetCameraId() string {
func (m *CameraPolygonRelation) GetSourcePolygonId() string {
   if m != nil {
      return m.SourcePolygonId
   }
   return ""
}
func (m *CameraPolygonRelation) GetTargetCameraId() string {
   if m != nil {
      return m.TargetCameraId
   }
   return ""
}
func (m *CameraPolygonRelation) GetTargetPolygonId() string {
   if m != nil {
      return m.TargetPolygonId
   }
   return ""
}
type VideotapeInfo struct {
   EsDataId             string   `protobuf:"bytes,1,opt,name=esDataId,proto3" json:"esDataId,omitempty"`
   CameraId             string   `protobuf:"bytes,2,opt,name=cameraId,proto3" json:"cameraId,omitempty"`
   TaskId               string   `protobuf:"bytes,3,opt,name=taskId,proto3" json:"taskId,omitempty"`
   ImgId                int64    `protobuf:"varint,4,opt,name=imgId,proto3" json:"imgId,omitempty"`
   VideoUrl             string   `protobuf:"bytes,5,opt,name=videoUrl,proto3" json:"videoUrl,omitempty"`
   SdkIds               []string `protobuf:"bytes,6,rep,name=sdkIds,proto3" json:"sdkIds,omitempty"`
   Type                 int32    `protobuf:"varint,7,opt,name=type,proto3" json:"type,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *VideotapeInfo) Reset()         { *m = VideotapeInfo{} }
func (m *VideotapeInfo) String() string { return proto.CompactTextString(m) }
func (*VideotapeInfo) ProtoMessage()    {}
func (*VideotapeInfo) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{24}
}
func (m *VideotapeInfo) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_VideotapeInfo.Unmarshal(m, b)
}
func (m *VideotapeInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_VideotapeInfo.Marshal(b, m, deterministic)
}
func (m *VideotapeInfo) XXX_Merge(src proto.Message) {
   xxx_messageInfo_VideotapeInfo.Merge(m, src)
}
func (m *VideotapeInfo) XXX_Size() int {
   return xxx_messageInfo_VideotapeInfo.Size(m)
}
func (m *VideotapeInfo) XXX_DiscardUnknown() {
   xxx_messageInfo_VideotapeInfo.DiscardUnknown(m)
}
var xxx_messageInfo_VideotapeInfo proto.InternalMessageInfo
func (m *VideotapeInfo) GetEsDataId() string {
   if m != nil {
      return m.EsDataId
   }
   return ""
}
func (m *VideotapeInfo) GetCameraId() string {
   if m != nil {
      return m.CameraId
   }
   return ""
}
func (m *CameraTaskArg) GetPolygonId() string {
func (m *VideotapeInfo) GetTaskId() string {
   if m != nil {
      return m.PolygonId
      return m.TaskId
   }
   return ""
}
func (m *CameraTaskArg) GetSdkId() string {
func (m *VideotapeInfo) GetImgId() int64 {
   if m != nil {
      return m.SdkId
      return m.ImgId
   }
   return 0
}
func (m *VideotapeInfo) GetVideoUrl() string {
   if m != nil {
      return m.VideoUrl
   }
   return ""
}
func (m *CameraTaskArg) GetSdkArgAlias() string {
func (m *VideotapeInfo) GetSdkIds() []string {
   if m != nil {
      return m.SdkArgAlias
      return m.SdkIds
   }
   return nil
}
func (m *VideotapeInfo) GetType() int32 {
   if m != nil {
      return m.Type
   }
   return 0
}
type Voice struct {
   Id                   string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   Name                 string   `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
   Path                 string   `protobuf:"bytes,3,opt,name=path,proto3" json:"path,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *Voice) Reset()         { *m = Voice{} }
func (m *Voice) String() string { return proto.CompactTextString(m) }
func (*Voice) ProtoMessage()    {}
func (*Voice) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{25}
}
func (m *Voice) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_Voice.Unmarshal(m, b)
}
func (m *Voice) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_Voice.Marshal(b, m, deterministic)
}
func (m *Voice) XXX_Merge(src proto.Message) {
   xxx_messageInfo_Voice.Merge(m, src)
}
func (m *Voice) XXX_Size() int {
   return xxx_messageInfo_Voice.Size(m)
}
func (m *Voice) XXX_DiscardUnknown() {
   xxx_messageInfo_Voice.DiscardUnknown(m)
}
var xxx_messageInfo_Voice proto.InternalMessageInfo
func (m *Voice) GetId() string {
   if m != nil {
      return m.Id
   }
   return ""
}
func (m *CameraTaskArg) GetOperator() string {
func (m *Voice) GetName() string {
   if m != nil {
      return m.Name
   }
   return ""
}
func (m *Voice) GetPath() string {
   if m != nil {
      return m.Path
   }
   return ""
}
type VoiceList struct {
   List                 []*Voice `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *VoiceList) Reset()         { *m = VoiceList{} }
func (m *VoiceList) String() string { return proto.CompactTextString(m) }
func (*VoiceList) ProtoMessage()    {}
func (*VoiceList) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{26}
}
func (m *VoiceList) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_VoiceList.Unmarshal(m, b)
}
func (m *VoiceList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_VoiceList.Marshal(b, m, deterministic)
}
func (m *VoiceList) XXX_Merge(src proto.Message) {
   xxx_messageInfo_VoiceList.Merge(m, src)
}
func (m *VoiceList) XXX_Size() int {
   return xxx_messageInfo_VoiceList.Size(m)
}
func (m *VoiceList) XXX_DiscardUnknown() {
   xxx_messageInfo_VoiceList.DiscardUnknown(m)
}
var xxx_messageInfo_VoiceList proto.InternalMessageInfo
func (m *VoiceList) GetList() []*Voice {
   if m != nil {
      return m.List
   }
   return nil
}
type CompareArgs struct {
   TableIds             []string `protobuf:"bytes,1,rep,name=tableIds,proto3" json:"tableIds,omitempty"`
   CompareThreshold     float32  `protobuf:"fixed32,2,opt,name=compareThreshold,proto3" json:"compareThreshold,omitempty"`
   FaceFeature          []byte   `protobuf:"bytes,3,opt,name=faceFeature,proto3" json:"faceFeature,omitempty"`
   Tasks                []string `protobuf:"bytes,4,rep,name=tasks,proto3" json:"tasks,omitempty"`
   TreeNodes            []string `protobuf:"bytes,5,rep,name=treeNodes,proto3" json:"treeNodes,omitempty"`
   Tabs                 []string `protobuf:"bytes,6,rep,name=tabs,proto3" json:"tabs,omitempty"`
   AlarmLevel           string   `protobuf:"bytes,7,opt,name=alarmLevel,proto3" json:"alarmLevel,omitempty"`
   SearchTime           []string `protobuf:"bytes,8,rep,name=searchTime,proto3" json:"searchTime,omitempty"`
   InputValue           string   `protobuf:"bytes,9,opt,name=inputValue,proto3" json:"inputValue,omitempty"`
   Collection           string   `protobuf:"bytes,10,opt,name=collection,proto3" json:"collection,omitempty"`
   Source               bool     `protobuf:"varint,11,opt,name=source,proto3" json:"source,omitempty"`
   AnalyServerId        string   `protobuf:"bytes,12,opt,name=analyServerId,proto3" json:"analyServerId,omitempty"`
   CompareTarget        string   `protobuf:"bytes,13,opt,name=compareTarget,proto3" json:"compareTarget,omitempty"`
   IsCompareAll         bool     `protobuf:"varint,14,opt,name=isCompareAll,proto3" json:"isCompareAll,omitempty"`
   ServerIds            []string `protobuf:"bytes,15,rep,name=serverIds,proto3" json:"serverIds,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *CompareArgs) Reset()         { *m = CompareArgs{} }
func (m *CompareArgs) String() string { return proto.CompactTextString(m) }
func (*CompareArgs) ProtoMessage()    {}
func (*CompareArgs) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{27}
}
func (m *CompareArgs) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_CompareArgs.Unmarshal(m, b)
}
func (m *CompareArgs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_CompareArgs.Marshal(b, m, deterministic)
}
func (m *CompareArgs) XXX_Merge(src proto.Message) {
   xxx_messageInfo_CompareArgs.Merge(m, src)
}
func (m *CompareArgs) XXX_Size() int {
   return xxx_messageInfo_CompareArgs.Size(m)
}
func (m *CompareArgs) XXX_DiscardUnknown() {
   xxx_messageInfo_CompareArgs.DiscardUnknown(m)
}
var xxx_messageInfo_CompareArgs proto.InternalMessageInfo
func (m *CompareArgs) GetTableIds() []string {
   if m != nil {
      return m.TableIds
   }
   return nil
}
func (m *CompareArgs) GetCompareThreshold() float32 {
   if m != nil {
      return m.CompareThreshold
   }
   return 0
}
func (m *CompareArgs) GetFaceFeature() []byte {
   if m != nil {
      return m.FaceFeature
   }
   return nil
}
func (m *CompareArgs) GetTasks() []string {
   if m != nil {
      return m.Tasks
   }
   return nil
}
func (m *CompareArgs) GetTreeNodes() []string {
   if m != nil {
      return m.TreeNodes
   }
   return nil
}
func (m *CompareArgs) GetTabs() []string {
   if m != nil {
      return m.Tabs
   }
   return nil
}
func (m *CompareArgs) GetAlarmLevel() string {
   if m != nil {
      return m.AlarmLevel
   }
   return ""
}
func (m *CompareArgs) GetSearchTime() []string {
   if m != nil {
      return m.SearchTime
   }
   return nil
}
func (m *CompareArgs) GetInputValue() string {
   if m != nil {
      return m.InputValue
   }
   return ""
}
func (m *CompareArgs) GetCollection() string {
   if m != nil {
      return m.Collection
   }
   return ""
}
func (m *CompareArgs) GetSource() bool {
   if m != nil {
      return m.Source
   }
   return false
}
func (m *CompareArgs) GetAnalyServerId() string {
   if m != nil {
      return m.AnalyServerId
   }
   return ""
}
func (m *CompareArgs) GetCompareTarget() string {
   if m != nil {
      return m.CompareTarget
   }
   return ""
}
func (m *CompareArgs) GetIsCompareAll() bool {
   if m != nil {
      return m.IsCompareAll
   }
   return false
}
func (m *CompareArgs) GetServerIds() []string {
   if m != nil {
      return m.ServerIds
   }
   return nil
}
type CompareEvent struct {
   EventType            CompareEventType `protobuf:"varint,1,opt,name=eventType,proto3,enum=protomsg.CompareEventType" json:"eventType,omitempty"`
   Payload              []byte           `protobuf:"bytes,2,opt,name=payload,proto3" json:"payload,omitempty"`
   XXX_NoUnkeyedLiteral struct{}         `json:"-"`
   XXX_unrecognized     []byte           `json:"-"`
   XXX_sizecache        int32            `json:"-"`
}
func (m *CompareEvent) Reset()         { *m = CompareEvent{} }
func (m *CompareEvent) String() string { return proto.CompactTextString(m) }
func (*CompareEvent) ProtoMessage()    {}
func (*CompareEvent) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{28}
}
func (m *CompareEvent) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_CompareEvent.Unmarshal(m, b)
}
func (m *CompareEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_CompareEvent.Marshal(b, m, deterministic)
}
func (m *CompareEvent) XXX_Merge(src proto.Message) {
   xxx_messageInfo_CompareEvent.Merge(m, src)
}
func (m *CompareEvent) XXX_Size() int {
   return xxx_messageInfo_CompareEvent.Size(m)
}
func (m *CompareEvent) XXX_DiscardUnknown() {
   xxx_messageInfo_CompareEvent.DiscardUnknown(m)
}
var xxx_messageInfo_CompareEvent proto.InternalMessageInfo
func (m *CompareEvent) GetEventType() CompareEventType {
   if m != nil {
      return m.EventType
   }
   return CompareEventType_ReInitCache
}
func (m *CompareEvent) GetPayload() []byte {
   if m != nil {
      return m.Payload
   }
   return nil
}
type SdkCompareEach struct {
   Id                   string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   Tableid              string   `protobuf:"bytes,2,opt,name=tableid,proto3" json:"tableid,omitempty"`
   CompareScore         float32  `protobuf:"fixed32,3,opt,name=compareScore,proto3" json:"compareScore,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *SdkCompareEach) Reset()         { *m = SdkCompareEach{} }
func (m *SdkCompareEach) String() string { return proto.CompactTextString(m) }
func (*SdkCompareEach) ProtoMessage()    {}
func (*SdkCompareEach) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{29}
}
func (m *SdkCompareEach) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_SdkCompareEach.Unmarshal(m, b)
}
func (m *SdkCompareEach) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_SdkCompareEach.Marshal(b, m, deterministic)
}
func (m *SdkCompareEach) XXX_Merge(src proto.Message) {
   xxx_messageInfo_SdkCompareEach.Merge(m, src)
}
func (m *SdkCompareEach) XXX_Size() int {
   return xxx_messageInfo_SdkCompareEach.Size(m)
}
func (m *SdkCompareEach) XXX_DiscardUnknown() {
   xxx_messageInfo_SdkCompareEach.DiscardUnknown(m)
}
var xxx_messageInfo_SdkCompareEach proto.InternalMessageInfo
func (m *SdkCompareEach) GetId() string {
   if m != nil {
      return m.Id
   }
   return ""
}
func (m *SdkCompareEach) GetTableid() string {
   if m != nil {
      return m.Tableid
   }
   return ""
}
func (m *SdkCompareEach) GetCompareScore() float32 {
   if m != nil {
      return m.CompareScore
   }
   return 0
}
type SdkCompareResult struct {
   CompareResult        []*SdkCompareEach `protobuf:"bytes,1,rep,name=compareResult,proto3" json:"compareResult,omitempty"`
   XXX_NoUnkeyedLiteral struct{}          `json:"-"`
   XXX_unrecognized     []byte            `json:"-"`
   XXX_sizecache        int32             `json:"-"`
}
func (m *SdkCompareResult) Reset()         { *m = SdkCompareResult{} }
func (m *SdkCompareResult) String() string { return proto.CompactTextString(m) }
func (*SdkCompareResult) ProtoMessage()    {}
func (*SdkCompareResult) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{30}
}
func (m *SdkCompareResult) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_SdkCompareResult.Unmarshal(m, b)
}
func (m *SdkCompareResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_SdkCompareResult.Marshal(b, m, deterministic)
}
func (m *SdkCompareResult) XXX_Merge(src proto.Message) {
   xxx_messageInfo_SdkCompareResult.Merge(m, src)
}
func (m *SdkCompareResult) XXX_Size() int {
   return xxx_messageInfo_SdkCompareResult.Size(m)
}
func (m *SdkCompareResult) XXX_DiscardUnknown() {
   xxx_messageInfo_SdkCompareResult.DiscardUnknown(m)
}
var xxx_messageInfo_SdkCompareResult proto.InternalMessageInfo
func (m *SdkCompareResult) GetCompareResult() []*SdkCompareEach {
   if m != nil {
      return m.CompareResult
   }
   return nil
}
type EventPush struct {
   Id                   string            `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   Name                 string            `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
   TimeStart            string            `protobuf:"bytes,3,opt,name=time_start,json=timeStart,proto3" json:"time_start,omitempty"`
   TimeEnd              string            `protobuf:"bytes,4,opt,name=time_end,json=timeEnd,proto3" json:"time_end,omitempty"`
   IsSatisfyAll         bool              `protobuf:"varint,5,opt,name=is_satisfy_all,json=isSatisfyAll,proto3" json:"is_satisfy_all,omitempty"`
   RuleText             string            `protobuf:"bytes,6,opt,name=rule_text,json=ruleText,proto3" json:"rule_text,omitempty"`
   Enable               bool              `protobuf:"varint,7,opt,name=enable,proto3" json:"enable,omitempty"`
   LinkType             string            `protobuf:"bytes,8,opt,name=link_type,json=linkType,proto3" json:"link_type,omitempty"`
   LinkDevice           string            `protobuf:"bytes,9,opt,name=link_device,json=linkDevice,proto3" json:"link_device,omitempty"`
   IpPorts              []*PushIpPort     `protobuf:"bytes,10,rep,name=ip_ports,json=ipPorts,proto3" json:"ip_ports,omitempty"`
   Urls                 []*PushUrl        `protobuf:"bytes,11,rep,name=urls,proto3" json:"urls,omitempty"`
   Rules                []*EventPushRule  `protobuf:"bytes,12,rep,name=rules,proto3" json:"rules,omitempty"`
   FiltRename           map[string]string `protobuf:"bytes,13,rep,name=filtRename,proto3" json:"filtRename,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
   PushSet              []*PushSetMenu    `protobuf:"bytes,14,rep,name=push_set,json=pushSet,proto3" json:"push_set,omitempty"`
   XXX_NoUnkeyedLiteral struct{}          `json:"-"`
   XXX_unrecognized     []byte            `json:"-"`
   XXX_sizecache        int32             `json:"-"`
}
func (m *EventPush) Reset()         { *m = EventPush{} }
func (m *EventPush) String() string { return proto.CompactTextString(m) }
func (*EventPush) ProtoMessage()    {}
func (*EventPush) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{31}
}
func (m *EventPush) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_EventPush.Unmarshal(m, b)
}
func (m *EventPush) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_EventPush.Marshal(b, m, deterministic)
}
func (m *EventPush) XXX_Merge(src proto.Message) {
   xxx_messageInfo_EventPush.Merge(m, src)
}
func (m *EventPush) XXX_Size() int {
   return xxx_messageInfo_EventPush.Size(m)
}
func (m *EventPush) XXX_DiscardUnknown() {
   xxx_messageInfo_EventPush.DiscardUnknown(m)
}
var xxx_messageInfo_EventPush proto.InternalMessageInfo
func (m *EventPush) GetId() string {
   if m != nil {
      return m.Id
   }
   return ""
}
func (m *EventPush) GetName() string {
   if m != nil {
      return m.Name
   }
   return ""
}
func (m *EventPush) GetTimeStart() string {
   if m != nil {
      return m.TimeStart
   }
   return ""
}
func (m *EventPush) GetTimeEnd() string {
   if m != nil {
      return m.TimeEnd
   }
   return ""
}
func (m *EventPush) GetIsSatisfyAll() bool {
   if m != nil {
      return m.IsSatisfyAll
   }
   return false
}
func (m *EventPush) GetRuleText() string {
   if m != nil {
      return m.RuleText
   }
   return ""
}
func (m *EventPush) GetEnable() bool {
   if m != nil {
      return m.Enable
   }
   return false
}
func (m *EventPush) GetLinkType() string {
   if m != nil {
      return m.LinkType
   }
   return ""
}
func (m *EventPush) GetLinkDevice() string {
   if m != nil {
      return m.LinkDevice
   }
   return ""
}
func (m *EventPush) GetIpPorts() []*PushIpPort {
   if m != nil {
      return m.IpPorts
   }
   return nil
}
func (m *EventPush) GetUrls() []*PushUrl {
   if m != nil {
      return m.Urls
   }
   return nil
}
func (m *EventPush) GetRules() []*EventPushRule {
   if m != nil {
      return m.Rules
   }
   return nil
}
func (m *EventPush) GetFiltRename() map[string]string {
   if m != nil {
      return m.FiltRename
   }
   return nil
}
func (m *EventPush) GetPushSet() []*PushSetMenu {
   if m != nil {
      return m.PushSet
   }
   return nil
}
type PushSetMenu struct {
   Id                   string         `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   Name                 string         `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
   Checked              bool           `protobuf:"varint,3,opt,name=checked,proto3" json:"checked,omitempty"`
   Alias                string         `protobuf:"bytes,4,opt,name=alias,proto3" json:"alias,omitempty"`
   Children             []*PushSetMenu `protobuf:"bytes,5,rep,name=children,proto3" json:"children,omitempty"`
   XXX_NoUnkeyedLiteral struct{}       `json:"-"`
   XXX_unrecognized     []byte         `json:"-"`
   XXX_sizecache        int32          `json:"-"`
}
func (m *PushSetMenu) Reset()         { *m = PushSetMenu{} }
func (m *PushSetMenu) String() string { return proto.CompactTextString(m) }
func (*PushSetMenu) ProtoMessage()    {}
func (*PushSetMenu) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{32}
}
func (m *PushSetMenu) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_PushSetMenu.Unmarshal(m, b)
}
func (m *PushSetMenu) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_PushSetMenu.Marshal(b, m, deterministic)
}
func (m *PushSetMenu) XXX_Merge(src proto.Message) {
   xxx_messageInfo_PushSetMenu.Merge(m, src)
}
func (m *PushSetMenu) XXX_Size() int {
   return xxx_messageInfo_PushSetMenu.Size(m)
}
func (m *PushSetMenu) XXX_DiscardUnknown() {
   xxx_messageInfo_PushSetMenu.DiscardUnknown(m)
}
var xxx_messageInfo_PushSetMenu proto.InternalMessageInfo
func (m *PushSetMenu) GetId() string {
   if m != nil {
      return m.Id
   }
   return ""
}
func (m *PushSetMenu) GetName() string {
   if m != nil {
      return m.Name
   }
   return ""
}
func (m *PushSetMenu) GetChecked() bool {
   if m != nil {
      return m.Checked
   }
   return false
}
func (m *PushSetMenu) GetAlias() string {
   if m != nil {
      return m.Alias
   }
   return ""
}
func (m *PushSetMenu) GetChildren() []*PushSetMenu {
   if m != nil {
      return m.Children
   }
   return nil
}
type EventPushRule struct {
   Id                   string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   TopicType            string   `protobuf:"bytes,2,opt,name=topic_type,json=topicType,proto3" json:"topic_type,omitempty"`
   TopicArg             string   `protobuf:"bytes,3,opt,name=topic_arg,json=topicArg,proto3" json:"topic_arg,omitempty"`
   Operator             string   `protobuf:"bytes,4,opt,name=operator,proto3" json:"operator,omitempty"`
   OperatorType         string   `protobuf:"bytes,5,opt,name=operator_type,json=operatorType,proto3" json:"operator_type,omitempty"`
   RuleValue            string   `protobuf:"bytes,6,opt,name=rule_value,json=ruleValue,proto3" json:"rule_value,omitempty"`
   EventPushId          string   `protobuf:"bytes,7,opt,name=event_push_id,json=eventPushId,proto3" json:"event_push_id,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *EventPushRule) Reset()         { *m = EventPushRule{} }
func (m *EventPushRule) String() string { return proto.CompactTextString(m) }
func (*EventPushRule) ProtoMessage()    {}
func (*EventPushRule) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{33}
}
func (m *EventPushRule) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_EventPushRule.Unmarshal(m, b)
}
func (m *EventPushRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_EventPushRule.Marshal(b, m, deterministic)
}
func (m *EventPushRule) XXX_Merge(src proto.Message) {
   xxx_messageInfo_EventPushRule.Merge(m, src)
}
func (m *EventPushRule) XXX_Size() int {
   return xxx_messageInfo_EventPushRule.Size(m)
}
func (m *EventPushRule) XXX_DiscardUnknown() {
   xxx_messageInfo_EventPushRule.DiscardUnknown(m)
}
var xxx_messageInfo_EventPushRule proto.InternalMessageInfo
func (m *EventPushRule) GetId() string {
   if m != nil {
      return m.Id
   }
   return ""
}
func (m *EventPushRule) GetTopicType() string {
   if m != nil {
      return m.TopicType
   }
   return ""
}
func (m *EventPushRule) GetTopicArg() string {
   if m != nil {
      return m.TopicArg
   }
   return ""
}
func (m *EventPushRule) GetOperator() string {
   if m != nil {
      return m.Operator
   }
   return ""
}
func (m *CameraTaskArg) GetOperatorType() string {
func (m *EventPushRule) GetOperatorType() string {
   if m != nil {
      return m.OperatorType
   }
   return ""
}
func (m *CameraTaskArg) GetSdkArgValue() string {
func (m *EventPushRule) GetRuleValue() string {
   if m != nil {
      return m.SdkArgValue
      return m.RuleValue
   }
   return ""
}
func (m *CameraTaskArg) GetSort() int32 {
func (m *EventPushRule) GetEventPushId() string {
   if m != nil {
      return m.EventPushId
   }
   return ""
}
type PushIpPort struct {
   ServerIp             string   `protobuf:"bytes,1,opt,name=server_ip,json=serverIp,proto3" json:"server_ip,omitempty"`
   Port                 int32    `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
   Enable               bool     `protobuf:"varint,3,opt,name=enable,proto3" json:"enable,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *PushIpPort) Reset()         { *m = PushIpPort{} }
func (m *PushIpPort) String() string { return proto.CompactTextString(m) }
func (*PushIpPort) ProtoMessage()    {}
func (*PushIpPort) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{34}
}
func (m *PushIpPort) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_PushIpPort.Unmarshal(m, b)
}
func (m *PushIpPort) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_PushIpPort.Marshal(b, m, deterministic)
}
func (m *PushIpPort) XXX_Merge(src proto.Message) {
   xxx_messageInfo_PushIpPort.Merge(m, src)
}
func (m *PushIpPort) XXX_Size() int {
   return xxx_messageInfo_PushIpPort.Size(m)
}
func (m *PushIpPort) XXX_DiscardUnknown() {
   xxx_messageInfo_PushIpPort.DiscardUnknown(m)
}
var xxx_messageInfo_PushIpPort proto.InternalMessageInfo
func (m *PushIpPort) GetServerIp() string {
   if m != nil {
      return m.ServerIp
   }
   return ""
}
func (m *PushIpPort) GetPort() int32 {
   if m != nil {
      return m.Port
   }
   return 0
}
func (m *PushIpPort) GetEnable() bool {
   if m != nil {
      return m.Enable
   }
   return false
}
type PushUrl struct {
   Url                  string   `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
   Enable               bool     `protobuf:"varint,2,opt,name=enable,proto3" json:"enable,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *PushUrl) Reset()         { *m = PushUrl{} }
func (m *PushUrl) String() string { return proto.CompactTextString(m) }
func (*PushUrl) ProtoMessage()    {}
func (*PushUrl) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{35}
}
func (m *PushUrl) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_PushUrl.Unmarshal(m, b)
}
func (m *PushUrl) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_PushUrl.Marshal(b, m, deterministic)
}
func (m *PushUrl) XXX_Merge(src proto.Message) {
   xxx_messageInfo_PushUrl.Merge(m, src)
}
func (m *PushUrl) XXX_Size() int {
   return xxx_messageInfo_PushUrl.Size(m)
}
func (m *PushUrl) XXX_DiscardUnknown() {
   xxx_messageInfo_PushUrl.DiscardUnknown(m)
}
var xxx_messageInfo_PushUrl proto.InternalMessageInfo
func (m *PushUrl) GetUrl() string {
   if m != nil {
      return m.Url
   }
   return ""
}
func (m *PushUrl) GetEnable() bool {
   if m != nil {
      return m.Enable
   }
   return false
}
type PushAttach struct {
   PushId               string   `protobuf:"bytes,1,opt,name=push_id,json=pushId,proto3" json:"push_id,omitempty"`
   Cam                  *Camera  `protobuf:"bytes,2,opt,name=cam,proto3" json:"cam,omitempty"`
   ServerId             string   `protobuf:"bytes,3,opt,name=server_id,json=serverId,proto3" json:"server_id,omitempty"`
   ServerName           string   `protobuf:"bytes,4,opt,name=server_name,json=serverName,proto3" json:"server_name,omitempty"`
   LocalIp              string   `protobuf:"bytes,5,opt,name=local_ip,json=localIp,proto3" json:"local_ip,omitempty"`
   VideoUrl             string   `protobuf:"bytes,6,opt,name=video_url,json=videoUrl,proto3" json:"video_url,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *PushAttach) Reset()         { *m = PushAttach{} }
func (m *PushAttach) String() string { return proto.CompactTextString(m) }
func (*PushAttach) ProtoMessage()    {}
func (*PushAttach) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{36}
}
func (m *PushAttach) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_PushAttach.Unmarshal(m, b)
}
func (m *PushAttach) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_PushAttach.Marshal(b, m, deterministic)
}
func (m *PushAttach) XXX_Merge(src proto.Message) {
   xxx_messageInfo_PushAttach.Merge(m, src)
}
func (m *PushAttach) XXX_Size() int {
   return xxx_messageInfo_PushAttach.Size(m)
}
func (m *PushAttach) XXX_DiscardUnknown() {
   xxx_messageInfo_PushAttach.DiscardUnknown(m)
}
var xxx_messageInfo_PushAttach proto.InternalMessageInfo
func (m *PushAttach) GetPushId() string {
   if m != nil {
      return m.PushId
   }
   return ""
}
func (m *PushAttach) GetCam() *Camera {
   if m != nil {
      return m.Cam
   }
   return nil
}
func (m *PushAttach) GetServerId() string {
   if m != nil {
      return m.ServerId
   }
   return ""
}
func (m *PushAttach) GetServerName() string {
   if m != nil {
      return m.ServerName
   }
   return ""
}
func (m *PushAttach) GetLocalIp() string {
   if m != nil {
      return m.LocalIp
   }
   return ""
}
func (m *PushAttach) GetVideoUrl() string {
   if m != nil {
      return m.VideoUrl
   }
   return ""
}
type EsPersonCacheChange struct {
   Type                 EsCacheChanged `protobuf:"varint,1,opt,name=type,proto3,enum=protomsg.EsCacheChanged" json:"type,omitempty"`
   TableId              []string       `protobuf:"bytes,2,rep,name=table_id,json=tableId,proto3" json:"table_id,omitempty"`
   PersonId             string         `protobuf:"bytes,3,opt,name=person_id,json=personId,proto3" json:"person_id,omitempty"`
   Feature              string         `protobuf:"bytes,4,opt,name=feature,proto3" json:"feature,omitempty"`
   Action               DbAction       `protobuf:"varint,5,opt,name=action,proto3,enum=protomsg.DbAction" json:"action,omitempty"`
   Enable               int32          `protobuf:"varint,6,opt,name=enable,proto3" json:"enable,omitempty"`
   CarNo                string         `protobuf:"bytes,7,opt,name=carNo,proto3" json:"carNo,omitempty"`
   XXX_NoUnkeyedLiteral struct{}       `json:"-"`
   XXX_unrecognized     []byte         `json:"-"`
   XXX_sizecache        int32          `json:"-"`
}
func (m *EsPersonCacheChange) Reset()         { *m = EsPersonCacheChange{} }
func (m *EsPersonCacheChange) String() string { return proto.CompactTextString(m) }
func (*EsPersonCacheChange) ProtoMessage()    {}
func (*EsPersonCacheChange) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{37}
}
func (m *EsPersonCacheChange) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_EsPersonCacheChange.Unmarshal(m, b)
}
func (m *EsPersonCacheChange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_EsPersonCacheChange.Marshal(b, m, deterministic)
}
func (m *EsPersonCacheChange) XXX_Merge(src proto.Message) {
   xxx_messageInfo_EsPersonCacheChange.Merge(m, src)
}
func (m *EsPersonCacheChange) XXX_Size() int {
   return xxx_messageInfo_EsPersonCacheChange.Size(m)
}
func (m *EsPersonCacheChange) XXX_DiscardUnknown() {
   xxx_messageInfo_EsPersonCacheChange.DiscardUnknown(m)
}
var xxx_messageInfo_EsPersonCacheChange proto.InternalMessageInfo
func (m *EsPersonCacheChange) GetType() EsCacheChanged {
   if m != nil {
      return m.Type
   }
   return EsCacheChanged_T_DbTable
}
func (m *EsPersonCacheChange) GetTableId() []string {
   if m != nil {
      return m.TableId
   }
   return nil
}
func (m *EsPersonCacheChange) GetPersonId() string {
   if m != nil {
      return m.PersonId
   }
   return ""
}
func (m *EsPersonCacheChange) GetFeature() string {
   if m != nil {
      return m.Feature
   }
   return ""
}
func (m *EsPersonCacheChange) GetAction() DbAction {
   if m != nil {
      return m.Action
   }
   return DbAction_Insert
}
func (m *EsPersonCacheChange) GetEnable() int32 {
   if m != nil {
      return m.Enable
   }
   return 0
}
func (m *EsPersonCacheChange) GetCarNo() string {
   if m != nil {
      return m.CarNo
   }
   return ""
}
type ClusterAndNodes struct {
   ClusterId            string   `protobuf:"bytes,1,opt,name=clusterId,proto3" json:"clusterId,omitempty"`
   ClusterName          string   `protobuf:"bytes,2,opt,name=clusterName,proto3" json:"clusterName,omitempty"`
   Nodes                []*Node  `protobuf:"bytes,3,rep,name=nodes,proto3" json:"nodes,omitempty"`
   VirtualIp            string   `protobuf:"bytes,4,opt,name=virtualIp,proto3" json:"virtualIp,omitempty"`
   Password             string   `protobuf:"bytes,5,opt,name=password,proto3" json:"password,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *ClusterAndNodes) Reset()         { *m = ClusterAndNodes{} }
func (m *ClusterAndNodes) String() string { return proto.CompactTextString(m) }
func (*ClusterAndNodes) ProtoMessage()    {}
func (*ClusterAndNodes) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{38}
}
func (m *ClusterAndNodes) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_ClusterAndNodes.Unmarshal(m, b)
}
func (m *ClusterAndNodes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_ClusterAndNodes.Marshal(b, m, deterministic)
}
func (m *ClusterAndNodes) XXX_Merge(src proto.Message) {
   xxx_messageInfo_ClusterAndNodes.Merge(m, src)
}
func (m *ClusterAndNodes) XXX_Size() int {
   return xxx_messageInfo_ClusterAndNodes.Size(m)
}
func (m *ClusterAndNodes) XXX_DiscardUnknown() {
   xxx_messageInfo_ClusterAndNodes.DiscardUnknown(m)
}
var xxx_messageInfo_ClusterAndNodes proto.InternalMessageInfo
func (m *ClusterAndNodes) GetClusterId() string {
   if m != nil {
      return m.ClusterId
   }
   return ""
}
func (m *ClusterAndNodes) GetClusterName() string {
   if m != nil {
      return m.ClusterName
   }
   return ""
}
func (m *ClusterAndNodes) GetNodes() []*Node {
   if m != nil {
      return m.Nodes
   }
   return nil
}
func (m *ClusterAndNodes) GetVirtualIp() string {
   if m != nil {
      return m.VirtualIp
   }
   return ""
}
func (m *ClusterAndNodes) GetPassword() string {
   if m != nil {
      return m.Password
   }
   return ""
}
type Node struct {
   Id                   string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   ClusterId            string   `protobuf:"bytes,2,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
   NodeName             string   `protobuf:"bytes,3,opt,name=node_name,json=nodeName,proto3" json:"node_name,omitempty"`
   NodeId               string   `protobuf:"bytes,4,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"`
   NodeIp               string   `protobuf:"bytes,5,opt,name=node_ip,json=nodeIp,proto3" json:"node_ip,omitempty"`
   CreateTime           string   `protobuf:"bytes,6,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
   IsDelete             bool     `protobuf:"varint,7,opt,name=isDelete,proto3" json:"isDelete,omitempty"`
   DriftState           string   `protobuf:"bytes,8,opt,name=drift_state,json=driftState,proto3" json:"drift_state,omitempty"`
   DeviceType           string   `protobuf:"bytes,9,opt,name=device_type,json=deviceType,proto3" json:"device_type,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *Node) Reset()         { *m = Node{} }
func (m *Node) String() string { return proto.CompactTextString(m) }
func (*Node) ProtoMessage()    {}
func (*Node) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{39}
}
func (m *Node) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_Node.Unmarshal(m, b)
}
func (m *Node) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_Node.Marshal(b, m, deterministic)
}
func (m *Node) XXX_Merge(src proto.Message) {
   xxx_messageInfo_Node.Merge(m, src)
}
func (m *Node) XXX_Size() int {
   return xxx_messageInfo_Node.Size(m)
}
func (m *Node) XXX_DiscardUnknown() {
   xxx_messageInfo_Node.DiscardUnknown(m)
}
var xxx_messageInfo_Node proto.InternalMessageInfo
func (m *Node) GetId() string {
   if m != nil {
      return m.Id
   }
   return ""
}
func (m *Node) GetClusterId() string {
   if m != nil {
      return m.ClusterId
   }
   return ""
}
func (m *Node) GetNodeName() string {
   if m != nil {
      return m.NodeName
   }
   return ""
}
func (m *Node) GetNodeId() string {
   if m != nil {
      return m.NodeId
   }
   return ""
}
func (m *Node) GetNodeIp() string {
   if m != nil {
      return m.NodeIp
   }
   return ""
}
func (m *Node) GetCreateTime() string {
   if m != nil {
      return m.CreateTime
   }
   return ""
}
func (m *Node) GetIsDelete() bool {
   if m != nil {
      return m.IsDelete
   }
   return false
}
func (m *Node) GetDriftState() string {
   if m != nil {
      return m.DriftState
   }
   return ""
}
func (m *Node) GetDeviceType() string {
   if m != nil {
      return m.DeviceType
   }
   return ""
}
type Dic struct {
   Id                   string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   Value                string   `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
   Name                 string   `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
   Type                 string   `protobuf:"bytes,4,opt,name=type,proto3" json:"type,omitempty"`
   Description          string   `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"`
   Sort                 int32    `protobuf:"varint,6,opt,name=sort,proto3" json:"sort,omitempty"`
   ParentId             string   `protobuf:"bytes,7,opt,name=parent_id,json=parentId,proto3" json:"parent_id,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *Dic) Reset()         { *m = Dic{} }
func (m *Dic) String() string { return proto.CompactTextString(m) }
func (*Dic) ProtoMessage()    {}
func (*Dic) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{40}
}
func (m *Dic) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_Dic.Unmarshal(m, b)
}
func (m *Dic) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_Dic.Marshal(b, m, deterministic)
}
func (m *Dic) XXX_Merge(src proto.Message) {
   xxx_messageInfo_Dic.Merge(m, src)
}
func (m *Dic) XXX_Size() int {
   return xxx_messageInfo_Dic.Size(m)
}
func (m *Dic) XXX_DiscardUnknown() {
   xxx_messageInfo_Dic.DiscardUnknown(m)
}
var xxx_messageInfo_Dic proto.InternalMessageInfo
func (m *Dic) GetId() string {
   if m != nil {
      return m.Id
   }
   return ""
}
func (m *Dic) GetValue() string {
   if m != nil {
      return m.Value
   }
   return ""
}
func (m *Dic) GetName() string {
   if m != nil {
      return m.Name
   }
   return ""
}
func (m *Dic) GetType() string {
   if m != nil {
      return m.Type
   }
   return ""
}
func (m *Dic) GetDescription() string {
   if m != nil {
      return m.Description
   }
   return ""
}
func (m *Dic) GetSort() int32 {
   if m != nil {
      return m.Sort
   }
   return 0
}
func (m *CameraTaskArg) GetRuleWithPre() string {
func (m *Dic) GetParentId() string {
   if m != nil {
      return m.RuleWithPre
   }
   return ""
}
func (m *CameraTaskArg) GetGroupId() string {
   if m != nil {
      return m.GroupId
      return m.ParentId
   }
   return ""
}
@@ -2289,158 +3480,264 @@
func init() {
   proto.RegisterEnum("protomsg.TableChanged", TableChanged_name, TableChanged_value)
   proto.RegisterEnum("protomsg.DbAction", DbAction_name, DbAction_value)
   proto.RegisterType((*TaskLabel)(nil), "protomsg.TaskLabel")
   proto.RegisterType((*SdkMessage)(nil), "protomsg.SdkMessage")
   proto.RegisterType((*Image)(nil), "protomsg.Image")
   proto.RegisterEnum("protomsg.CompareEventType", CompareEventType_name, CompareEventType_value)
   proto.RegisterEnum("protomsg.EsCacheChanged", EsCacheChanged_name, EsCacheChanged_value)
   proto.RegisterType((*Area)(nil), "protomsg.Area")
   proto.RegisterType((*Camera)(nil), "protomsg.Camera")
   proto.RegisterType((*CameraAndTaskInfo)(nil), "protomsg.CameraAndTaskInfo")
   proto.RegisterType((*Task)(nil), "protomsg.Task")
   proto.RegisterType((*TaskSdkInfo)(nil), "protomsg.TaskSdkInfo")
   proto.RegisterType((*CameraTask)(nil), "protomsg.CameraTask")
   proto.RegisterType((*Sensor)(nil), "protomsg.Sensor")
   proto.RegisterType((*CameraLink)(nil), "protomsg.CameraLink")
   proto.RegisterType((*SdkRun)(nil), "protomsg.SdkRun")
   proto.RegisterType((*CameraTimerule)(nil), "protomsg.CameraTimerule")
   proto.RegisterType((*DayCtl)(nil), "protomsg.DayCtl")
   proto.RegisterType((*TimeRange)(nil), "protomsg.TimeRange")
   proto.RegisterType((*Polygon)(nil), "protomsg.Polygon")
   proto.RegisterType((*CameraTaskArgs)(nil), "protomsg.CameraTaskArgs")
   proto.RegisterType((*CameraInfo)(nil), "protomsg.CameraInfo")
   proto.RegisterType((*CameraAndRules)(nil), "protomsg.CameraAndRules")
   proto.RegisterType((*GroupRule)(nil), "protomsg.GroupRule")
   proto.RegisterType((*GroupRuleSdks)(nil), "protomsg.GroupRuleSdks")
   proto.RegisterType((*Rule)(nil), "protomsg.Rule")
   proto.RegisterType((*RuleTemplate)(nil), "protomsg.RuleTemplate")
   proto.RegisterType((*RuleTemplateList)(nil), "protomsg.RuleTemplateList")
   proto.RegisterType((*TemplateArg)(nil), "protomsg.TemplateArg")
   proto.RegisterType((*SdkSetBase)(nil), "protomsg.SdkSetBase")
   proto.RegisterType((*Sdk)(nil), "protomsg.Sdk")
   proto.RegisterType((*SdkArg)(nil), "protomsg.SdkArg")
   proto.RegisterType((*Point)(nil), "protomsg.Point")
   proto.RegisterType((*Rect)(nil), "protomsg.Rect")
   proto.RegisterType((*FaceAngle)(nil), "protomsg.FaceAngle")
   proto.RegisterType((*ThftResult)(nil), "protomsg.ThftResult")
   proto.RegisterType((*FacePos)(nil), "protomsg.FacePos")
   proto.RegisterType((*FaceInfo)(nil), "protomsg.FaceInfo")
   proto.RegisterType((*ObjInfo)(nil), "protomsg.ObjInfo")
   proto.RegisterType((*ParamFacePos)(nil), "protomsg.ParamFacePos")
   proto.RegisterType((*ParamFaceCompare)(nil), "protomsg.ParamFaceCompare")
   proto.RegisterType((*ParamFaceProperty)(nil), "protomsg.ParamFaceProperty")
   proto.RegisterType((*ParamYoloObj)(nil), "protomsg.ParamYoloObj")
   proto.RegisterType((*SdkChanSet)(nil), "protomsg.SdkChanSet")
   proto.RegisterType((*DbChangeMessage)(nil), "protomsg.DbChangeMessage")
   proto.RegisterType((*CameraPolygon)(nil), "protomsg.CameraPolygon")
   proto.RegisterType((*CameraTaskArg)(nil), "protomsg.CameraTaskArg")
   proto.RegisterType((*CameraPolygonRelation)(nil), "protomsg.CameraPolygonRelation")
   proto.RegisterType((*VideotapeInfo)(nil), "protomsg.VideotapeInfo")
   proto.RegisterType((*Voice)(nil), "protomsg.Voice")
   proto.RegisterType((*VoiceList)(nil), "protomsg.VoiceList")
   proto.RegisterType((*CompareArgs)(nil), "protomsg.CompareArgs")
   proto.RegisterType((*CompareEvent)(nil), "protomsg.CompareEvent")
   proto.RegisterType((*SdkCompareEach)(nil), "protomsg.SdkCompareEach")
   proto.RegisterType((*SdkCompareResult)(nil), "protomsg.SdkCompareResult")
   proto.RegisterType((*EventPush)(nil), "protomsg.EventPush")
   proto.RegisterMapType((map[string]string)(nil), "protomsg.EventPush.FiltRenameEntry")
   proto.RegisterType((*PushSetMenu)(nil), "protomsg.PushSetMenu")
   proto.RegisterType((*EventPushRule)(nil), "protomsg.EventPushRule")
   proto.RegisterType((*PushIpPort)(nil), "protomsg.PushIpPort")
   proto.RegisterType((*PushUrl)(nil), "protomsg.PushUrl")
   proto.RegisterType((*PushAttach)(nil), "protomsg.PushAttach")
   proto.RegisterType((*EsPersonCacheChange)(nil), "protomsg.EsPersonCacheChange")
   proto.RegisterType((*ClusterAndNodes)(nil), "protomsg.ClusterAndNodes")
   proto.RegisterType((*Node)(nil), "protomsg.Node")
   proto.RegisterType((*Dic)(nil), "protomsg.Dic")
}
func init() { proto.RegisterFile("protomsg.proto", fileDescriptor_32de24555f916688) }
var fileDescriptor_32de24555f916688 = []byte{
   // 1885 bytes of a gzipped FileDescriptorProto
   0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x58, 0x4b, 0x93, 0x23, 0x47,
   0x11, 0xb6, 0x5a, 0xcf, 0x4e, 0x3d, 0xac, 0x2d, 0x16, 0x23, 0xdb, 0x3c, 0x66, 0x7b, 0x07, 0x3c,
   0x2c, 0x66, 0x09, 0xc6, 0x77, 0x22, 0x86, 0x1d, 0x96, 0x50, 0xc4, 0x7a, 0x3d, 0xae, 0x19, 0x2f,
   0x81, 0x2f, 0x1d, 0xa5, 0xae, 0x52, 0xab, 0xad, 0x56, 0x77, 0x53, 0x5d, 0xda, 0x19, 0x1d, 0xb8,
   0x71, 0xe7, 0x87, 0xf0, 0x47, 0x38, 0xf0, 0x1f, 0x38, 0x71, 0x21, 0x82, 0x1b, 0x11, 0x5c, 0x89,
   0xcc, 0xaa, 0x6e, 0xb5, 0x66, 0x66, 0x89, 0x89, 0xe0, 0xea, 0x5b, 0xbe, 0x94, 0x95, 0xf9, 0x55,
   0x66, 0x56, 0xb6, 0x60, 0x52, 0xe8, 0xdc, 0xe4, 0x9b, 0x32, 0x7e, 0x4e, 0x04, 0x1b, 0x54, 0x7c,
   0xf0, 0x25, 0xf8, 0x57, 0xa2, 0x5c, 0xbf, 0x12, 0x0b, 0x95, 0xb2, 0x0f, 0xa0, 0x67, 0x44, 0xb9,
   0x4e, 0xe4, 0xac, 0x75, 0xd4, 0x3a, 0xf1, 0xb9, 0xe3, 0x50, 0x5e, 0xca, 0x75, 0x22, 0xcb, 0x99,
   0x77, 0xd4, 0x46, 0xb9, 0xe5, 0xd8, 0x63, 0xe8, 0x26, 0x99, 0x54, 0x37, 0xb3, 0xf6, 0x51, 0xeb,
   0xa4, 0xcb, 0x2d, 0x13, 0x08, 0x80, 0x4b, 0xb9, 0xfe, 0x5c, 0x95, 0xa5, 0x88, 0x15, 0x9b, 0x42,
   0x3b, 0xaa, 0x1d, 0x22, 0xc9, 0x7e, 0x0e, 0x7d, 0xf4, 0x9b, 0x8a, 0xc5, 0xcc, 0x3b, 0x6a, 0x9d,
   0x0c, 0x4f, 0xbf, 0xf3, 0xbc, 0x0e, 0xaf, 0x8e, 0x85, 0x57, 0x36, 0x8c, 0x41, 0x47, 0x0a, 0x23,
   0xe8, 0x8c, 0x11, 0x27, 0x3a, 0x98, 0x43, 0x77, 0xbe, 0x41, 0xef, 0x8f, 0xa1, 0x7b, 0x9d, 0x48,
   0xb3, 0x22, 0xff, 0x5d, 0x6e, 0x19, 0x8c, 0x77, 0xa5, 0x92, 0x78, 0x65, 0xe8, 0x80, 0x2e, 0x77,
   0xdc, 0xbd, 0xae, 0x5e, 0x42, 0xe7, 0x4c, 0x2b, 0xc1, 0x26, 0xe0, 0xb9, 0x30, 0xbb, 0xdc, 0x4b,
   0x24, 0xfb, 0x08, 0x06, 0x85, 0xd0, 0x2a, 0x33, 0x89, 0x74, 0x5e, 0x6a, 0x1e, 0xfd, 0x64, 0x62,
   0xa3, 0xc8, 0x8f, 0xcf, 0x89, 0x0e, 0xfe, 0xea, 0x41, 0xef, 0x85, 0xd8, 0x28, 0xdd, 0x74, 0xe5,
   0x93, 0xab, 0xca, 0xdc, 0xdb, 0x9b, 0xa3, 0xcc, 0xec, 0x0a, 0xe5, 0x90, 0x23, 0x1a, 0x65, 0x42,
   0x4a, 0x3d, 0xeb, 0x58, 0x3b, 0xa4, 0x31, 0x15, 0xa1, 0x95, 0x48, 0xe4, 0xac, 0x6b, 0x53, 0xb1,
   0x1c, 0xfb, 0x3e, 0xf8, 0x69, 0x9e, 0xc5, 0x89, 0xd9, 0x4a, 0x35, 0xeb, 0x1d, 0xb5, 0x4e, 0x3c,
   0xbe, 0x17, 0x60, 0xf0, 0xa9, 0x30, 0x56, 0xd9, 0x27, 0x65, 0xcd, 0xe3, 0x29, 0xda, 0x94, 0xc5,
   0x6c, 0x60, 0x4f, 0x41, 0x9a, 0x22, 0x2e, 0x66, 0xbe, 0x8b, 0xb8, 0x40, 0x9b, 0x22, 0xd7, 0x66,
   0x06, 0x36, 0x3a, 0xa4, 0xd1, 0xe7, 0xb6, 0x54, 0x9a, 0x32, 0x19, 0x92, 0x65, 0xcd, 0x5b, 0xb0,
   0xca, 0xf2, 0x3a, 0xd7, 0x72, 0x36, 0xb2, 0xba, 0x8a, 0xc7, 0x2b, 0x5a, 0x68, 0x91, 0xc9, 0xd9,
   0x98, 0x14, 0x96, 0xc1, 0x5f, 0x68, 0x55, 0x2a, 0xfd, 0x56, 0xc9, 0xd9, 0xc4, 0xfe, 0xa2, 0xe2,
   0x83, 0x08, 0x1e, 0x59, 0x24, 0xcf, 0x32, 0x89, 0x05, 0x31, 0xcf, 0x96, 0x39, 0x3b, 0x81, 0x5e,
   0x44, 0x42, 0x02, 0x76, 0x78, 0x3a, 0xdd, 0x17, 0x8d, 0x35, 0xe6, 0x4e, 0xcf, 0x8e, 0xa1, 0x8b,
   0xb5, 0x63, 0x8b, 0x75, 0x78, 0x3a, 0x39, 0xac, 0x2e, 0x6e, 0x95, 0xc1, 0xdf, 0x5b, 0xd0, 0x41,
   0xfe, 0x9d, 0x45, 0xff, 0x11, 0x0c, 0x90, 0x6a, 0xdc, 0x5c, 0xcd, 0xb3, 0x8f, 0xc1, 0x8f, 0xb4,
   0x12, 0x46, 0x85, 0xc2, 0xb8, 0x2a, 0x18, 0x58, 0xc1, 0x99, 0x69, 0x28, 0x17, 0x3b, 0x77, 0x97,
   0x4e, 0xf9, 0xeb, 0x1d, 0x2a, 0xb7, 0x85, 0x74, 0xbf, 0xec, 0x3a, 0x18, 0x49, 0x70, 0x66, 0x30,
   0x14, 0x95, 0x89, 0x45, 0x6a, 0x6f, 0x74, 0xc0, 0x1d, 0xc7, 0x3e, 0x84, 0x41, 0x52, 0x86, 0x22,
   0x15, 0x7a, 0x43, 0xd7, 0x39, 0xe0, 0xfd, 0xa4, 0x3c, 0x43, 0x16, 0x55, 0x52, 0xa5, 0xe1, 0x32,
   0x15, 0x31, 0xdd, 0xe8, 0x80, 0xf7, 0xa5, 0x4a, 0x5f, 0xa6, 0x22, 0x0e, 0xae, 0x60, 0x88, 0x09,
   0x5e, 0x4a, 0x0b, 0x60, 0x00, 0x1d, 0x8c, 0xdf, 0xc1, 0x77, 0x1b, 0x15, 0xd2, 0xb1, 0x27, 0xd0,
   0x29, 0x65, 0x8d, 0xdc, 0x78, 0x6f, 0x73, 0x29, 0xd7, 0x9c, 0x54, 0xc1, 0x3f, 0x3d, 0x00, 0x0b,
   0x38, 0xa1, 0x77, 0xbb, 0xd6, 0x7f, 0x00, 0x60, 0xaf, 0x21, 0xb4, 0xe3, 0x02, 0xe5, 0xbe, 0x95,
   0xcc, 0x65, 0xc9, 0xbe, 0x67, 0x7b, 0x3f, 0x4c, 0xa4, 0x83, 0x8d, 0xd0, 0x9e, 0xe3, 0x50, 0xf0,
   0x4d, 0xb2, 0x51, 0xa1, 0xde, 0xa6, 0x6a, 0xd6, 0xa1, 0xe3, 0x1b, 0x37, 0x7c, 0x2e, 0x76, 0x2f,
   0x4c, 0xca, 0x07, 0x68, 0xc2, 0xb7, 0xa9, 0xc2, 0x63, 0xb4, 0x12, 0x91, 0xb1, 0xf6, 0x16, 0x47,
   0x9f, 0x24, 0xa4, 0x7e, 0x02, 0x23, 0xab, 0x96, 0xea, 0x6d, 0x12, 0x59, 0x38, 0x7d, 0x3e, 0x24,
   0xd9, 0x39, 0x89, 0x0e, 0x80, 0xeb, 0x1f, 0x00, 0xc7, 0x7e, 0x04, 0x43, 0x77, 0x47, 0x0d, 0x58,
   0xc1, 0x8a, 0xc8, 0x60, 0x7f, 0x4f, 0xfe, 0xc1, 0x3d, 0x31, 0xe8, 0x94, 0x8d, 0xb6, 0x41, 0x1a,
   0x33, 0x4e, 0xca, 0x70, 0xb9, 0x4d, 0x53, 0xea, 0x9a, 0x01, 0xef, 0x25, 0xe5, 0xcb, 0x6d, 0x9a,
   0xb2, 0x00, 0xc6, 0x69, 0x92, 0xad, 0xc3, 0x58, 0xe7, 0xdb, 0x02, 0x01, 0xb1, 0x8d, 0x33, 0x44,
   0xe1, 0x6f, 0x51, 0x36, 0x97, 0xc1, 0x97, 0x30, 0x71, 0x58, 0x27, 0x1b, 0x85, 0xa9, 0x3e, 0x68,
   0xb6, 0x7c, 0xdc, 0xc4, 0xd2, 0x55, 0x67, 0x85, 0x5c, 0xf0, 0x1a, 0x7a, 0x16, 0x4d, 0x9c, 0xcc,
   0x52, 0xec, 0xdc, 0xc8, 0x43, 0x92, 0x9d, 0x02, 0xd8, 0x1f, 0x8a, 0x2c, 0x56, 0xae, 0x08, 0x9a,
   0xc3, 0x19, 0x7d, 0xa0, 0x8a, 0x93, 0x7f, 0x22, 0x83, 0xcf, 0xc0, 0xaf, 0xe5, 0xd8, 0xeb, 0xa5,
   0x11, 0xda, 0xb8, 0x00, 0x2d, 0x83, 0x07, 0xa9, 0x4c, 0xba, 0x10, 0x91, 0x0c, 0xde, 0x40, 0xff,
   0x22, 0x4f, 0x77, 0x71, 0x9e, 0x3d, 0x28, 0xa1, 0x4f, 0xa0, 0x57, 0xe4, 0x49, 0x66, 0x4a, 0x57,
   0x19, 0xef, 0xef, 0x63, 0xba, 0x40, 0x39, 0x77, 0xea, 0xe0, 0x3f, 0x5e, 0x0d, 0x98, 0x28, 0xd7,
   0x67, 0x3a, 0x2e, 0xef, 0xf8, 0x3f, 0x86, 0x89, 0x2b, 0xd0, 0xaa, 0x10, 0xed, 0x49, 0xa3, 0xa8,
   0xfe, 0xdd, 0x5c, 0x52, 0x0f, 0x57, 0x65, 0x5c, 0x37, 0xb8, 0xab, 0x62, 0x2c, 0xbe, 0xc2, 0x46,
   0x8f, 0x5a, 0xdb, 0xe1, 0xbe, 0x93, 0xcc, 0x25, 0xfb, 0x2e, 0xbd, 0x96, 0xa1, 0x1b, 0xd9, 0x88,
   0x82, 0x44, 0x97, 0x01, 0x8c, 0x51, 0x2c, 0x74, 0x1c, 0x8a, 0x34, 0x11, 0x65, 0x55, 0x94, 0xa5,
   0xc4, 0x40, 0xcf, 0x50, 0x84, 0x33, 0x27, 0x2f, 0x94, 0x16, 0x26, 0xd7, 0x54, 0x94, 0x3e, 0xaf,
   0x79, 0xf6, 0x14, 0xc6, 0x15, 0x1d, 0xd2, 0xd3, 0x61, 0x07, 0xf8, 0xa8, 0x12, 0x5e, 0xe1, 0x13,
   0xd2, 0x38, 0xe4, 0xad, 0x48, 0xb7, 0xca, 0xcd, 0x74, 0x77, 0xc8, 0x1b, 0x14, 0xdd, 0x5b, 0xa5,
   0xc7, 0x30, 0xc1, 0x6a, 0x09, 0xaf, 0x13, 0xb3, 0x0a, 0x33, 0x75, 0x63, 0xdc, 0x88, 0x1f, 0xa1,
   0xf4, 0x77, 0x89, 0x59, 0xbd, 0x56, 0x37, 0x06, 0x7b, 0xe6, 0x56, 0xb5, 0xf6, 0x63, 0x57, 0xa9,
   0x7f, 0xf1, 0xa0, 0x7d, 0x29, 0xef, 0xce, 0x83, 0x0f, 0x61, 0x80, 0x01, 0x51, 0xc0, 0x16, 0xe8,
   0x7e, 0x29, 0xd7, 0x14, 0xab, 0x53, 0x35, 0x5e, 0x52, 0x54, 0xbd, 0xc6, 0x0b, 0x3f, 0x86, 0x8e,
   0xd0, 0x71, 0x79, 0x77, 0x10, 0x5c, 0x52, 0x1e, 0x9c, 0xb4, 0x98, 0x48, 0x12, 0xe5, 0x99, 0x83,
   0x99, 0x68, 0xac, 0xb5, 0xad, 0x4e, 0x1d, 0xb6, 0x48, 0x62, 0x37, 0xbb, 0x71, 0x8c, 0x45, 0xeb,
   0x60, 0x05, 0x2b, 0xc2, 0xca, 0x6d, 0xb4, 0x3b, 0x19, 0x58, 0x58, 0x5d, 0xbb, 0x93, 0xc1, 0xc1,
   0x40, 0xf7, 0x6f, 0x0d, 0xf4, 0x19, 0xf4, 0x6d, 0xf7, 0x4b, 0x02, 0xd4, 0xe7, 0x15, 0x7b, 0x30,
   0x61, 0x2c, 0x9a, 0xf5, 0x68, 0xfe, 0x53, 0x0b, 0x7a, 0x36, 0x15, 0x6c, 0x19, 0x5b, 0x0e, 0x16,
   0x1d, 0xcb, 0xdc, 0xb7, 0x61, 0xd4, 0x2b, 0x83, 0x5b, 0x0f, 0xaa, 0x95, 0x61, 0xb3, 0x2d, 0xed,
   0x4b, 0x32, 0xe0, 0x44, 0xa3, 0x47, 0xdb, 0xc0, 0x16, 0x04, 0xcb, 0xd4, 0xb7, 0xde, 0xdf, 0xdf,
   0x7a, 0xf0, 0x14, 0xba, 0xd4, 0x3f, 0x6c, 0x04, 0xad, 0x1b, 0x37, 0x08, 0x5a, 0x37, 0xc8, 0xed,
   0xdc, 0xce, 0xd3, 0xda, 0x05, 0x5f, 0x43, 0x87, 0xab, 0x88, 0x96, 0xa7, 0x54, 0x2d, 0x8d, 0x33,
   0x23, 0x1a, 0xd1, 0x36, 0x79, 0xe1, 0x6c, 0x91, 0xa4, 0xc3, 0x69, 0xf3, 0x72, 0x2b, 0x21, 0x31,
   0x38, 0x30, 0x17, 0xb9, 0x31, 0xf9, 0x86, 0x82, 0xef, 0x72, 0xc7, 0x05, 0x31, 0xf8, 0x2f, 0x45,
   0xa4, 0xce, 0xb2, 0x38, 0xa5, 0x4d, 0x71, 0x27, 0xae, 0xab, 0x79, 0xb4, 0x13, 0xd7, 0xe8, 0xac,
   0x48, 0x4c, 0xb4, 0x72, 0x07, 0x58, 0x86, 0x16, 0x98, 0x3c, 0x4d, 0xab, 0xd5, 0x09, 0x69, 0xf6,
   0x43, 0x80, 0x28, 0xcf, 0x96, 0x89, 0x54, 0x59, 0x64, 0x11, 0xf2, 0x78, 0x43, 0x12, 0xdc, 0x00,
   0x5c, 0xad, 0x96, 0x86, 0xab, 0x72, 0x9b, 0x52, 0x38, 0xb1, 0xca, 0xa4, 0xd2, 0xee, 0x30, 0xc7,
   0x61, 0x04, 0x22, 0x56, 0x55, 0x3a, 0xc2, 0xa2, 0xa6, 0x45, 0x54, 0xaf, 0x69, 0x48, 0x53, 0x32,
   0x4a, 0x6c, 0xcd, 0xae, 0x4e, 0x86, 0x38, 0x1a, 0x7e, 0x9b, 0xc4, 0x3d, 0x47, 0x5d, 0x6e, 0x99,
   0xe0, 0x6f, 0x1e, 0xf4, 0x31, 0xc7, 0x8b, 0xbc, 0x64, 0x3f, 0x81, 0x9e, 0x8e, 0x90, 0xb9, 0xfb,
   0x08, 0x23, 0xc4, 0xdc, 0x69, 0xf1, 0x31, 0x2c, 0xcc, 0x2b, 0xb5, 0x34, 0xbf, 0xd9, 0x29, 0xb7,
   0x23, 0xdf, 0x19, 0x79, 0x7b, 0x0b, 0xf6, 0x0b, 0x80, 0xc2, 0x70, 0x04, 0x1a, 0xed, 0xdb, 0xf7,
   0xdb, 0x37, 0x4c, 0xd8, 0x4f, 0xa1, 0x5f, 0x98, 0xcf, 0xf3, 0xad, 0x59, 0x51, 0x0a, 0xf7, 0x58,
   0x57, 0x7a, 0x1a, 0xbd, 0xe6, 0x75, 0x5e, 0xda, 0xac, 0xee, 0x1d, 0xbd, 0xa4, 0x66, 0x3f, 0x83,
   0xde, 0x92, 0xee, 0x91, 0xca, 0xee, 0xe0, 0xdd, 0xa8, 0xaf, 0x98, 0x3b, 0x13, 0x6c, 0x9a, 0x3f,
   0x6c, 0x45, 0x9a, 0x98, 0x9d, 0xab, 0xc7, 0x8a, 0xc5, 0x8b, 0x5c, 0x8a, 0x28, 0x11, 0xe9, 0x39,
   0x2e, 0xea, 0x03, 0x5a, 0xd4, 0x1b, 0x92, 0xe0, 0x1f, 0x1e, 0x0c, 0xd0, 0x1f, 0xad, 0x34, 0xdf,
   0xe2, 0xf9, 0xff, 0xe2, 0x89, 0xc5, 0xbc, 0x44, 0x38, 0xcf, 0x69, 0xb0, 0xb5, 0xb9, 0xe3, 0x82,
   0xaf, 0xa0, 0xff, 0xc5, 0xe2, 0x1b, 0x42, 0xf9, 0x18, 0xba, 0x3a, 0xfa, 0x62, 0xf1, 0xcd, 0x3b,
   0x40, 0xb6, 0x4a, 0x1a, 0x05, 0xbb, 0xfd, 0x28, 0xd8, 0xd9, 0x8f, 0x08, 0x9d, 0x2f, 0x08, 0x40,
   0x8f, 0x13, 0x1d, 0xbc, 0x81, 0xd1, 0x85, 0xd0, 0x62, 0x53, 0x75, 0xc4, 0x53, 0x68, 0x17, 0x79,
   0xe9, 0x3c, 0x3f, 0x3a, 0x4c, 0xf1, 0x22, 0x2f, 0x39, 0x6a, 0xd9, 0x13, 0x68, 0x27, 0x9b, 0xf8,
   0xee, 0xc5, 0xd1, 0x27, 0x20, 0x47, 0x5d, 0xf0, 0x2b, 0x98, 0xd6, 0x7e, 0x5f, 0xe4, 0x1b, 0xfc,
   0x52, 0xc3, 0x7e, 0x5c, 0x2a, 0x61, 0x7e, 0x49, 0xde, 0x47, 0xdc, 0x32, 0x95, 0xf4, 0x94, 0xdc,
   0x39, 0xe9, 0x69, 0x20, 0xe1, 0xd1, 0x3e, 0x2e, 0x8d, 0x4f, 0xaa, 0xd9, 0xb1, 0x4f, 0xa1, 0xa7,
   0x69, 0x60, 0xb8, 0xf8, 0x1e, 0x37, 0x56, 0xa1, 0x7a, 0x98, 0x70, 0x67, 0xf3, 0x90, 0x28, 0xbf,
   0x76, 0xd9, 0xff, 0x3e, 0x4f, 0x73, 0xc4, 0xec, 0x13, 0xfc, 0x7e, 0x5e, 0x52, 0xfe, 0xed, 0xc3,
   0xfc, 0x1d, 0xf6, 0xdc, 0xea, 0x1f, 0xe2, 0xfb, 0xcf, 0x2d, 0x78, 0xff, 0x7c, 0xf1, 0x62, 0x85,
   0xc3, 0xbe, 0xfa, 0xf6, 0xfe, 0x14, 0xbf, 0x84, 0x70, 0x4d, 0xc5, 0xf8, 0x27, 0xa7, 0x1f, 0x34,
   0x77, 0xfe, 0x45, 0xaa, 0xac, 0xb1, 0xe4, 0xd6, 0xc8, 0x3d, 0xdd, 0x5e, 0xfd, 0x74, 0x3f, 0x83,
   0x9e, 0x88, 0x4c, 0x92, 0x67, 0x74, 0x83, 0x93, 0x53, 0xd6, 0xd8, 0xc7, 0x17, 0x67, 0xa4, 0xe1,
   0xce, 0x82, 0x9e, 0xe2, 0x6c, 0x99, 0x57, 0x6f, 0x13, 0xd2, 0xc1, 0xbf, 0x5a, 0x30, 0xb6, 0xcb,
   0xd8, 0xbb, 0x76, 0xbd, 0x83, 0x2d, 0xcb, 0xbb, 0xb5, 0x65, 0xdd, 0xf7, 0x04, 0xce, 0xa0, 0xef,
   0xf6, 0x2c, 0x77, 0x52, 0xc5, 0xe2, 0xc6, 0x6f, 0x74, 0x12, 0xc7, 0x4a, 0x87, 0x69, 0x92, 0x55,
   0x9f, 0x04, 0x43, 0x27, 0x7b, 0x95, 0x64, 0x8a, 0xfd, 0x18, 0x26, 0x32, 0xd1, 0x8a, 0x02, 0xb6,
   0x46, 0xf6, 0x81, 0x1c, 0xd7, 0x52, 0x32, 0xab, 0x9e, 0xd9, 0x7e, 0xe3, 0x99, 0x7d, 0x0a, 0x63,
   0xa9, 0x96, 0xf8, 0x92, 0x84, 0xa5, 0x11, 0xc6, 0x2e, 0x09, 0x5d, 0x3e, 0x72, 0xc2, 0x4b, 0x94,
   0x05, 0xff, 0xf6, 0xaa, 0x7c, 0xdd, 0xf2, 0xf9, 0xed, 0xee, 0xf9, 0xa0, 0xdd, 0x33, 0x80, 0xf1,
   0x7e, 0xf7, 0x2c, 0x74, 0xf5, 0xef, 0xc2, 0xb0, 0x5a, 0x3d, 0x2f, 0xb4, 0xfa, 0x1f, 0x9b, 0xe7,
   0xb3, 0x3f, 0xc2, 0xa8, 0x59, 0xcd, 0x6c, 0x04, 0x83, 0xab, 0xd0, 0xde, 0xc3, 0xf4, 0x3d, 0x36,
   0x85, 0x51, 0xc5, 0x21, 0xbc, 0xd3, 0x16, 0x7b, 0x0c, 0xd3, 0xa6, 0x04, 0x3f, 0x12, 0xa6, 0x1e,
   0x03, 0xe8, 0x5d, 0x85, 0x64, 0xd1, 0x66, 0x63, 0xf0, 0x2d, 0x7d, 0x29, 0xd7, 0xd3, 0x0e, 0x7b,
   0x04, 0xe3, 0x9a, 0xc5, 0x4f, 0xa8, 0x69, 0x97, 0xf9, 0xd0, 0xbd, 0x0a, 0x51, 0xdb, 0x7b, 0xf6,
   0x1c, 0x06, 0x55, 0x37, 0xa0, 0x93, 0x79, 0x56, 0x2a, 0x6d, 0xa6, 0xef, 0x21, 0xfd, 0x15, 0xad,
   0x90, 0xd3, 0x16, 0xd2, 0xe7, 0x2a, 0x55, 0x46, 0x4d, 0xbd, 0x45, 0x8f, 0x9a, 0xe8, 0xb3, 0xff,
   0x06, 0x00, 0x00, 0xff, 0xff, 0x9a, 0xfb, 0x97, 0xdf, 0x93, 0x13, 0x00, 0x00,
   // 3349 bytes of a gzipped FileDescriptorProto
   0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x59, 0xcd, 0x8e, 0x1c, 0x47,
   0x72, 0x66, 0xff, 0x77, 0x45, 0xf7, 0xf4, 0x14, 0x8b, 0x7f, 0xc5, 0x19, 0x4a, 0x1a, 0x15, 0x29,
   0x9b, 0x1a, 0x49, 0xb4, 0x4c, 0xe9, 0x20, 0x18, 0xb0, 0x8c, 0xe1, 0x0c, 0x69, 0x37, 0x40, 0xd2,
   0xe3, 0x9a, 0x26, 0x75, 0x73, 0xa1, 0xa6, 0x2a, 0xa7, 0xbb, 0xd0, 0x35, 0x55, 0xa5, 0xcc, 0xac,
   0x21, 0x07, 0xf0, 0xc9, 0x86, 0x61, 0x9f, 0x64, 0x18, 0xf0, 0x33, 0x18, 0xf0, 0xd1, 0xb7, 0xbd,
   0xec, 0x6a, 0x9f, 0x60, 0x2f, 0xfb, 0x00, 0x7b, 0x5a, 0x60, 0x6f, 0xfb, 0x0a, 0x8b, 0x88, 0xcc,
   0xac, 0x9f, 0x99, 0xa1, 0xc4, 0x3d, 0x75, 0xc6, 0x97, 0x3f, 0x15, 0x19, 0xf9, 0x45, 0x64, 0x44,
   0x36, 0xcc, 0x0a, 0x9e, 0xcb, 0xfc, 0x54, 0x2c, 0x1f, 0x51, 0xc3, 0x19, 0x1b, 0x79, 0x0b, 0x8e,
   0x43, 0xc1, 0x14, 0xea, 0x3d, 0x83, 0xfe, 0x1e, 0x67, 0xa1, 0x33, 0x83, 0x6e, 0x12, 0xbb, 0x9d,
   0x9d, 0xce, 0xc3, 0x81, 0xdf, 0x4d, 0x62, 0x67, 0x0b, 0xc6, 0x45, 0xc8, 0x59, 0x26, 0x93, 0xd8,
   0xed, 0x12, 0x5a, 0xc9, 0x8e, 0x03, 0xfd, 0x2c, 0x3c, 0x65, 0x6e, 0x6f, 0xa7, 0xf3, 0xd0, 0xf2,
   0xa9, 0xed, 0xfd, 0x30, 0x84, 0xe1, 0x7e, 0x78, 0xca, 0x78, 0x73, 0x29, 0x8b, 0x96, 0x32, 0xc3,
   0xbb, 0xf5, 0x70, 0xe7, 0x26, 0x0c, 0xc2, 0x34, 0x09, 0x85, 0x5e, 0x43, 0x09, 0xce, 0xc7, 0x30,
   0x15, 0x59, 0x58, 0x88, 0x55, 0x2e, 0x83, 0x92, 0xa7, 0x6e, 0x9f, 0x3a, 0x27, 0x06, 0x7b, 0xc5,
   0x53, 0x5c, 0x4c, 0x9e, 0x17, 0xcc, 0x1d, 0x90, 0x4e, 0xd4, 0x46, 0x2c, 0x8c, 0x63, 0xee, 0x0e,
   0xd5, 0x07, 0xb0, 0xed, 0xdc, 0x03, 0x2b, 0xcd, 0xb3, 0x65, 0x22, 0xcb, 0x98, 0xb9, 0xa3, 0x9d,
   0xce, 0xc3, 0xae, 0x5f, 0x03, 0xb8, 0xbb, 0x34, 0x94, 0xaa, 0x73, 0x4c, 0x9d, 0x95, 0x8c, 0xaa,
   0x9d, 0xa4, 0x79, 0xce, 0x5d, 0x8b, 0x3e, 0xa1, 0x04, 0xfc, 0x06, 0x97, 0xa2, 0x70, 0x41, 0x7d,
   0x03, 0xdb, 0xb4, 0xd1, 0xc2, 0x9d, 0xe8, 0x8d, 0x16, 0x38, 0xa6, 0xc8, 0xb9, 0x74, 0xa7, 0x4a,
   0x37, 0x6c, 0xe3, 0x97, 0x4a, 0xc1, 0x38, 0x19, 0x60, 0x83, 0x46, 0x56, 0xb2, 0xb2, 0xb1, 0x10,
   0x6f, 0x72, 0x1e, 0xbb, 0x33, 0xd5, 0x67, 0x64, 0xd4, 0xe2, 0x98, 0x87, 0x59, 0xec, 0x6e, 0x2a,
   0x03, 0x91, 0x80, 0x33, 0x38, 0x13, 0x8c, 0x9f, 0xb1, 0xd8, 0xb5, 0xd5, 0x0c, 0x23, 0x3b, 0x1f,
   0x00, 0x24, 0x22, 0xe0, 0x65, 0x96, 0x25, 0xd9, 0xd2, 0xbd, 0xbe, 0xd3, 0x79, 0x38, 0xf6, 0xad,
   0x44, 0xf8, 0x0a, 0xc0, 0x6e, 0x5e, 0x66, 0x01, 0xcb, 0xc2, 0xe3, 0x94, 0xb9, 0x8e, 0xea, 0xe6,
   0x65, 0xf6, 0x94, 0x00, 0xe7, 0x2e, 0x8c, 0xb1, 0x9b, 0x6c, 0x7b, 0x83, 0xf4, 0x1f, 0xf1, 0x32,
   0x5b, 0xa0, 0x79, 0x3d, 0xd8, 0xc0, 0x2e, 0xfa, 0x0c, 0x0f, 0x92, 0xd8, 0xbd, 0xa9, 0x8e, 0x85,
   0x97, 0xd9, 0x11, 0x61, 0xf3, 0xd8, 0xf9, 0x14, 0x6c, 0xce, 0x44, 0x9e, 0x96, 0x32, 0xc9, 0xb3,
   0xe0, 0x4d, 0x12, 0xcb, 0x95, 0x7b, 0x8b, 0x96, 0xd9, 0xac, 0xf1, 0xef, 0x10, 0x76, 0x3e, 0x83,
   0xeb, 0x8d, 0xa1, 0x2b, 0x96, 0x2c, 0x57, 0xd2, 0xbd, 0x4d, 0x63, 0x1b, 0x6b, 0xfc, 0x03, 0xe1,
   0x8e, 0x0d, 0xbd, 0x93, 0x42, 0xb8, 0x77, 0xa8, 0x1b, 0x9b, 0xce, 0x2e, 0x8c, 0x04, 0xcb, 0x44,
   0xce, 0x85, 0xeb, 0xee, 0xf4, 0x1e, 0x4e, 0x1e, 0xdb, 0x8f, 0x2a, 0xa2, 0x1f, 0x51, 0x87, 0x6f,
   0x06, 0x38, 0x3b, 0x30, 0x39, 0xcb, 0x93, 0x88, 0xa9, 0x3d, 0xba, 0x77, 0x69, 0xd3, 0x4d, 0xc8,
   0x71, 0x61, 0x44, 0xe2, 0x3c, 0x76, 0xb7, 0x68, 0x57, 0x46, 0x74, 0xfe, 0x02, 0x66, 0x51, 0x9e,
   0xf3, 0x78, 0xc1, 0xc3, 0x4c, 0x9c, 0xe4, 0xfc, 0xd4, 0xdd, 0xa6, 0x01, 0x17, 0x50, 0xe7, 0x36,
   0x0c, 0x85, 0x0c, 0x65, 0x29, 0xdc, 0x7b, 0xa4, 0xa4, 0x96, 0xbc, 0x5f, 0x75, 0x60, 0xa8, 0xf4,
   0xb9, 0xca, 0x21, 0xc8, 0xce, 0xda, 0x21, 0x88, 0xc3, 0x8a, 0x4b, 0xbd, 0x4b, 0x5c, 0xea, 0xbf,
   0x83, 0x4b, 0x83, 0x9f, 0xe0, 0xd2, 0xf0, 0x02, 0x97, 0xee, 0x81, 0x25, 0x57, 0x9c, 0x89, 0x55,
   0x9e, 0xc6, 0xe4, 0x0b, 0x03, 0xbf, 0x06, 0x70, 0x03, 0x9a, 0x14, 0x63, 0xb2, 0x8f, 0x96, 0xbc,
   0x17, 0x00, 0xca, 0xa1, 0x9f, 0x27, 0xd9, 0x1a, 0xe9, 0x13, 0x91, 0x14, 0x24, 0xb1, 0xd0, 0x7b,
   0xb1, 0x14, 0x32, 0x8f, 0xd1, 0xd2, 0xd3, 0x34, 0xc9, 0xd6, 0x81, 0x0c, 0xc5, 0x3a, 0xd0, 0x21,
   0xc3, 0xf2, 0x01, 0xb1, 0x45, 0x28, 0xd6, 0xf3, 0xd8, 0xfb, 0x0d, 0xda, 0x23, 0x5e, 0xfb, 0x65,
   0xe6, 0xdc, 0x82, 0x61, 0x52, 0x44, 0x41, 0x65, 0x93, 0x41, 0x52, 0x44, 0xf3, 0x18, 0x29, 0x28,
   0xe2, 0x75, 0xd0, 0x30, 0xcd, 0x48, 0xc4, 0x6b, 0xa2, 0xe0, 0xe7, 0x70, 0x3d, 0x11, 0x0b, 0x9e,
   0x2c, 0x97, 0x8c, 0x3f, 0x39, 0x3f, 0xe4, 0xec, 0x28, 0x5e, 0x93, 0xb1, 0x06, 0xfe, 0xe5, 0x0e,
   0xe7, 0x43, 0x80, 0x28, 0xcf, 0x4e, 0x92, 0x98, 0x65, 0x11, 0xd3, 0x16, 0x6c, 0x20, 0xe4, 0x5b,
   0x3e, 0x4b, 0x62, 0x32, 0xe2, 0xd8, 0x57, 0x82, 0xf3, 0x08, 0x1c, 0xa9, 0x16, 0x7a, 0xc9, 0xde,
   0xca, 0x23, 0xf5, 0x65, 0xb2, 0xe5, 0xc0, 0xbf, 0xa2, 0xc7, 0xfb, 0x27, 0x98, 0x29, 0xfb, 0x2c,
   0x92, 0x53, 0xc6, 0xcb, 0x94, 0xbd, 0x57, 0xe0, 0xdb, 0x06, 0x4b, 0x26, 0xa7, 0x2c, 0xc0, 0x09,
   0xfa, 0xb8, 0xc7, 0x08, 0xf8, 0x65, 0xca, 0xbc, 0x97, 0x30, 0x3c, 0x08, 0xcf, 0xf7, 0x65, 0x8a,
   0xbc, 0x8f, 0xc3, 0x73, 0x1d, 0x8f, 0xb1, 0xe9, 0x3c, 0x06, 0x50, 0x13, 0xc3, 0x6c, 0x89, 0x4b,
   0x22, 0xf5, 0x6f, 0xd4, 0xd4, 0x47, 0x25, 0x7c, 0xec, 0xf2, 0x69, 0x7d, 0x6a, 0x7a, 0x5f, 0x81,
   0x55, 0xe1, 0xb8, 0x6b, 0x21, 0x43, 0x2e, 0x8d, 0xd1, 0x49, 0xc0, 0x0f, 0xb1, 0xcc, 0x9c, 0x17,
   0x36, 0xbd, 0xd7, 0x30, 0x3a, 0xcc, 0xd3, 0xf3, 0x65, 0x9e, 0xbd, 0xd7, 0x86, 0xfe, 0x12, 0x86,
   0x45, 0x9e, 0x64, 0x12, 0x43, 0x39, 0xea, 0xb4, 0x59, 0xeb, 0x74, 0x88, 0xb8, 0xaf, 0xbb, 0xbd,
   0xef, 0x0d, 0x9f, 0xe6, 0xd9, 0x49, 0xee, 0x3c, 0xa0, 0xa0, 0xa2, 0xe2, 0xc7, 0x4b, 0x5c, 0x53,
   0x7d, 0xa5, 0x0d, 0x6a, 0x05, 0xba, 0x97, 0x14, 0x68, 0xdc, 0x3c, 0xad, 0xc8, 0xd5, 0x6f, 0x45,
   0x2e, 0xef, 0x7b, 0x73, 0x44, 0x7b, 0x59, 0x8c, 0x06, 0x16, 0xce, 0xd7, 0x86, 0xc6, 0xa8, 0x04,
   0x7d, 0x73, 0xf2, 0xf8, 0x66, 0xad, 0x71, 0xad, 0xa0, 0xdf, 0x18, 0xe7, 0x7c, 0x0a, 0x03, 0x3c,
   0x2f, 0x71, 0xd9, 0xec, 0x7f, 0xcf, 0xf3, 0xb2, 0xc0, 0xa5, 0x7d, 0x35, 0xc2, 0xfb, 0x8f, 0x1e,
   0x58, 0x15, 0x88, 0x9e, 0x57, 0xf9, 0x88, 0xdb, 0xd9, 0xe9, 0xb5, 0x9d, 0xe6, 0xe2, 0xee, 0x3e,
   0x00, 0x58, 0xe2, 0xd4, 0x40, 0xb2, 0xb7, 0x52, 0xef, 0xd1, 0x22, 0x64, 0xc1, 0xde, 0x4a, 0xe7,
   0x23, 0x98, 0x84, 0x69, 0xc8, 0x4f, 0x83, 0x94, 0x9d, 0xb1, 0xd4, 0xf0, 0x9a, 0xa0, 0xe7, 0x88,
   0x38, 0x0f, 0x8c, 0x9a, 0x03, 0x52, 0x73, 0x56, 0xab, 0xd9, 0xd0, 0x90, 0xdc, 0x8c, 0x49, 0x65,
   0xaf, 0xa1, 0x76, 0x33, 0x26, 0xc9, 0xcd, 0x3e, 0x82, 0x89, 0x64, 0xa7, 0x45, 0x1a, 0x4a, 0x86,
   0xde, 0x39, 0x52, 0x4e, 0x6c, 0xa0, 0x79, 0xec, 0xdc, 0x87, 0x8d, 0x6a, 0x00, 0x31, 0x78, 0x4c,
   0x43, 0xa6, 0x06, 0xa4, 0x4d, 0xef, 0xc0, 0xb4, 0xa2, 0x38, 0x2e, 0x63, 0xe9, 0x65, 0x34, 0xcb,
   0xe7, 0xb4, 0x51, 0x11, 0xb1, 0x8c, 0x05, 0x74, 0x98, 0xea, 0x4a, 0xb5, 0x08, 0xa1, 0x53, 0x77,
   0xa0, 0x1f, 0x33, 0x11, 0xe9, 0x9b, 0x95, 0xda, 0x8d, 0x28, 0x35, 0x6d, 0x46, 0xa9, 0x66, 0x00,
   0xdf, 0x68, 0x05, 0x70, 0xef, 0x5f, 0x60, 0xa3, 0x3a, 0x88, 0xa3, 0x78, 0x2d, 0x2e, 0xb1, 0xb9,
   0xad, 0x45, 0xf7, 0xa2, 0x16, 0x0f, 0xa0, 0x2f, 0xe2, 0xb5, 0xa1, 0x75, 0xf3, 0x96, 0xa1, 0x28,
   0xe6, 0x53, 0x2f, 0x85, 0xff, 0x78, 0x8d, 0xc7, 0xdb, 0xa7, 0xe3, 0xd5, 0x92, 0xf7, 0xdf, 0x5d,
   0xe8, 0xfb, 0x57, 0x05, 0x85, 0x6d, 0x43, 0x89, 0x3a, 0x4c, 0x8e, 0x0d, 0x25, 0x50, 0xa5, 0x42,
   0xf9, 0x1e, 0xf6, 0x6a, 0x06, 0x68, 0x64, 0x1e, 0x63, 0xe0, 0xc4, 0x08, 0x99, 0xc4, 0x3a, 0x33,
   0x1a, 0xd0, 0xc7, 0x9c, 0x2f, 0x00, 0x03, 0x65, 0x20, 0x98, 0xd4, 0x27, 0x7f, 0xb3, 0xa5, 0xec,
   0x11, 0x93, 0x4f, 0x42, 0xc1, 0x48, 0xb5, 0x23, 0x26, 0xd5, 0x7d, 0x9e, 0xb2, 0xe0, 0x4d, 0x22,
   0x57, 0x41, 0xc1, 0x0d, 0x0b, 0x26, 0x08, 0x7e, 0x97, 0xc8, 0xd5, 0x21, 0xc7, 0xcd, 0xcf, 0x12,
   0x11, 0x88, 0xf0, 0x8c, 0x05, 0x61, 0x76, 0xbe, 0xca, 0xdf, 0x10, 0x19, 0xc6, 0xfe, 0x34, 0x11,
   0x47, 0xe1, 0x19, 0xdb, 0x23, 0x0c, 0xa9, 0xa4, 0x08, 0x9b, 0xc4, 0x9a, 0x09, 0x23, 0x92, 0xe7,
   0xe4, 0xa9, 0x02, 0xef, 0x2f, 0x95, 0x44, 0x51, 0xdb, 0xfb, 0xf7, 0x0e, 0x4c, 0xd1, 0x26, 0x0b,
   0xcd, 0x96, 0xf7, 0x8a, 0x2f, 0x86, 0x0c, 0xbd, 0x06, 0x19, 0x6c, 0xe8, 0xc9, 0xb7, 0x52, 0x1b,
   0x01, 0x9b, 0xce, 0x67, 0x6d, 0xea, 0xdf, 0x6a, 0x04, 0x46, 0xfd, 0xb1, 0x3d, 0xbe, 0x34, 0x3e,
   0xfa, 0x2d, 0xd8, 0x4d, 0x35, 0x9e, 0x27, 0x42, 0x3a, 0xbb, 0xd0, 0x4f, 0x13, 0x21, 0xc9, 0x49,
   0x27, 0x8f, 0x6f, 0xb7, 0x5d, 0xc7, 0x8c, 0xf4, 0x69, 0x8c, 0xf7, 0xeb, 0x0e, 0x4c, 0x1a, 0xcb,
   0x36, 0x8e, 0xa5, 0xd3, 0x3c, 0x16, 0x0f, 0x36, 0x10, 0x0e, 0xf9, 0x32, 0x50, 0xb9, 0x6e, 0x57,
   0xa7, 0xb3, 0xf1, 0x7a, 0x8f, 0x2f, 0xf7, 0x28, 0xe3, 0xdd, 0x82, 0x71, 0x5e, 0x30, 0x1e, 0xca,
   0x9c, 0x9b, 0xdb, 0xc0, 0xc8, 0xcd, 0xf9, 0x67, 0x61, 0x5a, 0xb2, 0x2a, 0x1d, 0xa6, 0xf9, 0xaf,
   0x11, 0xaa, 0xcc, 0xac, 0xd2, 0x01, 0x6a, 0xbf, 0xcf, 0xf9, 0x7a, 0xff, 0xd7, 0x01, 0xa8, 0xa9,
   0x71, 0x59, 0xd5, 0xce, 0x4f, 0xab, 0xda, 0xbd, 0xa0, 0xea, 0x7d, 0xd8, 0x30, 0x6d, 0x15, 0x58,
   0xd4, 0x5e, 0xa6, 0x06, 0x34, 0x79, 0xe4, 0x9f, 0xb5, 0x1f, 0x43, 0x9b, 0x7f, 0xed, 0x43, 0x0f,
   0xaf, 0xf5, 0x8b, 0x6c, 0xa9, 0xd3, 0x88, 0xee, 0xbb, 0xd2, 0x88, 0x5e, 0x3b, 0x8d, 0xd0, 0x5d,
   0xc4, 0xb1, 0x7e, 0xd5, 0x65, 0xbc, 0x3d, 0xe4, 0x4b, 0xc3, 0x9f, 0xb6, 0xb7, 0x23, 0x75, 0xa8,
   0x17, 0xd5, 0x4b, 0xa2, 0x3c, 0x33, 0x95, 0x06, 0xb6, 0x91, 0x8c, 0x58, 0xab, 0xa8, 0x60, 0x89,
   0x4d, 0x0c, 0xa3, 0x11, 0x67, 0x18, 0x23, 0x31, 0xe6, 0x69, 0xcf, 0x00, 0x05, 0xe1, 0x7d, 0x8c,
   0x03, 0xca, 0x22, 0xae, 0x06, 0xe8, 0x00, 0xa9, 0x20, 0x1a, 0x80, 0x41, 0x42, 0xad, 0x70, 0x7c,
   0xae, 0xe3, 0xe3, 0x58, 0x01, 0x4f, 0xce, 0x1b, 0xa1, 0x70, 0xd2, 0x0a, 0x85, 0x77, 0x61, 0x1c,
   0xb3, 0x34, 0x38, 0x49, 0xc3, 0xa5, 0x2e, 0x41, 0x46, 0x31, 0x4b, 0x9f, 0xa5, 0xe1, 0x12, 0xcf,
   0x0e, 0x75, 0x7d, 0x92, 0xe6, 0xc7, 0xa6, 0x0a, 0x31, 0x32, 0x45, 0x50, 0xc6, 0x45, 0x92, 0x67,
   0xba, 0x08, 0x31, 0x22, 0xf6, 0xb0, 0x6c, 0xc1, 0xc3, 0x68, 0x4d, 0x55, 0xc8, 0xd8, 0x37, 0x22,
   0xaa, 0x10, 0xf2, 0xe5, 0x01, 0x3b, 0xd1, 0x55, 0x88, 0x96, 0x10, 0x47, 0x96, 0x1d, 0xe5, 0x54,
   0x7f, 0x58, 0xbe, 0x96, 0xf0, 0x1e, 0x34, 0xdf, 0x7b, 0x4c, 0xb5, 0x87, 0xe5, 0xd7, 0x80, 0xe3,
   0xc1, 0x34, 0x8c, 0x64, 0x72, 0x16, 0x4a, 0xb6, 0x9f, 0xc7, 0xaa, 0xfe, 0xb0, 0xfc, 0x16, 0xe6,
   0xfd, 0x41, 0xa5, 0x8f, 0xe8, 0x6e, 0x55, 0xed, 0xd8, 0x69, 0xd6, 0x8e, 0xef, 0x88, 0x1d, 0x0d,
   0x1a, 0x54, 0xc5, 0xe2, 0x69, 0x29, 0x54, 0xf0, 0x18, 0xfb, 0xd4, 0x46, 0xac, 0xcc, 0x92, 0xca,
   0x8b, 0xb0, 0x8d, 0x5f, 0x51, 0xa9, 0x96, 0x3a, 0x6b, 0x25, 0x20, 0xd1, 0x63, 0x76, 0x12, 0x96,
   0xa9, 0xd4, 0x1c, 0x56, 0xc7, 0x3e, 0xd5, 0xa0, 0x22, 0xf1, 0xa7, 0x60, 0x9b, 0x41, 0x95, 0xc7,
   0x28, 0x12, 0x6c, 0x6a, 0xfc, 0x1f, 0x8d, 0xe3, 0x5c, 0x15, 0x26, 0xff, 0x53, 0xf9, 0xe6, 0xfe,
   0x2a, 0xcc, 0x30, 0x5c, 0x37, 0xf9, 0xdc, 0xb9, 0xc4, 0xe7, 0x68, 0x15, 0x66, 0x41, 0x56, 0x9e,
   0xea, 0x22, 0x7d, 0x84, 0xf2, 0xcb, 0xf2, 0x14, 0xf3, 0xab, 0x3a, 0xe3, 0x9d, 0x67, 0x91, 0xce,
   0x96, 0xdb, 0x20, 0x66, 0xca, 0xa7, 0x49, 0xf6, 0x22, 0x3f, 0x63, 0x87, 0xb9, 0x30, 0x19, 0x45,
   0x8d, 0x78, 0xff, 0xd5, 0x81, 0xcd, 0x83, 0x63, 0xd4, 0x64, 0xc9, 0x5e, 0x30, 0x21, 0xc2, 0x25,
   0xe6, 0xe2, 0x03, 0x49, 0xec, 0x43, 0x65, 0x66, 0xcd, 0x50, 0xb9, 0x40, 0x58, 0x0d, 0x8e, 0x7d,
   0x35, 0xe8, 0x52, 0x8e, 0xb3, 0x0b, 0x43, 0x3c, 0xd7, 0x3c, 0x23, 0x85, 0x66, 0x8f, 0x9d, 0x7a,
   0xfa, 0xc1, 0xf1, 0x1e, 0xf5, 0xf8, 0x7a, 0x04, 0x79, 0x1b, 0xa6, 0x69, 0x7d, 0xed, 0x6d, 0xd9,
   0x49, 0xee, 0xfd, 0xd0, 0x85, 0x0d, 0x95, 0xa5, 0xbd, 0x2b, 0x49, 0xfd, 0xc9, 0x0b, 0xf6, 0xaa,
   0x04, 0xd2, 0x85, 0x91, 0xbe, 0x62, 0x4d, 0x50, 0xd0, 0xa2, 0xf3, 0x31, 0x4c, 0x75, 0xe2, 0x1f,
   0xa4, 0x49, 0x66, 0x8a, 0xae, 0x89, 0xc6, 0x9e, 0x27, 0x19, 0x73, 0x3e, 0x81, 0x59, 0x9c, 0x70,
   0x46, 0x0a, 0xab, 0x41, 0x8a, 0x2f, 0x1b, 0x15, 0x4a, 0xc3, 0x0c, 0x13, 0x47, 0x0d, 0x26, 0x2a,
   0x2e, 0xe1, 0x51, 0x04, 0x58, 0x33, 0xaa, 0x40, 0x31, 0x20, 0x2e, 0x21, 0x78, 0x84, 0x18, 0xc5,
   0x12, 0xb5, 0x1b, 0xd2, 0x5b, 0x87, 0x0a, 0x05, 0x61, 0xe0, 0xf2, 0x7e, 0xdb, 0x81, 0x5b, 0x2d,
   0x83, 0xf8, 0x2c, 0x0d, 0xc9, 0x7c, 0x17, 0x0d, 0xf3, 0x10, 0x6c, 0x91, 0x97, 0x3c, 0x62, 0xc1,
   0x45, 0xfb, 0xcc, 0x14, 0xbe, 0x6f, 0xac, 0xb4, 0x0b, 0xd7, 0xf5, 0xc8, 0x4b, 0xd9, 0xc8, 0xa6,
   0xea, 0x38, 0xac, 0x72, 0x92, 0x87, 0x60, 0xcb, 0x90, 0x2f, 0x99, 0x6c, 0xac, 0xaa, 0xcc, 0x38,
   0x53, 0x78, 0x73, 0x55, 0x3d, 0xb2, 0xb1, 0xaa, 0x32, 0xe9, 0xa6, 0xea, 0xa8, 0x56, 0xf5, 0x7e,
   0xd9, 0x81, 0x8d, 0xd7, 0x49, 0xcc, 0x72, 0x19, 0x16, 0x8c, 0x72, 0xf0, 0x2d, 0x18, 0x33, 0x71,
   0x10, 0xca, 0x70, 0x6e, 0xf6, 0x54, 0xc9, 0xd8, 0x67, 0x4e, 0xf8, 0xd2, 0x89, 0xdf, 0x86, 0xa1,
   0xa4, 0x0a, 0x54, 0x6f, 0x40, 0x4b, 0xe8, 0xdf, 0xc9, 0xe9, 0x72, 0xae, 0x94, 0xed, 0xf9, 0x4a,
   0xc0, 0x95, 0xce, 0xf0, 0xb3, 0xaf, 0x78, 0x6a, 0x4a, 0x6c, 0x23, 0x37, 0x52, 0xbd, 0x61, 0x33,
   0xd5, 0x6b, 0x9d, 0xad, 0x7e, 0x92, 0xf2, 0xfe, 0x0e, 0x06, 0xaf, 0x31, 0x0f, 0x7d, 0xdf, 0x14,
   0xa7, 0x08, 0xe5, 0xca, 0x90, 0x12, 0xdb, 0xde, 0x97, 0x60, 0xd1, 0x02, 0x94, 0x9c, 0xdc, 0x6f,
   0x25, 0x27, 0x8d, 0x0a, 0x8b, 0x86, 0xe8, 0xac, 0xe4, 0xf7, 0x3d, 0x98, 0xec, 0xe7, 0xa7, 0x45,
   0xc8, 0x31, 0x29, 0xa1, 0xfb, 0x9a, 0x5c, 0xb0, 0x2e, 0x3d, 0x2a, 0xd9, 0xd9, 0x05, 0x3b, 0x52,
   0x43, 0x17, 0xd5, 0xc3, 0x40, 0x97, 0xde, 0xc1, 0x2e, 0xe1, 0xce, 0x0e, 0x4c, 0x4e, 0xc2, 0x88,
   0x3d, 0x63, 0xa1, 0x2c, 0xb9, 0xf2, 0x9c, 0xa9, 0xdf, 0x84, 0xd0, 0x94, 0x68, 0x54, 0x93, 0x02,
   0x2b, 0x81, 0x5e, 0x1d, 0x38, 0x63, 0x2f, 0xf3, 0x58, 0xa7, 0x65, 0x96, 0x5f, 0x03, 0x64, 0xb4,
   0xf0, 0xd8, 0x98, 0x92, 0xda, 0x18, 0x8d, 0xea, 0x6a, 0xc6, 0x54, 0x1f, 0x8d, 0xfa, 0xe6, 0x43,
   0x00, 0xc1, 0x42, 0x1e, 0xad, 0x16, 0xea, 0x5a, 0xc5, 0x99, 0x0d, 0x04, 0xfb, 0x93, 0xac, 0x28,
   0x55, 0x14, 0x36, 0xae, 0x52, 0x23, 0xea, 0x5d, 0x20, 0x4d, 0x95, 0x5b, 0xea, 0x6b, 0xb5, 0x81,
   0xd0, 0x01, 0x13, 0xbb, 0xcd, 0xc5, 0xaa, 0x24, 0x8c, 0xa5, 0x61, 0x16, 0xa6, 0xe7, 0xe6, 0xb5,
   0x8b, 0x6e, 0x57, 0xcb, 0x6f, 0x83, 0x2a, 0xe2, 0x2a, 0xdb, 0x11, 0x99, 0xf5, 0x45, 0xdb, 0x06,
   0xf1, 0xae, 0x4b, 0x84, 0x39, 0xa6, 0x34, 0xa5, 0x2b, 0x97, 0xd2, 0xea, 0x1a, 0x43, 0xcb, 0x09,
   0xbd, 0xaa, 0x70, 0x37, 0x95, 0xe5, 0x2a, 0xc0, 0x3b, 0x86, 0xa9, 0x1e, 0xfb, 0xf4, 0x8c, 0x65,
   0xd2, 0xf9, 0x06, 0x2c, 0x86, 0x8d, 0x85, 0xb9, 0x20, 0x66, 0x8f, 0xb7, 0x1a, 0x15, 0x6d, 0x63,
   0x28, 0x8e, 0xf0, 0xeb, 0xc1, 0x14, 0xf8, 0xc2, 0xf3, 0x34, 0x0f, 0xd5, 0xe1, 0x4f, 0x7d, 0x23,
   0x7a, 0xff, 0x0c, 0x33, 0xbc, 0x81, 0xf4, 0xdc, 0x30, 0x5a, 0x5d, 0xe2, 0xb1, 0x0b, 0x23, 0x62,
   0x53, 0x15, 0x43, 0x8c, 0x88, 0x3b, 0xd4, 0x5b, 0x3e, 0x8a, 0x72, 0x4d, 0x98, 0xae, 0xdf, 0xc2,
   0x3c, 0x1f, 0xec, 0x7a, 0x7d, 0x9f, 0x89, 0x32, 0x95, 0xce, 0xb7, 0x95, 0xfd, 0x14, 0xa0, 0xd9,
   0xee, 0xb6, 0x52, 0xb1, 0x86, 0x4a, 0x7e, 0x7b, 0xb8, 0xf7, 0x63, 0x1f, 0x2c, 0xda, 0xe6, 0x61,
   0x29, 0x56, 0xef, 0xe5, 0x77, 0x1f, 0xe8, 0x27, 0x15, 0xf5, 0x2c, 0xa2, 0xab, 0x2d, 0x44, 0x8e,
   0xe8, 0x69, 0xe4, 0x2e, 0xd0, 0xcb, 0x4c, 0xc0, 0x32, 0x13, 0xd1, 0x46, 0x28, 0x3f, 0xcd, 0xe2,
   0xaa, 0x3c, 0x92, 0x89, 0x38, 0x39, 0x0f, 0xc2, 0x34, 0xd5, 0x4f, 0x49, 0x54, 0x1e, 0x11, 0x88,
   0xe7, 0xb8, 0x0d, 0x16, 0x25, 0xe2, 0x54, 0xce, 0xeb, 0x47, 0x39, 0x4e, 0xe5, 0xc4, 0x5b, 0xd9,
   0xc8, 0xe2, 0x46, 0xad, 0x2c, 0x6e, 0x1b, 0x2c, 0xf5, 0x92, 0x86, 0xc7, 0xa9, 0xb2, 0x86, 0x31,
   0x3d, 0xa3, 0xe9, 0x02, 0x9d, 0x3a, 0x63, 0x76, 0x96, 0x44, 0x15, 0xc5, 0x11, 0x3a, 0x20, 0xc4,
   0xf9, 0x2b, 0x18, 0x27, 0x45, 0x50, 0xe4, 0x5c, 0x0a, 0x17, 0x2e, 0xd6, 0x82, 0x68, 0x98, 0x79,
   0x71, 0x98, 0x73, 0xe9, 0x8f, 0x12, 0xfa, 0x15, 0xce, 0x27, 0xd0, 0x2f, 0x79, 0x2a, 0xdc, 0x09,
   0x0d, 0xbe, 0xde, 0x1e, 0xfc, 0x8a, 0xa7, 0x3e, 0x75, 0x3b, 0x5f, 0x98, 0xfa, 0x6a, 0x4a, 0xe3,
   0xee, 0xd4, 0xe3, 0x2a, 0x93, 0x37, 0xdf, 0x18, 0xf6, 0x01, 0x4e, 0x92, 0x54, 0xfa, 0x4c, 0xbf,
   0x7b, 0xe3, 0x9c, 0xfb, 0x57, 0xcc, 0x79, 0xf4, 0xac, 0x1a, 0xf5, 0x34, 0x93, 0xfc, 0xdc, 0x6f,
   0x4c, 0x73, 0xbe, 0x84, 0x71, 0x51, 0x8a, 0x15, 0xd5, 0xb5, 0xb3, 0x8b, 0x65, 0x1d, 0xce, 0x3e,
   0x62, 0xf2, 0x05, 0xcb, 0x4a, 0x7f, 0x54, 0x28, 0x61, 0xeb, 0x6f, 0x61, 0xf3, 0xc2, 0x82, 0x98,
   0x9d, 0xaf, 0xd9, 0xb9, 0x26, 0x02, 0x36, 0x31, 0x5a, 0xa9, 0xd4, 0x4d, 0x57, 0x0d, 0x24, 0xfc,
   0x4d, 0xf7, 0x9b, 0x8e, 0xf7, 0x3f, 0x1d, 0x98, 0x34, 0xd6, 0x7d, 0x2f, 0x0e, 0xb9, 0x30, 0x8a,
   0x56, 0x2c, 0x5a, 0x33, 0x75, 0xbf, 0x8c, 0x7d, 0x23, 0xd6, 0x69, 0x6a, 0xbf, 0x99, 0xa6, 0xfe,
   0x35, 0xa6, 0x6c, 0x49, 0x1a, 0x73, 0x96, 0x5d, 0xae, 0x55, 0x9b, 0x9b, 0xaa, 0x86, 0x79, 0xbf,
   0xeb, 0xc0, 0x46, 0xcb, 0xca, 0x57, 0xbd, 0x64, 0xc8, 0xbc, 0x48, 0xa2, 0xe6, 0xdb, 0xa9, 0x45,
   0x08, 0xb1, 0x66, 0x1b, 0x94, 0x80, 0xa5, 0x57, 0xf5, 0xe6, 0x88, 0x00, 0x66, 0xd3, 0xcd, 0xb2,
   0xae, 0xff, 0x73, 0x65, 0xdd, 0xe0, 0x8a, 0xb2, 0x8e, 0xfe, 0x58, 0x48, 0x99, 0xce, 0x87, 0x15,
   0xcd, 0x89, 0xf7, 0x2a, 0xe8, 0x7a, 0xb0, 0x41, 0x11, 0x27, 0xa0, 0xb3, 0xac, 0x5e, 0x95, 0x26,
   0xcc, 0xec, 0x68, 0x1e, 0x7b, 0xaf, 0x00, 0x6a, 0x6e, 0xa2, 0xba, 0xe6, 0xbf, 0x86, 0xc2, 0x5c,
   0xf5, 0x3a, 0xfc, 0xd5, 0xef, 0xe2, 0xdd, 0xc6, 0xbb, 0x78, 0xed, 0x4a, 0xbd, 0xd6, 0x0b, 0xf6,
   0x57, 0x30, 0xd2, 0x2c, 0x36, 0x45, 0x5a, 0xa7, 0x2e, 0xd2, 0xea, 0x49, 0xdd, 0xd6, 0xa4, 0x1f,
   0x3b, 0x4a, 0x99, 0x3d, 0x29, 0x31, 0xee, 0xdd, 0x81, 0x91, 0x51, 0x5c, 0x4d, 0x1e, 0x16, 0xa4,
   0xb3, 0xe3, 0x41, 0x2f, 0x0a, 0x55, 0xda, 0xdd, 0xaa, 0x17, 0x55, 0xba, 0xe3, 0x63, 0x67, 0x73,
   0x27, 0x26, 0xfd, 0x30, 0x3b, 0x89, 0xd1, 0x97, 0x75, 0x67, 0xa3, 0x1e, 0x05, 0x51, 0x3f, 0x7e,
   0xde, 0x85, 0x71, 0x9a, 0x47, 0x61, 0x8a, 0x66, 0x50, 0x86, 0x1f, 0x91, 0x3c, 0x2f, 0x70, 0x61,
   0x4a, 0x4b, 0xe8, 0x5f, 0xb2, 0x61, 0x3b, 0x4f, 0xf1, 0xfe, 0xd8, 0x81, 0x1b, 0x4f, 0xc5, 0x21,
   0xe3, 0x22, 0xcf, 0xf6, 0xc3, 0x68, 0xa5, 0x53, 0x72, 0xe7, 0x73, 0x9d, 0xa7, 0xa8, 0x3b, 0xa2,
   0x11, 0x57, 0x9f, 0x8a, 0xc6, 0xb0, 0x58, 0x67, 0xa7, 0x77, 0x75, 0xfa, 0xa0, 0xb2, 0xc4, 0x5e,
   0x15, 0xe1, 0xe7, 0x94, 0x61, 0x17, 0xb4, 0x7a, 0x63, 0x5b, 0x0a, 0x98, 0xd3, 0xc5, 0x70, 0xa2,
   0x53, 0x05, 0x1d, 0x34, 0xb5, 0xd8, 0x48, 0xfd, 0x07, 0x3f, 0x9b, 0xfa, 0xd7, 0xa7, 0xa3, 0x1e,
   0xe0, 0x4d, 0x74, 0xbc, 0x09, 0x83, 0x28, 0xe4, 0x2f, 0x73, 0xcd, 0x22, 0x25, 0x78, 0xff, 0xdf,
   0x81, 0xcd, 0xfd, 0xb4, 0x14, 0x92, 0xf1, 0xbd, 0x2c, 0x56, 0x09, 0xc6, 0x3d, 0xb0, 0x22, 0x05,
   0x55, 0x09, 0x63, 0x0d, 0x60, 0x52, 0xa3, 0x85, 0x97, 0xb5, 0x47, 0x37, 0x21, 0xe7, 0x01, 0x0c,
   0x32, 0x4a, 0x5d, 0x7a, 0x17, 0x1f, 0x53, 0x71, 0x7d, 0x5f, 0x75, 0xe2, 0x57, 0xce, 0x12, 0x2e,
   0x4b, 0x3c, 0x15, 0xbd, 0xdf, 0x1a, 0x68, 0xfd, 0x29, 0x33, 0x68, 0xff, 0x29, 0xe3, 0xfd, 0x5b,
   0x17, 0xfa, 0xb8, 0xd2, 0x55, 0xce, 0xac, 0xf5, 0xa8, 0x13, 0xf4, 0x86, 0xe6, 0xdb, 0x60, 0xe1,
   0xa7, 0x83, 0x46, 0x19, 0x33, 0x46, 0x80, 0x94, 0xbe, 0x03, 0x23, 0xea, 0xac, 0x72, 0xf0, 0x21,
   0x8a, 0xf3, 0xb8, 0xee, 0x30, 0x54, 0x52, 0x1d, 0xc5, 0xc5, 0xb7, 0x8a, 0xe1, 0xa5, 0xb7, 0x8a,
   0x2d, 0x18, 0x27, 0xe2, 0x80, 0xa5, 0x4c, 0x9a, 0x9b, 0xaa, 0x92, 0x71, 0x72, 0xcc, 0x93, 0x13,
   0xd9, 0xa8, 0x5f, 0x2c, 0x1f, 0x08, 0xaa, 0xaa, 0x17, 0x75, 0x55, 0xa9, 0xf0, 0xa1, 0xef, 0x2b,
   0x05, 0xd1, 0x0b, 0xfd, 0xff, 0x76, 0xa0, 0x77, 0x90, 0x44, 0x97, 0x8c, 0x70, 0x65, 0x90, 0xbe,
   0xb2, 0x7a, 0x33, 0xd9, 0x77, 0xbf, 0x51, 0x59, 0xed, 0xe0, 0x67, 0x45, 0xc4, 0x93, 0xa2, 0xa2,
   0x9b, 0xe5, 0x37, 0xa1, 0xaa, 0xee, 0x1e, 0xd6, 0x75, 0x37, 0xd1, 0x9a, 0xfe, 0xe2, 0xae, 0xa3,
   0x94, 0xfe, 0xcf, 0x7b, 0x1e, 0xef, 0xfe, 0xa2, 0x0b, 0xd3, 0x66, 0x7d, 0xeb, 0x4c, 0x61, 0xbc,
   0x08, 0x94, 0xb3, 0xdb, 0xd7, 0x1c, 0x1b, 0xa6, 0x46, 0xc2, 0x08, 0x6d, 0x77, 0x1c, 0x0b, 0x06,
   0x8b, 0xe0, 0x28, 0x5e, 0xdb, 0x5d, 0xe7, 0x06, 0x6c, 0x9a, 0x4e, 0x5d, 0xe1, 0xd8, 0x3d, 0x67,
   0x06, 0xb0, 0x08, 0x16, 0xfa, 0x4d, 0xdc, 0xee, 0xab, 0xf5, 0x54, 0x32, 0x69, 0x0f, 0xd4, 0x7a,
   0x87, 0x79, 0x9a, 0xee, 0x63, 0xbd, 0xbe, 0xb4, 0x87, 0x0e, 0xc0, 0x70, 0x11, 0x3c, 0x4b, 0x52,
   0x66, 0x8f, 0x9c, 0xeb, 0xb0, 0xa1, 0xda, 0x47, 0x4c, 0xca, 0x24, 0x5b, 0xda, 0x63, 0x35, 0xa1,
   0x7e, 0x35, 0xb0, 0x2d, 0x67, 0x13, 0x26, 0x7a, 0x90, 0x0c, 0xa3, 0xb5, 0x0d, 0xce, 0x4d, 0xb0,
   0x17, 0x81, 0xcf, 0x74, 0xad, 0xa7, 0xd6, 0x9d, 0x38, 0xb7, 0xc1, 0x41, 0xe5, 0xd2, 0xa8, 0x54,
   0x65, 0xe3, 0x61, 0xfe, 0x86, 0x71, 0x7b, 0xaa, 0xa6, 0x57, 0xd7, 0x8e, 0xbd, 0xe1, 0x6c, 0x80,
   0xb5, 0x08, 0xb4, 0x97, 0xd9, 0x33, 0x67, 0x1b, 0xee, 0x5c, 0xd8, 0x94, 0x29, 0x3c, 0xed, 0x4d,
   0x67, 0x02, 0xa3, 0x45, 0x40, 0xc5, 0x89, 0x6d, 0xef, 0x3e, 0x82, 0xb1, 0xf1, 0x6f, 0xdc, 0xc5,
   0x3c, 0x13, 0x8c, 0x4b, 0xfb, 0x1a, 0xb6, 0x5f, 0xd1, 0x93, 0x97, 0xdd, 0xc1, 0xb6, 0xe2, 0x94,
   0xdd, 0xdd, 0xdd, 0x03, 0xfb, 0x62, 0xd6, 0x8a, 0xda, 0xf8, 0x6c, 0x9e, 0x25, 0x92, 0x22, 0x95,
   0x7d, 0x0d, 0x01, 0x35, 0x59, 0x01, 0x1d, 0xfc, 0xa4, 0x9e, 0x65, 0x77, 0x77, 0xbf, 0x86, 0x59,
   0x3b, 0xa8, 0x29, 0xed, 0x0f, 0x8e, 0xe9, 0x08, 0xed, 0x6b, 0xea, 0x48, 0xb4, 0xa8, 0x22, 0xa5,
   0xdd, 0x39, 0x1e, 0x92, 0x8b, 0x7f, 0xf5, 0xa7, 0x00, 0x00, 0x00, 0xff, 0xff, 0x55, 0x39, 0xcb,
   0x93, 0x3a, 0x21, 0x00, 0x00,
}