| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524 | // Code generated by protoc-gen-go. DO NOT EDIT.// versions:// 	protoc-gen-go v1.28.1// 	protoc        v3.21.9// source: backend/operation/feed_formula.protopackage operationPbimport (	protoreflect "google.golang.org/protobuf/reflect/protoreflect"	protoimpl "google.golang.org/protobuf/runtime/protoimpl"	reflect "reflect"	sync "sync")const (	// Verify that this generated code is sufficiently up-to-date.	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)	// Verify that runtime/protoimpl is sufficiently up-to-date.	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20))type AddFeedFormulaRequest struct {	state         protoimpl.MessageState	sizeCache     protoimpl.SizeCache	unknownFields protoimpl.UnknownFields	Id                 int32                     `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`	Name               string                    `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`                                                                                                     // 名称	EncodeNumber       string                    `protobuf:"bytes,3,opt,name=encode_number,json=encodeNumber,proto3" json:"encode_number,omitempty"`                                                                 // 编码	Colour             string                    `protobuf:"bytes,4,opt,name=colour,proto3" json:"colour,omitempty"`                                                                                                 // 颜色	CattleCategoryId   CattleCategoryParent_Kind `protobuf:"varint,5,opt,name=cattle_category_id,json=cattleCategoryId,proto3,enum=backend.operation.CattleCategoryParent_Kind" json:"cattle_category_id,omitempty"` // 畜牧类别id	CattleCategoryName string                    `protobuf:"bytes,6,opt,name=cattle_category_name,json=cattleCategoryName,proto3" json:"cattle_category_name,omitempty"`                                             // 畜牧类型名称	FormulaTypeId      int32                     `protobuf:"varint,7,opt,name=formula_type_id,json=formulaTypeId,proto3" json:"formula_type_id,omitempty"`                                                           // 配方类型id	FormulaTypeName    string                    `protobuf:"bytes,8,opt,name=formula_type_name,json=formulaTypeName,proto3" json:"formula_type_name,omitempty"`                                                      // 配方类型名称	DataSourceId       DataSource_Kind           `protobuf:"varint,9,opt,name=data_source_id,json=dataSourceId,proto3,enum=backend.operation.DataSource_Kind" json:"data_source_id,omitempty"`                       // 数据来源	DataSourceName     string                    `protobuf:"bytes,10,opt,name=data_source_name,json=dataSourceName,proto3" json:"data_source_name,omitempty"`                                                        // 数据来源	Remarks            string                    `protobuf:"bytes,11,opt,name=remarks,proto3" json:"remarks,omitempty"`                                                                                              // 备注	Version            int32                     `protobuf:"varint,12,opt,name=version,proto3" json:"version,omitempty"`                                                                                             // 版本号	IsShow             IsShow_Kind               `protobuf:"varint,13,opt,name=is_show,json=isShow,proto3,enum=backend.operation.IsShow_Kind" json:"is_show,omitempty"`                                              // 是否启用	IsModify           IsShow_Kind               `protobuf:"varint,14,opt,name=is_modify,json=isModify,proto3,enum=backend.operation.IsShow_Kind" json:"is_modify,omitempty"`                                        // 是否可修改	CreatedAt          int32                     `protobuf:"varint,15,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`                                                                        // 创建时间	CreatedAtFormat    string                    `protobuf:"bytes,16,opt,name=created_at_format,json=createdAtFormat,proto3" json:"created_at_format,omitempty"`                                                     // 创建时间格式化	PastureName        string                    `protobuf:"bytes,17,opt,name=pasture_name,json=pastureName,proto3" json:"pasture_name,omitempty"`                                                                   // 牧场名称}func (x *AddFeedFormulaRequest) Reset() {	*x = AddFeedFormulaRequest{}	if protoimpl.UnsafeEnabled {		mi := &file_backend_operation_feed_formula_proto_msgTypes[0]		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))		ms.StoreMessageInfo(mi)	}}func (x *AddFeedFormulaRequest) String() string {	return protoimpl.X.MessageStringOf(x)}func (*AddFeedFormulaRequest) ProtoMessage() {}func (x *AddFeedFormulaRequest) ProtoReflect() protoreflect.Message {	mi := &file_backend_operation_feed_formula_proto_msgTypes[0]	if protoimpl.UnsafeEnabled && x != nil {		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))		if ms.LoadMessageInfo() == nil {			ms.StoreMessageInfo(mi)		}		return ms	}	return mi.MessageOf(x)}// Deprecated: Use AddFeedFormulaRequest.ProtoReflect.Descriptor instead.func (*AddFeedFormulaRequest) Descriptor() ([]byte, []int) {	return file_backend_operation_feed_formula_proto_rawDescGZIP(), []int{0}}func (x *AddFeedFormulaRequest) GetId() int32 {	if x != nil {		return x.Id	}	return 0}func (x *AddFeedFormulaRequest) GetName() string {	if x != nil {		return x.Name	}	return ""}func (x *AddFeedFormulaRequest) GetEncodeNumber() string {	if x != nil {		return x.EncodeNumber	}	return ""}func (x *AddFeedFormulaRequest) GetColour() string {	if x != nil {		return x.Colour	}	return ""}func (x *AddFeedFormulaRequest) GetCattleCategoryId() CattleCategoryParent_Kind {	if x != nil {		return x.CattleCategoryId	}	return CattleCategoryParent_INVALID}func (x *AddFeedFormulaRequest) GetCattleCategoryName() string {	if x != nil {		return x.CattleCategoryName	}	return ""}func (x *AddFeedFormulaRequest) GetFormulaTypeId() int32 {	if x != nil {		return x.FormulaTypeId	}	return 0}func (x *AddFeedFormulaRequest) GetFormulaTypeName() string {	if x != nil {		return x.FormulaTypeName	}	return ""}func (x *AddFeedFormulaRequest) GetDataSourceId() DataSource_Kind {	if x != nil {		return x.DataSourceId	}	return DataSource_INVALID}func (x *AddFeedFormulaRequest) GetDataSourceName() string {	if x != nil {		return x.DataSourceName	}	return ""}func (x *AddFeedFormulaRequest) GetRemarks() string {	if x != nil {		return x.Remarks	}	return ""}func (x *AddFeedFormulaRequest) GetVersion() int32 {	if x != nil {		return x.Version	}	return 0}func (x *AddFeedFormulaRequest) GetIsShow() IsShow_Kind {	if x != nil {		return x.IsShow	}	return IsShow_INVALID}func (x *AddFeedFormulaRequest) GetIsModify() IsShow_Kind {	if x != nil {		return x.IsModify	}	return IsShow_INVALID}func (x *AddFeedFormulaRequest) GetCreatedAt() int32 {	if x != nil {		return x.CreatedAt	}	return 0}func (x *AddFeedFormulaRequest) GetCreatedAtFormat() string {	if x != nil {		return x.CreatedAtFormat	}	return ""}func (x *AddFeedFormulaRequest) GetPastureName() string {	if x != nil {		return x.PastureName	}	return ""}type SearchFeedFormulaRequest struct {	state         protoimpl.MessageState	sizeCache     protoimpl.SizeCache	unknownFields protoimpl.UnknownFields	CattleCategoryId int32            `protobuf:"varint,1,opt,name=cattle_category_id,json=cattleCategoryId,proto3" json:"cattle_category_id,omitempty"`    // 分类id	FormulaTypeId    int32            `protobuf:"varint,2,opt,name=formula_type_id,json=formulaTypeId,proto3" json:"formula_type_id,omitempty"`             // 配方类型id	DataSource       int32            `protobuf:"varint,3,opt,name=data_source,json=dataSource,proto3" json:"data_source,omitempty"`                        // 饲料来源	IsShow           IsShow_Kind      `protobuf:"varint,4,opt,name=is_show,json=isShow,proto3,enum=backend.operation.IsShow_Kind" json:"is_show,omitempty"` // 是否启用	Name             string           `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"`                                                       // 配方名称	Remarks          string           `protobuf:"bytes,6,opt,name=remarks,proto3" json:"remarks,omitempty"`                                                 // 备注	Pagination       *PaginationModel `protobuf:"bytes,7,opt,name=pagination,proto3" json:"pagination,omitempty"`                                           // 分页}func (x *SearchFeedFormulaRequest) Reset() {	*x = SearchFeedFormulaRequest{}	if protoimpl.UnsafeEnabled {		mi := &file_backend_operation_feed_formula_proto_msgTypes[1]		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))		ms.StoreMessageInfo(mi)	}}func (x *SearchFeedFormulaRequest) String() string {	return protoimpl.X.MessageStringOf(x)}func (*SearchFeedFormulaRequest) ProtoMessage() {}func (x *SearchFeedFormulaRequest) ProtoReflect() protoreflect.Message {	mi := &file_backend_operation_feed_formula_proto_msgTypes[1]	if protoimpl.UnsafeEnabled && x != nil {		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))		if ms.LoadMessageInfo() == nil {			ms.StoreMessageInfo(mi)		}		return ms	}	return mi.MessageOf(x)}// Deprecated: Use SearchFeedFormulaRequest.ProtoReflect.Descriptor instead.func (*SearchFeedFormulaRequest) Descriptor() ([]byte, []int) {	return file_backend_operation_feed_formula_proto_rawDescGZIP(), []int{1}}func (x *SearchFeedFormulaRequest) GetCattleCategoryId() int32 {	if x != nil {		return x.CattleCategoryId	}	return 0}func (x *SearchFeedFormulaRequest) GetFormulaTypeId() int32 {	if x != nil {		return x.FormulaTypeId	}	return 0}func (x *SearchFeedFormulaRequest) GetDataSource() int32 {	if x != nil {		return x.DataSource	}	return 0}func (x *SearchFeedFormulaRequest) GetIsShow() IsShow_Kind {	if x != nil {		return x.IsShow	}	return IsShow_INVALID}func (x *SearchFeedFormulaRequest) GetName() string {	if x != nil {		return x.Name	}	return ""}func (x *SearchFeedFormulaRequest) GetRemarks() string {	if x != nil {		return x.Remarks	}	return ""}func (x *SearchFeedFormulaRequest) GetPagination() *PaginationModel {	if x != nil {		return x.Pagination	}	return nil}type SearchFeedFormulaListResponse struct {	state         protoimpl.MessageState	sizeCache     protoimpl.SizeCache	unknownFields protoimpl.UnknownFields	Code int32                      `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`	Msg  string                     `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"`	Data *SearchFeedFormulaListData `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`}func (x *SearchFeedFormulaListResponse) Reset() {	*x = SearchFeedFormulaListResponse{}	if protoimpl.UnsafeEnabled {		mi := &file_backend_operation_feed_formula_proto_msgTypes[2]		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))		ms.StoreMessageInfo(mi)	}}func (x *SearchFeedFormulaListResponse) String() string {	return protoimpl.X.MessageStringOf(x)}func (*SearchFeedFormulaListResponse) ProtoMessage() {}func (x *SearchFeedFormulaListResponse) ProtoReflect() protoreflect.Message {	mi := &file_backend_operation_feed_formula_proto_msgTypes[2]	if protoimpl.UnsafeEnabled && x != nil {		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))		if ms.LoadMessageInfo() == nil {			ms.StoreMessageInfo(mi)		}		return ms	}	return mi.MessageOf(x)}// Deprecated: Use SearchFeedFormulaListResponse.ProtoReflect.Descriptor instead.func (*SearchFeedFormulaListResponse) Descriptor() ([]byte, []int) {	return file_backend_operation_feed_formula_proto_rawDescGZIP(), []int{2}}func (x *SearchFeedFormulaListResponse) GetCode() int32 {	if x != nil {		return x.Code	}	return 0}func (x *SearchFeedFormulaListResponse) GetMsg() string {	if x != nil {		return x.Msg	}	return ""}func (x *SearchFeedFormulaListResponse) GetData() *SearchFeedFormulaListData {	if x != nil {		return x.Data	}	return nil}type SearchFeedFormulaListData struct {	state         protoimpl.MessageState	sizeCache     protoimpl.SizeCache	unknownFields protoimpl.UnknownFields	Page     int32                    `protobuf:"varint,1,opt,name=page,proto3" json:"page,omitempty"`	PageSize int32                    `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`	Total    int32                    `protobuf:"varint,3,opt,name=total,proto3" json:"total,omitempty"`	List     []*AddFeedFormulaRequest `protobuf:"bytes,4,rep,name=list,proto3" json:"list,omitempty"`}func (x *SearchFeedFormulaListData) Reset() {	*x = SearchFeedFormulaListData{}	if protoimpl.UnsafeEnabled {		mi := &file_backend_operation_feed_formula_proto_msgTypes[3]		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))		ms.StoreMessageInfo(mi)	}}func (x *SearchFeedFormulaListData) String() string {	return protoimpl.X.MessageStringOf(x)}func (*SearchFeedFormulaListData) ProtoMessage() {}func (x *SearchFeedFormulaListData) ProtoReflect() protoreflect.Message {	mi := &file_backend_operation_feed_formula_proto_msgTypes[3]	if protoimpl.UnsafeEnabled && x != nil {		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))		if ms.LoadMessageInfo() == nil {			ms.StoreMessageInfo(mi)		}		return ms	}	return mi.MessageOf(x)}// Deprecated: Use SearchFeedFormulaListData.ProtoReflect.Descriptor instead.func (*SearchFeedFormulaListData) Descriptor() ([]byte, []int) {	return file_backend_operation_feed_formula_proto_rawDescGZIP(), []int{3}}func (x *SearchFeedFormulaListData) GetPage() int32 {	if x != nil {		return x.Page	}	return 0}func (x *SearchFeedFormulaListData) GetPageSize() int32 {	if x != nil {		return x.PageSize	}	return 0}func (x *SearchFeedFormulaListData) GetTotal() int32 {	if x != nil {		return x.Total	}	return 0}func (x *SearchFeedFormulaListData) GetList() []*AddFeedFormulaRequest {	if x != nil {		return x.List	}	return nil}// 是否启用type IsShowModifyFeedFormula struct {	state         protoimpl.MessageState	sizeCache     protoimpl.SizeCache	unknownFields protoimpl.UnknownFields	FeedFormulaId int32       `protobuf:"varint,1,opt,name=feed_formula_id,json=feedFormulaId,proto3" json:"feed_formula_id,omitempty"`	IsShow        IsShow_Kind `protobuf:"varint,2,opt,name=is_show,json=isShow,proto3,enum=backend.operation.IsShow_Kind" json:"is_show,omitempty"`	EditType      int32       `protobuf:"varint,3,opt,name=edit_type,json=editType,proto3" json:"edit_type,omitempty"` // 1 更新是否启用 2 更新 modify}func (x *IsShowModifyFeedFormula) Reset() {	*x = IsShowModifyFeedFormula{}	if protoimpl.UnsafeEnabled {		mi := &file_backend_operation_feed_formula_proto_msgTypes[4]		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))		ms.StoreMessageInfo(mi)	}}func (x *IsShowModifyFeedFormula) String() string {	return protoimpl.X.MessageStringOf(x)}func (*IsShowModifyFeedFormula) ProtoMessage() {}func (x *IsShowModifyFeedFormula) ProtoReflect() protoreflect.Message {	mi := &file_backend_operation_feed_formula_proto_msgTypes[4]	if protoimpl.UnsafeEnabled && x != nil {		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))		if ms.LoadMessageInfo() == nil {			ms.StoreMessageInfo(mi)		}		return ms	}	return mi.MessageOf(x)}// Deprecated: Use IsShowModifyFeedFormula.ProtoReflect.Descriptor instead.func (*IsShowModifyFeedFormula) Descriptor() ([]byte, []int) {	return file_backend_operation_feed_formula_proto_rawDescGZIP(), []int{4}}func (x *IsShowModifyFeedFormula) GetFeedFormulaId() int32 {	if x != nil {		return x.FeedFormulaId	}	return 0}func (x *IsShowModifyFeedFormula) GetIsShow() IsShow_Kind {	if x != nil {		return x.IsShow	}	return IsShow_INVALID}func (x *IsShowModifyFeedFormula) GetEditType() int32 {	if x != nil {		return x.EditType	}	return 0}// 配方编码type UniqueID struct {	state         protoimpl.MessageState	sizeCache     protoimpl.SizeCache	unknownFields protoimpl.UnknownFields	Code int32                `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`	Msg  string               `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"`	Data *UniqueID_UniqueData `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`}func (x *UniqueID) Reset() {	*x = UniqueID{}	if protoimpl.UnsafeEnabled {		mi := &file_backend_operation_feed_formula_proto_msgTypes[5]		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))		ms.StoreMessageInfo(mi)	}}func (x *UniqueID) String() string {	return protoimpl.X.MessageStringOf(x)}func (*UniqueID) ProtoMessage() {}func (x *UniqueID) ProtoReflect() protoreflect.Message {	mi := &file_backend_operation_feed_formula_proto_msgTypes[5]	if protoimpl.UnsafeEnabled && x != nil {		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))		if ms.LoadMessageInfo() == nil {			ms.StoreMessageInfo(mi)		}		return ms	}	return mi.MessageOf(x)}// Deprecated: Use UniqueID.ProtoReflect.Descriptor instead.func (*UniqueID) Descriptor() ([]byte, []int) {	return file_backend_operation_feed_formula_proto_rawDescGZIP(), []int{5}}func (x *UniqueID) GetCode() int32 {	if x != nil {		return x.Code	}	return 0}func (x *UniqueID) GetMsg() string {	if x != nil {		return x.Msg	}	return ""}func (x *UniqueID) GetData() *UniqueID_UniqueData {	if x != nil {		return x.Data	}	return nil}// DistributeFeedFormulaRequest 饲料配方下发type DistributeFeedFormulaRequest struct {	state         protoimpl.MessageState	sizeCache     protoimpl.SizeCache	unknownFields protoimpl.UnknownFields	PastureIds     []int32 `protobuf:"varint,1,rep,packed,name=pasture_ids,json=pastureIds,proto3" json:"pasture_ids,omitempty"`               // 牧场ids集合	FeedFormulaIds []int32 `protobuf:"varint,2,rep,packed,name=feed_formula_ids,json=feedFormulaIds,proto3" json:"feed_formula_ids,omitempty"` // 配方ids集合}func (x *DistributeFeedFormulaRequest) Reset() {	*x = DistributeFeedFormulaRequest{}	if protoimpl.UnsafeEnabled {		mi := &file_backend_operation_feed_formula_proto_msgTypes[6]		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))		ms.StoreMessageInfo(mi)	}}func (x *DistributeFeedFormulaRequest) String() string {	return protoimpl.X.MessageStringOf(x)}func (*DistributeFeedFormulaRequest) ProtoMessage() {}func (x *DistributeFeedFormulaRequest) ProtoReflect() protoreflect.Message {	mi := &file_backend_operation_feed_formula_proto_msgTypes[6]	if protoimpl.UnsafeEnabled && x != nil {		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))		if ms.LoadMessageInfo() == nil {			ms.StoreMessageInfo(mi)		}		return ms	}	return mi.MessageOf(x)}// Deprecated: Use DistributeFeedFormulaRequest.ProtoReflect.Descriptor instead.func (*DistributeFeedFormulaRequest) Descriptor() ([]byte, []int) {	return file_backend_operation_feed_formula_proto_rawDescGZIP(), []int{6}}func (x *DistributeFeedFormulaRequest) GetPastureIds() []int32 {	if x != nil {		return x.PastureIds	}	return nil}func (x *DistributeFeedFormulaRequest) GetFeedFormulaIds() []int32 {	if x != nil {		return x.FeedFormulaIds	}	return nil}// 配方使用概况type FeedFormulaUsageRequest struct {	state         protoimpl.MessageState	sizeCache     protoimpl.SizeCache	unknownFields protoimpl.UnknownFields	FeedFormulaId int32  `protobuf:"varint,1,opt,name=feed_formula_id,json=feedFormulaId,proto3" json:"feed_formula_id,omitempty"` // 饲料配方id	StartTime     string `protobuf:"bytes,2,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`                // 开始时间	EndTime       string `protobuf:"bytes,3,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`                      // 结束时间	PastureId     int32  `protobuf:"varint,4,opt,name=pasture_id,json=pastureId,proto3" json:"pasture_id,omitempty"`               // 牧场id}func (x *FeedFormulaUsageRequest) Reset() {	*x = FeedFormulaUsageRequest{}	if protoimpl.UnsafeEnabled {		mi := &file_backend_operation_feed_formula_proto_msgTypes[7]		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))		ms.StoreMessageInfo(mi)	}}func (x *FeedFormulaUsageRequest) String() string {	return protoimpl.X.MessageStringOf(x)}func (*FeedFormulaUsageRequest) ProtoMessage() {}func (x *FeedFormulaUsageRequest) ProtoReflect() protoreflect.Message {	mi := &file_backend_operation_feed_formula_proto_msgTypes[7]	if protoimpl.UnsafeEnabled && x != nil {		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))		if ms.LoadMessageInfo() == nil {			ms.StoreMessageInfo(mi)		}		return ms	}	return mi.MessageOf(x)}// Deprecated: Use FeedFormulaUsageRequest.ProtoReflect.Descriptor instead.func (*FeedFormulaUsageRequest) Descriptor() ([]byte, []int) {	return file_backend_operation_feed_formula_proto_rawDescGZIP(), []int{7}}func (x *FeedFormulaUsageRequest) GetFeedFormulaId() int32 {	if x != nil {		return x.FeedFormulaId	}	return 0}func (x *FeedFormulaUsageRequest) GetStartTime() string {	if x != nil {		return x.StartTime	}	return ""}func (x *FeedFormulaUsageRequest) GetEndTime() string {	if x != nil {		return x.EndTime	}	return ""}func (x *FeedFormulaUsageRequest) GetPastureId() int32 {	if x != nil {		return x.PastureId	}	return 0}// 配方使用概况type FeedFormulaUsageResponse struct {	state         protoimpl.MessageState	sizeCache     protoimpl.SizeCache	unknownFields protoimpl.UnknownFields	Code int32                   `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`	Msg  string                  `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"`	Data []*FeedFormulaUsageList `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"`}func (x *FeedFormulaUsageResponse) Reset() {	*x = FeedFormulaUsageResponse{}	if protoimpl.UnsafeEnabled {		mi := &file_backend_operation_feed_formula_proto_msgTypes[8]		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))		ms.StoreMessageInfo(mi)	}}func (x *FeedFormulaUsageResponse) String() string {	return protoimpl.X.MessageStringOf(x)}func (*FeedFormulaUsageResponse) ProtoMessage() {}func (x *FeedFormulaUsageResponse) ProtoReflect() protoreflect.Message {	mi := &file_backend_operation_feed_formula_proto_msgTypes[8]	if protoimpl.UnsafeEnabled && x != nil {		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))		if ms.LoadMessageInfo() == nil {			ms.StoreMessageInfo(mi)		}		return ms	}	return mi.MessageOf(x)}// Deprecated: Use FeedFormulaUsageResponse.ProtoReflect.Descriptor instead.func (*FeedFormulaUsageResponse) Descriptor() ([]byte, []int) {	return file_backend_operation_feed_formula_proto_rawDescGZIP(), []int{8}}func (x *FeedFormulaUsageResponse) GetCode() int32 {	if x != nil {		return x.Code	}	return 0}func (x *FeedFormulaUsageResponse) GetMsg() string {	if x != nil {		return x.Msg	}	return ""}func (x *FeedFormulaUsageResponse) GetData() []*FeedFormulaUsageList {	if x != nil {		return x.Data	}	return nil}// 配方使用概况type FeedFormulaUsageList struct {	state         protoimpl.MessageState	sizeCache     protoimpl.SizeCache	unknownFields protoimpl.UnknownFields	PastureId                   int32  `protobuf:"varint,1,opt,name=pasture_id,json=pastureId,proto3" json:"pasture_id,omitempty"`                                                          // 牧场id	PastureName                 string `protobuf:"bytes,2,opt,name=pasture_name,json=pastureName,proto3" json:"pasture_name,omitempty"`                                                     // 牧场名称	MixedFodderAccurateRatio    string `protobuf:"bytes,3,opt,name=mixed_fodder_accurate_ratio,json=mixedFodderAccurateRatio,proto3" json:"mixed_fodder_accurate_ratio,omitempty"`          // 混料准确率	MixedFodderCorrectRatio     string `protobuf:"bytes,4,opt,name=mixed_fodder_correct_ratio,json=mixedFodderCorrectRatio,proto3" json:"mixed_fodder_correct_ratio,omitempty"`             // 混料正确率	SprinkleFodderAccurateRatio string `protobuf:"bytes,5,opt,name=sprinkle_fodder_accurate_ratio,json=sprinkleFodderAccurateRatio,proto3" json:"sprinkle_fodder_accurate_ratio,omitempty"` // 撒料准确率	SprinkleFodderCorrectRatio  string `protobuf:"bytes,6,opt,name=sprinkle_fodder_correct_ratio,json=sprinkleFodderCorrectRatio,proto3" json:"sprinkle_fodder_correct_ratio,omitempty"`    // 撒料正确率	AddFeedTime                 string `protobuf:"bytes,7,opt,name=add_feed_time,json=addFeedTime,proto3" json:"add_feed_time,omitempty"`                                                   // 加料时间	SprinkleTime                string `protobuf:"bytes,8,opt,name=sprinkle_time,json=sprinkleTime,proto3" json:"sprinkle_time,omitempty"`                                                  // 撒料时间	StirTime                    string `protobuf:"bytes,9,opt,name=stir_time,json=stirTime,proto3" json:"stir_time,omitempty"`                                                              // 搅拌延迟时间	LastEditTime                string `protobuf:"bytes,10,opt,name=last_edit_time,json=lastEditTime,proto3" json:"last_edit_time,omitempty"`                                               // 最近一次修改配方时间}func (x *FeedFormulaUsageList) Reset() {	*x = FeedFormulaUsageList{}	if protoimpl.UnsafeEnabled {		mi := &file_backend_operation_feed_formula_proto_msgTypes[9]		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))		ms.StoreMessageInfo(mi)	}}func (x *FeedFormulaUsageList) String() string {	return protoimpl.X.MessageStringOf(x)}func (*FeedFormulaUsageList) ProtoMessage() {}func (x *FeedFormulaUsageList) ProtoReflect() protoreflect.Message {	mi := &file_backend_operation_feed_formula_proto_msgTypes[9]	if protoimpl.UnsafeEnabled && x != nil {		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))		if ms.LoadMessageInfo() == nil {			ms.StoreMessageInfo(mi)		}		return ms	}	return mi.MessageOf(x)}// Deprecated: Use FeedFormulaUsageList.ProtoReflect.Descriptor instead.func (*FeedFormulaUsageList) Descriptor() ([]byte, []int) {	return file_backend_operation_feed_formula_proto_rawDescGZIP(), []int{9}}func (x *FeedFormulaUsageList) GetPastureId() int32 {	if x != nil {		return x.PastureId	}	return 0}func (x *FeedFormulaUsageList) GetPastureName() string {	if x != nil {		return x.PastureName	}	return ""}func (x *FeedFormulaUsageList) GetMixedFodderAccurateRatio() string {	if x != nil {		return x.MixedFodderAccurateRatio	}	return ""}func (x *FeedFormulaUsageList) GetMixedFodderCorrectRatio() string {	if x != nil {		return x.MixedFodderCorrectRatio	}	return ""}func (x *FeedFormulaUsageList) GetSprinkleFodderAccurateRatio() string {	if x != nil {		return x.SprinkleFodderAccurateRatio	}	return ""}func (x *FeedFormulaUsageList) GetSprinkleFodderCorrectRatio() string {	if x != nil {		return x.SprinkleFodderCorrectRatio	}	return ""}func (x *FeedFormulaUsageList) GetAddFeedTime() string {	if x != nil {		return x.AddFeedTime	}	return ""}func (x *FeedFormulaUsageList) GetSprinkleTime() string {	if x != nil {		return x.SprinkleTime	}	return ""}func (x *FeedFormulaUsageList) GetStirTime() string {	if x != nil {		return x.StirTime	}	return ""}func (x *FeedFormulaUsageList) GetLastEditTime() string {	if x != nil {		return x.LastEditTime	}	return ""}type PastureFeedFormulaUsageResponse struct {	state         protoimpl.MessageState	sizeCache     protoimpl.SizeCache	unknownFields protoimpl.UnknownFields	Code int32        `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`	Msg  string       `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"`	Data *PastureData `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`}func (x *PastureFeedFormulaUsageResponse) Reset() {	*x = PastureFeedFormulaUsageResponse{}	if protoimpl.UnsafeEnabled {		mi := &file_backend_operation_feed_formula_proto_msgTypes[10]		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))		ms.StoreMessageInfo(mi)	}}func (x *PastureFeedFormulaUsageResponse) String() string {	return protoimpl.X.MessageStringOf(x)}func (*PastureFeedFormulaUsageResponse) ProtoMessage() {}func (x *PastureFeedFormulaUsageResponse) ProtoReflect() protoreflect.Message {	mi := &file_backend_operation_feed_formula_proto_msgTypes[10]	if protoimpl.UnsafeEnabled && x != nil {		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))		if ms.LoadMessageInfo() == nil {			ms.StoreMessageInfo(mi)		}		return ms	}	return mi.MessageOf(x)}// Deprecated: Use PastureFeedFormulaUsageResponse.ProtoReflect.Descriptor instead.func (*PastureFeedFormulaUsageResponse) Descriptor() ([]byte, []int) {	return file_backend_operation_feed_formula_proto_rawDescGZIP(), []int{10}}func (x *PastureFeedFormulaUsageResponse) GetCode() int32 {	if x != nil {		return x.Code	}	return 0}func (x *PastureFeedFormulaUsageResponse) GetMsg() string {	if x != nil {		return x.Msg	}	return ""}func (x *PastureFeedFormulaUsageResponse) GetData() *PastureData {	if x != nil {		return x.Data	}	return nil}type PastureData struct {	state         protoimpl.MessageState	sizeCache     protoimpl.SizeCache	unknownFields protoimpl.UnknownFields	MixedFodderAccurateRatio    string `protobuf:"bytes,3,opt,name=mixed_fodder_accurate_ratio,json=mixedFodderAccurateRatio,proto3" json:"mixed_fodder_accurate_ratio,omitempty"`          // 混料准确率	MixedFodderCorrectRatio     string `protobuf:"bytes,4,opt,name=mixed_fodder_correct_ratio,json=mixedFodderCorrectRatio,proto3" json:"mixed_fodder_correct_ratio,omitempty"`             // 混料正确率	SprinkleFodderAccurateRatio string `protobuf:"bytes,5,opt,name=sprinkle_fodder_accurate_ratio,json=sprinkleFodderAccurateRatio,proto3" json:"sprinkle_fodder_accurate_ratio,omitempty"` // 撒料准确率	SprinkleFodderCorrectRatio  string `protobuf:"bytes,6,opt,name=sprinkle_fodder_correct_ratio,json=sprinkleFodderCorrectRatio,proto3" json:"sprinkle_fodder_correct_ratio,omitempty"`    // 撒料正确率	AddFeedTime                 string `protobuf:"bytes,7,opt,name=add_feed_time,json=addFeedTime,proto3" json:"add_feed_time,omitempty"`                                                   // 加料时间	SprinkleTime                string `protobuf:"bytes,8,opt,name=sprinkle_time,json=sprinkleTime,proto3" json:"sprinkle_time,omitempty"`                                                  // 撒料时间	StirTime                    string `protobuf:"bytes,9,opt,name=stir_time,json=stirTime,proto3" json:"stir_time,omitempty"`                                                              // 搅拌延迟时间	LastEditTime                string `protobuf:"bytes,10,opt,name=last_edit_time,json=lastEditTime,proto3" json:"last_edit_time,omitempty"`                                               // 最近一次修改配方时间}func (x *PastureData) Reset() {	*x = PastureData{}	if protoimpl.UnsafeEnabled {		mi := &file_backend_operation_feed_formula_proto_msgTypes[11]		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))		ms.StoreMessageInfo(mi)	}}func (x *PastureData) String() string {	return protoimpl.X.MessageStringOf(x)}func (*PastureData) ProtoMessage() {}func (x *PastureData) ProtoReflect() protoreflect.Message {	mi := &file_backend_operation_feed_formula_proto_msgTypes[11]	if protoimpl.UnsafeEnabled && x != nil {		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))		if ms.LoadMessageInfo() == nil {			ms.StoreMessageInfo(mi)		}		return ms	}	return mi.MessageOf(x)}// Deprecated: Use PastureData.ProtoReflect.Descriptor instead.func (*PastureData) Descriptor() ([]byte, []int) {	return file_backend_operation_feed_formula_proto_rawDescGZIP(), []int{11}}func (x *PastureData) GetMixedFodderAccurateRatio() string {	if x != nil {		return x.MixedFodderAccurateRatio	}	return ""}func (x *PastureData) GetMixedFodderCorrectRatio() string {	if x != nil {		return x.MixedFodderCorrectRatio	}	return ""}func (x *PastureData) GetSprinkleFodderAccurateRatio() string {	if x != nil {		return x.SprinkleFodderAccurateRatio	}	return ""}func (x *PastureData) GetSprinkleFodderCorrectRatio() string {	if x != nil {		return x.SprinkleFodderCorrectRatio	}	return ""}func (x *PastureData) GetAddFeedTime() string {	if x != nil {		return x.AddFeedTime	}	return ""}func (x *PastureData) GetSprinkleTime() string {	if x != nil {		return x.SprinkleTime	}	return ""}func (x *PastureData) GetStirTime() string {	if x != nil {		return x.StirTime	}	return ""}func (x *PastureData) GetLastEditTime() string {	if x != nil {		return x.LastEditTime	}	return ""}type UniqueID_UniqueData struct {	state         protoimpl.MessageState	sizeCache     protoimpl.SizeCache	unknownFields protoimpl.UnknownFields	EncodeNumber string `protobuf:"bytes,1,opt,name=encode_number,json=encodeNumber,proto3" json:"encode_number,omitempty"`}func (x *UniqueID_UniqueData) Reset() {	*x = UniqueID_UniqueData{}	if protoimpl.UnsafeEnabled {		mi := &file_backend_operation_feed_formula_proto_msgTypes[12]		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))		ms.StoreMessageInfo(mi)	}}func (x *UniqueID_UniqueData) String() string {	return protoimpl.X.MessageStringOf(x)}func (*UniqueID_UniqueData) ProtoMessage() {}func (x *UniqueID_UniqueData) ProtoReflect() protoreflect.Message {	mi := &file_backend_operation_feed_formula_proto_msgTypes[12]	if protoimpl.UnsafeEnabled && x != nil {		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))		if ms.LoadMessageInfo() == nil {			ms.StoreMessageInfo(mi)		}		return ms	}	return mi.MessageOf(x)}// Deprecated: Use UniqueID_UniqueData.ProtoReflect.Descriptor instead.func (*UniqueID_UniqueData) Descriptor() ([]byte, []int) {	return file_backend_operation_feed_formula_proto_rawDescGZIP(), []int{5, 0}}func (x *UniqueID_UniqueData) GetEncodeNumber() string {	if x != nil {		return x.EncodeNumber	}	return ""}var File_backend_operation_feed_formula_proto protoreflect.FileDescriptorvar file_backend_operation_feed_formula_proto_rawDesc = []byte{	0x0a, 0x24, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74,	0x69, 0x6f, 0x6e, 0x2f, 0x66, 0x65, 0x65, 0x64, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61,	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x11, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e,	0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x22, 0x62, 0x61, 0x63, 0x6b, 0x65,	0x6e, 0x64, 0x2f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x61, 0x67,	0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x62,	0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,	0x2f, 0x65, 0x6e, 0x75, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe6, 0x05, 0x0a, 0x15,	0x41, 0x64, 0x64, 0x46, 0x65, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x52, 0x65,	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,	0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20,	0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x6e, 0x63,	0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,	0x52, 0x0c, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x16,	0x0a, 0x06, 0x63, 0x6f, 0x6c, 0x6f, 0x75, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,	0x63, 0x6f, 0x6c, 0x6f, 0x75, 0x72, 0x12, 0x5a, 0x0a, 0x12, 0x63, 0x61, 0x74, 0x74, 0x6c, 0x65,	0x5f, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01,	0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65,	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x61, 0x74,	0x65, 0x67, 0x6f, 0x72, 0x79, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2e, 0x4b, 0x69, 0x6e, 0x64,	0x52, 0x10, 0x63, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79,	0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x63, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x63, 0x61, 0x74,	0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09,	0x52, 0x12, 0x63, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79,	0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x66, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x5f,	0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x66,	0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11,	0x66, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d,	0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x66, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61,	0x54, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x48, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61,	0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e,	0x32, 0x22, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61,	0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e,	0x4b, 0x69, 0x6e, 0x64, 0x52, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65,	0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63,	0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x61,	0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07,	0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72,	0x65, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f,	0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,	0x12, 0x37, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x73, 0x68, 0x6f, 0x77, 0x18, 0x0d, 0x20, 0x01, 0x28,	0x0e, 0x32, 0x1e, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72,	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x49, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x4b, 0x69, 0x6e,	0x64, 0x52, 0x06, 0x69, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x3b, 0x0a, 0x09, 0x69, 0x73, 0x5f,	0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x62,	0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,	0x2e, 0x49, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x2e, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x08, 0x69, 0x73,	0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,	0x64, 0x5f, 0x61, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61,	0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64,	0x5f, 0x61, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09,	0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61,	0x74, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6e, 0x61, 0x6d,	0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65,	0x4e, 0x61, 0x6d, 0x65, 0x22, 0xbc, 0x02, 0x0a, 0x18, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46,	0x65, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,	0x74, 0x12, 0x2c, 0x0a, 0x12, 0x63, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x63, 0x61, 0x74, 0x65,	0x67, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x63,	0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x12,	0x26, 0x0a, 0x0f, 0x66, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f,	0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x66, 0x6f, 0x72, 0x6d, 0x75, 0x6c,	0x61, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x5f,	0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x64, 0x61,	0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x73,	0x68, 0x6f, 0x77, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x62, 0x61, 0x63, 0x6b,	0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x49, 0x73,	0x53, 0x68, 0x6f, 0x77, 0x2e, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x06, 0x69, 0x73, 0x53, 0x68, 0x6f,	0x77, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x73,	0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x12,	0x42, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20,	0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70,	0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69,	0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74,	0x69, 0x6f, 0x6e, 0x22, 0x87, 0x01, 0x0a, 0x1d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x65,	0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73,	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20,	0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67,	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x40, 0x0a, 0x04, 0x64,	0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x62, 0x61, 0x63, 0x6b,	0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65,	0x61, 0x72, 0x63, 0x68, 0x46, 0x65, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x4c,	0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xa0, 0x01,	0x0a, 0x19, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x65, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d,	0x75, 0x6c, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x70,	0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12,	0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01,	0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x14, 0x0a, 0x05,	0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74,	0x61, 0x6c, 0x12, 0x3c, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b,	0x32, 0x28, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61,	0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x64, 0x64, 0x46, 0x65, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d,	0x75, 0x6c, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74,	0x22, 0x97, 0x01, 0x0a, 0x17, 0x49, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x4d, 0x6f, 0x64, 0x69, 0x66,	0x79, 0x46, 0x65, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x12, 0x26, 0x0a, 0x0f,	0x66, 0x65, 0x65, 0x64, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x5f, 0x69, 0x64, 0x18,	0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x66, 0x65, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x75,	0x6c, 0x61, 0x49, 0x64, 0x12, 0x37, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x73, 0x68, 0x6f, 0x77, 0x18,	0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e,	0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x49, 0x73, 0x53, 0x68, 0x6f, 0x77,	0x2e, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x06, 0x69, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x1b, 0x0a,	0x09, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05,	0x52, 0x08, 0x65, 0x64, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x9f, 0x01, 0x0a, 0x08, 0x55,	0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18,	0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d,	0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x3a, 0x0a,	0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x61,	0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e,	0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x44, 0x2e, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x44,	0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x31, 0x0a, 0x0a, 0x55, 0x6e, 0x69,	0x71, 0x75, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x6e, 0x63, 0x6f, 0x64,	0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c,	0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x69, 0x0a, 0x1c,	0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x46, 0x65, 0x65, 0x64, 0x46, 0x6f,	0x72, 0x6d, 0x75, 0x6c, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b,	0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,	0x05, 0x52, 0x0a, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x49, 0x64, 0x73, 0x12, 0x28, 0x0a,	0x10, 0x66, 0x65, 0x65, 0x64, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x5f, 0x69, 0x64,	0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0e, 0x66, 0x65, 0x65, 0x64, 0x46, 0x6f, 0x72,	0x6d, 0x75, 0x6c, 0x61, 0x49, 0x64, 0x73, 0x22, 0x9a, 0x01, 0x0a, 0x17, 0x46, 0x65, 0x65, 0x64,	0x46, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75,	0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x66, 0x65, 0x65, 0x64, 0x5f, 0x66, 0x6f, 0x72, 0x6d,	0x75, 0x6c, 0x61, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x66, 0x65,	0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73,	0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,	0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e,	0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e,	0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65,	0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x73, 0x74, 0x75,	0x72, 0x65, 0x49, 0x64, 0x22, 0x7d, 0x0a, 0x18, 0x46, 0x65, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d,	0x75, 0x6c, 0x61, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,	0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04,	0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28,	0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x3b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03,	0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f,	0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x65, 0x65, 0x64, 0x46, 0x6f, 0x72,	0x6d, 0x75, 0x6c, 0x61, 0x55, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x04, 0x64,	0x61, 0x74, 0x61, 0x22, 0xe8, 0x03, 0x0a, 0x14, 0x46, 0x65, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d,	0x75, 0x6c, 0x61, 0x55, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a,	0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,	0x52, 0x09, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x70,	0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,	0x09, 0x52, 0x0b, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3d,	0x0a, 0x1b, 0x6d, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x66, 0x6f, 0x64, 0x64, 0x65, 0x72, 0x5f, 0x61,	0x63, 0x63, 0x75, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x03, 0x20,	0x01, 0x28, 0x09, 0x52, 0x18, 0x6d, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x64, 0x64, 0x65, 0x72,	0x41, 0x63, 0x63, 0x75, 0x72, 0x61, 0x74, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x3b, 0x0a,	0x1a, 0x6d, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x66, 0x6f, 0x64, 0x64, 0x65, 0x72, 0x5f, 0x63, 0x6f,	0x72, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28,	0x09, 0x52, 0x17, 0x6d, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x64, 0x64, 0x65, 0x72, 0x43, 0x6f,	0x72, 0x72, 0x65, 0x63, 0x74, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x43, 0x0a, 0x1e, 0x73, 0x70,	0x72, 0x69, 0x6e, 0x6b, 0x6c, 0x65, 0x5f, 0x66, 0x6f, 0x64, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x63,	0x63, 0x75, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x05, 0x20, 0x01,	0x28, 0x09, 0x52, 0x1b, 0x73, 0x70, 0x72, 0x69, 0x6e, 0x6b, 0x6c, 0x65, 0x46, 0x6f, 0x64, 0x64,	0x65, 0x72, 0x41, 0x63, 0x63, 0x75, 0x72, 0x61, 0x74, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12,	0x41, 0x0a, 0x1d, 0x73, 0x70, 0x72, 0x69, 0x6e, 0x6b, 0x6c, 0x65, 0x5f, 0x66, 0x6f, 0x64, 0x64,	0x65, 0x72, 0x5f, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f,	0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1a, 0x73, 0x70, 0x72, 0x69, 0x6e, 0x6b, 0x6c, 0x65,	0x46, 0x6f, 0x64, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x52, 0x61, 0x74,	0x69, 0x6f, 0x12, 0x22, 0x0a, 0x0d, 0x61, 0x64, 0x64, 0x5f, 0x66, 0x65, 0x65, 0x64, 0x5f, 0x74,	0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x64, 0x64, 0x46, 0x65,	0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x70, 0x72, 0x69, 0x6e, 0x6b,	0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73,	0x70, 0x72, 0x69, 0x6e, 0x6b, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x73,	0x74, 0x69, 0x72, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,	0x73, 0x74, 0x69, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x6c, 0x61, 0x73, 0x74,	0x5f, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09,	0x52, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x45, 0x64, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x7b,	0x0a, 0x1f, 0x50, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x46, 0x65, 0x65, 0x64, 0x46, 0x6f, 0x72,	0x6d, 0x75, 0x6c, 0x61, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,	0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,	0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01,	0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x32, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18,	0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e,	0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x61, 0x73, 0x74, 0x75, 0x72,	0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x9d, 0x03, 0x0a, 0x0b,	0x50, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3d, 0x0a, 0x1b, 0x6d,	0x69, 0x78, 0x65, 0x64, 0x5f, 0x66, 0x6f, 0x64, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x75,	0x72, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,	0x52, 0x18, 0x6d, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x64, 0x64, 0x65, 0x72, 0x41, 0x63, 0x63,	0x75, 0x72, 0x61, 0x74, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x3b, 0x0a, 0x1a, 0x6d, 0x69,	0x78, 0x65, 0x64, 0x5f, 0x66, 0x6f, 0x64, 0x64, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x72, 0x72, 0x65,	0x63, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17,	0x6d, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x64, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x72, 0x72, 0x65,	0x63, 0x74, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x43, 0x0a, 0x1e, 0x73, 0x70, 0x72, 0x69, 0x6e,	0x6b, 0x6c, 0x65, 0x5f, 0x66, 0x6f, 0x64, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x75, 0x72,	0x61, 0x74, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,	0x1b, 0x73, 0x70, 0x72, 0x69, 0x6e, 0x6b, 0x6c, 0x65, 0x46, 0x6f, 0x64, 0x64, 0x65, 0x72, 0x41,	0x63, 0x63, 0x75, 0x72, 0x61, 0x74, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x41, 0x0a, 0x1d,	0x73, 0x70, 0x72, 0x69, 0x6e, 0x6b, 0x6c, 0x65, 0x5f, 0x66, 0x6f, 0x64, 0x64, 0x65, 0x72, 0x5f,	0x63, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x06, 0x20,	0x01, 0x28, 0x09, 0x52, 0x1a, 0x73, 0x70, 0x72, 0x69, 0x6e, 0x6b, 0x6c, 0x65, 0x46, 0x6f, 0x64,	0x64, 0x65, 0x72, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12,	0x22, 0x0a, 0x0d, 0x61, 0x64, 0x64, 0x5f, 0x66, 0x65, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65,	0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x64, 0x64, 0x46, 0x65, 0x65, 0x64, 0x54,	0x69, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x70, 0x72, 0x69, 0x6e, 0x6b, 0x6c, 0x65, 0x5f,	0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x70, 0x72, 0x69,	0x6e, 0x6b, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x74, 0x69, 0x72,	0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x69,	0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x65, 0x64,	0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c,	0x61, 0x73, 0x74, 0x45, 0x64, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x0f, 0x5a, 0x0d, 0x2e,	0x3b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x62, 0x62, 0x06, 0x70, 0x72,	0x6f, 0x74, 0x6f, 0x33,}var (	file_backend_operation_feed_formula_proto_rawDescOnce sync.Once	file_backend_operation_feed_formula_proto_rawDescData = file_backend_operation_feed_formula_proto_rawDesc)func file_backend_operation_feed_formula_proto_rawDescGZIP() []byte {	file_backend_operation_feed_formula_proto_rawDescOnce.Do(func() {		file_backend_operation_feed_formula_proto_rawDescData = protoimpl.X.CompressGZIP(file_backend_operation_feed_formula_proto_rawDescData)	})	return file_backend_operation_feed_formula_proto_rawDescData}var file_backend_operation_feed_formula_proto_msgTypes = make([]protoimpl.MessageInfo, 13)var file_backend_operation_feed_formula_proto_goTypes = []interface{}{	(*AddFeedFormulaRequest)(nil),           // 0: backend.operation.AddFeedFormulaRequest	(*SearchFeedFormulaRequest)(nil),        // 1: backend.operation.SearchFeedFormulaRequest	(*SearchFeedFormulaListResponse)(nil),   // 2: backend.operation.SearchFeedFormulaListResponse	(*SearchFeedFormulaListData)(nil),       // 3: backend.operation.SearchFeedFormulaListData	(*IsShowModifyFeedFormula)(nil),         // 4: backend.operation.IsShowModifyFeedFormula	(*UniqueID)(nil),                        // 5: backend.operation.UniqueID	(*DistributeFeedFormulaRequest)(nil),    // 6: backend.operation.DistributeFeedFormulaRequest	(*FeedFormulaUsageRequest)(nil),         // 7: backend.operation.FeedFormulaUsageRequest	(*FeedFormulaUsageResponse)(nil),        // 8: backend.operation.FeedFormulaUsageResponse	(*FeedFormulaUsageList)(nil),            // 9: backend.operation.FeedFormulaUsageList	(*PastureFeedFormulaUsageResponse)(nil), // 10: backend.operation.PastureFeedFormulaUsageResponse	(*PastureData)(nil),                     // 11: backend.operation.PastureData	(*UniqueID_UniqueData)(nil),             // 12: backend.operation.UniqueID.UniqueData	(CattleCategoryParent_Kind)(0),          // 13: backend.operation.CattleCategoryParent.Kind	(DataSource_Kind)(0),                    // 14: backend.operation.DataSource.Kind	(IsShow_Kind)(0),                        // 15: backend.operation.IsShow.Kind	(*PaginationModel)(nil),                 // 16: backend.operation.PaginationModel}var file_backend_operation_feed_formula_proto_depIdxs = []int32{	13, // 0: backend.operation.AddFeedFormulaRequest.cattle_category_id:type_name -> backend.operation.CattleCategoryParent.Kind	14, // 1: backend.operation.AddFeedFormulaRequest.data_source_id:type_name -> backend.operation.DataSource.Kind	15, // 2: backend.operation.AddFeedFormulaRequest.is_show:type_name -> backend.operation.IsShow.Kind	15, // 3: backend.operation.AddFeedFormulaRequest.is_modify:type_name -> backend.operation.IsShow.Kind	15, // 4: backend.operation.SearchFeedFormulaRequest.is_show:type_name -> backend.operation.IsShow.Kind	16, // 5: backend.operation.SearchFeedFormulaRequest.pagination:type_name -> backend.operation.PaginationModel	3,  // 6: backend.operation.SearchFeedFormulaListResponse.data:type_name -> backend.operation.SearchFeedFormulaListData	0,  // 7: backend.operation.SearchFeedFormulaListData.list:type_name -> backend.operation.AddFeedFormulaRequest	15, // 8: backend.operation.IsShowModifyFeedFormula.is_show:type_name -> backend.operation.IsShow.Kind	12, // 9: backend.operation.UniqueID.data:type_name -> backend.operation.UniqueID.UniqueData	9,  // 10: backend.operation.FeedFormulaUsageResponse.data:type_name -> backend.operation.FeedFormulaUsageList	11, // 11: backend.operation.PastureFeedFormulaUsageResponse.data:type_name -> backend.operation.PastureData	12, // [12:12] is the sub-list for method output_type	12, // [12:12] is the sub-list for method input_type	12, // [12:12] is the sub-list for extension type_name	12, // [12:12] is the sub-list for extension extendee	0,  // [0:12] is the sub-list for field type_name}func init() { file_backend_operation_feed_formula_proto_init() }func file_backend_operation_feed_formula_proto_init() {	if File_backend_operation_feed_formula_proto != nil {		return	}	file_backend_operation_pagination_proto_init()	file_backend_operation_enum_proto_init()	if !protoimpl.UnsafeEnabled {		file_backend_operation_feed_formula_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {			switch v := v.(*AddFeedFormulaRequest); i {			case 0:				return &v.state			case 1:				return &v.sizeCache			case 2:				return &v.unknownFields			default:				return nil			}		}		file_backend_operation_feed_formula_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {			switch v := v.(*SearchFeedFormulaRequest); i {			case 0:				return &v.state			case 1:				return &v.sizeCache			case 2:				return &v.unknownFields			default:				return nil			}		}		file_backend_operation_feed_formula_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {			switch v := v.(*SearchFeedFormulaListResponse); i {			case 0:				return &v.state			case 1:				return &v.sizeCache			case 2:				return &v.unknownFields			default:				return nil			}		}		file_backend_operation_feed_formula_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {			switch v := v.(*SearchFeedFormulaListData); i {			case 0:				return &v.state			case 1:				return &v.sizeCache			case 2:				return &v.unknownFields			default:				return nil			}		}		file_backend_operation_feed_formula_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {			switch v := v.(*IsShowModifyFeedFormula); i {			case 0:				return &v.state			case 1:				return &v.sizeCache			case 2:				return &v.unknownFields			default:				return nil			}		}		file_backend_operation_feed_formula_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {			switch v := v.(*UniqueID); i {			case 0:				return &v.state			case 1:				return &v.sizeCache			case 2:				return &v.unknownFields			default:				return nil			}		}		file_backend_operation_feed_formula_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {			switch v := v.(*DistributeFeedFormulaRequest); i {			case 0:				return &v.state			case 1:				return &v.sizeCache			case 2:				return &v.unknownFields			default:				return nil			}		}		file_backend_operation_feed_formula_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {			switch v := v.(*FeedFormulaUsageRequest); i {			case 0:				return &v.state			case 1:				return &v.sizeCache			case 2:				return &v.unknownFields			default:				return nil			}		}		file_backend_operation_feed_formula_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {			switch v := v.(*FeedFormulaUsageResponse); i {			case 0:				return &v.state			case 1:				return &v.sizeCache			case 2:				return &v.unknownFields			default:				return nil			}		}		file_backend_operation_feed_formula_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {			switch v := v.(*FeedFormulaUsageList); i {			case 0:				return &v.state			case 1:				return &v.sizeCache			case 2:				return &v.unknownFields			default:				return nil			}		}		file_backend_operation_feed_formula_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {			switch v := v.(*PastureFeedFormulaUsageResponse); i {			case 0:				return &v.state			case 1:				return &v.sizeCache			case 2:				return &v.unknownFields			default:				return nil			}		}		file_backend_operation_feed_formula_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {			switch v := v.(*PastureData); i {			case 0:				return &v.state			case 1:				return &v.sizeCache			case 2:				return &v.unknownFields			default:				return nil			}		}		file_backend_operation_feed_formula_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {			switch v := v.(*UniqueID_UniqueData); i {			case 0:				return &v.state			case 1:				return &v.sizeCache			case 2:				return &v.unknownFields			default:				return nil			}		}	}	type x struct{}	out := protoimpl.TypeBuilder{		File: protoimpl.DescBuilder{			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),			RawDescriptor: file_backend_operation_feed_formula_proto_rawDesc,			NumEnums:      0,			NumMessages:   13,			NumExtensions: 0,			NumServices:   0,		},		GoTypes:           file_backend_operation_feed_formula_proto_goTypes,		DependencyIndexes: file_backend_operation_feed_formula_proto_depIdxs,		MessageInfos:      file_backend_operation_feed_formula_proto_msgTypes,	}.Build()	File_backend_operation_feed_formula_proto = out.File	file_backend_operation_feed_formula_proto_rawDesc = nil	file_backend_operation_feed_formula_proto_goTypes = nil	file_backend_operation_feed_formula_proto_depIdxs = nil}
 |