zhangmeng
2020-04-23 b762fb7c67823172e74174e5287424cc8b94e47b
sdk.pb.go
@@ -4,7 +4,6 @@
package protomsg
import (
   encoding_binary "encoding/binary"
   fmt "fmt"
   proto "github.com/gogo/protobuf/proto"
   io "io"
@@ -30,6 +29,7 @@
   Timestamp string `protobuf:"bytes,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
   Id        int64  `protobuf:"varint,5,opt,name=id,proto3" json:"id,omitempty"`
   Cid       string `protobuf:"bytes,6,opt,name=cid,proto3" json:"cid,omitempty"`
   Cname     string `protobuf:"bytes,7,opt,name=cname,proto3" json:"cname,omitempty"`
}
func (m *Image) Reset()         { *m = Image{} }
@@ -107,25 +107,34 @@
   return ""
}
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"`
func (m *Image) GetCname() string {
   if m != nil {
      return m.Cname
   }
   return ""
}
func (m *FaceAngle) Reset()         { *m = FaceAngle{} }
func (m *FaceAngle) String() string { return proto.CompactTextString(m) }
func (*FaceAngle) ProtoMessage()    {}
func (*FaceAngle) Descriptor() ([]byte, []int) {
type Target struct {
   Id         uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
   Type       string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"`
   Confidence int32  `protobuf:"varint,3,opt,name=confidence,proto3" json:"confidence,omitempty"`
   Rect       *Rect  `protobuf:"bytes,4,opt,name=rect,proto3" json:"rect,omitempty"`
   Feature    []byte `protobuf:"bytes,5,opt,name=feature,proto3" json:"feature,omitempty"`
   Attribute  string `protobuf:"bytes,6,opt,name=attribute,proto3" json:"attribute,omitempty"`
}
func (m *Target) Reset()         { *m = Target{} }
func (m *Target) String() string { return proto.CompactTextString(m) }
func (*Target) ProtoMessage()    {}
func (*Target) Descriptor() ([]byte, []int) {
   return fileDescriptor_70decb0fb6f436df, []int{1}
}
func (m *FaceAngle) XXX_Unmarshal(b []byte) error {
func (m *Target) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
}
func (m *FaceAngle) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
func (m *Target) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_FaceAngle.Marshal(b, m, deterministic)
      return xxx_messageInfo_Target.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
@@ -135,66 +144,80 @@
      return b[:n], nil
   }
}
func (m *FaceAngle) XXX_Merge(src proto.Message) {
   xxx_messageInfo_FaceAngle.Merge(m, src)
func (m *Target) XXX_Merge(src proto.Message) {
   xxx_messageInfo_Target.Merge(m, src)
}
func (m *FaceAngle) XXX_Size() int {
func (m *Target) XXX_Size() int {
   return m.Size()
}
func (m *FaceAngle) XXX_DiscardUnknown() {
   xxx_messageInfo_FaceAngle.DiscardUnknown(m)
func (m *Target) XXX_DiscardUnknown() {
   xxx_messageInfo_Target.DiscardUnknown(m)
}
var xxx_messageInfo_FaceAngle proto.InternalMessageInfo
var xxx_messageInfo_Target proto.InternalMessageInfo
func (m *FaceAngle) GetYaw() int32 {
func (m *Target) GetId() uint64 {
   if m != nil {
      return m.Yaw
      return m.Id
   }
   return 0
}
func (m *FaceAngle) GetPitch() int32 {
func (m *Target) GetType() string {
   if m != nil {
      return m.Pitch
      return m.Type
   }
   return 0
   return ""
}
func (m *FaceAngle) GetRoll() int32 {
   if m != nil {
      return m.Roll
   }
   return 0
}
func (m *FaceAngle) GetConfidence() float32 {
func (m *Target) GetConfidence() int32 {
   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"`
func (m *Target) GetRect() *Rect {
   if m != nil {
      return m.Rect
   }
   return nil
}
func (m *ThftResult) Reset()         { *m = ThftResult{} }
func (m *ThftResult) String() string { return proto.CompactTextString(m) }
func (*ThftResult) ProtoMessage()    {}
func (*ThftResult) Descriptor() ([]byte, []int) {
func (m *Target) GetFeature() []byte {
   if m != nil {
      return m.Feature
   }
   return nil
}
func (m *Target) GetAttribute() string {
   if m != nil {
      return m.Attribute
   }
   return ""
}
type NewSDKMessage struct {
   SdkID     string    `protobuf:"bytes,1,opt,name=sdkID,proto3" json:"sdkID,omitempty"`
   SdkType   string    `protobuf:"bytes,2,opt,name=sdkType,proto3" json:"sdkType,omitempty"`
   SdkName   string    `protobuf:"bytes,3,opt,name=sdkName,proto3" json:"sdkName,omitempty"`
   Target    []*Target `protobuf:"bytes,4,rep,name=target,proto3" json:"target,omitempty"`
   Timestamp string    `protobuf:"bytes,5,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
}
func (m *NewSDKMessage) Reset()         { *m = NewSDKMessage{} }
func (m *NewSDKMessage) String() string { return proto.CompactTextString(m) }
func (*NewSDKMessage) ProtoMessage()    {}
func (*NewSDKMessage) Descriptor() ([]byte, []int) {
   return fileDescriptor_70decb0fb6f436df, []int{2}
}
func (m *ThftResult) XXX_Unmarshal(b []byte) error {
func (m *NewSDKMessage) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
}
func (m *ThftResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
func (m *NewSDKMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_ThftResult.Marshal(b, m, deterministic)
      return xxx_messageInfo_NewSDKMessage.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
@@ -204,77 +227,71 @@
      return b[:n], nil
   }
}
func (m *ThftResult) XXX_Merge(src proto.Message) {
   xxx_messageInfo_ThftResult.Merge(m, src)
func (m *NewSDKMessage) XXX_Merge(src proto.Message) {
   xxx_messageInfo_NewSDKMessage.Merge(m, src)
}
func (m *ThftResult) XXX_Size() int {
func (m *NewSDKMessage) XXX_Size() int {
   return m.Size()
}
func (m *ThftResult) XXX_DiscardUnknown() {
   xxx_messageInfo_ThftResult.DiscardUnknown(m)
func (m *NewSDKMessage) XXX_DiscardUnknown() {
   xxx_messageInfo_NewSDKMessage.DiscardUnknown(m)
}
var xxx_messageInfo_ThftResult proto.InternalMessageInfo
var xxx_messageInfo_NewSDKMessage proto.InternalMessageInfo
func (m *ThftResult) GetGender() int32 {
func (m *NewSDKMessage) GetSdkID() string {
   if m != nil {
      return m.Gender
      return m.SdkID
   }
   return 0
   return ""
}
func (m *ThftResult) GetAge() int32 {
func (m *NewSDKMessage) GetSdkType() string {
   if m != nil {
      return m.Age
      return m.SdkType
   }
   return 0
   return ""
}
func (m *ThftResult) GetRace() int32 {
func (m *NewSDKMessage) GetSdkName() string {
   if m != nil {
      return m.Race
      return m.SdkName
   }
   return 0
   return ""
}
func (m *ThftResult) GetBeauty() int32 {
func (m *NewSDKMessage) GetTarget() []*Target {
   if m != nil {
      return m.Beauty
      return m.Target
   }
   return 0
   return nil
}
func (m *ThftResult) GetSmile() int32 {
func (m *NewSDKMessage) GetTimestamp() string {
   if m != nil {
      return m.Smile
      return m.Timestamp
   }
   return 0
   return ""
}
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"`
   FaceID     uint64     `protobuf:"varint,9,opt,name=faceID,proto3" json:"faceID,omitempty"`
type NewRuleMessage struct {
   DataType    string           `protobuf:"bytes,1,opt,name=dataType,proto3" json:"dataType,omitempty"`
   HandleTrack string           `protobuf:"bytes,2,opt,name=handleTrack,proto3" json:"handleTrack,omitempty"`
   Message     []*NewSDKMessage `protobuf:"bytes,3,rep,name=message,proto3" json:"message,omitempty"`
}
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 *NewRuleMessage) Reset()         { *m = NewRuleMessage{} }
func (m *NewRuleMessage) String() string { return proto.CompactTextString(m) }
func (*NewRuleMessage) ProtoMessage()    {}
func (*NewRuleMessage) Descriptor() ([]byte, []int) {
   return fileDescriptor_70decb0fb6f436df, []int{3}
}
func (m *FacePos) XXX_Unmarshal(b []byte) error {
func (m *NewRuleMessage) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
}
func (m *FacePos) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
func (m *NewRuleMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_FacePos.Marshal(b, m, deterministic)
      return xxx_messageInfo_NewRuleMessage.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
@@ -284,887 +301,77 @@
      return b[:n], nil
   }
}
func (m *FacePos) XXX_Merge(src proto.Message) {
   xxx_messageInfo_FacePos.Merge(m, src)
func (m *NewRuleMessage) XXX_Merge(src proto.Message) {
   xxx_messageInfo_NewRuleMessage.Merge(m, src)
}
func (m *FacePos) XXX_Size() int {
func (m *NewRuleMessage) XXX_Size() int {
   return m.Size()
}
func (m *FacePos) XXX_DiscardUnknown() {
   xxx_messageInfo_FacePos.DiscardUnknown(m)
func (m *NewRuleMessage) XXX_DiscardUnknown() {
   xxx_messageInfo_NewRuleMessage.DiscardUnknown(m)
}
var xxx_messageInfo_FacePos proto.InternalMessageInfo
var xxx_messageInfo_NewRuleMessage proto.InternalMessageInfo
func (m *FacePos) GetRcFace() *Rect {
func (m *NewRuleMessage) GetDataType() string {
   if m != nil {
      return m.RcFace
   }
   return nil
}
func (m *FacePos) GetPtLeftEye() *Point {
   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 0
}
func (m *FacePos) GetFacialData() []byte {
   if m != nil {
      return m.FacialData
   }
   return nil
}
func (m *FacePos) GetFaceID() uint64 {
   if m != nil {
      return m.FaceID
   }
   return 0
}
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"`
}
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_70decb0fb6f436df, []int{4}
}
func (m *FaceInfo) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
}
func (m *FaceInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_FaceInfo.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
}
func (m *FaceInfo) XXX_Merge(src proto.Message) {
   xxx_messageInfo_FaceInfo.Merge(m, src)
}
func (m *FaceInfo) XXX_Size() int {
   return m.Size()
}
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 0
}
func (m *FaceInfo) GetFacialData() []byte {
   if m != nil {
      return m.FacialData
   }
   return nil
}
func (m *FaceInfo) GetFaceID() int64 {
   if m != nil {
      return m.FaceID
   }
   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"`
   ObjID uint64  `protobuf:"varint,4,opt,name=objID,proto3" json:"objID,omitempty"`
}
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_70decb0fb6f436df, []int{5}
}
func (m *ObjInfo) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
}
func (m *ObjInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_ObjInfo.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
}
func (m *ObjInfo) XXX_Merge(src proto.Message) {
   xxx_messageInfo_ObjInfo.Merge(m, src)
}
func (m *ObjInfo) XXX_Size() int {
   return m.Size()
}
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
}
func (m *ObjInfo) GetObjID() uint64 {
   if m != nil {
      return m.ObjID
   }
   return 0
}
// sdk face property
type ResultFaceDetect struct {
   Pos    *FacePos    `protobuf:"bytes,1,opt,name=pos,proto3" json:"pos,omitempty"`
   Result *ThftResult `protobuf:"bytes,2,opt,name=result,proto3" json:"result,omitempty"`
   Feats  []byte      `protobuf:"bytes,3,opt,name=feats,proto3" json:"feats,omitempty"`
}
func (m *ResultFaceDetect) Reset()         { *m = ResultFaceDetect{} }
func (m *ResultFaceDetect) String() string { return proto.CompactTextString(m) }
func (*ResultFaceDetect) ProtoMessage()    {}
func (*ResultFaceDetect) Descriptor() ([]byte, []int) {
   return fileDescriptor_70decb0fb6f436df, []int{6}
}
func (m *ResultFaceDetect) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
}
func (m *ResultFaceDetect) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_ResultFaceDetect.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
}
func (m *ResultFaceDetect) XXX_Merge(src proto.Message) {
   xxx_messageInfo_ResultFaceDetect.Merge(m, src)
}
func (m *ResultFaceDetect) XXX_Size() int {
   return m.Size()
}
func (m *ResultFaceDetect) XXX_DiscardUnknown() {
   xxx_messageInfo_ResultFaceDetect.DiscardUnknown(m)
}
var xxx_messageInfo_ResultFaceDetect proto.InternalMessageInfo
func (m *ResultFaceDetect) GetPos() *FacePos {
   if m != nil {
      return m.Pos
   }
   return nil
}
func (m *ResultFaceDetect) GetResult() *ThftResult {
   if m != nil {
      return m.Result
   }
   return nil
}
func (m *ResultFaceDetect) GetFeats() []byte {
   if m != nil {
      return m.Feats
   }
   return nil
}
type ParamFacePos struct {
   Faces []*ResultFaceDetect `protobuf:"bytes,1,rep,name=faces,proto3" json:"faces,omitempty"`
}
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_70decb0fb6f436df, []int{7}
}
func (m *ParamFacePos) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
}
func (m *ParamFacePos) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_ParamFacePos.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
}
func (m *ParamFacePos) XXX_Merge(src proto.Message) {
   xxx_messageInfo_ParamFacePos.Merge(m, src)
}
func (m *ParamFacePos) XXX_Size() int {
   return m.Size()
}
func (m *ParamFacePos) XXX_DiscardUnknown() {
   xxx_messageInfo_ParamFacePos.DiscardUnknown(m)
}
var xxx_messageInfo_ParamFacePos proto.InternalMessageInfo
func (m *ParamFacePos) GetFaces() []*ResultFaceDetect {
   if m != nil {
      return m.Faces
   }
   return nil
}
type ResultFaceExtCom struct {
   Feats []byte            `protobuf:"bytes,1,opt,name=feats,proto3" json:"feats,omitempty"`
   Comp  []byte            `protobuf:"bytes,2,opt,name=comp,proto3" json:"comp,omitempty"`
   Pos   *ResultFaceDetect `protobuf:"bytes,3,opt,name=pos,proto3" json:"pos,omitempty"`
}
func (m *ResultFaceExtCom) Reset()         { *m = ResultFaceExtCom{} }
func (m *ResultFaceExtCom) String() string { return proto.CompactTextString(m) }
func (*ResultFaceExtCom) ProtoMessage()    {}
func (*ResultFaceExtCom) Descriptor() ([]byte, []int) {
   return fileDescriptor_70decb0fb6f436df, []int{8}
}
func (m *ResultFaceExtCom) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
}
func (m *ResultFaceExtCom) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_ResultFaceExtCom.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
}
func (m *ResultFaceExtCom) XXX_Merge(src proto.Message) {
   xxx_messageInfo_ResultFaceExtCom.Merge(m, src)
}
func (m *ResultFaceExtCom) XXX_Size() int {
   return m.Size()
}
func (m *ResultFaceExtCom) XXX_DiscardUnknown() {
   xxx_messageInfo_ResultFaceExtCom.DiscardUnknown(m)
}
var xxx_messageInfo_ResultFaceExtCom proto.InternalMessageInfo
func (m *ResultFaceExtCom) GetFeats() []byte {
   if m != nil {
      return m.Feats
   }
   return nil
}
func (m *ResultFaceExtCom) GetComp() []byte {
   if m != nil {
      return m.Comp
   }
   return nil
}
func (m *ResultFaceExtCom) GetPos() *ResultFaceDetect {
   if m != nil {
      return m.Pos
   }
   return nil
}
type ParamFaceFeature struct {
   ExtComp []*ResultFaceExtCom `protobuf:"bytes,2,rep,name=extComp,proto3" json:"extComp,omitempty"`
}
func (m *ParamFaceFeature) Reset()         { *m = ParamFaceFeature{} }
func (m *ParamFaceFeature) String() string { return proto.CompactTextString(m) }
func (*ParamFaceFeature) ProtoMessage()    {}
func (*ParamFaceFeature) Descriptor() ([]byte, []int) {
   return fileDescriptor_70decb0fb6f436df, []int{9}
}
func (m *ParamFaceFeature) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
}
func (m *ParamFaceFeature) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_ParamFaceFeature.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
}
func (m *ParamFaceFeature) XXX_Merge(src proto.Message) {
   xxx_messageInfo_ParamFaceFeature.Merge(m, src)
}
func (m *ParamFaceFeature) XXX_Size() int {
   return m.Size()
}
func (m *ParamFaceFeature) XXX_DiscardUnknown() {
   xxx_messageInfo_ParamFaceFeature.DiscardUnknown(m)
}
var xxx_messageInfo_ParamFaceFeature proto.InternalMessageInfo
func (m *ParamFaceFeature) GetExtComp() []*ResultFaceExtCom {
   if m != nil {
      return m.ExtComp
   }
   return nil
}
// sdk yolo detect
type ParamYoloObj struct {
   Infos []*ObjInfo `protobuf:"bytes,1,rep,name=infos,proto3" json:"infos,omitempty"`
}
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_70decb0fb6f436df, []int{10}
}
func (m *ParamYoloObj) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
}
func (m *ParamYoloObj) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_ParamYoloObj.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
}
func (m *ParamYoloObj) XXX_Merge(src proto.Message) {
   xxx_messageInfo_ParamYoloObj.Merge(m, src)
}
func (m *ParamYoloObj) XXX_Size() int {
   return m.Size()
}
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
}
type SoInfo struct {
   Id     string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   SdkId  string `protobuf:"bytes,2,opt,name=sdkId,proto3" json:"sdkId,omitempty"`
   SoName string `protobuf:"bytes,3,opt,name=soName,proto3" json:"soName,omitempty"`
}
func (m *SoInfo) Reset()         { *m = SoInfo{} }
func (m *SoInfo) String() string { return proto.CompactTextString(m) }
func (*SoInfo) ProtoMessage()    {}
func (*SoInfo) Descriptor() ([]byte, []int) {
   return fileDescriptor_70decb0fb6f436df, []int{11}
}
func (m *SoInfo) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
}
func (m *SoInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_SoInfo.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
}
func (m *SoInfo) XXX_Merge(src proto.Message) {
   xxx_messageInfo_SoInfo.Merge(m, src)
}
func (m *SoInfo) XXX_Size() int {
   return m.Size()
}
func (m *SoInfo) XXX_DiscardUnknown() {
   xxx_messageInfo_SoInfo.DiscardUnknown(m)
}
var xxx_messageInfo_SoInfo proto.InternalMessageInfo
func (m *SoInfo) GetId() string {
   if m != nil {
      return m.Id
      return m.DataType
   }
   return ""
}
func (m *SoInfo) GetSdkId() string {
func (m *NewRuleMessage) GetHandleTrack() string {
   if m != nil {
      return m.SdkId
      return m.HandleTrack
   }
   return ""
}
func (m *SoInfo) GetSoName() string {
func (m *NewRuleMessage) GetMessage() []*NewSDKMessage {
   if m != nil {
      return m.SoName
   }
   return ""
}
// sdk plate id detect
type PlateID struct {
   License             string `protobuf:"bytes,1,opt,name=license,proto3" json:"license,omitempty"`
   Color               string `protobuf:"bytes,2,opt,name=color,proto3" json:"color,omitempty"`
   NColor              int32  `protobuf:"varint,3,opt,name=nColor,proto3" json:"nColor,omitempty"`
   NType               int32  `protobuf:"varint,4,opt,name=nType,proto3" json:"nType,omitempty"`
   NConfidence         int32  `protobuf:"varint,5,opt,name=nConfidence,proto3" json:"nConfidence,omitempty"`
   NBright             int32  `protobuf:"varint,6,opt,name=nBright,proto3" json:"nBright,omitempty"`
   NDirection          int32  `protobuf:"varint,7,opt,name=nDirection,proto3" json:"nDirection,omitempty"`
   RcLocation          *Rect  `protobuf:"bytes,8,opt,name=rcLocation,proto3" json:"rcLocation,omitempty"`
   NTime               int32  `protobuf:"varint,9,opt,name=nTime,proto3" json:"nTime,omitempty"`
   NCarBright          int32  `protobuf:"varint,10,opt,name=nCarBright,proto3" json:"nCarBright,omitempty"`
   NCarColor           int32  `protobuf:"varint,11,opt,name=NCarColor,proto3" json:"NCarColor,omitempty"`
   NCarLogo            int32  `protobuf:"varint,12,opt,name=nCarLogo,proto3" json:"nCarLogo,omitempty"`
   NCarType            int32  `protobuf:"varint,13,opt,name=nCarType,proto3" json:"nCarType,omitempty"`
   PlateBin            []byte `protobuf:"bytes,14,opt,name=plateBin,proto3" json:"plateBin,omitempty"`
   NBinPlateWidth      []byte `protobuf:"bytes,15,opt,name=nBinPlateWidth,proto3" json:"nBinPlateWidth,omitempty"`
   NBinPlateHeight     []byte `protobuf:"bytes,16,opt,name=nBinPlateHeight,proto3" json:"nBinPlateHeight,omitempty"`
   RcLogoLocation      *Rect  `protobuf:"bytes,17,opt,name=rcLogoLocation,proto3" json:"rcLogoLocation,omitempty"`
   NCarModel           []byte `protobuf:"bytes,18,opt,name=nCarModel,proto3" json:"nCarModel,omitempty"`
   NCarModelConfidence []byte `protobuf:"bytes,19,opt,name=nCarModelConfidence,proto3" json:"nCarModelConfidence,omitempty"`
}
func (m *PlateID) Reset()         { *m = PlateID{} }
func (m *PlateID) String() string { return proto.CompactTextString(m) }
func (*PlateID) ProtoMessage()    {}
func (*PlateID) Descriptor() ([]byte, []int) {
   return fileDescriptor_70decb0fb6f436df, []int{12}
}
func (m *PlateID) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
}
func (m *PlateID) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_PlateID.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
}
func (m *PlateID) XXX_Merge(src proto.Message) {
   xxx_messageInfo_PlateID.Merge(m, src)
}
func (m *PlateID) XXX_Size() int {
   return m.Size()
}
func (m *PlateID) XXX_DiscardUnknown() {
   xxx_messageInfo_PlateID.DiscardUnknown(m)
}
var xxx_messageInfo_PlateID proto.InternalMessageInfo
func (m *PlateID) GetLicense() string {
   if m != nil {
      return m.License
   }
   return ""
}
func (m *PlateID) GetColor() string {
   if m != nil {
      return m.Color
   }
   return ""
}
func (m *PlateID) GetNColor() int32 {
   if m != nil {
      return m.NColor
   }
   return 0
}
func (m *PlateID) GetNType() int32 {
   if m != nil {
      return m.NType
   }
   return 0
}
func (m *PlateID) GetNConfidence() int32 {
   if m != nil {
      return m.NConfidence
   }
   return 0
}
func (m *PlateID) GetNBright() int32 {
   if m != nil {
      return m.NBright
   }
   return 0
}
func (m *PlateID) GetNDirection() int32 {
   if m != nil {
      return m.NDirection
   }
   return 0
}
func (m *PlateID) GetRcLocation() *Rect {
   if m != nil {
      return m.RcLocation
   }
   return nil
}
func (m *PlateID) GetNTime() int32 {
   if m != nil {
      return m.NTime
   }
   return 0
}
func (m *PlateID) GetNCarBright() int32 {
   if m != nil {
      return m.NCarBright
   }
   return 0
}
func (m *PlateID) GetNCarColor() int32 {
   if m != nil {
      return m.NCarColor
   }
   return 0
}
func (m *PlateID) GetNCarLogo() int32 {
   if m != nil {
      return m.NCarLogo
   }
   return 0
}
func (m *PlateID) GetNCarType() int32 {
   if m != nil {
      return m.NCarType
   }
   return 0
}
func (m *PlateID) GetPlateBin() []byte {
   if m != nil {
      return m.PlateBin
   }
   return nil
}
func (m *PlateID) GetNBinPlateWidth() []byte {
   if m != nil {
      return m.NBinPlateWidth
   }
   return nil
}
func (m *PlateID) GetNBinPlateHeight() []byte {
   if m != nil {
      return m.NBinPlateHeight
   }
   return nil
}
func (m *PlateID) GetRcLogoLocation() *Rect {
   if m != nil {
      return m.RcLogoLocation
   }
   return nil
}
func (m *PlateID) GetNCarModel() []byte {
   if m != nil {
      return m.NCarModel
   }
   return nil
}
func (m *PlateID) GetNCarModelConfidence() []byte {
   if m != nil {
      return m.NCarModelConfidence
   }
   return nil
}
type PlateIDResult struct {
   Result []*PlateID `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"`
}
func (m *PlateIDResult) Reset()         { *m = PlateIDResult{} }
func (m *PlateIDResult) String() string { return proto.CompactTextString(m) }
func (*PlateIDResult) ProtoMessage()    {}
func (*PlateIDResult) Descriptor() ([]byte, []int) {
   return fileDescriptor_70decb0fb6f436df, []int{13}
}
func (m *PlateIDResult) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
}
func (m *PlateIDResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_PlateIDResult.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
}
func (m *PlateIDResult) XXX_Merge(src proto.Message) {
   xxx_messageInfo_PlateIDResult.Merge(m, src)
}
func (m *PlateIDResult) XXX_Size() int {
   return m.Size()
}
func (m *PlateIDResult) XXX_DiscardUnknown() {
   xxx_messageInfo_PlateIDResult.DiscardUnknown(m)
}
var xxx_messageInfo_PlateIDResult proto.InternalMessageInfo
func (m *PlateIDResult) GetResult() []*PlateID {
   if m != nil {
      return m.Result
      return m.Message
   }
   return nil
}
func init() {
   proto.RegisterType((*Image)(nil), "protomsg.Image")
   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((*ResultFaceDetect)(nil), "protomsg.ResultFaceDetect")
   proto.RegisterType((*ParamFacePos)(nil), "protomsg.ParamFacePos")
   proto.RegisterType((*ResultFaceExtCom)(nil), "protomsg.ResultFaceExtCom")
   proto.RegisterType((*ParamFaceFeature)(nil), "protomsg.ParamFaceFeature")
   proto.RegisterType((*ParamYoloObj)(nil), "protomsg.ParamYoloObj")
   proto.RegisterType((*SoInfo)(nil), "protomsg.SoInfo")
   proto.RegisterType((*PlateID)(nil), "protomsg.PlateID")
   proto.RegisterType((*PlateIDResult)(nil), "protomsg.PlateIDResult")
   proto.RegisterType((*Target)(nil), "protomsg.Target")
   proto.RegisterType((*NewSDKMessage)(nil), "protomsg.NewSDKMessage")
   proto.RegisterType((*NewRuleMessage)(nil), "protomsg.NewRuleMessage")
}
func init() { proto.RegisterFile("sdk.proto", fileDescriptor_70decb0fb6f436df) }
var fileDescriptor_70decb0fb6f436df = []byte{
   // 992 bytes of a gzipped FileDescriptorProto
   0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x56, 0x4f, 0x6f, 0xdc, 0x44,
   0x14, 0x8f, 0x77, 0xe3, 0xfd, 0xf3, 0x36, 0x4d, 0xd2, 0x49, 0x85, 0xac, 0x08, 0xad, 0x56, 0x06,
   0xb5, 0x5b, 0x51, 0x42, 0x15, 0x10, 0x48, 0x9c, 0x20, 0xd9, 0x46, 0x5d, 0x29, 0x4d, 0xa3, 0xa1,
   0x12, 0xe2, 0x38, 0x6b, 0xcf, 0xee, 0x3a, 0xb1, 0x3d, 0xc6, 0x9e, 0x55, 0xbb, 0xe2, 0x13, 0x70,
   0xe3, 0x63, 0x71, 0xec, 0x91, 0x23, 0x4a, 0xe0, 0x23, 0x70, 0x47, 0xef, 0xcd, 0xf8, 0x4f, 0xc3,
   0x96, 0x13, 0x47, 0x4e, 0x9e, 0xdf, 0x7b, 0x3f, 0xcf, 0xfb, 0xff, 0x6c, 0xe8, 0x17, 0xe1, 0xf5,
   0x51, 0x96, 0x2b, 0xad, 0x58, 0x8f, 0x1e, 0x49, 0xb1, 0x38, 0x84, 0x99, 0x28, 0xa4, 0x91, 0xfa,
   0x3f, 0x3b, 0xe0, 0x4e, 0x13, 0xb1, 0x90, 0xec, 0x01, 0xb8, 0xaf, 0xa3, 0x50, 0x2f, 0x3d, 0x67,
   0xe4, 0x8c, 0x5d, 0x6e, 0x00, 0xfb, 0x00, 0x3a, 0x4b, 0x19, 0x2d, 0x96, 0xda, 0x6b, 0x91, 0xd8,
   0x22, 0xc6, 0x60, 0x3b, 0x14, 0x5a, 0x78, 0xed, 0x91, 0x33, 0xde, 0xe1, 0x74, 0x66, 0x1f, 0x42,
   0x5f, 0x47, 0x89, 0x2c, 0xb4, 0x48, 0x32, 0x6f, 0x7b, 0xe4, 0x8c, 0xfb, 0xbc, 0x16, 0xb0, 0x5d,
   0x68, 0x45, 0xa1, 0xe7, 0x8e, 0x9c, 0x71, 0x9b, 0xb7, 0xa2, 0x90, 0xed, 0x43, 0x3b, 0x88, 0x42,
   0xaf, 0x43, 0x3c, 0x3c, 0xfa, 0x0b, 0xe8, 0x9f, 0x89, 0x40, 0x7e, 0x9b, 0x2e, 0x62, 0x89, 0xea,
   0xb5, 0x78, 0x6d, 0x9d, 0xc1, 0x23, 0x3a, 0x98, 0x45, 0x3a, 0x58, 0x5a, 0x4f, 0x0c, 0x40, 0x47,
   0x72, 0x15, 0xc7, 0xe4, 0x88, 0xcb, 0xe9, 0xcc, 0x86, 0x00, 0x81, 0x4a, 0xe7, 0x51, 0x28, 0xd3,
   0x40, 0x92, 0x27, 0x2d, 0xde, 0x90, 0xf8, 0x6f, 0x00, 0x5e, 0x2d, 0xe7, 0x9a, 0xcb, 0x62, 0x15,
   0x6b, 0x0c, 0x71, 0x21, 0xd3, 0x50, 0xe6, 0xd6, 0x98, 0x45, 0xe8, 0x81, 0x58, 0x48, 0x6b, 0x0d,
   0x8f, 0x64, 0x4b, 0x04, 0xb2, 0xb2, 0x25, 0x02, 0x89, 0x6f, 0xcf, 0xa4, 0x58, 0xe9, 0x35, 0xd9,
   0x71, 0xb9, 0x45, 0xe8, 0x6d, 0x91, 0x44, 0xb1, 0xa4, 0x88, 0x5d, 0x6e, 0x80, 0xff, 0x47, 0x0b,
   0xba, 0x18, 0xe3, 0xa5, 0x2a, 0xd8, 0x43, 0xe8, 0xe4, 0x01, 0x02, 0xb2, 0x3b, 0x38, 0xde, 0x3d,
   0x2a, 0x2b, 0x74, 0xc4, 0x65, 0xa0, 0xb9, 0xd5, 0xb2, 0x4f, 0xa1, 0x9f, 0xe9, 0x73, 0x39, 0xd7,
   0xcf, 0xd6, 0xc6, 0x9b, 0xc1, 0xf1, 0x5e, 0x4d, 0xbd, 0x54, 0x51, 0xaa, 0x79, 0xcd, 0x60, 0x9f,
   0x01, 0x64, 0x9a, 0x63, 0x91, 0x90, 0xdf, 0xde, 0xcc, 0x6f, 0x50, 0xd8, 0x63, 0xe8, 0x66, 0xfa,
   0x85, 0x5a, 0xe9, 0x25, 0x85, 0xb0, 0x81, 0x5d, 0xea, 0xd9, 0x23, 0xe8, 0x64, 0xfa, 0x42, 0x15,
   0x26, 0xaa, 0x0d, 0x4c, 0xab, 0x66, 0x9f, 0x40, 0x67, 0x4e, 0x75, 0xa4, 0xfa, 0x0e, 0x8e, 0x0f,
   0x6a, 0x62, 0x55, 0x62, 0x6e, 0x29, 0xcc, 0x83, 0xee, 0x8f, 0x2b, 0x11, 0x47, 0x7a, 0xed, 0x75,
   0x29, 0x59, 0x25, 0xc4, 0x42, 0xce, 0x45, 0x10, 0x89, 0x78, 0x82, 0xbd, 0xd6, 0xa3, 0x5e, 0x6b,
   0x48, 0x30, 0xf9, 0x73, 0x11, 0xc8, 0xe9, 0xc4, 0xeb, 0x8f, 0x9c, 0xf1, 0x36, 0xb7, 0xc8, 0xff,
   0xb3, 0x05, 0x3d, 0xb4, 0x33, 0x4d, 0xe7, 0xea, 0xff, 0x3c, 0xff, 0xd7, 0x79, 0x6e, 0x57, 0x79,
   0xbe, 0x86, 0xee, 0xcb, 0xd9, 0x15, 0x65, 0xf9, 0x63, 0x70, 0xf3, 0xe0, 0xe5, 0xec, 0xea, 0x3d,
   0x49, 0x36, 0x4a, 0x9c, 0x29, 0xbd, 0xce, 0xca, 0x99, 0xd2, 0xeb, 0x0c, 0x67, 0x2a, 0xcb, 0xd5,
   0x8c, 0x12, 0xd8, 0xe2, 0x74, 0xc6, 0xd9, 0x51, 0xb3, 0xab, 0xe9, 0x84, 0xf2, 0xb4, 0xcd, 0x0d,
   0xf0, 0x7f, 0x82, 0x7d, 0x33, 0xb1, 0x18, 0xd9, 0x44, 0x6a, 0x19, 0x68, 0xf6, 0x11, 0xb4, 0x33,
   0x55, 0x58, 0x9b, 0xf7, 0xdf, 0x0d, 0xfe, 0x52, 0x15, 0x1c, 0xb5, 0xec, 0x09, 0x74, 0x72, 0x7a,
   0xd1, 0x56, 0xf5, 0x41, 0xcd, 0xab, 0xd7, 0x00, 0xb7, 0x1c, 0x34, 0x3e, 0x97, 0x42, 0x17, 0x76,
   0xb5, 0x19, 0xe0, 0x7f, 0x03, 0x3b, 0x97, 0x22, 0x17, 0x49, 0x39, 0xbc, 0x4f, 0xc1, 0xc5, 0x1c,
   0xa0, 0xe9, 0xf6, 0x78, 0x70, 0x7c, 0xd8, 0x0c, 0xf7, 0x5d, 0x1f, 0xb9, 0x21, 0xfa, 0x57, 0x4d,
   0xf7, 0x9f, 0xbd, 0xd1, 0xa7, 0x2a, 0xa9, 0x6d, 0x39, 0x0d, 0x5b, 0x98, 0x92, 0x40, 0x25, 0x26,
   0x4b, 0x3b, 0x9c, 0xce, 0xec, 0x89, 0x09, 0xd4, 0xb4, 0xd9, 0xbf, 0x59, 0x43, 0x9a, 0xff, 0x1c,
   0xf6, 0x2b, 0x6f, 0xcf, 0xa4, 0xd0, 0xab, 0x5c, 0xb2, 0x2f, 0xa0, 0x2b, 0xc9, 0x2a, 0x5e, 0xfc,
   0x5e, 0x9f, 0x8d, 0x63, 0xbc, 0xa4, 0xfa, 0x5f, 0xd9, 0xb8, 0x7f, 0x50, 0xb1, 0xc2, 0x02, 0x3e,
   0x02, 0x37, 0x4a, 0xe7, 0xaa, 0x8c, 0xbb, 0x91, 0x72, 0xdb, 0x08, 0xdc, 0xe8, 0xfd, 0x33, 0xe8,
   0x7c, 0xa7, 0xa8, 0x33, 0xcc, 0xe2, 0x77, 0x68, 0xcf, 0xe3, 0xe2, 0xc7, 0xcd, 0x18, 0x5e, 0x4f,
   0x43, 0x8a, 0xaf, 0xcf, 0x0d, 0xc0, 0x16, 0x2b, 0xd4, 0x85, 0x48, 0xcc, 0x28, 0xf5, 0xb9, 0x45,
   0xfe, 0x5f, 0xdb, 0xd0, 0xbd, 0x8c, 0x85, 0x96, 0xd3, 0x09, 0x36, 0x70, 0x1c, 0x05, 0x32, 0x2d,
   0xa4, 0xbd, 0xae, 0x84, 0x78, 0x67, 0xa0, 0x62, 0x95, 0x97, 0x77, 0x12, 0xc0, 0x3b, 0xd3, 0x53,
   0x12, 0x9b, 0x8d, 0x6d, 0x11, 0xb2, 0xd3, 0x57, 0xeb, 0x4c, 0xda, 0x95, 0x6d, 0x00, 0x1b, 0xc1,
   0x20, 0x3d, 0xad, 0x3f, 0x1b, 0x66, 0x6f, 0x37, 0x45, 0x68, 0x3f, 0x3d, 0xc9, 0xe9, 0x6b, 0xd8,
   0x31, 0x03, 0x64, 0x21, 0x0e, 0x50, 0x3a, 0x89, 0x72, 0x19, 0xe8, 0x48, 0xa5, 0x76, 0xba, 0x1a,
   0x12, 0x76, 0x04, 0x90, 0x07, 0xe7, 0x2a, 0x10, 0xa4, 0xef, 0x6d, 0x1c, 0x91, 0x06, 0xc3, 0x78,
   0x18, 0x25, 0x92, 0xe6, 0x8d, 0x3c, 0x8c, 0x12, 0x49, 0x56, 0x4e, 0x45, 0x6e, 0x5d, 0x00, 0x6b,
   0xa5, 0x92, 0xe0, 0x07, 0xf8, 0xe2, 0x54, 0xe4, 0x26, 0xe4, 0x01, 0xa9, 0x6b, 0x01, 0x3b, 0x84,
   0x1e, 0x72, 0xcf, 0xd5, 0x42, 0x79, 0x3b, 0xa4, 0xac, 0x70, 0xa9, 0xa3, 0xa4, 0xdc, 0xab, 0x75,
   0x94, 0x97, 0x43, 0xe8, 0x65, 0x58, 0x80, 0x93, 0x28, 0xf5, 0x76, 0xa9, 0x25, 0x2b, 0xcc, 0x1e,
   0xc2, 0x6e, 0x7a, 0x12, 0xa5, 0x54, 0xa0, 0xef, 0xe9, 0xef, 0x61, 0x8f, 0x18, 0x77, 0xa4, 0x6c,
   0x0c, 0x7b, 0x95, 0xe4, 0xb9, 0xf9, 0x9f, 0xd8, 0x27, 0xe2, 0x5d, 0x31, 0xfb, 0x12, 0x76, 0x31,
   0x0f, 0x0b, 0x55, 0x65, 0xeb, 0xfe, 0xc6, 0x6c, 0xdd, 0x61, 0x61, 0xec, 0xe8, 0xf1, 0x0b, 0x15,
   0xca, 0xd8, 0x63, 0x74, 0x77, 0x2d, 0x60, 0x4f, 0xe1, 0xa0, 0x02, 0x8d, 0x1a, 0x1f, 0x10, 0x6f,
   0x93, 0xca, 0xff, 0x1a, 0xee, 0xd9, 0xb6, 0xb3, 0xbf, 0x09, 0x8f, 0xab, 0x2d, 0xf2, 0x8f, 0xd6,
   0x2f, 0x89, 0x96, 0x70, 0xe2, 0xfd, 0x7a, 0x33, 0x74, 0xde, 0xde, 0x0c, 0x9d, 0xdf, 0x6f, 0x86,
   0xce, 0x2f, 0xb7, 0xc3, 0xad, 0xb7, 0xb7, 0xc3, 0xad, 0xdf, 0x6e, 0x87, 0x5b, 0xb3, 0x0e, 0xbd,
   0xf3, 0xf9, 0xdf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x0b, 0x6b, 0x7d, 0x39, 0x98, 0x09, 0x00, 0x00,
   // 421 bytes of a gzipped FileDescriptorProto
   0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x5c, 0x91, 0xcf, 0x6e, 0xd3, 0x40,
   0x10, 0xc6, 0xb3, 0xf1, 0x9f, 0xd4, 0x93, 0x12, 0x55, 0x2b, 0x04, 0xab, 0x0a, 0x59, 0x96, 0x4f,
   0x3e, 0x45, 0xa2, 0xbc, 0x01, 0xea, 0xa5, 0x42, 0xe4, 0xb0, 0xe4, 0x05, 0x36, 0xde, 0x69, 0xb2,
   0x4a, 0xed, 0x44, 0xde, 0x8d, 0x22, 0x8e, 0xbc, 0x01, 0x6f, 0x80, 0xb8, 0xf1, 0x28, 0x1c, 0x7b,
   0xe4, 0x88, 0x92, 0x17, 0x41, 0x3b, 0xb6, 0xeb, 0x96, 0x93, 0xe7, 0xfb, 0x66, 0x3c, 0xfa, 0xed,
   0x37, 0x90, 0x58, 0xbd, 0x9d, 0xef, 0x9b, 0x9d, 0xdb, 0xf1, 0x0b, 0xfa, 0x54, 0x76, 0x7d, 0x0d,
   0x2b, 0x65, 0xb1, 0x75, 0xf3, 0x1f, 0x0c, 0xa2, 0xbb, 0x4a, 0xad, 0x91, 0xbf, 0x86, 0xe8, 0x68,
   0xb4, 0xdb, 0x08, 0x96, 0xb1, 0x22, 0x92, 0xad, 0xe0, 0x6f, 0x20, 0xde, 0xa0, 0x59, 0x6f, 0x9c,
   0x18, 0x93, 0xdd, 0x29, 0xce, 0x21, 0xd4, 0xca, 0x29, 0x11, 0x64, 0xac, 0xb8, 0x94, 0x54, 0xf3,
   0x77, 0x90, 0x38, 0x53, 0xa1, 0x75, 0xaa, 0xda, 0x8b, 0x30, 0x63, 0x45, 0x22, 0x07, 0x83, 0xcf,
   0x60, 0x6c, 0xb4, 0x88, 0x32, 0x56, 0x04, 0x72, 0x6c, 0x34, 0xbf, 0x82, 0xa0, 0x34, 0x5a, 0xc4,
   0x34, 0xe7, 0x4b, 0x4f, 0x50, 0xd6, 0xaa, 0x42, 0x31, 0x21, 0xaf, 0x15, 0xf9, 0x2f, 0x06, 0xf1,
   0x52, 0x35, 0x6b, 0x74, 0xdd, 0x0a, 0xcf, 0x17, 0xd2, 0x0a, 0x0e, 0xa1, 0xfb, 0xba, 0x47, 0x42,
   0x4b, 0x24, 0xd5, 0x3c, 0x05, 0x28, 0x77, 0xf5, 0xbd, 0xd1, 0x58, 0x97, 0x48, 0x78, 0x91, 0x7c,
   0xe6, 0xf0, 0x1c, 0xc2, 0x06, 0x4b, 0x47, 0x7c, 0xd3, 0x9b, 0xd9, 0xbc, 0x4f, 0x65, 0x2e, 0xb1,
   0x74, 0x92, 0x7a, 0x5c, 0xc0, 0xe4, 0x1e, 0x95, 0x3b, 0x34, 0x48, 0xbc, 0x97, 0xb2, 0x97, 0xfe,
   0x89, 0xca, 0xb9, 0xc6, 0xac, 0x0e, 0x0e, 0x3b, 0xf4, 0xc1, 0xc8, 0x7f, 0x32, 0x78, 0xb5, 0xc0,
   0xe3, 0x97, 0xdb, 0x4f, 0x9f, 0xd1, 0xda, 0x2e, 0x54, 0xab, 0xb7, 0x77, 0xb7, 0x04, 0x9d, 0xc8,
   0x56, 0xf8, 0xfd, 0x56, 0x6f, 0x97, 0x03, 0x7a, 0x2f, 0xbb, 0xce, 0xc2, 0x87, 0x10, 0x3c, 0x75,
   0xbc, 0xe4, 0x05, 0xc4, 0x8e, 0x52, 0x10, 0x61, 0x16, 0x14, 0xd3, 0x9b, 0xab, 0x81, 0xbc, 0x4d,
   0x47, 0x76, 0xfd, 0x97, 0x67, 0x88, 0xfe, 0x3b, 0x43, 0xfe, 0x8d, 0xc1, 0x6c, 0x81, 0x47, 0x79,
   0x78, 0xc0, 0x1e, 0xf2, 0x1a, 0x2e, 0xfc, 0xfd, 0x88, 0xa7, 0xe5, 0x7c, 0xd2, 0x3c, 0x83, 0xe9,
   0x46, 0xd5, 0xfa, 0x01, 0x97, 0x8d, 0x2a, 0xb7, 0x1d, 0xee, 0x73, 0x8b, 0xbf, 0x87, 0x49, 0xd5,
   0x2e, 0x12, 0x01, 0x91, 0xbd, 0x1d, 0xc8, 0x5e, 0x84, 0x21, 0xfb, 0xb9, 0x8f, 0xe2, 0xf7, 0x29,
   0x65, 0x8f, 0xa7, 0x94, 0xfd, 0x3d, 0xa5, 0xec, 0xfb, 0x39, 0x1d, 0x3d, 0x9e, 0xd3, 0xd1, 0x9f,
   0x73, 0x3a, 0x5a, 0xc5, 0xf4, 0xeb, 0x87, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xc6, 0x02, 0xee,
   0xf7, 0xb8, 0x02, 0x00, 0x00,
}
func (m *Image) Marshal() (dAtA []byte, err error) {
@@ -1215,10 +422,16 @@
      i = encodeVarintSdk(dAtA, i, uint64(len(m.Cid)))
      i += copy(dAtA[i:], m.Cid)
   }
   if len(m.Cname) > 0 {
      dAtA[i] = 0x3a
      i++
      i = encodeVarintSdk(dAtA, i, uint64(len(m.Cname)))
      i += copy(dAtA[i:], m.Cname)
   }
   return i, nil
}
func (m *FaceAngle) Marshal() (dAtA []byte, err error) {
func (m *Target) Marshal() (dAtA []byte, err error) {
   size := m.Size()
   dAtA = make([]byte, size)
   n, err := m.MarshalTo(dAtA)
@@ -1228,173 +441,53 @@
   return dAtA[:n], nil
}
func (m *FaceAngle) MarshalTo(dAtA []byte) (int, error) {
func (m *Target) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if m.Yaw != 0 {
   if m.Id != 0 {
      dAtA[i] = 0x8
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.Yaw))
      i = encodeVarintSdk(dAtA, i, uint64(m.Id))
   }
   if m.Pitch != 0 {
      dAtA[i] = 0x10
   if len(m.Type) > 0 {
      dAtA[i] = 0x12
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.Pitch))
   }
   if m.Roll != 0 {
      dAtA[i] = 0x18
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.Roll))
      i = encodeVarintSdk(dAtA, i, uint64(len(m.Type)))
      i += copy(dAtA[i:], m.Type)
   }
   if m.Confidence != 0 {
      dAtA[i] = 0x25
      i++
      encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Confidence))))
      i += 4
   }
   return i, nil
}
func (m *ThftResult) Marshal() (dAtA []byte, err error) {
   size := m.Size()
   dAtA = make([]byte, size)
   n, err := m.MarshalTo(dAtA)
   if err != nil {
      return nil, err
   }
   return dAtA[:n], nil
}
func (m *ThftResult) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if m.Gender != 0 {
      dAtA[i] = 0x8
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.Gender))
   }
   if m.Age != 0 {
      dAtA[i] = 0x10
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.Age))
   }
   if m.Race != 0 {
      dAtA[i] = 0x18
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.Race))
      i = encodeVarintSdk(dAtA, i, uint64(m.Confidence))
   }
   if m.Beauty != 0 {
      dAtA[i] = 0x20
   if m.Rect != nil {
      dAtA[i] = 0x22
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.Beauty))
   }
   if m.Smile != 0 {
      dAtA[i] = 0x28
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.Smile))
   }
   return i, nil
}
func (m *FacePos) Marshal() (dAtA []byte, err error) {
   size := m.Size()
   dAtA = make([]byte, size)
   n, err := m.MarshalTo(dAtA)
   if err != nil {
      return nil, err
   }
   return dAtA[:n], nil
}
func (m *FacePos) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if m.RcFace != nil {
      dAtA[i] = 0xa
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.RcFace.Size()))
      n1, err1 := m.RcFace.MarshalTo(dAtA[i:])
      i = encodeVarintSdk(dAtA, i, uint64(m.Rect.Size()))
      n1, err1 := m.Rect.MarshalTo(dAtA[i:])
      if err1 != nil {
         return 0, err1
      }
      i += n1
   }
   if m.PtLeftEye != nil {
      dAtA[i] = 0x12
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.PtLeftEye.Size()))
      n2, err2 := m.PtLeftEye.MarshalTo(dAtA[i:])
      if err2 != nil {
         return 0, err2
      }
      i += n2
   }
   if m.PtRightEye != nil {
      dAtA[i] = 0x1a
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.PtRightEye.Size()))
      n3, err3 := m.PtRightEye.MarshalTo(dAtA[i:])
      if err3 != nil {
         return 0, err3
      }
      i += n3
   }
   if m.PtMouth != nil {
      dAtA[i] = 0x22
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.PtMouth.Size()))
      n4, err4 := m.PtMouth.MarshalTo(dAtA[i:])
      if err4 != nil {
         return 0, err4
      }
      i += n4
   }
   if m.PtNose != nil {
   if len(m.Feature) > 0 {
      dAtA[i] = 0x2a
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.PtNose.Size()))
      n5, err5 := m.PtNose.MarshalTo(dAtA[i:])
      if err5 != nil {
         return 0, err5
      }
      i += n5
      i = encodeVarintSdk(dAtA, i, uint64(len(m.Feature)))
      i += copy(dAtA[i:], m.Feature)
   }
   if m.FAngle != nil {
   if len(m.Attribute) > 0 {
      dAtA[i] = 0x32
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.FAngle.Size()))
      n6, err6 := m.FAngle.MarshalTo(dAtA[i:])
      if err6 != nil {
         return 0, err6
      }
      i += n6
   }
   if m.Quality != 0 {
      dAtA[i] = 0x38
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.Quality))
   }
   if len(m.FacialData) > 0 {
      dAtA[i] = 0x42
      i++
      i = encodeVarintSdk(dAtA, i, uint64(len(m.FacialData)))
      i += copy(dAtA[i:], m.FacialData)
   }
   if m.FaceID != 0 {
      dAtA[i] = 0x48
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.FaceID))
      i = encodeVarintSdk(dAtA, i, uint64(len(m.Attribute)))
      i += copy(dAtA[i:], m.Attribute)
   }
   return i, nil
}
func (m *FaceInfo) Marshal() (dAtA []byte, err error) {
func (m *NewSDKMessage) Marshal() (dAtA []byte, err error) {
   size := m.Size()
   dAtA = make([]byte, size)
   n, err := m.MarshalTo(dAtA)
@@ -1404,91 +497,51 @@
   return dAtA[:n], nil
}
func (m *FaceInfo) MarshalTo(dAtA []byte) (int, error) {
func (m *NewSDKMessage) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if m.RcFace != nil {
   if len(m.SdkID) > 0 {
      dAtA[i] = 0xa
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.RcFace.Size()))
      n7, err7 := m.RcFace.MarshalTo(dAtA[i:])
      if err7 != nil {
         return 0, err7
      }
      i += n7
      i = encodeVarintSdk(dAtA, i, uint64(len(m.SdkID)))
      i += copy(dAtA[i:], m.SdkID)
   }
   if m.PtLeftEye != nil {
   if len(m.SdkType) > 0 {
      dAtA[i] = 0x12
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.PtLeftEye.Size()))
      n8, err8 := m.PtLeftEye.MarshalTo(dAtA[i:])
      if err8 != nil {
         return 0, err8
      }
      i += n8
      i = encodeVarintSdk(dAtA, i, uint64(len(m.SdkType)))
      i += copy(dAtA[i:], m.SdkType)
   }
   if m.PtRightEye != nil {
   if len(m.SdkName) > 0 {
      dAtA[i] = 0x1a
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.PtRightEye.Size()))
      n9, err9 := m.PtRightEye.MarshalTo(dAtA[i:])
      if err9 != nil {
         return 0, err9
      }
      i += n9
      i = encodeVarintSdk(dAtA, i, uint64(len(m.SdkName)))
      i += copy(dAtA[i:], m.SdkName)
   }
   if m.PtMouth != nil {
      dAtA[i] = 0x22
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.PtMouth.Size()))
      n10, err10 := m.PtMouth.MarshalTo(dAtA[i:])
      if err10 != nil {
         return 0, err10
   if len(m.Target) > 0 {
      for _, msg := range m.Target {
         dAtA[i] = 0x22
         i++
         i = encodeVarintSdk(dAtA, i, uint64(msg.Size()))
         n, err := msg.MarshalTo(dAtA[i:])
         if err != nil {
            return 0, err
         }
         i += n
      }
      i += n10
   }
   if m.PtNose != nil {
   if len(m.Timestamp) > 0 {
      dAtA[i] = 0x2a
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.PtNose.Size()))
      n11, err11 := m.PtNose.MarshalTo(dAtA[i:])
      if err11 != nil {
         return 0, err11
      }
      i += n11
   }
   if m.FAngle != nil {
      dAtA[i] = 0x32
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.FAngle.Size()))
      n12, err12 := m.FAngle.MarshalTo(dAtA[i:])
      if err12 != nil {
         return 0, err12
      }
      i += n12
   }
   if m.Quality != 0 {
      dAtA[i] = 0x38
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.Quality))
   }
   if len(m.FacialData) > 0 {
      dAtA[i] = 0x42
      i++
      i = encodeVarintSdk(dAtA, i, uint64(len(m.FacialData)))
      i += copy(dAtA[i:], m.FacialData)
   }
   if m.FaceID != 0 {
      dAtA[i] = 0x48
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.FaceID))
      i = encodeVarintSdk(dAtA, i, uint64(len(m.Timestamp)))
      i += copy(dAtA[i:], m.Timestamp)
   }
   return i, nil
}
func (m *ObjInfo) Marshal() (dAtA []byte, err error) {
func (m *NewRuleMessage) Marshal() (dAtA []byte, err error) {
   size := m.Size()
   dAtA = make([]byte, size)
   n, err := m.MarshalTo(dAtA)
@@ -1498,406 +551,26 @@
   return dAtA[:n], nil
}
func (m *ObjInfo) MarshalTo(dAtA []byte) (int, error) {
func (m *NewRuleMessage) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if m.RcObj != nil {
   if len(m.DataType) > 0 {
      dAtA[i] = 0xa
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.RcObj.Size()))
      n13, err13 := m.RcObj.MarshalTo(dAtA[i:])
      if err13 != nil {
         return 0, err13
      }
      i += n13
      i = encodeVarintSdk(dAtA, i, uint64(len(m.DataType)))
      i += copy(dAtA[i:], m.DataType)
   }
   if m.Typ != 0 {
      dAtA[i] = 0x10
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.Typ))
   }
   if m.Prob != 0 {
      dAtA[i] = 0x1d
      i++
      encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Prob))))
      i += 4
   }
   if m.ObjID != 0 {
      dAtA[i] = 0x20
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.ObjID))
   }
   return i, nil
}
func (m *ResultFaceDetect) Marshal() (dAtA []byte, err error) {
   size := m.Size()
   dAtA = make([]byte, size)
   n, err := m.MarshalTo(dAtA)
   if err != nil {
      return nil, err
   }
   return dAtA[:n], nil
}
func (m *ResultFaceDetect) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if m.Pos != nil {
      dAtA[i] = 0xa
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.Pos.Size()))
      n14, err14 := m.Pos.MarshalTo(dAtA[i:])
      if err14 != nil {
         return 0, err14
      }
      i += n14
   }
   if m.Result != nil {
   if len(m.HandleTrack) > 0 {
      dAtA[i] = 0x12
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.Result.Size()))
      n15, err15 := m.Result.MarshalTo(dAtA[i:])
      if err15 != nil {
         return 0, err15
      }
      i += n15
      i = encodeVarintSdk(dAtA, i, uint64(len(m.HandleTrack)))
      i += copy(dAtA[i:], m.HandleTrack)
   }
   if len(m.Feats) > 0 {
      dAtA[i] = 0x1a
      i++
      i = encodeVarintSdk(dAtA, i, uint64(len(m.Feats)))
      i += copy(dAtA[i:], m.Feats)
   }
   return i, nil
}
func (m *ParamFacePos) Marshal() (dAtA []byte, err error) {
   size := m.Size()
   dAtA = make([]byte, size)
   n, err := m.MarshalTo(dAtA)
   if err != nil {
      return nil, err
   }
   return dAtA[:n], nil
}
func (m *ParamFacePos) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if len(m.Faces) > 0 {
      for _, msg := range m.Faces {
         dAtA[i] = 0xa
         i++
         i = encodeVarintSdk(dAtA, i, uint64(msg.Size()))
         n, err := msg.MarshalTo(dAtA[i:])
         if err != nil {
            return 0, err
         }
         i += n
      }
   }
   return i, nil
}
func (m *ResultFaceExtCom) Marshal() (dAtA []byte, err error) {
   size := m.Size()
   dAtA = make([]byte, size)
   n, err := m.MarshalTo(dAtA)
   if err != nil {
      return nil, err
   }
   return dAtA[:n], nil
}
func (m *ResultFaceExtCom) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if len(m.Feats) > 0 {
      dAtA[i] = 0xa
      i++
      i = encodeVarintSdk(dAtA, i, uint64(len(m.Feats)))
      i += copy(dAtA[i:], m.Feats)
   }
   if len(m.Comp) > 0 {
      dAtA[i] = 0x12
      i++
      i = encodeVarintSdk(dAtA, i, uint64(len(m.Comp)))
      i += copy(dAtA[i:], m.Comp)
   }
   if m.Pos != nil {
      dAtA[i] = 0x1a
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.Pos.Size()))
      n16, err16 := m.Pos.MarshalTo(dAtA[i:])
      if err16 != nil {
         return 0, err16
      }
      i += n16
   }
   return i, nil
}
func (m *ParamFaceFeature) Marshal() (dAtA []byte, err error) {
   size := m.Size()
   dAtA = make([]byte, size)
   n, err := m.MarshalTo(dAtA)
   if err != nil {
      return nil, err
   }
   return dAtA[:n], nil
}
func (m *ParamFaceFeature) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if len(m.ExtComp) > 0 {
      for _, msg := range m.ExtComp {
         dAtA[i] = 0x12
         i++
         i = encodeVarintSdk(dAtA, i, uint64(msg.Size()))
         n, err := msg.MarshalTo(dAtA[i:])
         if err != nil {
            return 0, err
         }
         i += n
      }
   }
   return i, nil
}
func (m *ParamYoloObj) Marshal() (dAtA []byte, err error) {
   size := m.Size()
   dAtA = make([]byte, size)
   n, err := m.MarshalTo(dAtA)
   if err != nil {
      return nil, err
   }
   return dAtA[:n], nil
}
func (m *ParamYoloObj) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if len(m.Infos) > 0 {
      for _, msg := range m.Infos {
         dAtA[i] = 0xa
         i++
         i = encodeVarintSdk(dAtA, i, uint64(msg.Size()))
         n, err := msg.MarshalTo(dAtA[i:])
         if err != nil {
            return 0, err
         }
         i += n
      }
   }
   return i, nil
}
func (m *SoInfo) Marshal() (dAtA []byte, err error) {
   size := m.Size()
   dAtA = make([]byte, size)
   n, err := m.MarshalTo(dAtA)
   if err != nil {
      return nil, err
   }
   return dAtA[:n], nil
}
func (m *SoInfo) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if len(m.Id) > 0 {
      dAtA[i] = 0xa
      i++
      i = encodeVarintSdk(dAtA, i, uint64(len(m.Id)))
      i += copy(dAtA[i:], m.Id)
   }
   if len(m.SdkId) > 0 {
      dAtA[i] = 0x12
      i++
      i = encodeVarintSdk(dAtA, i, uint64(len(m.SdkId)))
      i += copy(dAtA[i:], m.SdkId)
   }
   if len(m.SoName) > 0 {
      dAtA[i] = 0x1a
      i++
      i = encodeVarintSdk(dAtA, i, uint64(len(m.SoName)))
      i += copy(dAtA[i:], m.SoName)
   }
   return i, nil
}
func (m *PlateID) Marshal() (dAtA []byte, err error) {
   size := m.Size()
   dAtA = make([]byte, size)
   n, err := m.MarshalTo(dAtA)
   if err != nil {
      return nil, err
   }
   return dAtA[:n], nil
}
func (m *PlateID) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if len(m.License) > 0 {
      dAtA[i] = 0xa
      i++
      i = encodeVarintSdk(dAtA, i, uint64(len(m.License)))
      i += copy(dAtA[i:], m.License)
   }
   if len(m.Color) > 0 {
      dAtA[i] = 0x12
      i++
      i = encodeVarintSdk(dAtA, i, uint64(len(m.Color)))
      i += copy(dAtA[i:], m.Color)
   }
   if m.NColor != 0 {
      dAtA[i] = 0x18
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.NColor))
   }
   if m.NType != 0 {
      dAtA[i] = 0x20
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.NType))
   }
   if m.NConfidence != 0 {
      dAtA[i] = 0x28
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.NConfidence))
   }
   if m.NBright != 0 {
      dAtA[i] = 0x30
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.NBright))
   }
   if m.NDirection != 0 {
      dAtA[i] = 0x38
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.NDirection))
   }
   if m.RcLocation != nil {
      dAtA[i] = 0x42
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.RcLocation.Size()))
      n17, err17 := m.RcLocation.MarshalTo(dAtA[i:])
      if err17 != nil {
         return 0, err17
      }
      i += n17
   }
   if m.NTime != 0 {
      dAtA[i] = 0x48
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.NTime))
   }
   if m.NCarBright != 0 {
      dAtA[i] = 0x50
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.NCarBright))
   }
   if m.NCarColor != 0 {
      dAtA[i] = 0x58
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.NCarColor))
   }
   if m.NCarLogo != 0 {
      dAtA[i] = 0x60
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.NCarLogo))
   }
   if m.NCarType != 0 {
      dAtA[i] = 0x68
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.NCarType))
   }
   if len(m.PlateBin) > 0 {
      dAtA[i] = 0x72
      i++
      i = encodeVarintSdk(dAtA, i, uint64(len(m.PlateBin)))
      i += copy(dAtA[i:], m.PlateBin)
   }
   if len(m.NBinPlateWidth) > 0 {
      dAtA[i] = 0x7a
      i++
      i = encodeVarintSdk(dAtA, i, uint64(len(m.NBinPlateWidth)))
      i += copy(dAtA[i:], m.NBinPlateWidth)
   }
   if len(m.NBinPlateHeight) > 0 {
      dAtA[i] = 0x82
      i++
      dAtA[i] = 0x1
      i++
      i = encodeVarintSdk(dAtA, i, uint64(len(m.NBinPlateHeight)))
      i += copy(dAtA[i:], m.NBinPlateHeight)
   }
   if m.RcLogoLocation != nil {
      dAtA[i] = 0x8a
      i++
      dAtA[i] = 0x1
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.RcLogoLocation.Size()))
      n18, err18 := m.RcLogoLocation.MarshalTo(dAtA[i:])
      if err18 != nil {
         return 0, err18
      }
      i += n18
   }
   if len(m.NCarModel) > 0 {
      dAtA[i] = 0x92
      i++
      dAtA[i] = 0x1
      i++
      i = encodeVarintSdk(dAtA, i, uint64(len(m.NCarModel)))
      i += copy(dAtA[i:], m.NCarModel)
   }
   if len(m.NCarModelConfidence) > 0 {
      dAtA[i] = 0x9a
      i++
      dAtA[i] = 0x1
      i++
      i = encodeVarintSdk(dAtA, i, uint64(len(m.NCarModelConfidence)))
      i += copy(dAtA[i:], m.NCarModelConfidence)
   }
   return i, nil
}
func (m *PlateIDResult) Marshal() (dAtA []byte, err error) {
   size := m.Size()
   dAtA = make([]byte, size)
   n, err := m.MarshalTo(dAtA)
   if err != nil {
      return nil, err
   }
   return dAtA[:n], nil
}
func (m *PlateIDResult) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if len(m.Result) > 0 {
      for _, msg := range m.Result {
         dAtA[i] = 0xa
   if len(m.Message) > 0 {
      for _, msg := range m.Message {
         dAtA[i] = 0x1a
         i++
         i = encodeVarintSdk(dAtA, i, uint64(msg.Size()))
         n, err := msg.MarshalTo(dAtA[i:])
@@ -1946,353 +619,91 @@
   if l > 0 {
      n += 1 + l + sovSdk(uint64(l))
   }
   l = len(m.Cname)
   if l > 0 {
      n += 1 + l + sovSdk(uint64(l))
   }
   return n
}
func (m *FaceAngle) Size() (n int) {
func (m *Target) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   if m.Yaw != 0 {
      n += 1 + sovSdk(uint64(m.Yaw))
   if m.Id != 0 {
      n += 1 + sovSdk(uint64(m.Id))
   }
   if m.Pitch != 0 {
      n += 1 + sovSdk(uint64(m.Pitch))
   }
   if m.Roll != 0 {
      n += 1 + sovSdk(uint64(m.Roll))
   l = len(m.Type)
   if l > 0 {
      n += 1 + l + sovSdk(uint64(l))
   }
   if m.Confidence != 0 {
      n += 5
      n += 1 + sovSdk(uint64(m.Confidence))
   }
   return n
}
func (m *ThftResult) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   if m.Gender != 0 {
      n += 1 + sovSdk(uint64(m.Gender))
   }
   if m.Age != 0 {
      n += 1 + sovSdk(uint64(m.Age))
   }
   if m.Race != 0 {
      n += 1 + sovSdk(uint64(m.Race))
   }
   if m.Beauty != 0 {
      n += 1 + sovSdk(uint64(m.Beauty))
   }
   if m.Smile != 0 {
      n += 1 + sovSdk(uint64(m.Smile))
   }
   return n
}
func (m *FacePos) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   if m.RcFace != nil {
      l = m.RcFace.Size()
   if m.Rect != nil {
      l = m.Rect.Size()
      n += 1 + l + sovSdk(uint64(l))
   }
   if m.PtLeftEye != nil {
      l = m.PtLeftEye.Size()
      n += 1 + l + sovSdk(uint64(l))
   }
   if m.PtRightEye != nil {
      l = m.PtRightEye.Size()
      n += 1 + l + sovSdk(uint64(l))
   }
   if m.PtMouth != nil {
      l = m.PtMouth.Size()
      n += 1 + l + sovSdk(uint64(l))
   }
   if m.PtNose != nil {
      l = m.PtNose.Size()
      n += 1 + l + sovSdk(uint64(l))
   }
   if m.FAngle != nil {
      l = m.FAngle.Size()
      n += 1 + l + sovSdk(uint64(l))
   }
   if m.Quality != 0 {
      n += 1 + sovSdk(uint64(m.Quality))
   }
   l = len(m.FacialData)
   l = len(m.Feature)
   if l > 0 {
      n += 1 + l + sovSdk(uint64(l))
   }
   if m.FaceID != 0 {
      n += 1 + sovSdk(uint64(m.FaceID))
   }
   return n
}
func (m *FaceInfo) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   if m.RcFace != nil {
      l = m.RcFace.Size()
      n += 1 + l + sovSdk(uint64(l))
   }
   if m.PtLeftEye != nil {
      l = m.PtLeftEye.Size()
      n += 1 + l + sovSdk(uint64(l))
   }
   if m.PtRightEye != nil {
      l = m.PtRightEye.Size()
      n += 1 + l + sovSdk(uint64(l))
   }
   if m.PtMouth != nil {
      l = m.PtMouth.Size()
      n += 1 + l + sovSdk(uint64(l))
   }
   if m.PtNose != nil {
      l = m.PtNose.Size()
      n += 1 + l + sovSdk(uint64(l))
   }
   if m.FAngle != nil {
      l = m.FAngle.Size()
      n += 1 + l + sovSdk(uint64(l))
   }
   if m.Quality != 0 {
      n += 1 + sovSdk(uint64(m.Quality))
   }
   l = len(m.FacialData)
   if l > 0 {
      n += 1 + l + sovSdk(uint64(l))
   }
   if m.FaceID != 0 {
      n += 1 + sovSdk(uint64(m.FaceID))
   }
   return n
}
func (m *ObjInfo) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   if m.RcObj != nil {
      l = m.RcObj.Size()
      n += 1 + l + sovSdk(uint64(l))
   }
   if m.Typ != 0 {
      n += 1 + sovSdk(uint64(m.Typ))
   }
   if m.Prob != 0 {
      n += 5
   }
   if m.ObjID != 0 {
      n += 1 + sovSdk(uint64(m.ObjID))
   }
   return n
}
func (m *ResultFaceDetect) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   if m.Pos != nil {
      l = m.Pos.Size()
      n += 1 + l + sovSdk(uint64(l))
   }
   if m.Result != nil {
      l = m.Result.Size()
      n += 1 + l + sovSdk(uint64(l))
   }
   l = len(m.Feats)
   l = len(m.Attribute)
   if l > 0 {
      n += 1 + l + sovSdk(uint64(l))
   }
   return n
}
func (m *ParamFacePos) Size() (n int) {
func (m *NewSDKMessage) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   if len(m.Faces) > 0 {
      for _, e := range m.Faces {
   l = len(m.SdkID)
   if l > 0 {
      n += 1 + l + sovSdk(uint64(l))
   }
   l = len(m.SdkType)
   if l > 0 {
      n += 1 + l + sovSdk(uint64(l))
   }
   l = len(m.SdkName)
   if l > 0 {
      n += 1 + l + sovSdk(uint64(l))
   }
   if len(m.Target) > 0 {
      for _, e := range m.Target {
         l = e.Size()
         n += 1 + l + sovSdk(uint64(l))
      }
   }
   return n
}
func (m *ResultFaceExtCom) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   l = len(m.Feats)
   if l > 0 {
      n += 1 + l + sovSdk(uint64(l))
   }
   l = len(m.Comp)
   if l > 0 {
      n += 1 + l + sovSdk(uint64(l))
   }
   if m.Pos != nil {
      l = m.Pos.Size()
      n += 1 + l + sovSdk(uint64(l))
   }
   return n
}
func (m *ParamFaceFeature) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   if len(m.ExtComp) > 0 {
      for _, e := range m.ExtComp {
         l = e.Size()
         n += 1 + l + sovSdk(uint64(l))
      }
   }
   return n
}
func (m *ParamYoloObj) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   if len(m.Infos) > 0 {
      for _, e := range m.Infos {
         l = e.Size()
         n += 1 + l + sovSdk(uint64(l))
      }
   }
   return n
}
func (m *SoInfo) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   l = len(m.Id)
   if l > 0 {
      n += 1 + l + sovSdk(uint64(l))
   }
   l = len(m.SdkId)
   if l > 0 {
      n += 1 + l + sovSdk(uint64(l))
   }
   l = len(m.SoName)
   l = len(m.Timestamp)
   if l > 0 {
      n += 1 + l + sovSdk(uint64(l))
   }
   return n
}
func (m *PlateID) Size() (n int) {
func (m *NewRuleMessage) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   l = len(m.License)
   l = len(m.DataType)
   if l > 0 {
      n += 1 + l + sovSdk(uint64(l))
   }
   l = len(m.Color)
   l = len(m.HandleTrack)
   if l > 0 {
      n += 1 + l + sovSdk(uint64(l))
   }
   if m.NColor != 0 {
      n += 1 + sovSdk(uint64(m.NColor))
   }
   if m.NType != 0 {
      n += 1 + sovSdk(uint64(m.NType))
   }
   if m.NConfidence != 0 {
      n += 1 + sovSdk(uint64(m.NConfidence))
   }
   if m.NBright != 0 {
      n += 1 + sovSdk(uint64(m.NBright))
   }
   if m.NDirection != 0 {
      n += 1 + sovSdk(uint64(m.NDirection))
   }
   if m.RcLocation != nil {
      l = m.RcLocation.Size()
      n += 1 + l + sovSdk(uint64(l))
   }
   if m.NTime != 0 {
      n += 1 + sovSdk(uint64(m.NTime))
   }
   if m.NCarBright != 0 {
      n += 1 + sovSdk(uint64(m.NCarBright))
   }
   if m.NCarColor != 0 {
      n += 1 + sovSdk(uint64(m.NCarColor))
   }
   if m.NCarLogo != 0 {
      n += 1 + sovSdk(uint64(m.NCarLogo))
   }
   if m.NCarType != 0 {
      n += 1 + sovSdk(uint64(m.NCarType))
   }
   l = len(m.PlateBin)
   if l > 0 {
      n += 1 + l + sovSdk(uint64(l))
   }
   l = len(m.NBinPlateWidth)
   if l > 0 {
      n += 1 + l + sovSdk(uint64(l))
   }
   l = len(m.NBinPlateHeight)
   if l > 0 {
      n += 2 + l + sovSdk(uint64(l))
   }
   if m.RcLogoLocation != nil {
      l = m.RcLogoLocation.Size()
      n += 2 + l + sovSdk(uint64(l))
   }
   l = len(m.NCarModel)
   if l > 0 {
      n += 2 + l + sovSdk(uint64(l))
   }
   l = len(m.NCarModelConfidence)
   if l > 0 {
      n += 2 + l + sovSdk(uint64(l))
   }
   return n
}
func (m *PlateIDResult) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   if len(m.Result) > 0 {
      for _, e := range m.Result {
   if len(m.Message) > 0 {
      for _, e := range m.Message {
         l = e.Size()
         n += 1 + l + sovSdk(uint64(l))
      }
@@ -2497,1730 +908,96 @@
         }
         m.Cid = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipSdk(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *FaceAngle) Unmarshal(dAtA []byte) error {
   l := len(dAtA)
   iNdEx := 0
   for iNdEx < l {
      preIndex := iNdEx
      var wire uint64
      for shift := uint(0); ; shift += 7 {
         if shift >= 64 {
            return ErrIntOverflowSdk
         }
         if iNdEx >= l {
            return io.ErrUnexpectedEOF
         }
         b := dAtA[iNdEx]
         iNdEx++
         wire |= uint64(b&0x7F) << shift
         if b < 0x80 {
            break
         }
      }
      fieldNum := int32(wire >> 3)
      wireType := int(wire & 0x7)
      if wireType == 4 {
         return fmt.Errorf("proto: FaceAngle: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: FaceAngle: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Yaw", wireType)
         }
         m.Yaw = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Yaw |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 2:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Pitch", wireType)
         }
         m.Pitch = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Pitch |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 3:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Roll", wireType)
         }
         m.Roll = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Roll |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 4:
         if wireType != 5 {
            return fmt.Errorf("proto: wrong wireType = %d for field Confidence", wireType)
         }
         var v uint32
         if (iNdEx + 4) > l {
            return io.ErrUnexpectedEOF
         }
         v = uint32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
         iNdEx += 4
         m.Confidence = float32(math.Float32frombits(v))
      default:
         iNdEx = preIndex
         skippy, err := skipSdk(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *ThftResult) Unmarshal(dAtA []byte) error {
   l := len(dAtA)
   iNdEx := 0
   for iNdEx < l {
      preIndex := iNdEx
      var wire uint64
      for shift := uint(0); ; shift += 7 {
         if shift >= 64 {
            return ErrIntOverflowSdk
         }
         if iNdEx >= l {
            return io.ErrUnexpectedEOF
         }
         b := dAtA[iNdEx]
         iNdEx++
         wire |= uint64(b&0x7F) << shift
         if b < 0x80 {
            break
         }
      }
      fieldNum := int32(wire >> 3)
      wireType := int(wire & 0x7)
      if wireType == 4 {
         return fmt.Errorf("proto: ThftResult: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: ThftResult: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Gender", wireType)
         }
         m.Gender = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Gender |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 2:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Age", wireType)
         }
         m.Age = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Age |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 3:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Race", wireType)
         }
         m.Race = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Race |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 4:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Beauty", wireType)
         }
         m.Beauty = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Beauty |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 5:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Smile", wireType)
         }
         m.Smile = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Smile |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      default:
         iNdEx = preIndex
         skippy, err := skipSdk(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *FacePos) Unmarshal(dAtA []byte) error {
   l := len(dAtA)
   iNdEx := 0
   for iNdEx < l {
      preIndex := iNdEx
      var wire uint64
      for shift := uint(0); ; shift += 7 {
         if shift >= 64 {
            return ErrIntOverflowSdk
         }
         if iNdEx >= l {
            return io.ErrUnexpectedEOF
         }
         b := dAtA[iNdEx]
         iNdEx++
         wire |= uint64(b&0x7F) << shift
         if b < 0x80 {
            break
         }
      }
      fieldNum := int32(wire >> 3)
      wireType := int(wire & 0x7)
      if wireType == 4 {
         return fmt.Errorf("proto: FacePos: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: FacePos: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field RcFace", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.RcFace == nil {
            m.RcFace = &Rect{}
         }
         if err := m.RcFace.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 2:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field PtLeftEye", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.PtLeftEye == nil {
            m.PtLeftEye = &Point{}
         }
         if err := m.PtLeftEye.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 3:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field PtRightEye", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.PtRightEye == nil {
            m.PtRightEye = &Point{}
         }
         if err := m.PtRightEye.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 4:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field PtMouth", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.PtMouth == nil {
            m.PtMouth = &Point{}
         }
         if err := m.PtMouth.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 5:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field PtNose", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.PtNose == nil {
            m.PtNose = &Point{}
         }
         if err := m.PtNose.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 6:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field FAngle", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.FAngle == nil {
            m.FAngle = &FaceAngle{}
         }
         if err := m.FAngle.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 7:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Cname", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Cname = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipSdk(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *Target) Unmarshal(dAtA []byte) error {
   l := len(dAtA)
   iNdEx := 0
   for iNdEx < l {
      preIndex := iNdEx
      var wire uint64
      for shift := uint(0); ; shift += 7 {
         if shift >= 64 {
            return ErrIntOverflowSdk
         }
         if iNdEx >= l {
            return io.ErrUnexpectedEOF
         }
         b := dAtA[iNdEx]
         iNdEx++
         wire |= uint64(b&0x7F) << shift
         if b < 0x80 {
            break
         }
      }
      fieldNum := int32(wire >> 3)
      wireType := int(wire & 0x7)
      if wireType == 4 {
         return fmt.Errorf("proto: Target: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: Target: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Quality", wireType)
         }
         m.Quality = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Quality |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 8:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field FacialData", wireType)
         }
         var byteLen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            byteLen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if byteLen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + byteLen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.FacialData = append(m.FacialData[:0], dAtA[iNdEx:postIndex]...)
         if m.FacialData == nil {
            m.FacialData = []byte{}
         }
         iNdEx = postIndex
      case 9:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field FaceID", wireType)
         }
         m.FaceID = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.FaceID |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      default:
         iNdEx = preIndex
         skippy, err := skipSdk(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *FaceInfo) Unmarshal(dAtA []byte) error {
   l := len(dAtA)
   iNdEx := 0
   for iNdEx < l {
      preIndex := iNdEx
      var wire uint64
      for shift := uint(0); ; shift += 7 {
         if shift >= 64 {
            return ErrIntOverflowSdk
         }
         if iNdEx >= l {
            return io.ErrUnexpectedEOF
         }
         b := dAtA[iNdEx]
         iNdEx++
         wire |= uint64(b&0x7F) << shift
         if b < 0x80 {
            break
         }
      }
      fieldNum := int32(wire >> 3)
      wireType := int(wire & 0x7)
      if wireType == 4 {
         return fmt.Errorf("proto: FaceInfo: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: FaceInfo: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field RcFace", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.RcFace == nil {
            m.RcFace = &Rect{}
         }
         if err := m.RcFace.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 2:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field PtLeftEye", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.PtLeftEye == nil {
            m.PtLeftEye = &Point{}
         }
         if err := m.PtLeftEye.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 3:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field PtRightEye", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.PtRightEye == nil {
            m.PtRightEye = &Point{}
         }
         if err := m.PtRightEye.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 4:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field PtMouth", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.PtMouth == nil {
            m.PtMouth = &Point{}
         }
         if err := m.PtMouth.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 5:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field PtNose", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.PtNose == nil {
            m.PtNose = &Point{}
         }
         if err := m.PtNose.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 6:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field FAngle", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.FAngle == nil {
            m.FAngle = &FaceAngle{}
         }
         if err := m.FAngle.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 7:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Quality", wireType)
         }
         m.Quality = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Quality |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 8:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field FacialData", wireType)
         }
         var byteLen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            byteLen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if byteLen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + byteLen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.FacialData = append(m.FacialData[:0], dAtA[iNdEx:postIndex]...)
         if m.FacialData == nil {
            m.FacialData = []byte{}
         }
         iNdEx = postIndex
      case 9:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field FaceID", wireType)
         }
         m.FaceID = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.FaceID |= int64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      default:
         iNdEx = preIndex
         skippy, err := skipSdk(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *ObjInfo) Unmarshal(dAtA []byte) error {
   l := len(dAtA)
   iNdEx := 0
   for iNdEx < l {
      preIndex := iNdEx
      var wire uint64
      for shift := uint(0); ; shift += 7 {
         if shift >= 64 {
            return ErrIntOverflowSdk
         }
         if iNdEx >= l {
            return io.ErrUnexpectedEOF
         }
         b := dAtA[iNdEx]
         iNdEx++
         wire |= uint64(b&0x7F) << shift
         if b < 0x80 {
            break
         }
      }
      fieldNum := int32(wire >> 3)
      wireType := int(wire & 0x7)
      if wireType == 4 {
         return fmt.Errorf("proto: ObjInfo: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: ObjInfo: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field RcObj", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.RcObj == nil {
            m.RcObj = &Rect{}
         }
         if err := m.RcObj.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 2:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Typ", wireType)
         }
         m.Typ = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Typ |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 3:
         if wireType != 5 {
            return fmt.Errorf("proto: wrong wireType = %d for field Prob", wireType)
         }
         var v uint32
         if (iNdEx + 4) > l {
            return io.ErrUnexpectedEOF
         }
         v = uint32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
         iNdEx += 4
         m.Prob = float32(math.Float32frombits(v))
      case 4:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field ObjID", wireType)
         }
         m.ObjID = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.ObjID |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      default:
         iNdEx = preIndex
         skippy, err := skipSdk(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *ResultFaceDetect) Unmarshal(dAtA []byte) error {
   l := len(dAtA)
   iNdEx := 0
   for iNdEx < l {
      preIndex := iNdEx
      var wire uint64
      for shift := uint(0); ; shift += 7 {
         if shift >= 64 {
            return ErrIntOverflowSdk
         }
         if iNdEx >= l {
            return io.ErrUnexpectedEOF
         }
         b := dAtA[iNdEx]
         iNdEx++
         wire |= uint64(b&0x7F) << shift
         if b < 0x80 {
            break
         }
      }
      fieldNum := int32(wire >> 3)
      wireType := int(wire & 0x7)
      if wireType == 4 {
         return fmt.Errorf("proto: ResultFaceDetect: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: ResultFaceDetect: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Pos", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.Pos == nil {
            m.Pos = &FacePos{}
         }
         if err := m.Pos.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 2:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Result", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.Result == nil {
            m.Result = &ThftResult{}
         }
         if err := m.Result.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 3:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Feats", wireType)
         }
         var byteLen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            byteLen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if byteLen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + byteLen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Feats = append(m.Feats[:0], dAtA[iNdEx:postIndex]...)
         if m.Feats == nil {
            m.Feats = []byte{}
         }
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipSdk(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *ParamFacePos) Unmarshal(dAtA []byte) error {
   l := len(dAtA)
   iNdEx := 0
   for iNdEx < l {
      preIndex := iNdEx
      var wire uint64
      for shift := uint(0); ; shift += 7 {
         if shift >= 64 {
            return ErrIntOverflowSdk
         }
         if iNdEx >= l {
            return io.ErrUnexpectedEOF
         }
         b := dAtA[iNdEx]
         iNdEx++
         wire |= uint64(b&0x7F) << shift
         if b < 0x80 {
            break
         }
      }
      fieldNum := int32(wire >> 3)
      wireType := int(wire & 0x7)
      if wireType == 4 {
         return fmt.Errorf("proto: ParamFacePos: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: ParamFacePos: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Faces", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Faces = append(m.Faces, &ResultFaceDetect{})
         if err := m.Faces[len(m.Faces)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipSdk(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *ResultFaceExtCom) Unmarshal(dAtA []byte) error {
   l := len(dAtA)
   iNdEx := 0
   for iNdEx < l {
      preIndex := iNdEx
      var wire uint64
      for shift := uint(0); ; shift += 7 {
         if shift >= 64 {
            return ErrIntOverflowSdk
         }
         if iNdEx >= l {
            return io.ErrUnexpectedEOF
         }
         b := dAtA[iNdEx]
         iNdEx++
         wire |= uint64(b&0x7F) << shift
         if b < 0x80 {
            break
         }
      }
      fieldNum := int32(wire >> 3)
      wireType := int(wire & 0x7)
      if wireType == 4 {
         return fmt.Errorf("proto: ResultFaceExtCom: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: ResultFaceExtCom: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Feats", wireType)
         }
         var byteLen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            byteLen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if byteLen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + byteLen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Feats = append(m.Feats[:0], dAtA[iNdEx:postIndex]...)
         if m.Feats == nil {
            m.Feats = []byte{}
         }
         iNdEx = postIndex
      case 2:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Comp", wireType)
         }
         var byteLen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            byteLen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if byteLen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + byteLen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Comp = append(m.Comp[:0], dAtA[iNdEx:postIndex]...)
         if m.Comp == nil {
            m.Comp = []byte{}
         }
         iNdEx = postIndex
      case 3:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Pos", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.Pos == nil {
            m.Pos = &ResultFaceDetect{}
         }
         if err := m.Pos.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipSdk(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *ParamFaceFeature) Unmarshal(dAtA []byte) error {
   l := len(dAtA)
   iNdEx := 0
   for iNdEx < l {
      preIndex := iNdEx
      var wire uint64
      for shift := uint(0); ; shift += 7 {
         if shift >= 64 {
            return ErrIntOverflowSdk
         }
         if iNdEx >= l {
            return io.ErrUnexpectedEOF
         }
         b := dAtA[iNdEx]
         iNdEx++
         wire |= uint64(b&0x7F) << shift
         if b < 0x80 {
            break
         }
      }
      fieldNum := int32(wire >> 3)
      wireType := int(wire & 0x7)
      if wireType == 4 {
         return fmt.Errorf("proto: ParamFaceFeature: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: ParamFaceFeature: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 2:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field ExtComp", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.ExtComp = append(m.ExtComp, &ResultFaceExtCom{})
         if err := m.ExtComp[len(m.ExtComp)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipSdk(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *ParamYoloObj) Unmarshal(dAtA []byte) error {
   l := len(dAtA)
   iNdEx := 0
   for iNdEx < l {
      preIndex := iNdEx
      var wire uint64
      for shift := uint(0); ; shift += 7 {
         if shift >= 64 {
            return ErrIntOverflowSdk
         }
         if iNdEx >= l {
            return io.ErrUnexpectedEOF
         }
         b := dAtA[iNdEx]
         iNdEx++
         wire |= uint64(b&0x7F) << shift
         if b < 0x80 {
            break
         }
      }
      fieldNum := int32(wire >> 3)
      wireType := int(wire & 0x7)
      if wireType == 4 {
         return fmt.Errorf("proto: ParamYoloObj: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: ParamYoloObj: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Infos", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Infos = append(m.Infos, &ObjInfo{})
         if err := m.Infos[len(m.Infos)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipSdk(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *SoInfo) Unmarshal(dAtA []byte) error {
   l := len(dAtA)
   iNdEx := 0
   for iNdEx < l {
      preIndex := iNdEx
      var wire uint64
      for shift := uint(0); ; shift += 7 {
         if shift >= 64 {
            return ErrIntOverflowSdk
         }
         if iNdEx >= l {
            return io.ErrUnexpectedEOF
         }
         b := dAtA[iNdEx]
         iNdEx++
         wire |= uint64(b&0x7F) << shift
         if b < 0x80 {
            break
         }
      }
      fieldNum := int32(wire >> 3)
      wireType := int(wire & 0x7)
      if wireType == 4 {
         return fmt.Errorf("proto: SoInfo: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: SoInfo: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType)
         }
         var stringLen uint64
         m.Id = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
@@ -4230,27 +1007,14 @@
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            m.Id |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Id = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 2:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field SdkId", wireType)
            return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
@@ -4278,162 +1042,13 @@
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.SdkId = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 3:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field SoName", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.SoName = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipSdk(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *PlateID) Unmarshal(dAtA []byte) error {
   l := len(dAtA)
   iNdEx := 0
   for iNdEx < l {
      preIndex := iNdEx
      var wire uint64
      for shift := uint(0); ; shift += 7 {
         if shift >= 64 {
            return ErrIntOverflowSdk
         }
         if iNdEx >= l {
            return io.ErrUnexpectedEOF
         }
         b := dAtA[iNdEx]
         iNdEx++
         wire |= uint64(b&0x7F) << shift
         if b < 0x80 {
            break
         }
      }
      fieldNum := int32(wire >> 3)
      wireType := int(wire & 0x7)
      if wireType == 4 {
         return fmt.Errorf("proto: PlateID: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: PlateID: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field License", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.License = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 2:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Color", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Color = string(dAtA[iNdEx:postIndex])
         m.Type = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 3:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field NColor", wireType)
            return fmt.Errorf("proto: wrong wireType = %d for field Confidence", wireType)
         }
         m.NColor = 0
         m.Confidence = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
@@ -4443,16 +1058,16 @@
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.NColor |= int32(b&0x7F) << shift
            m.Confidence |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 4:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field NType", wireType)
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Rect", wireType)
         }
         m.NType = 0
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
@@ -4462,16 +1077,33 @@
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.NType |= int32(b&0x7F) << shift
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.Rect == nil {
            m.Rect = &Rect{}
         }
         if err := m.Rect.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 5:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field NConfidence", wireType)
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Feature", wireType)
         }
         m.NConfidence = 0
         var byteLen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
@@ -4481,54 +1113,31 @@
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.NConfidence |= int32(b&0x7F) << shift
            byteLen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if byteLen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + byteLen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Feature = append(m.Feature[:0], dAtA[iNdEx:postIndex]...)
         if m.Feature == nil {
            m.Feature = []byte{}
         }
         iNdEx = postIndex
      case 6:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field NBright", wireType)
         }
         m.NBright = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.NBright |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 7:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field NDirection", wireType)
         }
         m.NDirection = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.NDirection |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 8:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field RcLocation", wireType)
            return fmt.Errorf("proto: wrong wireType = %d for field Attribute", wireType)
         }
         var msglen int
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
@@ -4538,328 +1147,23 @@
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + msglen
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.RcLocation == nil {
            m.RcLocation = &Rect{}
         }
         if err := m.RcLocation.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 9:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field NTime", wireType)
         }
         m.NTime = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.NTime |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 10:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field NCarBright", wireType)
         }
         m.NCarBright = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.NCarBright |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 11:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field NCarColor", wireType)
         }
         m.NCarColor = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.NCarColor |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 12:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field NCarLogo", wireType)
         }
         m.NCarLogo = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.NCarLogo |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 13:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field NCarType", wireType)
         }
         m.NCarType = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.NCarType |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 14:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field PlateBin", wireType)
         }
         var byteLen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            byteLen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if byteLen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + byteLen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.PlateBin = append(m.PlateBin[:0], dAtA[iNdEx:postIndex]...)
         if m.PlateBin == nil {
            m.PlateBin = []byte{}
         }
         iNdEx = postIndex
      case 15:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field NBinPlateWidth", wireType)
         }
         var byteLen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            byteLen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if byteLen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + byteLen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.NBinPlateWidth = append(m.NBinPlateWidth[:0], dAtA[iNdEx:postIndex]...)
         if m.NBinPlateWidth == nil {
            m.NBinPlateWidth = []byte{}
         }
         iNdEx = postIndex
      case 16:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field NBinPlateHeight", wireType)
         }
         var byteLen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            byteLen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if byteLen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + byteLen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.NBinPlateHeight = append(m.NBinPlateHeight[:0], dAtA[iNdEx:postIndex]...)
         if m.NBinPlateHeight == nil {
            m.NBinPlateHeight = []byte{}
         }
         iNdEx = postIndex
      case 17:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field RcLogoLocation", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.RcLogoLocation == nil {
            m.RcLogoLocation = &Rect{}
         }
         if err := m.RcLogoLocation.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 18:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field NCarModel", wireType)
         }
         var byteLen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            byteLen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if byteLen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + byteLen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.NCarModel = append(m.NCarModel[:0], dAtA[iNdEx:postIndex]...)
         if m.NCarModel == nil {
            m.NCarModel = []byte{}
         }
         iNdEx = postIndex
      case 19:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field NCarModelConfidence", wireType)
         }
         var byteLen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            byteLen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if byteLen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + byteLen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.NCarModelConfidence = append(m.NCarModelConfidence[:0], dAtA[iNdEx:postIndex]...)
         if m.NCarModelConfidence == nil {
            m.NCarModelConfidence = []byte{}
         }
         m.Attribute = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      default:
         iNdEx = preIndex
@@ -4885,7 +1189,7 @@
   }
   return nil
}
func (m *PlateIDResult) Unmarshal(dAtA []byte) error {
func (m *NewSDKMessage) Unmarshal(dAtA []byte) error {
   l := len(dAtA)
   iNdEx := 0
   for iNdEx < l {
@@ -4908,15 +1212,111 @@
      fieldNum := int32(wire >> 3)
      wireType := int(wire & 0x7)
      if wireType == 4 {
         return fmt.Errorf("proto: PlateIDResult: wiretype end group for non-group")
         return fmt.Errorf("proto: NewSDKMessage: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: PlateIDResult: illegal tag %d (wire type %d)", fieldNum, wire)
         return fmt.Errorf("proto: NewSDKMessage: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Result", wireType)
            return fmt.Errorf("proto: wrong wireType = %d for field SdkID", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.SdkID = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 2:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field SdkType", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.SdkType = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 3:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field SdkName", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.SdkName = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 4:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Target", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
@@ -4943,8 +1343,191 @@
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Result = append(m.Result, &PlateID{})
         if err := m.Result[len(m.Result)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
         m.Target = append(m.Target, &Target{})
         if err := m.Target[len(m.Target)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 5:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Timestamp = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipSdk(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *NewRuleMessage) Unmarshal(dAtA []byte) error {
   l := len(dAtA)
   iNdEx := 0
   for iNdEx < l {
      preIndex := iNdEx
      var wire uint64
      for shift := uint(0); ; shift += 7 {
         if shift >= 64 {
            return ErrIntOverflowSdk
         }
         if iNdEx >= l {
            return io.ErrUnexpectedEOF
         }
         b := dAtA[iNdEx]
         iNdEx++
         wire |= uint64(b&0x7F) << shift
         if b < 0x80 {
            break
         }
      }
      fieldNum := int32(wire >> 3)
      wireType := int(wire & 0x7)
      if wireType == 4 {
         return fmt.Errorf("proto: NewRuleMessage: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: NewRuleMessage: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field DataType", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.DataType = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 2:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field HandleTrack", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.HandleTrack = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 3:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Message = append(m.Message, &NewSDKMessage{})
         if err := m.Message[len(m.Message)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex