// Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: tf.proto

package tf

import (
	encoding_binary "encoding/binary"
	fmt "fmt"
	proto "github.com/golang/protobuf/proto"
	io "io"
	math "math"
	math_bits "math/bits"
)

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package

type ArrayDataType int32

const (
	// Not a legal value for DataType. Used to indicate a DataType field
	// has not been set.
	ArrayDataType_DT_INVALID ArrayDataType = 0
	// Data types that all computation devices are expected to be
	// capable to support.
	ArrayDataType_DT_FLOAT      ArrayDataType = 1
	ArrayDataType_DT_DOUBLE     ArrayDataType = 2
	ArrayDataType_DT_INT32      ArrayDataType = 3
	ArrayDataType_DT_UINT8      ArrayDataType = 4
	ArrayDataType_DT_INT16      ArrayDataType = 5
	ArrayDataType_DT_INT8       ArrayDataType = 6
	ArrayDataType_DT_STRING     ArrayDataType = 7
	ArrayDataType_DT_COMPLEX64  ArrayDataType = 8
	ArrayDataType_DT_INT64      ArrayDataType = 9
	ArrayDataType_DT_BOOL       ArrayDataType = 10
	ArrayDataType_DT_QINT8      ArrayDataType = 11
	ArrayDataType_DT_QUINT8     ArrayDataType = 12
	ArrayDataType_DT_QINT32     ArrayDataType = 13
	ArrayDataType_DT_BFLOAT16   ArrayDataType = 14
	ArrayDataType_DT_QINT16     ArrayDataType = 15
	ArrayDataType_DT_QUINT16    ArrayDataType = 16
	ArrayDataType_DT_UINT16     ArrayDataType = 17
	ArrayDataType_DT_COMPLEX128 ArrayDataType = 18
	ArrayDataType_DT_HALF       ArrayDataType = 19
	ArrayDataType_DT_RESOURCE   ArrayDataType = 20
	ArrayDataType_DT_VARIANT    ArrayDataType = 21
)

var ArrayDataType_name = map[int32]string{
	0:  "DT_INVALID",
	1:  "DT_FLOAT",
	2:  "DT_DOUBLE",
	3:  "DT_INT32",
	4:  "DT_UINT8",
	5:  "DT_INT16",
	6:  "DT_INT8",
	7:  "DT_STRING",
	8:  "DT_COMPLEX64",
	9:  "DT_INT64",
	10: "DT_BOOL",
	11: "DT_QINT8",
	12: "DT_QUINT8",
	13: "DT_QINT32",
	14: "DT_BFLOAT16",
	15: "DT_QINT16",
	16: "DT_QUINT16",
	17: "DT_UINT16",
	18: "DT_COMPLEX128",
	19: "DT_HALF",
	20: "DT_RESOURCE",
	21: "DT_VARIANT",
}

var ArrayDataType_value = map[string]int32{
	"DT_INVALID":    0,
	"DT_FLOAT":      1,
	"DT_DOUBLE":     2,
	"DT_INT32":      3,
	"DT_UINT8":      4,
	"DT_INT16":      5,
	"DT_INT8":       6,
	"DT_STRING":     7,
	"DT_COMPLEX64":  8,
	"DT_INT64":      9,
	"DT_BOOL":       10,
	"DT_QINT8":      11,
	"DT_QUINT8":     12,
	"DT_QINT32":     13,
	"DT_BFLOAT16":   14,
	"DT_QINT16":     15,
	"DT_QUINT16":    16,
	"DT_UINT16":     17,
	"DT_COMPLEX128": 18,
	"DT_HALF":       19,
	"DT_RESOURCE":   20,
	"DT_VARIANT":    21,
}

func (x ArrayDataType) String() string {
	return proto.EnumName(ArrayDataType_name, int32(x))
}

func (ArrayDataType) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_375fc9137751f710, []int{0}
}

// Dimensions of an array
type ArrayShape struct {
	Dim                  []int64  `protobuf:"varint,1,rep,packed,name=dim,proto3" json:"dim,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ArrayShape) Reset()         { *m = ArrayShape{} }
func (m *ArrayShape) String() string { return proto.CompactTextString(m) }
func (*ArrayShape) ProtoMessage()    {}
func (*ArrayShape) Descriptor() ([]byte, []int) {
	return fileDescriptor_375fc9137751f710, []int{0}
}
func (m *ArrayShape) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *ArrayShape) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_ArrayShape.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *ArrayShape) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ArrayShape.Merge(m, src)
}
func (m *ArrayShape) XXX_Size() int {
	return m.Size()
}
func (m *ArrayShape) XXX_DiscardUnknown() {
	xxx_messageInfo_ArrayShape.DiscardUnknown(m)
}

var xxx_messageInfo_ArrayShape proto.InternalMessageInfo

func (m *ArrayShape) GetDim() []int64 {
	if m != nil {
		return m.Dim
	}
	return nil
}

// Protocol buffer representing an array
type ArrayProto struct {
	// Data Type.
	Dtype ArrayDataType `protobuf:"varint,1,opt,name=dtype,proto3,enum=ArrayDataType" json:"dtype,omitempty"`
	// Shape of the array.
	ArrayShape *ArrayShape `protobuf:"bytes,2,opt,name=array_shape,json=arrayShape,proto3" json:"array_shape,omitempty"`
	// DT_FLOAT.
	FloatVal []float32 `protobuf:"fixed32,3,rep,packed,name=float_val,json=floatVal,proto3" json:"float_val,omitempty"`
	// DT_DOUBLE.
	DoubleVal []float64 `protobuf:"fixed64,4,rep,packed,name=double_val,json=doubleVal,proto3" json:"double_val,omitempty"`
	// DT_INT32, DT_INT16, DT_INT8, DT_UINT8.
	IntVal []int32 `protobuf:"varint,5,rep,packed,name=int_val,json=intVal,proto3" json:"int_val,omitempty"`
	// DT_STRING.
	StringVal [][]byte `protobuf:"bytes,6,rep,name=string_val,json=stringVal,proto3" json:"string_val,omitempty"`
	// DT_INT64.
	Int64Val []int64 `protobuf:"varint,7,rep,packed,name=int64_val,json=int64Val,proto3" json:"int64_val,omitempty"`
	// DT_BOOL.
	BoolVal              []bool   `protobuf:"varint,8,rep,packed,name=bool_val,json=boolVal,proto3" json:"bool_val,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ArrayProto) Reset()         { *m = ArrayProto{} }
func (m *ArrayProto) String() string { return proto.CompactTextString(m) }
func (*ArrayProto) ProtoMessage()    {}
func (*ArrayProto) Descriptor() ([]byte, []int) {
	return fileDescriptor_375fc9137751f710, []int{1}
}
func (m *ArrayProto) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *ArrayProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_ArrayProto.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *ArrayProto) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ArrayProto.Merge(m, src)
}
func (m *ArrayProto) XXX_Size() int {
	return m.Size()
}
func (m *ArrayProto) XXX_DiscardUnknown() {
	xxx_messageInfo_ArrayProto.DiscardUnknown(m)
}

var xxx_messageInfo_ArrayProto proto.InternalMessageInfo

func (m *ArrayProto) GetDtype() ArrayDataType {
	if m != nil {
		return m.Dtype
	}
	return ArrayDataType_DT_INVALID
}

func (m *ArrayProto) GetArrayShape() *ArrayShape {
	if m != nil {
		return m.ArrayShape
	}
	return nil
}

func (m *ArrayProto) GetFloatVal() []float32 {
	if m != nil {
		return m.FloatVal
	}
	return nil
}

func (m *ArrayProto) GetDoubleVal() []float64 {
	if m != nil {
		return m.DoubleVal
	}
	return nil
}

func (m *ArrayProto) GetIntVal() []int32 {
	if m != nil {
		return m.IntVal
	}
	return nil
}

func (m *ArrayProto) GetStringVal() [][]byte {
	if m != nil {
		return m.StringVal
	}
	return nil
}

func (m *ArrayProto) GetInt64Val() []int64 {
	if m != nil {
		return m.Int64Val
	}
	return nil
}

func (m *ArrayProto) GetBoolVal() []bool {
	if m != nil {
		return m.BoolVal
	}
	return nil
}

// PredictRequest specifies which TensorFlow model to run, as well as
// how inputs are mapped to tensors and how outputs are filtered before
// returning to user.
type PredictRequest struct {
	// A named signature to evaluate. If unspecified, the default signature
	// will be used
	SignatureName string `protobuf:"bytes,1,opt,name=signature_name,json=signatureName,proto3" json:"signature_name,omitempty"`
	// Input tensors.
	// Names of input tensor are alias names. The mapping from aliases to real
	// input tensor names is expected to be stored as named generic signature
	// under the key "inputs" in the model export.
	// Each alias listed in a generic signature named "inputs" should be provided
	// exactly once in order to run the prediction.
	Inputs map[string]*ArrayProto `protobuf:"bytes,2,rep,name=inputs,proto3" json:"inputs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// Output filter.
	// Names specified are alias names. The mapping from aliases to real output
	// tensor names is expected to be stored as named generic signature under
	// the key "outputs" in the model export.
	// Only tensors specified here will be run/fetched and returned, with the
	// exception that when none is specified, all tensors specified in the
	// named signature will be run/fetched and returned.
	OutputFilter         []string `protobuf:"bytes,3,rep,name=output_filter,json=outputFilter,proto3" json:"output_filter,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *PredictRequest) Reset()         { *m = PredictRequest{} }
func (m *PredictRequest) String() string { return proto.CompactTextString(m) }
func (*PredictRequest) ProtoMessage()    {}
func (*PredictRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_375fc9137751f710, []int{2}
}
func (m *PredictRequest) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *PredictRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_PredictRequest.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *PredictRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PredictRequest.Merge(m, src)
}
func (m *PredictRequest) XXX_Size() int {
	return m.Size()
}
func (m *PredictRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_PredictRequest.DiscardUnknown(m)
}

var xxx_messageInfo_PredictRequest proto.InternalMessageInfo

func (m *PredictRequest) GetSignatureName() string {
	if m != nil {
		return m.SignatureName
	}
	return ""
}

func (m *PredictRequest) GetInputs() map[string]*ArrayProto {
	if m != nil {
		return m.Inputs
	}
	return nil
}

func (m *PredictRequest) GetOutputFilter() []string {
	if m != nil {
		return m.OutputFilter
	}
	return nil
}

// Response for PredictRequest on successful run.
type PredictResponse struct {
	// Output tensors.
	Outputs              map[string]*ArrayProto `protobuf:"bytes,1,rep,name=outputs,proto3" json:"outputs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
	XXX_unrecognized     []byte                 `json:"-"`
	XXX_sizecache        int32                  `json:"-"`
}

func (m *PredictResponse) Reset()         { *m = PredictResponse{} }
func (m *PredictResponse) String() string { return proto.CompactTextString(m) }
func (*PredictResponse) ProtoMessage()    {}
func (*PredictResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_375fc9137751f710, []int{3}
}
func (m *PredictResponse) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *PredictResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_PredictResponse.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *PredictResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PredictResponse.Merge(m, src)
}
func (m *PredictResponse) XXX_Size() int {
	return m.Size()
}
func (m *PredictResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_PredictResponse.DiscardUnknown(m)
}

var xxx_messageInfo_PredictResponse proto.InternalMessageInfo

func (m *PredictResponse) GetOutputs() map[string]*ArrayProto {
	if m != nil {
		return m.Outputs
	}
	return nil
}

func init() {
	proto.RegisterEnum("ArrayDataType", ArrayDataType_name, ArrayDataType_value)
	proto.RegisterType((*ArrayShape)(nil), "ArrayShape")
	proto.RegisterType((*ArrayProto)(nil), "ArrayProto")
	proto.RegisterType((*PredictRequest)(nil), "PredictRequest")
	proto.RegisterMapType((map[string]*ArrayProto)(nil), "PredictRequest.InputsEntry")
	proto.RegisterType((*PredictResponse)(nil), "PredictResponse")
	proto.RegisterMapType((map[string]*ArrayProto)(nil), "PredictResponse.OutputsEntry")
}

func init() { proto.RegisterFile("tf.proto", fileDescriptor_375fc9137751f710) }

var fileDescriptor_375fc9137751f710 = []byte{
	// 685 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x94, 0xc1, 0x6e, 0xfa, 0x46,
	0x10, 0xc6, 0xff, 0xb6, 0x03, 0xd8, 0x63, 0x20, 0x9b, 0x6d, 0x2a, 0xa1, 0x44, 0x21, 0x0e, 0x6d,
	0x25, 0xb7, 0xaa, 0x2c, 0x41, 0x22, 0x8a, 0xda, 0x13, 0x04, 0x48, 0x91, 0x28, 0x24, 0xc6, 0x41,
	0x55, 0x2f, 0xd6, 0x26, 0x2c, 0xa9, 0x55, 0x63, 0xbb, 0xf6, 0x3a, 0x12, 0xcf, 0xd1, 0x4b, 0x8f,
	0x7d, 0x9c, 0x1e, 0x7b, 0xad, 0x7a, 0xa9, 0xd2, 0x97, 0xe8, 0xb1, 0xf2, 0xee, 0x26, 0x24, 0x39,
	0xf6, 0xc6, 0x7c, 0xbf, 0x99, 0x6f, 0x3e, 0xef, 0xae, 0x00, 0x9d, 0xad, 0x9d, 0x24, 0x8d, 0x59,
	0xdc, 0x6a, 0x01, 0xf4, 0xd3, 0x94, 0x6c, 0x17, 0x3f, 0x92, 0x84, 0xe2, 0x43, 0xd0, 0x56, 0xc1,
	0xa6, 0xa1, 0x58, 0x9a, 0xad, 0x0d, 0x54, 0xa4, 0xb8, 0x45, 0xd9, 0xfa, 0x4d, 0x95, 0x4d, 0xd7,
	0xc5, 0x08, 0xfe, 0x14, 0x4a, 0x2b, 0xb6, 0x4d, 0x68, 0x43, 0xb1, 0x14, 0xbb, 0xde, 0xa9, 0x3b,
	0x9c, 0x0d, 0x09, 0x23, 0xde, 0x36, 0xa1, 0xae, 0x80, 0xf8, 0x4b, 0x30, 0x49, 0xa1, 0xfb, 0x59,
	0xe1, 0xdc, 0x50, 0x2d, 0xc5, 0x36, 0x3b, 0xa6, 0xb3, 0x5b, 0xe6, 0x02, 0xd9, 0x2d, 0x3e, 0x05,
	0x63, 0x1d, 0xc6, 0x84, 0xf9, 0x8f, 0x24, 0x6c, 0x68, 0x96, 0x66, 0xab, 0x7c, 0xbd, 0xce, 0xc5,
	0x25, 0x09, 0xf1, 0x19, 0xc0, 0x2a, 0xce, 0xef, 0x42, 0xca, 0x3b, 0xf6, 0x2c, 0xcd, 0x56, 0x78,
	0x87, 0x21, 0xd4, 0xa2, 0xe5, 0x18, 0x2a, 0x41, 0x24, 0x1c, 0x4a, 0x96, 0x66, 0x97, 0x38, 0x2f,
	0x07, 0x11, 0x9f, 0x3f, 0x01, 0xc8, 0x58, 0x1a, 0x44, 0x0f, 0x9c, 0x97, 0x2d, 0xcd, 0xae, 0xba,
	0x86, 0x50, 0x0a, 0x7c, 0x0a, 0x46, 0x10, 0xb1, 0xee, 0x05, 0xa7, 0x95, 0x97, 0xcf, 0xd7, 0xb9,
	0x28, 0xe6, 0xf5, 0xbb, 0x38, 0x0e, 0x39, 0xd7, 0x2d, 0xcd, 0xd6, 0x39, 0xaf, 0x14, 0xda, 0x92,
	0x84, 0xad, 0x3f, 0x15, 0xa8, 0x5f, 0xa7, 0x74, 0x15, 0xdc, 0x33, 0x97, 0xfe, 0x9c, 0xd3, 0x8c,
	0xe1, 0xcf, 0xa0, 0x9e, 0x05, 0x0f, 0x11, 0x61, 0x79, 0x4a, 0xfd, 0x88, 0x6c, 0xc4, 0x79, 0x19,
	0x6e, 0xed, 0x45, 0x9d, 0x91, 0x0d, 0xc5, 0xe7, 0x50, 0x0e, 0xa2, 0x24, 0x67, 0x59, 0x43, 0xb5,
	0x34, 0xdb, 0xec, 0x1c, 0x3b, 0x6f, 0x7d, 0x9c, 0x09, 0xa7, 0xa3, 0x88, 0xa5, 0x5b, 0x57, 0xb6,
	0xe2, 0x4f, 0xa0, 0x16, 0xe7, 0x2c, 0xc9, 0x99, 0xbf, 0x0e, 0x42, 0x46, 0x53, 0x7e, 0x64, 0x86,
	0x5b, 0x15, 0xe2, 0x98, 0x6b, 0x47, 0x63, 0x30, 0x5f, 0xcd, 0x62, 0x04, 0xda, 0x4f, 0x74, 0x2b,
	0x43, 0x14, 0x3f, 0xf1, 0x19, 0x94, 0x1e, 0x49, 0x98, 0xbf, 0xbb, 0x1c, 0x7e, 0xc9, 0xae, 0x20,
	0x5f, 0xab, 0x3d, 0xa5, 0xf5, 0x8b, 0x02, 0xfb, 0x2f, 0x99, 0xb2, 0x24, 0x8e, 0x32, 0x8a, 0xbf,
	0x82, 0x8a, 0xd8, 0x95, 0xf1, 0xc7, 0x62, 0x76, 0x4e, 0x9c, 0x77, 0x2d, 0xce, 0x5c, 0x70, 0x11,
	0xfc, 0xb9, 0xfb, 0xe8, 0x0a, 0xaa, 0xaf, 0xc1, 0xff, 0x4e, 0xf5, 0xc5, 0x5f, 0x2a, 0xd4, 0xde,
	0x3c, 0x3c, 0x5c, 0x07, 0x18, 0x7a, 0xfe, 0x64, 0xb6, 0xec, 0x4f, 0x27, 0x43, 0xf4, 0x01, 0x57,
	0x41, 0x1f, 0x7a, 0xfe, 0x78, 0x3a, 0xef, 0x7b, 0x48, 0xc1, 0x35, 0x30, 0x86, 0x9e, 0x3f, 0x9c,
	0xdf, 0x0e, 0xa6, 0x23, 0xa4, 0x4a, 0x38, 0x99, 0x79, 0xe7, 0x1d, 0xa4, 0xc9, 0xea, 0x76, 0x32,
	0xf3, 0x7a, 0x68, 0x6f, 0xc7, 0xda, 0x5d, 0x54, 0xc2, 0x26, 0x54, 0x44, 0xd5, 0x43, 0x65, 0xe9,
	0xb2, 0xf0, 0xdc, 0xc9, 0xec, 0x0a, 0x55, 0x30, 0x82, 0xea, 0xd0, 0xf3, 0x2f, 0xe7, 0xdf, 0x5d,
	0x4f, 0x47, 0xdf, 0x77, 0x2f, 0x90, 0xbe, 0x9b, 0xed, 0x5e, 0x20, 0x43, 0xce, 0x0e, 0xe6, 0xf3,
	0x29, 0x02, 0x89, 0x6e, 0xb8, 0x93, 0x29, 0x9d, 0x6e, 0xc4, 0xce, 0xea, 0x73, 0x29, 0x02, 0xd5,
	0xf0, 0x3e, 0x98, 0xc5, 0x20, 0x0f, 0xdf, 0xee, 0xa2, 0xfa, 0x2b, 0xde, 0xee, 0xa2, 0x7d, 0xf9,
	0xad, 0x7c, 0xba, 0xdd, 0x45, 0x48, 0x62, 0x59, 0x1e, 0xe0, 0x03, 0xa8, 0xed, 0x72, 0xb5, 0x3b,
	0x3d, 0x84, 0x65, 0x94, 0x6f, 0xfb, 0xd3, 0x31, 0xfa, 0x48, 0xda, 0xbb, 0xa3, 0xc5, 0xfc, 0xd6,
	0xbd, 0x1c, 0xa1, 0x43, 0xe9, 0xb7, 0xec, 0xbb, 0x93, 0xfe, 0xcc, 0x43, 0x1f, 0x0f, 0x16, 0xbf,
	0x3f, 0x35, 0x95, 0x3f, 0x9e, 0x9a, 0xca, 0xdf, 0x4f, 0x4d, 0xe5, 0xd7, 0x7f, 0x9a, 0x1f, 0xe0,
	0xf3, 0xfb, 0x78, 0xe3, 0x90, 0x30, 0xd8, 0xe6, 0x91, 0x13, 0x27, 0x34, 0xca, 0x68, 0xfa, 0x18,
	0xdc, 0xd3, 0xcc, 0xa1, 0x24, 0x73, 0x12, 0x71, 0xf7, 0xe2, 0x3f, 0x65, 0x50, 0x93, 0x4f, 0x81,
	0xdf, 0x59, 0xf6, 0xc3, 0x9e, 0xf3, 0x0d, 0x5b, 0xff, 0xab, 0x28, 0x77, 0x65, 0x8e, 0xcf, 0xff,
	0x0b, 0x00, 0x00, 0xff, 0xff, 0x7c, 0xec, 0xce, 0xda, 0x7e, 0x04, 0x00, 0x00,
}

func (m *ArrayShape) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *ArrayShape) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *ArrayShape) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if m.XXX_unrecognized != nil {
		i -= len(m.XXX_unrecognized)
		copy(dAtA[i:], m.XXX_unrecognized)
	}
	if len(m.Dim) > 0 {
		dAtA2 := make([]byte, len(m.Dim)*10)
		var j1 int
		for _, num1 := range m.Dim {
			num := uint64(num1)
			for num >= 1<<7 {
				dAtA2[j1] = uint8(uint64(num)&0x7f | 0x80)
				num >>= 7
				j1++
			}
			dAtA2[j1] = uint8(num)
			j1++
		}
		i -= j1
		copy(dAtA[i:], dAtA2[:j1])
		i = encodeVarintTf(dAtA, i, uint64(j1))
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func (m *ArrayProto) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *ArrayProto) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *ArrayProto) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if m.XXX_unrecognized != nil {
		i -= len(m.XXX_unrecognized)
		copy(dAtA[i:], m.XXX_unrecognized)
	}
	if len(m.BoolVal) > 0 {
		for iNdEx := len(m.BoolVal) - 1; iNdEx >= 0; iNdEx-- {
			i--
			if m.BoolVal[iNdEx] {
				dAtA[i] = 1
			} else {
				dAtA[i] = 0
			}
		}
		i = encodeVarintTf(dAtA, i, uint64(len(m.BoolVal)))
		i--
		dAtA[i] = 0x42
	}
	if len(m.Int64Val) > 0 {
		dAtA4 := make([]byte, len(m.Int64Val)*10)
		var j3 int
		for _, num1 := range m.Int64Val {
			num := uint64(num1)
			for num >= 1<<7 {
				dAtA4[j3] = uint8(uint64(num)&0x7f | 0x80)
				num >>= 7
				j3++
			}
			dAtA4[j3] = uint8(num)
			j3++
		}
		i -= j3
		copy(dAtA[i:], dAtA4[:j3])
		i = encodeVarintTf(dAtA, i, uint64(j3))
		i--
		dAtA[i] = 0x3a
	}
	if len(m.StringVal) > 0 {
		for iNdEx := len(m.StringVal) - 1; iNdEx >= 0; iNdEx-- {
			i -= len(m.StringVal[iNdEx])
			copy(dAtA[i:], m.StringVal[iNdEx])
			i = encodeVarintTf(dAtA, i, uint64(len(m.StringVal[iNdEx])))
			i--
			dAtA[i] = 0x32
		}
	}
	if len(m.IntVal) > 0 {
		dAtA6 := make([]byte, len(m.IntVal)*10)
		var j5 int
		for _, num1 := range m.IntVal {
			num := uint64(num1)
			for num >= 1<<7 {
				dAtA6[j5] = uint8(uint64(num)&0x7f | 0x80)
				num >>= 7
				j5++
			}
			dAtA6[j5] = uint8(num)
			j5++
		}
		i -= j5
		copy(dAtA[i:], dAtA6[:j5])
		i = encodeVarintTf(dAtA, i, uint64(j5))
		i--
		dAtA[i] = 0x2a
	}
	if len(m.DoubleVal) > 0 {
		for iNdEx := len(m.DoubleVal) - 1; iNdEx >= 0; iNdEx-- {
			f7 := math.Float64bits(float64(m.DoubleVal[iNdEx]))
			i -= 8
			encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(f7))
		}
		i = encodeVarintTf(dAtA, i, uint64(len(m.DoubleVal)*8))
		i--
		dAtA[i] = 0x22
	}
	if len(m.FloatVal) > 0 {
		for iNdEx := len(m.FloatVal) - 1; iNdEx >= 0; iNdEx-- {
			f8 := math.Float32bits(float32(m.FloatVal[iNdEx]))
			i -= 4
			encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(f8))
		}
		i = encodeVarintTf(dAtA, i, uint64(len(m.FloatVal)*4))
		i--
		dAtA[i] = 0x1a
	}
	if m.ArrayShape != nil {
		{
			size, err := m.ArrayShape.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintTf(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x12
	}
	if m.Dtype != 0 {
		i = encodeVarintTf(dAtA, i, uint64(m.Dtype))
		i--
		dAtA[i] = 0x8
	}
	return len(dAtA) - i, nil
}

func (m *PredictRequest) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *PredictRequest) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *PredictRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if m.XXX_unrecognized != nil {
		i -= len(m.XXX_unrecognized)
		copy(dAtA[i:], m.XXX_unrecognized)
	}
	if len(m.OutputFilter) > 0 {
		for iNdEx := len(m.OutputFilter) - 1; iNdEx >= 0; iNdEx-- {
			i -= len(m.OutputFilter[iNdEx])
			copy(dAtA[i:], m.OutputFilter[iNdEx])
			i = encodeVarintTf(dAtA, i, uint64(len(m.OutputFilter[iNdEx])))
			i--
			dAtA[i] = 0x1a
		}
	}
	if len(m.Inputs) > 0 {
		for k := range m.Inputs {
			v := m.Inputs[k]
			baseI := i
			if v != nil {
				{
					size, err := v.MarshalToSizedBuffer(dAtA[:i])
					if err != nil {
						return 0, err
					}
					i -= size
					i = encodeVarintTf(dAtA, i, uint64(size))
				}
				i--
				dAtA[i] = 0x12
			}
			i -= len(k)
			copy(dAtA[i:], k)
			i = encodeVarintTf(dAtA, i, uint64(len(k)))
			i--
			dAtA[i] = 0xa
			i = encodeVarintTf(dAtA, i, uint64(baseI-i))
			i--
			dAtA[i] = 0x12
		}
	}
	if len(m.SignatureName) > 0 {
		i -= len(m.SignatureName)
		copy(dAtA[i:], m.SignatureName)
		i = encodeVarintTf(dAtA, i, uint64(len(m.SignatureName)))
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func (m *PredictResponse) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *PredictResponse) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *PredictResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if m.XXX_unrecognized != nil {
		i -= len(m.XXX_unrecognized)
		copy(dAtA[i:], m.XXX_unrecognized)
	}
	if len(m.Outputs) > 0 {
		for k := range m.Outputs {
			v := m.Outputs[k]
			baseI := i
			if v != nil {
				{
					size, err := v.MarshalToSizedBuffer(dAtA[:i])
					if err != nil {
						return 0, err
					}
					i -= size
					i = encodeVarintTf(dAtA, i, uint64(size))
				}
				i--
				dAtA[i] = 0x12
			}
			i -= len(k)
			copy(dAtA[i:], k)
			i = encodeVarintTf(dAtA, i, uint64(len(k)))
			i--
			dAtA[i] = 0xa
			i = encodeVarintTf(dAtA, i, uint64(baseI-i))
			i--
			dAtA[i] = 0xa
		}
	}
	return len(dAtA) - i, nil
}

func encodeVarintTf(dAtA []byte, offset int, v uint64) int {
	offset -= sovTf(v)
	base := offset
	for v >= 1<<7 {
		dAtA[offset] = uint8(v&0x7f | 0x80)
		v >>= 7
		offset++
	}
	dAtA[offset] = uint8(v)
	return base
}
func (m *ArrayShape) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if len(m.Dim) > 0 {
		l = 0
		for _, e := range m.Dim {
			l += sovTf(uint64(e))
		}
		n += 1 + sovTf(uint64(l)) + l
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *ArrayProto) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.Dtype != 0 {
		n += 1 + sovTf(uint64(m.Dtype))
	}
	if m.ArrayShape != nil {
		l = m.ArrayShape.Size()
		n += 1 + l + sovTf(uint64(l))
	}
	if len(m.FloatVal) > 0 {
		n += 1 + sovTf(uint64(len(m.FloatVal)*4)) + len(m.FloatVal)*4
	}
	if len(m.DoubleVal) > 0 {
		n += 1 + sovTf(uint64(len(m.DoubleVal)*8)) + len(m.DoubleVal)*8
	}
	if len(m.IntVal) > 0 {
		l = 0
		for _, e := range m.IntVal {
			l += sovTf(uint64(e))
		}
		n += 1 + sovTf(uint64(l)) + l
	}
	if len(m.StringVal) > 0 {
		for _, b := range m.StringVal {
			l = len(b)
			n += 1 + l + sovTf(uint64(l))
		}
	}
	if len(m.Int64Val) > 0 {
		l = 0
		for _, e := range m.Int64Val {
			l += sovTf(uint64(e))
		}
		n += 1 + sovTf(uint64(l)) + l
	}
	if len(m.BoolVal) > 0 {
		n += 1 + sovTf(uint64(len(m.BoolVal))) + len(m.BoolVal)*1
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *PredictRequest) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = len(m.SignatureName)
	if l > 0 {
		n += 1 + l + sovTf(uint64(l))
	}
	if len(m.Inputs) > 0 {
		for k, v := range m.Inputs {
			_ = k
			_ = v
			l = 0
			if v != nil {
				l = v.Size()
				l += 1 + sovTf(uint64(l))
			}
			mapEntrySize := 1 + len(k) + sovTf(uint64(len(k))) + l
			n += mapEntrySize + 1 + sovTf(uint64(mapEntrySize))
		}
	}
	if len(m.OutputFilter) > 0 {
		for _, s := range m.OutputFilter {
			l = len(s)
			n += 1 + l + sovTf(uint64(l))
		}
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *PredictResponse) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if len(m.Outputs) > 0 {
		for k, v := range m.Outputs {
			_ = k
			_ = v
			l = 0
			if v != nil {
				l = v.Size()
				l += 1 + sovTf(uint64(l))
			}
			mapEntrySize := 1 + len(k) + sovTf(uint64(len(k))) + l
			n += mapEntrySize + 1 + sovTf(uint64(mapEntrySize))
		}
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func sovTf(x uint64) (n int) {
	return (math_bits.Len64(x|1) + 6) / 7
}
func sozTf(x uint64) (n int) {
	return sovTf(uint64((x << 1) ^ uint64((int64(x) >> 63))))
}
func (m *ArrayShape) 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 ErrIntOverflowTf
			}
			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: ArrayShape: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: ArrayShape: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType == 0 {
				var v int64
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowTf
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= int64(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.Dim = append(m.Dim, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowTf
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthTf
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthTf
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				var count int
				for _, integer := range dAtA[iNdEx:postIndex] {
					if integer < 128 {
						count++
					}
				}
				elementCount = count
				if elementCount != 0 && len(m.Dim) == 0 {
					m.Dim = make([]int64, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v int64
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowTf
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= int64(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.Dim = append(m.Dim, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Dim", wireType)
			}
		default:
			iNdEx = preIndex
			skippy, err := skipTf(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthTf
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthTf
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *ArrayProto) 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 ErrIntOverflowTf
			}
			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: ArrayProto: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: ArrayProto: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Dtype", wireType)
			}
			m.Dtype = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowTf
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.Dtype |= ArrayDataType(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field ArrayShape", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowTf
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthTf
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthTf
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.ArrayShape == nil {
				m.ArrayShape = &ArrayShape{}
			}
			if err := m.ArrayShape.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 3:
			if wireType == 5 {
				var v uint32
				if (iNdEx + 4) > l {
					return io.ErrUnexpectedEOF
				}
				v = uint32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
				iNdEx += 4
				v2 := float32(math.Float32frombits(v))
				m.FloatVal = append(m.FloatVal, v2)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowTf
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthTf
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthTf
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				elementCount = packedLen / 4
				if elementCount != 0 && len(m.FloatVal) == 0 {
					m.FloatVal = make([]float32, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v uint32
					if (iNdEx + 4) > l {
						return io.ErrUnexpectedEOF
					}
					v = uint32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
					iNdEx += 4
					v2 := float32(math.Float32frombits(v))
					m.FloatVal = append(m.FloatVal, v2)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field FloatVal", wireType)
			}
		case 4:
			if wireType == 1 {
				var v uint64
				if (iNdEx + 8) > l {
					return io.ErrUnexpectedEOF
				}
				v = uint64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
				iNdEx += 8
				v2 := float64(math.Float64frombits(v))
				m.DoubleVal = append(m.DoubleVal, v2)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowTf
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthTf
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthTf
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				elementCount = packedLen / 8
				if elementCount != 0 && len(m.DoubleVal) == 0 {
					m.DoubleVal = make([]float64, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v uint64
					if (iNdEx + 8) > l {
						return io.ErrUnexpectedEOF
					}
					v = uint64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
					iNdEx += 8
					v2 := float64(math.Float64frombits(v))
					m.DoubleVal = append(m.DoubleVal, v2)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field DoubleVal", wireType)
			}
		case 5:
			if wireType == 0 {
				var v int32
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowTf
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= int32(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.IntVal = append(m.IntVal, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowTf
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthTf
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthTf
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				var count int
				for _, integer := range dAtA[iNdEx:postIndex] {
					if integer < 128 {
						count++
					}
				}
				elementCount = count
				if elementCount != 0 && len(m.IntVal) == 0 {
					m.IntVal = make([]int32, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v int32
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowTf
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= int32(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.IntVal = append(m.IntVal, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field IntVal", wireType)
			}
		case 6:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field StringVal", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowTf
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthTf
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthTf
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.StringVal = append(m.StringVal, make([]byte, postIndex-iNdEx))
			copy(m.StringVal[len(m.StringVal)-1], dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		case 7:
			if wireType == 0 {
				var v int64
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowTf
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= int64(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.Int64Val = append(m.Int64Val, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowTf
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthTf
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthTf
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				var count int
				for _, integer := range dAtA[iNdEx:postIndex] {
					if integer < 128 {
						count++
					}
				}
				elementCount = count
				if elementCount != 0 && len(m.Int64Val) == 0 {
					m.Int64Val = make([]int64, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v int64
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowTf
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= int64(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.Int64Val = append(m.Int64Val, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Int64Val", wireType)
			}
		case 8:
			if wireType == 0 {
				var v int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowTf
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.BoolVal = append(m.BoolVal, bool(v != 0))
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowTf
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthTf
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthTf
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				elementCount = packedLen
				if elementCount != 0 && len(m.BoolVal) == 0 {
					m.BoolVal = make([]bool, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v int
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowTf
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= int(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.BoolVal = append(m.BoolVal, bool(v != 0))
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field BoolVal", wireType)
			}
		default:
			iNdEx = preIndex
			skippy, err := skipTf(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthTf
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthTf
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *PredictRequest) 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 ErrIntOverflowTf
			}
			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: PredictRequest: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: PredictRequest: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field SignatureName", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowTf
				}
				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 ErrInvalidLengthTf
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthTf
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.SignatureName = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Inputs", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowTf
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthTf
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthTf
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.Inputs == nil {
				m.Inputs = make(map[string]*ArrayProto)
			}
			var mapkey string
			var mapvalue *ArrayProto
			for iNdEx < postIndex {
				entryPreIndex := iNdEx
				var wire uint64
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowTf
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					wire |= uint64(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				fieldNum := int32(wire >> 3)
				if fieldNum == 1 {
					var stringLenmapkey uint64
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowTf
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						stringLenmapkey |= uint64(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					intStringLenmapkey := int(stringLenmapkey)
					if intStringLenmapkey < 0 {
						return ErrInvalidLengthTf
					}
					postStringIndexmapkey := iNdEx + intStringLenmapkey
					if postStringIndexmapkey < 0 {
						return ErrInvalidLengthTf
					}
					if postStringIndexmapkey > l {
						return io.ErrUnexpectedEOF
					}
					mapkey = string(dAtA[iNdEx:postStringIndexmapkey])
					iNdEx = postStringIndexmapkey
				} else if fieldNum == 2 {
					var mapmsglen int
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowTf
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						mapmsglen |= int(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					if mapmsglen < 0 {
						return ErrInvalidLengthTf
					}
					postmsgIndex := iNdEx + mapmsglen
					if postmsgIndex < 0 {
						return ErrInvalidLengthTf
					}
					if postmsgIndex > l {
						return io.ErrUnexpectedEOF
					}
					mapvalue = &ArrayProto{}
					if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {
						return err
					}
					iNdEx = postmsgIndex
				} else {
					iNdEx = entryPreIndex
					skippy, err := skipTf(dAtA[iNdEx:])
					if err != nil {
						return err
					}
					if skippy < 0 {
						return ErrInvalidLengthTf
					}
					if (iNdEx + skippy) > postIndex {
						return io.ErrUnexpectedEOF
					}
					iNdEx += skippy
				}
			}
			m.Inputs[mapkey] = mapvalue
			iNdEx = postIndex
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field OutputFilter", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowTf
				}
				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 ErrInvalidLengthTf
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthTf
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.OutputFilter = append(m.OutputFilter, string(dAtA[iNdEx:postIndex]))
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipTf(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthTf
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthTf
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *PredictResponse) 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 ErrIntOverflowTf
			}
			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: PredictResponse: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: PredictResponse: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Outputs", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowTf
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthTf
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthTf
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.Outputs == nil {
				m.Outputs = make(map[string]*ArrayProto)
			}
			var mapkey string
			var mapvalue *ArrayProto
			for iNdEx < postIndex {
				entryPreIndex := iNdEx
				var wire uint64
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowTf
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					wire |= uint64(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				fieldNum := int32(wire >> 3)
				if fieldNum == 1 {
					var stringLenmapkey uint64
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowTf
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						stringLenmapkey |= uint64(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					intStringLenmapkey := int(stringLenmapkey)
					if intStringLenmapkey < 0 {
						return ErrInvalidLengthTf
					}
					postStringIndexmapkey := iNdEx + intStringLenmapkey
					if postStringIndexmapkey < 0 {
						return ErrInvalidLengthTf
					}
					if postStringIndexmapkey > l {
						return io.ErrUnexpectedEOF
					}
					mapkey = string(dAtA[iNdEx:postStringIndexmapkey])
					iNdEx = postStringIndexmapkey
				} else if fieldNum == 2 {
					var mapmsglen int
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowTf
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						mapmsglen |= int(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					if mapmsglen < 0 {
						return ErrInvalidLengthTf
					}
					postmsgIndex := iNdEx + mapmsglen
					if postmsgIndex < 0 {
						return ErrInvalidLengthTf
					}
					if postmsgIndex > l {
						return io.ErrUnexpectedEOF
					}
					mapvalue = &ArrayProto{}
					if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {
						return err
					}
					iNdEx = postmsgIndex
				} else {
					iNdEx = entryPreIndex
					skippy, err := skipTf(dAtA[iNdEx:])
					if err != nil {
						return err
					}
					if skippy < 0 {
						return ErrInvalidLengthTf
					}
					if (iNdEx + skippy) > postIndex {
						return io.ErrUnexpectedEOF
					}
					iNdEx += skippy
				}
			}
			m.Outputs[mapkey] = mapvalue
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipTf(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthTf
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthTf
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func skipTf(dAtA []byte) (n int, err error) {
	l := len(dAtA)
	iNdEx := 0
	depth := 0
	for iNdEx < l {
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return 0, ErrIntOverflowTf
			}
			if iNdEx >= l {
				return 0, io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		wireType := int(wire & 0x7)
		switch wireType {
		case 0:
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return 0, ErrIntOverflowTf
				}
				if iNdEx >= l {
					return 0, io.ErrUnexpectedEOF
				}
				iNdEx++
				if dAtA[iNdEx-1] < 0x80 {
					break
				}
			}
		case 1:
			iNdEx += 8
		case 2:
			var length int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return 0, ErrIntOverflowTf
				}
				if iNdEx >= l {
					return 0, io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				length |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if length < 0 {
				return 0, ErrInvalidLengthTf
			}
			iNdEx += length
		case 3:
			depth++
		case 4:
			if depth == 0 {
				return 0, ErrUnexpectedEndOfGroupTf
			}
			depth--
		case 5:
			iNdEx += 4
		default:
			return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
		}
		if iNdEx < 0 {
			return 0, ErrInvalidLengthTf
		}
		if depth == 0 {
			return iNdEx, nil
		}
	}
	return 0, io.ErrUnexpectedEOF
}

var (
	ErrInvalidLengthTf        = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflowTf          = fmt.Errorf("proto: integer overflow")
	ErrUnexpectedEndOfGroupTf = fmt.Errorf("proto: unexpected end of group")
)
