// Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: combos/both/thetest.proto

package test

import (
	bytes "bytes"
	compress_gzip "compress/gzip"
	encoding_binary "encoding/binary"
	fmt "fmt"
	_ "github.com/gogo/protobuf/gogoproto"
	github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
	proto "github.com/gogo/protobuf/proto"
	github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
	github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
	github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom"
	github_com_gogo_protobuf_test_custom_dash_type "github.com/gogo/protobuf/test/custom-dash-type"
	io "io"
	io_ioutil "io/ioutil"
	math "math"
	math_bits "math/bits"
	reflect "reflect"
	sort "sort"
	strconv "strconv"
	strings "strings"
)

// 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.GoGoProtoPackageIsVersion3 // please upgrade the proto package

type TheTestEnum int32

const (
	A TheTestEnum = 0
	B TheTestEnum = 1
	C TheTestEnum = 2
)

var TheTestEnum_name = map[int32]string{
	0: "A",
	1: "B",
	2: "C",
}

var TheTestEnum_value = map[string]int32{
	"A": 0,
	"B": 1,
	"C": 2,
}

func (x TheTestEnum) Enum() *TheTestEnum {
	p := new(TheTestEnum)
	*p = x
	return p
}

func (x TheTestEnum) MarshalJSON() ([]byte, error) {
	return proto.MarshalJSONEnum(TheTestEnum_name, int32(x))
}

func (x *TheTestEnum) UnmarshalJSON(data []byte) error {
	value, err := proto.UnmarshalJSONEnum(TheTestEnum_value, data, "TheTestEnum")
	if err != nil {
		return err
	}
	*x = TheTestEnum(value)
	return nil
}

func (TheTestEnum) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{0}
}

type AnotherTestEnum int32

const (
	D AnotherTestEnum = 10
	E AnotherTestEnum = 11
)

var AnotherTestEnum_name = map[int32]string{
	10: "D",
	11: "E",
}

var AnotherTestEnum_value = map[string]int32{
	"D": 10,
	"E": 11,
}

func (x AnotherTestEnum) Enum() *AnotherTestEnum {
	p := new(AnotherTestEnum)
	*p = x
	return p
}

func (x AnotherTestEnum) MarshalJSON() ([]byte, error) {
	return proto.MarshalJSONEnum(AnotherTestEnum_name, int32(x))
}

func (x *AnotherTestEnum) UnmarshalJSON(data []byte) error {
	value, err := proto.UnmarshalJSONEnum(AnotherTestEnum_value, data, "AnotherTestEnum")
	if err != nil {
		return err
	}
	*x = AnotherTestEnum(value)
	return nil
}

func (AnotherTestEnum) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{1}
}

// YetAnotherTestEnum is used to test cross-package import of custom name
// fields and default resolution.
type YetAnotherTestEnum int32

const (
	AA          YetAnotherTestEnum = 0
	BetterYetBB YetAnotherTestEnum = 1
)

var YetAnotherTestEnum_name = map[int32]string{
	0: "AA",
	1: "BB",
}

var YetAnotherTestEnum_value = map[string]int32{
	"AA": 0,
	"BB": 1,
}

func (x YetAnotherTestEnum) Enum() *YetAnotherTestEnum {
	p := new(YetAnotherTestEnum)
	*p = x
	return p
}

func (x YetAnotherTestEnum) MarshalJSON() ([]byte, error) {
	return proto.MarshalJSONEnum(YetAnotherTestEnum_name, int32(x))
}

func (x *YetAnotherTestEnum) UnmarshalJSON(data []byte) error {
	value, err := proto.UnmarshalJSONEnum(YetAnotherTestEnum_value, data, "YetAnotherTestEnum")
	if err != nil {
		return err
	}
	*x = YetAnotherTestEnum(value)
	return nil
}

func (YetAnotherTestEnum) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{2}
}

// YetAnotherTestEnum is used to test cross-package import of custom name
// fields and default resolution.
type YetYetAnotherTestEnum int32

const (
	YetYetAnotherTestEnum_CC          YetYetAnotherTestEnum = 0
	YetYetAnotherTestEnum_BetterYetDD YetYetAnotherTestEnum = 1
)

var YetYetAnotherTestEnum_name = map[int32]string{
	0: "CC",
	1: "DD",
}

var YetYetAnotherTestEnum_value = map[string]int32{
	"CC": 0,
	"DD": 1,
}

func (x YetYetAnotherTestEnum) Enum() *YetYetAnotherTestEnum {
	p := new(YetYetAnotherTestEnum)
	*p = x
	return p
}

func (x YetYetAnotherTestEnum) MarshalJSON() ([]byte, error) {
	return proto.MarshalJSONEnum(YetYetAnotherTestEnum_name, int32(x))
}

func (x *YetYetAnotherTestEnum) UnmarshalJSON(data []byte) error {
	value, err := proto.UnmarshalJSONEnum(YetYetAnotherTestEnum_value, data, "YetYetAnotherTestEnum")
	if err != nil {
		return err
	}
	*x = YetYetAnotherTestEnum(value)
	return nil
}

func (YetYetAnotherTestEnum) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{3}
}

type NestedDefinition_NestedEnum int32

const (
	TYPE_NESTED NestedDefinition_NestedEnum = 1
)

var NestedDefinition_NestedEnum_name = map[int32]string{
	1: "TYPE_NESTED",
}

var NestedDefinition_NestedEnum_value = map[string]int32{
	"TYPE_NESTED": 1,
}

func (x NestedDefinition_NestedEnum) Enum() *NestedDefinition_NestedEnum {
	p := new(NestedDefinition_NestedEnum)
	*p = x
	return p
}

func (x NestedDefinition_NestedEnum) MarshalJSON() ([]byte, error) {
	return proto.MarshalJSONEnum(NestedDefinition_NestedEnum_name, int32(x))
}

func (x *NestedDefinition_NestedEnum) UnmarshalJSON(data []byte) error {
	value, err := proto.UnmarshalJSONEnum(NestedDefinition_NestedEnum_value, data, "NestedDefinition_NestedEnum")
	if err != nil {
		return err
	}
	*x = NestedDefinition_NestedEnum(value)
	return nil
}

func (NestedDefinition_NestedEnum) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{42, 0}
}

type NidOptNative struct {
	Field1               float64  `protobuf:"fixed64,1,opt,name=Field1" json:"Field1"`
	Field2               float32  `protobuf:"fixed32,2,opt,name=Field2" json:"Field2"`
	Field3               int32    `protobuf:"varint,3,opt,name=Field3" json:"Field3"`
	Field4               int64    `protobuf:"varint,4,opt,name=Field4" json:"Field4"`
	Field5               uint32   `protobuf:"varint,5,opt,name=Field5" json:"Field5"`
	Field6               uint64   `protobuf:"varint,6,opt,name=Field6" json:"Field6"`
	Field7               int32    `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7"`
	Field8               int64    `protobuf:"zigzag64,8,opt,name=Field8" json:"Field8"`
	Field9               uint32   `protobuf:"fixed32,9,opt,name=Field9" json:"Field9"`
	Field10              int32    `protobuf:"fixed32,10,opt,name=Field10" json:"Field10"`
	Field11              uint64   `protobuf:"fixed64,11,opt,name=Field11" json:"Field11"`
	Field12              int64    `protobuf:"fixed64,12,opt,name=Field12" json:"Field12"`
	Field13              bool     `protobuf:"varint,13,opt,name=Field13" json:"Field13"`
	Field14              string   `protobuf:"bytes,14,opt,name=Field14" json:"Field14"`
	Field15              []byte   `protobuf:"bytes,15,opt,name=Field15" json:"Field15"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *NidOptNative) Reset()      { *m = NidOptNative{} }
func (*NidOptNative) ProtoMessage() {}
func (*NidOptNative) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{0}
}
func (m *NidOptNative) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *NidOptNative) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_NidOptNative.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 *NidOptNative) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NidOptNative.Merge(m, src)
}
func (m *NidOptNative) XXX_Size() int {
	return m.Size()
}
func (m *NidOptNative) XXX_DiscardUnknown() {
	xxx_messageInfo_NidOptNative.DiscardUnknown(m)
}

var xxx_messageInfo_NidOptNative proto.InternalMessageInfo

type NinOptNative struct {
	Field1               *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"`
	Field2               *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"`
	Field3               *int32   `protobuf:"varint,3,opt,name=Field3" json:"Field3,omitempty"`
	Field4               *int64   `protobuf:"varint,4,opt,name=Field4" json:"Field4,omitempty"`
	Field5               *uint32  `protobuf:"varint,5,opt,name=Field5" json:"Field5,omitempty"`
	Field6               *uint64  `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"`
	Field7               *int32   `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"`
	Field8               *int64   `protobuf:"zigzag64,8,opt,name=Field8" json:"Field8,omitempty"`
	Field9               *uint32  `protobuf:"fixed32,9,opt,name=Field9" json:"Field9,omitempty"`
	Field10              *int32   `protobuf:"fixed32,10,opt,name=Field10" json:"Field10,omitempty"`
	Field11              *uint64  `protobuf:"fixed64,11,opt,name=Field11" json:"Field11,omitempty"`
	Field12              *int64   `protobuf:"fixed64,12,opt,name=Field12" json:"Field12,omitempty"`
	Field13              *bool    `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"`
	Field14              *string  `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"`
	Field15              []byte   `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *NinOptNative) Reset()      { *m = NinOptNative{} }
func (*NinOptNative) ProtoMessage() {}
func (*NinOptNative) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{1}
}
func (m *NinOptNative) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *NinOptNative) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_NinOptNative.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 *NinOptNative) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NinOptNative.Merge(m, src)
}
func (m *NinOptNative) XXX_Size() int {
	return m.Size()
}
func (m *NinOptNative) XXX_DiscardUnknown() {
	xxx_messageInfo_NinOptNative.DiscardUnknown(m)
}

var xxx_messageInfo_NinOptNative proto.InternalMessageInfo

type NidRepNative struct {
	Field1               []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"`
	Field2               []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"`
	Field3               []int32   `protobuf:"varint,3,rep,name=Field3" json:"Field3,omitempty"`
	Field4               []int64   `protobuf:"varint,4,rep,name=Field4" json:"Field4,omitempty"`
	Field5               []uint32  `protobuf:"varint,5,rep,name=Field5" json:"Field5,omitempty"`
	Field6               []uint64  `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"`
	Field7               []int32   `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"`
	Field8               []int64   `protobuf:"zigzag64,8,rep,name=Field8" json:"Field8,omitempty"`
	Field9               []uint32  `protobuf:"fixed32,9,rep,name=Field9" json:"Field9,omitempty"`
	Field10              []int32   `protobuf:"fixed32,10,rep,name=Field10" json:"Field10,omitempty"`
	Field11              []uint64  `protobuf:"fixed64,11,rep,name=Field11" json:"Field11,omitempty"`
	Field12              []int64   `protobuf:"fixed64,12,rep,name=Field12" json:"Field12,omitempty"`
	Field13              []bool    `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"`
	Field14              []string  `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"`
	Field15              [][]byte  `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"`
	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
	XXX_unrecognized     []byte    `json:"-"`
	XXX_sizecache        int32     `json:"-"`
}

func (m *NidRepNative) Reset()      { *m = NidRepNative{} }
func (*NidRepNative) ProtoMessage() {}
func (*NidRepNative) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{2}
}
func (m *NidRepNative) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *NidRepNative) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_NidRepNative.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 *NidRepNative) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NidRepNative.Merge(m, src)
}
func (m *NidRepNative) XXX_Size() int {
	return m.Size()
}
func (m *NidRepNative) XXX_DiscardUnknown() {
	xxx_messageInfo_NidRepNative.DiscardUnknown(m)
}

var xxx_messageInfo_NidRepNative proto.InternalMessageInfo

type NinRepNative struct {
	Field1               []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"`
	Field2               []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"`
	Field3               []int32   `protobuf:"varint,3,rep,name=Field3" json:"Field3,omitempty"`
	Field4               []int64   `protobuf:"varint,4,rep,name=Field4" json:"Field4,omitempty"`
	Field5               []uint32  `protobuf:"varint,5,rep,name=Field5" json:"Field5,omitempty"`
	Field6               []uint64  `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"`
	Field7               []int32   `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"`
	Field8               []int64   `protobuf:"zigzag64,8,rep,name=Field8" json:"Field8,omitempty"`
	Field9               []uint32  `protobuf:"fixed32,9,rep,name=Field9" json:"Field9,omitempty"`
	Field10              []int32   `protobuf:"fixed32,10,rep,name=Field10" json:"Field10,omitempty"`
	Field11              []uint64  `protobuf:"fixed64,11,rep,name=Field11" json:"Field11,omitempty"`
	Field12              []int64   `protobuf:"fixed64,12,rep,name=Field12" json:"Field12,omitempty"`
	Field13              []bool    `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"`
	Field14              []string  `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"`
	Field15              [][]byte  `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"`
	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
	XXX_unrecognized     []byte    `json:"-"`
	XXX_sizecache        int32     `json:"-"`
}

func (m *NinRepNative) Reset()      { *m = NinRepNative{} }
func (*NinRepNative) ProtoMessage() {}
func (*NinRepNative) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{3}
}
func (m *NinRepNative) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *NinRepNative) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_NinRepNative.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 *NinRepNative) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NinRepNative.Merge(m, src)
}
func (m *NinRepNative) XXX_Size() int {
	return m.Size()
}
func (m *NinRepNative) XXX_DiscardUnknown() {
	xxx_messageInfo_NinRepNative.DiscardUnknown(m)
}

var xxx_messageInfo_NinRepNative proto.InternalMessageInfo

type NidRepPackedNative struct {
	Field1               []float64 `protobuf:"fixed64,1,rep,packed,name=Field1" json:"Field1,omitempty"`
	Field2               []float32 `protobuf:"fixed32,2,rep,packed,name=Field2" json:"Field2,omitempty"`
	Field3               []int32   `protobuf:"varint,3,rep,packed,name=Field3" json:"Field3,omitempty"`
	Field4               []int64   `protobuf:"varint,4,rep,packed,name=Field4" json:"Field4,omitempty"`
	Field5               []uint32  `protobuf:"varint,5,rep,packed,name=Field5" json:"Field5,omitempty"`
	Field6               []uint64  `protobuf:"varint,6,rep,packed,name=Field6" json:"Field6,omitempty"`
	Field7               []int32   `protobuf:"zigzag32,7,rep,packed,name=Field7" json:"Field7,omitempty"`
	Field8               []int64   `protobuf:"zigzag64,8,rep,packed,name=Field8" json:"Field8,omitempty"`
	Field9               []uint32  `protobuf:"fixed32,9,rep,packed,name=Field9" json:"Field9,omitempty"`
	Field10              []int32   `protobuf:"fixed32,10,rep,packed,name=Field10" json:"Field10,omitempty"`
	Field11              []uint64  `protobuf:"fixed64,11,rep,packed,name=Field11" json:"Field11,omitempty"`
	Field12              []int64   `protobuf:"fixed64,12,rep,packed,name=Field12" json:"Field12,omitempty"`
	Field13              []bool    `protobuf:"varint,13,rep,packed,name=Field13" json:"Field13,omitempty"`
	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
	XXX_unrecognized     []byte    `json:"-"`
	XXX_sizecache        int32     `json:"-"`
}

func (m *NidRepPackedNative) Reset()      { *m = NidRepPackedNative{} }
func (*NidRepPackedNative) ProtoMessage() {}
func (*NidRepPackedNative) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{4}
}
func (m *NidRepPackedNative) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *NidRepPackedNative) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_NidRepPackedNative.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 *NidRepPackedNative) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NidRepPackedNative.Merge(m, src)
}
func (m *NidRepPackedNative) XXX_Size() int {
	return m.Size()
}
func (m *NidRepPackedNative) XXX_DiscardUnknown() {
	xxx_messageInfo_NidRepPackedNative.DiscardUnknown(m)
}

var xxx_messageInfo_NidRepPackedNative proto.InternalMessageInfo

type NinRepPackedNative struct {
	Field1               []float64 `protobuf:"fixed64,1,rep,packed,name=Field1" json:"Field1,omitempty"`
	Field2               []float32 `protobuf:"fixed32,2,rep,packed,name=Field2" json:"Field2,omitempty"`
	Field3               []int32   `protobuf:"varint,3,rep,packed,name=Field3" json:"Field3,omitempty"`
	Field4               []int64   `protobuf:"varint,4,rep,packed,name=Field4" json:"Field4,omitempty"`
	Field5               []uint32  `protobuf:"varint,5,rep,packed,name=Field5" json:"Field5,omitempty"`
	Field6               []uint64  `protobuf:"varint,6,rep,packed,name=Field6" json:"Field6,omitempty"`
	Field7               []int32   `protobuf:"zigzag32,7,rep,packed,name=Field7" json:"Field7,omitempty"`
	Field8               []int64   `protobuf:"zigzag64,8,rep,packed,name=Field8" json:"Field8,omitempty"`
	Field9               []uint32  `protobuf:"fixed32,9,rep,packed,name=Field9" json:"Field9,omitempty"`
	Field10              []int32   `protobuf:"fixed32,10,rep,packed,name=Field10" json:"Field10,omitempty"`
	Field11              []uint64  `protobuf:"fixed64,11,rep,packed,name=Field11" json:"Field11,omitempty"`
	Field12              []int64   `protobuf:"fixed64,12,rep,packed,name=Field12" json:"Field12,omitempty"`
	Field13              []bool    `protobuf:"varint,13,rep,packed,name=Field13" json:"Field13,omitempty"`
	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
	XXX_unrecognized     []byte    `json:"-"`
	XXX_sizecache        int32     `json:"-"`
}

func (m *NinRepPackedNative) Reset()      { *m = NinRepPackedNative{} }
func (*NinRepPackedNative) ProtoMessage() {}
func (*NinRepPackedNative) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{5}
}
func (m *NinRepPackedNative) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *NinRepPackedNative) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_NinRepPackedNative.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 *NinRepPackedNative) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NinRepPackedNative.Merge(m, src)
}
func (m *NinRepPackedNative) XXX_Size() int {
	return m.Size()
}
func (m *NinRepPackedNative) XXX_DiscardUnknown() {
	xxx_messageInfo_NinRepPackedNative.DiscardUnknown(m)
}

var xxx_messageInfo_NinRepPackedNative proto.InternalMessageInfo

type NidOptStruct struct {
	Field1               float64      `protobuf:"fixed64,1,opt,name=Field1" json:"Field1"`
	Field2               float32      `protobuf:"fixed32,2,opt,name=Field2" json:"Field2"`
	Field3               NidOptNative `protobuf:"bytes,3,opt,name=Field3" json:"Field3"`
	Field4               NinOptNative `protobuf:"bytes,4,opt,name=Field4" json:"Field4"`
	Field6               uint64       `protobuf:"varint,6,opt,name=Field6" json:"Field6"`
	Field7               int32        `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7"`
	Field8               NidOptNative `protobuf:"bytes,8,opt,name=Field8" json:"Field8"`
	Field13              bool         `protobuf:"varint,13,opt,name=Field13" json:"Field13"`
	Field14              string       `protobuf:"bytes,14,opt,name=Field14" json:"Field14"`
	Field15              []byte       `protobuf:"bytes,15,opt,name=Field15" json:"Field15"`
	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
	XXX_unrecognized     []byte       `json:"-"`
	XXX_sizecache        int32        `json:"-"`
}

func (m *NidOptStruct) Reset()      { *m = NidOptStruct{} }
func (*NidOptStruct) ProtoMessage() {}
func (*NidOptStruct) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{6}
}
func (m *NidOptStruct) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *NidOptStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_NidOptStruct.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 *NidOptStruct) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NidOptStruct.Merge(m, src)
}
func (m *NidOptStruct) XXX_Size() int {
	return m.Size()
}
func (m *NidOptStruct) XXX_DiscardUnknown() {
	xxx_messageInfo_NidOptStruct.DiscardUnknown(m)
}

var xxx_messageInfo_NidOptStruct proto.InternalMessageInfo

type NinOptStruct struct {
	Field1               *float64      `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"`
	Field2               *float32      `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"`
	Field3               *NidOptNative `protobuf:"bytes,3,opt,name=Field3" json:"Field3,omitempty"`
	Field4               *NinOptNative `protobuf:"bytes,4,opt,name=Field4" json:"Field4,omitempty"`
	Field6               *uint64       `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"`
	Field7               *int32        `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"`
	Field8               *NidOptNative `protobuf:"bytes,8,opt,name=Field8" json:"Field8,omitempty"`
	Field13              *bool         `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"`
	Field14              *string       `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"`
	Field15              []byte        `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

func (m *NinOptStruct) Reset()      { *m = NinOptStruct{} }
func (*NinOptStruct) ProtoMessage() {}
func (*NinOptStruct) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{7}
}
func (m *NinOptStruct) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *NinOptStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_NinOptStruct.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 *NinOptStruct) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NinOptStruct.Merge(m, src)
}
func (m *NinOptStruct) XXX_Size() int {
	return m.Size()
}
func (m *NinOptStruct) XXX_DiscardUnknown() {
	xxx_messageInfo_NinOptStruct.DiscardUnknown(m)
}

var xxx_messageInfo_NinOptStruct proto.InternalMessageInfo

type NidRepStruct struct {
	Field1               []float64      `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"`
	Field2               []float32      `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"`
	Field3               []NidOptNative `protobuf:"bytes,3,rep,name=Field3" json:"Field3"`
	Field4               []NinOptNative `protobuf:"bytes,4,rep,name=Field4" json:"Field4"`
	Field6               []uint64       `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"`
	Field7               []int32        `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"`
	Field8               []NidOptNative `protobuf:"bytes,8,rep,name=Field8" json:"Field8"`
	Field13              []bool         `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"`
	Field14              []string       `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"`
	Field15              [][]byte       `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

func (m *NidRepStruct) Reset()      { *m = NidRepStruct{} }
func (*NidRepStruct) ProtoMessage() {}
func (*NidRepStruct) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{8}
}
func (m *NidRepStruct) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *NidRepStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_NidRepStruct.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 *NidRepStruct) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NidRepStruct.Merge(m, src)
}
func (m *NidRepStruct) XXX_Size() int {
	return m.Size()
}
func (m *NidRepStruct) XXX_DiscardUnknown() {
	xxx_messageInfo_NidRepStruct.DiscardUnknown(m)
}

var xxx_messageInfo_NidRepStruct proto.InternalMessageInfo

type NinRepStruct struct {
	Field1               []float64       `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"`
	Field2               []float32       `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"`
	Field3               []*NidOptNative `protobuf:"bytes,3,rep,name=Field3" json:"Field3,omitempty"`
	Field4               []*NinOptNative `protobuf:"bytes,4,rep,name=Field4" json:"Field4,omitempty"`
	Field6               []uint64        `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"`
	Field7               []int32         `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"`
	Field8               []*NidOptNative `protobuf:"bytes,8,rep,name=Field8" json:"Field8,omitempty"`
	Field13              []bool          `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"`
	Field14              []string        `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"`
	Field15              [][]byte        `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"`
	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
	XXX_unrecognized     []byte          `json:"-"`
	XXX_sizecache        int32           `json:"-"`
}

func (m *NinRepStruct) Reset()      { *m = NinRepStruct{} }
func (*NinRepStruct) ProtoMessage() {}
func (*NinRepStruct) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{9}
}
func (m *NinRepStruct) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *NinRepStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_NinRepStruct.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 *NinRepStruct) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NinRepStruct.Merge(m, src)
}
func (m *NinRepStruct) XXX_Size() int {
	return m.Size()
}
func (m *NinRepStruct) XXX_DiscardUnknown() {
	xxx_messageInfo_NinRepStruct.DiscardUnknown(m)
}

var xxx_messageInfo_NinRepStruct proto.InternalMessageInfo

type NidEmbeddedStruct struct {
	*NidOptNative        `protobuf:"bytes,1,opt,name=Field1,embedded=Field1" json:"Field1,omitempty"`
	Field200             NidOptNative `protobuf:"bytes,200,opt,name=Field200" json:"Field200"`
	Field210             bool         `protobuf:"varint,210,opt,name=Field210" json:"Field210"`
	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
	XXX_unrecognized     []byte       `json:"-"`
	XXX_sizecache        int32        `json:"-"`
}

func (m *NidEmbeddedStruct) Reset()      { *m = NidEmbeddedStruct{} }
func (*NidEmbeddedStruct) ProtoMessage() {}
func (*NidEmbeddedStruct) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{10}
}
func (m *NidEmbeddedStruct) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *NidEmbeddedStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_NidEmbeddedStruct.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 *NidEmbeddedStruct) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NidEmbeddedStruct.Merge(m, src)
}
func (m *NidEmbeddedStruct) XXX_Size() int {
	return m.Size()
}
func (m *NidEmbeddedStruct) XXX_DiscardUnknown() {
	xxx_messageInfo_NidEmbeddedStruct.DiscardUnknown(m)
}

var xxx_messageInfo_NidEmbeddedStruct proto.InternalMessageInfo

type NinEmbeddedStruct struct {
	*NidOptNative        `protobuf:"bytes,1,opt,name=Field1,embedded=Field1" json:"Field1,omitempty"`
	Field200             *NidOptNative `protobuf:"bytes,200,opt,name=Field200" json:"Field200,omitempty"`
	Field210             *bool         `protobuf:"varint,210,opt,name=Field210" json:"Field210,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

func (m *NinEmbeddedStruct) Reset()      { *m = NinEmbeddedStruct{} }
func (*NinEmbeddedStruct) ProtoMessage() {}
func (*NinEmbeddedStruct) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{11}
}
func (m *NinEmbeddedStruct) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *NinEmbeddedStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_NinEmbeddedStruct.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 *NinEmbeddedStruct) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NinEmbeddedStruct.Merge(m, src)
}
func (m *NinEmbeddedStruct) XXX_Size() int {
	return m.Size()
}
func (m *NinEmbeddedStruct) XXX_DiscardUnknown() {
	xxx_messageInfo_NinEmbeddedStruct.DiscardUnknown(m)
}

var xxx_messageInfo_NinEmbeddedStruct proto.InternalMessageInfo

type NidNestedStruct struct {
	Field1               NidOptStruct   `protobuf:"bytes,1,opt,name=Field1" json:"Field1"`
	Field2               []NidRepStruct `protobuf:"bytes,2,rep,name=Field2" json:"Field2"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

func (m *NidNestedStruct) Reset()      { *m = NidNestedStruct{} }
func (*NidNestedStruct) ProtoMessage() {}
func (*NidNestedStruct) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{12}
}
func (m *NidNestedStruct) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *NidNestedStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_NidNestedStruct.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 *NidNestedStruct) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NidNestedStruct.Merge(m, src)
}
func (m *NidNestedStruct) XXX_Size() int {
	return m.Size()
}
func (m *NidNestedStruct) XXX_DiscardUnknown() {
	xxx_messageInfo_NidNestedStruct.DiscardUnknown(m)
}

var xxx_messageInfo_NidNestedStruct proto.InternalMessageInfo

type NinNestedStruct struct {
	Field1               *NinOptStruct   `protobuf:"bytes,1,opt,name=Field1" json:"Field1,omitempty"`
	Field2               []*NinRepStruct `protobuf:"bytes,2,rep,name=Field2" json:"Field2,omitempty"`
	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
	XXX_unrecognized     []byte          `json:"-"`
	XXX_sizecache        int32           `json:"-"`
}

func (m *NinNestedStruct) Reset()      { *m = NinNestedStruct{} }
func (*NinNestedStruct) ProtoMessage() {}
func (*NinNestedStruct) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{13}
}
func (m *NinNestedStruct) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *NinNestedStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_NinNestedStruct.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 *NinNestedStruct) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NinNestedStruct.Merge(m, src)
}
func (m *NinNestedStruct) XXX_Size() int {
	return m.Size()
}
func (m *NinNestedStruct) XXX_DiscardUnknown() {
	xxx_messageInfo_NinNestedStruct.DiscardUnknown(m)
}

var xxx_messageInfo_NinNestedStruct proto.InternalMessageInfo

type NidOptCustom struct {
	Id                   Uuid                                         `protobuf:"bytes,1,opt,name=Id,customtype=Uuid" json:"Id"`
	Value                github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value"`
	XXX_NoUnkeyedLiteral struct{}                                     `json:"-"`
	XXX_unrecognized     []byte                                       `json:"-"`
	XXX_sizecache        int32                                        `json:"-"`
}

func (m *NidOptCustom) Reset()      { *m = NidOptCustom{} }
func (*NidOptCustom) ProtoMessage() {}
func (*NidOptCustom) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{14}
}
func (m *NidOptCustom) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *NidOptCustom) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_NidOptCustom.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 *NidOptCustom) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NidOptCustom.Merge(m, src)
}
func (m *NidOptCustom) XXX_Size() int {
	return m.Size()
}
func (m *NidOptCustom) XXX_DiscardUnknown() {
	xxx_messageInfo_NidOptCustom.DiscardUnknown(m)
}

var xxx_messageInfo_NidOptCustom proto.InternalMessageInfo

type CustomDash struct {
	Value                *github_com_gogo_protobuf_test_custom_dash_type.Bytes `protobuf:"bytes,1,opt,name=Value,customtype=github.com/gogo/protobuf/test/custom-dash-type.Bytes" json:"Value,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                                              `json:"-"`
	XXX_unrecognized     []byte                                                `json:"-"`
	XXX_sizecache        int32                                                 `json:"-"`
}

func (m *CustomDash) Reset()      { *m = CustomDash{} }
func (*CustomDash) ProtoMessage() {}
func (*CustomDash) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{15}
}
func (m *CustomDash) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *CustomDash) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_CustomDash.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 *CustomDash) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CustomDash.Merge(m, src)
}
func (m *CustomDash) XXX_Size() int {
	return m.Size()
}
func (m *CustomDash) XXX_DiscardUnknown() {
	xxx_messageInfo_CustomDash.DiscardUnknown(m)
}

var xxx_messageInfo_CustomDash proto.InternalMessageInfo

type NinOptCustom struct {
	Id                   *Uuid                                         `protobuf:"bytes,1,opt,name=Id,customtype=Uuid" json:"Id,omitempty"`
	Value                *github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                                      `json:"-"`
	XXX_unrecognized     []byte                                        `json:"-"`
	XXX_sizecache        int32                                         `json:"-"`
}

func (m *NinOptCustom) Reset()      { *m = NinOptCustom{} }
func (*NinOptCustom) ProtoMessage() {}
func (*NinOptCustom) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{16}
}
func (m *NinOptCustom) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *NinOptCustom) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_NinOptCustom.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 *NinOptCustom) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NinOptCustom.Merge(m, src)
}
func (m *NinOptCustom) XXX_Size() int {
	return m.Size()
}
func (m *NinOptCustom) XXX_DiscardUnknown() {
	xxx_messageInfo_NinOptCustom.DiscardUnknown(m)
}

var xxx_messageInfo_NinOptCustom proto.InternalMessageInfo

type NidRepCustom struct {
	Id                   []Uuid                                         `protobuf:"bytes,1,rep,name=Id,customtype=Uuid" json:"Id"`
	Value                []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value"`
	XXX_NoUnkeyedLiteral struct{}                                       `json:"-"`
	XXX_unrecognized     []byte                                         `json:"-"`
	XXX_sizecache        int32                                          `json:"-"`
}

func (m *NidRepCustom) Reset()      { *m = NidRepCustom{} }
func (*NidRepCustom) ProtoMessage() {}
func (*NidRepCustom) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{17}
}
func (m *NidRepCustom) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *NidRepCustom) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_NidRepCustom.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 *NidRepCustom) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NidRepCustom.Merge(m, src)
}
func (m *NidRepCustom) XXX_Size() int {
	return m.Size()
}
func (m *NidRepCustom) XXX_DiscardUnknown() {
	xxx_messageInfo_NidRepCustom.DiscardUnknown(m)
}

var xxx_messageInfo_NidRepCustom proto.InternalMessageInfo

type NinRepCustom struct {
	Id                   []Uuid                                         `protobuf:"bytes,1,rep,name=Id,customtype=Uuid" json:"Id,omitempty"`
	Value                []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                                       `json:"-"`
	XXX_unrecognized     []byte                                         `json:"-"`
	XXX_sizecache        int32                                          `json:"-"`
}

func (m *NinRepCustom) Reset()      { *m = NinRepCustom{} }
func (*NinRepCustom) ProtoMessage() {}
func (*NinRepCustom) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{18}
}
func (m *NinRepCustom) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *NinRepCustom) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_NinRepCustom.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 *NinRepCustom) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NinRepCustom.Merge(m, src)
}
func (m *NinRepCustom) XXX_Size() int {
	return m.Size()
}
func (m *NinRepCustom) XXX_DiscardUnknown() {
	xxx_messageInfo_NinRepCustom.DiscardUnknown(m)
}

var xxx_messageInfo_NinRepCustom proto.InternalMessageInfo

type NinOptNativeUnion struct {
	Field1               *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"`
	Field2               *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"`
	Field3               *int32   `protobuf:"varint,3,opt,name=Field3" json:"Field3,omitempty"`
	Field4               *int64   `protobuf:"varint,4,opt,name=Field4" json:"Field4,omitempty"`
	Field5               *uint32  `protobuf:"varint,5,opt,name=Field5" json:"Field5,omitempty"`
	Field6               *uint64  `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"`
	Field13              *bool    `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"`
	Field14              *string  `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"`
	Field15              []byte   `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *NinOptNativeUnion) Reset()      { *m = NinOptNativeUnion{} }
func (*NinOptNativeUnion) ProtoMessage() {}
func (*NinOptNativeUnion) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{19}
}
func (m *NinOptNativeUnion) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *NinOptNativeUnion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_NinOptNativeUnion.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 *NinOptNativeUnion) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NinOptNativeUnion.Merge(m, src)
}
func (m *NinOptNativeUnion) XXX_Size() int {
	return m.Size()
}
func (m *NinOptNativeUnion) XXX_DiscardUnknown() {
	xxx_messageInfo_NinOptNativeUnion.DiscardUnknown(m)
}

var xxx_messageInfo_NinOptNativeUnion proto.InternalMessageInfo

type NinOptStructUnion struct {
	Field1               *float64      `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"`
	Field2               *float32      `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"`
	Field3               *NidOptNative `protobuf:"bytes,3,opt,name=Field3" json:"Field3,omitempty"`
	Field4               *NinOptNative `protobuf:"bytes,4,opt,name=Field4" json:"Field4,omitempty"`
	Field6               *uint64       `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"`
	Field7               *int32        `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"`
	Field13              *bool         `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"`
	Field14              *string       `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"`
	Field15              []byte        `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

func (m *NinOptStructUnion) Reset()      { *m = NinOptStructUnion{} }
func (*NinOptStructUnion) ProtoMessage() {}
func (*NinOptStructUnion) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{20}
}
func (m *NinOptStructUnion) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *NinOptStructUnion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_NinOptStructUnion.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 *NinOptStructUnion) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NinOptStructUnion.Merge(m, src)
}
func (m *NinOptStructUnion) XXX_Size() int {
	return m.Size()
}
func (m *NinOptStructUnion) XXX_DiscardUnknown() {
	xxx_messageInfo_NinOptStructUnion.DiscardUnknown(m)
}

var xxx_messageInfo_NinOptStructUnion proto.InternalMessageInfo

type NinEmbeddedStructUnion struct {
	*NidOptNative        `protobuf:"bytes,1,opt,name=Field1,embedded=Field1" json:"Field1,omitempty"`
	Field200             *NinOptNative `protobuf:"bytes,200,opt,name=Field200" json:"Field200,omitempty"`
	Field210             *bool         `protobuf:"varint,210,opt,name=Field210" json:"Field210,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

func (m *NinEmbeddedStructUnion) Reset()      { *m = NinEmbeddedStructUnion{} }
func (*NinEmbeddedStructUnion) ProtoMessage() {}
func (*NinEmbeddedStructUnion) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{21}
}
func (m *NinEmbeddedStructUnion) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *NinEmbeddedStructUnion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_NinEmbeddedStructUnion.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 *NinEmbeddedStructUnion) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NinEmbeddedStructUnion.Merge(m, src)
}
func (m *NinEmbeddedStructUnion) XXX_Size() int {
	return m.Size()
}
func (m *NinEmbeddedStructUnion) XXX_DiscardUnknown() {
	xxx_messageInfo_NinEmbeddedStructUnion.DiscardUnknown(m)
}

var xxx_messageInfo_NinEmbeddedStructUnion proto.InternalMessageInfo

type NinNestedStructUnion struct {
	Field1               *NinOptNativeUnion      `protobuf:"bytes,1,opt,name=Field1" json:"Field1,omitempty"`
	Field2               *NinOptStructUnion      `protobuf:"bytes,2,opt,name=Field2" json:"Field2,omitempty"`
	Field3               *NinEmbeddedStructUnion `protobuf:"bytes,3,opt,name=Field3" json:"Field3,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
	XXX_unrecognized     []byte                  `json:"-"`
	XXX_sizecache        int32                   `json:"-"`
}

func (m *NinNestedStructUnion) Reset()      { *m = NinNestedStructUnion{} }
func (*NinNestedStructUnion) ProtoMessage() {}
func (*NinNestedStructUnion) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{22}
}
func (m *NinNestedStructUnion) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *NinNestedStructUnion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_NinNestedStructUnion.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 *NinNestedStructUnion) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NinNestedStructUnion.Merge(m, src)
}
func (m *NinNestedStructUnion) XXX_Size() int {
	return m.Size()
}
func (m *NinNestedStructUnion) XXX_DiscardUnknown() {
	xxx_messageInfo_NinNestedStructUnion.DiscardUnknown(m)
}

var xxx_messageInfo_NinNestedStructUnion proto.InternalMessageInfo

type Tree struct {
	Or                   *OrBranch  `protobuf:"bytes,1,opt,name=Or" json:"Or,omitempty"`
	And                  *AndBranch `protobuf:"bytes,2,opt,name=And" json:"And,omitempty"`
	Leaf                 *Leaf      `protobuf:"bytes,3,opt,name=Leaf" json:"Leaf,omitempty"`
	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
	XXX_unrecognized     []byte     `json:"-"`
	XXX_sizecache        int32      `json:"-"`
}

func (m *Tree) Reset()      { *m = Tree{} }
func (*Tree) ProtoMessage() {}
func (*Tree) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{23}
}
func (m *Tree) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *Tree) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_Tree.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 *Tree) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Tree.Merge(m, src)
}
func (m *Tree) XXX_Size() int {
	return m.Size()
}
func (m *Tree) XXX_DiscardUnknown() {
	xxx_messageInfo_Tree.DiscardUnknown(m)
}

var xxx_messageInfo_Tree proto.InternalMessageInfo

type OrBranch struct {
	Left                 Tree     `protobuf:"bytes,1,opt,name=Left" json:"Left"`
	Right                Tree     `protobuf:"bytes,2,opt,name=Right" json:"Right"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *OrBranch) Reset()      { *m = OrBranch{} }
func (*OrBranch) ProtoMessage() {}
func (*OrBranch) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{24}
}
func (m *OrBranch) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *OrBranch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_OrBranch.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 *OrBranch) XXX_Merge(src proto.Message) {
	xxx_messageInfo_OrBranch.Merge(m, src)
}
func (m *OrBranch) XXX_Size() int {
	return m.Size()
}
func (m *OrBranch) XXX_DiscardUnknown() {
	xxx_messageInfo_OrBranch.DiscardUnknown(m)
}

var xxx_messageInfo_OrBranch proto.InternalMessageInfo

type AndBranch struct {
	Left                 Tree     `protobuf:"bytes,1,opt,name=Left" json:"Left"`
	Right                Tree     `protobuf:"bytes,2,opt,name=Right" json:"Right"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *AndBranch) Reset()      { *m = AndBranch{} }
func (*AndBranch) ProtoMessage() {}
func (*AndBranch) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{25}
}
func (m *AndBranch) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *AndBranch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_AndBranch.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 *AndBranch) XXX_Merge(src proto.Message) {
	xxx_messageInfo_AndBranch.Merge(m, src)
}
func (m *AndBranch) XXX_Size() int {
	return m.Size()
}
func (m *AndBranch) XXX_DiscardUnknown() {
	xxx_messageInfo_AndBranch.DiscardUnknown(m)
}

var xxx_messageInfo_AndBranch proto.InternalMessageInfo

type Leaf struct {
	Value                int64    `protobuf:"varint,1,opt,name=Value" json:"Value"`
	StrValue             string   `protobuf:"bytes,2,opt,name=StrValue" json:"StrValue"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *Leaf) Reset()      { *m = Leaf{} }
func (*Leaf) ProtoMessage() {}
func (*Leaf) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{26}
}
func (m *Leaf) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *Leaf) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_Leaf.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 *Leaf) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Leaf.Merge(m, src)
}
func (m *Leaf) XXX_Size() int {
	return m.Size()
}
func (m *Leaf) XXX_DiscardUnknown() {
	xxx_messageInfo_Leaf.DiscardUnknown(m)
}

var xxx_messageInfo_Leaf proto.InternalMessageInfo

type DeepTree struct {
	Down                 *ADeepBranch   `protobuf:"bytes,1,opt,name=Down" json:"Down,omitempty"`
	And                  *AndDeepBranch `protobuf:"bytes,2,opt,name=And" json:"And,omitempty"`
	Leaf                 *DeepLeaf      `protobuf:"bytes,3,opt,name=Leaf" json:"Leaf,omitempty"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

func (m *DeepTree) Reset()      { *m = DeepTree{} }
func (*DeepTree) ProtoMessage() {}
func (*DeepTree) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{27}
}
func (m *DeepTree) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *DeepTree) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_DeepTree.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 *DeepTree) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DeepTree.Merge(m, src)
}
func (m *DeepTree) XXX_Size() int {
	return m.Size()
}
func (m *DeepTree) XXX_DiscardUnknown() {
	xxx_messageInfo_DeepTree.DiscardUnknown(m)
}

var xxx_messageInfo_DeepTree proto.InternalMessageInfo

type ADeepBranch struct {
	Down                 DeepTree `protobuf:"bytes,2,opt,name=Down" json:"Down"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ADeepBranch) Reset()      { *m = ADeepBranch{} }
func (*ADeepBranch) ProtoMessage() {}
func (*ADeepBranch) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{28}
}
func (m *ADeepBranch) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *ADeepBranch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_ADeepBranch.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 *ADeepBranch) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ADeepBranch.Merge(m, src)
}
func (m *ADeepBranch) XXX_Size() int {
	return m.Size()
}
func (m *ADeepBranch) XXX_DiscardUnknown() {
	xxx_messageInfo_ADeepBranch.DiscardUnknown(m)
}

var xxx_messageInfo_ADeepBranch proto.InternalMessageInfo

type AndDeepBranch struct {
	Left                 DeepTree `protobuf:"bytes,1,opt,name=Left" json:"Left"`
	Right                DeepTree `protobuf:"bytes,2,opt,name=Right" json:"Right"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *AndDeepBranch) Reset()      { *m = AndDeepBranch{} }
func (*AndDeepBranch) ProtoMessage() {}
func (*AndDeepBranch) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{29}
}
func (m *AndDeepBranch) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *AndDeepBranch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_AndDeepBranch.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 *AndDeepBranch) XXX_Merge(src proto.Message) {
	xxx_messageInfo_AndDeepBranch.Merge(m, src)
}
func (m *AndDeepBranch) XXX_Size() int {
	return m.Size()
}
func (m *AndDeepBranch) XXX_DiscardUnknown() {
	xxx_messageInfo_AndDeepBranch.DiscardUnknown(m)
}

var xxx_messageInfo_AndDeepBranch proto.InternalMessageInfo

type DeepLeaf struct {
	Tree                 Tree     `protobuf:"bytes,1,opt,name=Tree" json:"Tree"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DeepLeaf) Reset()      { *m = DeepLeaf{} }
func (*DeepLeaf) ProtoMessage() {}
func (*DeepLeaf) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{30}
}
func (m *DeepLeaf) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *DeepLeaf) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_DeepLeaf.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 *DeepLeaf) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DeepLeaf.Merge(m, src)
}
func (m *DeepLeaf) XXX_Size() int {
	return m.Size()
}
func (m *DeepLeaf) XXX_DiscardUnknown() {
	xxx_messageInfo_DeepLeaf.DiscardUnknown(m)
}

var xxx_messageInfo_DeepLeaf proto.InternalMessageInfo

type Nil struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *Nil) Reset()      { *m = Nil{} }
func (*Nil) ProtoMessage() {}
func (*Nil) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{31}
}
func (m *Nil) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *Nil) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_Nil.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 *Nil) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Nil.Merge(m, src)
}
func (m *Nil) XXX_Size() int {
	return m.Size()
}
func (m *Nil) XXX_DiscardUnknown() {
	xxx_messageInfo_Nil.DiscardUnknown(m)
}

var xxx_messageInfo_Nil proto.InternalMessageInfo

type NidOptEnum struct {
	Field1               TheTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.TheTestEnum" json:"Field1"`
	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
	XXX_unrecognized     []byte      `json:"-"`
	XXX_sizecache        int32       `json:"-"`
}

func (m *NidOptEnum) Reset()      { *m = NidOptEnum{} }
func (*NidOptEnum) ProtoMessage() {}
func (*NidOptEnum) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{32}
}
func (m *NidOptEnum) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *NidOptEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_NidOptEnum.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 *NidOptEnum) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NidOptEnum.Merge(m, src)
}
func (m *NidOptEnum) XXX_Size() int {
	return m.Size()
}
func (m *NidOptEnum) XXX_DiscardUnknown() {
	xxx_messageInfo_NidOptEnum.DiscardUnknown(m)
}

var xxx_messageInfo_NidOptEnum proto.InternalMessageInfo

type NinOptEnum struct {
	Field1               *TheTestEnum           `protobuf:"varint,1,opt,name=Field1,enum=test.TheTestEnum" json:"Field1,omitempty"`
	Field2               *YetAnotherTestEnum    `protobuf:"varint,2,opt,name=Field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"`
	Field3               *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"`
	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
	XXX_unrecognized     []byte                 `json:"-"`
	XXX_sizecache        int32                  `json:"-"`
}

func (m *NinOptEnum) Reset()      { *m = NinOptEnum{} }
func (*NinOptEnum) ProtoMessage() {}
func (*NinOptEnum) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{33}
}
func (m *NinOptEnum) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *NinOptEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_NinOptEnum.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 *NinOptEnum) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NinOptEnum.Merge(m, src)
}
func (m *NinOptEnum) XXX_Size() int {
	return m.Size()
}
func (m *NinOptEnum) XXX_DiscardUnknown() {
	xxx_messageInfo_NinOptEnum.DiscardUnknown(m)
}

var xxx_messageInfo_NinOptEnum proto.InternalMessageInfo

type NidRepEnum struct {
	Field1               []TheTestEnum           `protobuf:"varint,1,rep,name=Field1,enum=test.TheTestEnum" json:"Field1,omitempty"`
	Field2               []YetAnotherTestEnum    `protobuf:"varint,2,rep,name=Field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"`
	Field3               []YetYetAnotherTestEnum `protobuf:"varint,3,rep,name=Field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
	XXX_unrecognized     []byte                  `json:"-"`
	XXX_sizecache        int32                   `json:"-"`
}

func (m *NidRepEnum) Reset()      { *m = NidRepEnum{} }
func (*NidRepEnum) ProtoMessage() {}
func (*NidRepEnum) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{34}
}
func (m *NidRepEnum) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *NidRepEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_NidRepEnum.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 *NidRepEnum) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NidRepEnum.Merge(m, src)
}
func (m *NidRepEnum) XXX_Size() int {
	return m.Size()
}
func (m *NidRepEnum) XXX_DiscardUnknown() {
	xxx_messageInfo_NidRepEnum.DiscardUnknown(m)
}

var xxx_messageInfo_NidRepEnum proto.InternalMessageInfo

type NinRepEnum struct {
	Field1               []TheTestEnum           `protobuf:"varint,1,rep,name=Field1,enum=test.TheTestEnum" json:"Field1,omitempty"`
	Field2               []YetAnotherTestEnum    `protobuf:"varint,2,rep,name=Field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"`
	Field3               []YetYetAnotherTestEnum `protobuf:"varint,3,rep,name=Field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
	XXX_unrecognized     []byte                  `json:"-"`
	XXX_sizecache        int32                   `json:"-"`
}

func (m *NinRepEnum) Reset()      { *m = NinRepEnum{} }
func (*NinRepEnum) ProtoMessage() {}
func (*NinRepEnum) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{35}
}
func (m *NinRepEnum) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *NinRepEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_NinRepEnum.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 *NinRepEnum) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NinRepEnum.Merge(m, src)
}
func (m *NinRepEnum) XXX_Size() int {
	return m.Size()
}
func (m *NinRepEnum) XXX_DiscardUnknown() {
	xxx_messageInfo_NinRepEnum.DiscardUnknown(m)
}

var xxx_messageInfo_NinRepEnum proto.InternalMessageInfo

type NinOptEnumDefault struct {
	Field1               *TheTestEnum           `protobuf:"varint,1,opt,name=Field1,enum=test.TheTestEnum,def=2" json:"Field1,omitempty"`
	Field2               *YetAnotherTestEnum    `protobuf:"varint,2,opt,name=Field2,enum=test.YetAnotherTestEnum,def=1" json:"Field2,omitempty"`
	Field3               *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,enum=test.YetYetAnotherTestEnum,def=0" json:"Field3,omitempty"`
	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
	XXX_unrecognized     []byte                 `json:"-"`
	XXX_sizecache        int32                  `json:"-"`
}

func (m *NinOptEnumDefault) Reset()      { *m = NinOptEnumDefault{} }
func (*NinOptEnumDefault) ProtoMessage() {}
func (*NinOptEnumDefault) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{36}
}
func (m *NinOptEnumDefault) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *NinOptEnumDefault) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_NinOptEnumDefault.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 *NinOptEnumDefault) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NinOptEnumDefault.Merge(m, src)
}
func (m *NinOptEnumDefault) XXX_Size() int {
	return m.Size()
}
func (m *NinOptEnumDefault) XXX_DiscardUnknown() {
	xxx_messageInfo_NinOptEnumDefault.DiscardUnknown(m)
}

var xxx_messageInfo_NinOptEnumDefault proto.InternalMessageInfo

const Default_NinOptEnumDefault_Field1 TheTestEnum = C
const Default_NinOptEnumDefault_Field2 YetAnotherTestEnum = BetterYetBB
const Default_NinOptEnumDefault_Field3 YetYetAnotherTestEnum = YetYetAnotherTestEnum_CC

func (m *NinOptEnumDefault) GetField1() TheTestEnum {
	if m != nil && m.Field1 != nil {
		return *m.Field1
	}
	return Default_NinOptEnumDefault_Field1
}

func (m *NinOptEnumDefault) GetField2() YetAnotherTestEnum {
	if m != nil && m.Field2 != nil {
		return *m.Field2
	}
	return Default_NinOptEnumDefault_Field2
}

func (m *NinOptEnumDefault) GetField3() YetYetAnotherTestEnum {
	if m != nil && m.Field3 != nil {
		return *m.Field3
	}
	return Default_NinOptEnumDefault_Field3
}

type AnotherNinOptEnum struct {
	Field1               *AnotherTestEnum       `protobuf:"varint,1,opt,name=Field1,enum=test.AnotherTestEnum" json:"Field1,omitempty"`
	Field2               *YetAnotherTestEnum    `protobuf:"varint,2,opt,name=Field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"`
	Field3               *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"`
	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
	XXX_unrecognized     []byte                 `json:"-"`
	XXX_sizecache        int32                  `json:"-"`
}

func (m *AnotherNinOptEnum) Reset()      { *m = AnotherNinOptEnum{} }
func (*AnotherNinOptEnum) ProtoMessage() {}
func (*AnotherNinOptEnum) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{37}
}
func (m *AnotherNinOptEnum) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *AnotherNinOptEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_AnotherNinOptEnum.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 *AnotherNinOptEnum) XXX_Merge(src proto.Message) {
	xxx_messageInfo_AnotherNinOptEnum.Merge(m, src)
}
func (m *AnotherNinOptEnum) XXX_Size() int {
	return m.Size()
}
func (m *AnotherNinOptEnum) XXX_DiscardUnknown() {
	xxx_messageInfo_AnotherNinOptEnum.DiscardUnknown(m)
}

var xxx_messageInfo_AnotherNinOptEnum proto.InternalMessageInfo

type AnotherNinOptEnumDefault struct {
	Field1               *AnotherTestEnum       `protobuf:"varint,1,opt,name=Field1,enum=test.AnotherTestEnum,def=11" json:"Field1,omitempty"`
	Field2               *YetAnotherTestEnum    `protobuf:"varint,2,opt,name=Field2,enum=test.YetAnotherTestEnum,def=1" json:"Field2,omitempty"`
	Field3               *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,enum=test.YetYetAnotherTestEnum,def=0" json:"Field3,omitempty"`
	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
	XXX_unrecognized     []byte                 `json:"-"`
	XXX_sizecache        int32                  `json:"-"`
}

func (m *AnotherNinOptEnumDefault) Reset()      { *m = AnotherNinOptEnumDefault{} }
func (*AnotherNinOptEnumDefault) ProtoMessage() {}
func (*AnotherNinOptEnumDefault) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{38}
}
func (m *AnotherNinOptEnumDefault) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *AnotherNinOptEnumDefault) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_AnotherNinOptEnumDefault.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 *AnotherNinOptEnumDefault) XXX_Merge(src proto.Message) {
	xxx_messageInfo_AnotherNinOptEnumDefault.Merge(m, src)
}
func (m *AnotherNinOptEnumDefault) XXX_Size() int {
	return m.Size()
}
func (m *AnotherNinOptEnumDefault) XXX_DiscardUnknown() {
	xxx_messageInfo_AnotherNinOptEnumDefault.DiscardUnknown(m)
}

var xxx_messageInfo_AnotherNinOptEnumDefault proto.InternalMessageInfo

const Default_AnotherNinOptEnumDefault_Field1 AnotherTestEnum = E
const Default_AnotherNinOptEnumDefault_Field2 YetAnotherTestEnum = BetterYetBB
const Default_AnotherNinOptEnumDefault_Field3 YetYetAnotherTestEnum = YetYetAnotherTestEnum_CC

func (m *AnotherNinOptEnumDefault) GetField1() AnotherTestEnum {
	if m != nil && m.Field1 != nil {
		return *m.Field1
	}
	return Default_AnotherNinOptEnumDefault_Field1
}

func (m *AnotherNinOptEnumDefault) GetField2() YetAnotherTestEnum {
	if m != nil && m.Field2 != nil {
		return *m.Field2
	}
	return Default_AnotherNinOptEnumDefault_Field2
}

func (m *AnotherNinOptEnumDefault) GetField3() YetYetAnotherTestEnum {
	if m != nil && m.Field3 != nil {
		return *m.Field3
	}
	return Default_AnotherNinOptEnumDefault_Field3
}

type Timer struct {
	Time1                int64    `protobuf:"fixed64,1,opt,name=Time1" json:"Time1"`
	Time2                int64    `protobuf:"fixed64,2,opt,name=Time2" json:"Time2"`
	Data                 []byte   `protobuf:"bytes,3,opt,name=Data" json:"Data"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *Timer) Reset()      { *m = Timer{} }
func (*Timer) ProtoMessage() {}
func (*Timer) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{39}
}
func (m *Timer) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *Timer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_Timer.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 *Timer) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Timer.Merge(m, src)
}
func (m *Timer) XXX_Size() int {
	return m.Size()
}
func (m *Timer) XXX_DiscardUnknown() {
	xxx_messageInfo_Timer.DiscardUnknown(m)
}

var xxx_messageInfo_Timer proto.InternalMessageInfo

type MyExtendable struct {
	Field1                       *int64   `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"`
	XXX_NoUnkeyedLiteral         struct{} `json:"-"`
	proto.XXX_InternalExtensions `json:"-"`
	XXX_unrecognized             []byte `json:"-"`
	XXX_sizecache                int32  `json:"-"`
}

func (m *MyExtendable) Reset()      { *m = MyExtendable{} }
func (*MyExtendable) ProtoMessage() {}
func (*MyExtendable) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{40}
}

var extRange_MyExtendable = []proto.ExtensionRange{
	{Start: 100, End: 199},
}

func (*MyExtendable) ExtensionRangeArray() []proto.ExtensionRange {
	return extRange_MyExtendable
}

func (m *MyExtendable) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *MyExtendable) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_MyExtendable.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 *MyExtendable) XXX_Merge(src proto.Message) {
	xxx_messageInfo_MyExtendable.Merge(m, src)
}
func (m *MyExtendable) XXX_Size() int {
	return m.Size()
}
func (m *MyExtendable) XXX_DiscardUnknown() {
	xxx_messageInfo_MyExtendable.DiscardUnknown(m)
}

var xxx_messageInfo_MyExtendable proto.InternalMessageInfo

type OtherExtenable struct {
	Field2                       *int64        `protobuf:"varint,2,opt,name=Field2" json:"Field2,omitempty"`
	Field13                      *int64        `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"`
	M                            *MyExtendable `protobuf:"bytes,1,opt,name=M" json:"M,omitempty"`
	XXX_NoUnkeyedLiteral         struct{}      `json:"-"`
	proto.XXX_InternalExtensions `json:"-"`
	XXX_unrecognized             []byte `json:"-"`
	XXX_sizecache                int32  `json:"-"`
}

func (m *OtherExtenable) Reset()      { *m = OtherExtenable{} }
func (*OtherExtenable) ProtoMessage() {}
func (*OtherExtenable) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{41}
}

var extRange_OtherExtenable = []proto.ExtensionRange{
	{Start: 14, End: 16},
	{Start: 10, End: 12},
}

func (*OtherExtenable) ExtensionRangeArray() []proto.ExtensionRange {
	return extRange_OtherExtenable
}

func (m *OtherExtenable) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *OtherExtenable) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_OtherExtenable.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 *OtherExtenable) XXX_Merge(src proto.Message) {
	xxx_messageInfo_OtherExtenable.Merge(m, src)
}
func (m *OtherExtenable) XXX_Size() int {
	return m.Size()
}
func (m *OtherExtenable) XXX_DiscardUnknown() {
	xxx_messageInfo_OtherExtenable.DiscardUnknown(m)
}

var xxx_messageInfo_OtherExtenable proto.InternalMessageInfo

type NestedDefinition struct {
	Field1               *int64                                          `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"`
	EnumField            *NestedDefinition_NestedEnum                    `protobuf:"varint,2,opt,name=EnumField,enum=test.NestedDefinition_NestedEnum" json:"EnumField,omitempty"`
	NNM                  *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,3,opt,name=NNM" json:"NNM,omitempty"`
	NM                   *NestedDefinition_NestedMessage                 `protobuf:"bytes,4,opt,name=NM" json:"NM,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                                        `json:"-"`
	XXX_unrecognized     []byte                                          `json:"-"`
	XXX_sizecache        int32                                           `json:"-"`
}

func (m *NestedDefinition) Reset()      { *m = NestedDefinition{} }
func (*NestedDefinition) ProtoMessage() {}
func (*NestedDefinition) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{42}
}
func (m *NestedDefinition) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *NestedDefinition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_NestedDefinition.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 *NestedDefinition) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NestedDefinition.Merge(m, src)
}
func (m *NestedDefinition) XXX_Size() int {
	return m.Size()
}
func (m *NestedDefinition) XXX_DiscardUnknown() {
	xxx_messageInfo_NestedDefinition.DiscardUnknown(m)
}

var xxx_messageInfo_NestedDefinition proto.InternalMessageInfo

type NestedDefinition_NestedMessage struct {
	NestedField1         *uint64                                         `protobuf:"fixed64,1,opt,name=NestedField1" json:"NestedField1,omitempty"`
	NNM                  *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,2,opt,name=NNM" json:"NNM,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                                        `json:"-"`
	XXX_unrecognized     []byte                                          `json:"-"`
	XXX_sizecache        int32                                           `json:"-"`
}

func (m *NestedDefinition_NestedMessage) Reset()      { *m = NestedDefinition_NestedMessage{} }
func (*NestedDefinition_NestedMessage) ProtoMessage() {}
func (*NestedDefinition_NestedMessage) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{42, 0}
}
func (m *NestedDefinition_NestedMessage) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *NestedDefinition_NestedMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_NestedDefinition_NestedMessage.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 *NestedDefinition_NestedMessage) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NestedDefinition_NestedMessage.Merge(m, src)
}
func (m *NestedDefinition_NestedMessage) XXX_Size() int {
	return m.Size()
}
func (m *NestedDefinition_NestedMessage) XXX_DiscardUnknown() {
	xxx_messageInfo_NestedDefinition_NestedMessage.DiscardUnknown(m)
}

var xxx_messageInfo_NestedDefinition_NestedMessage proto.InternalMessageInfo

type NestedDefinition_NestedMessage_NestedNestedMsg struct {
	NestedNestedField1   *string  `protobuf:"bytes,10,opt,name=NestedNestedField1" json:"NestedNestedField1,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Reset() {
	*m = NestedDefinition_NestedMessage_NestedNestedMsg{}
}
func (*NestedDefinition_NestedMessage_NestedNestedMsg) ProtoMessage() {}
func (*NestedDefinition_NestedMessage_NestedNestedMsg) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{42, 0, 0}
}
func (m *NestedDefinition_NestedMessage_NestedNestedMsg) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *NestedDefinition_NestedMessage_NestedNestedMsg) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_NestedDefinition_NestedMessage_NestedNestedMsg.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 *NestedDefinition_NestedMessage_NestedNestedMsg) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NestedDefinition_NestedMessage_NestedNestedMsg.Merge(m, src)
}
func (m *NestedDefinition_NestedMessage_NestedNestedMsg) XXX_Size() int {
	return m.Size()
}
func (m *NestedDefinition_NestedMessage_NestedNestedMsg) XXX_DiscardUnknown() {
	xxx_messageInfo_NestedDefinition_NestedMessage_NestedNestedMsg.DiscardUnknown(m)
}

var xxx_messageInfo_NestedDefinition_NestedMessage_NestedNestedMsg proto.InternalMessageInfo

type NestedScope struct {
	A                    *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,1,opt,name=A" json:"A,omitempty"`
	B                    *NestedDefinition_NestedEnum                    `protobuf:"varint,2,opt,name=B,enum=test.NestedDefinition_NestedEnum" json:"B,omitempty"`
	C                    *NestedDefinition_NestedMessage                 `protobuf:"bytes,3,opt,name=C" json:"C,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                                        `json:"-"`
	XXX_unrecognized     []byte                                          `json:"-"`
	XXX_sizecache        int32                                           `json:"-"`
}

func (m *NestedScope) Reset()      { *m = NestedScope{} }
func (*NestedScope) ProtoMessage() {}
func (*NestedScope) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{43}
}
func (m *NestedScope) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *NestedScope) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_NestedScope.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 *NestedScope) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NestedScope.Merge(m, src)
}
func (m *NestedScope) XXX_Size() int {
	return m.Size()
}
func (m *NestedScope) XXX_DiscardUnknown() {
	xxx_messageInfo_NestedScope.DiscardUnknown(m)
}

var xxx_messageInfo_NestedScope proto.InternalMessageInfo

type NinOptNativeDefault struct {
	Field1               *float64 `protobuf:"fixed64,1,opt,name=Field1,def=1234.1234" json:"Field1,omitempty"`
	Field2               *float32 `protobuf:"fixed32,2,opt,name=Field2,def=1234.1234" json:"Field2,omitempty"`
	Field3               *int32   `protobuf:"varint,3,opt,name=Field3,def=1234" json:"Field3,omitempty"`
	Field4               *int64   `protobuf:"varint,4,opt,name=Field4,def=1234" json:"Field4,omitempty"`
	Field5               *uint32  `protobuf:"varint,5,opt,name=Field5,def=1234" json:"Field5,omitempty"`
	Field6               *uint64  `protobuf:"varint,6,opt,name=Field6,def=1234" json:"Field6,omitempty"`
	Field7               *int32   `protobuf:"zigzag32,7,opt,name=Field7,def=1234" json:"Field7,omitempty"`
	Field8               *int64   `protobuf:"zigzag64,8,opt,name=Field8,def=1234" json:"Field8,omitempty"`
	Field9               *uint32  `protobuf:"fixed32,9,opt,name=Field9,def=1234" json:"Field9,omitempty"`
	Field10              *int32   `protobuf:"fixed32,10,opt,name=Field10,def=1234" json:"Field10,omitempty"`
	Field11              *uint64  `protobuf:"fixed64,11,opt,name=Field11,def=1234" json:"Field11,omitempty"`
	Field12              *int64   `protobuf:"fixed64,12,opt,name=Field12,def=1234" json:"Field12,omitempty"`
	Field13              *bool    `protobuf:"varint,13,opt,name=Field13,def=1" json:"Field13,omitempty"`
	Field14              *string  `protobuf:"bytes,14,opt,name=Field14,def=1234" json:"Field14,omitempty"`
	Field15              []byte   `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *NinOptNativeDefault) Reset()      { *m = NinOptNativeDefault{} }
func (*NinOptNativeDefault) ProtoMessage() {}
func (*NinOptNativeDefault) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{44}
}
func (m *NinOptNativeDefault) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *NinOptNativeDefault) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_NinOptNativeDefault.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 *NinOptNativeDefault) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NinOptNativeDefault.Merge(m, src)
}
func (m *NinOptNativeDefault) XXX_Size() int {
	return m.Size()
}
func (m *NinOptNativeDefault) XXX_DiscardUnknown() {
	xxx_messageInfo_NinOptNativeDefault.DiscardUnknown(m)
}

var xxx_messageInfo_NinOptNativeDefault proto.InternalMessageInfo

const Default_NinOptNativeDefault_Field1 float64 = 1234.1234
const Default_NinOptNativeDefault_Field2 float32 = 1234.1234
const Default_NinOptNativeDefault_Field3 int32 = 1234
const Default_NinOptNativeDefault_Field4 int64 = 1234
const Default_NinOptNativeDefault_Field5 uint32 = 1234
const Default_NinOptNativeDefault_Field6 uint64 = 1234
const Default_NinOptNativeDefault_Field7 int32 = 1234
const Default_NinOptNativeDefault_Field8 int64 = 1234
const Default_NinOptNativeDefault_Field9 uint32 = 1234
const Default_NinOptNativeDefault_Field10 int32 = 1234
const Default_NinOptNativeDefault_Field11 uint64 = 1234
const Default_NinOptNativeDefault_Field12 int64 = 1234
const Default_NinOptNativeDefault_Field13 bool = true
const Default_NinOptNativeDefault_Field14 string = "1234"

func (m *NinOptNativeDefault) GetField1() float64 {
	if m != nil && m.Field1 != nil {
		return *m.Field1
	}
	return Default_NinOptNativeDefault_Field1
}

func (m *NinOptNativeDefault) GetField2() float32 {
	if m != nil && m.Field2 != nil {
		return *m.Field2
	}
	return Default_NinOptNativeDefault_Field2
}

func (m *NinOptNativeDefault) GetField3() int32 {
	if m != nil && m.Field3 != nil {
		return *m.Field3
	}
	return Default_NinOptNativeDefault_Field3
}

func (m *NinOptNativeDefault) GetField4() int64 {
	if m != nil && m.Field4 != nil {
		return *m.Field4
	}
	return Default_NinOptNativeDefault_Field4
}

func (m *NinOptNativeDefault) GetField5() uint32 {
	if m != nil && m.Field5 != nil {
		return *m.Field5
	}
	return Default_NinOptNativeDefault_Field5
}

func (m *NinOptNativeDefault) GetField6() uint64 {
	if m != nil && m.Field6 != nil {
		return *m.Field6
	}
	return Default_NinOptNativeDefault_Field6
}

func (m *NinOptNativeDefault) GetField7() int32 {
	if m != nil && m.Field7 != nil {
		return *m.Field7
	}
	return Default_NinOptNativeDefault_Field7
}

func (m *NinOptNativeDefault) GetField8() int64 {
	if m != nil && m.Field8 != nil {
		return *m.Field8
	}
	return Default_NinOptNativeDefault_Field8
}

func (m *NinOptNativeDefault) GetField9() uint32 {
	if m != nil && m.Field9 != nil {
		return *m.Field9
	}
	return Default_NinOptNativeDefault_Field9
}

func (m *NinOptNativeDefault) GetField10() int32 {
	if m != nil && m.Field10 != nil {
		return *m.Field10
	}
	return Default_NinOptNativeDefault_Field10
}

func (m *NinOptNativeDefault) GetField11() uint64 {
	if m != nil && m.Field11 != nil {
		return *m.Field11
	}
	return Default_NinOptNativeDefault_Field11
}

func (m *NinOptNativeDefault) GetField12() int64 {
	if m != nil && m.Field12 != nil {
		return *m.Field12
	}
	return Default_NinOptNativeDefault_Field12
}

func (m *NinOptNativeDefault) GetField13() bool {
	if m != nil && m.Field13 != nil {
		return *m.Field13
	}
	return Default_NinOptNativeDefault_Field13
}

func (m *NinOptNativeDefault) GetField14() string {
	if m != nil && m.Field14 != nil {
		return *m.Field14
	}
	return Default_NinOptNativeDefault_Field14
}

func (m *NinOptNativeDefault) GetField15() []byte {
	if m != nil {
		return m.Field15
	}
	return nil
}

type CustomContainer struct {
	CustomStruct         NidOptCustom `protobuf:"bytes,1,opt,name=CustomStruct" json:"CustomStruct"`
	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
	XXX_unrecognized     []byte       `json:"-"`
	XXX_sizecache        int32        `json:"-"`
}

func (m *CustomContainer) Reset()      { *m = CustomContainer{} }
func (*CustomContainer) ProtoMessage() {}
func (*CustomContainer) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{45}
}
func (m *CustomContainer) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *CustomContainer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_CustomContainer.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 *CustomContainer) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CustomContainer.Merge(m, src)
}
func (m *CustomContainer) XXX_Size() int {
	return m.Size()
}
func (m *CustomContainer) XXX_DiscardUnknown() {
	xxx_messageInfo_CustomContainer.DiscardUnknown(m)
}

var xxx_messageInfo_CustomContainer proto.InternalMessageInfo

type CustomNameNidOptNative struct {
	FieldA               float64  `protobuf:"fixed64,1,opt,name=Field1" json:"Field1"`
	FieldB               float32  `protobuf:"fixed32,2,opt,name=Field2" json:"Field2"`
	FieldC               int32    `protobuf:"varint,3,opt,name=Field3" json:"Field3"`
	FieldD               int64    `protobuf:"varint,4,opt,name=Field4" json:"Field4"`
	FieldE               uint32   `protobuf:"varint,5,opt,name=Field5" json:"Field5"`
	FieldF               uint64   `protobuf:"varint,6,opt,name=Field6" json:"Field6"`
	FieldG               int32    `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7"`
	FieldH               int64    `protobuf:"zigzag64,8,opt,name=Field8" json:"Field8"`
	FieldI               uint32   `protobuf:"fixed32,9,opt,name=Field9" json:"Field9"`
	FieldJ               int32    `protobuf:"fixed32,10,opt,name=Field10" json:"Field10"`
	FieldK               uint64   `protobuf:"fixed64,11,opt,name=Field11" json:"Field11"`
	FieldL               int64    `protobuf:"fixed64,12,opt,name=Field12" json:"Field12"`
	FieldM               bool     `protobuf:"varint,13,opt,name=Field13" json:"Field13"`
	FieldN               string   `protobuf:"bytes,14,opt,name=Field14" json:"Field14"`
	FieldO               []byte   `protobuf:"bytes,15,opt,name=Field15" json:"Field15"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *CustomNameNidOptNative) Reset()      { *m = CustomNameNidOptNative{} }
func (*CustomNameNidOptNative) ProtoMessage() {}
func (*CustomNameNidOptNative) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{46}
}
func (m *CustomNameNidOptNative) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *CustomNameNidOptNative) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_CustomNameNidOptNative.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 *CustomNameNidOptNative) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CustomNameNidOptNative.Merge(m, src)
}
func (m *CustomNameNidOptNative) XXX_Size() int {
	return m.Size()
}
func (m *CustomNameNidOptNative) XXX_DiscardUnknown() {
	xxx_messageInfo_CustomNameNidOptNative.DiscardUnknown(m)
}

var xxx_messageInfo_CustomNameNidOptNative proto.InternalMessageInfo

type CustomNameNinOptNative struct {
	FieldA               *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"`
	FieldB               *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"`
	FieldC               *int32   `protobuf:"varint,3,opt,name=Field3" json:"Field3,omitempty"`
	FieldD               *int64   `protobuf:"varint,4,opt,name=Field4" json:"Field4,omitempty"`
	FieldE               *uint32  `protobuf:"varint,5,opt,name=Field5" json:"Field5,omitempty"`
	FieldF               *uint64  `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"`
	FieldG               *int32   `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"`
	FieldH               *int64   `protobuf:"zigzag64,8,opt,name=Field8" json:"Field8,omitempty"`
	FieldI               *uint32  `protobuf:"fixed32,9,opt,name=Field9" json:"Field9,omitempty"`
	FieldJ               *int32   `protobuf:"fixed32,10,opt,name=Field10" json:"Field10,omitempty"`
	FieldK               *uint64  `protobuf:"fixed64,11,opt,name=Field11" json:"Field11,omitempty"`
	FielL                *int64   `protobuf:"fixed64,12,opt,name=Field12" json:"Field12,omitempty"`
	FieldM               *bool    `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"`
	FieldN               *string  `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"`
	FieldO               []byte   `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *CustomNameNinOptNative) Reset()      { *m = CustomNameNinOptNative{} }
func (*CustomNameNinOptNative) ProtoMessage() {}
func (*CustomNameNinOptNative) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{47}
}
func (m *CustomNameNinOptNative) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *CustomNameNinOptNative) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_CustomNameNinOptNative.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 *CustomNameNinOptNative) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CustomNameNinOptNative.Merge(m, src)
}
func (m *CustomNameNinOptNative) XXX_Size() int {
	return m.Size()
}
func (m *CustomNameNinOptNative) XXX_DiscardUnknown() {
	xxx_messageInfo_CustomNameNinOptNative.DiscardUnknown(m)
}

var xxx_messageInfo_CustomNameNinOptNative proto.InternalMessageInfo

type CustomNameNinRepNative struct {
	FieldA               []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"`
	FieldB               []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"`
	FieldC               []int32   `protobuf:"varint,3,rep,name=Field3" json:"Field3,omitempty"`
	FieldD               []int64   `protobuf:"varint,4,rep,name=Field4" json:"Field4,omitempty"`
	FieldE               []uint32  `protobuf:"varint,5,rep,name=Field5" json:"Field5,omitempty"`
	FieldF               []uint64  `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"`
	FieldG               []int32   `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"`
	FieldH               []int64   `protobuf:"zigzag64,8,rep,name=Field8" json:"Field8,omitempty"`
	FieldI               []uint32  `protobuf:"fixed32,9,rep,name=Field9" json:"Field9,omitempty"`
	FieldJ               []int32   `protobuf:"fixed32,10,rep,name=Field10" json:"Field10,omitempty"`
	FieldK               []uint64  `protobuf:"fixed64,11,rep,name=Field11" json:"Field11,omitempty"`
	FieldL               []int64   `protobuf:"fixed64,12,rep,name=Field12" json:"Field12,omitempty"`
	FieldM               []bool    `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"`
	FieldN               []string  `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"`
	FieldO               [][]byte  `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"`
	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
	XXX_unrecognized     []byte    `json:"-"`
	XXX_sizecache        int32     `json:"-"`
}

func (m *CustomNameNinRepNative) Reset()      { *m = CustomNameNinRepNative{} }
func (*CustomNameNinRepNative) ProtoMessage() {}
func (*CustomNameNinRepNative) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{48}
}
func (m *CustomNameNinRepNative) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *CustomNameNinRepNative) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_CustomNameNinRepNative.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 *CustomNameNinRepNative) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CustomNameNinRepNative.Merge(m, src)
}
func (m *CustomNameNinRepNative) XXX_Size() int {
	return m.Size()
}
func (m *CustomNameNinRepNative) XXX_DiscardUnknown() {
	xxx_messageInfo_CustomNameNinRepNative.DiscardUnknown(m)
}

var xxx_messageInfo_CustomNameNinRepNative proto.InternalMessageInfo

type CustomNameNinStruct struct {
	FieldA               *float64        `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"`
	FieldB               *float32        `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"`
	FieldC               *NidOptNative   `protobuf:"bytes,3,opt,name=Field3" json:"Field3,omitempty"`
	FieldD               []*NinOptNative `protobuf:"bytes,4,rep,name=Field4" json:"Field4,omitempty"`
	FieldE               *uint64         `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"`
	FieldF               *int32          `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"`
	FieldG               *NidOptNative   `protobuf:"bytes,8,opt,name=Field8" json:"Field8,omitempty"`
	FieldH               *bool           `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"`
	FieldI               *string         `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"`
	FieldJ               []byte          `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"`
	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
	XXX_unrecognized     []byte          `json:"-"`
	XXX_sizecache        int32           `json:"-"`
}

func (m *CustomNameNinStruct) Reset()      { *m = CustomNameNinStruct{} }
func (*CustomNameNinStruct) ProtoMessage() {}
func (*CustomNameNinStruct) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{49}
}
func (m *CustomNameNinStruct) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *CustomNameNinStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_CustomNameNinStruct.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 *CustomNameNinStruct) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CustomNameNinStruct.Merge(m, src)
}
func (m *CustomNameNinStruct) XXX_Size() int {
	return m.Size()
}
func (m *CustomNameNinStruct) XXX_DiscardUnknown() {
	xxx_messageInfo_CustomNameNinStruct.DiscardUnknown(m)
}

var xxx_messageInfo_CustomNameNinStruct proto.InternalMessageInfo

type CustomNameCustomType struct {
	FieldA               *Uuid                                          `protobuf:"bytes,1,opt,name=Id,customtype=Uuid" json:"Id,omitempty"`
	FieldB               *github_com_gogo_protobuf_test_custom.Uint128  `protobuf:"bytes,2,opt,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"`
	FieldC               []Uuid                                         `protobuf:"bytes,3,rep,name=Ids,customtype=Uuid" json:"Ids,omitempty"`
	FieldD               []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,4,rep,name=Values,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Values,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                                       `json:"-"`
	XXX_unrecognized     []byte                                         `json:"-"`
	XXX_sizecache        int32                                          `json:"-"`
}

func (m *CustomNameCustomType) Reset()      { *m = CustomNameCustomType{} }
func (*CustomNameCustomType) ProtoMessage() {}
func (*CustomNameCustomType) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{50}
}
func (m *CustomNameCustomType) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *CustomNameCustomType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_CustomNameCustomType.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 *CustomNameCustomType) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CustomNameCustomType.Merge(m, src)
}
func (m *CustomNameCustomType) XXX_Size() int {
	return m.Size()
}
func (m *CustomNameCustomType) XXX_DiscardUnknown() {
	xxx_messageInfo_CustomNameCustomType.DiscardUnknown(m)
}

var xxx_messageInfo_CustomNameCustomType proto.InternalMessageInfo

type CustomNameNinEmbeddedStructUnion struct {
	*NidOptNative        `protobuf:"bytes,1,opt,name=Field1,embedded=Field1" json:"Field1,omitempty"`
	FieldA               *NinOptNative `protobuf:"bytes,200,opt,name=Field200" json:"Field200,omitempty"`
	FieldB               *bool         `protobuf:"varint,210,opt,name=Field210" json:"Field210,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

func (m *CustomNameNinEmbeddedStructUnion) Reset()      { *m = CustomNameNinEmbeddedStructUnion{} }
func (*CustomNameNinEmbeddedStructUnion) ProtoMessage() {}
func (*CustomNameNinEmbeddedStructUnion) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{51}
}
func (m *CustomNameNinEmbeddedStructUnion) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *CustomNameNinEmbeddedStructUnion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_CustomNameNinEmbeddedStructUnion.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 *CustomNameNinEmbeddedStructUnion) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CustomNameNinEmbeddedStructUnion.Merge(m, src)
}
func (m *CustomNameNinEmbeddedStructUnion) XXX_Size() int {
	return m.Size()
}
func (m *CustomNameNinEmbeddedStructUnion) XXX_DiscardUnknown() {
	xxx_messageInfo_CustomNameNinEmbeddedStructUnion.DiscardUnknown(m)
}

var xxx_messageInfo_CustomNameNinEmbeddedStructUnion proto.InternalMessageInfo

type CustomNameEnum struct {
	FieldA               *TheTestEnum  `protobuf:"varint,1,opt,name=Field1,enum=test.TheTestEnum" json:"Field1,omitempty"`
	FieldB               []TheTestEnum `protobuf:"varint,2,rep,name=Field2,enum=test.TheTestEnum" json:"Field2,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

func (m *CustomNameEnum) Reset()      { *m = CustomNameEnum{} }
func (*CustomNameEnum) ProtoMessage() {}
func (*CustomNameEnum) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{52}
}
func (m *CustomNameEnum) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *CustomNameEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_CustomNameEnum.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 *CustomNameEnum) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CustomNameEnum.Merge(m, src)
}
func (m *CustomNameEnum) XXX_Size() int {
	return m.Size()
}
func (m *CustomNameEnum) XXX_DiscardUnknown() {
	xxx_messageInfo_CustomNameEnum.DiscardUnknown(m)
}

var xxx_messageInfo_CustomNameEnum proto.InternalMessageInfo

type NoExtensionsMap struct {
	Field1               *int64   `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_extensions       []byte   `protobuf:"bytes,0,opt" json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *NoExtensionsMap) Reset()      { *m = NoExtensionsMap{} }
func (*NoExtensionsMap) ProtoMessage() {}
func (*NoExtensionsMap) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{53}
}

var extRange_NoExtensionsMap = []proto.ExtensionRange{
	{Start: 100, End: 199},
}

func (*NoExtensionsMap) ExtensionRangeArray() []proto.ExtensionRange {
	return extRange_NoExtensionsMap
}

func (m *NoExtensionsMap) GetExtensions() *[]byte {
	if m.XXX_extensions == nil {
		m.XXX_extensions = make([]byte, 0)
	}
	return &m.XXX_extensions
}
func (m *NoExtensionsMap) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *NoExtensionsMap) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_NoExtensionsMap.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 *NoExtensionsMap) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NoExtensionsMap.Merge(m, src)
}
func (m *NoExtensionsMap) XXX_Size() int {
	return m.Size()
}
func (m *NoExtensionsMap) XXX_DiscardUnknown() {
	xxx_messageInfo_NoExtensionsMap.DiscardUnknown(m)
}

var xxx_messageInfo_NoExtensionsMap proto.InternalMessageInfo

type Unrecognized struct {
	Field1               *string  `protobuf:"bytes,1,opt,name=Field1" json:"Field1,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *Unrecognized) Reset()      { *m = Unrecognized{} }
func (*Unrecognized) ProtoMessage() {}
func (*Unrecognized) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{54}
}
func (m *Unrecognized) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *Unrecognized) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_Unrecognized.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 *Unrecognized) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Unrecognized.Merge(m, src)
}
func (m *Unrecognized) XXX_Size() int {
	return m.Size()
}
func (m *Unrecognized) XXX_DiscardUnknown() {
	xxx_messageInfo_Unrecognized.DiscardUnknown(m)
}

var xxx_messageInfo_Unrecognized proto.InternalMessageInfo

type UnrecognizedWithInner struct {
	Embedded             []*UnrecognizedWithInner_Inner `protobuf:"bytes,1,rep,name=embedded" json:"embedded,omitempty"`
	Field2               *string                        `protobuf:"bytes,2,opt,name=Field2" json:"Field2,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                       `json:"-"`
	XXX_unrecognized     []byte                         `json:"-"`
	XXX_sizecache        int32                          `json:"-"`
}

func (m *UnrecognizedWithInner) Reset()      { *m = UnrecognizedWithInner{} }
func (*UnrecognizedWithInner) ProtoMessage() {}
func (*UnrecognizedWithInner) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{55}
}
func (m *UnrecognizedWithInner) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *UnrecognizedWithInner) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_UnrecognizedWithInner.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 *UnrecognizedWithInner) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UnrecognizedWithInner.Merge(m, src)
}
func (m *UnrecognizedWithInner) XXX_Size() int {
	return m.Size()
}
func (m *UnrecognizedWithInner) XXX_DiscardUnknown() {
	xxx_messageInfo_UnrecognizedWithInner.DiscardUnknown(m)
}

var xxx_messageInfo_UnrecognizedWithInner proto.InternalMessageInfo

type UnrecognizedWithInner_Inner struct {
	Field1               *uint32  `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *UnrecognizedWithInner_Inner) Reset()      { *m = UnrecognizedWithInner_Inner{} }
func (*UnrecognizedWithInner_Inner) ProtoMessage() {}
func (*UnrecognizedWithInner_Inner) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{55, 0}
}
func (m *UnrecognizedWithInner_Inner) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *UnrecognizedWithInner_Inner) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_UnrecognizedWithInner_Inner.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 *UnrecognizedWithInner_Inner) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UnrecognizedWithInner_Inner.Merge(m, src)
}
func (m *UnrecognizedWithInner_Inner) XXX_Size() int {
	return m.Size()
}
func (m *UnrecognizedWithInner_Inner) XXX_DiscardUnknown() {
	xxx_messageInfo_UnrecognizedWithInner_Inner.DiscardUnknown(m)
}

var xxx_messageInfo_UnrecognizedWithInner_Inner proto.InternalMessageInfo

type UnrecognizedWithEmbed struct {
	UnrecognizedWithEmbed_Embedded `protobuf:"bytes,1,opt,name=embedded,embedded=embedded" json:"embedded"`
	Field2                         *string  `protobuf:"bytes,2,opt,name=Field2" json:"Field2,omitempty"`
	XXX_NoUnkeyedLiteral           struct{} `json:"-"`
	XXX_unrecognized               []byte   `json:"-"`
	XXX_sizecache                  int32    `json:"-"`
}

func (m *UnrecognizedWithEmbed) Reset()      { *m = UnrecognizedWithEmbed{} }
func (*UnrecognizedWithEmbed) ProtoMessage() {}
func (*UnrecognizedWithEmbed) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{56}
}
func (m *UnrecognizedWithEmbed) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *UnrecognizedWithEmbed) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_UnrecognizedWithEmbed.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 *UnrecognizedWithEmbed) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UnrecognizedWithEmbed.Merge(m, src)
}
func (m *UnrecognizedWithEmbed) XXX_Size() int {
	return m.Size()
}
func (m *UnrecognizedWithEmbed) XXX_DiscardUnknown() {
	xxx_messageInfo_UnrecognizedWithEmbed.DiscardUnknown(m)
}

var xxx_messageInfo_UnrecognizedWithEmbed proto.InternalMessageInfo

type UnrecognizedWithEmbed_Embedded struct {
	Field1               *uint32  `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *UnrecognizedWithEmbed_Embedded) Reset()      { *m = UnrecognizedWithEmbed_Embedded{} }
func (*UnrecognizedWithEmbed_Embedded) ProtoMessage() {}
func (*UnrecognizedWithEmbed_Embedded) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{56, 0}
}
func (m *UnrecognizedWithEmbed_Embedded) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *UnrecognizedWithEmbed_Embedded) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_UnrecognizedWithEmbed_Embedded.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 *UnrecognizedWithEmbed_Embedded) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UnrecognizedWithEmbed_Embedded.Merge(m, src)
}
func (m *UnrecognizedWithEmbed_Embedded) XXX_Size() int {
	return m.Size()
}
func (m *UnrecognizedWithEmbed_Embedded) XXX_DiscardUnknown() {
	xxx_messageInfo_UnrecognizedWithEmbed_Embedded.DiscardUnknown(m)
}

var xxx_messageInfo_UnrecognizedWithEmbed_Embedded proto.InternalMessageInfo

type Node struct {
	Label                *string  `protobuf:"bytes,1,opt,name=Label" json:"Label,omitempty"`
	Children             []*Node  `protobuf:"bytes,2,rep,name=Children" json:"Children,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *Node) Reset()      { *m = Node{} }
func (*Node) ProtoMessage() {}
func (*Node) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{57}
}
func (m *Node) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *Node) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_Node.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 *Node) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Node.Merge(m, src)
}
func (m *Node) XXX_Size() int {
	return m.Size()
}
func (m *Node) XXX_DiscardUnknown() {
	xxx_messageInfo_Node.DiscardUnknown(m)
}

var xxx_messageInfo_Node proto.InternalMessageInfo

type NonByteCustomType struct {
	Field1               *T       `protobuf:"bytes,1,opt,name=Field1,customtype=T" json:"Field1,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *NonByteCustomType) Reset()      { *m = NonByteCustomType{} }
func (*NonByteCustomType) ProtoMessage() {}
func (*NonByteCustomType) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{58}
}
func (m *NonByteCustomType) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *NonByteCustomType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_NonByteCustomType.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 *NonByteCustomType) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NonByteCustomType.Merge(m, src)
}
func (m *NonByteCustomType) XXX_Size() int {
	return m.Size()
}
func (m *NonByteCustomType) XXX_DiscardUnknown() {
	xxx_messageInfo_NonByteCustomType.DiscardUnknown(m)
}

var xxx_messageInfo_NonByteCustomType proto.InternalMessageInfo

type NidOptNonByteCustomType struct {
	Field1               T        `protobuf:"bytes,1,opt,name=Field1,customtype=T" json:"Field1"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *NidOptNonByteCustomType) Reset()      { *m = NidOptNonByteCustomType{} }
func (*NidOptNonByteCustomType) ProtoMessage() {}
func (*NidOptNonByteCustomType) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{59}
}
func (m *NidOptNonByteCustomType) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *NidOptNonByteCustomType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_NidOptNonByteCustomType.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 *NidOptNonByteCustomType) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NidOptNonByteCustomType.Merge(m, src)
}
func (m *NidOptNonByteCustomType) XXX_Size() int {
	return m.Size()
}
func (m *NidOptNonByteCustomType) XXX_DiscardUnknown() {
	xxx_messageInfo_NidOptNonByteCustomType.DiscardUnknown(m)
}

var xxx_messageInfo_NidOptNonByteCustomType proto.InternalMessageInfo

type NinOptNonByteCustomType struct {
	Field1               *T       `protobuf:"bytes,1,opt,name=Field1,customtype=T" json:"Field1,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *NinOptNonByteCustomType) Reset()      { *m = NinOptNonByteCustomType{} }
func (*NinOptNonByteCustomType) ProtoMessage() {}
func (*NinOptNonByteCustomType) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{60}
}
func (m *NinOptNonByteCustomType) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *NinOptNonByteCustomType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_NinOptNonByteCustomType.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 *NinOptNonByteCustomType) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NinOptNonByteCustomType.Merge(m, src)
}
func (m *NinOptNonByteCustomType) XXX_Size() int {
	return m.Size()
}
func (m *NinOptNonByteCustomType) XXX_DiscardUnknown() {
	xxx_messageInfo_NinOptNonByteCustomType.DiscardUnknown(m)
}

var xxx_messageInfo_NinOptNonByteCustomType proto.InternalMessageInfo

type NidRepNonByteCustomType struct {
	Field1               []T      `protobuf:"bytes,1,rep,name=Field1,customtype=T" json:"Field1"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *NidRepNonByteCustomType) Reset()      { *m = NidRepNonByteCustomType{} }
func (*NidRepNonByteCustomType) ProtoMessage() {}
func (*NidRepNonByteCustomType) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{61}
}
func (m *NidRepNonByteCustomType) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *NidRepNonByteCustomType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_NidRepNonByteCustomType.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 *NidRepNonByteCustomType) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NidRepNonByteCustomType.Merge(m, src)
}
func (m *NidRepNonByteCustomType) XXX_Size() int {
	return m.Size()
}
func (m *NidRepNonByteCustomType) XXX_DiscardUnknown() {
	xxx_messageInfo_NidRepNonByteCustomType.DiscardUnknown(m)
}

var xxx_messageInfo_NidRepNonByteCustomType proto.InternalMessageInfo

type NinRepNonByteCustomType struct {
	Field1               []T      `protobuf:"bytes,1,rep,name=Field1,customtype=T" json:"Field1,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *NinRepNonByteCustomType) Reset()      { *m = NinRepNonByteCustomType{} }
func (*NinRepNonByteCustomType) ProtoMessage() {}
func (*NinRepNonByteCustomType) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{62}
}
func (m *NinRepNonByteCustomType) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *NinRepNonByteCustomType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_NinRepNonByteCustomType.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 *NinRepNonByteCustomType) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NinRepNonByteCustomType.Merge(m, src)
}
func (m *NinRepNonByteCustomType) XXX_Size() int {
	return m.Size()
}
func (m *NinRepNonByteCustomType) XXX_DiscardUnknown() {
	xxx_messageInfo_NinRepNonByteCustomType.DiscardUnknown(m)
}

var xxx_messageInfo_NinRepNonByteCustomType proto.InternalMessageInfo

type ProtoType struct {
	Field2               *string  `protobuf:"bytes,1,opt,name=Field2" json:"Field2,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ProtoType) Reset()      { *m = ProtoType{} }
func (*ProtoType) ProtoMessage() {}
func (*ProtoType) Descriptor() ([]byte, []int) {
	return fileDescriptor_519c3115fa9830d1, []int{63}
}
func (m *ProtoType) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *ProtoType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_ProtoType.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 *ProtoType) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ProtoType.Merge(m, src)
}
func (m *ProtoType) XXX_Size() int {
	return m.Size()
}
func (m *ProtoType) XXX_DiscardUnknown() {
	xxx_messageInfo_ProtoType.DiscardUnknown(m)
}

var xxx_messageInfo_ProtoType proto.InternalMessageInfo

var E_FieldA = &proto.ExtensionDesc{
	ExtendedType:  (*MyExtendable)(nil),
	ExtensionType: (*float64)(nil),
	Field:         100,
	Name:          "test.FieldA",
	Tag:           "fixed64,100,opt,name=FieldA",
	Filename:      "combos/both/thetest.proto",
}

var E_FieldB = &proto.ExtensionDesc{
	ExtendedType:  (*MyExtendable)(nil),
	ExtensionType: (*NinOptNative)(nil),
	Field:         101,
	Name:          "test.FieldB",
	Tag:           "bytes,101,opt,name=FieldB",
	Filename:      "combos/both/thetest.proto",
}

var E_FieldC = &proto.ExtensionDesc{
	ExtendedType:  (*MyExtendable)(nil),
	ExtensionType: (*NinEmbeddedStruct)(nil),
	Field:         102,
	Name:          "test.FieldC",
	Tag:           "bytes,102,opt,name=FieldC",
	Filename:      "combos/both/thetest.proto",
}

var E_FieldD = &proto.ExtensionDesc{
	ExtendedType:  (*MyExtendable)(nil),
	ExtensionType: ([]int64)(nil),
	Field:         104,
	Name:          "test.FieldD",
	Tag:           "varint,104,rep,name=FieldD",
	Filename:      "combos/both/thetest.proto",
}

var E_FieldE = &proto.ExtensionDesc{
	ExtendedType:  (*MyExtendable)(nil),
	ExtensionType: ([]*NinOptNative)(nil),
	Field:         105,
	Name:          "test.FieldE",
	Tag:           "bytes,105,rep,name=FieldE",
	Filename:      "combos/both/thetest.proto",
}

var E_FieldA1 = &proto.ExtensionDesc{
	ExtendedType:  (*NoExtensionsMap)(nil),
	ExtensionType: (*float64)(nil),
	Field:         100,
	Name:          "test.FieldA1",
	Tag:           "fixed64,100,opt,name=FieldA1",
	Filename:      "combos/both/thetest.proto",
}

var E_FieldB1 = &proto.ExtensionDesc{
	ExtendedType:  (*NoExtensionsMap)(nil),
	ExtensionType: (*NinOptNative)(nil),
	Field:         101,
	Name:          "test.FieldB1",
	Tag:           "bytes,101,opt,name=FieldB1",
	Filename:      "combos/both/thetest.proto",
}

var E_FieldC1 = &proto.ExtensionDesc{
	ExtendedType:  (*NoExtensionsMap)(nil),
	ExtensionType: (*NinEmbeddedStruct)(nil),
	Field:         102,
	Name:          "test.FieldC1",
	Tag:           "bytes,102,opt,name=FieldC1",
	Filename:      "combos/both/thetest.proto",
}

func init() {
	proto.RegisterEnum("test.TheTestEnum", TheTestEnum_name, TheTestEnum_value)
	proto.RegisterEnum("test.AnotherTestEnum", AnotherTestEnum_name, AnotherTestEnum_value)
	proto.RegisterEnum("test.YetAnotherTestEnum", YetAnotherTestEnum_name, YetAnotherTestEnum_value)
	proto.RegisterEnum("test.YetYetAnotherTestEnum", YetYetAnotherTestEnum_name, YetYetAnotherTestEnum_value)
	proto.RegisterEnum("test.NestedDefinition_NestedEnum", NestedDefinition_NestedEnum_name, NestedDefinition_NestedEnum_value)
	proto.RegisterType((*NidOptNative)(nil), "test.NidOptNative")
	proto.RegisterType((*NinOptNative)(nil), "test.NinOptNative")
	proto.RegisterType((*NidRepNative)(nil), "test.NidRepNative")
	proto.RegisterType((*NinRepNative)(nil), "test.NinRepNative")
	proto.RegisterType((*NidRepPackedNative)(nil), "test.NidRepPackedNative")
	proto.RegisterType((*NinRepPackedNative)(nil), "test.NinRepPackedNative")
	proto.RegisterType((*NidOptStruct)(nil), "test.NidOptStruct")
	proto.RegisterType((*NinOptStruct)(nil), "test.NinOptStruct")
	proto.RegisterType((*NidRepStruct)(nil), "test.NidRepStruct")
	proto.RegisterType((*NinRepStruct)(nil), "test.NinRepStruct")
	proto.RegisterType((*NidEmbeddedStruct)(nil), "test.NidEmbeddedStruct")
	proto.RegisterType((*NinEmbeddedStruct)(nil), "test.NinEmbeddedStruct")
	proto.RegisterType((*NidNestedStruct)(nil), "test.NidNestedStruct")
	proto.RegisterType((*NinNestedStruct)(nil), "test.NinNestedStruct")
	proto.RegisterType((*NidOptCustom)(nil), "test.NidOptCustom")
	proto.RegisterType((*CustomDash)(nil), "test.CustomDash")
	proto.RegisterType((*NinOptCustom)(nil), "test.NinOptCustom")
	proto.RegisterType((*NidRepCustom)(nil), "test.NidRepCustom")
	proto.RegisterType((*NinRepCustom)(nil), "test.NinRepCustom")
	proto.RegisterType((*NinOptNativeUnion)(nil), "test.NinOptNativeUnion")
	proto.RegisterType((*NinOptStructUnion)(nil), "test.NinOptStructUnion")
	proto.RegisterType((*NinEmbeddedStructUnion)(nil), "test.NinEmbeddedStructUnion")
	proto.RegisterType((*NinNestedStructUnion)(nil), "test.NinNestedStructUnion")
	proto.RegisterType((*Tree)(nil), "test.Tree")
	proto.RegisterType((*OrBranch)(nil), "test.OrBranch")
	proto.RegisterType((*AndBranch)(nil), "test.AndBranch")
	proto.RegisterType((*Leaf)(nil), "test.Leaf")
	proto.RegisterType((*DeepTree)(nil), "test.DeepTree")
	proto.RegisterType((*ADeepBranch)(nil), "test.ADeepBranch")
	proto.RegisterType((*AndDeepBranch)(nil), "test.AndDeepBranch")
	proto.RegisterType((*DeepLeaf)(nil), "test.DeepLeaf")
	proto.RegisterType((*Nil)(nil), "test.Nil")
	proto.RegisterType((*NidOptEnum)(nil), "test.NidOptEnum")
	proto.RegisterType((*NinOptEnum)(nil), "test.NinOptEnum")
	proto.RegisterType((*NidRepEnum)(nil), "test.NidRepEnum")
	proto.RegisterType((*NinRepEnum)(nil), "test.NinRepEnum")
	proto.RegisterType((*NinOptEnumDefault)(nil), "test.NinOptEnumDefault")
	proto.RegisterType((*AnotherNinOptEnum)(nil), "test.AnotherNinOptEnum")
	proto.RegisterType((*AnotherNinOptEnumDefault)(nil), "test.AnotherNinOptEnumDefault")
	proto.RegisterType((*Timer)(nil), "test.Timer")
	proto.RegisterType((*MyExtendable)(nil), "test.MyExtendable")
	proto.RegisterType((*OtherExtenable)(nil), "test.OtherExtenable")
	proto.RegisterType((*NestedDefinition)(nil), "test.NestedDefinition")
	proto.RegisterType((*NestedDefinition_NestedMessage)(nil), "test.NestedDefinition.NestedMessage")
	proto.RegisterType((*NestedDefinition_NestedMessage_NestedNestedMsg)(nil), "test.NestedDefinition.NestedMessage.NestedNestedMsg")
	proto.RegisterType((*NestedScope)(nil), "test.NestedScope")
	proto.RegisterType((*NinOptNativeDefault)(nil), "test.NinOptNativeDefault")
	proto.RegisterType((*CustomContainer)(nil), "test.CustomContainer")
	proto.RegisterType((*CustomNameNidOptNative)(nil), "test.CustomNameNidOptNative")
	proto.RegisterType((*CustomNameNinOptNative)(nil), "test.CustomNameNinOptNative")
	proto.RegisterType((*CustomNameNinRepNative)(nil), "test.CustomNameNinRepNative")
	proto.RegisterType((*CustomNameNinStruct)(nil), "test.CustomNameNinStruct")
	proto.RegisterType((*CustomNameCustomType)(nil), "test.CustomNameCustomType")
	proto.RegisterType((*CustomNameNinEmbeddedStructUnion)(nil), "test.CustomNameNinEmbeddedStructUnion")
	proto.RegisterType((*CustomNameEnum)(nil), "test.CustomNameEnum")
	proto.RegisterType((*NoExtensionsMap)(nil), "test.NoExtensionsMap")
	proto.RegisterType((*Unrecognized)(nil), "test.Unrecognized")
	proto.RegisterType((*UnrecognizedWithInner)(nil), "test.UnrecognizedWithInner")
	proto.RegisterType((*UnrecognizedWithInner_Inner)(nil), "test.UnrecognizedWithInner.Inner")
	proto.RegisterType((*UnrecognizedWithEmbed)(nil), "test.UnrecognizedWithEmbed")
	proto.RegisterType((*UnrecognizedWithEmbed_Embedded)(nil), "test.UnrecognizedWithEmbed.Embedded")
	proto.RegisterType((*Node)(nil), "test.Node")
	proto.RegisterType((*NonByteCustomType)(nil), "test.NonByteCustomType")
	proto.RegisterType((*NidOptNonByteCustomType)(nil), "test.NidOptNonByteCustomType")
	proto.RegisterType((*NinOptNonByteCustomType)(nil), "test.NinOptNonByteCustomType")
	proto.RegisterType((*NidRepNonByteCustomType)(nil), "test.NidRepNonByteCustomType")
	proto.RegisterType((*NinRepNonByteCustomType)(nil), "test.NinRepNonByteCustomType")
	proto.RegisterType((*ProtoType)(nil), "test.ProtoType")
	proto.RegisterExtension(E_FieldA)
	proto.RegisterExtension(E_FieldB)
	proto.RegisterExtension(E_FieldC)
	proto.RegisterExtension(E_FieldD)
	proto.RegisterExtension(E_FieldE)
	proto.RegisterExtension(E_FieldA1)
	proto.RegisterExtension(E_FieldB1)
	proto.RegisterExtension(E_FieldC1)
}

func init() { proto.RegisterFile("combos/both/thetest.proto", fileDescriptor_519c3115fa9830d1) }

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

func (this *NidOptNative) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*NidOptNative)
	if !ok {
		that2, ok := that.(NidOptNative)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if this.Field1 != that1.Field1 {
		if this.Field1 < that1.Field1 {
			return -1
		}
		return 1
	}
	if this.Field2 != that1.Field2 {
		if this.Field2 < that1.Field2 {
			return -1
		}
		return 1
	}
	if this.Field3 != that1.Field3 {
		if this.Field3 < that1.Field3 {
			return -1
		}
		return 1
	}
	if this.Field4 != that1.Field4 {
		if this.Field4 < that1.Field4 {
			return -1
		}
		return 1
	}
	if this.Field5 != that1.Field5 {
		if this.Field5 < that1.Field5 {
			return -1
		}
		return 1
	}
	if this.Field6 != that1.Field6 {
		if this.Field6 < that1.Field6 {
			return -1
		}
		return 1
	}
	if this.Field7 != that1.Field7 {
		if this.Field7 < that1.Field7 {
			return -1
		}
		return 1
	}
	if this.Field8 != that1.Field8 {
		if this.Field8 < that1.Field8 {
			return -1
		}
		return 1
	}
	if this.Field9 != that1.Field9 {
		if this.Field9 < that1.Field9 {
			return -1
		}
		return 1
	}
	if this.Field10 != that1.Field10 {
		if this.Field10 < that1.Field10 {
			return -1
		}
		return 1
	}
	if this.Field11 != that1.Field11 {
		if this.Field11 < that1.Field11 {
			return -1
		}
		return 1
	}
	if this.Field12 != that1.Field12 {
		if this.Field12 < that1.Field12 {
			return -1
		}
		return 1
	}
	if this.Field13 != that1.Field13 {
		if !this.Field13 {
			return -1
		}
		return 1
	}
	if this.Field14 != that1.Field14 {
		if this.Field14 < that1.Field14 {
			return -1
		}
		return 1
	}
	if c := bytes.Compare(this.Field15, that1.Field15); c != 0 {
		return c
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *NinOptNative) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*NinOptNative)
	if !ok {
		that2, ok := that.(NinOptNative)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			if *this.Field1 < *that1.Field1 {
				return -1
			}
			return 1
		}
	} else if this.Field1 != nil {
		return 1
	} else if that1.Field1 != nil {
		return -1
	}
	if this.Field2 != nil && that1.Field2 != nil {
		if *this.Field2 != *that1.Field2 {
			if *this.Field2 < *that1.Field2 {
				return -1
			}
			return 1
		}
	} else if this.Field2 != nil {
		return 1
	} else if that1.Field2 != nil {
		return -1
	}
	if this.Field3 != nil && that1.Field3 != nil {
		if *this.Field3 != *that1.Field3 {
			if *this.Field3 < *that1.Field3 {
				return -1
			}
			return 1
		}
	} else if this.Field3 != nil {
		return 1
	} else if that1.Field3 != nil {
		return -1
	}
	if this.Field4 != nil && that1.Field4 != nil {
		if *this.Field4 != *that1.Field4 {
			if *this.Field4 < *that1.Field4 {
				return -1
			}
			return 1
		}
	} else if this.Field4 != nil {
		return 1
	} else if that1.Field4 != nil {
		return -1
	}
	if this.Field5 != nil && that1.Field5 != nil {
		if *this.Field5 != *that1.Field5 {
			if *this.Field5 < *that1.Field5 {
				return -1
			}
			return 1
		}
	} else if this.Field5 != nil {
		return 1
	} else if that1.Field5 != nil {
		return -1
	}
	if this.Field6 != nil && that1.Field6 != nil {
		if *this.Field6 != *that1.Field6 {
			if *this.Field6 < *that1.Field6 {
				return -1
			}
			return 1
		}
	} else if this.Field6 != nil {
		return 1
	} else if that1.Field6 != nil {
		return -1
	}
	if this.Field7 != nil && that1.Field7 != nil {
		if *this.Field7 != *that1.Field7 {
			if *this.Field7 < *that1.Field7 {
				return -1
			}
			return 1
		}
	} else if this.Field7 != nil {
		return 1
	} else if that1.Field7 != nil {
		return -1
	}
	if this.Field8 != nil && that1.Field8 != nil {
		if *this.Field8 != *that1.Field8 {
			if *this.Field8 < *that1.Field8 {
				return -1
			}
			return 1
		}
	} else if this.Field8 != nil {
		return 1
	} else if that1.Field8 != nil {
		return -1
	}
	if this.Field9 != nil && that1.Field9 != nil {
		if *this.Field9 != *that1.Field9 {
			if *this.Field9 < *that1.Field9 {
				return -1
			}
			return 1
		}
	} else if this.Field9 != nil {
		return 1
	} else if that1.Field9 != nil {
		return -1
	}
	if this.Field10 != nil && that1.Field10 != nil {
		if *this.Field10 != *that1.Field10 {
			if *this.Field10 < *that1.Field10 {
				return -1
			}
			return 1
		}
	} else if this.Field10 != nil {
		return 1
	} else if that1.Field10 != nil {
		return -1
	}
	if this.Field11 != nil && that1.Field11 != nil {
		if *this.Field11 != *that1.Field11 {
			if *this.Field11 < *that1.Field11 {
				return -1
			}
			return 1
		}
	} else if this.Field11 != nil {
		return 1
	} else if that1.Field11 != nil {
		return -1
	}
	if this.Field12 != nil && that1.Field12 != nil {
		if *this.Field12 != *that1.Field12 {
			if *this.Field12 < *that1.Field12 {
				return -1
			}
			return 1
		}
	} else if this.Field12 != nil {
		return 1
	} else if that1.Field12 != nil {
		return -1
	}
	if this.Field13 != nil && that1.Field13 != nil {
		if *this.Field13 != *that1.Field13 {
			if !*this.Field13 {
				return -1
			}
			return 1
		}
	} else if this.Field13 != nil {
		return 1
	} else if that1.Field13 != nil {
		return -1
	}
	if this.Field14 != nil && that1.Field14 != nil {
		if *this.Field14 != *that1.Field14 {
			if *this.Field14 < *that1.Field14 {
				return -1
			}
			return 1
		}
	} else if this.Field14 != nil {
		return 1
	} else if that1.Field14 != nil {
		return -1
	}
	if c := bytes.Compare(this.Field15, that1.Field15); c != 0 {
		return c
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *NidRepNative) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*NidRepNative)
	if !ok {
		that2, ok := that.(NidRepNative)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if len(this.Field1) != len(that1.Field1) {
		if len(this.Field1) < len(that1.Field1) {
			return -1
		}
		return 1
	}
	for i := range this.Field1 {
		if this.Field1[i] != that1.Field1[i] {
			if this.Field1[i] < that1.Field1[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field2) != len(that1.Field2) {
		if len(this.Field2) < len(that1.Field2) {
			return -1
		}
		return 1
	}
	for i := range this.Field2 {
		if this.Field2[i] != that1.Field2[i] {
			if this.Field2[i] < that1.Field2[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field3) != len(that1.Field3) {
		if len(this.Field3) < len(that1.Field3) {
			return -1
		}
		return 1
	}
	for i := range this.Field3 {
		if this.Field3[i] != that1.Field3[i] {
			if this.Field3[i] < that1.Field3[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field4) != len(that1.Field4) {
		if len(this.Field4) < len(that1.Field4) {
			return -1
		}
		return 1
	}
	for i := range this.Field4 {
		if this.Field4[i] != that1.Field4[i] {
			if this.Field4[i] < that1.Field4[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field5) != len(that1.Field5) {
		if len(this.Field5) < len(that1.Field5) {
			return -1
		}
		return 1
	}
	for i := range this.Field5 {
		if this.Field5[i] != that1.Field5[i] {
			if this.Field5[i] < that1.Field5[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field6) != len(that1.Field6) {
		if len(this.Field6) < len(that1.Field6) {
			return -1
		}
		return 1
	}
	for i := range this.Field6 {
		if this.Field6[i] != that1.Field6[i] {
			if this.Field6[i] < that1.Field6[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field7) != len(that1.Field7) {
		if len(this.Field7) < len(that1.Field7) {
			return -1
		}
		return 1
	}
	for i := range this.Field7 {
		if this.Field7[i] != that1.Field7[i] {
			if this.Field7[i] < that1.Field7[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field8) != len(that1.Field8) {
		if len(this.Field8) < len(that1.Field8) {
			return -1
		}
		return 1
	}
	for i := range this.Field8 {
		if this.Field8[i] != that1.Field8[i] {
			if this.Field8[i] < that1.Field8[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field9) != len(that1.Field9) {
		if len(this.Field9) < len(that1.Field9) {
			return -1
		}
		return 1
	}
	for i := range this.Field9 {
		if this.Field9[i] != that1.Field9[i] {
			if this.Field9[i] < that1.Field9[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field10) != len(that1.Field10) {
		if len(this.Field10) < len(that1.Field10) {
			return -1
		}
		return 1
	}
	for i := range this.Field10 {
		if this.Field10[i] != that1.Field10[i] {
			if this.Field10[i] < that1.Field10[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field11) != len(that1.Field11) {
		if len(this.Field11) < len(that1.Field11) {
			return -1
		}
		return 1
	}
	for i := range this.Field11 {
		if this.Field11[i] != that1.Field11[i] {
			if this.Field11[i] < that1.Field11[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field12) != len(that1.Field12) {
		if len(this.Field12) < len(that1.Field12) {
			return -1
		}
		return 1
	}
	for i := range this.Field12 {
		if this.Field12[i] != that1.Field12[i] {
			if this.Field12[i] < that1.Field12[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field13) != len(that1.Field13) {
		if len(this.Field13) < len(that1.Field13) {
			return -1
		}
		return 1
	}
	for i := range this.Field13 {
		if this.Field13[i] != that1.Field13[i] {
			if !this.Field13[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field14) != len(that1.Field14) {
		if len(this.Field14) < len(that1.Field14) {
			return -1
		}
		return 1
	}
	for i := range this.Field14 {
		if this.Field14[i] != that1.Field14[i] {
			if this.Field14[i] < that1.Field14[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field15) != len(that1.Field15) {
		if len(this.Field15) < len(that1.Field15) {
			return -1
		}
		return 1
	}
	for i := range this.Field15 {
		if c := bytes.Compare(this.Field15[i], that1.Field15[i]); c != 0 {
			return c
		}
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *NinRepNative) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*NinRepNative)
	if !ok {
		that2, ok := that.(NinRepNative)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if len(this.Field1) != len(that1.Field1) {
		if len(this.Field1) < len(that1.Field1) {
			return -1
		}
		return 1
	}
	for i := range this.Field1 {
		if this.Field1[i] != that1.Field1[i] {
			if this.Field1[i] < that1.Field1[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field2) != len(that1.Field2) {
		if len(this.Field2) < len(that1.Field2) {
			return -1
		}
		return 1
	}
	for i := range this.Field2 {
		if this.Field2[i] != that1.Field2[i] {
			if this.Field2[i] < that1.Field2[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field3) != len(that1.Field3) {
		if len(this.Field3) < len(that1.Field3) {
			return -1
		}
		return 1
	}
	for i := range this.Field3 {
		if this.Field3[i] != that1.Field3[i] {
			if this.Field3[i] < that1.Field3[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field4) != len(that1.Field4) {
		if len(this.Field4) < len(that1.Field4) {
			return -1
		}
		return 1
	}
	for i := range this.Field4 {
		if this.Field4[i] != that1.Field4[i] {
			if this.Field4[i] < that1.Field4[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field5) != len(that1.Field5) {
		if len(this.Field5) < len(that1.Field5) {
			return -1
		}
		return 1
	}
	for i := range this.Field5 {
		if this.Field5[i] != that1.Field5[i] {
			if this.Field5[i] < that1.Field5[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field6) != len(that1.Field6) {
		if len(this.Field6) < len(that1.Field6) {
			return -1
		}
		return 1
	}
	for i := range this.Field6 {
		if this.Field6[i] != that1.Field6[i] {
			if this.Field6[i] < that1.Field6[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field7) != len(that1.Field7) {
		if len(this.Field7) < len(that1.Field7) {
			return -1
		}
		return 1
	}
	for i := range this.Field7 {
		if this.Field7[i] != that1.Field7[i] {
			if this.Field7[i] < that1.Field7[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field8) != len(that1.Field8) {
		if len(this.Field8) < len(that1.Field8) {
			return -1
		}
		return 1
	}
	for i := range this.Field8 {
		if this.Field8[i] != that1.Field8[i] {
			if this.Field8[i] < that1.Field8[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field9) != len(that1.Field9) {
		if len(this.Field9) < len(that1.Field9) {
			return -1
		}
		return 1
	}
	for i := range this.Field9 {
		if this.Field9[i] != that1.Field9[i] {
			if this.Field9[i] < that1.Field9[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field10) != len(that1.Field10) {
		if len(this.Field10) < len(that1.Field10) {
			return -1
		}
		return 1
	}
	for i := range this.Field10 {
		if this.Field10[i] != that1.Field10[i] {
			if this.Field10[i] < that1.Field10[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field11) != len(that1.Field11) {
		if len(this.Field11) < len(that1.Field11) {
			return -1
		}
		return 1
	}
	for i := range this.Field11 {
		if this.Field11[i] != that1.Field11[i] {
			if this.Field11[i] < that1.Field11[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field12) != len(that1.Field12) {
		if len(this.Field12) < len(that1.Field12) {
			return -1
		}
		return 1
	}
	for i := range this.Field12 {
		if this.Field12[i] != that1.Field12[i] {
			if this.Field12[i] < that1.Field12[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field13) != len(that1.Field13) {
		if len(this.Field13) < len(that1.Field13) {
			return -1
		}
		return 1
	}
	for i := range this.Field13 {
		if this.Field13[i] != that1.Field13[i] {
			if !this.Field13[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field14) != len(that1.Field14) {
		if len(this.Field14) < len(that1.Field14) {
			return -1
		}
		return 1
	}
	for i := range this.Field14 {
		if this.Field14[i] != that1.Field14[i] {
			if this.Field14[i] < that1.Field14[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field15) != len(that1.Field15) {
		if len(this.Field15) < len(that1.Field15) {
			return -1
		}
		return 1
	}
	for i := range this.Field15 {
		if c := bytes.Compare(this.Field15[i], that1.Field15[i]); c != 0 {
			return c
		}
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *NidRepPackedNative) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*NidRepPackedNative)
	if !ok {
		that2, ok := that.(NidRepPackedNative)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if len(this.Field1) != len(that1.Field1) {
		if len(this.Field1) < len(that1.Field1) {
			return -1
		}
		return 1
	}
	for i := range this.Field1 {
		if this.Field1[i] != that1.Field1[i] {
			if this.Field1[i] < that1.Field1[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field2) != len(that1.Field2) {
		if len(this.Field2) < len(that1.Field2) {
			return -1
		}
		return 1
	}
	for i := range this.Field2 {
		if this.Field2[i] != that1.Field2[i] {
			if this.Field2[i] < that1.Field2[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field3) != len(that1.Field3) {
		if len(this.Field3) < len(that1.Field3) {
			return -1
		}
		return 1
	}
	for i := range this.Field3 {
		if this.Field3[i] != that1.Field3[i] {
			if this.Field3[i] < that1.Field3[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field4) != len(that1.Field4) {
		if len(this.Field4) < len(that1.Field4) {
			return -1
		}
		return 1
	}
	for i := range this.Field4 {
		if this.Field4[i] != that1.Field4[i] {
			if this.Field4[i] < that1.Field4[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field5) != len(that1.Field5) {
		if len(this.Field5) < len(that1.Field5) {
			return -1
		}
		return 1
	}
	for i := range this.Field5 {
		if this.Field5[i] != that1.Field5[i] {
			if this.Field5[i] < that1.Field5[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field6) != len(that1.Field6) {
		if len(this.Field6) < len(that1.Field6) {
			return -1
		}
		return 1
	}
	for i := range this.Field6 {
		if this.Field6[i] != that1.Field6[i] {
			if this.Field6[i] < that1.Field6[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field7) != len(that1.Field7) {
		if len(this.Field7) < len(that1.Field7) {
			return -1
		}
		return 1
	}
	for i := range this.Field7 {
		if this.Field7[i] != that1.Field7[i] {
			if this.Field7[i] < that1.Field7[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field8) != len(that1.Field8) {
		if len(this.Field8) < len(that1.Field8) {
			return -1
		}
		return 1
	}
	for i := range this.Field8 {
		if this.Field8[i] != that1.Field8[i] {
			if this.Field8[i] < that1.Field8[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field9) != len(that1.Field9) {
		if len(this.Field9) < len(that1.Field9) {
			return -1
		}
		return 1
	}
	for i := range this.Field9 {
		if this.Field9[i] != that1.Field9[i] {
			if this.Field9[i] < that1.Field9[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field10) != len(that1.Field10) {
		if len(this.Field10) < len(that1.Field10) {
			return -1
		}
		return 1
	}
	for i := range this.Field10 {
		if this.Field10[i] != that1.Field10[i] {
			if this.Field10[i] < that1.Field10[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field11) != len(that1.Field11) {
		if len(this.Field11) < len(that1.Field11) {
			return -1
		}
		return 1
	}
	for i := range this.Field11 {
		if this.Field11[i] != that1.Field11[i] {
			if this.Field11[i] < that1.Field11[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field12) != len(that1.Field12) {
		if len(this.Field12) < len(that1.Field12) {
			return -1
		}
		return 1
	}
	for i := range this.Field12 {
		if this.Field12[i] != that1.Field12[i] {
			if this.Field12[i] < that1.Field12[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field13) != len(that1.Field13) {
		if len(this.Field13) < len(that1.Field13) {
			return -1
		}
		return 1
	}
	for i := range this.Field13 {
		if this.Field13[i] != that1.Field13[i] {
			if !this.Field13[i] {
				return -1
			}
			return 1
		}
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *NinRepPackedNative) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*NinRepPackedNative)
	if !ok {
		that2, ok := that.(NinRepPackedNative)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if len(this.Field1) != len(that1.Field1) {
		if len(this.Field1) < len(that1.Field1) {
			return -1
		}
		return 1
	}
	for i := range this.Field1 {
		if this.Field1[i] != that1.Field1[i] {
			if this.Field1[i] < that1.Field1[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field2) != len(that1.Field2) {
		if len(this.Field2) < len(that1.Field2) {
			return -1
		}
		return 1
	}
	for i := range this.Field2 {
		if this.Field2[i] != that1.Field2[i] {
			if this.Field2[i] < that1.Field2[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field3) != len(that1.Field3) {
		if len(this.Field3) < len(that1.Field3) {
			return -1
		}
		return 1
	}
	for i := range this.Field3 {
		if this.Field3[i] != that1.Field3[i] {
			if this.Field3[i] < that1.Field3[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field4) != len(that1.Field4) {
		if len(this.Field4) < len(that1.Field4) {
			return -1
		}
		return 1
	}
	for i := range this.Field4 {
		if this.Field4[i] != that1.Field4[i] {
			if this.Field4[i] < that1.Field4[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field5) != len(that1.Field5) {
		if len(this.Field5) < len(that1.Field5) {
			return -1
		}
		return 1
	}
	for i := range this.Field5 {
		if this.Field5[i] != that1.Field5[i] {
			if this.Field5[i] < that1.Field5[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field6) != len(that1.Field6) {
		if len(this.Field6) < len(that1.Field6) {
			return -1
		}
		return 1
	}
	for i := range this.Field6 {
		if this.Field6[i] != that1.Field6[i] {
			if this.Field6[i] < that1.Field6[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field7) != len(that1.Field7) {
		if len(this.Field7) < len(that1.Field7) {
			return -1
		}
		return 1
	}
	for i := range this.Field7 {
		if this.Field7[i] != that1.Field7[i] {
			if this.Field7[i] < that1.Field7[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field8) != len(that1.Field8) {
		if len(this.Field8) < len(that1.Field8) {
			return -1
		}
		return 1
	}
	for i := range this.Field8 {
		if this.Field8[i] != that1.Field8[i] {
			if this.Field8[i] < that1.Field8[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field9) != len(that1.Field9) {
		if len(this.Field9) < len(that1.Field9) {
			return -1
		}
		return 1
	}
	for i := range this.Field9 {
		if this.Field9[i] != that1.Field9[i] {
			if this.Field9[i] < that1.Field9[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field10) != len(that1.Field10) {
		if len(this.Field10) < len(that1.Field10) {
			return -1
		}
		return 1
	}
	for i := range this.Field10 {
		if this.Field10[i] != that1.Field10[i] {
			if this.Field10[i] < that1.Field10[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field11) != len(that1.Field11) {
		if len(this.Field11) < len(that1.Field11) {
			return -1
		}
		return 1
	}
	for i := range this.Field11 {
		if this.Field11[i] != that1.Field11[i] {
			if this.Field11[i] < that1.Field11[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field12) != len(that1.Field12) {
		if len(this.Field12) < len(that1.Field12) {
			return -1
		}
		return 1
	}
	for i := range this.Field12 {
		if this.Field12[i] != that1.Field12[i] {
			if this.Field12[i] < that1.Field12[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field13) != len(that1.Field13) {
		if len(this.Field13) < len(that1.Field13) {
			return -1
		}
		return 1
	}
	for i := range this.Field13 {
		if this.Field13[i] != that1.Field13[i] {
			if !this.Field13[i] {
				return -1
			}
			return 1
		}
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *NidOptStruct) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*NidOptStruct)
	if !ok {
		that2, ok := that.(NidOptStruct)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if this.Field1 != that1.Field1 {
		if this.Field1 < that1.Field1 {
			return -1
		}
		return 1
	}
	if this.Field2 != that1.Field2 {
		if this.Field2 < that1.Field2 {
			return -1
		}
		return 1
	}
	if c := this.Field3.Compare(&that1.Field3); c != 0 {
		return c
	}
	if c := this.Field4.Compare(&that1.Field4); c != 0 {
		return c
	}
	if this.Field6 != that1.Field6 {
		if this.Field6 < that1.Field6 {
			return -1
		}
		return 1
	}
	if this.Field7 != that1.Field7 {
		if this.Field7 < that1.Field7 {
			return -1
		}
		return 1
	}
	if c := this.Field8.Compare(&that1.Field8); c != 0 {
		return c
	}
	if this.Field13 != that1.Field13 {
		if !this.Field13 {
			return -1
		}
		return 1
	}
	if this.Field14 != that1.Field14 {
		if this.Field14 < that1.Field14 {
			return -1
		}
		return 1
	}
	if c := bytes.Compare(this.Field15, that1.Field15); c != 0 {
		return c
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *NinOptStruct) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*NinOptStruct)
	if !ok {
		that2, ok := that.(NinOptStruct)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			if *this.Field1 < *that1.Field1 {
				return -1
			}
			return 1
		}
	} else if this.Field1 != nil {
		return 1
	} else if that1.Field1 != nil {
		return -1
	}
	if this.Field2 != nil && that1.Field2 != nil {
		if *this.Field2 != *that1.Field2 {
			if *this.Field2 < *that1.Field2 {
				return -1
			}
			return 1
		}
	} else if this.Field2 != nil {
		return 1
	} else if that1.Field2 != nil {
		return -1
	}
	if c := this.Field3.Compare(that1.Field3); c != 0 {
		return c
	}
	if c := this.Field4.Compare(that1.Field4); c != 0 {
		return c
	}
	if this.Field6 != nil && that1.Field6 != nil {
		if *this.Field6 != *that1.Field6 {
			if *this.Field6 < *that1.Field6 {
				return -1
			}
			return 1
		}
	} else if this.Field6 != nil {
		return 1
	} else if that1.Field6 != nil {
		return -1
	}
	if this.Field7 != nil && that1.Field7 != nil {
		if *this.Field7 != *that1.Field7 {
			if *this.Field7 < *that1.Field7 {
				return -1
			}
			return 1
		}
	} else if this.Field7 != nil {
		return 1
	} else if that1.Field7 != nil {
		return -1
	}
	if c := this.Field8.Compare(that1.Field8); c != 0 {
		return c
	}
	if this.Field13 != nil && that1.Field13 != nil {
		if *this.Field13 != *that1.Field13 {
			if !*this.Field13 {
				return -1
			}
			return 1
		}
	} else if this.Field13 != nil {
		return 1
	} else if that1.Field13 != nil {
		return -1
	}
	if this.Field14 != nil && that1.Field14 != nil {
		if *this.Field14 != *that1.Field14 {
			if *this.Field14 < *that1.Field14 {
				return -1
			}
			return 1
		}
	} else if this.Field14 != nil {
		return 1
	} else if that1.Field14 != nil {
		return -1
	}
	if c := bytes.Compare(this.Field15, that1.Field15); c != 0 {
		return c
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *NidRepStruct) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*NidRepStruct)
	if !ok {
		that2, ok := that.(NidRepStruct)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if len(this.Field1) != len(that1.Field1) {
		if len(this.Field1) < len(that1.Field1) {
			return -1
		}
		return 1
	}
	for i := range this.Field1 {
		if this.Field1[i] != that1.Field1[i] {
			if this.Field1[i] < that1.Field1[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field2) != len(that1.Field2) {
		if len(this.Field2) < len(that1.Field2) {
			return -1
		}
		return 1
	}
	for i := range this.Field2 {
		if this.Field2[i] != that1.Field2[i] {
			if this.Field2[i] < that1.Field2[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field3) != len(that1.Field3) {
		if len(this.Field3) < len(that1.Field3) {
			return -1
		}
		return 1
	}
	for i := range this.Field3 {
		if c := this.Field3[i].Compare(&that1.Field3[i]); c != 0 {
			return c
		}
	}
	if len(this.Field4) != len(that1.Field4) {
		if len(this.Field4) < len(that1.Field4) {
			return -1
		}
		return 1
	}
	for i := range this.Field4 {
		if c := this.Field4[i].Compare(&that1.Field4[i]); c != 0 {
			return c
		}
	}
	if len(this.Field6) != len(that1.Field6) {
		if len(this.Field6) < len(that1.Field6) {
			return -1
		}
		return 1
	}
	for i := range this.Field6 {
		if this.Field6[i] != that1.Field6[i] {
			if this.Field6[i] < that1.Field6[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field7) != len(that1.Field7) {
		if len(this.Field7) < len(that1.Field7) {
			return -1
		}
		return 1
	}
	for i := range this.Field7 {
		if this.Field7[i] != that1.Field7[i] {
			if this.Field7[i] < that1.Field7[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field8) != len(that1.Field8) {
		if len(this.Field8) < len(that1.Field8) {
			return -1
		}
		return 1
	}
	for i := range this.Field8 {
		if c := this.Field8[i].Compare(&that1.Field8[i]); c != 0 {
			return c
		}
	}
	if len(this.Field13) != len(that1.Field13) {
		if len(this.Field13) < len(that1.Field13) {
			return -1
		}
		return 1
	}
	for i := range this.Field13 {
		if this.Field13[i] != that1.Field13[i] {
			if !this.Field13[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field14) != len(that1.Field14) {
		if len(this.Field14) < len(that1.Field14) {
			return -1
		}
		return 1
	}
	for i := range this.Field14 {
		if this.Field14[i] != that1.Field14[i] {
			if this.Field14[i] < that1.Field14[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field15) != len(that1.Field15) {
		if len(this.Field15) < len(that1.Field15) {
			return -1
		}
		return 1
	}
	for i := range this.Field15 {
		if c := bytes.Compare(this.Field15[i], that1.Field15[i]); c != 0 {
			return c
		}
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *NinRepStruct) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*NinRepStruct)
	if !ok {
		that2, ok := that.(NinRepStruct)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if len(this.Field1) != len(that1.Field1) {
		if len(this.Field1) < len(that1.Field1) {
			return -1
		}
		return 1
	}
	for i := range this.Field1 {
		if this.Field1[i] != that1.Field1[i] {
			if this.Field1[i] < that1.Field1[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field2) != len(that1.Field2) {
		if len(this.Field2) < len(that1.Field2) {
			return -1
		}
		return 1
	}
	for i := range this.Field2 {
		if this.Field2[i] != that1.Field2[i] {
			if this.Field2[i] < that1.Field2[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field3) != len(that1.Field3) {
		if len(this.Field3) < len(that1.Field3) {
			return -1
		}
		return 1
	}
	for i := range this.Field3 {
		if c := this.Field3[i].Compare(that1.Field3[i]); c != 0 {
			return c
		}
	}
	if len(this.Field4) != len(that1.Field4) {
		if len(this.Field4) < len(that1.Field4) {
			return -1
		}
		return 1
	}
	for i := range this.Field4 {
		if c := this.Field4[i].Compare(that1.Field4[i]); c != 0 {
			return c
		}
	}
	if len(this.Field6) != len(that1.Field6) {
		if len(this.Field6) < len(that1.Field6) {
			return -1
		}
		return 1
	}
	for i := range this.Field6 {
		if this.Field6[i] != that1.Field6[i] {
			if this.Field6[i] < that1.Field6[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field7) != len(that1.Field7) {
		if len(this.Field7) < len(that1.Field7) {
			return -1
		}
		return 1
	}
	for i := range this.Field7 {
		if this.Field7[i] != that1.Field7[i] {
			if this.Field7[i] < that1.Field7[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field8) != len(that1.Field8) {
		if len(this.Field8) < len(that1.Field8) {
			return -1
		}
		return 1
	}
	for i := range this.Field8 {
		if c := this.Field8[i].Compare(that1.Field8[i]); c != 0 {
			return c
		}
	}
	if len(this.Field13) != len(that1.Field13) {
		if len(this.Field13) < len(that1.Field13) {
			return -1
		}
		return 1
	}
	for i := range this.Field13 {
		if this.Field13[i] != that1.Field13[i] {
			if !this.Field13[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field14) != len(that1.Field14) {
		if len(this.Field14) < len(that1.Field14) {
			return -1
		}
		return 1
	}
	for i := range this.Field14 {
		if this.Field14[i] != that1.Field14[i] {
			if this.Field14[i] < that1.Field14[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field15) != len(that1.Field15) {
		if len(this.Field15) < len(that1.Field15) {
			return -1
		}
		return 1
	}
	for i := range this.Field15 {
		if c := bytes.Compare(this.Field15[i], that1.Field15[i]); c != 0 {
			return c
		}
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *NidEmbeddedStruct) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*NidEmbeddedStruct)
	if !ok {
		that2, ok := that.(NidEmbeddedStruct)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if c := this.NidOptNative.Compare(that1.NidOptNative); c != 0 {
		return c
	}
	if c := this.Field200.Compare(&that1.Field200); c != 0 {
		return c
	}
	if this.Field210 != that1.Field210 {
		if !this.Field210 {
			return -1
		}
		return 1
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *NinEmbeddedStruct) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*NinEmbeddedStruct)
	if !ok {
		that2, ok := that.(NinEmbeddedStruct)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if c := this.NidOptNative.Compare(that1.NidOptNative); c != 0 {
		return c
	}
	if c := this.Field200.Compare(that1.Field200); c != 0 {
		return c
	}
	if this.Field210 != nil && that1.Field210 != nil {
		if *this.Field210 != *that1.Field210 {
			if !*this.Field210 {
				return -1
			}
			return 1
		}
	} else if this.Field210 != nil {
		return 1
	} else if that1.Field210 != nil {
		return -1
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *NidNestedStruct) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*NidNestedStruct)
	if !ok {
		that2, ok := that.(NidNestedStruct)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if c := this.Field1.Compare(&that1.Field1); c != 0 {
		return c
	}
	if len(this.Field2) != len(that1.Field2) {
		if len(this.Field2) < len(that1.Field2) {
			return -1
		}
		return 1
	}
	for i := range this.Field2 {
		if c := this.Field2[i].Compare(&that1.Field2[i]); c != 0 {
			return c
		}
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *NinNestedStruct) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*NinNestedStruct)
	if !ok {
		that2, ok := that.(NinNestedStruct)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if c := this.Field1.Compare(that1.Field1); c != 0 {
		return c
	}
	if len(this.Field2) != len(that1.Field2) {
		if len(this.Field2) < len(that1.Field2) {
			return -1
		}
		return 1
	}
	for i := range this.Field2 {
		if c := this.Field2[i].Compare(that1.Field2[i]); c != 0 {
			return c
		}
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *NidOptCustom) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*NidOptCustom)
	if !ok {
		that2, ok := that.(NidOptCustom)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if c := this.Id.Compare(that1.Id); c != 0 {
		return c
	}
	if c := this.Value.Compare(that1.Value); c != 0 {
		return c
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *CustomDash) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*CustomDash)
	if !ok {
		that2, ok := that.(CustomDash)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if that1.Value == nil {
		if this.Value != nil {
			return 1
		}
	} else if this.Value == nil {
		return -1
	} else if c := this.Value.Compare(*that1.Value); c != 0 {
		return c
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *NinOptCustom) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*NinOptCustom)
	if !ok {
		that2, ok := that.(NinOptCustom)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if that1.Id == nil {
		if this.Id != nil {
			return 1
		}
	} else if this.Id == nil {
		return -1
	} else if c := this.Id.Compare(*that1.Id); c != 0 {
		return c
	}
	if that1.Value == nil {
		if this.Value != nil {
			return 1
		}
	} else if this.Value == nil {
		return -1
	} else if c := this.Value.Compare(*that1.Value); c != 0 {
		return c
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *NidRepCustom) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*NidRepCustom)
	if !ok {
		that2, ok := that.(NidRepCustom)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if len(this.Id) != len(that1.Id) {
		if len(this.Id) < len(that1.Id) {
			return -1
		}
		return 1
	}
	for i := range this.Id {
		if c := this.Id[i].Compare(that1.Id[i]); c != 0 {
			return c
		}
	}
	if len(this.Value) != len(that1.Value) {
		if len(this.Value) < len(that1.Value) {
			return -1
		}
		return 1
	}
	for i := range this.Value {
		if c := this.Value[i].Compare(that1.Value[i]); c != 0 {
			return c
		}
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *NinRepCustom) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*NinRepCustom)
	if !ok {
		that2, ok := that.(NinRepCustom)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if len(this.Id) != len(that1.Id) {
		if len(this.Id) < len(that1.Id) {
			return -1
		}
		return 1
	}
	for i := range this.Id {
		if c := this.Id[i].Compare(that1.Id[i]); c != 0 {
			return c
		}
	}
	if len(this.Value) != len(that1.Value) {
		if len(this.Value) < len(that1.Value) {
			return -1
		}
		return 1
	}
	for i := range this.Value {
		if c := this.Value[i].Compare(that1.Value[i]); c != 0 {
			return c
		}
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *NinOptNativeUnion) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*NinOptNativeUnion)
	if !ok {
		that2, ok := that.(NinOptNativeUnion)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			if *this.Field1 < *that1.Field1 {
				return -1
			}
			return 1
		}
	} else if this.Field1 != nil {
		return 1
	} else if that1.Field1 != nil {
		return -1
	}
	if this.Field2 != nil && that1.Field2 != nil {
		if *this.Field2 != *that1.Field2 {
			if *this.Field2 < *that1.Field2 {
				return -1
			}
			return 1
		}
	} else if this.Field2 != nil {
		return 1
	} else if that1.Field2 != nil {
		return -1
	}
	if this.Field3 != nil && that1.Field3 != nil {
		if *this.Field3 != *that1.Field3 {
			if *this.Field3 < *that1.Field3 {
				return -1
			}
			return 1
		}
	} else if this.Field3 != nil {
		return 1
	} else if that1.Field3 != nil {
		return -1
	}
	if this.Field4 != nil && that1.Field4 != nil {
		if *this.Field4 != *that1.Field4 {
			if *this.Field4 < *that1.Field4 {
				return -1
			}
			return 1
		}
	} else if this.Field4 != nil {
		return 1
	} else if that1.Field4 != nil {
		return -1
	}
	if this.Field5 != nil && that1.Field5 != nil {
		if *this.Field5 != *that1.Field5 {
			if *this.Field5 < *that1.Field5 {
				return -1
			}
			return 1
		}
	} else if this.Field5 != nil {
		return 1
	} else if that1.Field5 != nil {
		return -1
	}
	if this.Field6 != nil && that1.Field6 != nil {
		if *this.Field6 != *that1.Field6 {
			if *this.Field6 < *that1.Field6 {
				return -1
			}
			return 1
		}
	} else if this.Field6 != nil {
		return 1
	} else if that1.Field6 != nil {
		return -1
	}
	if this.Field13 != nil && that1.Field13 != nil {
		if *this.Field13 != *that1.Field13 {
			if !*this.Field13 {
				return -1
			}
			return 1
		}
	} else if this.Field13 != nil {
		return 1
	} else if that1.Field13 != nil {
		return -1
	}
	if this.Field14 != nil && that1.Field14 != nil {
		if *this.Field14 != *that1.Field14 {
			if *this.Field14 < *that1.Field14 {
				return -1
			}
			return 1
		}
	} else if this.Field14 != nil {
		return 1
	} else if that1.Field14 != nil {
		return -1
	}
	if c := bytes.Compare(this.Field15, that1.Field15); c != 0 {
		return c
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *NinOptStructUnion) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*NinOptStructUnion)
	if !ok {
		that2, ok := that.(NinOptStructUnion)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			if *this.Field1 < *that1.Field1 {
				return -1
			}
			return 1
		}
	} else if this.Field1 != nil {
		return 1
	} else if that1.Field1 != nil {
		return -1
	}
	if this.Field2 != nil && that1.Field2 != nil {
		if *this.Field2 != *that1.Field2 {
			if *this.Field2 < *that1.Field2 {
				return -1
			}
			return 1
		}
	} else if this.Field2 != nil {
		return 1
	} else if that1.Field2 != nil {
		return -1
	}
	if c := this.Field3.Compare(that1.Field3); c != 0 {
		return c
	}
	if c := this.Field4.Compare(that1.Field4); c != 0 {
		return c
	}
	if this.Field6 != nil && that1.Field6 != nil {
		if *this.Field6 != *that1.Field6 {
			if *this.Field6 < *that1.Field6 {
				return -1
			}
			return 1
		}
	} else if this.Field6 != nil {
		return 1
	} else if that1.Field6 != nil {
		return -1
	}
	if this.Field7 != nil && that1.Field7 != nil {
		if *this.Field7 != *that1.Field7 {
			if *this.Field7 < *that1.Field7 {
				return -1
			}
			return 1
		}
	} else if this.Field7 != nil {
		return 1
	} else if that1.Field7 != nil {
		return -1
	}
	if this.Field13 != nil && that1.Field13 != nil {
		if *this.Field13 != *that1.Field13 {
			if !*this.Field13 {
				return -1
			}
			return 1
		}
	} else if this.Field13 != nil {
		return 1
	} else if that1.Field13 != nil {
		return -1
	}
	if this.Field14 != nil && that1.Field14 != nil {
		if *this.Field14 != *that1.Field14 {
			if *this.Field14 < *that1.Field14 {
				return -1
			}
			return 1
		}
	} else if this.Field14 != nil {
		return 1
	} else if that1.Field14 != nil {
		return -1
	}
	if c := bytes.Compare(this.Field15, that1.Field15); c != 0 {
		return c
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *NinEmbeddedStructUnion) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*NinEmbeddedStructUnion)
	if !ok {
		that2, ok := that.(NinEmbeddedStructUnion)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if c := this.NidOptNative.Compare(that1.NidOptNative); c != 0 {
		return c
	}
	if c := this.Field200.Compare(that1.Field200); c != 0 {
		return c
	}
	if this.Field210 != nil && that1.Field210 != nil {
		if *this.Field210 != *that1.Field210 {
			if !*this.Field210 {
				return -1
			}
			return 1
		}
	} else if this.Field210 != nil {
		return 1
	} else if that1.Field210 != nil {
		return -1
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *NinNestedStructUnion) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*NinNestedStructUnion)
	if !ok {
		that2, ok := that.(NinNestedStructUnion)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if c := this.Field1.Compare(that1.Field1); c != 0 {
		return c
	}
	if c := this.Field2.Compare(that1.Field2); c != 0 {
		return c
	}
	if c := this.Field3.Compare(that1.Field3); c != 0 {
		return c
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *Tree) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*Tree)
	if !ok {
		that2, ok := that.(Tree)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if c := this.Or.Compare(that1.Or); c != 0 {
		return c
	}
	if c := this.And.Compare(that1.And); c != 0 {
		return c
	}
	if c := this.Leaf.Compare(that1.Leaf); c != 0 {
		return c
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *OrBranch) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*OrBranch)
	if !ok {
		that2, ok := that.(OrBranch)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if c := this.Left.Compare(&that1.Left); c != 0 {
		return c
	}
	if c := this.Right.Compare(&that1.Right); c != 0 {
		return c
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *AndBranch) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*AndBranch)
	if !ok {
		that2, ok := that.(AndBranch)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if c := this.Left.Compare(&that1.Left); c != 0 {
		return c
	}
	if c := this.Right.Compare(&that1.Right); c != 0 {
		return c
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *Leaf) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*Leaf)
	if !ok {
		that2, ok := that.(Leaf)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if this.Value != that1.Value {
		if this.Value < that1.Value {
			return -1
		}
		return 1
	}
	if this.StrValue != that1.StrValue {
		if this.StrValue < that1.StrValue {
			return -1
		}
		return 1
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *DeepTree) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*DeepTree)
	if !ok {
		that2, ok := that.(DeepTree)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if c := this.Down.Compare(that1.Down); c != 0 {
		return c
	}
	if c := this.And.Compare(that1.And); c != 0 {
		return c
	}
	if c := this.Leaf.Compare(that1.Leaf); c != 0 {
		return c
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *ADeepBranch) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*ADeepBranch)
	if !ok {
		that2, ok := that.(ADeepBranch)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if c := this.Down.Compare(&that1.Down); c != 0 {
		return c
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *AndDeepBranch) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*AndDeepBranch)
	if !ok {
		that2, ok := that.(AndDeepBranch)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if c := this.Left.Compare(&that1.Left); c != 0 {
		return c
	}
	if c := this.Right.Compare(&that1.Right); c != 0 {
		return c
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *DeepLeaf) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*DeepLeaf)
	if !ok {
		that2, ok := that.(DeepLeaf)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if c := this.Tree.Compare(&that1.Tree); c != 0 {
		return c
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *Nil) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*Nil)
	if !ok {
		that2, ok := that.(Nil)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *NidOptEnum) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*NidOptEnum)
	if !ok {
		that2, ok := that.(NidOptEnum)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if this.Field1 != that1.Field1 {
		if this.Field1 < that1.Field1 {
			return -1
		}
		return 1
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *NinOptEnum) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*NinOptEnum)
	if !ok {
		that2, ok := that.(NinOptEnum)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			if *this.Field1 < *that1.Field1 {
				return -1
			}
			return 1
		}
	} else if this.Field1 != nil {
		return 1
	} else if that1.Field1 != nil {
		return -1
	}
	if this.Field2 != nil && that1.Field2 != nil {
		if *this.Field2 != *that1.Field2 {
			if *this.Field2 < *that1.Field2 {
				return -1
			}
			return 1
		}
	} else if this.Field2 != nil {
		return 1
	} else if that1.Field2 != nil {
		return -1
	}
	if this.Field3 != nil && that1.Field3 != nil {
		if *this.Field3 != *that1.Field3 {
			if *this.Field3 < *that1.Field3 {
				return -1
			}
			return 1
		}
	} else if this.Field3 != nil {
		return 1
	} else if that1.Field3 != nil {
		return -1
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *NidRepEnum) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*NidRepEnum)
	if !ok {
		that2, ok := that.(NidRepEnum)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if len(this.Field1) != len(that1.Field1) {
		if len(this.Field1) < len(that1.Field1) {
			return -1
		}
		return 1
	}
	for i := range this.Field1 {
		if this.Field1[i] != that1.Field1[i] {
			if this.Field1[i] < that1.Field1[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field2) != len(that1.Field2) {
		if len(this.Field2) < len(that1.Field2) {
			return -1
		}
		return 1
	}
	for i := range this.Field2 {
		if this.Field2[i] != that1.Field2[i] {
			if this.Field2[i] < that1.Field2[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field3) != len(that1.Field3) {
		if len(this.Field3) < len(that1.Field3) {
			return -1
		}
		return 1
	}
	for i := range this.Field3 {
		if this.Field3[i] != that1.Field3[i] {
			if this.Field3[i] < that1.Field3[i] {
				return -1
			}
			return 1
		}
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *NinRepEnum) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*NinRepEnum)
	if !ok {
		that2, ok := that.(NinRepEnum)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if len(this.Field1) != len(that1.Field1) {
		if len(this.Field1) < len(that1.Field1) {
			return -1
		}
		return 1
	}
	for i := range this.Field1 {
		if this.Field1[i] != that1.Field1[i] {
			if this.Field1[i] < that1.Field1[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field2) != len(that1.Field2) {
		if len(this.Field2) < len(that1.Field2) {
			return -1
		}
		return 1
	}
	for i := range this.Field2 {
		if this.Field2[i] != that1.Field2[i] {
			if this.Field2[i] < that1.Field2[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.Field3) != len(that1.Field3) {
		if len(this.Field3) < len(that1.Field3) {
			return -1
		}
		return 1
	}
	for i := range this.Field3 {
		if this.Field3[i] != that1.Field3[i] {
			if this.Field3[i] < that1.Field3[i] {
				return -1
			}
			return 1
		}
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *NinOptEnumDefault) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*NinOptEnumDefault)
	if !ok {
		that2, ok := that.(NinOptEnumDefault)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			if *this.Field1 < *that1.Field1 {
				return -1
			}
			return 1
		}
	} else if this.Field1 != nil {
		return 1
	} else if that1.Field1 != nil {
		return -1
	}
	if this.Field2 != nil && that1.Field2 != nil {
		if *this.Field2 != *that1.Field2 {
			if *this.Field2 < *that1.Field2 {
				return -1
			}
			return 1
		}
	} else if this.Field2 != nil {
		return 1
	} else if that1.Field2 != nil {
		return -1
	}
	if this.Field3 != nil && that1.Field3 != nil {
		if *this.Field3 != *that1.Field3 {
			if *this.Field3 < *that1.Field3 {
				return -1
			}
			return 1
		}
	} else if this.Field3 != nil {
		return 1
	} else if that1.Field3 != nil {
		return -1
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *AnotherNinOptEnum) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*AnotherNinOptEnum)
	if !ok {
		that2, ok := that.(AnotherNinOptEnum)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			if *this.Field1 < *that1.Field1 {
				return -1
			}
			return 1
		}
	} else if this.Field1 != nil {
		return 1
	} else if that1.Field1 != nil {
		return -1
	}
	if this.Field2 != nil && that1.Field2 != nil {
		if *this.Field2 != *that1.Field2 {
			if *this.Field2 < *that1.Field2 {
				return -1
			}
			return 1
		}
	} else if this.Field2 != nil {
		return 1
	} else if that1.Field2 != nil {
		return -1
	}
	if this.Field3 != nil && that1.Field3 != nil {
		if *this.Field3 != *that1.Field3 {
			if *this.Field3 < *that1.Field3 {
				return -1
			}
			return 1
		}
	} else if this.Field3 != nil {
		return 1
	} else if that1.Field3 != nil {
		return -1
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *AnotherNinOptEnumDefault) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*AnotherNinOptEnumDefault)
	if !ok {
		that2, ok := that.(AnotherNinOptEnumDefault)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			if *this.Field1 < *that1.Field1 {
				return -1
			}
			return 1
		}
	} else if this.Field1 != nil {
		return 1
	} else if that1.Field1 != nil {
		return -1
	}
	if this.Field2 != nil && that1.Field2 != nil {
		if *this.Field2 != *that1.Field2 {
			if *this.Field2 < *that1.Field2 {
				return -1
			}
			return 1
		}
	} else if this.Field2 != nil {
		return 1
	} else if that1.Field2 != nil {
		return -1
	}
	if this.Field3 != nil && that1.Field3 != nil {
		if *this.Field3 != *that1.Field3 {
			if *this.Field3 < *that1.Field3 {
				return -1
			}
			return 1
		}
	} else if this.Field3 != nil {
		return 1
	} else if that1.Field3 != nil {
		return -1
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *Timer) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*Timer)
	if !ok {
		that2, ok := that.(Timer)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if this.Time1 != that1.Time1 {
		if this.Time1 < that1.Time1 {
			return -1
		}
		return 1
	}
	if this.Time2 != that1.Time2 {
		if this.Time2 < that1.Time2 {
			return -1
		}
		return 1
	}
	if c := bytes.Compare(this.Data, that1.Data); c != 0 {
		return c
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *MyExtendable) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*MyExtendable)
	if !ok {
		that2, ok := that.(MyExtendable)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			if *this.Field1 < *that1.Field1 {
				return -1
			}
			return 1
		}
	} else if this.Field1 != nil {
		return 1
	} else if that1.Field1 != nil {
		return -1
	}
	thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this)
	thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1)
	extkeys := make([]int32, 0, len(thismap)+len(thatmap))
	for k := range thismap {
		extkeys = append(extkeys, k)
	}
	for k := range thatmap {
		if _, ok := thismap[k]; !ok {
			extkeys = append(extkeys, k)
		}
	}
	github_com_gogo_protobuf_sortkeys.Int32s(extkeys)
	for _, k := range extkeys {
		if v, ok := thismap[k]; ok {
			if v2, ok := thatmap[k]; ok {
				if c := v.Compare(&v2); c != 0 {
					return c
				}
			} else {
				return 1
			}
		} else {
			return -1
		}
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *OtherExtenable) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*OtherExtenable)
	if !ok {
		that2, ok := that.(OtherExtenable)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if this.Field2 != nil && that1.Field2 != nil {
		if *this.Field2 != *that1.Field2 {
			if *this.Field2 < *that1.Field2 {
				return -1
			}
			return 1
		}
	} else if this.Field2 != nil {
		return 1
	} else if that1.Field2 != nil {
		return -1
	}
	if this.Field13 != nil && that1.Field13 != nil {
		if *this.Field13 != *that1.Field13 {
			if *this.Field13 < *that1.Field13 {
				return -1
			}
			return 1
		}
	} else if this.Field13 != nil {
		return 1
	} else if that1.Field13 != nil {
		return -1
	}
	if c := this.M.Compare(that1.M); c != 0 {
		return c
	}
	thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this)
	thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1)
	extkeys := make([]int32, 0, len(thismap)+len(thatmap))
	for k := range thismap {
		extkeys = append(extkeys, k)
	}
	for k := range thatmap {
		if _, ok := thismap[k]; !ok {
			extkeys = append(extkeys, k)
		}
	}
	github_com_gogo_protobuf_sortkeys.Int32s(extkeys)
	for _, k := range extkeys {
		if v, ok := thismap[k]; ok {
			if v2, ok := thatmap[k]; ok {
				if c := v.Compare(&v2); c != 0 {
					return c
				}
			} else {
				return 1
			}
		} else {
			return -1
		}
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *NestedDefinition) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*NestedDefinition)
	if !ok {
		that2, ok := that.(NestedDefinition)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			if *this.Field1 < *that1.Field1 {
				return -1
			}
			return 1
		}
	} else if this.Field1 != nil {
		return 1
	} else if that1.Field1 != nil {
		return -1
	}
	if this.EnumField != nil && that1.EnumField != nil {
		if *this.EnumField != *that1.EnumField {
			if *this.EnumField < *that1.EnumField {
				return -1
			}
			return 1
		}
	} else if this.EnumField != nil {
		return 1
	} else if that1.EnumField != nil {
		return -1
	}
	if c := this.NNM.Compare(that1.NNM); c != 0 {
		return c
	}
	if c := this.NM.Compare(that1.NM); c != 0 {
		return c
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *NestedDefinition_NestedMessage) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*NestedDefinition_NestedMessage)
	if !ok {
		that2, ok := that.(NestedDefinition_NestedMessage)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if this.NestedField1 != nil && that1.NestedField1 != nil {
		if *this.NestedField1 != *that1.NestedField1 {
			if *this.NestedField1 < *that1.NestedField1 {
				return -1
			}
			return 1
		}
	} else if this.NestedField1 != nil {
		return 1
	} else if that1.NestedField1 != nil {
		return -1
	}
	if c := this.NNM.Compare(that1.NNM); c != 0 {
		return c
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *NestedDefinition_NestedMessage_NestedNestedMsg) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*NestedDefinition_NestedMessage_NestedNestedMsg)
	if !ok {
		that2, ok := that.(NestedDefinition_NestedMessage_NestedNestedMsg)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if this.NestedNestedField1 != nil && that1.NestedNestedField1 != nil {
		if *this.NestedNestedField1 != *that1.NestedNestedField1 {
			if *this.NestedNestedField1 < *that1.NestedNestedField1 {
				return -1
			}
			return 1
		}
	} else if this.NestedNestedField1 != nil {
		return 1
	} else if that1.NestedNestedField1 != nil {
		return -1
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *NestedScope) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*NestedScope)
	if !ok {
		that2, ok := that.(NestedScope)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if c := this.A.Compare(that1.A); c != 0 {
		return c
	}
	if this.B != nil && that1.B != nil {
		if *this.B != *that1.B {
			if *this.B < *that1.B {
				return -1
			}
			return 1
		}
	} else if this.B != nil {
		return 1
	} else if that1.B != nil {
		return -1
	}
	if c := this.C.Compare(that1.C); c != 0 {
		return c
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *NinOptNativeDefault) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*NinOptNativeDefault)
	if !ok {
		that2, ok := that.(NinOptNativeDefault)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			if *this.Field1 < *that1.Field1 {
				return -1
			}
			return 1
		}
	} else if this.Field1 != nil {
		return 1
	} else if that1.Field1 != nil {
		return -1
	}
	if this.Field2 != nil && that1.Field2 != nil {
		if *this.Field2 != *that1.Field2 {
			if *this.Field2 < *that1.Field2 {
				return -1
			}
			return 1
		}
	} else if this.Field2 != nil {
		return 1
	} else if that1.Field2 != nil {
		return -1
	}
	if this.Field3 != nil && that1.Field3 != nil {
		if *this.Field3 != *that1.Field3 {
			if *this.Field3 < *that1.Field3 {
				return -1
			}
			return 1
		}
	} else if this.Field3 != nil {
		return 1
	} else if that1.Field3 != nil {
		return -1
	}
	if this.Field4 != nil && that1.Field4 != nil {
		if *this.Field4 != *that1.Field4 {
			if *this.Field4 < *that1.Field4 {
				return -1
			}
			return 1
		}
	} else if this.Field4 != nil {
		return 1
	} else if that1.Field4 != nil {
		return -1
	}
	if this.Field5 != nil && that1.Field5 != nil {
		if *this.Field5 != *that1.Field5 {
			if *this.Field5 < *that1.Field5 {
				return -1
			}
			return 1
		}
	} else if this.Field5 != nil {
		return 1
	} else if that1.Field5 != nil {
		return -1
	}
	if this.Field6 != nil && that1.Field6 != nil {
		if *this.Field6 != *that1.Field6 {
			if *this.Field6 < *that1.Field6 {
				return -1
			}
			return 1
		}
	} else if this.Field6 != nil {
		return 1
	} else if that1.Field6 != nil {
		return -1
	}
	if this.Field7 != nil && that1.Field7 != nil {
		if *this.Field7 != *that1.Field7 {
			if *this.Field7 < *that1.Field7 {
				return -1
			}
			return 1
		}
	} else if this.Field7 != nil {
		return 1
	} else if that1.Field7 != nil {
		return -1
	}
	if this.Field8 != nil && that1.Field8 != nil {
		if *this.Field8 != *that1.Field8 {
			if *this.Field8 < *that1.Field8 {
				return -1
			}
			return 1
		}
	} else if this.Field8 != nil {
		return 1
	} else if that1.Field8 != nil {
		return -1
	}
	if this.Field9 != nil && that1.Field9 != nil {
		if *this.Field9 != *that1.Field9 {
			if *this.Field9 < *that1.Field9 {
				return -1
			}
			return 1
		}
	} else if this.Field9 != nil {
		return 1
	} else if that1.Field9 != nil {
		return -1
	}
	if this.Field10 != nil && that1.Field10 != nil {
		if *this.Field10 != *that1.Field10 {
			if *this.Field10 < *that1.Field10 {
				return -1
			}
			return 1
		}
	} else if this.Field10 != nil {
		return 1
	} else if that1.Field10 != nil {
		return -1
	}
	if this.Field11 != nil && that1.Field11 != nil {
		if *this.Field11 != *that1.Field11 {
			if *this.Field11 < *that1.Field11 {
				return -1
			}
			return 1
		}
	} else if this.Field11 != nil {
		return 1
	} else if that1.Field11 != nil {
		return -1
	}
	if this.Field12 != nil && that1.Field12 != nil {
		if *this.Field12 != *that1.Field12 {
			if *this.Field12 < *that1.Field12 {
				return -1
			}
			return 1
		}
	} else if this.Field12 != nil {
		return 1
	} else if that1.Field12 != nil {
		return -1
	}
	if this.Field13 != nil && that1.Field13 != nil {
		if *this.Field13 != *that1.Field13 {
			if !*this.Field13 {
				return -1
			}
			return 1
		}
	} else if this.Field13 != nil {
		return 1
	} else if that1.Field13 != nil {
		return -1
	}
	if this.Field14 != nil && that1.Field14 != nil {
		if *this.Field14 != *that1.Field14 {
			if *this.Field14 < *that1.Field14 {
				return -1
			}
			return 1
		}
	} else if this.Field14 != nil {
		return 1
	} else if that1.Field14 != nil {
		return -1
	}
	if c := bytes.Compare(this.Field15, that1.Field15); c != 0 {
		return c
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *CustomContainer) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*CustomContainer)
	if !ok {
		that2, ok := that.(CustomContainer)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if c := this.CustomStruct.Compare(&that1.CustomStruct); c != 0 {
		return c
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *CustomNameNidOptNative) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*CustomNameNidOptNative)
	if !ok {
		that2, ok := that.(CustomNameNidOptNative)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if this.FieldA != that1.FieldA {
		if this.FieldA < that1.FieldA {
			return -1
		}
		return 1
	}
	if this.FieldB != that1.FieldB {
		if this.FieldB < that1.FieldB {
			return -1
		}
		return 1
	}
	if this.FieldC != that1.FieldC {
		if this.FieldC < that1.FieldC {
			return -1
		}
		return 1
	}
	if this.FieldD != that1.FieldD {
		if this.FieldD < that1.FieldD {
			return -1
		}
		return 1
	}
	if this.FieldE != that1.FieldE {
		if this.FieldE < that1.FieldE {
			return -1
		}
		return 1
	}
	if this.FieldF != that1.FieldF {
		if this.FieldF < that1.FieldF {
			return -1
		}
		return 1
	}
	if this.FieldG != that1.FieldG {
		if this.FieldG < that1.FieldG {
			return -1
		}
		return 1
	}
	if this.FieldH != that1.FieldH {
		if this.FieldH < that1.FieldH {
			return -1
		}
		return 1
	}
	if this.FieldI != that1.FieldI {
		if this.FieldI < that1.FieldI {
			return -1
		}
		return 1
	}
	if this.FieldJ != that1.FieldJ {
		if this.FieldJ < that1.FieldJ {
			return -1
		}
		return 1
	}
	if this.FieldK != that1.FieldK {
		if this.FieldK < that1.FieldK {
			return -1
		}
		return 1
	}
	if this.FieldL != that1.FieldL {
		if this.FieldL < that1.FieldL {
			return -1
		}
		return 1
	}
	if this.FieldM != that1.FieldM {
		if !this.FieldM {
			return -1
		}
		return 1
	}
	if this.FieldN != that1.FieldN {
		if this.FieldN < that1.FieldN {
			return -1
		}
		return 1
	}
	if c := bytes.Compare(this.FieldO, that1.FieldO); c != 0 {
		return c
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *CustomNameNinOptNative) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*CustomNameNinOptNative)
	if !ok {
		that2, ok := that.(CustomNameNinOptNative)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if this.FieldA != nil && that1.FieldA != nil {
		if *this.FieldA != *that1.FieldA {
			if *this.FieldA < *that1.FieldA {
				return -1
			}
			return 1
		}
	} else if this.FieldA != nil {
		return 1
	} else if that1.FieldA != nil {
		return -1
	}
	if this.FieldB != nil && that1.FieldB != nil {
		if *this.FieldB != *that1.FieldB {
			if *this.FieldB < *that1.FieldB {
				return -1
			}
			return 1
		}
	} else if this.FieldB != nil {
		return 1
	} else if that1.FieldB != nil {
		return -1
	}
	if this.FieldC != nil && that1.FieldC != nil {
		if *this.FieldC != *that1.FieldC {
			if *this.FieldC < *that1.FieldC {
				return -1
			}
			return 1
		}
	} else if this.FieldC != nil {
		return 1
	} else if that1.FieldC != nil {
		return -1
	}
	if this.FieldD != nil && that1.FieldD != nil {
		if *this.FieldD != *that1.FieldD {
			if *this.FieldD < *that1.FieldD {
				return -1
			}
			return 1
		}
	} else if this.FieldD != nil {
		return 1
	} else if that1.FieldD != nil {
		return -1
	}
	if this.FieldE != nil && that1.FieldE != nil {
		if *this.FieldE != *that1.FieldE {
			if *this.FieldE < *that1.FieldE {
				return -1
			}
			return 1
		}
	} else if this.FieldE != nil {
		return 1
	} else if that1.FieldE != nil {
		return -1
	}
	if this.FieldF != nil && that1.FieldF != nil {
		if *this.FieldF != *that1.FieldF {
			if *this.FieldF < *that1.FieldF {
				return -1
			}
			return 1
		}
	} else if this.FieldF != nil {
		return 1
	} else if that1.FieldF != nil {
		return -1
	}
	if this.FieldG != nil && that1.FieldG != nil {
		if *this.FieldG != *that1.FieldG {
			if *this.FieldG < *that1.FieldG {
				return -1
			}
			return 1
		}
	} else if this.FieldG != nil {
		return 1
	} else if that1.FieldG != nil {
		return -1
	}
	if this.FieldH != nil && that1.FieldH != nil {
		if *this.FieldH != *that1.FieldH {
			if *this.FieldH < *that1.FieldH {
				return -1
			}
			return 1
		}
	} else if this.FieldH != nil {
		return 1
	} else if that1.FieldH != nil {
		return -1
	}
	if this.FieldI != nil && that1.FieldI != nil {
		if *this.FieldI != *that1.FieldI {
			if *this.FieldI < *that1.FieldI {
				return -1
			}
			return 1
		}
	} else if this.FieldI != nil {
		return 1
	} else if that1.FieldI != nil {
		return -1
	}
	if this.FieldJ != nil && that1.FieldJ != nil {
		if *this.FieldJ != *that1.FieldJ {
			if *this.FieldJ < *that1.FieldJ {
				return -1
			}
			return 1
		}
	} else if this.FieldJ != nil {
		return 1
	} else if that1.FieldJ != nil {
		return -1
	}
	if this.FieldK != nil && that1.FieldK != nil {
		if *this.FieldK != *that1.FieldK {
			if *this.FieldK < *that1.FieldK {
				return -1
			}
			return 1
		}
	} else if this.FieldK != nil {
		return 1
	} else if that1.FieldK != nil {
		return -1
	}
	if this.FielL != nil && that1.FielL != nil {
		if *this.FielL != *that1.FielL {
			if *this.FielL < *that1.FielL {
				return -1
			}
			return 1
		}
	} else if this.FielL != nil {
		return 1
	} else if that1.FielL != nil {
		return -1
	}
	if this.FieldM != nil && that1.FieldM != nil {
		if *this.FieldM != *that1.FieldM {
			if !*this.FieldM {
				return -1
			}
			return 1
		}
	} else if this.FieldM != nil {
		return 1
	} else if that1.FieldM != nil {
		return -1
	}
	if this.FieldN != nil && that1.FieldN != nil {
		if *this.FieldN != *that1.FieldN {
			if *this.FieldN < *that1.FieldN {
				return -1
			}
			return 1
		}
	} else if this.FieldN != nil {
		return 1
	} else if that1.FieldN != nil {
		return -1
	}
	if c := bytes.Compare(this.FieldO, that1.FieldO); c != 0 {
		return c
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *CustomNameNinRepNative) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*CustomNameNinRepNative)
	if !ok {
		that2, ok := that.(CustomNameNinRepNative)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if len(this.FieldA) != len(that1.FieldA) {
		if len(this.FieldA) < len(that1.FieldA) {
			return -1
		}
		return 1
	}
	for i := range this.FieldA {
		if this.FieldA[i] != that1.FieldA[i] {
			if this.FieldA[i] < that1.FieldA[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.FieldB) != len(that1.FieldB) {
		if len(this.FieldB) < len(that1.FieldB) {
			return -1
		}
		return 1
	}
	for i := range this.FieldB {
		if this.FieldB[i] != that1.FieldB[i] {
			if this.FieldB[i] < that1.FieldB[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.FieldC) != len(that1.FieldC) {
		if len(this.FieldC) < len(that1.FieldC) {
			return -1
		}
		return 1
	}
	for i := range this.FieldC {
		if this.FieldC[i] != that1.FieldC[i] {
			if this.FieldC[i] < that1.FieldC[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.FieldD) != len(that1.FieldD) {
		if len(this.FieldD) < len(that1.FieldD) {
			return -1
		}
		return 1
	}
	for i := range this.FieldD {
		if this.FieldD[i] != that1.FieldD[i] {
			if this.FieldD[i] < that1.FieldD[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.FieldE) != len(that1.FieldE) {
		if len(this.FieldE) < len(that1.FieldE) {
			return -1
		}
		return 1
	}
	for i := range this.FieldE {
		if this.FieldE[i] != that1.FieldE[i] {
			if this.FieldE[i] < that1.FieldE[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.FieldF) != len(that1.FieldF) {
		if len(this.FieldF) < len(that1.FieldF) {
			return -1
		}
		return 1
	}
	for i := range this.FieldF {
		if this.FieldF[i] != that1.FieldF[i] {
			if this.FieldF[i] < that1.FieldF[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.FieldG) != len(that1.FieldG) {
		if len(this.FieldG) < len(that1.FieldG) {
			return -1
		}
		return 1
	}
	for i := range this.FieldG {
		if this.FieldG[i] != that1.FieldG[i] {
			if this.FieldG[i] < that1.FieldG[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.FieldH) != len(that1.FieldH) {
		if len(this.FieldH) < len(that1.FieldH) {
			return -1
		}
		return 1
	}
	for i := range this.FieldH {
		if this.FieldH[i] != that1.FieldH[i] {
			if this.FieldH[i] < that1.FieldH[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.FieldI) != len(that1.FieldI) {
		if len(this.FieldI) < len(that1.FieldI) {
			return -1
		}
		return 1
	}
	for i := range this.FieldI {
		if this.FieldI[i] != that1.FieldI[i] {
			if this.FieldI[i] < that1.FieldI[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.FieldJ) != len(that1.FieldJ) {
		if len(this.FieldJ) < len(that1.FieldJ) {
			return -1
		}
		return 1
	}
	for i := range this.FieldJ {
		if this.FieldJ[i] != that1.FieldJ[i] {
			if this.FieldJ[i] < that1.FieldJ[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.FieldK) != len(that1.FieldK) {
		if len(this.FieldK) < len(that1.FieldK) {
			return -1
		}
		return 1
	}
	for i := range this.FieldK {
		if this.FieldK[i] != that1.FieldK[i] {
			if this.FieldK[i] < that1.FieldK[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.FieldL) != len(that1.FieldL) {
		if len(this.FieldL) < len(that1.FieldL) {
			return -1
		}
		return 1
	}
	for i := range this.FieldL {
		if this.FieldL[i] != that1.FieldL[i] {
			if this.FieldL[i] < that1.FieldL[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.FieldM) != len(that1.FieldM) {
		if len(this.FieldM) < len(that1.FieldM) {
			return -1
		}
		return 1
	}
	for i := range this.FieldM {
		if this.FieldM[i] != that1.FieldM[i] {
			if !this.FieldM[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.FieldN) != len(that1.FieldN) {
		if len(this.FieldN) < len(that1.FieldN) {
			return -1
		}
		return 1
	}
	for i := range this.FieldN {
		if this.FieldN[i] != that1.FieldN[i] {
			if this.FieldN[i] < that1.FieldN[i] {
				return -1
			}
			return 1
		}
	}
	if len(this.FieldO) != len(that1.FieldO) {
		if len(this.FieldO) < len(that1.FieldO) {
			return -1
		}
		return 1
	}
	for i := range this.FieldO {
		if c := bytes.Compare(this.FieldO[i], that1.FieldO[i]); c != 0 {
			return c
		}
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *CustomNameNinStruct) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*CustomNameNinStruct)
	if !ok {
		that2, ok := that.(CustomNameNinStruct)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if this.FieldA != nil && that1.FieldA != nil {
		if *this.FieldA != *that1.FieldA {
			if *this.FieldA < *that1.FieldA {
				return -1
			}
			return 1
		}
	} else if this.FieldA != nil {
		return 1
	} else if that1.FieldA != nil {
		return -1
	}
	if this.FieldB != nil && that1.FieldB != nil {
		if *this.FieldB != *that1.FieldB {
			if *this.FieldB < *that1.FieldB {
				return -1
			}
			return 1
		}
	} else if this.FieldB != nil {
		return 1
	} else if that1.FieldB != nil {
		return -1
	}
	if c := this.FieldC.Compare(that1.FieldC); c != 0 {
		return c
	}
	if len(this.FieldD) != len(that1.FieldD) {
		if len(this.FieldD) < len(that1.FieldD) {
			return -1
		}
		return 1
	}
	for i := range this.FieldD {
		if c := this.FieldD[i].Compare(that1.FieldD[i]); c != 0 {
			return c
		}
	}
	if this.FieldE != nil && that1.FieldE != nil {
		if *this.FieldE != *that1.FieldE {
			if *this.FieldE < *that1.FieldE {
				return -1
			}
			return 1
		}
	} else if this.FieldE != nil {
		return 1
	} else if that1.FieldE != nil {
		return -1
	}
	if this.FieldF != nil && that1.FieldF != nil {
		if *this.FieldF != *that1.FieldF {
			if *this.FieldF < *that1.FieldF {
				return -1
			}
			return 1
		}
	} else if this.FieldF != nil {
		return 1
	} else if that1.FieldF != nil {
		return -1
	}
	if c := this.FieldG.Compare(that1.FieldG); c != 0 {
		return c
	}
	if this.FieldH != nil && that1.FieldH != nil {
		if *this.FieldH != *that1.FieldH {
			if !*this.FieldH {
				return -1
			}
			return 1
		}
	} else if this.FieldH != nil {
		return 1
	} else if that1.FieldH != nil {
		return -1
	}
	if this.FieldI != nil && that1.FieldI != nil {
		if *this.FieldI != *that1.FieldI {
			if *this.FieldI < *that1.FieldI {
				return -1
			}
			return 1
		}
	} else if this.FieldI != nil {
		return 1
	} else if that1.FieldI != nil {
		return -1
	}
	if c := bytes.Compare(this.FieldJ, that1.FieldJ); c != 0 {
		return c
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *CustomNameCustomType) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*CustomNameCustomType)
	if !ok {
		that2, ok := that.(CustomNameCustomType)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if that1.FieldA == nil {
		if this.FieldA != nil {
			return 1
		}
	} else if this.FieldA == nil {
		return -1
	} else if c := this.FieldA.Compare(*that1.FieldA); c != 0 {
		return c
	}
	if that1.FieldB == nil {
		if this.FieldB != nil {
			return 1
		}
	} else if this.FieldB == nil {
		return -1
	} else if c := this.FieldB.Compare(*that1.FieldB); c != 0 {
		return c
	}
	if len(this.FieldC) != len(that1.FieldC) {
		if len(this.FieldC) < len(that1.FieldC) {
			return -1
		}
		return 1
	}
	for i := range this.FieldC {
		if c := this.FieldC[i].Compare(that1.FieldC[i]); c != 0 {
			return c
		}
	}
	if len(this.FieldD) != len(that1.FieldD) {
		if len(this.FieldD) < len(that1.FieldD) {
			return -1
		}
		return 1
	}
	for i := range this.FieldD {
		if c := this.FieldD[i].Compare(that1.FieldD[i]); c != 0 {
			return c
		}
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *CustomNameNinEmbeddedStructUnion) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*CustomNameNinEmbeddedStructUnion)
	if !ok {
		that2, ok := that.(CustomNameNinEmbeddedStructUnion)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if c := this.NidOptNative.Compare(that1.NidOptNative); c != 0 {
		return c
	}
	if c := this.FieldA.Compare(that1.FieldA); c != 0 {
		return c
	}
	if this.FieldB != nil && that1.FieldB != nil {
		if *this.FieldB != *that1.FieldB {
			if !*this.FieldB {
				return -1
			}
			return 1
		}
	} else if this.FieldB != nil {
		return 1
	} else if that1.FieldB != nil {
		return -1
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *CustomNameEnum) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*CustomNameEnum)
	if !ok {
		that2, ok := that.(CustomNameEnum)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if this.FieldA != nil && that1.FieldA != nil {
		if *this.FieldA != *that1.FieldA {
			if *this.FieldA < *that1.FieldA {
				return -1
			}
			return 1
		}
	} else if this.FieldA != nil {
		return 1
	} else if that1.FieldA != nil {
		return -1
	}
	if len(this.FieldB) != len(that1.FieldB) {
		if len(this.FieldB) < len(that1.FieldB) {
			return -1
		}
		return 1
	}
	for i := range this.FieldB {
		if this.FieldB[i] != that1.FieldB[i] {
			if this.FieldB[i] < that1.FieldB[i] {
				return -1
			}
			return 1
		}
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *NoExtensionsMap) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*NoExtensionsMap)
	if !ok {
		that2, ok := that.(NoExtensionsMap)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			if *this.Field1 < *that1.Field1 {
				return -1
			}
			return 1
		}
	} else if this.Field1 != nil {
		return 1
	} else if that1.Field1 != nil {
		return -1
	}
	if c := bytes.Compare(this.XXX_extensions, that1.XXX_extensions); c != 0 {
		return c
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *Unrecognized) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*Unrecognized)
	if !ok {
		that2, ok := that.(Unrecognized)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			if *this.Field1 < *that1.Field1 {
				return -1
			}
			return 1
		}
	} else if this.Field1 != nil {
		return 1
	} else if that1.Field1 != nil {
		return -1
	}
	return 0
}
func (this *UnrecognizedWithInner) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*UnrecognizedWithInner)
	if !ok {
		that2, ok := that.(UnrecognizedWithInner)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if len(this.Embedded) != len(that1.Embedded) {
		if len(this.Embedded) < len(that1.Embedded) {
			return -1
		}
		return 1
	}
	for i := range this.Embedded {
		if c := this.Embedded[i].Compare(that1.Embedded[i]); c != 0 {
			return c
		}
	}
	if this.Field2 != nil && that1.Field2 != nil {
		if *this.Field2 != *that1.Field2 {
			if *this.Field2 < *that1.Field2 {
				return -1
			}
			return 1
		}
	} else if this.Field2 != nil {
		return 1
	} else if that1.Field2 != nil {
		return -1
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *UnrecognizedWithInner_Inner) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*UnrecognizedWithInner_Inner)
	if !ok {
		that2, ok := that.(UnrecognizedWithInner_Inner)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			if *this.Field1 < *that1.Field1 {
				return -1
			}
			return 1
		}
	} else if this.Field1 != nil {
		return 1
	} else if that1.Field1 != nil {
		return -1
	}
	return 0
}
func (this *UnrecognizedWithEmbed) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*UnrecognizedWithEmbed)
	if !ok {
		that2, ok := that.(UnrecognizedWithEmbed)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if c := this.UnrecognizedWithEmbed_Embedded.Compare(&that1.UnrecognizedWithEmbed_Embedded); c != 0 {
		return c
	}
	if this.Field2 != nil && that1.Field2 != nil {
		if *this.Field2 != *that1.Field2 {
			if *this.Field2 < *that1.Field2 {
				return -1
			}
			return 1
		}
	} else if this.Field2 != nil {
		return 1
	} else if that1.Field2 != nil {
		return -1
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *UnrecognizedWithEmbed_Embedded) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*UnrecognizedWithEmbed_Embedded)
	if !ok {
		that2, ok := that.(UnrecognizedWithEmbed_Embedded)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			if *this.Field1 < *that1.Field1 {
				return -1
			}
			return 1
		}
	} else if this.Field1 != nil {
		return 1
	} else if that1.Field1 != nil {
		return -1
	}
	return 0
}
func (this *Node) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*Node)
	if !ok {
		that2, ok := that.(Node)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if this.Label != nil && that1.Label != nil {
		if *this.Label != *that1.Label {
			if *this.Label < *that1.Label {
				return -1
			}
			return 1
		}
	} else if this.Label != nil {
		return 1
	} else if that1.Label != nil {
		return -1
	}
	if len(this.Children) != len(that1.Children) {
		if len(this.Children) < len(that1.Children) {
			return -1
		}
		return 1
	}
	for i := range this.Children {
		if c := this.Children[i].Compare(that1.Children[i]); c != 0 {
			return c
		}
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *NonByteCustomType) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*NonByteCustomType)
	if !ok {
		that2, ok := that.(NonByteCustomType)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if that1.Field1 == nil {
		if this.Field1 != nil {
			return 1
		}
	} else if this.Field1 == nil {
		return -1
	} else if c := this.Field1.Compare(*that1.Field1); c != 0 {
		return c
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *NidOptNonByteCustomType) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*NidOptNonByteCustomType)
	if !ok {
		that2, ok := that.(NidOptNonByteCustomType)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if c := this.Field1.Compare(that1.Field1); c != 0 {
		return c
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *NinOptNonByteCustomType) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*NinOptNonByteCustomType)
	if !ok {
		that2, ok := that.(NinOptNonByteCustomType)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if that1.Field1 == nil {
		if this.Field1 != nil {
			return 1
		}
	} else if this.Field1 == nil {
		return -1
	} else if c := this.Field1.Compare(*that1.Field1); c != 0 {
		return c
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *NidRepNonByteCustomType) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*NidRepNonByteCustomType)
	if !ok {
		that2, ok := that.(NidRepNonByteCustomType)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if len(this.Field1) != len(that1.Field1) {
		if len(this.Field1) < len(that1.Field1) {
			return -1
		}
		return 1
	}
	for i := range this.Field1 {
		if c := this.Field1[i].Compare(that1.Field1[i]); c != 0 {
			return c
		}
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *NinRepNonByteCustomType) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*NinRepNonByteCustomType)
	if !ok {
		that2, ok := that.(NinRepNonByteCustomType)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if len(this.Field1) != len(that1.Field1) {
		if len(this.Field1) < len(that1.Field1) {
			return -1
		}
		return 1
	}
	for i := range this.Field1 {
		if c := this.Field1[i].Compare(that1.Field1[i]); c != 0 {
			return c
		}
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *ProtoType) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*ProtoType)
	if !ok {
		that2, ok := that.(ProtoType)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if this.Field2 != nil && that1.Field2 != nil {
		if *this.Field2 != *that1.Field2 {
			if *this.Field2 < *that1.Field2 {
				return -1
			}
			return 1
		}
	} else if this.Field2 != nil {
		return 1
	} else if that1.Field2 != nil {
		return -1
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *NidOptNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NinOptNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NidRepNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NinRepNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NidRepPackedNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NinRepPackedNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NidOptStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NinOptStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NidRepStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NinRepStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NidEmbeddedStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NinEmbeddedStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NidNestedStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NinNestedStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NidOptCustom) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *CustomDash) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NinOptCustom) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NidRepCustom) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NinRepCustom) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NinOptNativeUnion) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NinOptStructUnion) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NinEmbeddedStructUnion) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NinNestedStructUnion) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *Tree) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *OrBranch) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *AndBranch) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *Leaf) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *DeepTree) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *ADeepBranch) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *AndDeepBranch) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *DeepLeaf) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *Nil) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NidOptEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NinOptEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NidRepEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NinRepEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NinOptEnumDefault) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *AnotherNinOptEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *AnotherNinOptEnumDefault) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *Timer) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *MyExtendable) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *OtherExtenable) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NestedDefinition) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NestedDefinition_NestedMessage) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NestedDefinition_NestedMessage_NestedNestedMsg) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NestedScope) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NinOptNativeDefault) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *CustomContainer) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *CustomNameNidOptNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *CustomNameNinOptNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *CustomNameNinRepNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *CustomNameNinStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *CustomNameCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *CustomNameNinEmbeddedStructUnion) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *CustomNameEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NoExtensionsMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *Unrecognized) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *UnrecognizedWithInner) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *UnrecognizedWithInner_Inner) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *UnrecognizedWithEmbed) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *UnrecognizedWithEmbed_Embedded) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *Node) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NidOptNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NinOptNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NidRepNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NinRepNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *ProtoType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return ThetestDescription()
}
func ThetestDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{}
	var gzipped = []byte{
		// 6764 bytes of a gzipped FileDescriptorSet
		0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x7c, 0x7b, 0x70, 0x24, 0x57,
		0x75, 0xf7, 0xf6, 0xf4, 0x48, 0x3b, 0x3a, 0x7a, 0xb5, 0x5a, 0xbb, 0xda, 0xb1, 0xbc, 0x96, 0x76,
		0xc7, 0xeb, 0xb5, 0x2c, 0xdb, 0x5a, 0xad, 0x56, 0xfb, 0x9a, 0xc5, 0xf6, 0x37, 0xaf, 0x5d, 0x6b,
		0x59, 0x8d, 0x44, 0x4b, 0xc2, 0x5e, 0xf8, 0xbe, 0x9a, 0x6a, 0xcd, 0x5c, 0x49, 0x63, 0xcf, 0x74,
		0x0f, 0xd3, 0x3d, 0xb6, 0xe5, 0xfa, 0xea, 0x2b, 0x7f, 0x90, 0x10, 0xc8, 0x3b, 0x21, 0xa9, 0x00,
		0x01, 0x63, 0xa0, 0x00, 0x43, 0x5e, 0x90, 0x10, 0x02, 0x24, 0x15, 0xfc, 0x0f, 0x61, 0xf3, 0x4f,
		0xca, 0xe4, 0xaf, 0x14, 0x95, 0x72, 0xe1, 0x35, 0x55, 0x21, 0x89, 0x93, 0x10, 0xe2, 0xaa, 0x50,
		0x65, 0xfe, 0x48, 0xdd, 0x57, 0x77, 0xdf, 0x3b, 0x3d, 0xea, 0x96, 0xd7, 0x36, 0xfc, 0xb3, 0x3b,
		0x73, 0xcf, 0xf9, 0x9d, 0x3e, 0xf7, 0xbc, 0xee, 0xe9, 0x7b, 0xaf, 0x06, 0x6e, 0x64, 0xe1, 0xd8,
		0xb6, 0x6d, 0x6f, 0x37, 0xd0, 0xa9, 0x56, 0xdb, 0x76, 0xed, 0xcd, 0xce, 0xd6, 0xa9, 0x1a, 0x72,
		0xaa, 0xed, 0x7a, 0xcb, 0xb5, 0xdb, 0x73, 0x64, 0x4c, 0x1f, 0xa5, 0x1c, 0x73, 0x9c, 0x23, 0xb3,
		0x0c, 0x63, 0x97, 0xeb, 0x0d, 0x54, 0xf4, 0x18, 0xd7, 0x90, 0xab, 0x5f, 0x80, 0xe4, 0x56, 0xbd,
		0x81, 0xd2, 0xca, 0x31, 0x75, 0x66, 0x70, 0xe1, 0xc4, 0x9c, 0x04, 0x9a, 0x13, 0x11, 0xab, 0x78,
		0xd8, 0x20, 0x88, 0xcc, 0x0f, 0x92, 0x30, 0x1e, 0x42, 0xd5, 0x75, 0x48, 0x5a, 0x66, 0x13, 0x4b,
		0x54, 0x66, 0x06, 0x0c, 0xf2, 0x59, 0x4f, 0xc3, 0xc1, 0x96, 0x59, 0x7d, 0xdc, 0xdc, 0x46, 0xe9,
		0x04, 0x19, 0xe6, 0x5f, 0xf5, 0x29, 0x80, 0x1a, 0x6a, 0x21, 0xab, 0x86, 0xac, 0xea, 0x6e, 0x5a,
		0x3d, 0xa6, 0xce, 0x0c, 0x18, 0x81, 0x11, 0xfd, 0x5e, 0x18, 0x6b, 0x75, 0x36, 0x1b, 0xf5, 0x6a,
		0x25, 0xc0, 0x06, 0xc7, 0xd4, 0x99, 0x3e, 0x43, 0xa3, 0x84, 0xa2, 0xcf, 0x7c, 0x37, 0x8c, 0x3e,
		0x89, 0xcc, 0xc7, 0x83, 0xac, 0x83, 0x84, 0x75, 0x04, 0x0f, 0x07, 0x18, 0x0b, 0x30, 0xd4, 0x44,
		0x8e, 0x63, 0x6e, 0xa3, 0x8a, 0xbb, 0xdb, 0x42, 0xe9, 0x24, 0x99, 0xfd, 0xb1, 0xae, 0xd9, 0xcb,
		0x33, 0x1f, 0x64, 0xa8, 0xf5, 0xdd, 0x16, 0xd2, 0x73, 0x30, 0x80, 0xac, 0x4e, 0x93, 0x4a, 0xe8,
		0xeb, 0x61, 0xbf, 0x92, 0xd5, 0x69, 0xca, 0x52, 0x52, 0x18, 0xc6, 0x44, 0x1c, 0x74, 0x50, 0xfb,
		0x89, 0x7a, 0x15, 0xa5, 0xfb, 0x89, 0x80, 0xbb, 0xbb, 0x04, 0xac, 0x51, 0xba, 0x2c, 0x83, 0xe3,
		0xf4, 0x02, 0x0c, 0xa0, 0xa7, 0x5c, 0x64, 0x39, 0x75, 0xdb, 0x4a, 0x1f, 0x24, 0x42, 0xee, 0x0a,
		0xf1, 0x22, 0x6a, 0xd4, 0x64, 0x11, 0x3e, 0x4e, 0x3f, 0x07, 0x07, 0xed, 0x96, 0x5b, 0xb7, 0x2d,
		0x27, 0x9d, 0x3a, 0xa6, 0xcc, 0x0c, 0x2e, 0x1c, 0x0d, 0x0d, 0x84, 0x15, 0xca, 0x63, 0x70, 0x66,
		0x7d, 0x09, 0x34, 0xc7, 0xee, 0xb4, 0xab, 0xa8, 0x52, 0xb5, 0x6b, 0xa8, 0x52, 0xb7, 0xb6, 0xec,
		0xf4, 0x00, 0x11, 0x30, 0xdd, 0x3d, 0x11, 0xc2, 0x58, 0xb0, 0x6b, 0x68, 0xc9, 0xda, 0xb2, 0x8d,
		0x11, 0x47, 0xf8, 0xae, 0x4f, 0x40, 0xbf, 0xb3, 0x6b, 0xb9, 0xe6, 0x53, 0xe9, 0x21, 0x12, 0x21,
		0xec, 0x5b, 0xe6, 0x1b, 0xfd, 0x30, 0x1a, 0x27, 0xc4, 0x2e, 0x41, 0xdf, 0x16, 0x9e, 0x65, 0x3a,
		0xb1, 0x1f, 0x1b, 0x50, 0x8c, 0x68, 0xc4, 0xfe, 0x37, 0x68, 0xc4, 0x1c, 0x0c, 0x5a, 0xc8, 0x71,
		0x51, 0x8d, 0x46, 0x84, 0x1a, 0x33, 0xa6, 0x80, 0x82, 0xba, 0x43, 0x2a, 0xf9, 0x86, 0x42, 0xea,
		0x51, 0x18, 0xf5, 0x54, 0xaa, 0xb4, 0x4d, 0x6b, 0x9b, 0xc7, 0xe6, 0xa9, 0x28, 0x4d, 0xe6, 0x4a,
		0x1c, 0x67, 0x60, 0x98, 0x31, 0x82, 0x84, 0xef, 0x7a, 0x11, 0xc0, 0xb6, 0x90, 0xbd, 0x55, 0xa9,
		0xa1, 0x6a, 0x23, 0x9d, 0xea, 0x61, 0xa5, 0x15, 0xcc, 0xd2, 0x65, 0x25, 0x9b, 0x8e, 0x56, 0x1b,
		0xfa, 0x45, 0x3f, 0xd4, 0x0e, 0xf6, 0x88, 0x94, 0x65, 0x9a, 0x64, 0x5d, 0xd1, 0xb6, 0x01, 0x23,
		0x6d, 0x84, 0xe3, 0x1e, 0xd5, 0xd8, 0xcc, 0x06, 0x88, 0x12, 0x73, 0x91, 0x33, 0x33, 0x18, 0x8c,
		0x4e, 0x6c, 0xb8, 0x1d, 0xfc, 0xaa, 0xdf, 0x09, 0xde, 0x40, 0x85, 0x84, 0x15, 0x90, 0x2a, 0x34,
		0xc4, 0x07, 0xcb, 0x66, 0x13, 0x4d, 0x3e, 0x0d, 0x23, 0xa2, 0x79, 0xf4, 0x43, 0xd0, 0xe7, 0xb8,
		0x66, 0xdb, 0x25, 0x51, 0xd8, 0x67, 0xd0, 0x2f, 0xba, 0x06, 0x2a, 0xb2, 0x6a, 0xa4, 0xca, 0xf5,
		0x19, 0xf8, 0xa3, 0xfe, 0xbf, 0xfc, 0x09, 0xab, 0x64, 0xc2, 0x27, 0xbb, 0x3d, 0x2a, 0x48, 0x96,
		0xe7, 0x3d, 0x79, 0x1e, 0x86, 0x85, 0x09, 0xc4, 0x7d, 0x74, 0xe6, 0xff, 0xc2, 0xe1, 0x50, 0xd1,
		0xfa, 0xa3, 0x70, 0xa8, 0x63, 0xd5, 0x2d, 0x17, 0xb5, 0x5b, 0x6d, 0x84, 0x23, 0x96, 0x3e, 0x2a,
		0xfd, 0x4f, 0x07, 0x7b, 0xc4, 0xdc, 0x46, 0x90, 0x9b, 0x4a, 0x31, 0xc6, 0x3b, 0xdd, 0x83, 0xb3,
		0x03, 0xa9, 0x1f, 0x1e, 0xd4, 0x9e, 0x79, 0xe6, 0x99, 0x67, 0x12, 0x99, 0x8f, 0xf6, 0xc3, 0xa1,
		0xb0, 0x9c, 0x09, 0x4d, 0xdf, 0x09, 0xe8, 0xb7, 0x3a, 0xcd, 0x4d, 0xd4, 0x26, 0x46, 0xea, 0x33,
		0xd8, 0x37, 0x3d, 0x07, 0x7d, 0x0d, 0x73, 0x13, 0x35, 0xd2, 0xc9, 0x63, 0xca, 0xcc, 0xc8, 0xc2,
		0xbd, 0xb1, 0xb2, 0x72, 0xee, 0x1a, 0x86, 0x18, 0x14, 0xa9, 0x3f, 0x08, 0x49, 0x56, 0xa2, 0xb1,
		0x84, 0xd9, 0x78, 0x12, 0x70, 0x2e, 0x19, 0x04, 0xa7, 0xdf, 0x0e, 0x03, 0xf8, 0x7f, 0x1a, 0x1b,
		0xfd, 0x44, 0xe7, 0x14, 0x1e, 0xc0, 0x71, 0xa1, 0x4f, 0x42, 0x8a, 0xa4, 0x49, 0x0d, 0xf1, 0xa5,
		0xcd, 0xfb, 0x8e, 0x03, 0xab, 0x86, 0xb6, 0xcc, 0x4e, 0xc3, 0xad, 0x3c, 0x61, 0x36, 0x3a, 0x88,
		0x04, 0xfc, 0x80, 0x31, 0xc4, 0x06, 0xdf, 0x8d, 0xc7, 0xf4, 0x69, 0x18, 0xa4, 0x59, 0x55, 0xb7,
		0x6a, 0xe8, 0x29, 0x52, 0x3d, 0xfb, 0x0c, 0x9a, 0x68, 0x4b, 0x78, 0x04, 0x3f, 0xfe, 0x31, 0xc7,
		0xb6, 0x78, 0x68, 0x92, 0x47, 0xe0, 0x01, 0xf2, 0xf8, 0xf3, 0x72, 0xe1, 0xbe, 0x23, 0x7c, 0x7a,
		0x72, 0x4c, 0x65, 0xbe, 0x96, 0x80, 0x24, 0xa9, 0x17, 0xa3, 0x30, 0xb8, 0x7e, 0x7d, 0xb5, 0x54,
		0x29, 0xae, 0x6c, 0xe4, 0xaf, 0x95, 0x34, 0x45, 0x1f, 0x01, 0x20, 0x03, 0x97, 0xaf, 0xad, 0xe4,
		0xd6, 0xb5, 0x84, 0xf7, 0x7d, 0xa9, 0xbc, 0x7e, 0x6e, 0x51, 0x53, 0x3d, 0xc0, 0x06, 0x1d, 0x48,
		0x06, 0x19, 0xce, 0x2c, 0x68, 0x7d, 0xba, 0x06, 0x43, 0x54, 0xc0, 0xd2, 0xa3, 0xa5, 0xe2, 0xb9,
		0x45, 0xad, 0x5f, 0x1c, 0x39, 0xb3, 0xa0, 0x1d, 0xd4, 0x87, 0x61, 0x80, 0x8c, 0xe4, 0x57, 0x56,
		0xae, 0x69, 0x29, 0x4f, 0xe6, 0xda, 0xba, 0xb1, 0x54, 0xbe, 0xa2, 0x0d, 0x78, 0x32, 0xaf, 0x18,
		0x2b, 0x1b, 0xab, 0x1a, 0x78, 0x12, 0x96, 0x4b, 0x6b, 0x6b, 0xb9, 0x2b, 0x25, 0x6d, 0xd0, 0xe3,
		0xc8, 0x5f, 0x5f, 0x2f, 0xad, 0x69, 0x43, 0x82, 0x5a, 0x67, 0x16, 0xb4, 0x61, 0xef, 0x11, 0xa5,
		0xf2, 0xc6, 0xb2, 0x36, 0xa2, 0x8f, 0xc1, 0x30, 0x7d, 0x04, 0x57, 0x62, 0x54, 0x1a, 0x3a, 0xb7,
		0xa8, 0x69, 0xbe, 0x22, 0x54, 0xca, 0x98, 0x30, 0x70, 0x6e, 0x51, 0xd3, 0x33, 0x05, 0xe8, 0x23,
		0xd1, 0xa5, 0xeb, 0x30, 0x72, 0x2d, 0x97, 0x2f, 0x5d, 0xab, 0xac, 0xac, 0xae, 0x2f, 0xad, 0x94,
		0x73, 0xd7, 0x34, 0xc5, 0x1f, 0x33, 0x4a, 0xef, 0xda, 0x58, 0x32, 0x4a, 0x45, 0x2d, 0x11, 0x1c,
		0x5b, 0x2d, 0xe5, 0xd6, 0x4b, 0x45, 0x4d, 0xcd, 0x54, 0xe1, 0x50, 0x58, 0x9d, 0x0c, 0xcd, 0x8c,
		0x80, 0x8b, 0x13, 0x3d, 0x5c, 0x4c, 0x64, 0x75, 0xb9, 0xf8, 0x95, 0x04, 0x8c, 0x87, 0xac, 0x15,
		0xa1, 0x0f, 0x79, 0x08, 0xfa, 0x68, 0x88, 0xd2, 0xd5, 0xf3, 0x9e, 0xd0, 0x45, 0x87, 0x04, 0x6c,
		0xd7, 0x0a, 0x4a, 0x70, 0xc1, 0x0e, 0x42, 0xed, 0xd1, 0x41, 0x60, 0x11, 0x5d, 0x35, 0xfd, 0xff,
		0x74, 0xd5, 0x74, 0xba, 0xec, 0x9d, 0x8b, 0xb3, 0xec, 0x91, 0xb1, 0xfd, 0xd5, 0xf6, 0xbe, 0x90,
		0xda, 0x7e, 0x09, 0xc6, 0xba, 0x04, 0xc5, 0xae, 0xb1, 0x1f, 0x50, 0x20, 0xdd, 0xcb, 0x38, 0x11,
		0x95, 0x2e, 0x21, 0x54, 0xba, 0x4b, 0xb2, 0x05, 0x8f, 0xf7, 0x76, 0x42, 0x97, 0xaf, 0xbf, 0xa0,
		0xc0, 0x44, 0x78, 0xa7, 0x18, 0xaa, 0xc3, 0x83, 0xd0, 0xdf, 0x44, 0xee, 0x8e, 0xcd, 0xbb, 0xa5,
		0x93, 0x21, 0x6b, 0x30, 0x26, 0xcb, 0xce, 0x66, 0xa8, 0xe0, 0x22, 0xae, 0xf6, 0x6a, 0xf7, 0xa8,
		0x36, 0x5d, 0x9a, 0x7e, 0x38, 0x01, 0x87, 0x43, 0x85, 0x87, 0x2a, 0x7a, 0x07, 0x40, 0xdd, 0x6a,
		0x75, 0x5c, 0xda, 0x11, 0xd1, 0x02, 0x3b, 0x40, 0x46, 0x48, 0xf1, 0xc2, 0xc5, 0xb3, 0xe3, 0x7a,
		0x74, 0x95, 0xd0, 0x81, 0x0e, 0x11, 0x86, 0x0b, 0xbe, 0xa2, 0x49, 0xa2, 0xe8, 0x54, 0x8f, 0x99,
		0x76, 0x05, 0xe6, 0x3c, 0x68, 0xd5, 0x46, 0x1d, 0x59, 0x6e, 0xc5, 0x71, 0xdb, 0xc8, 0x6c, 0xd6,
		0xad, 0x6d, 0xb2, 0x82, 0xa4, 0xb2, 0x7d, 0x5b, 0x66, 0xc3, 0x41, 0xc6, 0x28, 0x25, 0xaf, 0x71,
		0x2a, 0x46, 0x90, 0x00, 0x6a, 0x07, 0x10, 0xfd, 0x02, 0x82, 0x92, 0x3d, 0x44, 0xe6, 0x57, 0x07,
		0x60, 0x30, 0xd0, 0x57, 0xeb, 0xc7, 0x61, 0xe8, 0x31, 0xf3, 0x09, 0xb3, 0xc2, 0xdf, 0x95, 0xa8,
		0x25, 0x06, 0xf1, 0xd8, 0x2a, 0x7b, 0x5f, 0x9a, 0x87, 0x43, 0x84, 0xc5, 0xee, 0xb8, 0xa8, 0x5d,
		0xa9, 0x36, 0x4c, 0xc7, 0x21, 0x46, 0x4b, 0x11, 0x56, 0x1d, 0xd3, 0x56, 0x30, 0xa9, 0xc0, 0x29,
		0xfa, 0x59, 0x18, 0x27, 0x88, 0x66, 0xa7, 0xe1, 0xd6, 0x5b, 0x0d, 0x54, 0xc1, 0x6f, 0x6f, 0x0e,
		0x59, 0x49, 0x3c, 0xcd, 0xc6, 0x30, 0xc7, 0x32, 0x63, 0xc0, 0x1a, 0x39, 0x7a, 0x11, 0xee, 0x20,
		0xb0, 0x6d, 0x64, 0xa1, 0xb6, 0xe9, 0xa2, 0x0a, 0x7a, 0x5f, 0xc7, 0x6c, 0x38, 0x15, 0xd3, 0xaa,
		0x55, 0x76, 0x4c, 0x67, 0x27, 0x7d, 0x08, 0x0b, 0xc8, 0x27, 0xd2, 0x8a, 0x71, 0x1b, 0x66, 0xbc,
		0xc2, 0xf8, 0x4a, 0x84, 0x2d, 0x67, 0xd5, 0x1e, 0x36, 0x9d, 0x1d, 0x3d, 0x0b, 0x13, 0x44, 0x8a,
		0xe3, 0xb6, 0xeb, 0xd6, 0x76, 0xa5, 0xba, 0x83, 0xaa, 0x8f, 0x57, 0x3a, 0xee, 0xd6, 0x85, 0xf4,
		0xed, 0xc1, 0xe7, 0x13, 0x0d, 0xd7, 0x08, 0x4f, 0x01, 0xb3, 0x6c, 0xb8, 0x5b, 0x17, 0xf4, 0x35,
		0x18, 0xc2, 0xce, 0x68, 0xd6, 0x9f, 0x46, 0x95, 0x2d, 0xbb, 0x4d, 0x96, 0xc6, 0x91, 0x90, 0xd2,
		0x14, 0xb0, 0xe0, 0xdc, 0x0a, 0x03, 0x2c, 0xdb, 0x35, 0x94, 0xed, 0x5b, 0x5b, 0x2d, 0x95, 0x8a,
		0xc6, 0x20, 0x97, 0x72, 0xd9, 0x6e, 0xe3, 0x80, 0xda, 0xb6, 0x3d, 0x03, 0x0f, 0xd2, 0x80, 0xda,
		0xb6, 0xb9, 0x79, 0xcf, 0xc2, 0x78, 0xb5, 0x4a, 0xe7, 0x5c, 0xaf, 0x56, 0xd8, 0x3b, 0x96, 0x93,
		0xd6, 0x04, 0x63, 0x55, 0xab, 0x57, 0x28, 0x03, 0x8b, 0x71, 0x47, 0xbf, 0x08, 0x87, 0x7d, 0x63,
		0x05, 0x81, 0x63, 0x5d, 0xb3, 0x94, 0xa1, 0x67, 0x61, 0xbc, 0xb5, 0xdb, 0x0d, 0xd4, 0x85, 0x27,
		0xb6, 0x76, 0x65, 0xd8, 0x79, 0x38, 0xd4, 0xda, 0x69, 0x75, 0xe3, 0x66, 0x83, 0x38, 0xbd, 0xb5,
		0xd3, 0x92, 0x81, 0x77, 0x91, 0x17, 0xee, 0x36, 0xaa, 0x9a, 0x2e, 0xaa, 0xa5, 0x8f, 0x04, 0xd9,
		0x03, 0x04, 0xfd, 0x14, 0x68, 0xd5, 0x6a, 0x05, 0x59, 0xe6, 0x66, 0x03, 0x55, 0xcc, 0x36, 0xb2,
		0x4c, 0x27, 0x3d, 0x1d, 0x64, 0x1e, 0xa9, 0x56, 0x4b, 0x84, 0x9a, 0x23, 0x44, 0x7d, 0x16, 0xc6,
		0xec, 0xcd, 0xc7, 0xaa, 0x34, 0x24, 0x2b, 0xad, 0x36, 0xda, 0xaa, 0x3f, 0x95, 0x3e, 0x41, 0xec,
		0x3b, 0x8a, 0x09, 0x24, 0x20, 0x57, 0xc9, 0xb0, 0x7e, 0x0f, 0x68, 0x55, 0x67, 0xc7, 0x6c, 0xb7,
		0x48, 0x4d, 0x76, 0x5a, 0x66, 0x15, 0xa5, 0xef, 0xa2, 0xac, 0x74, 0xbc, 0xcc, 0x87, 0x71, 0x4a,
		0x38, 0x4f, 0xd6, 0xb7, 0x5c, 0x2e, 0xf1, 0x6e, 0x9a, 0x12, 0x64, 0x8c, 0x49, 0x9b, 0x01, 0x0d,
		0x9b, 0x42, 0x78, 0xf0, 0x0c, 0x61, 0x1b, 0x69, 0xed, 0xb4, 0x82, 0xcf, 0xbd, 0x13, 0x86, 0x31,
		0xa7, 0xff, 0xd0, 0x7b, 0x68, 0x43, 0xd6, 0xda, 0x09, 0x3c, 0x71, 0x11, 0x26, 0x30, 0x53, 0x13,
		0xb9, 0x66, 0xcd, 0x74, 0xcd, 0x00, 0xf7, 0x7d, 0x84, 0x1b, 0xdb, 0x7d, 0x99, 0x11, 0x05, 0x3d,
		0xdb, 0x9d, 0xcd, 0x5d, 0x2f, 0xb2, 0xee, 0xa7, 0x7a, 0xe2, 0x31, 0x1e, 0x5b, 0x6f, 0x59, 0xd3,
		0x9d, 0xc9, 0xc2, 0x50, 0x30, 0xf0, 0xf5, 0x01, 0xa0, 0xa1, 0xaf, 0x29, 0xb8, 0x0b, 0x2a, 0xac,
		0x14, 0x71, 0xff, 0xf2, 0x9e, 0x92, 0x96, 0xc0, 0x7d, 0xd4, 0xb5, 0xa5, 0xf5, 0x52, 0xc5, 0xd8,
		0x28, 0xaf, 0x2f, 0x2d, 0x97, 0x34, 0x35, 0xd8, 0xb0, 0x7f, 0x3b, 0x01, 0x23, 0xe2, 0xbb, 0x97,
		0xfe, 0x0e, 0x38, 0xc2, 0x37, 0x4a, 0x1c, 0xe4, 0x56, 0x9e, 0xac, 0xb7, 0x49, 0x2e, 0x36, 0x4d,
		0xba, 0x2e, 0x7a, 0xd1, 0x70, 0x88, 0x71, 0xad, 0x21, 0xf7, 0x91, 0x7a, 0x1b, 0x67, 0x5a, 0xd3,
		0x74, 0xf5, 0x6b, 0x30, 0x6d, 0xd9, 0x15, 0xc7, 0x35, 0xad, 0x9a, 0xd9, 0xae, 0x55, 0xfc, 0x2d,
		0xaa, 0x8a, 0x59, 0xad, 0x22, 0xc7, 0xb1, 0xe9, 0x1a, 0xe8, 0x49, 0x39, 0x6a, 0xd9, 0x6b, 0x8c,
		0xd9, 0x5f, 0x1c, 0x72, 0x8c, 0x55, 0x8a, 0x5c, 0xb5, 0x57, 0xe4, 0xde, 0x0e, 0x03, 0x4d, 0xb3,
		0x55, 0x41, 0x96, 0xdb, 0xde, 0x25, 0x1d, 0x77, 0xca, 0x48, 0x35, 0xcd, 0x56, 0x09, 0x7f, 0x7f,
		0x7b, 0x5e, 0x7c, 0xfe, 0x51, 0x85, 0xa1, 0x60, 0xd7, 0x8d, 0x5f, 0x62, 0xaa, 0x64, 0x81, 0x52,
		0x48, 0x09, 0xbb, 0x73, 0xcf, 0x1e, 0x7d, 0xae, 0x80, 0x57, 0xae, 0x6c, 0x3f, 0xed, 0x85, 0x0d,
		0x8a, 0xc4, 0x5d, 0x03, 0x0e, 0x2d, 0x44, 0x7b, 0x8f, 0x94, 0xc1, 0xbe, 0xe9, 0x57, 0xa0, 0xff,
		0x31, 0x87, 0xc8, 0xee, 0x27, 0xb2, 0x4f, 0xec, 0x2d, 0xfb, 0xea, 0x1a, 0x11, 0x3e, 0x70, 0x75,
		0xad, 0x52, 0x5e, 0x31, 0x96, 0x73, 0xd7, 0x0c, 0x06, 0xd7, 0x6f, 0x83, 0x64, 0xc3, 0x7c, 0x7a,
		0x57, 0x5c, 0xe3, 0xc8, 0x50, 0x5c, 0xc3, 0xdf, 0x06, 0xc9, 0x27, 0x91, 0xf9, 0xb8, 0xb8, 0xb2,
		0x90, 0xa1, 0xb7, 0x30, 0xf4, 0x4f, 0x41, 0x1f, 0xb1, 0x97, 0x0e, 0xc0, 0x2c, 0xa6, 0x1d, 0xd0,
		0x53, 0x90, 0x2c, 0xac, 0x18, 0x38, 0xfc, 0x35, 0x18, 0xa2, 0xa3, 0x95, 0xd5, 0xa5, 0x52, 0xa1,
		0xa4, 0x25, 0x32, 0x67, 0xa1, 0x9f, 0x1a, 0x01, 0xa7, 0x86, 0x67, 0x06, 0xed, 0x00, 0xfb, 0xca,
		0x64, 0x28, 0x9c, 0xba, 0xb1, 0x9c, 0x2f, 0x19, 0x5a, 0x22, 0xe8, 0x5e, 0x07, 0x86, 0x82, 0x0d,
		0xf7, 0xdb, 0x13, 0x53, 0xdf, 0x54, 0x60, 0x30, 0xd0, 0x40, 0xe3, 0xce, 0xc7, 0x6c, 0x34, 0xec,
		0x27, 0x2b, 0x66, 0xa3, 0x6e, 0x3a, 0x2c, 0x28, 0x80, 0x0c, 0xe5, 0xf0, 0x48, 0x5c, 0xa7, 0xbd,
		0x2d, 0xca, 0x3f, 0xab, 0x80, 0x26, 0xf7, 0xae, 0x92, 0x82, 0xca, 0xcf, 0x54, 0xc1, 0x4f, 0x28,
		0x30, 0x22, 0x36, 0xac, 0x92, 0x7a, 0xc7, 0x7f, 0xa6, 0xea, 0x7d, 0x3f, 0x01, 0xc3, 0x42, 0x9b,
		0x1a, 0x57, 0xbb, 0xf7, 0xc1, 0x58, 0xbd, 0x86, 0x9a, 0x2d, 0xdb, 0x45, 0x56, 0x75, 0xb7, 0xd2,
		0x40, 0x4f, 0xa0, 0x46, 0x3a, 0x43, 0x0a, 0xc5, 0xa9, 0xbd, 0x1b, 0xe1, 0xb9, 0x25, 0x1f, 0x77,
		0x0d, 0xc3, 0xb2, 0xe3, 0x4b, 0xc5, 0xd2, 0xf2, 0xea, 0xca, 0x7a, 0xa9, 0x5c, 0xb8, 0x5e, 0xd9,
		0x28, 0xbf, 0xb3, 0xbc, 0xf2, 0x48, 0xd9, 0xd0, 0xea, 0x12, 0xdb, 0x5b, 0x98, 0xea, 0xab, 0xa0,
		0xc9, 0x4a, 0xe9, 0x47, 0x20, 0x4c, 0x2d, 0xed, 0x80, 0x3e, 0x0e, 0xa3, 0xe5, 0x95, 0xca, 0xda,
		0x52, 0xb1, 0x54, 0x29, 0x5d, 0xbe, 0x5c, 0x2a, 0xac, 0xaf, 0xd1, 0xad, 0x0d, 0x8f, 0x7b, 0x5d,
		0x4c, 0xea, 0x8f, 0xab, 0x30, 0x1e, 0xa2, 0x89, 0x9e, 0x63, 0x2f, 0x25, 0xf4, 0x3d, 0xe9, 0xfe,
		0x38, 0xda, 0xcf, 0xe1, 0xae, 0x60, 0xd5, 0x6c, 0xbb, 0xec, 0x1d, 0xe6, 0x1e, 0xc0, 0x56, 0xb2,
		0xdc, 0xfa, 0x56, 0x1d, 0xb5, 0xd9, 0x4e, 0x10, 0x7d, 0x53, 0x19, 0xf5, 0xc7, 0xe9, 0x66, 0xd0,
		0x7d, 0xa0, 0xb7, 0x6c, 0xa7, 0xee, 0xd6, 0x9f, 0x40, 0x95, 0xba, 0xc5, 0xb7, 0x8d, 0xf0, 0x9b,
		0x4b, 0xd2, 0xd0, 0x38, 0x65, 0xc9, 0x72, 0x3d, 0x6e, 0x0b, 0x6d, 0x9b, 0x12, 0x37, 0x2e, 0xe0,
		0xaa, 0xa1, 0x71, 0x8a, 0xc7, 0x7d, 0x1c, 0x86, 0x6a, 0x76, 0x07, 0xb7, 0x73, 0x94, 0x0f, 0xaf,
		0x17, 0x8a, 0x31, 0x48, 0xc7, 0x3c, 0x16, 0xd6, 0xa8, 0xfb, 0xfb, 0x55, 0x43, 0xc6, 0x20, 0x1d,
		0xa3, 0x2c, 0x77, 0xc3, 0xa8, 0xb9, 0xbd, 0xdd, 0xc6, 0xc2, 0xb9, 0x20, 0xfa, 0xea, 0x31, 0xe2,
		0x0d, 0x13, 0xc6, 0xc9, 0xab, 0x90, 0xe2, 0x76, 0xc0, 0x4b, 0x32, 0xb6, 0x44, 0xa5, 0x45, 0xdf,
		0xa7, 0x13, 0x33, 0x03, 0x46, 0xca, 0xe2, 0xc4, 0xe3, 0x30, 0x54, 0x77, 0x2a, 0xfe, 0xf6, 0x7b,
		0xe2, 0x58, 0x62, 0x26, 0x65, 0x0c, 0xd6, 0x1d, 0x6f, 0xeb, 0x32, 0xf3, 0x85, 0x04, 0x8c, 0x88,
		0xc7, 0x07, 0x7a, 0x11, 0x52, 0x0d, 0xbb, 0x6a, 0x92, 0xd0, 0xa2, 0x67, 0x57, 0x33, 0x11, 0x27,
		0x0e, 0x73, 0xd7, 0x18, 0xbf, 0xe1, 0x21, 0x27, 0xff, 0x4e, 0x81, 0x14, 0x1f, 0xd6, 0x27, 0x20,
		0xd9, 0x32, 0xdd, 0x1d, 0x22, 0xae, 0x2f, 0x9f, 0xd0, 0x14, 0x83, 0x7c, 0xc7, 0xe3, 0x4e, 0xcb,
		0xb4, 0x48, 0x08, 0xb0, 0x71, 0xfc, 0x1d, 0xfb, 0xb5, 0x81, 0xcc, 0x1a, 0x79, 0xaf, 0xb1, 0x9b,
		0x4d, 0x64, 0xb9, 0x0e, 0xf7, 0x2b, 0x1b, 0x2f, 0xb0, 0x61, 0xfd, 0x5e, 0x18, 0x73, 0xdb, 0x66,
		0xbd, 0x21, 0xf0, 0x26, 0x09, 0xaf, 0xc6, 0x09, 0x1e, 0x73, 0x16, 0x6e, 0xe3, 0x72, 0x6b, 0xc8,
		0x35, 0xab, 0x3b, 0xa8, 0xe6, 0x83, 0xfa, 0xc9, 0xfe, 0xc5, 0x11, 0xc6, 0x50, 0x64, 0x74, 0x8e,
		0xcd, 0x7c, 0x57, 0x81, 0x31, 0xfe, 0x26, 0x56, 0xf3, 0x8c, 0xb5, 0x0c, 0x60, 0x5a, 0x96, 0xed,
		0x06, 0xcd, 0xd5, 0x1d, 0xca, 0x5d, 0xb8, 0xb9, 0x9c, 0x07, 0x32, 0x02, 0x02, 0x26, 0x9b, 0x00,
		0x3e, 0xa5, 0xa7, 0xd9, 0xa6, 0x61, 0x90, 0x9d, 0x0d, 0x91, 0x03, 0x46, 0xfa, 0xee, 0x0e, 0x74,
		0x08, 0xbf, 0xb2, 0xe9, 0x87, 0xa0, 0x6f, 0x13, 0x6d, 0xd7, 0x2d, 0xb6, 0xe3, 0x4b, 0xbf, 0xf0,
		0x1d, 0x96, 0xa4, 0xb7, 0xc3, 0x92, 0x7f, 0x2f, 0x8c, 0x57, 0xed, 0xa6, 0xac, 0x6e, 0x5e, 0x93,
		0xf6, 0x0f, 0x9c, 0x87, 0x95, 0xf7, 0x80, 0xdf, 0x62, 0xfe, 0x44, 0x51, 0x3e, 0x93, 0x50, 0xaf,
		0xac, 0xe6, 0xbf, 0x94, 0x98, 0xbc, 0x42, 0xa1, 0xab, 0x7c, 0xa6, 0x06, 0xda, 0x6a, 0xa0, 0x2a,
		0xd6, 0x1e, 0x3e, 0x7f, 0x2f, 0xdc, 0xbf, 0x5d, 0x77, 0x77, 0x3a, 0x9b, 0x73, 0x55, 0xbb, 0x79,
		0x6a, 0xdb, 0xde, 0xb6, 0xfd, 0x33, 0x55, 0xfc, 0x8d, 0x7c, 0x21, 0x9f, 0xd8, 0xb9, 0xea, 0x80,
		0x37, 0x3a, 0x19, 0x79, 0x08, 0x9b, 0x2d, 0xc3, 0x38, 0x63, 0xae, 0x90, 0x83, 0x1d, 0xfa, 0x7a,
		0xa2, 0xef, 0xb9, 0x39, 0x96, 0xfe, 0xca, 0x0f, 0xc8, 0x72, 0x6d, 0x8c, 0x31, 0x28, 0xa6, 0xd1,
		0x37, 0x98, 0xac, 0x01, 0x87, 0x05, 0x79, 0x34, 0x35, 0x51, 0x3b, 0x42, 0xe2, 0xb7, 0x99, 0xc4,
		0xf1, 0x80, 0xc4, 0x35, 0x06, 0xcd, 0x16, 0x60, 0x78, 0x3f, 0xb2, 0xfe, 0x86, 0xc9, 0x1a, 0x42,
		0x41, 0x21, 0x57, 0x60, 0x94, 0x08, 0xa9, 0x76, 0x1c, 0xd7, 0x6e, 0x92, 0xba, 0xb7, 0xb7, 0x98,
		0xef, 0xfc, 0x80, 0xe6, 0xca, 0x08, 0x86, 0x15, 0x3c, 0x54, 0x36, 0x0b, 0xe4, 0x2c, 0xab, 0x86,
		0xaa, 0x8d, 0x08, 0x09, 0x37, 0x98, 0x22, 0x1e, 0x7f, 0xf6, 0xdd, 0x70, 0x08, 0x7f, 0x26, 0x65,
		0x29, 0xa8, 0x49, 0xf4, 0x4e, 0x5a, 0xfa, 0xbb, 0x1f, 0xa0, 0xe9, 0x38, 0xee, 0x09, 0x08, 0xe8,
		0x14, 0xf0, 0xe2, 0x36, 0x72, 0x5d, 0xd4, 0x76, 0x2a, 0x66, 0x23, 0x4c, 0xbd, 0xc0, 0x56, 0x44,
		0xfa, 0x63, 0xaf, 0x8a, 0x5e, 0xbc, 0x42, 0x91, 0xb9, 0x46, 0x23, 0xbb, 0x01, 0x47, 0x42, 0xa2,
		0x22, 0x86, 0xcc, 0x8f, 0x33, 0x99, 0x87, 0xba, 0x22, 0x03, 0x8b, 0x5d, 0x05, 0x3e, 0xee, 0xf9,
		0x32, 0x86, 0xcc, 0xdf, 0x67, 0x32, 0x75, 0x86, 0xe5, 0x2e, 0xc5, 0x12, 0xaf, 0xc2, 0xd8, 0x13,
		0xa8, 0xbd, 0x69, 0x3b, 0x6c, 0xfb, 0x27, 0x86, 0xb8, 0x4f, 0x30, 0x71, 0xa3, 0x0c, 0x48, 0xf6,
		0x83, 0xb0, 0xac, 0x8b, 0x90, 0xda, 0x32, 0xab, 0x28, 0x86, 0x88, 0x4f, 0x32, 0x11, 0x07, 0x31,
		0x3f, 0x86, 0xe6, 0x60, 0x68, 0xdb, 0x66, 0x2b, 0x53, 0x34, 0xfc, 0x59, 0x06, 0x1f, 0xe4, 0x18,
		0x26, 0xa2, 0x65, 0xb7, 0x3a, 0x0d, 0xbc, 0x6c, 0x45, 0x8b, 0xf8, 0x14, 0x17, 0xc1, 0x31, 0x4c,
		0xc4, 0x3e, 0xcc, 0xfa, 0x1c, 0x17, 0xe1, 0x04, 0xec, 0xf9, 0x10, 0x0c, 0xda, 0x56, 0x63, 0xd7,
		0xb6, 0xe2, 0x28, 0xf1, 0x69, 0x26, 0x01, 0x18, 0x04, 0x0b, 0xb8, 0x04, 0x03, 0x71, 0x1d, 0xf1,
		0xb9, 0x57, 0x79, 0x7a, 0x70, 0x0f, 0x5c, 0x81, 0x51, 0x5e, 0xa0, 0xea, 0xb6, 0x15, 0x43, 0xc4,
		0xe7, 0x99, 0x88, 0x91, 0x00, 0x8c, 0x4d, 0xc3, 0x45, 0x8e, 0xbb, 0x8d, 0xe2, 0x08, 0xf9, 0x02,
		0x9f, 0x06, 0x83, 0x30, 0x53, 0x6e, 0x22, 0xab, 0xba, 0x13, 0x4f, 0xc2, 0xf3, 0xdc, 0x94, 0x1c,
		0x83, 0x45, 0x14, 0x60, 0xb8, 0x69, 0xb6, 0x9d, 0x1d, 0xb3, 0x11, 0xcb, 0x1d, 0x5f, 0x64, 0x32,
		0x86, 0x3c, 0x10, 0xb3, 0x48, 0xc7, 0xda, 0x8f, 0x98, 0x2f, 0x71, 0x8b, 0x04, 0x60, 0x2c, 0xf5,
		0x1c, 0x97, 0xec, 0x95, 0xed, 0x47, 0xda, 0x1f, 0xf0, 0xd4, 0xa3, 0xd8, 0xe5, 0xa0, 0xc4, 0x4b,
		0x30, 0xe0, 0xd4, 0x9f, 0x8e, 0x25, 0xe6, 0x0f, 0xb9, 0xa7, 0x09, 0x00, 0x83, 0xaf, 0xc3, 0x6d,
		0xa1, 0xcb, 0x44, 0x0c, 0x61, 0x7f, 0xc4, 0x84, 0x4d, 0x84, 0x2c, 0x15, 0xac, 0x24, 0xec, 0x57,
		0xe4, 0x1f, 0xf3, 0x92, 0x80, 0x24, 0x59, 0xab, 0xf8, 0x5d, 0xc1, 0x31, 0xb7, 0xf6, 0x67, 0xb5,
		0x3f, 0xe1, 0x56, 0xa3, 0x58, 0xc1, 0x6a, 0xeb, 0x30, 0xc1, 0x24, 0xee, 0xcf, 0xaf, 0x5f, 0xe6,
		0x85, 0x95, 0xa2, 0x37, 0x44, 0xef, 0xbe, 0x17, 0x26, 0x3d, 0x73, 0xf2, 0xa6, 0xd4, 0xa9, 0x34,
		0xcd, 0x56, 0x0c, 0xc9, 0x5f, 0x61, 0x92, 0x79, 0xc5, 0xf7, 0xba, 0x5a, 0x67, 0xd9, 0x6c, 0x61,
		0xe1, 0x8f, 0x42, 0x9a, 0x0b, 0xef, 0x58, 0x6d, 0x54, 0xb5, 0xb7, 0xad, 0xfa, 0xd3, 0xa8, 0x16,
		0x43, 0xf4, 0x9f, 0x4a, 0xae, 0xda, 0x08, 0xc0, 0xb1, 0xe4, 0x25, 0xd0, 0xbc, 0x5e, 0xa5, 0x52,
		0x6f, 0xb6, 0xec, 0xb6, 0x1b, 0x21, 0xf1, 0xcf, 0xb8, 0xa7, 0x3c, 0xdc, 0x12, 0x81, 0x65, 0x4b,
		0x30, 0x42, 0xbe, 0xc6, 0x0d, 0xc9, 0xaf, 0x32, 0x41, 0xc3, 0x3e, 0x8a, 0x15, 0x8e, 0xaa, 0xdd,
		0x6c, 0x99, 0xed, 0x38, 0xf5, 0xef, 0xcf, 0x79, 0xe1, 0x60, 0x10, 0x56, 0x38, 0xdc, 0xdd, 0x16,
		0xc2, 0xab, 0x7d, 0x0c, 0x09, 0x5f, 0xe3, 0x85, 0x83, 0x63, 0x98, 0x08, 0xde, 0x30, 0xc4, 0x10,
		0xf1, 0x17, 0x5c, 0x04, 0xc7, 0x60, 0x11, 0xef, 0xf2, 0x17, 0xda, 0x36, 0xda, 0xae, 0x3b, 0x6e,
		0x9b, 0xb6, 0xc2, 0x7b, 0x8b, 0xfa, 0xfa, 0xab, 0x62, 0x13, 0x66, 0x04, 0xa0, 0xb8, 0x12, 0xb1,
		0x2d, 0x54, 0xf2, 0xa6, 0x14, 0xad, 0xd8, 0x37, 0x78, 0x25, 0x0a, 0xc0, 0xb0, 0x6e, 0x81, 0x0e,
		0x11, 0x9b, 0xbd, 0x8a, 0xdf, 0x0f, 0x62, 0x88, 0xfb, 0xa6, 0xa4, 0xdc, 0x1a, 0xc7, 0x62, 0x99,
		0x81, 0xfe, 0xa7, 0x63, 0x3d, 0x8e, 0x76, 0x63, 0x45, 0xe7, 0x5f, 0x4a, 0xfd, 0xcf, 0x06, 0x45,
		0xd2, 0x1a, 0x32, 0x2a, 0xf5, 0x53, 0x7a, 0xd4, 0x2d, 0xa0, 0xf4, 0xff, 0x7f, 0x8d, 0xcd, 0x57,
		0x6c, 0xa7, 0xb2, 0xd7, 0x70, 0x90, 0x8b, 0x4d, 0x4f, 0xb4, 0xb0, 0x0f, 0xbc, 0xe6, 0xc5, 0xb9,
		0xd0, 0xf3, 0x64, 0x2f, 0xc3, 0xb0, 0xd0, 0xf0, 0x44, 0x8b, 0xfa, 0x05, 0x26, 0x6a, 0x28, 0xd8,
		0xef, 0x64, 0xcf, 0x42, 0x12, 0x37, 0x2f, 0xd1, 0xf0, 0x5f, 0x64, 0x70, 0xc2, 0x9e, 0x7d, 0x00,
		0x52, 0xbc, 0x69, 0x89, 0x86, 0x7e, 0x90, 0x41, 0x3d, 0x08, 0x86, 0xf3, 0x86, 0x25, 0x1a, 0xfe,
		0x4b, 0x1c, 0xce, 0x21, 0x18, 0x1e, 0xdf, 0x84, 0x2f, 0xfc, 0x4a, 0x92, 0x2d, 0x3a, 0xdc, 0x76,
		0x97, 0xe0, 0x20, 0xeb, 0x54, 0xa2, 0xd1, 0x1f, 0x66, 0x0f, 0xe7, 0x88, 0xec, 0x79, 0xe8, 0x8b,
		0x69, 0xf0, 0x5f, 0x63, 0x50, 0xca, 0x9f, 0x2d, 0xc0, 0x60, 0xa0, 0x3b, 0x89, 0x86, 0xff, 0x3a,
		0x83, 0x07, 0x51, 0x58, 0x75, 0xd6, 0x9d, 0x44, 0x0b, 0xf8, 0x0d, 0xae, 0x3a, 0x43, 0x60, 0xb3,
		0xf1, 0xc6, 0x24, 0x1a, 0xfd, 0x9b, 0xdc, 0xea, 0x1c, 0x92, 0x7d, 0x08, 0x06, 0xbc, 0xc5, 0x26,
		0x1a, 0xff, 0x5b, 0x0c, 0xef, 0x63, 0xb0, 0x05, 0x02, 0x8b, 0x5d, 0xb4, 0x88, 0xdf, 0xe6, 0x16,
		0x08, 0xa0, 0x70, 0x1a, 0xc9, 0x0d, 0x4c, 0xb4, 0xa4, 0x8f, 0xf0, 0x34, 0x92, 0xfa, 0x17, 0xec,
		0x4d, 0x52, 0xf3, 0xa3, 0x45, 0xfc, 0x0e, 0xf7, 0x26, 0xe1, 0xc7, 0x6a, 0xc8, 0x1d, 0x41, 0xb4,
		0x8c, 0xdf, 0xe3, 0x6a, 0x48, 0x0d, 0x41, 0x76, 0x15, 0xf4, 0xee, 0x6e, 0x20, 0x5a, 0xde, 0x47,
		0x99, 0xbc, 0xb1, 0xae, 0x66, 0x20, 0xfb, 0x08, 0x4c, 0x84, 0x77, 0x02, 0xd1, 0x52, 0x3f, 0xf6,
		0x9a, 0xf4, 0xee, 0x16, 0x6c, 0x04, 0xb2, 0xeb, 0xfe, 0x92, 0x12, 0xec, 0x02, 0xa2, 0xc5, 0x7e,
		0xfc, 0x35, 0xb1, 0x70, 0x07, 0x9b, 0x80, 0x6c, 0x0e, 0xc0, 0x5f, 0x80, 0xa3, 0x65, 0x7d, 0x82,
		0xc9, 0x0a, 0x80, 0x70, 0x6a, 0xb0, 0xf5, 0x37, 0x1a, 0xff, 0x49, 0x9e, 0x1a, 0x0c, 0x81, 0x53,
		0x83, 0x2f, 0xbd, 0xd1, 0xe8, 0x67, 0x79, 0x6a, 0x70, 0x08, 0x8e, 0xec, 0xc0, 0xea, 0x16, 0x2d,
		0xe1, 0xd3, 0x3c, 0xb2, 0x03, 0xa8, 0x6c, 0x19, 0xc6, 0xba, 0x16, 0xc4, 0x68, 0x51, 0x9f, 0x61,
		0xa2, 0x34, 0x79, 0x3d, 0x0c, 0x2e, 0x5e, 0x6c, 0x31, 0x8c, 0x96, 0xf6, 0x59, 0x69, 0xf1, 0x62,
		0x6b, 0x61, 0xf6, 0x12, 0xa4, 0xac, 0x4e, 0xa3, 0x81, 0x93, 0x47, 0xdf, 0xfb, 0xe6, 0x5e, 0xfa,
		0x9f, 0x5f, 0x67, 0xd6, 0xe1, 0x80, 0xec, 0x59, 0xe8, 0x43, 0xcd, 0x4d, 0x54, 0x8b, 0x42, 0xfe,
		0xcb, 0xeb, 0xbc, 0x60, 0x62, 0xee, 0xec, 0x43, 0x00, 0x74, 0x6b, 0x84, 0x1c, 0xfb, 0x45, 0x60,
		0xff, 0xf5, 0x75, 0x76, 0xa7, 0xc6, 0x87, 0xf8, 0x02, 0xe8, 0x0d, 0x9d, 0xbd, 0x05, 0xbc, 0x2a,
		0x0a, 0x20, 0x1e, 0xb9, 0x08, 0x07, 0x1f, 0x73, 0x6c, 0xcb, 0x35, 0xb7, 0xa3, 0xd0, 0xff, 0xc6,
		0xd0, 0x9c, 0x1f, 0x1b, 0xac, 0x69, 0xb7, 0x91, 0x6b, 0x6e, 0x3b, 0x51, 0xd8, 0x7f, 0x67, 0x58,
		0x0f, 0x80, 0xc1, 0x55, 0xd3, 0x71, 0xe3, 0xcc, 0xfb, 0x3f, 0x38, 0x98, 0x03, 0xb0, 0xd2, 0xf8,
		0xf3, 0xe3, 0x68, 0x37, 0x0a, 0xfb, 0x23, 0xae, 0x34, 0xe3, 0xcf, 0x3e, 0x00, 0x03, 0xf8, 0x23,
		0xbd, 0x28, 0x17, 0x01, 0xfe, 0x4f, 0x06, 0xf6, 0x11, 0xf8, 0xc9, 0x8e, 0x5b, 0x73, 0xeb, 0xd1,
		0xc6, 0xfe, 0x31, 0xf3, 0x34, 0xe7, 0xcf, 0xe6, 0x60, 0xd0, 0x71, 0x6b, 0xb5, 0x0e, 0xeb, 0x4f,
		0x23, 0xe0, 0xff, 0xf5, 0xba, 0xb7, 0x65, 0xe1, 0x61, 0xb0, 0xb7, 0x9f, 0x7c, 0xdc, 0x6d, 0xd9,
		0xe4, 0x98, 0x23, 0x4a, 0xc2, 0x6b, 0x4c, 0x42, 0x00, 0x92, 0x2f, 0x85, 0x6f, 0xdf, 0xc2, 0x15,
		0xfb, 0x8a, 0x4d, 0x37, 0x6e, 0xdf, 0x93, 0x89, 0xde, 0x81, 0x85, 0xef, 0x34, 0xe0, 0xb6, 0xaa,
		0xdd, 0xdc, 0xb4, 0x9d, 0x53, 0x9b, 0xb6, 0xbb, 0x73, 0xca, 0xdd, 0x41, 0x78, 0x01, 0x66, 0x9b,
		0xb2, 0x49, 0xfc, 0x79, 0x72, 0x7f, 0x3b, 0xb9, 0xe4, 0x9c, 0xbe, 0x5c, 0xc7, 0xca, 0x97, 0xc9,
		0x51, 0x89, 0x7e, 0x14, 0xfa, 0xc9, 0x74, 0x4e, 0x93, 0xe3, 0x48, 0x25, 0x9f, 0xbc, 0xf1, 0xd2,
		0xf4, 0x01, 0x83, 0x8d, 0x79, 0xd4, 0x05, 0xb2, 0x97, 0x9d, 0x10, 0xa8, 0x0b, 0x1e, 0xf5, 0x0c,
		0xdd, 0xce, 0x16, 0xa8, 0x67, 0x3c, 0xea, 0x22, 0xd9, 0xd8, 0x56, 0x05, 0xea, 0xa2, 0x47, 0x3d,
		0x4b, 0x0e, 0x6f, 0x86, 0x05, 0xea, 0x59, 0x8f, 0x7a, 0x8e, 0x1c, 0xd9, 0x24, 0x05, 0xea, 0x39,
		0x8f, 0x7a, 0x9e, 0x9c, 0xd6, 0x8c, 0x09, 0xd4, 0xf3, 0x1e, 0xf5, 0x02, 0x39, 0xa5, 0xd1, 0x05,
		0xea, 0x05, 0x8f, 0x7a, 0x91, 0xdc, 0xad, 0x3a, 0x28, 0x50, 0x2f, 0xea, 0x53, 0x70, 0x90, 0xce,
		0x7c, 0x9e, 0x1c, 0xe9, 0x8f, 0x32, 0x32, 0x1f, 0xf4, 0xe9, 0xa7, 0xc9, 0x3d, 0xaa, 0x7e, 0x91,
		0x7e, 0xda, 0xa7, 0x2f, 0x90, 0x3f, 0xe9, 0xd0, 0x44, 0xfa, 0x82, 0x4f, 0x3f, 0x93, 0x1e, 0x26,
		0x77, 0xc9, 0x04, 0xfa, 0x19, 0x9f, 0xbe, 0x98, 0x1e, 0xc1, 0x39, 0x21, 0xd2, 0x17, 0x7d, 0xfa,
		0xd9, 0xf4, 0xe8, 0x31, 0x65, 0x66, 0x48, 0xa4, 0x9f, 0xcd, 0xbc, 0x9f, 0xb8, 0xd7, 0xf2, 0xdd,
		0x3b, 0x21, 0xba, 0xd7, 0x73, 0xec, 0x84, 0xe8, 0x58, 0xcf, 0xa5, 0x13, 0xa2, 0x4b, 0x3d, 0x67,
		0x4e, 0x88, 0xce, 0xf4, 0xdc, 0x38, 0x21, 0xba, 0xd1, 0x73, 0xe0, 0x84, 0xe8, 0x40, 0xcf, 0x75,
		0x13, 0xa2, 0xeb, 0x3c, 0xa7, 0x4d, 0x88, 0x4e, 0xf3, 0xdc, 0x35, 0x21, 0xba, 0xcb, 0x73, 0x54,
		0x5a, 0x72, 0x94, 0xef, 0xa2, 0xb4, 0xe4, 0x22, 0xdf, 0x39, 0x69, 0xc9, 0x39, 0xbe, 0x5b, 0xd2,
		0x92, 0x5b, 0x7c, 0x87, 0xa4, 0x25, 0x87, 0xf8, 0xae, 0x48, 0x4b, 0xae, 0xf0, 0x9d, 0xc0, 0x72,
		0xcc, 0x40, 0xad, 0x90, 0x1c, 0x53, 0xf7, 0xcc, 0x31, 0x75, 0xcf, 0x1c, 0x53, 0xf7, 0xcc, 0x31,
		0x75, 0xcf, 0x1c, 0x53, 0xf7, 0xcc, 0x31, 0x75, 0xcf, 0x1c, 0x53, 0xf7, 0xcc, 0x31, 0x75, 0xcf,
		0x1c, 0x53, 0xf7, 0xce, 0x31, 0x35, 0x22, 0xc7, 0xd4, 0x88, 0x1c, 0x53, 0x23, 0x72, 0x4c, 0x8d,
		0xc8, 0x31, 0x35, 0x22, 0xc7, 0xd4, 0x9e, 0x39, 0xe6, 0xbb, 0x77, 0x42, 0x74, 0x6f, 0x68, 0x8e,
		0xa9, 0x3d, 0x72, 0x4c, 0xed, 0x91, 0x63, 0x6a, 0x8f, 0x1c, 0x53, 0x7b, 0xe4, 0x98, 0xda, 0x23,
		0xc7, 0xd4, 0x1e, 0x39, 0xa6, 0xf6, 0xc8, 0x31, 0xb5, 0x57, 0x8e, 0xa9, 0x3d, 0x73, 0x4c, 0xed,
		0x99, 0x63, 0x6a, 0xcf, 0x1c, 0x53, 0x7b, 0xe6, 0x98, 0xda, 0x33, 0xc7, 0xd4, 0x60, 0x8e, 0xfd,
		0x95, 0x0a, 0x3a, 0xcd, 0xb1, 0x55, 0x72, 0x29, 0x8c, 0xb9, 0x62, 0x4a, 0xca, 0xb4, 0x7e, 0xec,
		0x3a, 0xcd, 0x77, 0xc9, 0x94, 0x94, 0x6b, 0x22, 0x7d, 0xc1, 0xa3, 0xf3, 0x6c, 0x13, 0xe9, 0x67,
		0x3c, 0x3a, 0xcf, 0x37, 0x91, 0xbe, 0xe8, 0xd1, 0x79, 0xc6, 0x89, 0xf4, 0xb3, 0x1e, 0x9d, 0xe7,
		0x9c, 0x48, 0x3f, 0xe7, 0xd1, 0x79, 0xd6, 0x89, 0xf4, 0xf3, 0x1e, 0x9d, 0xe7, 0x9d, 0x48, 0xbf,
		0xe0, 0xd1, 0x79, 0xe6, 0x89, 0xf4, 0x8b, 0xfa, 0x31, 0x39, 0xf7, 0x38, 0x83, 0xe7, 0xda, 0x63,
		0x72, 0xf6, 0x49, 0x1c, 0xa7, 0x7d, 0x0e, 0x9e, 0x7f, 0x12, 0xc7, 0x82, 0xcf, 0xc1, 0x33, 0x50,
		0xe2, 0x38, 0x93, 0xf9, 0x10, 0x71, 0x9f, 0x25, 0xbb, 0x6f, 0x52, 0x72, 0x5f, 0x22, 0xe0, 0xba,
		0x49, 0xc9, 0x75, 0x89, 0x80, 0xdb, 0x26, 0x25, 0xb7, 0x25, 0x02, 0x2e, 0x9b, 0x94, 0x5c, 0x96,
		0x08, 0xb8, 0x6b, 0x52, 0x72, 0x57, 0x22, 0xe0, 0xaa, 0x49, 0xc9, 0x55, 0x89, 0x80, 0x9b, 0x26,
		0x25, 0x37, 0x25, 0x02, 0x2e, 0x9a, 0x94, 0x5c, 0x94, 0x08, 0xb8, 0x67, 0x52, 0x72, 0x4f, 0x22,
		0xe0, 0x9a, 0xa3, 0xb2, 0x6b, 0x12, 0x41, 0xb7, 0x1c, 0x95, 0xdd, 0x92, 0x08, 0xba, 0xe4, 0xa8,
		0xec, 0x92, 0x44, 0xd0, 0x1d, 0x47, 0x65, 0x77, 0x24, 0x82, 0xae, 0xf8, 0x69, 0x82, 0x77, 0x84,
		0x6b, 0x6e, 0xbb, 0x53, 0x75, 0x6f, 0xa9, 0x23, 0x9c, 0x17, 0xda, 0x87, 0xc1, 0x05, 0x7d, 0x8e,
		0x34, 0xac, 0xc1, 0x8e, 0x53, 0x5a, 0xc1, 0xe6, 0x85, 0xc6, 0x22, 0x80, 0xb0, 0xc2, 0x11, 0x8b,
		0xb7, 0xd4, 0x1b, 0xce, 0x0b, 0x6d, 0x46, 0xb4, 0x7e, 0x17, 0xde, 0xf2, 0x8e, 0xed, 0x85, 0x04,
		0xef, 0xd8, 0x98, 0xf9, 0xf7, 0xdb, 0xb1, 0xcd, 0x46, 0x9b, 0xdc, 0x33, 0xf6, 0x6c, 0xb4, 0xb1,
		0xbb, 0x56, 0x9d, 0xb8, 0x1d, 0xdc, 0x6c, 0xb4, 0x69, 0x3d, 0xa3, 0xbe, 0xb9, 0xfd, 0x16, 0x8b,
		0x60, 0x03, 0xb5, 0x42, 0x22, 0x78, 0xbf, 0xfd, 0xd6, 0xbc, 0x50, 0x4a, 0xf6, 0x1b, 0xc1, 0xea,
		0xbe, 0x23, 0x78, 0xbf, 0x9d, 0xd7, 0xbc, 0x50, 0x5e, 0xf6, 0x1d, 0xc1, 0x6f, 0x41, 0x3f, 0xc4,
		0x22, 0xd8, 0x37, 0xff, 0x7e, 0xfb, 0xa1, 0xd9, 0x68, 0x93, 0x87, 0x46, 0xb0, 0xba, 0x8f, 0x08,
		0x8e, 0xd3, 0x1f, 0xcd, 0x46, 0x9b, 0x36, 0x3c, 0x82, 0x6f, 0xb9, 0x9b, 0xf9, 0x94, 0x02, 0x63,
		0xe5, 0x7a, 0xad, 0xd4, 0xdc, 0x44, 0xb5, 0x1a, 0xaa, 0x31, 0x3b, 0xce, 0x0b, 0x95, 0xa0, 0x87,
		0xab, 0x5f, 0x7c, 0x69, 0xda, 0xb7, 0xf0, 0x59, 0x48, 0x51, 0x9b, 0xce, 0xcf, 0xa7, 0x6f, 0x28,
		0x11, 0x15, 0xce, 0x63, 0xd5, 0x8f, 0x73, 0xd8, 0xe9, 0xf9, 0xf4, 0xdf, 0x2b, 0x81, 0x2a, 0xe7,
		0x0d, 0x67, 0x3e, 0x42, 0x34, 0xb4, 0x6e, 0x59, 0xc3, 0x53, 0xb1, 0x34, 0x0c, 0xe8, 0x76, 0x7b,
		0x97, 0x6e, 0x01, 0xad, 0x3a, 0x30, 0x5a, 0xae, 0xd7, 0xca, 0xe4, 0xc7, 0x04, 0xe2, 0xa8, 0x44,
		0x79, 0xa4, 0x7a, 0x30, 0x2f, 0x84, 0x65, 0x10, 0xe1, 0x85, 0xb4, 0x58, 0x23, 0x32, 0x75, 0xfc,
		0x58, 0x4b, 0x78, 0xec, 0x6c, 0xaf, 0xc7, 0xfa, 0x95, 0xdd, 0x7b, 0xe0, 0x6c, 0xaf, 0x07, 0xfa,
		0x39, 0xe4, 0x3d, 0xea, 0x29, 0xbe, 0x38, 0xd3, 0xab, 0x59, 0xfa, 0x51, 0x48, 0x2c, 0xd1, 0x9b,
		0xe3, 0x43, 0xf9, 0x21, 0xac, 0xd4, 0xf7, 0x5e, 0x9a, 0x4e, 0x6e, 0x74, 0xea, 0x35, 0x23, 0xb1,
		0x54, 0xd3, 0xaf, 0x42, 0xdf, 0xbb, 0xd9, 0x9f, 0xb4, 0x62, 0x86, 0x45, 0xc6, 0x70, 0x5f, 0xcf,
		0x3d, 0x22, 0xfc, 0xe0, 0x53, 0x74, 0x9b, 0x72, 0x6e, 0xa3, 0x6e, 0xb9, 0xa7, 0x17, 0x2e, 0x18,
		0x54, 0x44, 0xe6, 0x7f, 0x03, 0xd0, 0x67, 0x16, 0x4d, 0x67, 0x47, 0x2f, 0x73, 0xc9, 0xf4, 0xd1,
		0x17, 0xbe, 0xf7, 0xd2, 0xf4, 0x62, 0x1c, 0xa9, 0xf7, 0xd7, 0x4c, 0x67, 0xe7, 0x7e, 0x77, 0xb7,
		0x85, 0xe6, 0xf2, 0xbb, 0x2e, 0x72, 0xb8, 0xf4, 0x16, 0x5f, 0xf5, 0xd8, 0xbc, 0xd2, 0x81, 0x79,
		0xa5, 0x84, 0x39, 0x5d, 0x16, 0xe7, 0x34, 0xff, 0x46, 0xe7, 0xf3, 0x14, 0x5f, 0x24, 0x24, 0x4b,
		0xaa, 0x51, 0x96, 0x54, 0x6f, 0xd5, 0x92, 0x2d, 0x5e, 0x1f, 0xa5, 0xb9, 0xaa, 0x7b, 0xcd, 0x55,
		0xbd, 0x95, 0xb9, 0xfe, 0x37, 0xcd, 0x56, 0x2f, 0x9f, 0x36, 0x2c, 0x7a, 0x6b, 0xf5, 0xe7, 0x6b,
		0x2f, 0xe8, 0x4d, 0xed, 0x02, 0xb2, 0xc9, 0x1b, 0xcf, 0x4d, 0x2b, 0x99, 0x4f, 0x25, 0xf8, 0xcc,
		0x69, 0x22, 0xbd, 0xb1, 0x99, 0xff, 0xbc, 0xf4, 0x54, 0x6f, 0x85, 0x85, 0x9e, 0x55, 0x60, 0xa2,
		0xab, 0x92, 0x53, 0x33, 0xbd, 0xb9, 0xe5, 0xdc, 0xda, 0x6f, 0x39, 0x67, 0x0a, 0x7e, 0x55, 0x81,
		0x43, 0x52, 0x79, 0xa5, 0xea, 0x9d, 0x92, 0xd4, 0x3b, 0xd2, 0xfd, 0x24, 0xc2, 0x18, 0xd0, 0x2e,
		0xe8, 0x5e, 0x09, 0x10, 0x90, 0xec, 0xf9, 0x7d, 0x51, 0xf2, 0xfb, 0x51, 0x0f, 0x10, 0x62, 0x2e,
		0x1e, 0x01, 0x4c, 0x6d, 0x1b, 0x92, 0xeb, 0x6d, 0x84, 0xf4, 0x29, 0x48, 0xac, 0xb4, 0x99, 0x86,
		0x23, 0x14, 0xbf, 0xd2, 0xce, 0xb7, 0x4d, 0xab, 0xba, 0x63, 0x24, 0x56, 0xda, 0xfa, 0x71, 0x50,
		0x73, 0xec, 0xcf, 0xe9, 0x07, 0x17, 0x46, 0x29, 0x43, 0xce, 0xaa, 0x31, 0x0e, 0x4c, 0xd3, 0xa7,
		0x20, 0x79, 0x0d, 0x99, 0x5b, 0x4c, 0x09, 0xa0, 0x3c, 0x78, 0xc4, 0x20, 0xe3, 0xec, 0x81, 0x8f,
		0x42, 0x8a, 0x0b, 0xd6, 0x4f, 0x60, 0xc4, 0x96, 0xcb, 0x1e, 0xcb, 0x10, 0x58, 0x1d, 0xb6, 0x72,
		0x11, 0xaa, 0x7e, 0x12, 0xfa, 0x8c, 0xfa, 0xf6, 0x8e, 0xcb, 0x1e, 0xde, 0xcd, 0x46, 0xc9, 0x99,
		0xeb, 0x30, 0xe0, 0x69, 0xf4, 0x26, 0x8b, 0x2e, 0xd2, 0xa9, 0xe9, 0x93, 0xc1, 0xf5, 0x84, 0xef,
		0x5b, 0xd2, 0x21, 0xfd, 0x18, 0xa4, 0xd6, 0xdc, 0xb6, 0x5f, 0xf4, 0x79, 0x47, 0xea, 0x8d, 0x66,
		0xde, 0xaf, 0x40, 0xaa, 0x88, 0x50, 0x8b, 0x18, 0xfc, 0x2e, 0x48, 0x16, 0xed, 0x27, 0x2d, 0xa6,
		0xe0, 0x18, 0xb3, 0x28, 0x26, 0x33, 0x9b, 0x12, 0xb2, 0x7e, 0x57, 0xd0, 0xee, 0xe3, 0x9e, 0xdd,
		0x03, 0x7c, 0xc4, 0xf6, 0x19, 0xc1, 0xf6, 0xcc, 0x81, 0x98, 0xa9, 0xcb, 0xfe, 0xe7, 0x61, 0x30,
		0xf0, 0x14, 0x7d, 0x86, 0xa9, 0x91, 0x90, 0x81, 0x41, 0x5b, 0x61, 0x8e, 0x0c, 0x82, 0x61, 0xe1,
		0xc1, 0x18, 0x1a, 0x30, 0x71, 0x0f, 0x28, 0x31, 0xf3, 0xac, 0x68, 0xe6, 0x70, 0x56, 0x66, 0xea,
		0x79, 0x6a, 0x23, 0x62, 0xee, 0x13, 0x34, 0x38, 0x7b, 0x3b, 0x11, 0x7f, 0xce, 0xf4, 0x81, 0x5a,
		0xae, 0x37, 0x32, 0x0f, 0x00, 0xd0, 0x94, 0x2f, 0x59, 0x9d, 0xa6, 0x94, 0x75, 0x23, 0xdc, 0xc0,
		0xeb, 0x3b, 0x68, 0x1d, 0x39, 0x84, 0x45, 0xec, 0xa7, 0x70, 0x81, 0x01, 0x9a, 0x62, 0x04, 0x7f,
		0x4f, 0x24, 0x3e, 0xb4, 0x13, 0xc3, 0xac, 0x69, 0xca, 0x7a, 0x1d, 0xb9, 0x39, 0xcb, 0x76, 0x77,
		0x50, 0x5b, 0x42, 0x2c, 0xe8, 0x67, 0x84, 0x84, 0x1d, 0x59, 0xb8, 0xdd, 0x43, 0xf4, 0x04, 0x9d,
		0xc9, 0x7c, 0x99, 0x28, 0x88, 0x5b, 0x81, 0xae, 0x09, 0xaa, 0x31, 0x26, 0xa8, 0x9f, 0x13, 0xfa,
		0xb7, 0x3d, 0xd4, 0x94, 0x5e, 0x2d, 0x2f, 0x0a, 0xef, 0x39, 0x7b, 0x2b, 0x2b, 0xbe, 0x63, 0x72,
		0x9b, 0x72, 0x95, 0xef, 0x89, 0x54, 0xb9, 0x47, 0x77, 0xbb, 0x5f, 0x9b, 0xaa, 0x71, 0x6d, 0xfa,
		0x4d, 0xaf, 0xe3, 0xa0, 0xbf, 0x59, 0x42, 0x7e, 0xed, 0x47, 0xbf, 0x2f, 0xd2, 0xf7, 0x59, 0xa5,
		0xe0, 0xa9, 0xba, 0x18, 0xd7, 0xfd, 0xd9, 0x44, 0x3e, 0xef, 0xa9, 0x7b, 0x7e, 0x1f, 0x21, 0x90,
		0x4d, 0x14, 0x0a, 0x5e, 0xd9, 0x4e, 0x7d, 0xe8, 0xb9, 0x69, 0xe5, 0xf9, 0xe7, 0xa6, 0x0f, 0x64,
		0xbe, 0xa8, 0xc0, 0x18, 0xe3, 0x0c, 0x04, 0xee, 0xfd, 0x92, 0xf2, 0x87, 0x79, 0xcd, 0x08, 0xb3,
		0xc0, 0xdb, 0x16, 0xbc, 0xdf, 0x56, 0x20, 0xdd, 0xa5, 0x2b, 0xb7, 0xf7, 0x7c, 0x2c, 0x95, 0xb3,
		0x4a, 0xe9, 0x67, 0x6f, 0xf3, 0xeb, 0xd0, 0xb7, 0x5e, 0x6f, 0xa2, 0x36, 0x5e, 0x09, 0xf0, 0x07,
		0xaa, 0x32, 0x3f, 0xcc, 0xa1, 0x43, 0x9c, 0x46, 0x95, 0x13, 0x68, 0x0b, 0x7a, 0x1a, 0x92, 0x45,
		0xd3, 0x35, 0x89, 0x06, 0x43, 0x5e, 0x7d, 0x35, 0x5d, 0x33, 0x73, 0x06, 0x86, 0x96, 0x77, 0xc9,
		0x55, 0xa3, 0x1a, 0xb9, 0x65, 0x22, 0x76, 0x7f, 0xbc, 0x5f, 0x3d, 0x3d, 0xdb, 0x97, 0xaa, 0x69,
		0x37, 0x94, 0x6c, 0x92, 0xe8, 0xf3, 0x04, 0x8c, 0xac, 0x60, 0xb5, 0x09, 0x4e, 0x80, 0xd1, 0xa7,
		0xab, 0xde, 0xe4, 0xa5, 0xa6, 0x4c, 0xf5, 0x9b, 0xb2, 0x63, 0xa0, 0x2c, 0x8b, 0xad, 0x53, 0x50,
		0x0f, 0x43, 0x59, 0x9e, 0x4d, 0xa6, 0x46, 0xb4, 0xb1, 0xd9, 0x64, 0x0a, 0xb4, 0x61, 0xf6, 0xdc,
		0xbf, 0x55, 0x41, 0xa3, 0xad, 0x4e, 0x11, 0x6d, 0xd5, 0xad, 0xba, 0xdb, 0xdd, 0xaf, 0x7a, 0x1a,
		0xeb, 0x0f, 0xc1, 0x00, 0x36, 0xe9, 0x65, 0xf6, 0xa3, 0x7f, 0xd8, 0xf4, 0xc7, 0x59, 0x8b, 0x22,
		0x89, 0x60, 0x03, 0x24, 0x74, 0x7c, 0x8c, 0x7e, 0x19, 0xd4, 0x72, 0x79, 0x99, 0x2d, 0x6e, 0x8b,
		0x7b, 0x42, 0xd9, 0x75, 0x1e, 0xf6, 0x8d, 0x8d, 0x39, 0xdb, 0x06, 0x16, 0xa0, 0x2f, 0x42, 0xa2,
		0xbc, 0xcc, 0x1a, 0xde, 0x13, 0x71, 0xc4, 0x18, 0x89, 0xf2, 0xf2, 0xe4, 0x5f, 0x2b, 0x30, 0x2c,
		0x8c, 0xea, 0x19, 0x18, 0xa2, 0x03, 0x81, 0xe9, 0xf6, 0x1b, 0xc2, 0x18, 0xd7, 0x39, 0x71, 0x8b,
		0x3a, 0x4f, 0xe6, 0x60, 0x54, 0x1a, 0xd7, 0xe7, 0x40, 0x0f, 0x0e, 0x31, 0x25, 0xe8, 0x0f, 0x8e,
		0x85, 0x50, 0x32, 0x77, 0x00, 0xf8, 0x76, 0xf5, 0x7e, 0x27, 0xab, 0x5c, 0x5a, 0x5b, 0x2f, 0x15,
		0x35, 0x25, 0xf3, 0x35, 0x05, 0x06, 0x59, 0xdb, 0x5a, 0xb5, 0x5b, 0x48, 0xcf, 0x83, 0x92, 0x63,
		0xf1, 0xf0, 0xc6, 0xf4, 0x56, 0x72, 0xfa, 0x29, 0x50, 0xf2, 0xf1, 0x5d, 0xad, 0xe4, 0xf5, 0x05,
		0x50, 0x0a, 0xcc, 0xc1, 0xf1, 0x3c, 0xa3, 0x14, 0x32, 0x3f, 0x56, 0x61, 0x3c, 0xd8, 0x46, 0xf3,
		0x7a, 0x72, 0x5c, 0x7c, 0x6f, 0xca, 0x0e, 0x9c, 0x5e, 0x38, 0xb3, 0x38, 0x87, 0xff, 0xf1, 0x42,
		0x32, 0x23, 0xbe, 0x42, 0x65, 0xc1, 0x63, 0x39, 0xdd, 0xeb, 0x9e, 0x48, 0x36, 0x19, 0x90, 0xd0,
		0x75, 0x4f, 0x44, 0xa0, 0x76, 0xdd, 0x13, 0x11, 0xa8, 0x5d, 0xf7, 0x44, 0x04, 0x6a, 0xd7, 0x59,
		0x80, 0x40, 0xed, 0xba, 0x27, 0x22, 0x50, 0xbb, 0xee, 0x89, 0x08, 0xd4, 0xee, 0x7b, 0x22, 0x8c,
		0xdc, 0xf3, 0x9e, 0x88, 0x48, 0xef, 0xbe, 0x27, 0x22, 0xd2, 0xbb, 0xef, 0x89, 0x64, 0x93, 0x6e,
		0xbb, 0x83, 0x7a, 0x9f, 0x3a, 0x88, 0xf8, 0xbd, 0x5e, 0x02, 0xfd, 0x0a, 0xbc, 0x02, 0xa3, 0x74,
		0x43, 0xa2, 0x60, 0x5b, 0xae, 0x59, 0xb7, 0x50, 0x5b, 0x7f, 0x07, 0x0c, 0xd1, 0x21, 0xfa, 0x9a,
		0x13, 0xf6, 0x1a, 0x48, 0xe9, 0xac, 0xde, 0x0a, 0xdc, 0x99, 0x9f, 0x26, 0x61, 0x82, 0x0e, 0x94,
		0xcd, 0x26, 0x12, 0x6e, 0x19, 0x9d, 0x94, 0xce, 0x94, 0x46, 0x30, 0xfc, 0xe6, 0x4b, 0xd3, 0x74,
		0x34, 0xe7, 0x45, 0xd3, 0x49, 0xe9, 0x74, 0x49, 0xe4, 0xf3, 0x17, 0xa0, 0x93, 0xd2, 0xcd, 0x23,
		0x91, 0xcf, 0x5b, 0x6f, 0x3c, 0x3e, 0x7e, 0x07, 0x49, 0xe4, 0x2b, 0x7a, 0x51, 0x76, 0x52, 0xba,
		0x8d, 0x24, 0xf2, 0x95, 0xbc, 0x78, 0x3b, 0x29, 0x9d, 0x3d, 0x89, 0x7c, 0x97, 0xbd, 0xc8, 0x3b,
		0x29, 0x9d, 0x42, 0x89, 0x7c, 0x57, 0xbc, 0x18, 0x3c, 0x29, 0xdd, 0x55, 0x12, 0xf9, 0x1e, 0xf6,
		0xa2, 0xf1, 0xa4, 0x74, 0x6b, 0x49, 0xe4, 0x5b, 0xf2, 0xe2, 0x72, 0x46, 0xbe, 0xbf, 0x24, 0x32,
		0x5e, 0xf5, 0x23, 0x74, 0x46, 0xbe, 0xc9, 0x24, 0x72, 0xbe, 0xd3, 0x8f, 0xd5, 0x19, 0xf9, 0x4e,
		0x93, 0xc8, 0x79, 0xcd, 0x8f, 0xda, 0x19, 0xf9, 0xac, 0x4c, 0xe4, 0x5c, 0xf6, 0xe3, 0x77, 0x46,
		0x3e, 0x35, 0x13, 0x39, 0xcb, 0x7e, 0x24, 0xcf, 0xc8, 0xe7, 0x67, 0x22, 0xe7, 0x8a, 0xbf, 0x89,
		0xfe, 0x2d, 0x29, 0xfc, 0x02, 0xb7, 0xa0, 0x32, 0x52, 0xf8, 0x41, 0x48, 0xe8, 0x49, 0x85, 0x2c,
		0xc0, 0xe3, 0x87, 0x5d, 0x46, 0x0a, 0x3b, 0x08, 0x09, 0xb9, 0x8c, 0x14, 0x72, 0x10, 0x12, 0x6e,
		0x19, 0x29, 0xdc, 0x20, 0x24, 0xd4, 0x32, 0x52, 0xa8, 0x41, 0x48, 0x98, 0x65, 0xa4, 0x30, 0x83,
		0x90, 0x10, 0xcb, 0x48, 0x21, 0x06, 0x21, 0xe1, 0x95, 0x91, 0xc2, 0x0b, 0x42, 0x42, 0xeb, 0x84,
		0x1c, 0x5a, 0x10, 0x16, 0x56, 0x27, 0xe4, 0xb0, 0x82, 0xb0, 0x90, 0xba, 0x53, 0x0e, 0xa9, 0x81,
		0x9b, 0x2f, 0x4d, 0xf7, 0xe1, 0xa1, 0x40, 0x34, 0x9d, 0x90, 0xa3, 0x09, 0xc2, 0x22, 0xe9, 0x84,
		0x1c, 0x49, 0x10, 0x16, 0x45, 0x27, 0xe4, 0x28, 0x82, 0xb0, 0x08, 0x7a, 0x41, 0x8e, 0x20, 0xff,
		0x8e, 0x4f, 0x46, 0x3a, 0x52, 0x8c, 0x8a, 0x20, 0x35, 0x46, 0x04, 0xa9, 0x31, 0x22, 0x48, 0x8d,
		0x11, 0x41, 0x6a, 0x8c, 0x08, 0x52, 0x63, 0x44, 0x90, 0x1a, 0x23, 0x82, 0xd4, 0x18, 0x11, 0xa4,
		0xc6, 0x89, 0x20, 0x35, 0x56, 0x04, 0xa9, 0xbd, 0x22, 0xe8, 0x84, 0x7c, 0xe3, 0x01, 0xc2, 0x0a,
		0xd2, 0x09, 0xf9, 0xe8, 0x33, 0x3a, 0x84, 0xd4, 0x58, 0x21, 0xa4, 0xf6, 0x0a, 0xa1, 0x6f, 0xa9,
		0x30, 0x2e, 0x84, 0x10, 0x3b, 0x1f, 0x7a, 0xb3, 0x2a, 0xd0, 0xb9, 0x18, 0x17, 0x2c, 0xc2, 0x62,
		0xea, 0x5c, 0x8c, 0x43, 0xea, 0xbd, 0xe2, 0xac, 0xbb, 0x0a, 0x95, 0x62, 0x54, 0xa1, 0xcb, 0x5e,
		0x0c, 0x9d, 0x8b, 0x71, 0xf1, 0xa2, 0x3b, 0xf6, 0x2e, 0xec, 0x55, 0x04, 0x1e, 0x8e, 0x55, 0x04,
		0x96, 0x62, 0x15, 0x81, 0xab, 0xbe, 0x07, 0x3f, 0x98, 0x80, 0x43, 0xbe, 0x07, 0xe9, 0x27, 0xf2,
		0xdb, 0x59, 0x99, 0xc0, 0x11, 0x95, 0xce, 0x8f, 0x6d, 0x02, 0x6e, 0x4c, 0x2c, 0xd5, 0xf4, 0x55,
		0xf1, 0xb0, 0x2a, 0xbb, 0xdf, 0x03, 0x9c, 0x80, 0xc7, 0xd9, 0x66, 0xe8, 0x09, 0x50, 0x97, 0x6a,
		0x0e, 0xa9, 0x16, 0x61, 0x8f, 0x2d, 0x18, 0x98, 0xac, 0x1b, 0xd0, 0x4f, 0xd8, 0x1d, 0xe2, 0xde,
		0x5b, 0x79, 0x70, 0xd1, 0x60, 0x92, 0x32, 0x2f, 0x28, 0x70, 0x4c, 0x08, 0xe5, 0x37, 0xe7, 0xc8,
		0xe0, 0x52, 0xac, 0x23, 0x03, 0x21, 0x41, 0xfc, 0xe3, 0x83, 0xbb, 0xbb, 0x4f, 0xaa, 0x83, 0x59,
		0x22, 0x1f, 0x25, 0xfc, 0x3f, 0x18, 0xf1, 0x67, 0x40, 0xde, 0xd9, 0xce, 0x46, 0xef, 0x66, 0x86,
		0xa5, 0xe6, 0x59, 0x69, 0x17, 0x6d, 0x4f, 0x98, 0x97, 0xad, 0x99, 0x2c, 0x8c, 0x96, 0xc5, 0x3f,
		0x7a, 0x8a, 0xda, 0x8c, 0x48, 0xe1, 0xd6, 0xfc, 0xc6, 0xa7, 0xa7, 0x0f, 0x64, 0xee, 0x83, 0xa1,
		0xe0, 0xdf, 0x35, 0x49, 0xc0, 0x01, 0x0e, 0xcc, 0x26, 0x5f, 0xc4, 0xdc, 0xbf, 0xab, 0xc0, 0xe1,
		0x20, 0xfb, 0x23, 0x75, 0x77, 0x67, 0xc9, 0xc2, 0x3d, 0xfd, 0x03, 0x90, 0x42, 0xcc, 0x71, 0xec,
		0x67, 0x70, 0xd8, 0x7b, 0x64, 0x28, 0xfb, 0x1c, 0xf9, 0xd7, 0xf0, 0x20, 0xd2, 0x2e, 0x08, 0x7f,
		0xec, 0xc2, 0xe4, 0x5d, 0xd0, 0x47, 0xe5, 0x8b, 0x7a, 0x0d, 0x4b, 0x7a, 0x7d, 0x2e, 0x44, 0x2f,
		0x12, 0x47, 0xfa, 0x55, 0x41, 0xaf, 0xc0, 0xeb, 0x6a, 0x28, 0xfb, 0x1c, 0x0f, 0xbe, 0x7c, 0x0a,
		0xf7, 0x7f, 0x24, 0xa2, 0xa2, 0x95, 0x9c, 0x81, 0x54, 0x49, 0xe6, 0x09, 0xd7, 0xb3, 0x08, 0xc9,
		0xb2, 0x5d, 0x23, 0x3f, 0xd0, 0x43, 0x7e, 0xea, 0x9a, 0x19, 0x99, 0xfd, 0xee, 0xf5, 0x49, 0x48,
		0x15, 0x76, 0xea, 0x8d, 0x5a, 0x1b, 0x59, 0xec, 0xcc, 0x9e, 0x6d, 0xa1, 0x63, 0x8c, 0xe1, 0xd1,
		0x32, 0x05, 0x18, 0x2b, 0xdb, 0x56, 0x7e, 0xd7, 0x0d, 0xd6, 0x8d, 0x39, 0x29, 0x45, 0xd8, 0x99,
		0x0f, 0xf9, 0x3b, 0x10, 0xcc, 0x90, 0xef, 0xfb, 0xde, 0x4b, 0xd3, 0xca, 0xba, 0xb7, 0x7f, 0xbe,
		0x0c, 0x47, 0x58, 0xfa, 0x74, 0x89, 0x5a, 0x88, 0x12, 0x35, 0xc0, 0xce, 0xa9, 0x03, 0xe2, 0x96,
		0xb0, 0x38, 0x2b, 0x54, 0xdc, 0x1b, 0xd3, 0x0c, 0x37, 0x45, 0x7b, 0x6a, 0xa6, 0xee, 0x4b, 0xb3,
		0x50, 0x71, 0x73, 0x51, 0xe2, 0x24, 0xcd, 0xee, 0x84, 0x01, 0x8f, 0x16, 0x88, 0x86, 0x60, 0xa6,
		0x2c, 0xcc, 0x66, 0x60, 0x30, 0x90, 0xb0, 0x7a, 0x1f, 0x28, 0x39, 0xed, 0x00, 0xfe, 0x2f, 0xaf,
		0x29, 0xf8, 0xbf, 0x82, 0x96, 0x98, 0xbd, 0x0b, 0x46, 0xa5, 0xfd, 0x4b, 0x4c, 0x29, 0x6a, 0x80,
		0xff, 0x2b, 0x69, 0x83, 0x93, 0xc9, 0x0f, 0x7d, 0x76, 0xea, 0xc0, 0xec, 0x25, 0xd0, 0xbb, 0x77,
		0x3a, 0xf5, 0x7e, 0x48, 0xe4, 0xb0, 0xc8, 0x23, 0x90, 0xc8, 0xe7, 0x35, 0x65, 0x72, 0xf4, 0x97,
		0x3f, 0x79, 0x6c, 0x30, 0x4f, 0xfe, 0x68, 0xfb, 0x3a, 0x72, 0xf3, 0x79, 0x06, 0x7e, 0x10, 0x0e,
		0x87, 0xee, 0x94, 0x62, 0x7c, 0xa1, 0x40, 0xf1, 0xc5, 0x62, 0x17, 0xbe, 0x58, 0x24, 0x78, 0x25,
		0xcb, 0x4f, 0x9c, 0x73, 0x7a, 0xc8, 0x2e, 0x63, 0xba, 0x16, 0x38, 0xe1, 0xce, 0x65, 0x1f, 0x64,
		0xbc, 0xf9, 0x50, 0x5e, 0x14, 0x71, 0x62, 0x9d, 0xcf, 0x16, 0x18, 0xbe, 0x10, 0x8a, 0xdf, 0x92,
		0x8e, 0x55, 0xc5, 0x15, 0x82, 0x09, 0x29, 0x78, 0x0a, 0x17, 0x43, 0x85, 0xec, 0x04, 0x2e, 0xbb,
		0x17, 0x3d, 0x85, 0x4b, 0xa1, 0xbc, 0xf5, 0x88, 0x4b, 0x5f, 0xa5, 0xec, 0x29, 0xb6, 0xc8, 0xe7,
		0x4e, 0xeb, 0x87, 0x79, 0x8e, 0x0a, 0x15, 0x98, 0x19, 0x88, 0x73, 0x65, 0x0b, 0x0c, 0x90, 0xef,
		0x09, 0xe8, 0x6d, 0x25, 0x8e, 0xcc, 0x3e, 0xcc, 0x84, 0x14, 0x7a, 0x0a, 0x89, 0x30, 0x15, 0x87,
		0xe7, 0xd7, 0x6f, 0xbc, 0x3c, 0x75, 0xe0, 0xc5, 0x97, 0xa7, 0x0e, 0xfc, 0xc3, 0xcb, 0x53, 0x07,
		0xbe, 0xff, 0xf2, 0x94, 0xf2, 0xc3, 0x97, 0xa7, 0x94, 0x1f, 0xbd, 0x3c, 0xa5, 0xfc, 0xe4, 0xe5,
		0x29, 0xe5, 0x99, 0x9b, 0x53, 0xca, 0xf3, 0x37, 0xa7, 0x94, 0x2f, 0xdf, 0x9c, 0x52, 0xbe, 0x7e,
		0x73, 0x4a, 0x79, 0xe1, 0xe6, 0x94, 0x72, 0xe3, 0xe6, 0x94, 0xf2, 0xe2, 0xcd, 0x29, 0xe5, 0xfb,
		0x37, 0xa7, 0x94, 0x1f, 0xde, 0x9c, 0x3a, 0xf0, 0xa3, 0x9b, 0x53, 0xca, 0x4f, 0x6e, 0x4e, 0x1d,
		0x78, 0xe6, 0x95, 0xa9, 0x03, 0xcf, 0xbd, 0x32, 0x75, 0xe0, 0xf9, 0x57, 0xa6, 0x94, 0xff, 0x09,
		0x00, 0x00, 0xff, 0xff, 0xb3, 0x44, 0x1b, 0x6f, 0x3e, 0x69, 0x00, 0x00,
	}
	r := bytes.NewReader(gzipped)
	gzipr, err := compress_gzip.NewReader(r)
	if err != nil {
		panic(err)
	}
	ungzipped, err := io_ioutil.ReadAll(gzipr)
	if err != nil {
		panic(err)
	}
	if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil {
		panic(err)
	}
	return d
}
func (x TheTestEnum) String() string {
	s, ok := TheTestEnum_name[int32(x)]
	if ok {
		return s
	}
	return strconv.Itoa(int(x))
}
func (x AnotherTestEnum) String() string {
	s, ok := AnotherTestEnum_name[int32(x)]
	if ok {
		return s
	}
	return strconv.Itoa(int(x))
}
func (x YetAnotherTestEnum) String() string {
	s, ok := YetAnotherTestEnum_name[int32(x)]
	if ok {
		return s
	}
	return strconv.Itoa(int(x))
}
func (x YetYetAnotherTestEnum) String() string {
	s, ok := YetYetAnotherTestEnum_name[int32(x)]
	if ok {
		return s
	}
	return strconv.Itoa(int(x))
}
func (x NestedDefinition_NestedEnum) String() string {
	s, ok := NestedDefinition_NestedEnum_name[int32(x)]
	if ok {
		return s
	}
	return strconv.Itoa(int(x))
}
func (this *NidOptNative) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*NidOptNative)
	if !ok {
		that2, ok := that.(NidOptNative)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *NidOptNative")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *NidOptNative but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *NidOptNative but is not nil && this == nil")
	}
	if this.Field1 != that1.Field1 {
		return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1)
	}
	if this.Field2 != that1.Field2 {
		return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2)
	}
	if this.Field3 != that1.Field3 {
		return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3)
	}
	if this.Field4 != that1.Field4 {
		return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", this.Field4, that1.Field4)
	}
	if this.Field5 != that1.Field5 {
		return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", this.Field5, that1.Field5)
	}
	if this.Field6 != that1.Field6 {
		return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", this.Field6, that1.Field6)
	}
	if this.Field7 != that1.Field7 {
		return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", this.Field7, that1.Field7)
	}
	if this.Field8 != that1.Field8 {
		return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", this.Field8, that1.Field8)
	}
	if this.Field9 != that1.Field9 {
		return fmt.Errorf("Field9 this(%v) Not Equal that(%v)", this.Field9, that1.Field9)
	}
	if this.Field10 != that1.Field10 {
		return fmt.Errorf("Field10 this(%v) Not Equal that(%v)", this.Field10, that1.Field10)
	}
	if this.Field11 != that1.Field11 {
		return fmt.Errorf("Field11 this(%v) Not Equal that(%v)", this.Field11, that1.Field11)
	}
	if this.Field12 != that1.Field12 {
		return fmt.Errorf("Field12 this(%v) Not Equal that(%v)", this.Field12, that1.Field12)
	}
	if this.Field13 != that1.Field13 {
		return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", this.Field13, that1.Field13)
	}
	if this.Field14 != that1.Field14 {
		return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", this.Field14, that1.Field14)
	}
	if !bytes.Equal(this.Field15, that1.Field15) {
		return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", this.Field15, that1.Field15)
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *NidOptNative) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*NidOptNative)
	if !ok {
		that2, ok := that.(NidOptNative)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Field1 != that1.Field1 {
		return false
	}
	if this.Field2 != that1.Field2 {
		return false
	}
	if this.Field3 != that1.Field3 {
		return false
	}
	if this.Field4 != that1.Field4 {
		return false
	}
	if this.Field5 != that1.Field5 {
		return false
	}
	if this.Field6 != that1.Field6 {
		return false
	}
	if this.Field7 != that1.Field7 {
		return false
	}
	if this.Field8 != that1.Field8 {
		return false
	}
	if this.Field9 != that1.Field9 {
		return false
	}
	if this.Field10 != that1.Field10 {
		return false
	}
	if this.Field11 != that1.Field11 {
		return false
	}
	if this.Field12 != that1.Field12 {
		return false
	}
	if this.Field13 != that1.Field13 {
		return false
	}
	if this.Field14 != that1.Field14 {
		return false
	}
	if !bytes.Equal(this.Field15, that1.Field15) {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *NinOptNative) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*NinOptNative)
	if !ok {
		that2, ok := that.(NinOptNative)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *NinOptNative")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *NinOptNative but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *NinOptNative but is not nil && this == nil")
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1)
		}
	} else if this.Field1 != nil {
		return fmt.Errorf("this.Field1 == nil && that.Field1 != nil")
	} else if that1.Field1 != nil {
		return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1)
	}
	if this.Field2 != nil && that1.Field2 != nil {
		if *this.Field2 != *that1.Field2 {
			return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2)
		}
	} else if this.Field2 != nil {
		return fmt.Errorf("this.Field2 == nil && that.Field2 != nil")
	} else if that1.Field2 != nil {
		return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2)
	}
	if this.Field3 != nil && that1.Field3 != nil {
		if *this.Field3 != *that1.Field3 {
			return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", *this.Field3, *that1.Field3)
		}
	} else if this.Field3 != nil {
		return fmt.Errorf("this.Field3 == nil && that.Field3 != nil")
	} else if that1.Field3 != nil {
		return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3)
	}
	if this.Field4 != nil && that1.Field4 != nil {
		if *this.Field4 != *that1.Field4 {
			return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", *this.Field4, *that1.Field4)
		}
	} else if this.Field4 != nil {
		return fmt.Errorf("this.Field4 == nil && that.Field4 != nil")
	} else if that1.Field4 != nil {
		return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", this.Field4, that1.Field4)
	}
	if this.Field5 != nil && that1.Field5 != nil {
		if *this.Field5 != *that1.Field5 {
			return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", *this.Field5, *that1.Field5)
		}
	} else if this.Field5 != nil {
		return fmt.Errorf("this.Field5 == nil && that.Field5 != nil")
	} else if that1.Field5 != nil {
		return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", this.Field5, that1.Field5)
	}
	if this.Field6 != nil && that1.Field6 != nil {
		if *this.Field6 != *that1.Field6 {
			return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", *this.Field6, *that1.Field6)
		}
	} else if this.Field6 != nil {
		return fmt.Errorf("this.Field6 == nil && that.Field6 != nil")
	} else if that1.Field6 != nil {
		return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", this.Field6, that1.Field6)
	}
	if this.Field7 != nil && that1.Field7 != nil {
		if *this.Field7 != *that1.Field7 {
			return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", *this.Field7, *that1.Field7)
		}
	} else if this.Field7 != nil {
		return fmt.Errorf("this.Field7 == nil && that.Field7 != nil")
	} else if that1.Field7 != nil {
		return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", this.Field7, that1.Field7)
	}
	if this.Field8 != nil && that1.Field8 != nil {
		if *this.Field8 != *that1.Field8 {
			return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", *this.Field8, *that1.Field8)
		}
	} else if this.Field8 != nil {
		return fmt.Errorf("this.Field8 == nil && that.Field8 != nil")
	} else if that1.Field8 != nil {
		return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", this.Field8, that1.Field8)
	}
	if this.Field9 != nil && that1.Field9 != nil {
		if *this.Field9 != *that1.Field9 {
			return fmt.Errorf("Field9 this(%v) Not Equal that(%v)", *this.Field9, *that1.Field9)
		}
	} else if this.Field9 != nil {
		return fmt.Errorf("this.Field9 == nil && that.Field9 != nil")
	} else if that1.Field9 != nil {
		return fmt.Errorf("Field9 this(%v) Not Equal that(%v)", this.Field9, that1.Field9)
	}
	if this.Field10 != nil && that1.Field10 != nil {
		if *this.Field10 != *that1.Field10 {
			return fmt.Errorf("Field10 this(%v) Not Equal that(%v)", *this.Field10, *that1.Field10)
		}
	} else if this.Field10 != nil {
		return fmt.Errorf("this.Field10 == nil && that.Field10 != nil")
	} else if that1.Field10 != nil {
		return fmt.Errorf("Field10 this(%v) Not Equal that(%v)", this.Field10, that1.Field10)
	}
	if this.Field11 != nil && that1.Field11 != nil {
		if *this.Field11 != *that1.Field11 {
			return fmt.Errorf("Field11 this(%v) Not Equal that(%v)", *this.Field11, *that1.Field11)
		}
	} else if this.Field11 != nil {
		return fmt.Errorf("this.Field11 == nil && that.Field11 != nil")
	} else if that1.Field11 != nil {
		return fmt.Errorf("Field11 this(%v) Not Equal that(%v)", this.Field11, that1.Field11)
	}
	if this.Field12 != nil && that1.Field12 != nil {
		if *this.Field12 != *that1.Field12 {
			return fmt.Errorf("Field12 this(%v) Not Equal that(%v)", *this.Field12, *that1.Field12)
		}
	} else if this.Field12 != nil {
		return fmt.Errorf("this.Field12 == nil && that.Field12 != nil")
	} else if that1.Field12 != nil {
		return fmt.Errorf("Field12 this(%v) Not Equal that(%v)", this.Field12, that1.Field12)
	}
	if this.Field13 != nil && that1.Field13 != nil {
		if *this.Field13 != *that1.Field13 {
			return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", *this.Field13, *that1.Field13)
		}
	} else if this.Field13 != nil {
		return fmt.Errorf("this.Field13 == nil && that.Field13 != nil")
	} else if that1.Field13 != nil {
		return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", this.Field13, that1.Field13)
	}
	if this.Field14 != nil && that1.Field14 != nil {
		if *this.Field14 != *that1.Field14 {
			return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", *this.Field14, *that1.Field14)
		}
	} else if this.Field14 != nil {
		return fmt.Errorf("this.Field14 == nil && that.Field14 != nil")
	} else if that1.Field14 != nil {
		return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", this.Field14, that1.Field14)
	}
	if !bytes.Equal(this.Field15, that1.Field15) {
		return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", this.Field15, that1.Field15)
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *NinOptNative) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*NinOptNative)
	if !ok {
		that2, ok := that.(NinOptNative)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			return false
		}
	} else if this.Field1 != nil {
		return false
	} else if that1.Field1 != nil {
		return false
	}
	if this.Field2 != nil && that1.Field2 != nil {
		if *this.Field2 != *that1.Field2 {
			return false
		}
	} else if this.Field2 != nil {
		return false
	} else if that1.Field2 != nil {
		return false
	}
	if this.Field3 != nil && that1.Field3 != nil {
		if *this.Field3 != *that1.Field3 {
			return false
		}
	} else if this.Field3 != nil {
		return false
	} else if that1.Field3 != nil {
		return false
	}
	if this.Field4 != nil && that1.Field4 != nil {
		if *this.Field4 != *that1.Field4 {
			return false
		}
	} else if this.Field4 != nil {
		return false
	} else if that1.Field4 != nil {
		return false
	}
	if this.Field5 != nil && that1.Field5 != nil {
		if *this.Field5 != *that1.Field5 {
			return false
		}
	} else if this.Field5 != nil {
		return false
	} else if that1.Field5 != nil {
		return false
	}
	if this.Field6 != nil && that1.Field6 != nil {
		if *this.Field6 != *that1.Field6 {
			return false
		}
	} else if this.Field6 != nil {
		return false
	} else if that1.Field6 != nil {
		return false
	}
	if this.Field7 != nil && that1.Field7 != nil {
		if *this.Field7 != *that1.Field7 {
			return false
		}
	} else if this.Field7 != nil {
		return false
	} else if that1.Field7 != nil {
		return false
	}
	if this.Field8 != nil && that1.Field8 != nil {
		if *this.Field8 != *that1.Field8 {
			return false
		}
	} else if this.Field8 != nil {
		return false
	} else if that1.Field8 != nil {
		return false
	}
	if this.Field9 != nil && that1.Field9 != nil {
		if *this.Field9 != *that1.Field9 {
			return false
		}
	} else if this.Field9 != nil {
		return false
	} else if that1.Field9 != nil {
		return false
	}
	if this.Field10 != nil && that1.Field10 != nil {
		if *this.Field10 != *that1.Field10 {
			return false
		}
	} else if this.Field10 != nil {
		return false
	} else if that1.Field10 != nil {
		return false
	}
	if this.Field11 != nil && that1.Field11 != nil {
		if *this.Field11 != *that1.Field11 {
			return false
		}
	} else if this.Field11 != nil {
		return false
	} else if that1.Field11 != nil {
		return false
	}
	if this.Field12 != nil && that1.Field12 != nil {
		if *this.Field12 != *that1.Field12 {
			return false
		}
	} else if this.Field12 != nil {
		return false
	} else if that1.Field12 != nil {
		return false
	}
	if this.Field13 != nil && that1.Field13 != nil {
		if *this.Field13 != *that1.Field13 {
			return false
		}
	} else if this.Field13 != nil {
		return false
	} else if that1.Field13 != nil {
		return false
	}
	if this.Field14 != nil && that1.Field14 != nil {
		if *this.Field14 != *that1.Field14 {
			return false
		}
	} else if this.Field14 != nil {
		return false
	} else if that1.Field14 != nil {
		return false
	}
	if !bytes.Equal(this.Field15, that1.Field15) {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *NidRepNative) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*NidRepNative)
	if !ok {
		that2, ok := that.(NidRepNative)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *NidRepNative")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *NidRepNative but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *NidRepNative but is not nil && this == nil")
	}
	if len(this.Field1) != len(that1.Field1) {
		return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1))
	}
	for i := range this.Field1 {
		if this.Field1[i] != that1.Field1[i] {
			return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i])
		}
	}
	if len(this.Field2) != len(that1.Field2) {
		return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", len(this.Field2), len(that1.Field2))
	}
	for i := range this.Field2 {
		if this.Field2[i] != that1.Field2[i] {
			return fmt.Errorf("Field2 this[%v](%v) Not Equal that[%v](%v)", i, this.Field2[i], i, that1.Field2[i])
		}
	}
	if len(this.Field3) != len(that1.Field3) {
		return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", len(this.Field3), len(that1.Field3))
	}
	for i := range this.Field3 {
		if this.Field3[i] != that1.Field3[i] {
			return fmt.Errorf("Field3 this[%v](%v) Not Equal that[%v](%v)", i, this.Field3[i], i, that1.Field3[i])
		}
	}
	if len(this.Field4) != len(that1.Field4) {
		return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", len(this.Field4), len(that1.Field4))
	}
	for i := range this.Field4 {
		if this.Field4[i] != that1.Field4[i] {
			return fmt.Errorf("Field4 this[%v](%v) Not Equal that[%v](%v)", i, this.Field4[i], i, that1.Field4[i])
		}
	}
	if len(this.Field5) != len(that1.Field5) {
		return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", len(this.Field5), len(that1.Field5))
	}
	for i := range this.Field5 {
		if this.Field5[i] != that1.Field5[i] {
			return fmt.Errorf("Field5 this[%v](%v) Not Equal that[%v](%v)", i, this.Field5[i], i, that1.Field5[i])
		}
	}
	if len(this.Field6) != len(that1.Field6) {
		return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", len(this.Field6), len(that1.Field6))
	}
	for i := range this.Field6 {
		if this.Field6[i] != that1.Field6[i] {
			return fmt.Errorf("Field6 this[%v](%v) Not Equal that[%v](%v)", i, this.Field6[i], i, that1.Field6[i])
		}
	}
	if len(this.Field7) != len(that1.Field7) {
		return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", len(this.Field7), len(that1.Field7))
	}
	for i := range this.Field7 {
		if this.Field7[i] != that1.Field7[i] {
			return fmt.Errorf("Field7 this[%v](%v) Not Equal that[%v](%v)", i, this.Field7[i], i, that1.Field7[i])
		}
	}
	if len(this.Field8) != len(that1.Field8) {
		return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", len(this.Field8), len(that1.Field8))
	}
	for i := range this.Field8 {
		if this.Field8[i] != that1.Field8[i] {
			return fmt.Errorf("Field8 this[%v](%v) Not Equal that[%v](%v)", i, this.Field8[i], i, that1.Field8[i])
		}
	}
	if len(this.Field9) != len(that1.Field9) {
		return fmt.Errorf("Field9 this(%v) Not Equal that(%v)", len(this.Field9), len(that1.Field9))
	}
	for i := range this.Field9 {
		if this.Field9[i] != that1.Field9[i] {
			return fmt.Errorf("Field9 this[%v](%v) Not Equal that[%v](%v)", i, this.Field9[i], i, that1.Field9[i])
		}
	}
	if len(this.Field10) != len(that1.Field10) {
		return fmt.Errorf("Field10 this(%v) Not Equal that(%v)", len(this.Field10), len(that1.Field10))
	}
	for i := range this.Field10 {
		if this.Field10[i] != that1.Field10[i] {
			return fmt.Errorf("Field10 this[%v](%v) Not Equal that[%v](%v)", i, this.Field10[i], i, that1.Field10[i])
		}
	}
	if len(this.Field11) != len(that1.Field11) {
		return fmt.Errorf("Field11 this(%v) Not Equal that(%v)", len(this.Field11), len(that1.Field11))
	}
	for i := range this.Field11 {
		if this.Field11[i] != that1.Field11[i] {
			return fmt.Errorf("Field11 this[%v](%v) Not Equal that[%v](%v)", i, this.Field11[i], i, that1.Field11[i])
		}
	}
	if len(this.Field12) != len(that1.Field12) {
		return fmt.Errorf("Field12 this(%v) Not Equal that(%v)", len(this.Field12), len(that1.Field12))
	}
	for i := range this.Field12 {
		if this.Field12[i] != that1.Field12[i] {
			return fmt.Errorf("Field12 this[%v](%v) Not Equal that[%v](%v)", i, this.Field12[i], i, that1.Field12[i])
		}
	}
	if len(this.Field13) != len(that1.Field13) {
		return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", len(this.Field13), len(that1.Field13))
	}
	for i := range this.Field13 {
		if this.Field13[i] != that1.Field13[i] {
			return fmt.Errorf("Field13 this[%v](%v) Not Equal that[%v](%v)", i, this.Field13[i], i, that1.Field13[i])
		}
	}
	if len(this.Field14) != len(that1.Field14) {
		return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", len(this.Field14), len(that1.Field14))
	}
	for i := range this.Field14 {
		if this.Field14[i] != that1.Field14[i] {
			return fmt.Errorf("Field14 this[%v](%v) Not Equal that[%v](%v)", i, this.Field14[i], i, that1.Field14[i])
		}
	}
	if len(this.Field15) != len(that1.Field15) {
		return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", len(this.Field15), len(that1.Field15))
	}
	for i := range this.Field15 {
		if !bytes.Equal(this.Field15[i], that1.Field15[i]) {
			return fmt.Errorf("Field15 this[%v](%v) Not Equal that[%v](%v)", i, this.Field15[i], i, that1.Field15[i])
		}
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *NidRepNative) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*NidRepNative)
	if !ok {
		that2, ok := that.(NidRepNative)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if len(this.Field1) != len(that1.Field1) {
		return false
	}
	for i := range this.Field1 {
		if this.Field1[i] != that1.Field1[i] {
			return false
		}
	}
	if len(this.Field2) != len(that1.Field2) {
		return false
	}
	for i := range this.Field2 {
		if this.Field2[i] != that1.Field2[i] {
			return false
		}
	}
	if len(this.Field3) != len(that1.Field3) {
		return false
	}
	for i := range this.Field3 {
		if this.Field3[i] != that1.Field3[i] {
			return false
		}
	}
	if len(this.Field4) != len(that1.Field4) {
		return false
	}
	for i := range this.Field4 {
		if this.Field4[i] != that1.Field4[i] {
			return false
		}
	}
	if len(this.Field5) != len(that1.Field5) {
		return false
	}
	for i := range this.Field5 {
		if this.Field5[i] != that1.Field5[i] {
			return false
		}
	}
	if len(this.Field6) != len(that1.Field6) {
		return false
	}
	for i := range this.Field6 {
		if this.Field6[i] != that1.Field6[i] {
			return false
		}
	}
	if len(this.Field7) != len(that1.Field7) {
		return false
	}
	for i := range this.Field7 {
		if this.Field7[i] != that1.Field7[i] {
			return false
		}
	}
	if len(this.Field8) != len(that1.Field8) {
		return false
	}
	for i := range this.Field8 {
		if this.Field8[i] != that1.Field8[i] {
			return false
		}
	}
	if len(this.Field9) != len(that1.Field9) {
		return false
	}
	for i := range this.Field9 {
		if this.Field9[i] != that1.Field9[i] {
			return false
		}
	}
	if len(this.Field10) != len(that1.Field10) {
		return false
	}
	for i := range this.Field10 {
		if this.Field10[i] != that1.Field10[i] {
			return false
		}
	}
	if len(this.Field11) != len(that1.Field11) {
		return false
	}
	for i := range this.Field11 {
		if this.Field11[i] != that1.Field11[i] {
			return false
		}
	}
	if len(this.Field12) != len(that1.Field12) {
		return false
	}
	for i := range this.Field12 {
		if this.Field12[i] != that1.Field12[i] {
			return false
		}
	}
	if len(this.Field13) != len(that1.Field13) {
		return false
	}
	for i := range this.Field13 {
		if this.Field13[i] != that1.Field13[i] {
			return false
		}
	}
	if len(this.Field14) != len(that1.Field14) {
		return false
	}
	for i := range this.Field14 {
		if this.Field14[i] != that1.Field14[i] {
			return false
		}
	}
	if len(this.Field15) != len(that1.Field15) {
		return false
	}
	for i := range this.Field15 {
		if !bytes.Equal(this.Field15[i], that1.Field15[i]) {
			return false
		}
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *NinRepNative) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*NinRepNative)
	if !ok {
		that2, ok := that.(NinRepNative)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *NinRepNative")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *NinRepNative but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *NinRepNative but is not nil && this == nil")
	}
	if len(this.Field1) != len(that1.Field1) {
		return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1))
	}
	for i := range this.Field1 {
		if this.Field1[i] != that1.Field1[i] {
			return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i])
		}
	}
	if len(this.Field2) != len(that1.Field2) {
		return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", len(this.Field2), len(that1.Field2))
	}
	for i := range this.Field2 {
		if this.Field2[i] != that1.Field2[i] {
			return fmt.Errorf("Field2 this[%v](%v) Not Equal that[%v](%v)", i, this.Field2[i], i, that1.Field2[i])
		}
	}
	if len(this.Field3) != len(that1.Field3) {
		return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", len(this.Field3), len(that1.Field3))
	}
	for i := range this.Field3 {
		if this.Field3[i] != that1.Field3[i] {
			return fmt.Errorf("Field3 this[%v](%v) Not Equal that[%v](%v)", i, this.Field3[i], i, that1.Field3[i])
		}
	}
	if len(this.Field4) != len(that1.Field4) {
		return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", len(this.Field4), len(that1.Field4))
	}
	for i := range this.Field4 {
		if this.Field4[i] != that1.Field4[i] {
			return fmt.Errorf("Field4 this[%v](%v) Not Equal that[%v](%v)", i, this.Field4[i], i, that1.Field4[i])
		}
	}
	if len(this.Field5) != len(that1.Field5) {
		return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", len(this.Field5), len(that1.Field5))
	}
	for i := range this.Field5 {
		if this.Field5[i] != that1.Field5[i] {
			return fmt.Errorf("Field5 this[%v](%v) Not Equal that[%v](%v)", i, this.Field5[i], i, that1.Field5[i])
		}
	}
	if len(this.Field6) != len(that1.Field6) {
		return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", len(this.Field6), len(that1.Field6))
	}
	for i := range this.Field6 {
		if this.Field6[i] != that1.Field6[i] {
			return fmt.Errorf("Field6 this[%v](%v) Not Equal that[%v](%v)", i, this.Field6[i], i, that1.Field6[i])
		}
	}
	if len(this.Field7) != len(that1.Field7) {
		return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", len(this.Field7), len(that1.Field7))
	}
	for i := range this.Field7 {
		if this.Field7[i] != that1.Field7[i] {
			return fmt.Errorf("Field7 this[%v](%v) Not Equal that[%v](%v)", i, this.Field7[i], i, that1.Field7[i])
		}
	}
	if len(this.Field8) != len(that1.Field8) {
		return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", len(this.Field8), len(that1.Field8))
	}
	for i := range this.Field8 {
		if this.Field8[i] != that1.Field8[i] {
			return fmt.Errorf("Field8 this[%v](%v) Not Equal that[%v](%v)", i, this.Field8[i], i, that1.Field8[i])
		}
	}
	if len(this.Field9) != len(that1.Field9) {
		return fmt.Errorf("Field9 this(%v) Not Equal that(%v)", len(this.Field9), len(that1.Field9))
	}
	for i := range this.Field9 {
		if this.Field9[i] != that1.Field9[i] {
			return fmt.Errorf("Field9 this[%v](%v) Not Equal that[%v](%v)", i, this.Field9[i], i, that1.Field9[i])
		}
	}
	if len(this.Field10) != len(that1.Field10) {
		return fmt.Errorf("Field10 this(%v) Not Equal that(%v)", len(this.Field10), len(that1.Field10))
	}
	for i := range this.Field10 {
		if this.Field10[i] != that1.Field10[i] {
			return fmt.Errorf("Field10 this[%v](%v) Not Equal that[%v](%v)", i, this.Field10[i], i, that1.Field10[i])
		}
	}
	if len(this.Field11) != len(that1.Field11) {
		return fmt.Errorf("Field11 this(%v) Not Equal that(%v)", len(this.Field11), len(that1.Field11))
	}
	for i := range this.Field11 {
		if this.Field11[i] != that1.Field11[i] {
			return fmt.Errorf("Field11 this[%v](%v) Not Equal that[%v](%v)", i, this.Field11[i], i, that1.Field11[i])
		}
	}
	if len(this.Field12) != len(that1.Field12) {
		return fmt.Errorf("Field12 this(%v) Not Equal that(%v)", len(this.Field12), len(that1.Field12))
	}
	for i := range this.Field12 {
		if this.Field12[i] != that1.Field12[i] {
			return fmt.Errorf("Field12 this[%v](%v) Not Equal that[%v](%v)", i, this.Field12[i], i, that1.Field12[i])
		}
	}
	if len(this.Field13) != len(that1.Field13) {
		return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", len(this.Field13), len(that1.Field13))
	}
	for i := range this.Field13 {
		if this.Field13[i] != that1.Field13[i] {
			return fmt.Errorf("Field13 this[%v](%v) Not Equal that[%v](%v)", i, this.Field13[i], i, that1.Field13[i])
		}
	}
	if len(this.Field14) != len(that1.Field14) {
		return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", len(this.Field14), len(that1.Field14))
	}
	for i := range this.Field14 {
		if this.Field14[i] != that1.Field14[i] {
			return fmt.Errorf("Field14 this[%v](%v) Not Equal that[%v](%v)", i, this.Field14[i], i, that1.Field14[i])
		}
	}
	if len(this.Field15) != len(that1.Field15) {
		return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", len(this.Field15), len(that1.Field15))
	}
	for i := range this.Field15 {
		if !bytes.Equal(this.Field15[i], that1.Field15[i]) {
			return fmt.Errorf("Field15 this[%v](%v) Not Equal that[%v](%v)", i, this.Field15[i], i, that1.Field15[i])
		}
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *NinRepNative) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*NinRepNative)
	if !ok {
		that2, ok := that.(NinRepNative)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if len(this.Field1) != len(that1.Field1) {
		return false
	}
	for i := range this.Field1 {
		if this.Field1[i] != that1.Field1[i] {
			return false
		}
	}
	if len(this.Field2) != len(that1.Field2) {
		return false
	}
	for i := range this.Field2 {
		if this.Field2[i] != that1.Field2[i] {
			return false
		}
	}
	if len(this.Field3) != len(that1.Field3) {
		return false
	}
	for i := range this.Field3 {
		if this.Field3[i] != that1.Field3[i] {
			return false
		}
	}
	if len(this.Field4) != len(that1.Field4) {
		return false
	}
	for i := range this.Field4 {
		if this.Field4[i] != that1.Field4[i] {
			return false
		}
	}
	if len(this.Field5) != len(that1.Field5) {
		return false
	}
	for i := range this.Field5 {
		if this.Field5[i] != that1.Field5[i] {
			return false
		}
	}
	if len(this.Field6) != len(that1.Field6) {
		return false
	}
	for i := range this.Field6 {
		if this.Field6[i] != that1.Field6[i] {
			return false
		}
	}
	if len(this.Field7) != len(that1.Field7) {
		return false
	}
	for i := range this.Field7 {
		if this.Field7[i] != that1.Field7[i] {
			return false
		}
	}
	if len(this.Field8) != len(that1.Field8) {
		return false
	}
	for i := range this.Field8 {
		if this.Field8[i] != that1.Field8[i] {
			return false
		}
	}
	if len(this.Field9) != len(that1.Field9) {
		return false
	}
	for i := range this.Field9 {
		if this.Field9[i] != that1.Field9[i] {
			return false
		}
	}
	if len(this.Field10) != len(that1.Field10) {
		return false
	}
	for i := range this.Field10 {
		if this.Field10[i] != that1.Field10[i] {
			return false
		}
	}
	if len(this.Field11) != len(that1.Field11) {
		return false
	}
	for i := range this.Field11 {
		if this.Field11[i] != that1.Field11[i] {
			return false
		}
	}
	if len(this.Field12) != len(that1.Field12) {
		return false
	}
	for i := range this.Field12 {
		if this.Field12[i] != that1.Field12[i] {
			return false
		}
	}
	if len(this.Field13) != len(that1.Field13) {
		return false
	}
	for i := range this.Field13 {
		if this.Field13[i] != that1.Field13[i] {
			return false
		}
	}
	if len(this.Field14) != len(that1.Field14) {
		return false
	}
	for i := range this.Field14 {
		if this.Field14[i] != that1.Field14[i] {
			return false
		}
	}
	if len(this.Field15) != len(that1.Field15) {
		return false
	}
	for i := range this.Field15 {
		if !bytes.Equal(this.Field15[i], that1.Field15[i]) {
			return false
		}
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *NidRepPackedNative) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*NidRepPackedNative)
	if !ok {
		that2, ok := that.(NidRepPackedNative)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *NidRepPackedNative")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *NidRepPackedNative but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *NidRepPackedNative but is not nil && this == nil")
	}
	if len(this.Field1) != len(that1.Field1) {
		return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1))
	}
	for i := range this.Field1 {
		if this.Field1[i] != that1.Field1[i] {
			return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i])
		}
	}
	if len(this.Field2) != len(that1.Field2) {
		return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", len(this.Field2), len(that1.Field2))
	}
	for i := range this.Field2 {
		if this.Field2[i] != that1.Field2[i] {
			return fmt.Errorf("Field2 this[%v](%v) Not Equal that[%v](%v)", i, this.Field2[i], i, that1.Field2[i])
		}
	}
	if len(this.Field3) != len(that1.Field3) {
		return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", len(this.Field3), len(that1.Field3))
	}
	for i := range this.Field3 {
		if this.Field3[i] != that1.Field3[i] {
			return fmt.Errorf("Field3 this[%v](%v) Not Equal that[%v](%v)", i, this.Field3[i], i, that1.Field3[i])
		}
	}
	if len(this.Field4) != len(that1.Field4) {
		return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", len(this.Field4), len(that1.Field4))
	}
	for i := range this.Field4 {
		if this.Field4[i] != that1.Field4[i] {
			return fmt.Errorf("Field4 this[%v](%v) Not Equal that[%v](%v)", i, this.Field4[i], i, that1.Field4[i])
		}
	}
	if len(this.Field5) != len(that1.Field5) {
		return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", len(this.Field5), len(that1.Field5))
	}
	for i := range this.Field5 {
		if this.Field5[i] != that1.Field5[i] {
			return fmt.Errorf("Field5 this[%v](%v) Not Equal that[%v](%v)", i, this.Field5[i], i, that1.Field5[i])
		}
	}
	if len(this.Field6) != len(that1.Field6) {
		return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", len(this.Field6), len(that1.Field6))
	}
	for i := range this.Field6 {
		if this.Field6[i] != that1.Field6[i] {
			return fmt.Errorf("Field6 this[%v](%v) Not Equal that[%v](%v)", i, this.Field6[i], i, that1.Field6[i])
		}
	}
	if len(this.Field7) != len(that1.Field7) {
		return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", len(this.Field7), len(that1.Field7))
	}
	for i := range this.Field7 {
		if this.Field7[i] != that1.Field7[i] {
			return fmt.Errorf("Field7 this[%v](%v) Not Equal that[%v](%v)", i, this.Field7[i], i, that1.Field7[i])
		}
	}
	if len(this.Field8) != len(that1.Field8) {
		return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", len(this.Field8), len(that1.Field8))
	}
	for i := range this.Field8 {
		if this.Field8[i] != that1.Field8[i] {
			return fmt.Errorf("Field8 this[%v](%v) Not Equal that[%v](%v)", i, this.Field8[i], i, that1.Field8[i])
		}
	}
	if len(this.Field9) != len(that1.Field9) {
		return fmt.Errorf("Field9 this(%v) Not Equal that(%v)", len(this.Field9), len(that1.Field9))
	}
	for i := range this.Field9 {
		if this.Field9[i] != that1.Field9[i] {
			return fmt.Errorf("Field9 this[%v](%v) Not Equal that[%v](%v)", i, this.Field9[i], i, that1.Field9[i])
		}
	}
	if len(this.Field10) != len(that1.Field10) {
		return fmt.Errorf("Field10 this(%v) Not Equal that(%v)", len(this.Field10), len(that1.Field10))
	}
	for i := range this.Field10 {
		if this.Field10[i] != that1.Field10[i] {
			return fmt.Errorf("Field10 this[%v](%v) Not Equal that[%v](%v)", i, this.Field10[i], i, that1.Field10[i])
		}
	}
	if len(this.Field11) != len(that1.Field11) {
		return fmt.Errorf("Field11 this(%v) Not Equal that(%v)", len(this.Field11), len(that1.Field11))
	}
	for i := range this.Field11 {
		if this.Field11[i] != that1.Field11[i] {
			return fmt.Errorf("Field11 this[%v](%v) Not Equal that[%v](%v)", i, this.Field11[i], i, that1.Field11[i])
		}
	}
	if len(this.Field12) != len(that1.Field12) {
		return fmt.Errorf("Field12 this(%v) Not Equal that(%v)", len(this.Field12), len(that1.Field12))
	}
	for i := range this.Field12 {
		if this.Field12[i] != that1.Field12[i] {
			return fmt.Errorf("Field12 this[%v](%v) Not Equal that[%v](%v)", i, this.Field12[i], i, that1.Field12[i])
		}
	}
	if len(this.Field13) != len(that1.Field13) {
		return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", len(this.Field13), len(that1.Field13))
	}
	for i := range this.Field13 {
		if this.Field13[i] != that1.Field13[i] {
			return fmt.Errorf("Field13 this[%v](%v) Not Equal that[%v](%v)", i, this.Field13[i], i, that1.Field13[i])
		}
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *NidRepPackedNative) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*NidRepPackedNative)
	if !ok {
		that2, ok := that.(NidRepPackedNative)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if len(this.Field1) != len(that1.Field1) {
		return false
	}
	for i := range this.Field1 {
		if this.Field1[i] != that1.Field1[i] {
			return false
		}
	}
	if len(this.Field2) != len(that1.Field2) {
		return false
	}
	for i := range this.Field2 {
		if this.Field2[i] != that1.Field2[i] {
			return false
		}
	}
	if len(this.Field3) != len(that1.Field3) {
		return false
	}
	for i := range this.Field3 {
		if this.Field3[i] != that1.Field3[i] {
			return false
		}
	}
	if len(this.Field4) != len(that1.Field4) {
		return false
	}
	for i := range this.Field4 {
		if this.Field4[i] != that1.Field4[i] {
			return false
		}
	}
	if len(this.Field5) != len(that1.Field5) {
		return false
	}
	for i := range this.Field5 {
		if this.Field5[i] != that1.Field5[i] {
			return false
		}
	}
	if len(this.Field6) != len(that1.Field6) {
		return false
	}
	for i := range this.Field6 {
		if this.Field6[i] != that1.Field6[i] {
			return false
		}
	}
	if len(this.Field7) != len(that1.Field7) {
		return false
	}
	for i := range this.Field7 {
		if this.Field7[i] != that1.Field7[i] {
			return false
		}
	}
	if len(this.Field8) != len(that1.Field8) {
		return false
	}
	for i := range this.Field8 {
		if this.Field8[i] != that1.Field8[i] {
			return false
		}
	}
	if len(this.Field9) != len(that1.Field9) {
		return false
	}
	for i := range this.Field9 {
		if this.Field9[i] != that1.Field9[i] {
			return false
		}
	}
	if len(this.Field10) != len(that1.Field10) {
		return false
	}
	for i := range this.Field10 {
		if this.Field10[i] != that1.Field10[i] {
			return false
		}
	}
	if len(this.Field11) != len(that1.Field11) {
		return false
	}
	for i := range this.Field11 {
		if this.Field11[i] != that1.Field11[i] {
			return false
		}
	}
	if len(this.Field12) != len(that1.Field12) {
		return false
	}
	for i := range this.Field12 {
		if this.Field12[i] != that1.Field12[i] {
			return false
		}
	}
	if len(this.Field13) != len(that1.Field13) {
		return false
	}
	for i := range this.Field13 {
		if this.Field13[i] != that1.Field13[i] {
			return false
		}
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *NinRepPackedNative) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*NinRepPackedNative)
	if !ok {
		that2, ok := that.(NinRepPackedNative)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *NinRepPackedNative")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *NinRepPackedNative but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *NinRepPackedNative but is not nil && this == nil")
	}
	if len(this.Field1) != len(that1.Field1) {
		return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1))
	}
	for i := range this.Field1 {
		if this.Field1[i] != that1.Field1[i] {
			return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i])
		}
	}
	if len(this.Field2) != len(that1.Field2) {
		return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", len(this.Field2), len(that1.Field2))
	}
	for i := range this.Field2 {
		if this.Field2[i] != that1.Field2[i] {
			return fmt.Errorf("Field2 this[%v](%v) Not Equal that[%v](%v)", i, this.Field2[i], i, that1.Field2[i])
		}
	}
	if len(this.Field3) != len(that1.Field3) {
		return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", len(this.Field3), len(that1.Field3))
	}
	for i := range this.Field3 {
		if this.Field3[i] != that1.Field3[i] {
			return fmt.Errorf("Field3 this[%v](%v) Not Equal that[%v](%v)", i, this.Field3[i], i, that1.Field3[i])
		}
	}
	if len(this.Field4) != len(that1.Field4) {
		return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", len(this.Field4), len(that1.Field4))
	}
	for i := range this.Field4 {
		if this.Field4[i] != that1.Field4[i] {
			return fmt.Errorf("Field4 this[%v](%v) Not Equal that[%v](%v)", i, this.Field4[i], i, that1.Field4[i])
		}
	}
	if len(this.Field5) != len(that1.Field5) {
		return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", len(this.Field5), len(that1.Field5))
	}
	for i := range this.Field5 {
		if this.Field5[i] != that1.Field5[i] {
			return fmt.Errorf("Field5 this[%v](%v) Not Equal that[%v](%v)", i, this.Field5[i], i, that1.Field5[i])
		}
	}
	if len(this.Field6) != len(that1.Field6) {
		return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", len(this.Field6), len(that1.Field6))
	}
	for i := range this.Field6 {
		if this.Field6[i] != that1.Field6[i] {
			return fmt.Errorf("Field6 this[%v](%v) Not Equal that[%v](%v)", i, this.Field6[i], i, that1.Field6[i])
		}
	}
	if len(this.Field7) != len(that1.Field7) {
		return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", len(this.Field7), len(that1.Field7))
	}
	for i := range this.Field7 {
		if this.Field7[i] != that1.Field7[i] {
			return fmt.Errorf("Field7 this[%v](%v) Not Equal that[%v](%v)", i, this.Field7[i], i, that1.Field7[i])
		}
	}
	if len(this.Field8) != len(that1.Field8) {
		return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", len(this.Field8), len(that1.Field8))
	}
	for i := range this.Field8 {
		if this.Field8[i] != that1.Field8[i] {
			return fmt.Errorf("Field8 this[%v](%v) Not Equal that[%v](%v)", i, this.Field8[i], i, that1.Field8[i])
		}
	}
	if len(this.Field9) != len(that1.Field9) {
		return fmt.Errorf("Field9 this(%v) Not Equal that(%v)", len(this.Field9), len(that1.Field9))
	}
	for i := range this.Field9 {
		if this.Field9[i] != that1.Field9[i] {
			return fmt.Errorf("Field9 this[%v](%v) Not Equal that[%v](%v)", i, this.Field9[i], i, that1.Field9[i])
		}
	}
	if len(this.Field10) != len(that1.Field10) {
		return fmt.Errorf("Field10 this(%v) Not Equal that(%v)", len(this.Field10), len(that1.Field10))
	}
	for i := range this.Field10 {
		if this.Field10[i] != that1.Field10[i] {
			return fmt.Errorf("Field10 this[%v](%v) Not Equal that[%v](%v)", i, this.Field10[i], i, that1.Field10[i])
		}
	}
	if len(this.Field11) != len(that1.Field11) {
		return fmt.Errorf("Field11 this(%v) Not Equal that(%v)", len(this.Field11), len(that1.Field11))
	}
	for i := range this.Field11 {
		if this.Field11[i] != that1.Field11[i] {
			return fmt.Errorf("Field11 this[%v](%v) Not Equal that[%v](%v)", i, this.Field11[i], i, that1.Field11[i])
		}
	}
	if len(this.Field12) != len(that1.Field12) {
		return fmt.Errorf("Field12 this(%v) Not Equal that(%v)", len(this.Field12), len(that1.Field12))
	}
	for i := range this.Field12 {
		if this.Field12[i] != that1.Field12[i] {
			return fmt.Errorf("Field12 this[%v](%v) Not Equal that[%v](%v)", i, this.Field12[i], i, that1.Field12[i])
		}
	}
	if len(this.Field13) != len(that1.Field13) {
		return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", len(this.Field13), len(that1.Field13))
	}
	for i := range this.Field13 {
		if this.Field13[i] != that1.Field13[i] {
			return fmt.Errorf("Field13 this[%v](%v) Not Equal that[%v](%v)", i, this.Field13[i], i, that1.Field13[i])
		}
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *NinRepPackedNative) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*NinRepPackedNative)
	if !ok {
		that2, ok := that.(NinRepPackedNative)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if len(this.Field1) != len(that1.Field1) {
		return false
	}
	for i := range this.Field1 {
		if this.Field1[i] != that1.Field1[i] {
			return false
		}
	}
	if len(this.Field2) != len(that1.Field2) {
		return false
	}
	for i := range this.Field2 {
		if this.Field2[i] != that1.Field2[i] {
			return false
		}
	}
	if len(this.Field3) != len(that1.Field3) {
		return false
	}
	for i := range this.Field3 {
		if this.Field3[i] != that1.Field3[i] {
			return false
		}
	}
	if len(this.Field4) != len(that1.Field4) {
		return false
	}
	for i := range this.Field4 {
		if this.Field4[i] != that1.Field4[i] {
			return false
		}
	}
	if len(this.Field5) != len(that1.Field5) {
		return false
	}
	for i := range this.Field5 {
		if this.Field5[i] != that1.Field5[i] {
			return false
		}
	}
	if len(this.Field6) != len(that1.Field6) {
		return false
	}
	for i := range this.Field6 {
		if this.Field6[i] != that1.Field6[i] {
			return false
		}
	}
	if len(this.Field7) != len(that1.Field7) {
		return false
	}
	for i := range this.Field7 {
		if this.Field7[i] != that1.Field7[i] {
			return false
		}
	}
	if len(this.Field8) != len(that1.Field8) {
		return false
	}
	for i := range this.Field8 {
		if this.Field8[i] != that1.Field8[i] {
			return false
		}
	}
	if len(this.Field9) != len(that1.Field9) {
		return false
	}
	for i := range this.Field9 {
		if this.Field9[i] != that1.Field9[i] {
			return false
		}
	}
	if len(this.Field10) != len(that1.Field10) {
		return false
	}
	for i := range this.Field10 {
		if this.Field10[i] != that1.Field10[i] {
			return false
		}
	}
	if len(this.Field11) != len(that1.Field11) {
		return false
	}
	for i := range this.Field11 {
		if this.Field11[i] != that1.Field11[i] {
			return false
		}
	}
	if len(this.Field12) != len(that1.Field12) {
		return false
	}
	for i := range this.Field12 {
		if this.Field12[i] != that1.Field12[i] {
			return false
		}
	}
	if len(this.Field13) != len(that1.Field13) {
		return false
	}
	for i := range this.Field13 {
		if this.Field13[i] != that1.Field13[i] {
			return false
		}
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *NidOptStruct) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*NidOptStruct)
	if !ok {
		that2, ok := that.(NidOptStruct)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *NidOptStruct")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *NidOptStruct but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *NidOptStruct but is not nil && this == nil")
	}
	if this.Field1 != that1.Field1 {
		return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1)
	}
	if this.Field2 != that1.Field2 {
		return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2)
	}
	if !this.Field3.Equal(&that1.Field3) {
		return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3)
	}
	if !this.Field4.Equal(&that1.Field4) {
		return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", this.Field4, that1.Field4)
	}
	if this.Field6 != that1.Field6 {
		return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", this.Field6, that1.Field6)
	}
	if this.Field7 != that1.Field7 {
		return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", this.Field7, that1.Field7)
	}
	if !this.Field8.Equal(&that1.Field8) {
		return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", this.Field8, that1.Field8)
	}
	if this.Field13 != that1.Field13 {
		return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", this.Field13, that1.Field13)
	}
	if this.Field14 != that1.Field14 {
		return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", this.Field14, that1.Field14)
	}
	if !bytes.Equal(this.Field15, that1.Field15) {
		return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", this.Field15, that1.Field15)
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *NidOptStruct) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*NidOptStruct)
	if !ok {
		that2, ok := that.(NidOptStruct)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Field1 != that1.Field1 {
		return false
	}
	if this.Field2 != that1.Field2 {
		return false
	}
	if !this.Field3.Equal(&that1.Field3) {
		return false
	}
	if !this.Field4.Equal(&that1.Field4) {
		return false
	}
	if this.Field6 != that1.Field6 {
		return false
	}
	if this.Field7 != that1.Field7 {
		return false
	}
	if !this.Field8.Equal(&that1.Field8) {
		return false
	}
	if this.Field13 != that1.Field13 {
		return false
	}
	if this.Field14 != that1.Field14 {
		return false
	}
	if !bytes.Equal(this.Field15, that1.Field15) {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *NinOptStruct) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*NinOptStruct)
	if !ok {
		that2, ok := that.(NinOptStruct)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *NinOptStruct")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *NinOptStruct but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *NinOptStruct but is not nil && this == nil")
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1)
		}
	} else if this.Field1 != nil {
		return fmt.Errorf("this.Field1 == nil && that.Field1 != nil")
	} else if that1.Field1 != nil {
		return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1)
	}
	if this.Field2 != nil && that1.Field2 != nil {
		if *this.Field2 != *that1.Field2 {
			return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2)
		}
	} else if this.Field2 != nil {
		return fmt.Errorf("this.Field2 == nil && that.Field2 != nil")
	} else if that1.Field2 != nil {
		return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2)
	}
	if !this.Field3.Equal(that1.Field3) {
		return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3)
	}
	if !this.Field4.Equal(that1.Field4) {
		return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", this.Field4, that1.Field4)
	}
	if this.Field6 != nil && that1.Field6 != nil {
		if *this.Field6 != *that1.Field6 {
			return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", *this.Field6, *that1.Field6)
		}
	} else if this.Field6 != nil {
		return fmt.Errorf("this.Field6 == nil && that.Field6 != nil")
	} else if that1.Field6 != nil {
		return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", this.Field6, that1.Field6)
	}
	if this.Field7 != nil && that1.Field7 != nil {
		if *this.Field7 != *that1.Field7 {
			return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", *this.Field7, *that1.Field7)
		}
	} else if this.Field7 != nil {
		return fmt.Errorf("this.Field7 == nil && that.Field7 != nil")
	} else if that1.Field7 != nil {
		return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", this.Field7, that1.Field7)
	}
	if !this.Field8.Equal(that1.Field8) {
		return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", this.Field8, that1.Field8)
	}
	if this.Field13 != nil && that1.Field13 != nil {
		if *this.Field13 != *that1.Field13 {
			return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", *this.Field13, *that1.Field13)
		}
	} else if this.Field13 != nil {
		return fmt.Errorf("this.Field13 == nil && that.Field13 != nil")
	} else if that1.Field13 != nil {
		return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", this.Field13, that1.Field13)
	}
	if this.Field14 != nil && that1.Field14 != nil {
		if *this.Field14 != *that1.Field14 {
			return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", *this.Field14, *that1.Field14)
		}
	} else if this.Field14 != nil {
		return fmt.Errorf("this.Field14 == nil && that.Field14 != nil")
	} else if that1.Field14 != nil {
		return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", this.Field14, that1.Field14)
	}
	if !bytes.Equal(this.Field15, that1.Field15) {
		return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", this.Field15, that1.Field15)
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *NinOptStruct) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*NinOptStruct)
	if !ok {
		that2, ok := that.(NinOptStruct)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			return false
		}
	} else if this.Field1 != nil {
		return false
	} else if that1.Field1 != nil {
		return false
	}
	if this.Field2 != nil && that1.Field2 != nil {
		if *this.Field2 != *that1.Field2 {
			return false
		}
	} else if this.Field2 != nil {
		return false
	} else if that1.Field2 != nil {
		return false
	}
	if !this.Field3.Equal(that1.Field3) {
		return false
	}
	if !this.Field4.Equal(that1.Field4) {
		return false
	}
	if this.Field6 != nil && that1.Field6 != nil {
		if *this.Field6 != *that1.Field6 {
			return false
		}
	} else if this.Field6 != nil {
		return false
	} else if that1.Field6 != nil {
		return false
	}
	if this.Field7 != nil && that1.Field7 != nil {
		if *this.Field7 != *that1.Field7 {
			return false
		}
	} else if this.Field7 != nil {
		return false
	} else if that1.Field7 != nil {
		return false
	}
	if !this.Field8.Equal(that1.Field8) {
		return false
	}
	if this.Field13 != nil && that1.Field13 != nil {
		if *this.Field13 != *that1.Field13 {
			return false
		}
	} else if this.Field13 != nil {
		return false
	} else if that1.Field13 != nil {
		return false
	}
	if this.Field14 != nil && that1.Field14 != nil {
		if *this.Field14 != *that1.Field14 {
			return false
		}
	} else if this.Field14 != nil {
		return false
	} else if that1.Field14 != nil {
		return false
	}
	if !bytes.Equal(this.Field15, that1.Field15) {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *NidRepStruct) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*NidRepStruct)
	if !ok {
		that2, ok := that.(NidRepStruct)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *NidRepStruct")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *NidRepStruct but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *NidRepStruct but is not nil && this == nil")
	}
	if len(this.Field1) != len(that1.Field1) {
		return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1))
	}
	for i := range this.Field1 {
		if this.Field1[i] != that1.Field1[i] {
			return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i])
		}
	}
	if len(this.Field2) != len(that1.Field2) {
		return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", len(this.Field2), len(that1.Field2))
	}
	for i := range this.Field2 {
		if this.Field2[i] != that1.Field2[i] {
			return fmt.Errorf("Field2 this[%v](%v) Not Equal that[%v](%v)", i, this.Field2[i], i, that1.Field2[i])
		}
	}
	if len(this.Field3) != len(that1.Field3) {
		return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", len(this.Field3), len(that1.Field3))
	}
	for i := range this.Field3 {
		if !this.Field3[i].Equal(&that1.Field3[i]) {
			return fmt.Errorf("Field3 this[%v](%v) Not Equal that[%v](%v)", i, this.Field3[i], i, that1.Field3[i])
		}
	}
	if len(this.Field4) != len(that1.Field4) {
		return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", len(this.Field4), len(that1.Field4))
	}
	for i := range this.Field4 {
		if !this.Field4[i].Equal(&that1.Field4[i]) {
			return fmt.Errorf("Field4 this[%v](%v) Not Equal that[%v](%v)", i, this.Field4[i], i, that1.Field4[i])
		}
	}
	if len(this.Field6) != len(that1.Field6) {
		return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", len(this.Field6), len(that1.Field6))
	}
	for i := range this.Field6 {
		if this.Field6[i] != that1.Field6[i] {
			return fmt.Errorf("Field6 this[%v](%v) Not Equal that[%v](%v)", i, this.Field6[i], i, that1.Field6[i])
		}
	}
	if len(this.Field7) != len(that1.Field7) {
		return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", len(this.Field7), len(that1.Field7))
	}
	for i := range this.Field7 {
		if this.Field7[i] != that1.Field7[i] {
			return fmt.Errorf("Field7 this[%v](%v) Not Equal that[%v](%v)", i, this.Field7[i], i, that1.Field7[i])
		}
	}
	if len(this.Field8) != len(that1.Field8) {
		return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", len(this.Field8), len(that1.Field8))
	}
	for i := range this.Field8 {
		if !this.Field8[i].Equal(&that1.Field8[i]) {
			return fmt.Errorf("Field8 this[%v](%v) Not Equal that[%v](%v)", i, this.Field8[i], i, that1.Field8[i])
		}
	}
	if len(this.Field13) != len(that1.Field13) {
		return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", len(this.Field13), len(that1.Field13))
	}
	for i := range this.Field13 {
		if this.Field13[i] != that1.Field13[i] {
			return fmt.Errorf("Field13 this[%v](%v) Not Equal that[%v](%v)", i, this.Field13[i], i, that1.Field13[i])
		}
	}
	if len(this.Field14) != len(that1.Field14) {
		return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", len(this.Field14), len(that1.Field14))
	}
	for i := range this.Field14 {
		if this.Field14[i] != that1.Field14[i] {
			return fmt.Errorf("Field14 this[%v](%v) Not Equal that[%v](%v)", i, this.Field14[i], i, that1.Field14[i])
		}
	}
	if len(this.Field15) != len(that1.Field15) {
		return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", len(this.Field15), len(that1.Field15))
	}
	for i := range this.Field15 {
		if !bytes.Equal(this.Field15[i], that1.Field15[i]) {
			return fmt.Errorf("Field15 this[%v](%v) Not Equal that[%v](%v)", i, this.Field15[i], i, that1.Field15[i])
		}
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *NidRepStruct) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*NidRepStruct)
	if !ok {
		that2, ok := that.(NidRepStruct)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if len(this.Field1) != len(that1.Field1) {
		return false
	}
	for i := range this.Field1 {
		if this.Field1[i] != that1.Field1[i] {
			return false
		}
	}
	if len(this.Field2) != len(that1.Field2) {
		return false
	}
	for i := range this.Field2 {
		if this.Field2[i] != that1.Field2[i] {
			return false
		}
	}
	if len(this.Field3) != len(that1.Field3) {
		return false
	}
	for i := range this.Field3 {
		if !this.Field3[i].Equal(&that1.Field3[i]) {
			return false
		}
	}
	if len(this.Field4) != len(that1.Field4) {
		return false
	}
	for i := range this.Field4 {
		if !this.Field4[i].Equal(&that1.Field4[i]) {
			return false
		}
	}
	if len(this.Field6) != len(that1.Field6) {
		return false
	}
	for i := range this.Field6 {
		if this.Field6[i] != that1.Field6[i] {
			return false
		}
	}
	if len(this.Field7) != len(that1.Field7) {
		return false
	}
	for i := range this.Field7 {
		if this.Field7[i] != that1.Field7[i] {
			return false
		}
	}
	if len(this.Field8) != len(that1.Field8) {
		return false
	}
	for i := range this.Field8 {
		if !this.Field8[i].Equal(&that1.Field8[i]) {
			return false
		}
	}
	if len(this.Field13) != len(that1.Field13) {
		return false
	}
	for i := range this.Field13 {
		if this.Field13[i] != that1.Field13[i] {
			return false
		}
	}
	if len(this.Field14) != len(that1.Field14) {
		return false
	}
	for i := range this.Field14 {
		if this.Field14[i] != that1.Field14[i] {
			return false
		}
	}
	if len(this.Field15) != len(that1.Field15) {
		return false
	}
	for i := range this.Field15 {
		if !bytes.Equal(this.Field15[i], that1.Field15[i]) {
			return false
		}
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *NinRepStruct) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*NinRepStruct)
	if !ok {
		that2, ok := that.(NinRepStruct)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *NinRepStruct")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *NinRepStruct but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *NinRepStruct but is not nil && this == nil")
	}
	if len(this.Field1) != len(that1.Field1) {
		return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1))
	}
	for i := range this.Field1 {
		if this.Field1[i] != that1.Field1[i] {
			return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i])
		}
	}
	if len(this.Field2) != len(that1.Field2) {
		return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", len(this.Field2), len(that1.Field2))
	}
	for i := range this.Field2 {
		if this.Field2[i] != that1.Field2[i] {
			return fmt.Errorf("Field2 this[%v](%v) Not Equal that[%v](%v)", i, this.Field2[i], i, that1.Field2[i])
		}
	}
	if len(this.Field3) != len(that1.Field3) {
		return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", len(this.Field3), len(that1.Field3))
	}
	for i := range this.Field3 {
		if !this.Field3[i].Equal(that1.Field3[i]) {
			return fmt.Errorf("Field3 this[%v](%v) Not Equal that[%v](%v)", i, this.Field3[i], i, that1.Field3[i])
		}
	}
	if len(this.Field4) != len(that1.Field4) {
		return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", len(this.Field4), len(that1.Field4))
	}
	for i := range this.Field4 {
		if !this.Field4[i].Equal(that1.Field4[i]) {
			return fmt.Errorf("Field4 this[%v](%v) Not Equal that[%v](%v)", i, this.Field4[i], i, that1.Field4[i])
		}
	}
	if len(this.Field6) != len(that1.Field6) {
		return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", len(this.Field6), len(that1.Field6))
	}
	for i := range this.Field6 {
		if this.Field6[i] != that1.Field6[i] {
			return fmt.Errorf("Field6 this[%v](%v) Not Equal that[%v](%v)", i, this.Field6[i], i, that1.Field6[i])
		}
	}
	if len(this.Field7) != len(that1.Field7) {
		return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", len(this.Field7), len(that1.Field7))
	}
	for i := range this.Field7 {
		if this.Field7[i] != that1.Field7[i] {
			return fmt.Errorf("Field7 this[%v](%v) Not Equal that[%v](%v)", i, this.Field7[i], i, that1.Field7[i])
		}
	}
	if len(this.Field8) != len(that1.Field8) {
		return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", len(this.Field8), len(that1.Field8))
	}
	for i := range this.Field8 {
		if !this.Field8[i].Equal(that1.Field8[i]) {
			return fmt.Errorf("Field8 this[%v](%v) Not Equal that[%v](%v)", i, this.Field8[i], i, that1.Field8[i])
		}
	}
	if len(this.Field13) != len(that1.Field13) {
		return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", len(this.Field13), len(that1.Field13))
	}
	for i := range this.Field13 {
		if this.Field13[i] != that1.Field13[i] {
			return fmt.Errorf("Field13 this[%v](%v) Not Equal that[%v](%v)", i, this.Field13[i], i, that1.Field13[i])
		}
	}
	if len(this.Field14) != len(that1.Field14) {
		return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", len(this.Field14), len(that1.Field14))
	}
	for i := range this.Field14 {
		if this.Field14[i] != that1.Field14[i] {
			return fmt.Errorf("Field14 this[%v](%v) Not Equal that[%v](%v)", i, this.Field14[i], i, that1.Field14[i])
		}
	}
	if len(this.Field15) != len(that1.Field15) {
		return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", len(this.Field15), len(that1.Field15))
	}
	for i := range this.Field15 {
		if !bytes.Equal(this.Field15[i], that1.Field15[i]) {
			return fmt.Errorf("Field15 this[%v](%v) Not Equal that[%v](%v)", i, this.Field15[i], i, that1.Field15[i])
		}
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *NinRepStruct) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*NinRepStruct)
	if !ok {
		that2, ok := that.(NinRepStruct)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if len(this.Field1) != len(that1.Field1) {
		return false
	}
	for i := range this.Field1 {
		if this.Field1[i] != that1.Field1[i] {
			return false
		}
	}
	if len(this.Field2) != len(that1.Field2) {
		return false
	}
	for i := range this.Field2 {
		if this.Field2[i] != that1.Field2[i] {
			return false
		}
	}
	if len(this.Field3) != len(that1.Field3) {
		return false
	}
	for i := range this.Field3 {
		if !this.Field3[i].Equal(that1.Field3[i]) {
			return false
		}
	}
	if len(this.Field4) != len(that1.Field4) {
		return false
	}
	for i := range this.Field4 {
		if !this.Field4[i].Equal(that1.Field4[i]) {
			return false
		}
	}
	if len(this.Field6) != len(that1.Field6) {
		return false
	}
	for i := range this.Field6 {
		if this.Field6[i] != that1.Field6[i] {
			return false
		}
	}
	if len(this.Field7) != len(that1.Field7) {
		return false
	}
	for i := range this.Field7 {
		if this.Field7[i] != that1.Field7[i] {
			return false
		}
	}
	if len(this.Field8) != len(that1.Field8) {
		return false
	}
	for i := range this.Field8 {
		if !this.Field8[i].Equal(that1.Field8[i]) {
			return false
		}
	}
	if len(this.Field13) != len(that1.Field13) {
		return false
	}
	for i := range this.Field13 {
		if this.Field13[i] != that1.Field13[i] {
			return false
		}
	}
	if len(this.Field14) != len(that1.Field14) {
		return false
	}
	for i := range this.Field14 {
		if this.Field14[i] != that1.Field14[i] {
			return false
		}
	}
	if len(this.Field15) != len(that1.Field15) {
		return false
	}
	for i := range this.Field15 {
		if !bytes.Equal(this.Field15[i], that1.Field15[i]) {
			return false
		}
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *NidEmbeddedStruct) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*NidEmbeddedStruct)
	if !ok {
		that2, ok := that.(NidEmbeddedStruct)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *NidEmbeddedStruct")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *NidEmbeddedStruct but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *NidEmbeddedStruct but is not nil && this == nil")
	}
	if !this.NidOptNative.Equal(that1.NidOptNative) {
		return fmt.Errorf("NidOptNative this(%v) Not Equal that(%v)", this.NidOptNative, that1.NidOptNative)
	}
	if !this.Field200.Equal(&that1.Field200) {
		return fmt.Errorf("Field200 this(%v) Not Equal that(%v)", this.Field200, that1.Field200)
	}
	if this.Field210 != that1.Field210 {
		return fmt.Errorf("Field210 this(%v) Not Equal that(%v)", this.Field210, that1.Field210)
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *NidEmbeddedStruct) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*NidEmbeddedStruct)
	if !ok {
		that2, ok := that.(NidEmbeddedStruct)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !this.NidOptNative.Equal(that1.NidOptNative) {
		return false
	}
	if !this.Field200.Equal(&that1.Field200) {
		return false
	}
	if this.Field210 != that1.Field210 {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *NinEmbeddedStruct) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*NinEmbeddedStruct)
	if !ok {
		that2, ok := that.(NinEmbeddedStruct)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *NinEmbeddedStruct")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *NinEmbeddedStruct but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *NinEmbeddedStruct but is not nil && this == nil")
	}
	if !this.NidOptNative.Equal(that1.NidOptNative) {
		return fmt.Errorf("NidOptNative this(%v) Not Equal that(%v)", this.NidOptNative, that1.NidOptNative)
	}
	if !this.Field200.Equal(that1.Field200) {
		return fmt.Errorf("Field200 this(%v) Not Equal that(%v)", this.Field200, that1.Field200)
	}
	if this.Field210 != nil && that1.Field210 != nil {
		if *this.Field210 != *that1.Field210 {
			return fmt.Errorf("Field210 this(%v) Not Equal that(%v)", *this.Field210, *that1.Field210)
		}
	} else if this.Field210 != nil {
		return fmt.Errorf("this.Field210 == nil && that.Field210 != nil")
	} else if that1.Field210 != nil {
		return fmt.Errorf("Field210 this(%v) Not Equal that(%v)", this.Field210, that1.Field210)
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *NinEmbeddedStruct) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*NinEmbeddedStruct)
	if !ok {
		that2, ok := that.(NinEmbeddedStruct)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !this.NidOptNative.Equal(that1.NidOptNative) {
		return false
	}
	if !this.Field200.Equal(that1.Field200) {
		return false
	}
	if this.Field210 != nil && that1.Field210 != nil {
		if *this.Field210 != *that1.Field210 {
			return false
		}
	} else if this.Field210 != nil {
		return false
	} else if that1.Field210 != nil {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *NidNestedStruct) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*NidNestedStruct)
	if !ok {
		that2, ok := that.(NidNestedStruct)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *NidNestedStruct")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *NidNestedStruct but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *NidNestedStruct but is not nil && this == nil")
	}
	if !this.Field1.Equal(&that1.Field1) {
		return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1)
	}
	if len(this.Field2) != len(that1.Field2) {
		return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", len(this.Field2), len(that1.Field2))
	}
	for i := range this.Field2 {
		if !this.Field2[i].Equal(&that1.Field2[i]) {
			return fmt.Errorf("Field2 this[%v](%v) Not Equal that[%v](%v)", i, this.Field2[i], i, that1.Field2[i])
		}
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *NidNestedStruct) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*NidNestedStruct)
	if !ok {
		that2, ok := that.(NidNestedStruct)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !this.Field1.Equal(&that1.Field1) {
		return false
	}
	if len(this.Field2) != len(that1.Field2) {
		return false
	}
	for i := range this.Field2 {
		if !this.Field2[i].Equal(&that1.Field2[i]) {
			return false
		}
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *NinNestedStruct) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*NinNestedStruct)
	if !ok {
		that2, ok := that.(NinNestedStruct)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *NinNestedStruct")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *NinNestedStruct but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *NinNestedStruct but is not nil && this == nil")
	}
	if !this.Field1.Equal(that1.Field1) {
		return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1)
	}
	if len(this.Field2) != len(that1.Field2) {
		return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", len(this.Field2), len(that1.Field2))
	}
	for i := range this.Field2 {
		if !this.Field2[i].Equal(that1.Field2[i]) {
			return fmt.Errorf("Field2 this[%v](%v) Not Equal that[%v](%v)", i, this.Field2[i], i, that1.Field2[i])
		}
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *NinNestedStruct) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*NinNestedStruct)
	if !ok {
		that2, ok := that.(NinNestedStruct)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !this.Field1.Equal(that1.Field1) {
		return false
	}
	if len(this.Field2) != len(that1.Field2) {
		return false
	}
	for i := range this.Field2 {
		if !this.Field2[i].Equal(that1.Field2[i]) {
			return false
		}
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *NidOptCustom) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*NidOptCustom)
	if !ok {
		that2, ok := that.(NidOptCustom)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *NidOptCustom")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *NidOptCustom but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *NidOptCustom but is not nil && this == nil")
	}
	if !this.Id.Equal(that1.Id) {
		return fmt.Errorf("Id this(%v) Not Equal that(%v)", this.Id, that1.Id)
	}
	if !this.Value.Equal(that1.Value) {
		return fmt.Errorf("Value this(%v) Not Equal that(%v)", this.Value, that1.Value)
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *NidOptCustom) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*NidOptCustom)
	if !ok {
		that2, ok := that.(NidOptCustom)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !this.Id.Equal(that1.Id) {
		return false
	}
	if !this.Value.Equal(that1.Value) {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *CustomDash) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*CustomDash)
	if !ok {
		that2, ok := that.(CustomDash)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *CustomDash")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *CustomDash but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *CustomDash but is not nil && this == nil")
	}
	if that1.Value == nil {
		if this.Value != nil {
			return fmt.Errorf("this.Value != nil && that1.Value == nil")
		}
	} else if !this.Value.Equal(*that1.Value) {
		return fmt.Errorf("Value this(%v) Not Equal that(%v)", this.Value, that1.Value)
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *CustomDash) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*CustomDash)
	if !ok {
		that2, ok := that.(CustomDash)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if that1.Value == nil {
		if this.Value != nil {
			return false
		}
	} else if !this.Value.Equal(*that1.Value) {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *NinOptCustom) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*NinOptCustom)
	if !ok {
		that2, ok := that.(NinOptCustom)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *NinOptCustom")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *NinOptCustom but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *NinOptCustom but is not nil && this == nil")
	}
	if that1.Id == nil {
		if this.Id != nil {
			return fmt.Errorf("this.Id != nil && that1.Id == nil")
		}
	} else if !this.Id.Equal(*that1.Id) {
		return fmt.Errorf("Id this(%v) Not Equal that(%v)", this.Id, that1.Id)
	}
	if that1.Value == nil {
		if this.Value != nil {
			return fmt.Errorf("this.Value != nil && that1.Value == nil")
		}
	} else if !this.Value.Equal(*that1.Value) {
		return fmt.Errorf("Value this(%v) Not Equal that(%v)", this.Value, that1.Value)
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *NinOptCustom) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*NinOptCustom)
	if !ok {
		that2, ok := that.(NinOptCustom)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if that1.Id == nil {
		if this.Id != nil {
			return false
		}
	} else if !this.Id.Equal(*that1.Id) {
		return false
	}
	if that1.Value == nil {
		if this.Value != nil {
			return false
		}
	} else if !this.Value.Equal(*that1.Value) {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *NidRepCustom) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*NidRepCustom)
	if !ok {
		that2, ok := that.(NidRepCustom)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *NidRepCustom")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *NidRepCustom but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *NidRepCustom but is not nil && this == nil")
	}
	if len(this.Id) != len(that1.Id) {
		return fmt.Errorf("Id this(%v) Not Equal that(%v)", len(this.Id), len(that1.Id))
	}
	for i := range this.Id {
		if !this.Id[i].Equal(that1.Id[i]) {
			return fmt.Errorf("Id this[%v](%v) Not Equal that[%v](%v)", i, this.Id[i], i, that1.Id[i])
		}
	}
	if len(this.Value) != len(that1.Value) {
		return fmt.Errorf("Value this(%v) Not Equal that(%v)", len(this.Value), len(that1.Value))
	}
	for i := range this.Value {
		if !this.Value[i].Equal(that1.Value[i]) {
			return fmt.Errorf("Value this[%v](%v) Not Equal that[%v](%v)", i, this.Value[i], i, that1.Value[i])
		}
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *NidRepCustom) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*NidRepCustom)
	if !ok {
		that2, ok := that.(NidRepCustom)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if len(this.Id) != len(that1.Id) {
		return false
	}
	for i := range this.Id {
		if !this.Id[i].Equal(that1.Id[i]) {
			return false
		}
	}
	if len(this.Value) != len(that1.Value) {
		return false
	}
	for i := range this.Value {
		if !this.Value[i].Equal(that1.Value[i]) {
			return false
		}
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *NinRepCustom) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*NinRepCustom)
	if !ok {
		that2, ok := that.(NinRepCustom)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *NinRepCustom")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *NinRepCustom but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *NinRepCustom but is not nil && this == nil")
	}
	if len(this.Id) != len(that1.Id) {
		return fmt.Errorf("Id this(%v) Not Equal that(%v)", len(this.Id), len(that1.Id))
	}
	for i := range this.Id {
		if !this.Id[i].Equal(that1.Id[i]) {
			return fmt.Errorf("Id this[%v](%v) Not Equal that[%v](%v)", i, this.Id[i], i, that1.Id[i])
		}
	}
	if len(this.Value) != len(that1.Value) {
		return fmt.Errorf("Value this(%v) Not Equal that(%v)", len(this.Value), len(that1.Value))
	}
	for i := range this.Value {
		if !this.Value[i].Equal(that1.Value[i]) {
			return fmt.Errorf("Value this[%v](%v) Not Equal that[%v](%v)", i, this.Value[i], i, that1.Value[i])
		}
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *NinRepCustom) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*NinRepCustom)
	if !ok {
		that2, ok := that.(NinRepCustom)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if len(this.Id) != len(that1.Id) {
		return false
	}
	for i := range this.Id {
		if !this.Id[i].Equal(that1.Id[i]) {
			return false
		}
	}
	if len(this.Value) != len(that1.Value) {
		return false
	}
	for i := range this.Value {
		if !this.Value[i].Equal(that1.Value[i]) {
			return false
		}
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *NinOptNativeUnion) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*NinOptNativeUnion)
	if !ok {
		that2, ok := that.(NinOptNativeUnion)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *NinOptNativeUnion")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *NinOptNativeUnion but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *NinOptNativeUnion but is not nil && this == nil")
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1)
		}
	} else if this.Field1 != nil {
		return fmt.Errorf("this.Field1 == nil && that.Field1 != nil")
	} else if that1.Field1 != nil {
		return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1)
	}
	if this.Field2 != nil && that1.Field2 != nil {
		if *this.Field2 != *that1.Field2 {
			return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2)
		}
	} else if this.Field2 != nil {
		return fmt.Errorf("this.Field2 == nil && that.Field2 != nil")
	} else if that1.Field2 != nil {
		return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2)
	}
	if this.Field3 != nil && that1.Field3 != nil {
		if *this.Field3 != *that1.Field3 {
			return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", *this.Field3, *that1.Field3)
		}
	} else if this.Field3 != nil {
		return fmt.Errorf("this.Field3 == nil && that.Field3 != nil")
	} else if that1.Field3 != nil {
		return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3)
	}
	if this.Field4 != nil && that1.Field4 != nil {
		if *this.Field4 != *that1.Field4 {
			return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", *this.Field4, *that1.Field4)
		}
	} else if this.Field4 != nil {
		return fmt.Errorf("this.Field4 == nil && that.Field4 != nil")
	} else if that1.Field4 != nil {
		return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", this.Field4, that1.Field4)
	}
	if this.Field5 != nil && that1.Field5 != nil {
		if *this.Field5 != *that1.Field5 {
			return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", *this.Field5, *that1.Field5)
		}
	} else if this.Field5 != nil {
		return fmt.Errorf("this.Field5 == nil && that.Field5 != nil")
	} else if that1.Field5 != nil {
		return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", this.Field5, that1.Field5)
	}
	if this.Field6 != nil && that1.Field6 != nil {
		if *this.Field6 != *that1.Field6 {
			return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", *this.Field6, *that1.Field6)
		}
	} else if this.Field6 != nil {
		return fmt.Errorf("this.Field6 == nil && that.Field6 != nil")
	} else if that1.Field6 != nil {
		return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", this.Field6, that1.Field6)
	}
	if this.Field13 != nil && that1.Field13 != nil {
		if *this.Field13 != *that1.Field13 {
			return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", *this.Field13, *that1.Field13)
		}
	} else if this.Field13 != nil {
		return fmt.Errorf("this.Field13 == nil && that.Field13 != nil")
	} else if that1.Field13 != nil {
		return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", this.Field13, that1.Field13)
	}
	if this.Field14 != nil && that1.Field14 != nil {
		if *this.Field14 != *that1.Field14 {
			return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", *this.Field14, *that1.Field14)
		}
	} else if this.Field14 != nil {
		return fmt.Errorf("this.Field14 == nil && that.Field14 != nil")
	} else if that1.Field14 != nil {
		return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", this.Field14, that1.Field14)
	}
	if !bytes.Equal(this.Field15, that1.Field15) {
		return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", this.Field15, that1.Field15)
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *NinOptNativeUnion) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*NinOptNativeUnion)
	if !ok {
		that2, ok := that.(NinOptNativeUnion)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			return false
		}
	} else if this.Field1 != nil {
		return false
	} else if that1.Field1 != nil {
		return false
	}
	if this.Field2 != nil && that1.Field2 != nil {
		if *this.Field2 != *that1.Field2 {
			return false
		}
	} else if this.Field2 != nil {
		return false
	} else if that1.Field2 != nil {
		return false
	}
	if this.Field3 != nil && that1.Field3 != nil {
		if *this.Field3 != *that1.Field3 {
			return false
		}
	} else if this.Field3 != nil {
		return false
	} else if that1.Field3 != nil {
		return false
	}
	if this.Field4 != nil && that1.Field4 != nil {
		if *this.Field4 != *that1.Field4 {
			return false
		}
	} else if this.Field4 != nil {
		return false
	} else if that1.Field4 != nil {
		return false
	}
	if this.Field5 != nil && that1.Field5 != nil {
		if *this.Field5 != *that1.Field5 {
			return false
		}
	} else if this.Field5 != nil {
		return false
	} else if that1.Field5 != nil {
		return false
	}
	if this.Field6 != nil && that1.Field6 != nil {
		if *this.Field6 != *that1.Field6 {
			return false
		}
	} else if this.Field6 != nil {
		return false
	} else if that1.Field6 != nil {
		return false
	}
	if this.Field13 != nil && that1.Field13 != nil {
		if *this.Field13 != *that1.Field13 {
			return false
		}
	} else if this.Field13 != nil {
		return false
	} else if that1.Field13 != nil {
		return false
	}
	if this.Field14 != nil && that1.Field14 != nil {
		if *this.Field14 != *that1.Field14 {
			return false
		}
	} else if this.Field14 != nil {
		return false
	} else if that1.Field14 != nil {
		return false
	}
	if !bytes.Equal(this.Field15, that1.Field15) {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *NinOptStructUnion) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*NinOptStructUnion)
	if !ok {
		that2, ok := that.(NinOptStructUnion)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *NinOptStructUnion")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *NinOptStructUnion but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *NinOptStructUnion but is not nil && this == nil")
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1)
		}
	} else if this.Field1 != nil {
		return fmt.Errorf("this.Field1 == nil && that.Field1 != nil")
	} else if that1.Field1 != nil {
		return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1)
	}
	if this.Field2 != nil && that1.Field2 != nil {
		if *this.Field2 != *that1.Field2 {
			return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2)
		}
	} else if this.Field2 != nil {
		return fmt.Errorf("this.Field2 == nil && that.Field2 != nil")
	} else if that1.Field2 != nil {
		return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2)
	}
	if !this.Field3.Equal(that1.Field3) {
		return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3)
	}
	if !this.Field4.Equal(that1.Field4) {
		return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", this.Field4, that1.Field4)
	}
	if this.Field6 != nil && that1.Field6 != nil {
		if *this.Field6 != *that1.Field6 {
			return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", *this.Field6, *that1.Field6)
		}
	} else if this.Field6 != nil {
		return fmt.Errorf("this.Field6 == nil && that.Field6 != nil")
	} else if that1.Field6 != nil {
		return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", this.Field6, that1.Field6)
	}
	if this.Field7 != nil && that1.Field7 != nil {
		if *this.Field7 != *that1.Field7 {
			return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", *this.Field7, *that1.Field7)
		}
	} else if this.Field7 != nil {
		return fmt.Errorf("this.Field7 == nil && that.Field7 != nil")
	} else if that1.Field7 != nil {
		return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", this.Field7, that1.Field7)
	}
	if this.Field13 != nil && that1.Field13 != nil {
		if *this.Field13 != *that1.Field13 {
			return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", *this.Field13, *that1.Field13)
		}
	} else if this.Field13 != nil {
		return fmt.Errorf("this.Field13 == nil && that.Field13 != nil")
	} else if that1.Field13 != nil {
		return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", this.Field13, that1.Field13)
	}
	if this.Field14 != nil && that1.Field14 != nil {
		if *this.Field14 != *that1.Field14 {
			return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", *this.Field14, *that1.Field14)
		}
	} else if this.Field14 != nil {
		return fmt.Errorf("this.Field14 == nil && that.Field14 != nil")
	} else if that1.Field14 != nil {
		return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", this.Field14, that1.Field14)
	}
	if !bytes.Equal(this.Field15, that1.Field15) {
		return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", this.Field15, that1.Field15)
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *NinOptStructUnion) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*NinOptStructUnion)
	if !ok {
		that2, ok := that.(NinOptStructUnion)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			return false
		}
	} else if this.Field1 != nil {
		return false
	} else if that1.Field1 != nil {
		return false
	}
	if this.Field2 != nil && that1.Field2 != nil {
		if *this.Field2 != *that1.Field2 {
			return false
		}
	} else if this.Field2 != nil {
		return false
	} else if that1.Field2 != nil {
		return false
	}
	if !this.Field3.Equal(that1.Field3) {
		return false
	}
	if !this.Field4.Equal(that1.Field4) {
		return false
	}
	if this.Field6 != nil && that1.Field6 != nil {
		if *this.Field6 != *that1.Field6 {
			return false
		}
	} else if this.Field6 != nil {
		return false
	} else if that1.Field6 != nil {
		return false
	}
	if this.Field7 != nil && that1.Field7 != nil {
		if *this.Field7 != *that1.Field7 {
			return false
		}
	} else if this.Field7 != nil {
		return false
	} else if that1.Field7 != nil {
		return false
	}
	if this.Field13 != nil && that1.Field13 != nil {
		if *this.Field13 != *that1.Field13 {
			return false
		}
	} else if this.Field13 != nil {
		return false
	} else if that1.Field13 != nil {
		return false
	}
	if this.Field14 != nil && that1.Field14 != nil {
		if *this.Field14 != *that1.Field14 {
			return false
		}
	} else if this.Field14 != nil {
		return false
	} else if that1.Field14 != nil {
		return false
	}
	if !bytes.Equal(this.Field15, that1.Field15) {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *NinEmbeddedStructUnion) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*NinEmbeddedStructUnion)
	if !ok {
		that2, ok := that.(NinEmbeddedStructUnion)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *NinEmbeddedStructUnion")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *NinEmbeddedStructUnion but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *NinEmbeddedStructUnion but is not nil && this == nil")
	}
	if !this.NidOptNative.Equal(that1.NidOptNative) {
		return fmt.Errorf("NidOptNative this(%v) Not Equal that(%v)", this.NidOptNative, that1.NidOptNative)
	}
	if !this.Field200.Equal(that1.Field200) {
		return fmt.Errorf("Field200 this(%v) Not Equal that(%v)", this.Field200, that1.Field200)
	}
	if this.Field210 != nil && that1.Field210 != nil {
		if *this.Field210 != *that1.Field210 {
			return fmt.Errorf("Field210 this(%v) Not Equal that(%v)", *this.Field210, *that1.Field210)
		}
	} else if this.Field210 != nil {
		return fmt.Errorf("this.Field210 == nil && that.Field210 != nil")
	} else if that1.Field210 != nil {
		return fmt.Errorf("Field210 this(%v) Not Equal that(%v)", this.Field210, that1.Field210)
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *NinEmbeddedStructUnion) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*NinEmbeddedStructUnion)
	if !ok {
		that2, ok := that.(NinEmbeddedStructUnion)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !this.NidOptNative.Equal(that1.NidOptNative) {
		return false
	}
	if !this.Field200.Equal(that1.Field200) {
		return false
	}
	if this.Field210 != nil && that1.Field210 != nil {
		if *this.Field210 != *that1.Field210 {
			return false
		}
	} else if this.Field210 != nil {
		return false
	} else if that1.Field210 != nil {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *NinNestedStructUnion) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*NinNestedStructUnion)
	if !ok {
		that2, ok := that.(NinNestedStructUnion)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *NinNestedStructUnion")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *NinNestedStructUnion but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *NinNestedStructUnion but is not nil && this == nil")
	}
	if !this.Field1.Equal(that1.Field1) {
		return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1)
	}
	if !this.Field2.Equal(that1.Field2) {
		return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2)
	}
	if !this.Field3.Equal(that1.Field3) {
		return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3)
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *NinNestedStructUnion) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*NinNestedStructUnion)
	if !ok {
		that2, ok := that.(NinNestedStructUnion)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !this.Field1.Equal(that1.Field1) {
		return false
	}
	if !this.Field2.Equal(that1.Field2) {
		return false
	}
	if !this.Field3.Equal(that1.Field3) {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *Tree) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*Tree)
	if !ok {
		that2, ok := that.(Tree)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *Tree")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *Tree but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *Tree but is not nil && this == nil")
	}
	if !this.Or.Equal(that1.Or) {
		return fmt.Errorf("Or this(%v) Not Equal that(%v)", this.Or, that1.Or)
	}
	if !this.And.Equal(that1.And) {
		return fmt.Errorf("And this(%v) Not Equal that(%v)", this.And, that1.And)
	}
	if !this.Leaf.Equal(that1.Leaf) {
		return fmt.Errorf("Leaf this(%v) Not Equal that(%v)", this.Leaf, that1.Leaf)
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *Tree) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*Tree)
	if !ok {
		that2, ok := that.(Tree)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !this.Or.Equal(that1.Or) {
		return false
	}
	if !this.And.Equal(that1.And) {
		return false
	}
	if !this.Leaf.Equal(that1.Leaf) {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *OrBranch) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*OrBranch)
	if !ok {
		that2, ok := that.(OrBranch)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *OrBranch")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *OrBranch but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *OrBranch but is not nil && this == nil")
	}
	if !this.Left.Equal(&that1.Left) {
		return fmt.Errorf("Left this(%v) Not Equal that(%v)", this.Left, that1.Left)
	}
	if !this.Right.Equal(&that1.Right) {
		return fmt.Errorf("Right this(%v) Not Equal that(%v)", this.Right, that1.Right)
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *OrBranch) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*OrBranch)
	if !ok {
		that2, ok := that.(OrBranch)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !this.Left.Equal(&that1.Left) {
		return false
	}
	if !this.Right.Equal(&that1.Right) {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *AndBranch) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*AndBranch)
	if !ok {
		that2, ok := that.(AndBranch)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *AndBranch")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *AndBranch but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *AndBranch but is not nil && this == nil")
	}
	if !this.Left.Equal(&that1.Left) {
		return fmt.Errorf("Left this(%v) Not Equal that(%v)", this.Left, that1.Left)
	}
	if !this.Right.Equal(&that1.Right) {
		return fmt.Errorf("Right this(%v) Not Equal that(%v)", this.Right, that1.Right)
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *AndBranch) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*AndBranch)
	if !ok {
		that2, ok := that.(AndBranch)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !this.Left.Equal(&that1.Left) {
		return false
	}
	if !this.Right.Equal(&that1.Right) {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *Leaf) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*Leaf)
	if !ok {
		that2, ok := that.(Leaf)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *Leaf")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *Leaf but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *Leaf but is not nil && this == nil")
	}
	if this.Value != that1.Value {
		return fmt.Errorf("Value this(%v) Not Equal that(%v)", this.Value, that1.Value)
	}
	if this.StrValue != that1.StrValue {
		return fmt.Errorf("StrValue this(%v) Not Equal that(%v)", this.StrValue, that1.StrValue)
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *Leaf) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*Leaf)
	if !ok {
		that2, ok := that.(Leaf)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Value != that1.Value {
		return false
	}
	if this.StrValue != that1.StrValue {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *DeepTree) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*DeepTree)
	if !ok {
		that2, ok := that.(DeepTree)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *DeepTree")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *DeepTree but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *DeepTree but is not nil && this == nil")
	}
	if !this.Down.Equal(that1.Down) {
		return fmt.Errorf("Down this(%v) Not Equal that(%v)", this.Down, that1.Down)
	}
	if !this.And.Equal(that1.And) {
		return fmt.Errorf("And this(%v) Not Equal that(%v)", this.And, that1.And)
	}
	if !this.Leaf.Equal(that1.Leaf) {
		return fmt.Errorf("Leaf this(%v) Not Equal that(%v)", this.Leaf, that1.Leaf)
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *DeepTree) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*DeepTree)
	if !ok {
		that2, ok := that.(DeepTree)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !this.Down.Equal(that1.Down) {
		return false
	}
	if !this.And.Equal(that1.And) {
		return false
	}
	if !this.Leaf.Equal(that1.Leaf) {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *ADeepBranch) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*ADeepBranch)
	if !ok {
		that2, ok := that.(ADeepBranch)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *ADeepBranch")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *ADeepBranch but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *ADeepBranch but is not nil && this == nil")
	}
	if !this.Down.Equal(&that1.Down) {
		return fmt.Errorf("Down this(%v) Not Equal that(%v)", this.Down, that1.Down)
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *ADeepBranch) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*ADeepBranch)
	if !ok {
		that2, ok := that.(ADeepBranch)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !this.Down.Equal(&that1.Down) {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *AndDeepBranch) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*AndDeepBranch)
	if !ok {
		that2, ok := that.(AndDeepBranch)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *AndDeepBranch")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *AndDeepBranch but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *AndDeepBranch but is not nil && this == nil")
	}
	if !this.Left.Equal(&that1.Left) {
		return fmt.Errorf("Left this(%v) Not Equal that(%v)", this.Left, that1.Left)
	}
	if !this.Right.Equal(&that1.Right) {
		return fmt.Errorf("Right this(%v) Not Equal that(%v)", this.Right, that1.Right)
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *AndDeepBranch) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*AndDeepBranch)
	if !ok {
		that2, ok := that.(AndDeepBranch)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !this.Left.Equal(&that1.Left) {
		return false
	}
	if !this.Right.Equal(&that1.Right) {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *DeepLeaf) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*DeepLeaf)
	if !ok {
		that2, ok := that.(DeepLeaf)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *DeepLeaf")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *DeepLeaf but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *DeepLeaf but is not nil && this == nil")
	}
	if !this.Tree.Equal(&that1.Tree) {
		return fmt.Errorf("Tree this(%v) Not Equal that(%v)", this.Tree, that1.Tree)
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *DeepLeaf) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*DeepLeaf)
	if !ok {
		that2, ok := that.(DeepLeaf)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !this.Tree.Equal(&that1.Tree) {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *Nil) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*Nil)
	if !ok {
		that2, ok := that.(Nil)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *Nil")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *Nil but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *Nil but is not nil && this == nil")
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *Nil) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*Nil)
	if !ok {
		that2, ok := that.(Nil)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *NidOptEnum) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*NidOptEnum)
	if !ok {
		that2, ok := that.(NidOptEnum)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *NidOptEnum")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *NidOptEnum but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *NidOptEnum but is not nil && this == nil")
	}
	if this.Field1 != that1.Field1 {
		return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1)
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *NidOptEnum) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*NidOptEnum)
	if !ok {
		that2, ok := that.(NidOptEnum)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Field1 != that1.Field1 {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *NinOptEnum) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*NinOptEnum)
	if !ok {
		that2, ok := that.(NinOptEnum)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *NinOptEnum")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *NinOptEnum but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *NinOptEnum but is not nil && this == nil")
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1)
		}
	} else if this.Field1 != nil {
		return fmt.Errorf("this.Field1 == nil && that.Field1 != nil")
	} else if that1.Field1 != nil {
		return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1)
	}
	if this.Field2 != nil && that1.Field2 != nil {
		if *this.Field2 != *that1.Field2 {
			return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2)
		}
	} else if this.Field2 != nil {
		return fmt.Errorf("this.Field2 == nil && that.Field2 != nil")
	} else if that1.Field2 != nil {
		return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2)
	}
	if this.Field3 != nil && that1.Field3 != nil {
		if *this.Field3 != *that1.Field3 {
			return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", *this.Field3, *that1.Field3)
		}
	} else if this.Field3 != nil {
		return fmt.Errorf("this.Field3 == nil && that.Field3 != nil")
	} else if that1.Field3 != nil {
		return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3)
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *NinOptEnum) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*NinOptEnum)
	if !ok {
		that2, ok := that.(NinOptEnum)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			return false
		}
	} else if this.Field1 != nil {
		return false
	} else if that1.Field1 != nil {
		return false
	}
	if this.Field2 != nil && that1.Field2 != nil {
		if *this.Field2 != *that1.Field2 {
			return false
		}
	} else if this.Field2 != nil {
		return false
	} else if that1.Field2 != nil {
		return false
	}
	if this.Field3 != nil && that1.Field3 != nil {
		if *this.Field3 != *that1.Field3 {
			return false
		}
	} else if this.Field3 != nil {
		return false
	} else if that1.Field3 != nil {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *NidRepEnum) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*NidRepEnum)
	if !ok {
		that2, ok := that.(NidRepEnum)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *NidRepEnum")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *NidRepEnum but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *NidRepEnum but is not nil && this == nil")
	}
	if len(this.Field1) != len(that1.Field1) {
		return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1))
	}
	for i := range this.Field1 {
		if this.Field1[i] != that1.Field1[i] {
			return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i])
		}
	}
	if len(this.Field2) != len(that1.Field2) {
		return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", len(this.Field2), len(that1.Field2))
	}
	for i := range this.Field2 {
		if this.Field2[i] != that1.Field2[i] {
			return fmt.Errorf("Field2 this[%v](%v) Not Equal that[%v](%v)", i, this.Field2[i], i, that1.Field2[i])
		}
	}
	if len(this.Field3) != len(that1.Field3) {
		return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", len(this.Field3), len(that1.Field3))
	}
	for i := range this.Field3 {
		if this.Field3[i] != that1.Field3[i] {
			return fmt.Errorf("Field3 this[%v](%v) Not Equal that[%v](%v)", i, this.Field3[i], i, that1.Field3[i])
		}
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *NidRepEnum) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*NidRepEnum)
	if !ok {
		that2, ok := that.(NidRepEnum)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if len(this.Field1) != len(that1.Field1) {
		return false
	}
	for i := range this.Field1 {
		if this.Field1[i] != that1.Field1[i] {
			return false
		}
	}
	if len(this.Field2) != len(that1.Field2) {
		return false
	}
	for i := range this.Field2 {
		if this.Field2[i] != that1.Field2[i] {
			return false
		}
	}
	if len(this.Field3) != len(that1.Field3) {
		return false
	}
	for i := range this.Field3 {
		if this.Field3[i] != that1.Field3[i] {
			return false
		}
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *NinRepEnum) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*NinRepEnum)
	if !ok {
		that2, ok := that.(NinRepEnum)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *NinRepEnum")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *NinRepEnum but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *NinRepEnum but is not nil && this == nil")
	}
	if len(this.Field1) != len(that1.Field1) {
		return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1))
	}
	for i := range this.Field1 {
		if this.Field1[i] != that1.Field1[i] {
			return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i])
		}
	}
	if len(this.Field2) != len(that1.Field2) {
		return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", len(this.Field2), len(that1.Field2))
	}
	for i := range this.Field2 {
		if this.Field2[i] != that1.Field2[i] {
			return fmt.Errorf("Field2 this[%v](%v) Not Equal that[%v](%v)", i, this.Field2[i], i, that1.Field2[i])
		}
	}
	if len(this.Field3) != len(that1.Field3) {
		return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", len(this.Field3), len(that1.Field3))
	}
	for i := range this.Field3 {
		if this.Field3[i] != that1.Field3[i] {
			return fmt.Errorf("Field3 this[%v](%v) Not Equal that[%v](%v)", i, this.Field3[i], i, that1.Field3[i])
		}
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *NinRepEnum) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*NinRepEnum)
	if !ok {
		that2, ok := that.(NinRepEnum)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if len(this.Field1) != len(that1.Field1) {
		return false
	}
	for i := range this.Field1 {
		if this.Field1[i] != that1.Field1[i] {
			return false
		}
	}
	if len(this.Field2) != len(that1.Field2) {
		return false
	}
	for i := range this.Field2 {
		if this.Field2[i] != that1.Field2[i] {
			return false
		}
	}
	if len(this.Field3) != len(that1.Field3) {
		return false
	}
	for i := range this.Field3 {
		if this.Field3[i] != that1.Field3[i] {
			return false
		}
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *NinOptEnumDefault) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*NinOptEnumDefault)
	if !ok {
		that2, ok := that.(NinOptEnumDefault)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *NinOptEnumDefault")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *NinOptEnumDefault but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *NinOptEnumDefault but is not nil && this == nil")
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1)
		}
	} else if this.Field1 != nil {
		return fmt.Errorf("this.Field1 == nil && that.Field1 != nil")
	} else if that1.Field1 != nil {
		return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1)
	}
	if this.Field2 != nil && that1.Field2 != nil {
		if *this.Field2 != *that1.Field2 {
			return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2)
		}
	} else if this.Field2 != nil {
		return fmt.Errorf("this.Field2 == nil && that.Field2 != nil")
	} else if that1.Field2 != nil {
		return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2)
	}
	if this.Field3 != nil && that1.Field3 != nil {
		if *this.Field3 != *that1.Field3 {
			return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", *this.Field3, *that1.Field3)
		}
	} else if this.Field3 != nil {
		return fmt.Errorf("this.Field3 == nil && that.Field3 != nil")
	} else if that1.Field3 != nil {
		return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3)
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *NinOptEnumDefault) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*NinOptEnumDefault)
	if !ok {
		that2, ok := that.(NinOptEnumDefault)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			return false
		}
	} else if this.Field1 != nil {
		return false
	} else if that1.Field1 != nil {
		return false
	}
	if this.Field2 != nil && that1.Field2 != nil {
		if *this.Field2 != *that1.Field2 {
			return false
		}
	} else if this.Field2 != nil {
		return false
	} else if that1.Field2 != nil {
		return false
	}
	if this.Field3 != nil && that1.Field3 != nil {
		if *this.Field3 != *that1.Field3 {
			return false
		}
	} else if this.Field3 != nil {
		return false
	} else if that1.Field3 != nil {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *AnotherNinOptEnum) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*AnotherNinOptEnum)
	if !ok {
		that2, ok := that.(AnotherNinOptEnum)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *AnotherNinOptEnum")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *AnotherNinOptEnum but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *AnotherNinOptEnum but is not nil && this == nil")
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1)
		}
	} else if this.Field1 != nil {
		return fmt.Errorf("this.Field1 == nil && that.Field1 != nil")
	} else if that1.Field1 != nil {
		return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1)
	}
	if this.Field2 != nil && that1.Field2 != nil {
		if *this.Field2 != *that1.Field2 {
			return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2)
		}
	} else if this.Field2 != nil {
		return fmt.Errorf("this.Field2 == nil && that.Field2 != nil")
	} else if that1.Field2 != nil {
		return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2)
	}
	if this.Field3 != nil && that1.Field3 != nil {
		if *this.Field3 != *that1.Field3 {
			return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", *this.Field3, *that1.Field3)
		}
	} else if this.Field3 != nil {
		return fmt.Errorf("this.Field3 == nil && that.Field3 != nil")
	} else if that1.Field3 != nil {
		return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3)
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *AnotherNinOptEnum) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*AnotherNinOptEnum)
	if !ok {
		that2, ok := that.(AnotherNinOptEnum)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			return false
		}
	} else if this.Field1 != nil {
		return false
	} else if that1.Field1 != nil {
		return false
	}
	if this.Field2 != nil && that1.Field2 != nil {
		if *this.Field2 != *that1.Field2 {
			return false
		}
	} else if this.Field2 != nil {
		return false
	} else if that1.Field2 != nil {
		return false
	}
	if this.Field3 != nil && that1.Field3 != nil {
		if *this.Field3 != *that1.Field3 {
			return false
		}
	} else if this.Field3 != nil {
		return false
	} else if that1.Field3 != nil {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *AnotherNinOptEnumDefault) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*AnotherNinOptEnumDefault)
	if !ok {
		that2, ok := that.(AnotherNinOptEnumDefault)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *AnotherNinOptEnumDefault")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *AnotherNinOptEnumDefault but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *AnotherNinOptEnumDefault but is not nil && this == nil")
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1)
		}
	} else if this.Field1 != nil {
		return fmt.Errorf("this.Field1 == nil && that.Field1 != nil")
	} else if that1.Field1 != nil {
		return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1)
	}
	if this.Field2 != nil && that1.Field2 != nil {
		if *this.Field2 != *that1.Field2 {
			return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2)
		}
	} else if this.Field2 != nil {
		return fmt.Errorf("this.Field2 == nil && that.Field2 != nil")
	} else if that1.Field2 != nil {
		return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2)
	}
	if this.Field3 != nil && that1.Field3 != nil {
		if *this.Field3 != *that1.Field3 {
			return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", *this.Field3, *that1.Field3)
		}
	} else if this.Field3 != nil {
		return fmt.Errorf("this.Field3 == nil && that.Field3 != nil")
	} else if that1.Field3 != nil {
		return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3)
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *AnotherNinOptEnumDefault) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*AnotherNinOptEnumDefault)
	if !ok {
		that2, ok := that.(AnotherNinOptEnumDefault)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			return false
		}
	} else if this.Field1 != nil {
		return false
	} else if that1.Field1 != nil {
		return false
	}
	if this.Field2 != nil && that1.Field2 != nil {
		if *this.Field2 != *that1.Field2 {
			return false
		}
	} else if this.Field2 != nil {
		return false
	} else if that1.Field2 != nil {
		return false
	}
	if this.Field3 != nil && that1.Field3 != nil {
		if *this.Field3 != *that1.Field3 {
			return false
		}
	} else if this.Field3 != nil {
		return false
	} else if that1.Field3 != nil {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *Timer) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*Timer)
	if !ok {
		that2, ok := that.(Timer)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *Timer")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *Timer but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *Timer but is not nil && this == nil")
	}
	if this.Time1 != that1.Time1 {
		return fmt.Errorf("Time1 this(%v) Not Equal that(%v)", this.Time1, that1.Time1)
	}
	if this.Time2 != that1.Time2 {
		return fmt.Errorf("Time2 this(%v) Not Equal that(%v)", this.Time2, that1.Time2)
	}
	if !bytes.Equal(this.Data, that1.Data) {
		return fmt.Errorf("Data this(%v) Not Equal that(%v)", this.Data, that1.Data)
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *Timer) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*Timer)
	if !ok {
		that2, ok := that.(Timer)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Time1 != that1.Time1 {
		return false
	}
	if this.Time2 != that1.Time2 {
		return false
	}
	if !bytes.Equal(this.Data, that1.Data) {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *MyExtendable) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*MyExtendable)
	if !ok {
		that2, ok := that.(MyExtendable)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *MyExtendable")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *MyExtendable but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *MyExtendable but is not nil && this == nil")
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1)
		}
	} else if this.Field1 != nil {
		return fmt.Errorf("this.Field1 == nil && that.Field1 != nil")
	} else if that1.Field1 != nil {
		return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1)
	}
	thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this)
	thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1)
	for k, v := range thismap {
		if v2, ok := thatmap[k]; ok {
			if !v.Equal(&v2) {
				return fmt.Errorf("XXX_InternalExtensions this[%v](%v) Not Equal that[%v](%v)", k, thismap[k], k, thatmap[k])
			}
		} else {
			return fmt.Errorf("XXX_InternalExtensions[%v] Not In that", k)
		}
	}
	for k := range thatmap {
		if _, ok := thismap[k]; !ok {
			return fmt.Errorf("XXX_InternalExtensions[%v] Not In this", k)
		}
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *MyExtendable) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*MyExtendable)
	if !ok {
		that2, ok := that.(MyExtendable)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			return false
		}
	} else if this.Field1 != nil {
		return false
	} else if that1.Field1 != nil {
		return false
	}
	thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this)
	thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1)
	for k, v := range thismap {
		if v2, ok := thatmap[k]; ok {
			if !v.Equal(&v2) {
				return false
			}
		} else {
			return false
		}
	}
	for k := range thatmap {
		if _, ok := thismap[k]; !ok {
			return false
		}
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *OtherExtenable) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*OtherExtenable)
	if !ok {
		that2, ok := that.(OtherExtenable)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *OtherExtenable")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *OtherExtenable but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *OtherExtenable but is not nil && this == nil")
	}
	if this.Field2 != nil && that1.Field2 != nil {
		if *this.Field2 != *that1.Field2 {
			return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2)
		}
	} else if this.Field2 != nil {
		return fmt.Errorf("this.Field2 == nil && that.Field2 != nil")
	} else if that1.Field2 != nil {
		return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2)
	}
	if this.Field13 != nil && that1.Field13 != nil {
		if *this.Field13 != *that1.Field13 {
			return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", *this.Field13, *that1.Field13)
		}
	} else if this.Field13 != nil {
		return fmt.Errorf("this.Field13 == nil && that.Field13 != nil")
	} else if that1.Field13 != nil {
		return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", this.Field13, that1.Field13)
	}
	if !this.M.Equal(that1.M) {
		return fmt.Errorf("M this(%v) Not Equal that(%v)", this.M, that1.M)
	}
	thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this)
	thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1)
	for k, v := range thismap {
		if v2, ok := thatmap[k]; ok {
			if !v.Equal(&v2) {
				return fmt.Errorf("XXX_InternalExtensions this[%v](%v) Not Equal that[%v](%v)", k, thismap[k], k, thatmap[k])
			}
		} else {
			return fmt.Errorf("XXX_InternalExtensions[%v] Not In that", k)
		}
	}
	for k := range thatmap {
		if _, ok := thismap[k]; !ok {
			return fmt.Errorf("XXX_InternalExtensions[%v] Not In this", k)
		}
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *OtherExtenable) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*OtherExtenable)
	if !ok {
		that2, ok := that.(OtherExtenable)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Field2 != nil && that1.Field2 != nil {
		if *this.Field2 != *that1.Field2 {
			return false
		}
	} else if this.Field2 != nil {
		return false
	} else if that1.Field2 != nil {
		return false
	}
	if this.Field13 != nil && that1.Field13 != nil {
		if *this.Field13 != *that1.Field13 {
			return false
		}
	} else if this.Field13 != nil {
		return false
	} else if that1.Field13 != nil {
		return false
	}
	if !this.M.Equal(that1.M) {
		return false
	}
	thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this)
	thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1)
	for k, v := range thismap {
		if v2, ok := thatmap[k]; ok {
			if !v.Equal(&v2) {
				return false
			}
		} else {
			return false
		}
	}
	for k := range thatmap {
		if _, ok := thismap[k]; !ok {
			return false
		}
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *NestedDefinition) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*NestedDefinition)
	if !ok {
		that2, ok := that.(NestedDefinition)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *NestedDefinition")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *NestedDefinition but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *NestedDefinition but is not nil && this == nil")
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1)
		}
	} else if this.Field1 != nil {
		return fmt.Errorf("this.Field1 == nil && that.Field1 != nil")
	} else if that1.Field1 != nil {
		return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1)
	}
	if this.EnumField != nil && that1.EnumField != nil {
		if *this.EnumField != *that1.EnumField {
			return fmt.Errorf("EnumField this(%v) Not Equal that(%v)", *this.EnumField, *that1.EnumField)
		}
	} else if this.EnumField != nil {
		return fmt.Errorf("this.EnumField == nil && that.EnumField != nil")
	} else if that1.EnumField != nil {
		return fmt.Errorf("EnumField this(%v) Not Equal that(%v)", this.EnumField, that1.EnumField)
	}
	if !this.NNM.Equal(that1.NNM) {
		return fmt.Errorf("NNM this(%v) Not Equal that(%v)", this.NNM, that1.NNM)
	}
	if !this.NM.Equal(that1.NM) {
		return fmt.Errorf("NM this(%v) Not Equal that(%v)", this.NM, that1.NM)
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *NestedDefinition) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*NestedDefinition)
	if !ok {
		that2, ok := that.(NestedDefinition)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			return false
		}
	} else if this.Field1 != nil {
		return false
	} else if that1.Field1 != nil {
		return false
	}
	if this.EnumField != nil && that1.EnumField != nil {
		if *this.EnumField != *that1.EnumField {
			return false
		}
	} else if this.EnumField != nil {
		return false
	} else if that1.EnumField != nil {
		return false
	}
	if !this.NNM.Equal(that1.NNM) {
		return false
	}
	if !this.NM.Equal(that1.NM) {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *NestedDefinition_NestedMessage) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*NestedDefinition_NestedMessage)
	if !ok {
		that2, ok := that.(NestedDefinition_NestedMessage)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *NestedDefinition_NestedMessage")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *NestedDefinition_NestedMessage but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *NestedDefinition_NestedMessage but is not nil && this == nil")
	}
	if this.NestedField1 != nil && that1.NestedField1 != nil {
		if *this.NestedField1 != *that1.NestedField1 {
			return fmt.Errorf("NestedField1 this(%v) Not Equal that(%v)", *this.NestedField1, *that1.NestedField1)
		}
	} else if this.NestedField1 != nil {
		return fmt.Errorf("this.NestedField1 == nil && that.NestedField1 != nil")
	} else if that1.NestedField1 != nil {
		return fmt.Errorf("NestedField1 this(%v) Not Equal that(%v)", this.NestedField1, that1.NestedField1)
	}
	if !this.NNM.Equal(that1.NNM) {
		return fmt.Errorf("NNM this(%v) Not Equal that(%v)", this.NNM, that1.NNM)
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *NestedDefinition_NestedMessage) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*NestedDefinition_NestedMessage)
	if !ok {
		that2, ok := that.(NestedDefinition_NestedMessage)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.NestedField1 != nil && that1.NestedField1 != nil {
		if *this.NestedField1 != *that1.NestedField1 {
			return false
		}
	} else if this.NestedField1 != nil {
		return false
	} else if that1.NestedField1 != nil {
		return false
	}
	if !this.NNM.Equal(that1.NNM) {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *NestedDefinition_NestedMessage_NestedNestedMsg) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*NestedDefinition_NestedMessage_NestedNestedMsg)
	if !ok {
		that2, ok := that.(NestedDefinition_NestedMessage_NestedNestedMsg)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *NestedDefinition_NestedMessage_NestedNestedMsg")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *NestedDefinition_NestedMessage_NestedNestedMsg but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *NestedDefinition_NestedMessage_NestedNestedMsg but is not nil && this == nil")
	}
	if this.NestedNestedField1 != nil && that1.NestedNestedField1 != nil {
		if *this.NestedNestedField1 != *that1.NestedNestedField1 {
			return fmt.Errorf("NestedNestedField1 this(%v) Not Equal that(%v)", *this.NestedNestedField1, *that1.NestedNestedField1)
		}
	} else if this.NestedNestedField1 != nil {
		return fmt.Errorf("this.NestedNestedField1 == nil && that.NestedNestedField1 != nil")
	} else if that1.NestedNestedField1 != nil {
		return fmt.Errorf("NestedNestedField1 this(%v) Not Equal that(%v)", this.NestedNestedField1, that1.NestedNestedField1)
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *NestedDefinition_NestedMessage_NestedNestedMsg) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*NestedDefinition_NestedMessage_NestedNestedMsg)
	if !ok {
		that2, ok := that.(NestedDefinition_NestedMessage_NestedNestedMsg)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.NestedNestedField1 != nil && that1.NestedNestedField1 != nil {
		if *this.NestedNestedField1 != *that1.NestedNestedField1 {
			return false
		}
	} else if this.NestedNestedField1 != nil {
		return false
	} else if that1.NestedNestedField1 != nil {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *NestedScope) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*NestedScope)
	if !ok {
		that2, ok := that.(NestedScope)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *NestedScope")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *NestedScope but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *NestedScope but is not nil && this == nil")
	}
	if !this.A.Equal(that1.A) {
		return fmt.Errorf("A this(%v) Not Equal that(%v)", this.A, that1.A)
	}
	if this.B != nil && that1.B != nil {
		if *this.B != *that1.B {
			return fmt.Errorf("B this(%v) Not Equal that(%v)", *this.B, *that1.B)
		}
	} else if this.B != nil {
		return fmt.Errorf("this.B == nil && that.B != nil")
	} else if that1.B != nil {
		return fmt.Errorf("B this(%v) Not Equal that(%v)", this.B, that1.B)
	}
	if !this.C.Equal(that1.C) {
		return fmt.Errorf("C this(%v) Not Equal that(%v)", this.C, that1.C)
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *NestedScope) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*NestedScope)
	if !ok {
		that2, ok := that.(NestedScope)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !this.A.Equal(that1.A) {
		return false
	}
	if this.B != nil && that1.B != nil {
		if *this.B != *that1.B {
			return false
		}
	} else if this.B != nil {
		return false
	} else if that1.B != nil {
		return false
	}
	if !this.C.Equal(that1.C) {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *NinOptNativeDefault) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*NinOptNativeDefault)
	if !ok {
		that2, ok := that.(NinOptNativeDefault)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *NinOptNativeDefault")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *NinOptNativeDefault but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *NinOptNativeDefault but is not nil && this == nil")
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1)
		}
	} else if this.Field1 != nil {
		return fmt.Errorf("this.Field1 == nil && that.Field1 != nil")
	} else if that1.Field1 != nil {
		return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1)
	}
	if this.Field2 != nil && that1.Field2 != nil {
		if *this.Field2 != *that1.Field2 {
			return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2)
		}
	} else if this.Field2 != nil {
		return fmt.Errorf("this.Field2 == nil && that.Field2 != nil")
	} else if that1.Field2 != nil {
		return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2)
	}
	if this.Field3 != nil && that1.Field3 != nil {
		if *this.Field3 != *that1.Field3 {
			return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", *this.Field3, *that1.Field3)
		}
	} else if this.Field3 != nil {
		return fmt.Errorf("this.Field3 == nil && that.Field3 != nil")
	} else if that1.Field3 != nil {
		return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3)
	}
	if this.Field4 != nil && that1.Field4 != nil {
		if *this.Field4 != *that1.Field4 {
			return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", *this.Field4, *that1.Field4)
		}
	} else if this.Field4 != nil {
		return fmt.Errorf("this.Field4 == nil && that.Field4 != nil")
	} else if that1.Field4 != nil {
		return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", this.Field4, that1.Field4)
	}
	if this.Field5 != nil && that1.Field5 != nil {
		if *this.Field5 != *that1.Field5 {
			return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", *this.Field5, *that1.Field5)
		}
	} else if this.Field5 != nil {
		return fmt.Errorf("this.Field5 == nil && that.Field5 != nil")
	} else if that1.Field5 != nil {
		return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", this.Field5, that1.Field5)
	}
	if this.Field6 != nil && that1.Field6 != nil {
		if *this.Field6 != *that1.Field6 {
			return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", *this.Field6, *that1.Field6)
		}
	} else if this.Field6 != nil {
		return fmt.Errorf("this.Field6 == nil && that.Field6 != nil")
	} else if that1.Field6 != nil {
		return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", this.Field6, that1.Field6)
	}
	if this.Field7 != nil && that1.Field7 != nil {
		if *this.Field7 != *that1.Field7 {
			return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", *this.Field7, *that1.Field7)
		}
	} else if this.Field7 != nil {
		return fmt.Errorf("this.Field7 == nil && that.Field7 != nil")
	} else if that1.Field7 != nil {
		return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", this.Field7, that1.Field7)
	}
	if this.Field8 != nil && that1.Field8 != nil {
		if *this.Field8 != *that1.Field8 {
			return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", *this.Field8, *that1.Field8)
		}
	} else if this.Field8 != nil {
		return fmt.Errorf("this.Field8 == nil && that.Field8 != nil")
	} else if that1.Field8 != nil {
		return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", this.Field8, that1.Field8)
	}
	if this.Field9 != nil && that1.Field9 != nil {
		if *this.Field9 != *that1.Field9 {
			return fmt.Errorf("Field9 this(%v) Not Equal that(%v)", *this.Field9, *that1.Field9)
		}
	} else if this.Field9 != nil {
		return fmt.Errorf("this.Field9 == nil && that.Field9 != nil")
	} else if that1.Field9 != nil {
		return fmt.Errorf("Field9 this(%v) Not Equal that(%v)", this.Field9, that1.Field9)
	}
	if this.Field10 != nil && that1.Field10 != nil {
		if *this.Field10 != *that1.Field10 {
			return fmt.Errorf("Field10 this(%v) Not Equal that(%v)", *this.Field10, *that1.Field10)
		}
	} else if this.Field10 != nil {
		return fmt.Errorf("this.Field10 == nil && that.Field10 != nil")
	} else if that1.Field10 != nil {
		return fmt.Errorf("Field10 this(%v) Not Equal that(%v)", this.Field10, that1.Field10)
	}
	if this.Field11 != nil && that1.Field11 != nil {
		if *this.Field11 != *that1.Field11 {
			return fmt.Errorf("Field11 this(%v) Not Equal that(%v)", *this.Field11, *that1.Field11)
		}
	} else if this.Field11 != nil {
		return fmt.Errorf("this.Field11 == nil && that.Field11 != nil")
	} else if that1.Field11 != nil {
		return fmt.Errorf("Field11 this(%v) Not Equal that(%v)", this.Field11, that1.Field11)
	}
	if this.Field12 != nil && that1.Field12 != nil {
		if *this.Field12 != *that1.Field12 {
			return fmt.Errorf("Field12 this(%v) Not Equal that(%v)", *this.Field12, *that1.Field12)
		}
	} else if this.Field12 != nil {
		return fmt.Errorf("this.Field12 == nil && that.Field12 != nil")
	} else if that1.Field12 != nil {
		return fmt.Errorf("Field12 this(%v) Not Equal that(%v)", this.Field12, that1.Field12)
	}
	if this.Field13 != nil && that1.Field13 != nil {
		if *this.Field13 != *that1.Field13 {
			return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", *this.Field13, *that1.Field13)
		}
	} else if this.Field13 != nil {
		return fmt.Errorf("this.Field13 == nil && that.Field13 != nil")
	} else if that1.Field13 != nil {
		return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", this.Field13, that1.Field13)
	}
	if this.Field14 != nil && that1.Field14 != nil {
		if *this.Field14 != *that1.Field14 {
			return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", *this.Field14, *that1.Field14)
		}
	} else if this.Field14 != nil {
		return fmt.Errorf("this.Field14 == nil && that.Field14 != nil")
	} else if that1.Field14 != nil {
		return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", this.Field14, that1.Field14)
	}
	if !bytes.Equal(this.Field15, that1.Field15) {
		return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", this.Field15, that1.Field15)
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *NinOptNativeDefault) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*NinOptNativeDefault)
	if !ok {
		that2, ok := that.(NinOptNativeDefault)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			return false
		}
	} else if this.Field1 != nil {
		return false
	} else if that1.Field1 != nil {
		return false
	}
	if this.Field2 != nil && that1.Field2 != nil {
		if *this.Field2 != *that1.Field2 {
			return false
		}
	} else if this.Field2 != nil {
		return false
	} else if that1.Field2 != nil {
		return false
	}
	if this.Field3 != nil && that1.Field3 != nil {
		if *this.Field3 != *that1.Field3 {
			return false
		}
	} else if this.Field3 != nil {
		return false
	} else if that1.Field3 != nil {
		return false
	}
	if this.Field4 != nil && that1.Field4 != nil {
		if *this.Field4 != *that1.Field4 {
			return false
		}
	} else if this.Field4 != nil {
		return false
	} else if that1.Field4 != nil {
		return false
	}
	if this.Field5 != nil && that1.Field5 != nil {
		if *this.Field5 != *that1.Field5 {
			return false
		}
	} else if this.Field5 != nil {
		return false
	} else if that1.Field5 != nil {
		return false
	}
	if this.Field6 != nil && that1.Field6 != nil {
		if *this.Field6 != *that1.Field6 {
			return false
		}
	} else if this.Field6 != nil {
		return false
	} else if that1.Field6 != nil {
		return false
	}
	if this.Field7 != nil && that1.Field7 != nil {
		if *this.Field7 != *that1.Field7 {
			return false
		}
	} else if this.Field7 != nil {
		return false
	} else if that1.Field7 != nil {
		return false
	}
	if this.Field8 != nil && that1.Field8 != nil {
		if *this.Field8 != *that1.Field8 {
			return false
		}
	} else if this.Field8 != nil {
		return false
	} else if that1.Field8 != nil {
		return false
	}
	if this.Field9 != nil && that1.Field9 != nil {
		if *this.Field9 != *that1.Field9 {
			return false
		}
	} else if this.Field9 != nil {
		return false
	} else if that1.Field9 != nil {
		return false
	}
	if this.Field10 != nil && that1.Field10 != nil {
		if *this.Field10 != *that1.Field10 {
			return false
		}
	} else if this.Field10 != nil {
		return false
	} else if that1.Field10 != nil {
		return false
	}
	if this.Field11 != nil && that1.Field11 != nil {
		if *this.Field11 != *that1.Field11 {
			return false
		}
	} else if this.Field11 != nil {
		return false
	} else if that1.Field11 != nil {
		return false
	}
	if this.Field12 != nil && that1.Field12 != nil {
		if *this.Field12 != *that1.Field12 {
			return false
		}
	} else if this.Field12 != nil {
		return false
	} else if that1.Field12 != nil {
		return false
	}
	if this.Field13 != nil && that1.Field13 != nil {
		if *this.Field13 != *that1.Field13 {
			return false
		}
	} else if this.Field13 != nil {
		return false
	} else if that1.Field13 != nil {
		return false
	}
	if this.Field14 != nil && that1.Field14 != nil {
		if *this.Field14 != *that1.Field14 {
			return false
		}
	} else if this.Field14 != nil {
		return false
	} else if that1.Field14 != nil {
		return false
	}
	if !bytes.Equal(this.Field15, that1.Field15) {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *CustomContainer) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*CustomContainer)
	if !ok {
		that2, ok := that.(CustomContainer)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *CustomContainer")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *CustomContainer but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *CustomContainer but is not nil && this == nil")
	}
	if !this.CustomStruct.Equal(&that1.CustomStruct) {
		return fmt.Errorf("CustomStruct this(%v) Not Equal that(%v)", this.CustomStruct, that1.CustomStruct)
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *CustomContainer) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*CustomContainer)
	if !ok {
		that2, ok := that.(CustomContainer)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !this.CustomStruct.Equal(&that1.CustomStruct) {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *CustomNameNidOptNative) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*CustomNameNidOptNative)
	if !ok {
		that2, ok := that.(CustomNameNidOptNative)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *CustomNameNidOptNative")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *CustomNameNidOptNative but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *CustomNameNidOptNative but is not nil && this == nil")
	}
	if this.FieldA != that1.FieldA {
		return fmt.Errorf("FieldA this(%v) Not Equal that(%v)", this.FieldA, that1.FieldA)
	}
	if this.FieldB != that1.FieldB {
		return fmt.Errorf("FieldB this(%v) Not Equal that(%v)", this.FieldB, that1.FieldB)
	}
	if this.FieldC != that1.FieldC {
		return fmt.Errorf("FieldC this(%v) Not Equal that(%v)", this.FieldC, that1.FieldC)
	}
	if this.FieldD != that1.FieldD {
		return fmt.Errorf("FieldD this(%v) Not Equal that(%v)", this.FieldD, that1.FieldD)
	}
	if this.FieldE != that1.FieldE {
		return fmt.Errorf("FieldE this(%v) Not Equal that(%v)", this.FieldE, that1.FieldE)
	}
	if this.FieldF != that1.FieldF {
		return fmt.Errorf("FieldF this(%v) Not Equal that(%v)", this.FieldF, that1.FieldF)
	}
	if this.FieldG != that1.FieldG {
		return fmt.Errorf("FieldG this(%v) Not Equal that(%v)", this.FieldG, that1.FieldG)
	}
	if this.FieldH != that1.FieldH {
		return fmt.Errorf("FieldH this(%v) Not Equal that(%v)", this.FieldH, that1.FieldH)
	}
	if this.FieldI != that1.FieldI {
		return fmt.Errorf("FieldI this(%v) Not Equal that(%v)", this.FieldI, that1.FieldI)
	}
	if this.FieldJ != that1.FieldJ {
		return fmt.Errorf("FieldJ this(%v) Not Equal that(%v)", this.FieldJ, that1.FieldJ)
	}
	if this.FieldK != that1.FieldK {
		return fmt.Errorf("FieldK this(%v) Not Equal that(%v)", this.FieldK, that1.FieldK)
	}
	if this.FieldL != that1.FieldL {
		return fmt.Errorf("FieldL this(%v) Not Equal that(%v)", this.FieldL, that1.FieldL)
	}
	if this.FieldM != that1.FieldM {
		return fmt.Errorf("FieldM this(%v) Not Equal that(%v)", this.FieldM, that1.FieldM)
	}
	if this.FieldN != that1.FieldN {
		return fmt.Errorf("FieldN this(%v) Not Equal that(%v)", this.FieldN, that1.FieldN)
	}
	if !bytes.Equal(this.FieldO, that1.FieldO) {
		return fmt.Errorf("FieldO this(%v) Not Equal that(%v)", this.FieldO, that1.FieldO)
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *CustomNameNidOptNative) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*CustomNameNidOptNative)
	if !ok {
		that2, ok := that.(CustomNameNidOptNative)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.FieldA != that1.FieldA {
		return false
	}
	if this.FieldB != that1.FieldB {
		return false
	}
	if this.FieldC != that1.FieldC {
		return false
	}
	if this.FieldD != that1.FieldD {
		return false
	}
	if this.FieldE != that1.FieldE {
		return false
	}
	if this.FieldF != that1.FieldF {
		return false
	}
	if this.FieldG != that1.FieldG {
		return false
	}
	if this.FieldH != that1.FieldH {
		return false
	}
	if this.FieldI != that1.FieldI {
		return false
	}
	if this.FieldJ != that1.FieldJ {
		return false
	}
	if this.FieldK != that1.FieldK {
		return false
	}
	if this.FieldL != that1.FieldL {
		return false
	}
	if this.FieldM != that1.FieldM {
		return false
	}
	if this.FieldN != that1.FieldN {
		return false
	}
	if !bytes.Equal(this.FieldO, that1.FieldO) {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *CustomNameNinOptNative) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*CustomNameNinOptNative)
	if !ok {
		that2, ok := that.(CustomNameNinOptNative)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *CustomNameNinOptNative")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *CustomNameNinOptNative but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *CustomNameNinOptNative but is not nil && this == nil")
	}
	if this.FieldA != nil && that1.FieldA != nil {
		if *this.FieldA != *that1.FieldA {
			return fmt.Errorf("FieldA this(%v) Not Equal that(%v)", *this.FieldA, *that1.FieldA)
		}
	} else if this.FieldA != nil {
		return fmt.Errorf("this.FieldA == nil && that.FieldA != nil")
	} else if that1.FieldA != nil {
		return fmt.Errorf("FieldA this(%v) Not Equal that(%v)", this.FieldA, that1.FieldA)
	}
	if this.FieldB != nil && that1.FieldB != nil {
		if *this.FieldB != *that1.FieldB {
			return fmt.Errorf("FieldB this(%v) Not Equal that(%v)", *this.FieldB, *that1.FieldB)
		}
	} else if this.FieldB != nil {
		return fmt.Errorf("this.FieldB == nil && that.FieldB != nil")
	} else if that1.FieldB != nil {
		return fmt.Errorf("FieldB this(%v) Not Equal that(%v)", this.FieldB, that1.FieldB)
	}
	if this.FieldC != nil && that1.FieldC != nil {
		if *this.FieldC != *that1.FieldC {
			return fmt.Errorf("FieldC this(%v) Not Equal that(%v)", *this.FieldC, *that1.FieldC)
		}
	} else if this.FieldC != nil {
		return fmt.Errorf("this.FieldC == nil && that.FieldC != nil")
	} else if that1.FieldC != nil {
		return fmt.Errorf("FieldC this(%v) Not Equal that(%v)", this.FieldC, that1.FieldC)
	}
	if this.FieldD != nil && that1.FieldD != nil {
		if *this.FieldD != *that1.FieldD {
			return fmt.Errorf("FieldD this(%v) Not Equal that(%v)", *this.FieldD, *that1.FieldD)
		}
	} else if this.FieldD != nil {
		return fmt.Errorf("this.FieldD == nil && that.FieldD != nil")
	} else if that1.FieldD != nil {
		return fmt.Errorf("FieldD this(%v) Not Equal that(%v)", this.FieldD, that1.FieldD)
	}
	if this.FieldE != nil && that1.FieldE != nil {
		if *this.FieldE != *that1.FieldE {
			return fmt.Errorf("FieldE this(%v) Not Equal that(%v)", *this.FieldE, *that1.FieldE)
		}
	} else if this.FieldE != nil {
		return fmt.Errorf("this.FieldE == nil && that.FieldE != nil")
	} else if that1.FieldE != nil {
		return fmt.Errorf("FieldE this(%v) Not Equal that(%v)", this.FieldE, that1.FieldE)
	}
	if this.FieldF != nil && that1.FieldF != nil {
		if *this.FieldF != *that1.FieldF {
			return fmt.Errorf("FieldF this(%v) Not Equal that(%v)", *this.FieldF, *that1.FieldF)
		}
	} else if this.FieldF != nil {
		return fmt.Errorf("this.FieldF == nil && that.FieldF != nil")
	} else if that1.FieldF != nil {
		return fmt.Errorf("FieldF this(%v) Not Equal that(%v)", this.FieldF, that1.FieldF)
	}
	if this.FieldG != nil && that1.FieldG != nil {
		if *this.FieldG != *that1.FieldG {
			return fmt.Errorf("FieldG this(%v) Not Equal that(%v)", *this.FieldG, *that1.FieldG)
		}
	} else if this.FieldG != nil {
		return fmt.Errorf("this.FieldG == nil && that.FieldG != nil")
	} else if that1.FieldG != nil {
		return fmt.Errorf("FieldG this(%v) Not Equal that(%v)", this.FieldG, that1.FieldG)
	}
	if this.FieldH != nil && that1.FieldH != nil {
		if *this.FieldH != *that1.FieldH {
			return fmt.Errorf("FieldH this(%v) Not Equal that(%v)", *this.FieldH, *that1.FieldH)
		}
	} else if this.FieldH != nil {
		return fmt.Errorf("this.FieldH == nil && that.FieldH != nil")
	} else if that1.FieldH != nil {
		return fmt.Errorf("FieldH this(%v) Not Equal that(%v)", this.FieldH, that1.FieldH)
	}
	if this.FieldI != nil && that1.FieldI != nil {
		if *this.FieldI != *that1.FieldI {
			return fmt.Errorf("FieldI this(%v) Not Equal that(%v)", *this.FieldI, *that1.FieldI)
		}
	} else if this.FieldI != nil {
		return fmt.Errorf("this.FieldI == nil && that.FieldI != nil")
	} else if that1.FieldI != nil {
		return fmt.Errorf("FieldI this(%v) Not Equal that(%v)", this.FieldI, that1.FieldI)
	}
	if this.FieldJ != nil && that1.FieldJ != nil {
		if *this.FieldJ != *that1.FieldJ {
			return fmt.Errorf("FieldJ this(%v) Not Equal that(%v)", *this.FieldJ, *that1.FieldJ)
		}
	} else if this.FieldJ != nil {
		return fmt.Errorf("this.FieldJ == nil && that.FieldJ != nil")
	} else if that1.FieldJ != nil {
		return fmt.Errorf("FieldJ this(%v) Not Equal that(%v)", this.FieldJ, that1.FieldJ)
	}
	if this.FieldK != nil && that1.FieldK != nil {
		if *this.FieldK != *that1.FieldK {
			return fmt.Errorf("FieldK this(%v) Not Equal that(%v)", *this.FieldK, *that1.FieldK)
		}
	} else if this.FieldK != nil {
		return fmt.Errorf("this.FieldK == nil && that.FieldK != nil")
	} else if that1.FieldK != nil {
		return fmt.Errorf("FieldK this(%v) Not Equal that(%v)", this.FieldK, that1.FieldK)
	}
	if this.FielL != nil && that1.FielL != nil {
		if *this.FielL != *that1.FielL {
			return fmt.Errorf("FielL this(%v) Not Equal that(%v)", *this.FielL, *that1.FielL)
		}
	} else if this.FielL != nil {
		return fmt.Errorf("this.FielL == nil && that.FielL != nil")
	} else if that1.FielL != nil {
		return fmt.Errorf("FielL this(%v) Not Equal that(%v)", this.FielL, that1.FielL)
	}
	if this.FieldM != nil && that1.FieldM != nil {
		if *this.FieldM != *that1.FieldM {
			return fmt.Errorf("FieldM this(%v) Not Equal that(%v)", *this.FieldM, *that1.FieldM)
		}
	} else if this.FieldM != nil {
		return fmt.Errorf("this.FieldM == nil && that.FieldM != nil")
	} else if that1.FieldM != nil {
		return fmt.Errorf("FieldM this(%v) Not Equal that(%v)", this.FieldM, that1.FieldM)
	}
	if this.FieldN != nil && that1.FieldN != nil {
		if *this.FieldN != *that1.FieldN {
			return fmt.Errorf("FieldN this(%v) Not Equal that(%v)", *this.FieldN, *that1.FieldN)
		}
	} else if this.FieldN != nil {
		return fmt.Errorf("this.FieldN == nil && that.FieldN != nil")
	} else if that1.FieldN != nil {
		return fmt.Errorf("FieldN this(%v) Not Equal that(%v)", this.FieldN, that1.FieldN)
	}
	if !bytes.Equal(this.FieldO, that1.FieldO) {
		return fmt.Errorf("FieldO this(%v) Not Equal that(%v)", this.FieldO, that1.FieldO)
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *CustomNameNinOptNative) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*CustomNameNinOptNative)
	if !ok {
		that2, ok := that.(CustomNameNinOptNative)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.FieldA != nil && that1.FieldA != nil {
		if *this.FieldA != *that1.FieldA {
			return false
		}
	} else if this.FieldA != nil {
		return false
	} else if that1.FieldA != nil {
		return false
	}
	if this.FieldB != nil && that1.FieldB != nil {
		if *this.FieldB != *that1.FieldB {
			return false
		}
	} else if this.FieldB != nil {
		return false
	} else if that1.FieldB != nil {
		return false
	}
	if this.FieldC != nil && that1.FieldC != nil {
		if *this.FieldC != *that1.FieldC {
			return false
		}
	} else if this.FieldC != nil {
		return false
	} else if that1.FieldC != nil {
		return false
	}
	if this.FieldD != nil && that1.FieldD != nil {
		if *this.FieldD != *that1.FieldD {
			return false
		}
	} else if this.FieldD != nil {
		return false
	} else if that1.FieldD != nil {
		return false
	}
	if this.FieldE != nil && that1.FieldE != nil {
		if *this.FieldE != *that1.FieldE {
			return false
		}
	} else if this.FieldE != nil {
		return false
	} else if that1.FieldE != nil {
		return false
	}
	if this.FieldF != nil && that1.FieldF != nil {
		if *this.FieldF != *that1.FieldF {
			return false
		}
	} else if this.FieldF != nil {
		return false
	} else if that1.FieldF != nil {
		return false
	}
	if this.FieldG != nil && that1.FieldG != nil {
		if *this.FieldG != *that1.FieldG {
			return false
		}
	} else if this.FieldG != nil {
		return false
	} else if that1.FieldG != nil {
		return false
	}
	if this.FieldH != nil && that1.FieldH != nil {
		if *this.FieldH != *that1.FieldH {
			return false
		}
	} else if this.FieldH != nil {
		return false
	} else if that1.FieldH != nil {
		return false
	}
	if this.FieldI != nil && that1.FieldI != nil {
		if *this.FieldI != *that1.FieldI {
			return false
		}
	} else if this.FieldI != nil {
		return false
	} else if that1.FieldI != nil {
		return false
	}
	if this.FieldJ != nil && that1.FieldJ != nil {
		if *this.FieldJ != *that1.FieldJ {
			return false
		}
	} else if this.FieldJ != nil {
		return false
	} else if that1.FieldJ != nil {
		return false
	}
	if this.FieldK != nil && that1.FieldK != nil {
		if *this.FieldK != *that1.FieldK {
			return false
		}
	} else if this.FieldK != nil {
		return false
	} else if that1.FieldK != nil {
		return false
	}
	if this.FielL != nil && that1.FielL != nil {
		if *this.FielL != *that1.FielL {
			return false
		}
	} else if this.FielL != nil {
		return false
	} else if that1.FielL != nil {
		return false
	}
	if this.FieldM != nil && that1.FieldM != nil {
		if *this.FieldM != *that1.FieldM {
			return false
		}
	} else if this.FieldM != nil {
		return false
	} else if that1.FieldM != nil {
		return false
	}
	if this.FieldN != nil && that1.FieldN != nil {
		if *this.FieldN != *that1.FieldN {
			return false
		}
	} else if this.FieldN != nil {
		return false
	} else if that1.FieldN != nil {
		return false
	}
	if !bytes.Equal(this.FieldO, that1.FieldO) {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *CustomNameNinRepNative) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*CustomNameNinRepNative)
	if !ok {
		that2, ok := that.(CustomNameNinRepNative)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *CustomNameNinRepNative")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *CustomNameNinRepNative but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *CustomNameNinRepNative but is not nil && this == nil")
	}
	if len(this.FieldA) != len(that1.FieldA) {
		return fmt.Errorf("FieldA this(%v) Not Equal that(%v)", len(this.FieldA), len(that1.FieldA))
	}
	for i := range this.FieldA {
		if this.FieldA[i] != that1.FieldA[i] {
			return fmt.Errorf("FieldA this[%v](%v) Not Equal that[%v](%v)", i, this.FieldA[i], i, that1.FieldA[i])
		}
	}
	if len(this.FieldB) != len(that1.FieldB) {
		return fmt.Errorf("FieldB this(%v) Not Equal that(%v)", len(this.FieldB), len(that1.FieldB))
	}
	for i := range this.FieldB {
		if this.FieldB[i] != that1.FieldB[i] {
			return fmt.Errorf("FieldB this[%v](%v) Not Equal that[%v](%v)", i, this.FieldB[i], i, that1.FieldB[i])
		}
	}
	if len(this.FieldC) != len(that1.FieldC) {
		return fmt.Errorf("FieldC this(%v) Not Equal that(%v)", len(this.FieldC), len(that1.FieldC))
	}
	for i := range this.FieldC {
		if this.FieldC[i] != that1.FieldC[i] {
			return fmt.Errorf("FieldC this[%v](%v) Not Equal that[%v](%v)", i, this.FieldC[i], i, that1.FieldC[i])
		}
	}
	if len(this.FieldD) != len(that1.FieldD) {
		return fmt.Errorf("FieldD this(%v) Not Equal that(%v)", len(this.FieldD), len(that1.FieldD))
	}
	for i := range this.FieldD {
		if this.FieldD[i] != that1.FieldD[i] {
			return fmt.Errorf("FieldD this[%v](%v) Not Equal that[%v](%v)", i, this.FieldD[i], i, that1.FieldD[i])
		}
	}
	if len(this.FieldE) != len(that1.FieldE) {
		return fmt.Errorf("FieldE this(%v) Not Equal that(%v)", len(this.FieldE), len(that1.FieldE))
	}
	for i := range this.FieldE {
		if this.FieldE[i] != that1.FieldE[i] {
			return fmt.Errorf("FieldE this[%v](%v) Not Equal that[%v](%v)", i, this.FieldE[i], i, that1.FieldE[i])
		}
	}
	if len(this.FieldF) != len(that1.FieldF) {
		return fmt.Errorf("FieldF this(%v) Not Equal that(%v)", len(this.FieldF), len(that1.FieldF))
	}
	for i := range this.FieldF {
		if this.FieldF[i] != that1.FieldF[i] {
			return fmt.Errorf("FieldF this[%v](%v) Not Equal that[%v](%v)", i, this.FieldF[i], i, that1.FieldF[i])
		}
	}
	if len(this.FieldG) != len(that1.FieldG) {
		return fmt.Errorf("FieldG this(%v) Not Equal that(%v)", len(this.FieldG), len(that1.FieldG))
	}
	for i := range this.FieldG {
		if this.FieldG[i] != that1.FieldG[i] {
			return fmt.Errorf("FieldG this[%v](%v) Not Equal that[%v](%v)", i, this.FieldG[i], i, that1.FieldG[i])
		}
	}
	if len(this.FieldH) != len(that1.FieldH) {
		return fmt.Errorf("FieldH this(%v) Not Equal that(%v)", len(this.FieldH), len(that1.FieldH))
	}
	for i := range this.FieldH {
		if this.FieldH[i] != that1.FieldH[i] {
			return fmt.Errorf("FieldH this[%v](%v) Not Equal that[%v](%v)", i, this.FieldH[i], i, that1.FieldH[i])
		}
	}
	if len(this.FieldI) != len(that1.FieldI) {
		return fmt.Errorf("FieldI this(%v) Not Equal that(%v)", len(this.FieldI), len(that1.FieldI))
	}
	for i := range this.FieldI {
		if this.FieldI[i] != that1.FieldI[i] {
			return fmt.Errorf("FieldI this[%v](%v) Not Equal that[%v](%v)", i, this.FieldI[i], i, that1.FieldI[i])
		}
	}
	if len(this.FieldJ) != len(that1.FieldJ) {
		return fmt.Errorf("FieldJ this(%v) Not Equal that(%v)", len(this.FieldJ), len(that1.FieldJ))
	}
	for i := range this.FieldJ {
		if this.FieldJ[i] != that1.FieldJ[i] {
			return fmt.Errorf("FieldJ this[%v](%v) Not Equal that[%v](%v)", i, this.FieldJ[i], i, that1.FieldJ[i])
		}
	}
	if len(this.FieldK) != len(that1.FieldK) {
		return fmt.Errorf("FieldK this(%v) Not Equal that(%v)", len(this.FieldK), len(that1.FieldK))
	}
	for i := range this.FieldK {
		if this.FieldK[i] != that1.FieldK[i] {
			return fmt.Errorf("FieldK this[%v](%v) Not Equal that[%v](%v)", i, this.FieldK[i], i, that1.FieldK[i])
		}
	}
	if len(this.FieldL) != len(that1.FieldL) {
		return fmt.Errorf("FieldL this(%v) Not Equal that(%v)", len(this.FieldL), len(that1.FieldL))
	}
	for i := range this.FieldL {
		if this.FieldL[i] != that1.FieldL[i] {
			return fmt.Errorf("FieldL this[%v](%v) Not Equal that[%v](%v)", i, this.FieldL[i], i, that1.FieldL[i])
		}
	}
	if len(this.FieldM) != len(that1.FieldM) {
		return fmt.Errorf("FieldM this(%v) Not Equal that(%v)", len(this.FieldM), len(that1.FieldM))
	}
	for i := range this.FieldM {
		if this.FieldM[i] != that1.FieldM[i] {
			return fmt.Errorf("FieldM this[%v](%v) Not Equal that[%v](%v)", i, this.FieldM[i], i, that1.FieldM[i])
		}
	}
	if len(this.FieldN) != len(that1.FieldN) {
		return fmt.Errorf("FieldN this(%v) Not Equal that(%v)", len(this.FieldN), len(that1.FieldN))
	}
	for i := range this.FieldN {
		if this.FieldN[i] != that1.FieldN[i] {
			return fmt.Errorf("FieldN this[%v](%v) Not Equal that[%v](%v)", i, this.FieldN[i], i, that1.FieldN[i])
		}
	}
	if len(this.FieldO) != len(that1.FieldO) {
		return fmt.Errorf("FieldO this(%v) Not Equal that(%v)", len(this.FieldO), len(that1.FieldO))
	}
	for i := range this.FieldO {
		if !bytes.Equal(this.FieldO[i], that1.FieldO[i]) {
			return fmt.Errorf("FieldO this[%v](%v) Not Equal that[%v](%v)", i, this.FieldO[i], i, that1.FieldO[i])
		}
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *CustomNameNinRepNative) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*CustomNameNinRepNative)
	if !ok {
		that2, ok := that.(CustomNameNinRepNative)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if len(this.FieldA) != len(that1.FieldA) {
		return false
	}
	for i := range this.FieldA {
		if this.FieldA[i] != that1.FieldA[i] {
			return false
		}
	}
	if len(this.FieldB) != len(that1.FieldB) {
		return false
	}
	for i := range this.FieldB {
		if this.FieldB[i] != that1.FieldB[i] {
			return false
		}
	}
	if len(this.FieldC) != len(that1.FieldC) {
		return false
	}
	for i := range this.FieldC {
		if this.FieldC[i] != that1.FieldC[i] {
			return false
		}
	}
	if len(this.FieldD) != len(that1.FieldD) {
		return false
	}
	for i := range this.FieldD {
		if this.FieldD[i] != that1.FieldD[i] {
			return false
		}
	}
	if len(this.FieldE) != len(that1.FieldE) {
		return false
	}
	for i := range this.FieldE {
		if this.FieldE[i] != that1.FieldE[i] {
			return false
		}
	}
	if len(this.FieldF) != len(that1.FieldF) {
		return false
	}
	for i := range this.FieldF {
		if this.FieldF[i] != that1.FieldF[i] {
			return false
		}
	}
	if len(this.FieldG) != len(that1.FieldG) {
		return false
	}
	for i := range this.FieldG {
		if this.FieldG[i] != that1.FieldG[i] {
			return false
		}
	}
	if len(this.FieldH) != len(that1.FieldH) {
		return false
	}
	for i := range this.FieldH {
		if this.FieldH[i] != that1.FieldH[i] {
			return false
		}
	}
	if len(this.FieldI) != len(that1.FieldI) {
		return false
	}
	for i := range this.FieldI {
		if this.FieldI[i] != that1.FieldI[i] {
			return false
		}
	}
	if len(this.FieldJ) != len(that1.FieldJ) {
		return false
	}
	for i := range this.FieldJ {
		if this.FieldJ[i] != that1.FieldJ[i] {
			return false
		}
	}
	if len(this.FieldK) != len(that1.FieldK) {
		return false
	}
	for i := range this.FieldK {
		if this.FieldK[i] != that1.FieldK[i] {
			return false
		}
	}
	if len(this.FieldL) != len(that1.FieldL) {
		return false
	}
	for i := range this.FieldL {
		if this.FieldL[i] != that1.FieldL[i] {
			return false
		}
	}
	if len(this.FieldM) != len(that1.FieldM) {
		return false
	}
	for i := range this.FieldM {
		if this.FieldM[i] != that1.FieldM[i] {
			return false
		}
	}
	if len(this.FieldN) != len(that1.FieldN) {
		return false
	}
	for i := range this.FieldN {
		if this.FieldN[i] != that1.FieldN[i] {
			return false
		}
	}
	if len(this.FieldO) != len(that1.FieldO) {
		return false
	}
	for i := range this.FieldO {
		if !bytes.Equal(this.FieldO[i], that1.FieldO[i]) {
			return false
		}
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *CustomNameNinStruct) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*CustomNameNinStruct)
	if !ok {
		that2, ok := that.(CustomNameNinStruct)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *CustomNameNinStruct")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *CustomNameNinStruct but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *CustomNameNinStruct but is not nil && this == nil")
	}
	if this.FieldA != nil && that1.FieldA != nil {
		if *this.FieldA != *that1.FieldA {
			return fmt.Errorf("FieldA this(%v) Not Equal that(%v)", *this.FieldA, *that1.FieldA)
		}
	} else if this.FieldA != nil {
		return fmt.Errorf("this.FieldA == nil && that.FieldA != nil")
	} else if that1.FieldA != nil {
		return fmt.Errorf("FieldA this(%v) Not Equal that(%v)", this.FieldA, that1.FieldA)
	}
	if this.FieldB != nil && that1.FieldB != nil {
		if *this.FieldB != *that1.FieldB {
			return fmt.Errorf("FieldB this(%v) Not Equal that(%v)", *this.FieldB, *that1.FieldB)
		}
	} else if this.FieldB != nil {
		return fmt.Errorf("this.FieldB == nil && that.FieldB != nil")
	} else if that1.FieldB != nil {
		return fmt.Errorf("FieldB this(%v) Not Equal that(%v)", this.FieldB, that1.FieldB)
	}
	if !this.FieldC.Equal(that1.FieldC) {
		return fmt.Errorf("FieldC this(%v) Not Equal that(%v)", this.FieldC, that1.FieldC)
	}
	if len(this.FieldD) != len(that1.FieldD) {
		return fmt.Errorf("FieldD this(%v) Not Equal that(%v)", len(this.FieldD), len(that1.FieldD))
	}
	for i := range this.FieldD {
		if !this.FieldD[i].Equal(that1.FieldD[i]) {
			return fmt.Errorf("FieldD this[%v](%v) Not Equal that[%v](%v)", i, this.FieldD[i], i, that1.FieldD[i])
		}
	}
	if this.FieldE != nil && that1.FieldE != nil {
		if *this.FieldE != *that1.FieldE {
			return fmt.Errorf("FieldE this(%v) Not Equal that(%v)", *this.FieldE, *that1.FieldE)
		}
	} else if this.FieldE != nil {
		return fmt.Errorf("this.FieldE == nil && that.FieldE != nil")
	} else if that1.FieldE != nil {
		return fmt.Errorf("FieldE this(%v) Not Equal that(%v)", this.FieldE, that1.FieldE)
	}
	if this.FieldF != nil && that1.FieldF != nil {
		if *this.FieldF != *that1.FieldF {
			return fmt.Errorf("FieldF this(%v) Not Equal that(%v)", *this.FieldF, *that1.FieldF)
		}
	} else if this.FieldF != nil {
		return fmt.Errorf("this.FieldF == nil && that.FieldF != nil")
	} else if that1.FieldF != nil {
		return fmt.Errorf("FieldF this(%v) Not Equal that(%v)", this.FieldF, that1.FieldF)
	}
	if !this.FieldG.Equal(that1.FieldG) {
		return fmt.Errorf("FieldG this(%v) Not Equal that(%v)", this.FieldG, that1.FieldG)
	}
	if this.FieldH != nil && that1.FieldH != nil {
		if *this.FieldH != *that1.FieldH {
			return fmt.Errorf("FieldH this(%v) Not Equal that(%v)", *this.FieldH, *that1.FieldH)
		}
	} else if this.FieldH != nil {
		return fmt.Errorf("this.FieldH == nil && that.FieldH != nil")
	} else if that1.FieldH != nil {
		return fmt.Errorf("FieldH this(%v) Not Equal that(%v)", this.FieldH, that1.FieldH)
	}
	if this.FieldI != nil && that1.FieldI != nil {
		if *this.FieldI != *that1.FieldI {
			return fmt.Errorf("FieldI this(%v) Not Equal that(%v)", *this.FieldI, *that1.FieldI)
		}
	} else if this.FieldI != nil {
		return fmt.Errorf("this.FieldI == nil && that.FieldI != nil")
	} else if that1.FieldI != nil {
		return fmt.Errorf("FieldI this(%v) Not Equal that(%v)", this.FieldI, that1.FieldI)
	}
	if !bytes.Equal(this.FieldJ, that1.FieldJ) {
		return fmt.Errorf("FieldJ this(%v) Not Equal that(%v)", this.FieldJ, that1.FieldJ)
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *CustomNameNinStruct) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*CustomNameNinStruct)
	if !ok {
		that2, ok := that.(CustomNameNinStruct)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.FieldA != nil && that1.FieldA != nil {
		if *this.FieldA != *that1.FieldA {
			return false
		}
	} else if this.FieldA != nil {
		return false
	} else if that1.FieldA != nil {
		return false
	}
	if this.FieldB != nil && that1.FieldB != nil {
		if *this.FieldB != *that1.FieldB {
			return false
		}
	} else if this.FieldB != nil {
		return false
	} else if that1.FieldB != nil {
		return false
	}
	if !this.FieldC.Equal(that1.FieldC) {
		return false
	}
	if len(this.FieldD) != len(that1.FieldD) {
		return false
	}
	for i := range this.FieldD {
		if !this.FieldD[i].Equal(that1.FieldD[i]) {
			return false
		}
	}
	if this.FieldE != nil && that1.FieldE != nil {
		if *this.FieldE != *that1.FieldE {
			return false
		}
	} else if this.FieldE != nil {
		return false
	} else if that1.FieldE != nil {
		return false
	}
	if this.FieldF != nil && that1.FieldF != nil {
		if *this.FieldF != *that1.FieldF {
			return false
		}
	} else if this.FieldF != nil {
		return false
	} else if that1.FieldF != nil {
		return false
	}
	if !this.FieldG.Equal(that1.FieldG) {
		return false
	}
	if this.FieldH != nil && that1.FieldH != nil {
		if *this.FieldH != *that1.FieldH {
			return false
		}
	} else if this.FieldH != nil {
		return false
	} else if that1.FieldH != nil {
		return false
	}
	if this.FieldI != nil && that1.FieldI != nil {
		if *this.FieldI != *that1.FieldI {
			return false
		}
	} else if this.FieldI != nil {
		return false
	} else if that1.FieldI != nil {
		return false
	}
	if !bytes.Equal(this.FieldJ, that1.FieldJ) {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *CustomNameCustomType) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*CustomNameCustomType)
	if !ok {
		that2, ok := that.(CustomNameCustomType)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *CustomNameCustomType")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *CustomNameCustomType but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *CustomNameCustomType but is not nil && this == nil")
	}
	if that1.FieldA == nil {
		if this.FieldA != nil {
			return fmt.Errorf("this.FieldA != nil && that1.FieldA == nil")
		}
	} else if !this.FieldA.Equal(*that1.FieldA) {
		return fmt.Errorf("FieldA this(%v) Not Equal that(%v)", this.FieldA, that1.FieldA)
	}
	if that1.FieldB == nil {
		if this.FieldB != nil {
			return fmt.Errorf("this.FieldB != nil && that1.FieldB == nil")
		}
	} else if !this.FieldB.Equal(*that1.FieldB) {
		return fmt.Errorf("FieldB this(%v) Not Equal that(%v)", this.FieldB, that1.FieldB)
	}
	if len(this.FieldC) != len(that1.FieldC) {
		return fmt.Errorf("FieldC this(%v) Not Equal that(%v)", len(this.FieldC), len(that1.FieldC))
	}
	for i := range this.FieldC {
		if !this.FieldC[i].Equal(that1.FieldC[i]) {
			return fmt.Errorf("FieldC this[%v](%v) Not Equal that[%v](%v)", i, this.FieldC[i], i, that1.FieldC[i])
		}
	}
	if len(this.FieldD) != len(that1.FieldD) {
		return fmt.Errorf("FieldD this(%v) Not Equal that(%v)", len(this.FieldD), len(that1.FieldD))
	}
	for i := range this.FieldD {
		if !this.FieldD[i].Equal(that1.FieldD[i]) {
			return fmt.Errorf("FieldD this[%v](%v) Not Equal that[%v](%v)", i, this.FieldD[i], i, that1.FieldD[i])
		}
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *CustomNameCustomType) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*CustomNameCustomType)
	if !ok {
		that2, ok := that.(CustomNameCustomType)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if that1.FieldA == nil {
		if this.FieldA != nil {
			return false
		}
	} else if !this.FieldA.Equal(*that1.FieldA) {
		return false
	}
	if that1.FieldB == nil {
		if this.FieldB != nil {
			return false
		}
	} else if !this.FieldB.Equal(*that1.FieldB) {
		return false
	}
	if len(this.FieldC) != len(that1.FieldC) {
		return false
	}
	for i := range this.FieldC {
		if !this.FieldC[i].Equal(that1.FieldC[i]) {
			return false
		}
	}
	if len(this.FieldD) != len(that1.FieldD) {
		return false
	}
	for i := range this.FieldD {
		if !this.FieldD[i].Equal(that1.FieldD[i]) {
			return false
		}
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *CustomNameNinEmbeddedStructUnion) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*CustomNameNinEmbeddedStructUnion)
	if !ok {
		that2, ok := that.(CustomNameNinEmbeddedStructUnion)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *CustomNameNinEmbeddedStructUnion")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *CustomNameNinEmbeddedStructUnion but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *CustomNameNinEmbeddedStructUnion but is not nil && this == nil")
	}
	if !this.NidOptNative.Equal(that1.NidOptNative) {
		return fmt.Errorf("NidOptNative this(%v) Not Equal that(%v)", this.NidOptNative, that1.NidOptNative)
	}
	if !this.FieldA.Equal(that1.FieldA) {
		return fmt.Errorf("FieldA this(%v) Not Equal that(%v)", this.FieldA, that1.FieldA)
	}
	if this.FieldB != nil && that1.FieldB != nil {
		if *this.FieldB != *that1.FieldB {
			return fmt.Errorf("FieldB this(%v) Not Equal that(%v)", *this.FieldB, *that1.FieldB)
		}
	} else if this.FieldB != nil {
		return fmt.Errorf("this.FieldB == nil && that.FieldB != nil")
	} else if that1.FieldB != nil {
		return fmt.Errorf("FieldB this(%v) Not Equal that(%v)", this.FieldB, that1.FieldB)
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *CustomNameNinEmbeddedStructUnion) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*CustomNameNinEmbeddedStructUnion)
	if !ok {
		that2, ok := that.(CustomNameNinEmbeddedStructUnion)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !this.NidOptNative.Equal(that1.NidOptNative) {
		return false
	}
	if !this.FieldA.Equal(that1.FieldA) {
		return false
	}
	if this.FieldB != nil && that1.FieldB != nil {
		if *this.FieldB != *that1.FieldB {
			return false
		}
	} else if this.FieldB != nil {
		return false
	} else if that1.FieldB != nil {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *CustomNameEnum) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*CustomNameEnum)
	if !ok {
		that2, ok := that.(CustomNameEnum)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *CustomNameEnum")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *CustomNameEnum but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *CustomNameEnum but is not nil && this == nil")
	}
	if this.FieldA != nil && that1.FieldA != nil {
		if *this.FieldA != *that1.FieldA {
			return fmt.Errorf("FieldA this(%v) Not Equal that(%v)", *this.FieldA, *that1.FieldA)
		}
	} else if this.FieldA != nil {
		return fmt.Errorf("this.FieldA == nil && that.FieldA != nil")
	} else if that1.FieldA != nil {
		return fmt.Errorf("FieldA this(%v) Not Equal that(%v)", this.FieldA, that1.FieldA)
	}
	if len(this.FieldB) != len(that1.FieldB) {
		return fmt.Errorf("FieldB this(%v) Not Equal that(%v)", len(this.FieldB), len(that1.FieldB))
	}
	for i := range this.FieldB {
		if this.FieldB[i] != that1.FieldB[i] {
			return fmt.Errorf("FieldB this[%v](%v) Not Equal that[%v](%v)", i, this.FieldB[i], i, that1.FieldB[i])
		}
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *CustomNameEnum) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*CustomNameEnum)
	if !ok {
		that2, ok := that.(CustomNameEnum)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.FieldA != nil && that1.FieldA != nil {
		if *this.FieldA != *that1.FieldA {
			return false
		}
	} else if this.FieldA != nil {
		return false
	} else if that1.FieldA != nil {
		return false
	}
	if len(this.FieldB) != len(that1.FieldB) {
		return false
	}
	for i := range this.FieldB {
		if this.FieldB[i] != that1.FieldB[i] {
			return false
		}
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *NoExtensionsMap) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*NoExtensionsMap)
	if !ok {
		that2, ok := that.(NoExtensionsMap)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *NoExtensionsMap")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *NoExtensionsMap but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *NoExtensionsMap but is not nil && this == nil")
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1)
		}
	} else if this.Field1 != nil {
		return fmt.Errorf("this.Field1 == nil && that.Field1 != nil")
	} else if that1.Field1 != nil {
		return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1)
	}
	if !bytes.Equal(this.XXX_extensions, that1.XXX_extensions) {
		return fmt.Errorf("XXX_extensions this(%v) Not Equal that(%v)", this.XXX_extensions, that1.XXX_extensions)
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *NoExtensionsMap) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*NoExtensionsMap)
	if !ok {
		that2, ok := that.(NoExtensionsMap)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			return false
		}
	} else if this.Field1 != nil {
		return false
	} else if that1.Field1 != nil {
		return false
	}
	if !bytes.Equal(this.XXX_extensions, that1.XXX_extensions) {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *Unrecognized) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*Unrecognized)
	if !ok {
		that2, ok := that.(Unrecognized)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *Unrecognized")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *Unrecognized but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *Unrecognized but is not nil && this == nil")
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1)
		}
	} else if this.Field1 != nil {
		return fmt.Errorf("this.Field1 == nil && that.Field1 != nil")
	} else if that1.Field1 != nil {
		return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1)
	}
	return nil
}
func (this *Unrecognized) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*Unrecognized)
	if !ok {
		that2, ok := that.(Unrecognized)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			return false
		}
	} else if this.Field1 != nil {
		return false
	} else if that1.Field1 != nil {
		return false
	}
	return true
}
func (this *UnrecognizedWithInner) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*UnrecognizedWithInner)
	if !ok {
		that2, ok := that.(UnrecognizedWithInner)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *UnrecognizedWithInner")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *UnrecognizedWithInner but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *UnrecognizedWithInner but is not nil && this == nil")
	}
	if len(this.Embedded) != len(that1.Embedded) {
		return fmt.Errorf("Embedded this(%v) Not Equal that(%v)", len(this.Embedded), len(that1.Embedded))
	}
	for i := range this.Embedded {
		if !this.Embedded[i].Equal(that1.Embedded[i]) {
			return fmt.Errorf("Embedded this[%v](%v) Not Equal that[%v](%v)", i, this.Embedded[i], i, that1.Embedded[i])
		}
	}
	if this.Field2 != nil && that1.Field2 != nil {
		if *this.Field2 != *that1.Field2 {
			return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2)
		}
	} else if this.Field2 != nil {
		return fmt.Errorf("this.Field2 == nil && that.Field2 != nil")
	} else if that1.Field2 != nil {
		return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2)
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *UnrecognizedWithInner) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*UnrecognizedWithInner)
	if !ok {
		that2, ok := that.(UnrecognizedWithInner)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if len(this.Embedded) != len(that1.Embedded) {
		return false
	}
	for i := range this.Embedded {
		if !this.Embedded[i].Equal(that1.Embedded[i]) {
			return false
		}
	}
	if this.Field2 != nil && that1.Field2 != nil {
		if *this.Field2 != *that1.Field2 {
			return false
		}
	} else if this.Field2 != nil {
		return false
	} else if that1.Field2 != nil {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *UnrecognizedWithInner_Inner) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*UnrecognizedWithInner_Inner)
	if !ok {
		that2, ok := that.(UnrecognizedWithInner_Inner)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *UnrecognizedWithInner_Inner")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *UnrecognizedWithInner_Inner but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *UnrecognizedWithInner_Inner but is not nil && this == nil")
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1)
		}
	} else if this.Field1 != nil {
		return fmt.Errorf("this.Field1 == nil && that.Field1 != nil")
	} else if that1.Field1 != nil {
		return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1)
	}
	return nil
}
func (this *UnrecognizedWithInner_Inner) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*UnrecognizedWithInner_Inner)
	if !ok {
		that2, ok := that.(UnrecognizedWithInner_Inner)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			return false
		}
	} else if this.Field1 != nil {
		return false
	} else if that1.Field1 != nil {
		return false
	}
	return true
}
func (this *UnrecognizedWithEmbed) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*UnrecognizedWithEmbed)
	if !ok {
		that2, ok := that.(UnrecognizedWithEmbed)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *UnrecognizedWithEmbed")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *UnrecognizedWithEmbed but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *UnrecognizedWithEmbed but is not nil && this == nil")
	}
	if !this.UnrecognizedWithEmbed_Embedded.Equal(&that1.UnrecognizedWithEmbed_Embedded) {
		return fmt.Errorf("UnrecognizedWithEmbed_Embedded this(%v) Not Equal that(%v)", this.UnrecognizedWithEmbed_Embedded, that1.UnrecognizedWithEmbed_Embedded)
	}
	if this.Field2 != nil && that1.Field2 != nil {
		if *this.Field2 != *that1.Field2 {
			return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2)
		}
	} else if this.Field2 != nil {
		return fmt.Errorf("this.Field2 == nil && that.Field2 != nil")
	} else if that1.Field2 != nil {
		return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2)
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *UnrecognizedWithEmbed) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*UnrecognizedWithEmbed)
	if !ok {
		that2, ok := that.(UnrecognizedWithEmbed)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !this.UnrecognizedWithEmbed_Embedded.Equal(&that1.UnrecognizedWithEmbed_Embedded) {
		return false
	}
	if this.Field2 != nil && that1.Field2 != nil {
		if *this.Field2 != *that1.Field2 {
			return false
		}
	} else if this.Field2 != nil {
		return false
	} else if that1.Field2 != nil {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *UnrecognizedWithEmbed_Embedded) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*UnrecognizedWithEmbed_Embedded)
	if !ok {
		that2, ok := that.(UnrecognizedWithEmbed_Embedded)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *UnrecognizedWithEmbed_Embedded")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *UnrecognizedWithEmbed_Embedded but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *UnrecognizedWithEmbed_Embedded but is not nil && this == nil")
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1)
		}
	} else if this.Field1 != nil {
		return fmt.Errorf("this.Field1 == nil && that.Field1 != nil")
	} else if that1.Field1 != nil {
		return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1)
	}
	return nil
}
func (this *UnrecognizedWithEmbed_Embedded) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*UnrecognizedWithEmbed_Embedded)
	if !ok {
		that2, ok := that.(UnrecognizedWithEmbed_Embedded)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			return false
		}
	} else if this.Field1 != nil {
		return false
	} else if that1.Field1 != nil {
		return false
	}
	return true
}
func (this *Node) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*Node)
	if !ok {
		that2, ok := that.(Node)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *Node")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *Node but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *Node but is not nil && this == nil")
	}
	if this.Label != nil && that1.Label != nil {
		if *this.Label != *that1.Label {
			return fmt.Errorf("Label this(%v) Not Equal that(%v)", *this.Label, *that1.Label)
		}
	} else if this.Label != nil {
		return fmt.Errorf("this.Label == nil && that.Label != nil")
	} else if that1.Label != nil {
		return fmt.Errorf("Label this(%v) Not Equal that(%v)", this.Label, that1.Label)
	}
	if len(this.Children) != len(that1.Children) {
		return fmt.Errorf("Children this(%v) Not Equal that(%v)", len(this.Children), len(that1.Children))
	}
	for i := range this.Children {
		if !this.Children[i].Equal(that1.Children[i]) {
			return fmt.Errorf("Children this[%v](%v) Not Equal that[%v](%v)", i, this.Children[i], i, that1.Children[i])
		}
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *Node) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*Node)
	if !ok {
		that2, ok := that.(Node)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Label != nil && that1.Label != nil {
		if *this.Label != *that1.Label {
			return false
		}
	} else if this.Label != nil {
		return false
	} else if that1.Label != nil {
		return false
	}
	if len(this.Children) != len(that1.Children) {
		return false
	}
	for i := range this.Children {
		if !this.Children[i].Equal(that1.Children[i]) {
			return false
		}
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *NonByteCustomType) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*NonByteCustomType)
	if !ok {
		that2, ok := that.(NonByteCustomType)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *NonByteCustomType")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *NonByteCustomType but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *NonByteCustomType but is not nil && this == nil")
	}
	if that1.Field1 == nil {
		if this.Field1 != nil {
			return fmt.Errorf("this.Field1 != nil && that1.Field1 == nil")
		}
	} else if !this.Field1.Equal(*that1.Field1) {
		return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1)
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *NonByteCustomType) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*NonByteCustomType)
	if !ok {
		that2, ok := that.(NonByteCustomType)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if that1.Field1 == nil {
		if this.Field1 != nil {
			return false
		}
	} else if !this.Field1.Equal(*that1.Field1) {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *NidOptNonByteCustomType) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*NidOptNonByteCustomType)
	if !ok {
		that2, ok := that.(NidOptNonByteCustomType)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *NidOptNonByteCustomType")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *NidOptNonByteCustomType but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *NidOptNonByteCustomType but is not nil && this == nil")
	}
	if !this.Field1.Equal(that1.Field1) {
		return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1)
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *NidOptNonByteCustomType) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*NidOptNonByteCustomType)
	if !ok {
		that2, ok := that.(NidOptNonByteCustomType)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !this.Field1.Equal(that1.Field1) {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *NinOptNonByteCustomType) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*NinOptNonByteCustomType)
	if !ok {
		that2, ok := that.(NinOptNonByteCustomType)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *NinOptNonByteCustomType")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *NinOptNonByteCustomType but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *NinOptNonByteCustomType but is not nil && this == nil")
	}
	if that1.Field1 == nil {
		if this.Field1 != nil {
			return fmt.Errorf("this.Field1 != nil && that1.Field1 == nil")
		}
	} else if !this.Field1.Equal(*that1.Field1) {
		return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1)
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *NinOptNonByteCustomType) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*NinOptNonByteCustomType)
	if !ok {
		that2, ok := that.(NinOptNonByteCustomType)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if that1.Field1 == nil {
		if this.Field1 != nil {
			return false
		}
	} else if !this.Field1.Equal(*that1.Field1) {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *NidRepNonByteCustomType) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*NidRepNonByteCustomType)
	if !ok {
		that2, ok := that.(NidRepNonByteCustomType)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *NidRepNonByteCustomType")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *NidRepNonByteCustomType but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *NidRepNonByteCustomType but is not nil && this == nil")
	}
	if len(this.Field1) != len(that1.Field1) {
		return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1))
	}
	for i := range this.Field1 {
		if !this.Field1[i].Equal(that1.Field1[i]) {
			return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i])
		}
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *NidRepNonByteCustomType) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*NidRepNonByteCustomType)
	if !ok {
		that2, ok := that.(NidRepNonByteCustomType)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if len(this.Field1) != len(that1.Field1) {
		return false
	}
	for i := range this.Field1 {
		if !this.Field1[i].Equal(that1.Field1[i]) {
			return false
		}
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *NinRepNonByteCustomType) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*NinRepNonByteCustomType)
	if !ok {
		that2, ok := that.(NinRepNonByteCustomType)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *NinRepNonByteCustomType")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *NinRepNonByteCustomType but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *NinRepNonByteCustomType but is not nil && this == nil")
	}
	if len(this.Field1) != len(that1.Field1) {
		return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1))
	}
	for i := range this.Field1 {
		if !this.Field1[i].Equal(that1.Field1[i]) {
			return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i])
		}
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *NinRepNonByteCustomType) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*NinRepNonByteCustomType)
	if !ok {
		that2, ok := that.(NinRepNonByteCustomType)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if len(this.Field1) != len(that1.Field1) {
		return false
	}
	for i := range this.Field1 {
		if !this.Field1[i].Equal(that1.Field1[i]) {
			return false
		}
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *ProtoType) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*ProtoType)
	if !ok {
		that2, ok := that.(ProtoType)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *ProtoType")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *ProtoType but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *ProtoType but is not nil && this == nil")
	}
	if this.Field2 != nil && that1.Field2 != nil {
		if *this.Field2 != *that1.Field2 {
			return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2)
		}
	} else if this.Field2 != nil {
		return fmt.Errorf("this.Field2 == nil && that.Field2 != nil")
	} else if that1.Field2 != nil {
		return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2)
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *ProtoType) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*ProtoType)
	if !ok {
		that2, ok := that.(ProtoType)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Field2 != nil && that1.Field2 != nil {
		if *this.Field2 != *that1.Field2 {
			return false
		}
	} else if this.Field2 != nil {
		return false
	} else if that1.Field2 != nil {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}

type NidOptNativeFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetField1() float64
	GetField2() float32
	GetField3() int32
	GetField4() int64
	GetField5() uint32
	GetField6() uint64
	GetField7() int32
	GetField8() int64
	GetField9() uint32
	GetField10() int32
	GetField11() uint64
	GetField12() int64
	GetField13() bool
	GetField14() string
	GetField15() []byte
}

func (this *NidOptNative) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *NidOptNative) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewNidOptNativeFromFace(this)
}

func (this *NidOptNative) GetField1() float64 {
	return this.Field1
}

func (this *NidOptNative) GetField2() float32 {
	return this.Field2
}

func (this *NidOptNative) GetField3() int32 {
	return this.Field3
}

func (this *NidOptNative) GetField4() int64 {
	return this.Field4
}

func (this *NidOptNative) GetField5() uint32 {
	return this.Field5
}

func (this *NidOptNative) GetField6() uint64 {
	return this.Field6
}

func (this *NidOptNative) GetField7() int32 {
	return this.Field7
}

func (this *NidOptNative) GetField8() int64 {
	return this.Field8
}

func (this *NidOptNative) GetField9() uint32 {
	return this.Field9
}

func (this *NidOptNative) GetField10() int32 {
	return this.Field10
}

func (this *NidOptNative) GetField11() uint64 {
	return this.Field11
}

func (this *NidOptNative) GetField12() int64 {
	return this.Field12
}

func (this *NidOptNative) GetField13() bool {
	return this.Field13
}

func (this *NidOptNative) GetField14() string {
	return this.Field14
}

func (this *NidOptNative) GetField15() []byte {
	return this.Field15
}

func NewNidOptNativeFromFace(that NidOptNativeFace) *NidOptNative {
	this := &NidOptNative{}
	this.Field1 = that.GetField1()
	this.Field2 = that.GetField2()
	this.Field3 = that.GetField3()
	this.Field4 = that.GetField4()
	this.Field5 = that.GetField5()
	this.Field6 = that.GetField6()
	this.Field7 = that.GetField7()
	this.Field8 = that.GetField8()
	this.Field9 = that.GetField9()
	this.Field10 = that.GetField10()
	this.Field11 = that.GetField11()
	this.Field12 = that.GetField12()
	this.Field13 = that.GetField13()
	this.Field14 = that.GetField14()
	this.Field15 = that.GetField15()
	return this
}

type NinOptNativeFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetField1() *float64
	GetField2() *float32
	GetField3() *int32
	GetField4() *int64
	GetField5() *uint32
	GetField6() *uint64
	GetField7() *int32
	GetField8() *int64
	GetField9() *uint32
	GetField10() *int32
	GetField11() *uint64
	GetField12() *int64
	GetField13() *bool
	GetField14() *string
	GetField15() []byte
}

func (this *NinOptNative) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *NinOptNative) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewNinOptNativeFromFace(this)
}

func (this *NinOptNative) GetField1() *float64 {
	return this.Field1
}

func (this *NinOptNative) GetField2() *float32 {
	return this.Field2
}

func (this *NinOptNative) GetField3() *int32 {
	return this.Field3
}

func (this *NinOptNative) GetField4() *int64 {
	return this.Field4
}

func (this *NinOptNative) GetField5() *uint32 {
	return this.Field5
}

func (this *NinOptNative) GetField6() *uint64 {
	return this.Field6
}

func (this *NinOptNative) GetField7() *int32 {
	return this.Field7
}

func (this *NinOptNative) GetField8() *int64 {
	return this.Field8
}

func (this *NinOptNative) GetField9() *uint32 {
	return this.Field9
}

func (this *NinOptNative) GetField10() *int32 {
	return this.Field10
}

func (this *NinOptNative) GetField11() *uint64 {
	return this.Field11
}

func (this *NinOptNative) GetField12() *int64 {
	return this.Field12
}

func (this *NinOptNative) GetField13() *bool {
	return this.Field13
}

func (this *NinOptNative) GetField14() *string {
	return this.Field14
}

func (this *NinOptNative) GetField15() []byte {
	return this.Field15
}

func NewNinOptNativeFromFace(that NinOptNativeFace) *NinOptNative {
	this := &NinOptNative{}
	this.Field1 = that.GetField1()
	this.Field2 = that.GetField2()
	this.Field3 = that.GetField3()
	this.Field4 = that.GetField4()
	this.Field5 = that.GetField5()
	this.Field6 = that.GetField6()
	this.Field7 = that.GetField7()
	this.Field8 = that.GetField8()
	this.Field9 = that.GetField9()
	this.Field10 = that.GetField10()
	this.Field11 = that.GetField11()
	this.Field12 = that.GetField12()
	this.Field13 = that.GetField13()
	this.Field14 = that.GetField14()
	this.Field15 = that.GetField15()
	return this
}

type NidRepNativeFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetField1() []float64
	GetField2() []float32
	GetField3() []int32
	GetField4() []int64
	GetField5() []uint32
	GetField6() []uint64
	GetField7() []int32
	GetField8() []int64
	GetField9() []uint32
	GetField10() []int32
	GetField11() []uint64
	GetField12() []int64
	GetField13() []bool
	GetField14() []string
	GetField15() [][]byte
}

func (this *NidRepNative) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *NidRepNative) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewNidRepNativeFromFace(this)
}

func (this *NidRepNative) GetField1() []float64 {
	return this.Field1
}

func (this *NidRepNative) GetField2() []float32 {
	return this.Field2
}

func (this *NidRepNative) GetField3() []int32 {
	return this.Field3
}

func (this *NidRepNative) GetField4() []int64 {
	return this.Field4
}

func (this *NidRepNative) GetField5() []uint32 {
	return this.Field5
}

func (this *NidRepNative) GetField6() []uint64 {
	return this.Field6
}

func (this *NidRepNative) GetField7() []int32 {
	return this.Field7
}

func (this *NidRepNative) GetField8() []int64 {
	return this.Field8
}

func (this *NidRepNative) GetField9() []uint32 {
	return this.Field9
}

func (this *NidRepNative) GetField10() []int32 {
	return this.Field10
}

func (this *NidRepNative) GetField11() []uint64 {
	return this.Field11
}

func (this *NidRepNative) GetField12() []int64 {
	return this.Field12
}

func (this *NidRepNative) GetField13() []bool {
	return this.Field13
}

func (this *NidRepNative) GetField14() []string {
	return this.Field14
}

func (this *NidRepNative) GetField15() [][]byte {
	return this.Field15
}

func NewNidRepNativeFromFace(that NidRepNativeFace) *NidRepNative {
	this := &NidRepNative{}
	this.Field1 = that.GetField1()
	this.Field2 = that.GetField2()
	this.Field3 = that.GetField3()
	this.Field4 = that.GetField4()
	this.Field5 = that.GetField5()
	this.Field6 = that.GetField6()
	this.Field7 = that.GetField7()
	this.Field8 = that.GetField8()
	this.Field9 = that.GetField9()
	this.Field10 = that.GetField10()
	this.Field11 = that.GetField11()
	this.Field12 = that.GetField12()
	this.Field13 = that.GetField13()
	this.Field14 = that.GetField14()
	this.Field15 = that.GetField15()
	return this
}

type NinRepNativeFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetField1() []float64
	GetField2() []float32
	GetField3() []int32
	GetField4() []int64
	GetField5() []uint32
	GetField6() []uint64
	GetField7() []int32
	GetField8() []int64
	GetField9() []uint32
	GetField10() []int32
	GetField11() []uint64
	GetField12() []int64
	GetField13() []bool
	GetField14() []string
	GetField15() [][]byte
}

func (this *NinRepNative) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *NinRepNative) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewNinRepNativeFromFace(this)
}

func (this *NinRepNative) GetField1() []float64 {
	return this.Field1
}

func (this *NinRepNative) GetField2() []float32 {
	return this.Field2
}

func (this *NinRepNative) GetField3() []int32 {
	return this.Field3
}

func (this *NinRepNative) GetField4() []int64 {
	return this.Field4
}

func (this *NinRepNative) GetField5() []uint32 {
	return this.Field5
}

func (this *NinRepNative) GetField6() []uint64 {
	return this.Field6
}

func (this *NinRepNative) GetField7() []int32 {
	return this.Field7
}

func (this *NinRepNative) GetField8() []int64 {
	return this.Field8
}

func (this *NinRepNative) GetField9() []uint32 {
	return this.Field9
}

func (this *NinRepNative) GetField10() []int32 {
	return this.Field10
}

func (this *NinRepNative) GetField11() []uint64 {
	return this.Field11
}

func (this *NinRepNative) GetField12() []int64 {
	return this.Field12
}

func (this *NinRepNative) GetField13() []bool {
	return this.Field13
}

func (this *NinRepNative) GetField14() []string {
	return this.Field14
}

func (this *NinRepNative) GetField15() [][]byte {
	return this.Field15
}

func NewNinRepNativeFromFace(that NinRepNativeFace) *NinRepNative {
	this := &NinRepNative{}
	this.Field1 = that.GetField1()
	this.Field2 = that.GetField2()
	this.Field3 = that.GetField3()
	this.Field4 = that.GetField4()
	this.Field5 = that.GetField5()
	this.Field6 = that.GetField6()
	this.Field7 = that.GetField7()
	this.Field8 = that.GetField8()
	this.Field9 = that.GetField9()
	this.Field10 = that.GetField10()
	this.Field11 = that.GetField11()
	this.Field12 = that.GetField12()
	this.Field13 = that.GetField13()
	this.Field14 = that.GetField14()
	this.Field15 = that.GetField15()
	return this
}

type NidRepPackedNativeFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetField1() []float64
	GetField2() []float32
	GetField3() []int32
	GetField4() []int64
	GetField5() []uint32
	GetField6() []uint64
	GetField7() []int32
	GetField8() []int64
	GetField9() []uint32
	GetField10() []int32
	GetField11() []uint64
	GetField12() []int64
	GetField13() []bool
}

func (this *NidRepPackedNative) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *NidRepPackedNative) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewNidRepPackedNativeFromFace(this)
}

func (this *NidRepPackedNative) GetField1() []float64 {
	return this.Field1
}

func (this *NidRepPackedNative) GetField2() []float32 {
	return this.Field2
}

func (this *NidRepPackedNative) GetField3() []int32 {
	return this.Field3
}

func (this *NidRepPackedNative) GetField4() []int64 {
	return this.Field4
}

func (this *NidRepPackedNative) GetField5() []uint32 {
	return this.Field5
}

func (this *NidRepPackedNative) GetField6() []uint64 {
	return this.Field6
}

func (this *NidRepPackedNative) GetField7() []int32 {
	return this.Field7
}

func (this *NidRepPackedNative) GetField8() []int64 {
	return this.Field8
}

func (this *NidRepPackedNative) GetField9() []uint32 {
	return this.Field9
}

func (this *NidRepPackedNative) GetField10() []int32 {
	return this.Field10
}

func (this *NidRepPackedNative) GetField11() []uint64 {
	return this.Field11
}

func (this *NidRepPackedNative) GetField12() []int64 {
	return this.Field12
}

func (this *NidRepPackedNative) GetField13() []bool {
	return this.Field13
}

func NewNidRepPackedNativeFromFace(that NidRepPackedNativeFace) *NidRepPackedNative {
	this := &NidRepPackedNative{}
	this.Field1 = that.GetField1()
	this.Field2 = that.GetField2()
	this.Field3 = that.GetField3()
	this.Field4 = that.GetField4()
	this.Field5 = that.GetField5()
	this.Field6 = that.GetField6()
	this.Field7 = that.GetField7()
	this.Field8 = that.GetField8()
	this.Field9 = that.GetField9()
	this.Field10 = that.GetField10()
	this.Field11 = that.GetField11()
	this.Field12 = that.GetField12()
	this.Field13 = that.GetField13()
	return this
}

type NinRepPackedNativeFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetField1() []float64
	GetField2() []float32
	GetField3() []int32
	GetField4() []int64
	GetField5() []uint32
	GetField6() []uint64
	GetField7() []int32
	GetField8() []int64
	GetField9() []uint32
	GetField10() []int32
	GetField11() []uint64
	GetField12() []int64
	GetField13() []bool
}

func (this *NinRepPackedNative) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *NinRepPackedNative) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewNinRepPackedNativeFromFace(this)
}

func (this *NinRepPackedNative) GetField1() []float64 {
	return this.Field1
}

func (this *NinRepPackedNative) GetField2() []float32 {
	return this.Field2
}

func (this *NinRepPackedNative) GetField3() []int32 {
	return this.Field3
}

func (this *NinRepPackedNative) GetField4() []int64 {
	return this.Field4
}

func (this *NinRepPackedNative) GetField5() []uint32 {
	return this.Field5
}

func (this *NinRepPackedNative) GetField6() []uint64 {
	return this.Field6
}

func (this *NinRepPackedNative) GetField7() []int32 {
	return this.Field7
}

func (this *NinRepPackedNative) GetField8() []int64 {
	return this.Field8
}

func (this *NinRepPackedNative) GetField9() []uint32 {
	return this.Field9
}

func (this *NinRepPackedNative) GetField10() []int32 {
	return this.Field10
}

func (this *NinRepPackedNative) GetField11() []uint64 {
	return this.Field11
}

func (this *NinRepPackedNative) GetField12() []int64 {
	return this.Field12
}

func (this *NinRepPackedNative) GetField13() []bool {
	return this.Field13
}

func NewNinRepPackedNativeFromFace(that NinRepPackedNativeFace) *NinRepPackedNative {
	this := &NinRepPackedNative{}
	this.Field1 = that.GetField1()
	this.Field2 = that.GetField2()
	this.Field3 = that.GetField3()
	this.Field4 = that.GetField4()
	this.Field5 = that.GetField5()
	this.Field6 = that.GetField6()
	this.Field7 = that.GetField7()
	this.Field8 = that.GetField8()
	this.Field9 = that.GetField9()
	this.Field10 = that.GetField10()
	this.Field11 = that.GetField11()
	this.Field12 = that.GetField12()
	this.Field13 = that.GetField13()
	return this
}

type NidOptStructFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetField1() float64
	GetField2() float32
	GetField3() NidOptNative
	GetField4() NinOptNative
	GetField6() uint64
	GetField7() int32
	GetField8() NidOptNative
	GetField13() bool
	GetField14() string
	GetField15() []byte
}

func (this *NidOptStruct) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *NidOptStruct) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewNidOptStructFromFace(this)
}

func (this *NidOptStruct) GetField1() float64 {
	return this.Field1
}

func (this *NidOptStruct) GetField2() float32 {
	return this.Field2
}

func (this *NidOptStruct) GetField3() NidOptNative {
	return this.Field3
}

func (this *NidOptStruct) GetField4() NinOptNative {
	return this.Field4
}

func (this *NidOptStruct) GetField6() uint64 {
	return this.Field6
}

func (this *NidOptStruct) GetField7() int32 {
	return this.Field7
}

func (this *NidOptStruct) GetField8() NidOptNative {
	return this.Field8
}

func (this *NidOptStruct) GetField13() bool {
	return this.Field13
}

func (this *NidOptStruct) GetField14() string {
	return this.Field14
}

func (this *NidOptStruct) GetField15() []byte {
	return this.Field15
}

func NewNidOptStructFromFace(that NidOptStructFace) *NidOptStruct {
	this := &NidOptStruct{}
	this.Field1 = that.GetField1()
	this.Field2 = that.GetField2()
	this.Field3 = that.GetField3()
	this.Field4 = that.GetField4()
	this.Field6 = that.GetField6()
	this.Field7 = that.GetField7()
	this.Field8 = that.GetField8()
	this.Field13 = that.GetField13()
	this.Field14 = that.GetField14()
	this.Field15 = that.GetField15()
	return this
}

type NinOptStructFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetField1() *float64
	GetField2() *float32
	GetField3() *NidOptNative
	GetField4() *NinOptNative
	GetField6() *uint64
	GetField7() *int32
	GetField8() *NidOptNative
	GetField13() *bool
	GetField14() *string
	GetField15() []byte
}

func (this *NinOptStruct) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *NinOptStruct) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewNinOptStructFromFace(this)
}

func (this *NinOptStruct) GetField1() *float64 {
	return this.Field1
}

func (this *NinOptStruct) GetField2() *float32 {
	return this.Field2
}

func (this *NinOptStruct) GetField3() *NidOptNative {
	return this.Field3
}

func (this *NinOptStruct) GetField4() *NinOptNative {
	return this.Field4
}

func (this *NinOptStruct) GetField6() *uint64 {
	return this.Field6
}

func (this *NinOptStruct) GetField7() *int32 {
	return this.Field7
}

func (this *NinOptStruct) GetField8() *NidOptNative {
	return this.Field8
}

func (this *NinOptStruct) GetField13() *bool {
	return this.Field13
}

func (this *NinOptStruct) GetField14() *string {
	return this.Field14
}

func (this *NinOptStruct) GetField15() []byte {
	return this.Field15
}

func NewNinOptStructFromFace(that NinOptStructFace) *NinOptStruct {
	this := &NinOptStruct{}
	this.Field1 = that.GetField1()
	this.Field2 = that.GetField2()
	this.Field3 = that.GetField3()
	this.Field4 = that.GetField4()
	this.Field6 = that.GetField6()
	this.Field7 = that.GetField7()
	this.Field8 = that.GetField8()
	this.Field13 = that.GetField13()
	this.Field14 = that.GetField14()
	this.Field15 = that.GetField15()
	return this
}

type NidRepStructFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetField1() []float64
	GetField2() []float32
	GetField3() []NidOptNative
	GetField4() []NinOptNative
	GetField6() []uint64
	GetField7() []int32
	GetField8() []NidOptNative
	GetField13() []bool
	GetField14() []string
	GetField15() [][]byte
}

func (this *NidRepStruct) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *NidRepStruct) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewNidRepStructFromFace(this)
}

func (this *NidRepStruct) GetField1() []float64 {
	return this.Field1
}

func (this *NidRepStruct) GetField2() []float32 {
	return this.Field2
}

func (this *NidRepStruct) GetField3() []NidOptNative {
	return this.Field3
}

func (this *NidRepStruct) GetField4() []NinOptNative {
	return this.Field4
}

func (this *NidRepStruct) GetField6() []uint64 {
	return this.Field6
}

func (this *NidRepStruct) GetField7() []int32 {
	return this.Field7
}

func (this *NidRepStruct) GetField8() []NidOptNative {
	return this.Field8
}

func (this *NidRepStruct) GetField13() []bool {
	return this.Field13
}

func (this *NidRepStruct) GetField14() []string {
	return this.Field14
}

func (this *NidRepStruct) GetField15() [][]byte {
	return this.Field15
}

func NewNidRepStructFromFace(that NidRepStructFace) *NidRepStruct {
	this := &NidRepStruct{}
	this.Field1 = that.GetField1()
	this.Field2 = that.GetField2()
	this.Field3 = that.GetField3()
	this.Field4 = that.GetField4()
	this.Field6 = that.GetField6()
	this.Field7 = that.GetField7()
	this.Field8 = that.GetField8()
	this.Field13 = that.GetField13()
	this.Field14 = that.GetField14()
	this.Field15 = that.GetField15()
	return this
}

type NinRepStructFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetField1() []float64
	GetField2() []float32
	GetField3() []*NidOptNative
	GetField4() []*NinOptNative
	GetField6() []uint64
	GetField7() []int32
	GetField8() []*NidOptNative
	GetField13() []bool
	GetField14() []string
	GetField15() [][]byte
}

func (this *NinRepStruct) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *NinRepStruct) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewNinRepStructFromFace(this)
}

func (this *NinRepStruct) GetField1() []float64 {
	return this.Field1
}

func (this *NinRepStruct) GetField2() []float32 {
	return this.Field2
}

func (this *NinRepStruct) GetField3() []*NidOptNative {
	return this.Field3
}

func (this *NinRepStruct) GetField4() []*NinOptNative {
	return this.Field4
}

func (this *NinRepStruct) GetField6() []uint64 {
	return this.Field6
}

func (this *NinRepStruct) GetField7() []int32 {
	return this.Field7
}

func (this *NinRepStruct) GetField8() []*NidOptNative {
	return this.Field8
}

func (this *NinRepStruct) GetField13() []bool {
	return this.Field13
}

func (this *NinRepStruct) GetField14() []string {
	return this.Field14
}

func (this *NinRepStruct) GetField15() [][]byte {
	return this.Field15
}

func NewNinRepStructFromFace(that NinRepStructFace) *NinRepStruct {
	this := &NinRepStruct{}
	this.Field1 = that.GetField1()
	this.Field2 = that.GetField2()
	this.Field3 = that.GetField3()
	this.Field4 = that.GetField4()
	this.Field6 = that.GetField6()
	this.Field7 = that.GetField7()
	this.Field8 = that.GetField8()
	this.Field13 = that.GetField13()
	this.Field14 = that.GetField14()
	this.Field15 = that.GetField15()
	return this
}

type NidEmbeddedStructFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetNidOptNative() *NidOptNative
	GetField200() NidOptNative
	GetField210() bool
}

func (this *NidEmbeddedStruct) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *NidEmbeddedStruct) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewNidEmbeddedStructFromFace(this)
}

func (this *NidEmbeddedStruct) GetNidOptNative() *NidOptNative {
	return this.NidOptNative
}

func (this *NidEmbeddedStruct) GetField200() NidOptNative {
	return this.Field200
}

func (this *NidEmbeddedStruct) GetField210() bool {
	return this.Field210
}

func NewNidEmbeddedStructFromFace(that NidEmbeddedStructFace) *NidEmbeddedStruct {
	this := &NidEmbeddedStruct{}
	this.NidOptNative = that.GetNidOptNative()
	this.Field200 = that.GetField200()
	this.Field210 = that.GetField210()
	return this
}

type NinEmbeddedStructFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetNidOptNative() *NidOptNative
	GetField200() *NidOptNative
	GetField210() *bool
}

func (this *NinEmbeddedStruct) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *NinEmbeddedStruct) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewNinEmbeddedStructFromFace(this)
}

func (this *NinEmbeddedStruct) GetNidOptNative() *NidOptNative {
	return this.NidOptNative
}

func (this *NinEmbeddedStruct) GetField200() *NidOptNative {
	return this.Field200
}

func (this *NinEmbeddedStruct) GetField210() *bool {
	return this.Field210
}

func NewNinEmbeddedStructFromFace(that NinEmbeddedStructFace) *NinEmbeddedStruct {
	this := &NinEmbeddedStruct{}
	this.NidOptNative = that.GetNidOptNative()
	this.Field200 = that.GetField200()
	this.Field210 = that.GetField210()
	return this
}

type NidNestedStructFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetField1() NidOptStruct
	GetField2() []NidRepStruct
}

func (this *NidNestedStruct) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *NidNestedStruct) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewNidNestedStructFromFace(this)
}

func (this *NidNestedStruct) GetField1() NidOptStruct {
	return this.Field1
}

func (this *NidNestedStruct) GetField2() []NidRepStruct {
	return this.Field2
}

func NewNidNestedStructFromFace(that NidNestedStructFace) *NidNestedStruct {
	this := &NidNestedStruct{}
	this.Field1 = that.GetField1()
	this.Field2 = that.GetField2()
	return this
}

type NinNestedStructFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetField1() *NinOptStruct
	GetField2() []*NinRepStruct
}

func (this *NinNestedStruct) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *NinNestedStruct) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewNinNestedStructFromFace(this)
}

func (this *NinNestedStruct) GetField1() *NinOptStruct {
	return this.Field1
}

func (this *NinNestedStruct) GetField2() []*NinRepStruct {
	return this.Field2
}

func NewNinNestedStructFromFace(that NinNestedStructFace) *NinNestedStruct {
	this := &NinNestedStruct{}
	this.Field1 = that.GetField1()
	this.Field2 = that.GetField2()
	return this
}

type NidOptCustomFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetId() Uuid
	GetValue() github_com_gogo_protobuf_test_custom.Uint128
}

func (this *NidOptCustom) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *NidOptCustom) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewNidOptCustomFromFace(this)
}

func (this *NidOptCustom) GetId() Uuid {
	return this.Id
}

func (this *NidOptCustom) GetValue() github_com_gogo_protobuf_test_custom.Uint128 {
	return this.Value
}

func NewNidOptCustomFromFace(that NidOptCustomFace) *NidOptCustom {
	this := &NidOptCustom{}
	this.Id = that.GetId()
	this.Value = that.GetValue()
	return this
}

type CustomDashFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetValue() *github_com_gogo_protobuf_test_custom_dash_type.Bytes
}

func (this *CustomDash) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *CustomDash) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewCustomDashFromFace(this)
}

func (this *CustomDash) GetValue() *github_com_gogo_protobuf_test_custom_dash_type.Bytes {
	return this.Value
}

func NewCustomDashFromFace(that CustomDashFace) *CustomDash {
	this := &CustomDash{}
	this.Value = that.GetValue()
	return this
}

type NinOptCustomFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetId() *Uuid
	GetValue() *github_com_gogo_protobuf_test_custom.Uint128
}

func (this *NinOptCustom) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *NinOptCustom) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewNinOptCustomFromFace(this)
}

func (this *NinOptCustom) GetId() *Uuid {
	return this.Id
}

func (this *NinOptCustom) GetValue() *github_com_gogo_protobuf_test_custom.Uint128 {
	return this.Value
}

func NewNinOptCustomFromFace(that NinOptCustomFace) *NinOptCustom {
	this := &NinOptCustom{}
	this.Id = that.GetId()
	this.Value = that.GetValue()
	return this
}

type NidRepCustomFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetId() []Uuid
	GetValue() []github_com_gogo_protobuf_test_custom.Uint128
}

func (this *NidRepCustom) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *NidRepCustom) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewNidRepCustomFromFace(this)
}

func (this *NidRepCustom) GetId() []Uuid {
	return this.Id
}

func (this *NidRepCustom) GetValue() []github_com_gogo_protobuf_test_custom.Uint128 {
	return this.Value
}

func NewNidRepCustomFromFace(that NidRepCustomFace) *NidRepCustom {
	this := &NidRepCustom{}
	this.Id = that.GetId()
	this.Value = that.GetValue()
	return this
}

type NinRepCustomFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetId() []Uuid
	GetValue() []github_com_gogo_protobuf_test_custom.Uint128
}

func (this *NinRepCustom) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *NinRepCustom) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewNinRepCustomFromFace(this)
}

func (this *NinRepCustom) GetId() []Uuid {
	return this.Id
}

func (this *NinRepCustom) GetValue() []github_com_gogo_protobuf_test_custom.Uint128 {
	return this.Value
}

func NewNinRepCustomFromFace(that NinRepCustomFace) *NinRepCustom {
	this := &NinRepCustom{}
	this.Id = that.GetId()
	this.Value = that.GetValue()
	return this
}

type NinOptNativeUnionFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetField1() *float64
	GetField2() *float32
	GetField3() *int32
	GetField4() *int64
	GetField5() *uint32
	GetField6() *uint64
	GetField13() *bool
	GetField14() *string
	GetField15() []byte
}

func (this *NinOptNativeUnion) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *NinOptNativeUnion) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewNinOptNativeUnionFromFace(this)
}

func (this *NinOptNativeUnion) GetField1() *float64 {
	return this.Field1
}

func (this *NinOptNativeUnion) GetField2() *float32 {
	return this.Field2
}

func (this *NinOptNativeUnion) GetField3() *int32 {
	return this.Field3
}

func (this *NinOptNativeUnion) GetField4() *int64 {
	return this.Field4
}

func (this *NinOptNativeUnion) GetField5() *uint32 {
	return this.Field5
}

func (this *NinOptNativeUnion) GetField6() *uint64 {
	return this.Field6
}

func (this *NinOptNativeUnion) GetField13() *bool {
	return this.Field13
}

func (this *NinOptNativeUnion) GetField14() *string {
	return this.Field14
}

func (this *NinOptNativeUnion) GetField15() []byte {
	return this.Field15
}

func NewNinOptNativeUnionFromFace(that NinOptNativeUnionFace) *NinOptNativeUnion {
	this := &NinOptNativeUnion{}
	this.Field1 = that.GetField1()
	this.Field2 = that.GetField2()
	this.Field3 = that.GetField3()
	this.Field4 = that.GetField4()
	this.Field5 = that.GetField5()
	this.Field6 = that.GetField6()
	this.Field13 = that.GetField13()
	this.Field14 = that.GetField14()
	this.Field15 = that.GetField15()
	return this
}

type NinOptStructUnionFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetField1() *float64
	GetField2() *float32
	GetField3() *NidOptNative
	GetField4() *NinOptNative
	GetField6() *uint64
	GetField7() *int32
	GetField13() *bool
	GetField14() *string
	GetField15() []byte
}

func (this *NinOptStructUnion) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *NinOptStructUnion) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewNinOptStructUnionFromFace(this)
}

func (this *NinOptStructUnion) GetField1() *float64 {
	return this.Field1
}

func (this *NinOptStructUnion) GetField2() *float32 {
	return this.Field2
}

func (this *NinOptStructUnion) GetField3() *NidOptNative {
	return this.Field3
}

func (this *NinOptStructUnion) GetField4() *NinOptNative {
	return this.Field4
}

func (this *NinOptStructUnion) GetField6() *uint64 {
	return this.Field6
}

func (this *NinOptStructUnion) GetField7() *int32 {
	return this.Field7
}

func (this *NinOptStructUnion) GetField13() *bool {
	return this.Field13
}

func (this *NinOptStructUnion) GetField14() *string {
	return this.Field14
}

func (this *NinOptStructUnion) GetField15() []byte {
	return this.Field15
}

func NewNinOptStructUnionFromFace(that NinOptStructUnionFace) *NinOptStructUnion {
	this := &NinOptStructUnion{}
	this.Field1 = that.GetField1()
	this.Field2 = that.GetField2()
	this.Field3 = that.GetField3()
	this.Field4 = that.GetField4()
	this.Field6 = that.GetField6()
	this.Field7 = that.GetField7()
	this.Field13 = that.GetField13()
	this.Field14 = that.GetField14()
	this.Field15 = that.GetField15()
	return this
}

type NinEmbeddedStructUnionFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetNidOptNative() *NidOptNative
	GetField200() *NinOptNative
	GetField210() *bool
}

func (this *NinEmbeddedStructUnion) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *NinEmbeddedStructUnion) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewNinEmbeddedStructUnionFromFace(this)
}

func (this *NinEmbeddedStructUnion) GetNidOptNative() *NidOptNative {
	return this.NidOptNative
}

func (this *NinEmbeddedStructUnion) GetField200() *NinOptNative {
	return this.Field200
}

func (this *NinEmbeddedStructUnion) GetField210() *bool {
	return this.Field210
}

func NewNinEmbeddedStructUnionFromFace(that NinEmbeddedStructUnionFace) *NinEmbeddedStructUnion {
	this := &NinEmbeddedStructUnion{}
	this.NidOptNative = that.GetNidOptNative()
	this.Field200 = that.GetField200()
	this.Field210 = that.GetField210()
	return this
}

type NinNestedStructUnionFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetField1() *NinOptNativeUnion
	GetField2() *NinOptStructUnion
	GetField3() *NinEmbeddedStructUnion
}

func (this *NinNestedStructUnion) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *NinNestedStructUnion) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewNinNestedStructUnionFromFace(this)
}

func (this *NinNestedStructUnion) GetField1() *NinOptNativeUnion {
	return this.Field1
}

func (this *NinNestedStructUnion) GetField2() *NinOptStructUnion {
	return this.Field2
}

func (this *NinNestedStructUnion) GetField3() *NinEmbeddedStructUnion {
	return this.Field3
}

func NewNinNestedStructUnionFromFace(that NinNestedStructUnionFace) *NinNestedStructUnion {
	this := &NinNestedStructUnion{}
	this.Field1 = that.GetField1()
	this.Field2 = that.GetField2()
	this.Field3 = that.GetField3()
	return this
}

type TreeFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetOr() *OrBranch
	GetAnd() *AndBranch
	GetLeaf() *Leaf
}

func (this *Tree) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *Tree) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewTreeFromFace(this)
}

func (this *Tree) GetOr() *OrBranch {
	return this.Or
}

func (this *Tree) GetAnd() *AndBranch {
	return this.And
}

func (this *Tree) GetLeaf() *Leaf {
	return this.Leaf
}

func NewTreeFromFace(that TreeFace) *Tree {
	this := &Tree{}
	this.Or = that.GetOr()
	this.And = that.GetAnd()
	this.Leaf = that.GetLeaf()
	return this
}

type OrBranchFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetLeft() Tree
	GetRight() Tree
}

func (this *OrBranch) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *OrBranch) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewOrBranchFromFace(this)
}

func (this *OrBranch) GetLeft() Tree {
	return this.Left
}

func (this *OrBranch) GetRight() Tree {
	return this.Right
}

func NewOrBranchFromFace(that OrBranchFace) *OrBranch {
	this := &OrBranch{}
	this.Left = that.GetLeft()
	this.Right = that.GetRight()
	return this
}

type AndBranchFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetLeft() Tree
	GetRight() Tree
}

func (this *AndBranch) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *AndBranch) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewAndBranchFromFace(this)
}

func (this *AndBranch) GetLeft() Tree {
	return this.Left
}

func (this *AndBranch) GetRight() Tree {
	return this.Right
}

func NewAndBranchFromFace(that AndBranchFace) *AndBranch {
	this := &AndBranch{}
	this.Left = that.GetLeft()
	this.Right = that.GetRight()
	return this
}

type LeafFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetValue() int64
	GetStrValue() string
}

func (this *Leaf) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *Leaf) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewLeafFromFace(this)
}

func (this *Leaf) GetValue() int64 {
	return this.Value
}

func (this *Leaf) GetStrValue() string {
	return this.StrValue
}

func NewLeafFromFace(that LeafFace) *Leaf {
	this := &Leaf{}
	this.Value = that.GetValue()
	this.StrValue = that.GetStrValue()
	return this
}

type DeepTreeFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetDown() *ADeepBranch
	GetAnd() *AndDeepBranch
	GetLeaf() *DeepLeaf
}

func (this *DeepTree) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *DeepTree) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewDeepTreeFromFace(this)
}

func (this *DeepTree) GetDown() *ADeepBranch {
	return this.Down
}

func (this *DeepTree) GetAnd() *AndDeepBranch {
	return this.And
}

func (this *DeepTree) GetLeaf() *DeepLeaf {
	return this.Leaf
}

func NewDeepTreeFromFace(that DeepTreeFace) *DeepTree {
	this := &DeepTree{}
	this.Down = that.GetDown()
	this.And = that.GetAnd()
	this.Leaf = that.GetLeaf()
	return this
}

type ADeepBranchFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetDown() DeepTree
}

func (this *ADeepBranch) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *ADeepBranch) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewADeepBranchFromFace(this)
}

func (this *ADeepBranch) GetDown() DeepTree {
	return this.Down
}

func NewADeepBranchFromFace(that ADeepBranchFace) *ADeepBranch {
	this := &ADeepBranch{}
	this.Down = that.GetDown()
	return this
}

type AndDeepBranchFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetLeft() DeepTree
	GetRight() DeepTree
}

func (this *AndDeepBranch) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *AndDeepBranch) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewAndDeepBranchFromFace(this)
}

func (this *AndDeepBranch) GetLeft() DeepTree {
	return this.Left
}

func (this *AndDeepBranch) GetRight() DeepTree {
	return this.Right
}

func NewAndDeepBranchFromFace(that AndDeepBranchFace) *AndDeepBranch {
	this := &AndDeepBranch{}
	this.Left = that.GetLeft()
	this.Right = that.GetRight()
	return this
}

type DeepLeafFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetTree() Tree
}

func (this *DeepLeaf) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *DeepLeaf) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewDeepLeafFromFace(this)
}

func (this *DeepLeaf) GetTree() Tree {
	return this.Tree
}

func NewDeepLeafFromFace(that DeepLeafFace) *DeepLeaf {
	this := &DeepLeaf{}
	this.Tree = that.GetTree()
	return this
}

type NilFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
}

func (this *Nil) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *Nil) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewNilFromFace(this)
}

func NewNilFromFace(that NilFace) *Nil {
	this := &Nil{}
	return this
}

type NidOptEnumFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetField1() TheTestEnum
}

func (this *NidOptEnum) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *NidOptEnum) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewNidOptEnumFromFace(this)
}

func (this *NidOptEnum) GetField1() TheTestEnum {
	return this.Field1
}

func NewNidOptEnumFromFace(that NidOptEnumFace) *NidOptEnum {
	this := &NidOptEnum{}
	this.Field1 = that.GetField1()
	return this
}

type NinOptEnumFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetField1() *TheTestEnum
	GetField2() *YetAnotherTestEnum
	GetField3() *YetYetAnotherTestEnum
}

func (this *NinOptEnum) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *NinOptEnum) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewNinOptEnumFromFace(this)
}

func (this *NinOptEnum) GetField1() *TheTestEnum {
	return this.Field1
}

func (this *NinOptEnum) GetField2() *YetAnotherTestEnum {
	return this.Field2
}

func (this *NinOptEnum) GetField3() *YetYetAnotherTestEnum {
	return this.Field3
}

func NewNinOptEnumFromFace(that NinOptEnumFace) *NinOptEnum {
	this := &NinOptEnum{}
	this.Field1 = that.GetField1()
	this.Field2 = that.GetField2()
	this.Field3 = that.GetField3()
	return this
}

type NidRepEnumFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetField1() []TheTestEnum
	GetField2() []YetAnotherTestEnum
	GetField3() []YetYetAnotherTestEnum
}

func (this *NidRepEnum) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *NidRepEnum) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewNidRepEnumFromFace(this)
}

func (this *NidRepEnum) GetField1() []TheTestEnum {
	return this.Field1
}

func (this *NidRepEnum) GetField2() []YetAnotherTestEnum {
	return this.Field2
}

func (this *NidRepEnum) GetField3() []YetYetAnotherTestEnum {
	return this.Field3
}

func NewNidRepEnumFromFace(that NidRepEnumFace) *NidRepEnum {
	this := &NidRepEnum{}
	this.Field1 = that.GetField1()
	this.Field2 = that.GetField2()
	this.Field3 = that.GetField3()
	return this
}

type NinRepEnumFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetField1() []TheTestEnum
	GetField2() []YetAnotherTestEnum
	GetField3() []YetYetAnotherTestEnum
}

func (this *NinRepEnum) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *NinRepEnum) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewNinRepEnumFromFace(this)
}

func (this *NinRepEnum) GetField1() []TheTestEnum {
	return this.Field1
}

func (this *NinRepEnum) GetField2() []YetAnotherTestEnum {
	return this.Field2
}

func (this *NinRepEnum) GetField3() []YetYetAnotherTestEnum {
	return this.Field3
}

func NewNinRepEnumFromFace(that NinRepEnumFace) *NinRepEnum {
	this := &NinRepEnum{}
	this.Field1 = that.GetField1()
	this.Field2 = that.GetField2()
	this.Field3 = that.GetField3()
	return this
}

type AnotherNinOptEnumFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetField1() *AnotherTestEnum
	GetField2() *YetAnotherTestEnum
	GetField3() *YetYetAnotherTestEnum
}

func (this *AnotherNinOptEnum) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *AnotherNinOptEnum) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewAnotherNinOptEnumFromFace(this)
}

func (this *AnotherNinOptEnum) GetField1() *AnotherTestEnum {
	return this.Field1
}

func (this *AnotherNinOptEnum) GetField2() *YetAnotherTestEnum {
	return this.Field2
}

func (this *AnotherNinOptEnum) GetField3() *YetYetAnotherTestEnum {
	return this.Field3
}

func NewAnotherNinOptEnumFromFace(that AnotherNinOptEnumFace) *AnotherNinOptEnum {
	this := &AnotherNinOptEnum{}
	this.Field1 = that.GetField1()
	this.Field2 = that.GetField2()
	this.Field3 = that.GetField3()
	return this
}

type TimerFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetTime1() int64
	GetTime2() int64
	GetData() []byte
}

func (this *Timer) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *Timer) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewTimerFromFace(this)
}

func (this *Timer) GetTime1() int64 {
	return this.Time1
}

func (this *Timer) GetTime2() int64 {
	return this.Time2
}

func (this *Timer) GetData() []byte {
	return this.Data
}

func NewTimerFromFace(that TimerFace) *Timer {
	this := &Timer{}
	this.Time1 = that.GetTime1()
	this.Time2 = that.GetTime2()
	this.Data = that.GetData()
	return this
}

type NestedDefinitionFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetField1() *int64
	GetEnumField() *NestedDefinition_NestedEnum
	GetNNM() *NestedDefinition_NestedMessage_NestedNestedMsg
	GetNM() *NestedDefinition_NestedMessage
}

func (this *NestedDefinition) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *NestedDefinition) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewNestedDefinitionFromFace(this)
}

func (this *NestedDefinition) GetField1() *int64 {
	return this.Field1
}

func (this *NestedDefinition) GetEnumField() *NestedDefinition_NestedEnum {
	return this.EnumField
}

func (this *NestedDefinition) GetNNM() *NestedDefinition_NestedMessage_NestedNestedMsg {
	return this.NNM
}

func (this *NestedDefinition) GetNM() *NestedDefinition_NestedMessage {
	return this.NM
}

func NewNestedDefinitionFromFace(that NestedDefinitionFace) *NestedDefinition {
	this := &NestedDefinition{}
	this.Field1 = that.GetField1()
	this.EnumField = that.GetEnumField()
	this.NNM = that.GetNNM()
	this.NM = that.GetNM()
	return this
}

type NestedDefinition_NestedMessageFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetNestedField1() *uint64
	GetNNM() *NestedDefinition_NestedMessage_NestedNestedMsg
}

func (this *NestedDefinition_NestedMessage) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *NestedDefinition_NestedMessage) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewNestedDefinition_NestedMessageFromFace(this)
}

func (this *NestedDefinition_NestedMessage) GetNestedField1() *uint64 {
	return this.NestedField1
}

func (this *NestedDefinition_NestedMessage) GetNNM() *NestedDefinition_NestedMessage_NestedNestedMsg {
	return this.NNM
}

func NewNestedDefinition_NestedMessageFromFace(that NestedDefinition_NestedMessageFace) *NestedDefinition_NestedMessage {
	this := &NestedDefinition_NestedMessage{}
	this.NestedField1 = that.GetNestedField1()
	this.NNM = that.GetNNM()
	return this
}

type NestedDefinition_NestedMessage_NestedNestedMsgFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetNestedNestedField1() *string
}

func (this *NestedDefinition_NestedMessage_NestedNestedMsg) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *NestedDefinition_NestedMessage_NestedNestedMsg) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewNestedDefinition_NestedMessage_NestedNestedMsgFromFace(this)
}

func (this *NestedDefinition_NestedMessage_NestedNestedMsg) GetNestedNestedField1() *string {
	return this.NestedNestedField1
}

func NewNestedDefinition_NestedMessage_NestedNestedMsgFromFace(that NestedDefinition_NestedMessage_NestedNestedMsgFace) *NestedDefinition_NestedMessage_NestedNestedMsg {
	this := &NestedDefinition_NestedMessage_NestedNestedMsg{}
	this.NestedNestedField1 = that.GetNestedNestedField1()
	return this
}

type NestedScopeFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetA() *NestedDefinition_NestedMessage_NestedNestedMsg
	GetB() *NestedDefinition_NestedEnum
	GetC() *NestedDefinition_NestedMessage
}

func (this *NestedScope) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *NestedScope) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewNestedScopeFromFace(this)
}

func (this *NestedScope) GetA() *NestedDefinition_NestedMessage_NestedNestedMsg {
	return this.A
}

func (this *NestedScope) GetB() *NestedDefinition_NestedEnum {
	return this.B
}

func (this *NestedScope) GetC() *NestedDefinition_NestedMessage {
	return this.C
}

func NewNestedScopeFromFace(that NestedScopeFace) *NestedScope {
	this := &NestedScope{}
	this.A = that.GetA()
	this.B = that.GetB()
	this.C = that.GetC()
	return this
}

type CustomContainerFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetCustomStruct() NidOptCustom
}

func (this *CustomContainer) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *CustomContainer) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewCustomContainerFromFace(this)
}

func (this *CustomContainer) GetCustomStruct() NidOptCustom {
	return this.CustomStruct
}

func NewCustomContainerFromFace(that CustomContainerFace) *CustomContainer {
	this := &CustomContainer{}
	this.CustomStruct = that.GetCustomStruct()
	return this
}

type CustomNameNidOptNativeFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetFieldA() float64
	GetFieldB() float32
	GetFieldC() int32
	GetFieldD() int64
	GetFieldE() uint32
	GetFieldF() uint64
	GetFieldG() int32
	GetFieldH() int64
	GetFieldI() uint32
	GetFieldJ() int32
	GetFieldK() uint64
	GetFieldL() int64
	GetFieldM() bool
	GetFieldN() string
	GetFieldO() []byte
}

func (this *CustomNameNidOptNative) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *CustomNameNidOptNative) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewCustomNameNidOptNativeFromFace(this)
}

func (this *CustomNameNidOptNative) GetFieldA() float64 {
	return this.FieldA
}

func (this *CustomNameNidOptNative) GetFieldB() float32 {
	return this.FieldB
}

func (this *CustomNameNidOptNative) GetFieldC() int32 {
	return this.FieldC
}

func (this *CustomNameNidOptNative) GetFieldD() int64 {
	return this.FieldD
}

func (this *CustomNameNidOptNative) GetFieldE() uint32 {
	return this.FieldE
}

func (this *CustomNameNidOptNative) GetFieldF() uint64 {
	return this.FieldF
}

func (this *CustomNameNidOptNative) GetFieldG() int32 {
	return this.FieldG
}

func (this *CustomNameNidOptNative) GetFieldH() int64 {
	return this.FieldH
}

func (this *CustomNameNidOptNative) GetFieldI() uint32 {
	return this.FieldI
}

func (this *CustomNameNidOptNative) GetFieldJ() int32 {
	return this.FieldJ
}

func (this *CustomNameNidOptNative) GetFieldK() uint64 {
	return this.FieldK
}

func (this *CustomNameNidOptNative) GetFieldL() int64 {
	return this.FieldL
}

func (this *CustomNameNidOptNative) GetFieldM() bool {
	return this.FieldM
}

func (this *CustomNameNidOptNative) GetFieldN() string {
	return this.FieldN
}

func (this *CustomNameNidOptNative) GetFieldO() []byte {
	return this.FieldO
}

func NewCustomNameNidOptNativeFromFace(that CustomNameNidOptNativeFace) *CustomNameNidOptNative {
	this := &CustomNameNidOptNative{}
	this.FieldA = that.GetFieldA()
	this.FieldB = that.GetFieldB()
	this.FieldC = that.GetFieldC()
	this.FieldD = that.GetFieldD()
	this.FieldE = that.GetFieldE()
	this.FieldF = that.GetFieldF()
	this.FieldG = that.GetFieldG()
	this.FieldH = that.GetFieldH()
	this.FieldI = that.GetFieldI()
	this.FieldJ = that.GetFieldJ()
	this.FieldK = that.GetFieldK()
	this.FieldL = that.GetFieldL()
	this.FieldM = that.GetFieldM()
	this.FieldN = that.GetFieldN()
	this.FieldO = that.GetFieldO()
	return this
}

type CustomNameNinOptNativeFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetFieldA() *float64
	GetFieldB() *float32
	GetFieldC() *int32
	GetFieldD() *int64
	GetFieldE() *uint32
	GetFieldF() *uint64
	GetFieldG() *int32
	GetFieldH() *int64
	GetFieldI() *uint32
	GetFieldJ() *int32
	GetFieldK() *uint64
	GetFielL() *int64
	GetFieldM() *bool
	GetFieldN() *string
	GetFieldO() []byte
}

func (this *CustomNameNinOptNative) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *CustomNameNinOptNative) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewCustomNameNinOptNativeFromFace(this)
}

func (this *CustomNameNinOptNative) GetFieldA() *float64 {
	return this.FieldA
}

func (this *CustomNameNinOptNative) GetFieldB() *float32 {
	return this.FieldB
}

func (this *CustomNameNinOptNative) GetFieldC() *int32 {
	return this.FieldC
}

func (this *CustomNameNinOptNative) GetFieldD() *int64 {
	return this.FieldD
}

func (this *CustomNameNinOptNative) GetFieldE() *uint32 {
	return this.FieldE
}

func (this *CustomNameNinOptNative) GetFieldF() *uint64 {
	return this.FieldF
}

func (this *CustomNameNinOptNative) GetFieldG() *int32 {
	return this.FieldG
}

func (this *CustomNameNinOptNative) GetFieldH() *int64 {
	return this.FieldH
}

func (this *CustomNameNinOptNative) GetFieldI() *uint32 {
	return this.FieldI
}

func (this *CustomNameNinOptNative) GetFieldJ() *int32 {
	return this.FieldJ
}

func (this *CustomNameNinOptNative) GetFieldK() *uint64 {
	return this.FieldK
}

func (this *CustomNameNinOptNative) GetFielL() *int64 {
	return this.FielL
}

func (this *CustomNameNinOptNative) GetFieldM() *bool {
	return this.FieldM
}

func (this *CustomNameNinOptNative) GetFieldN() *string {
	return this.FieldN
}

func (this *CustomNameNinOptNative) GetFieldO() []byte {
	return this.FieldO
}

func NewCustomNameNinOptNativeFromFace(that CustomNameNinOptNativeFace) *CustomNameNinOptNative {
	this := &CustomNameNinOptNative{}
	this.FieldA = that.GetFieldA()
	this.FieldB = that.GetFieldB()
	this.FieldC = that.GetFieldC()
	this.FieldD = that.GetFieldD()
	this.FieldE = that.GetFieldE()
	this.FieldF = that.GetFieldF()
	this.FieldG = that.GetFieldG()
	this.FieldH = that.GetFieldH()
	this.FieldI = that.GetFieldI()
	this.FieldJ = that.GetFieldJ()
	this.FieldK = that.GetFieldK()
	this.FielL = that.GetFielL()
	this.FieldM = that.GetFieldM()
	this.FieldN = that.GetFieldN()
	this.FieldO = that.GetFieldO()
	return this
}

type CustomNameNinRepNativeFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetFieldA() []float64
	GetFieldB() []float32
	GetFieldC() []int32
	GetFieldD() []int64
	GetFieldE() []uint32
	GetFieldF() []uint64
	GetFieldG() []int32
	GetFieldH() []int64
	GetFieldI() []uint32
	GetFieldJ() []int32
	GetFieldK() []uint64
	GetFieldL() []int64
	GetFieldM() []bool
	GetFieldN() []string
	GetFieldO() [][]byte
}

func (this *CustomNameNinRepNative) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *CustomNameNinRepNative) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewCustomNameNinRepNativeFromFace(this)
}

func (this *CustomNameNinRepNative) GetFieldA() []float64 {
	return this.FieldA
}

func (this *CustomNameNinRepNative) GetFieldB() []float32 {
	return this.FieldB
}

func (this *CustomNameNinRepNative) GetFieldC() []int32 {
	return this.FieldC
}

func (this *CustomNameNinRepNative) GetFieldD() []int64 {
	return this.FieldD
}

func (this *CustomNameNinRepNative) GetFieldE() []uint32 {
	return this.FieldE
}

func (this *CustomNameNinRepNative) GetFieldF() []uint64 {
	return this.FieldF
}

func (this *CustomNameNinRepNative) GetFieldG() []int32 {
	return this.FieldG
}

func (this *CustomNameNinRepNative) GetFieldH() []int64 {
	return this.FieldH
}

func (this *CustomNameNinRepNative) GetFieldI() []uint32 {
	return this.FieldI
}

func (this *CustomNameNinRepNative) GetFieldJ() []int32 {
	return this.FieldJ
}

func (this *CustomNameNinRepNative) GetFieldK() []uint64 {
	return this.FieldK
}

func (this *CustomNameNinRepNative) GetFieldL() []int64 {
	return this.FieldL
}

func (this *CustomNameNinRepNative) GetFieldM() []bool {
	return this.FieldM
}

func (this *CustomNameNinRepNative) GetFieldN() []string {
	return this.FieldN
}

func (this *CustomNameNinRepNative) GetFieldO() [][]byte {
	return this.FieldO
}

func NewCustomNameNinRepNativeFromFace(that CustomNameNinRepNativeFace) *CustomNameNinRepNative {
	this := &CustomNameNinRepNative{}
	this.FieldA = that.GetFieldA()
	this.FieldB = that.GetFieldB()
	this.FieldC = that.GetFieldC()
	this.FieldD = that.GetFieldD()
	this.FieldE = that.GetFieldE()
	this.FieldF = that.GetFieldF()
	this.FieldG = that.GetFieldG()
	this.FieldH = that.GetFieldH()
	this.FieldI = that.GetFieldI()
	this.FieldJ = that.GetFieldJ()
	this.FieldK = that.GetFieldK()
	this.FieldL = that.GetFieldL()
	this.FieldM = that.GetFieldM()
	this.FieldN = that.GetFieldN()
	this.FieldO = that.GetFieldO()
	return this
}

type CustomNameNinStructFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetFieldA() *float64
	GetFieldB() *float32
	GetFieldC() *NidOptNative
	GetFieldD() []*NinOptNative
	GetFieldE() *uint64
	GetFieldF() *int32
	GetFieldG() *NidOptNative
	GetFieldH() *bool
	GetFieldI() *string
	GetFieldJ() []byte
}

func (this *CustomNameNinStruct) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *CustomNameNinStruct) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewCustomNameNinStructFromFace(this)
}

func (this *CustomNameNinStruct) GetFieldA() *float64 {
	return this.FieldA
}

func (this *CustomNameNinStruct) GetFieldB() *float32 {
	return this.FieldB
}

func (this *CustomNameNinStruct) GetFieldC() *NidOptNative {
	return this.FieldC
}

func (this *CustomNameNinStruct) GetFieldD() []*NinOptNative {
	return this.FieldD
}

func (this *CustomNameNinStruct) GetFieldE() *uint64 {
	return this.FieldE
}

func (this *CustomNameNinStruct) GetFieldF() *int32 {
	return this.FieldF
}

func (this *CustomNameNinStruct) GetFieldG() *NidOptNative {
	return this.FieldG
}

func (this *CustomNameNinStruct) GetFieldH() *bool {
	return this.FieldH
}

func (this *CustomNameNinStruct) GetFieldI() *string {
	return this.FieldI
}

func (this *CustomNameNinStruct) GetFieldJ() []byte {
	return this.FieldJ
}

func NewCustomNameNinStructFromFace(that CustomNameNinStructFace) *CustomNameNinStruct {
	this := &CustomNameNinStruct{}
	this.FieldA = that.GetFieldA()
	this.FieldB = that.GetFieldB()
	this.FieldC = that.GetFieldC()
	this.FieldD = that.GetFieldD()
	this.FieldE = that.GetFieldE()
	this.FieldF = that.GetFieldF()
	this.FieldG = that.GetFieldG()
	this.FieldH = that.GetFieldH()
	this.FieldI = that.GetFieldI()
	this.FieldJ = that.GetFieldJ()
	return this
}

type CustomNameCustomTypeFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetFieldA() *Uuid
	GetFieldB() *github_com_gogo_protobuf_test_custom.Uint128
	GetFieldC() []Uuid
	GetFieldD() []github_com_gogo_protobuf_test_custom.Uint128
}

func (this *CustomNameCustomType) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *CustomNameCustomType) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewCustomNameCustomTypeFromFace(this)
}

func (this *CustomNameCustomType) GetFieldA() *Uuid {
	return this.FieldA
}

func (this *CustomNameCustomType) GetFieldB() *github_com_gogo_protobuf_test_custom.Uint128 {
	return this.FieldB
}

func (this *CustomNameCustomType) GetFieldC() []Uuid {
	return this.FieldC
}

func (this *CustomNameCustomType) GetFieldD() []github_com_gogo_protobuf_test_custom.Uint128 {
	return this.FieldD
}

func NewCustomNameCustomTypeFromFace(that CustomNameCustomTypeFace) *CustomNameCustomType {
	this := &CustomNameCustomType{}
	this.FieldA = that.GetFieldA()
	this.FieldB = that.GetFieldB()
	this.FieldC = that.GetFieldC()
	this.FieldD = that.GetFieldD()
	return this
}

type CustomNameNinEmbeddedStructUnionFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetNidOptNative() *NidOptNative
	GetFieldA() *NinOptNative
	GetFieldB() *bool
}

func (this *CustomNameNinEmbeddedStructUnion) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *CustomNameNinEmbeddedStructUnion) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewCustomNameNinEmbeddedStructUnionFromFace(this)
}

func (this *CustomNameNinEmbeddedStructUnion) GetNidOptNative() *NidOptNative {
	return this.NidOptNative
}

func (this *CustomNameNinEmbeddedStructUnion) GetFieldA() *NinOptNative {
	return this.FieldA
}

func (this *CustomNameNinEmbeddedStructUnion) GetFieldB() *bool {
	return this.FieldB
}

func NewCustomNameNinEmbeddedStructUnionFromFace(that CustomNameNinEmbeddedStructUnionFace) *CustomNameNinEmbeddedStructUnion {
	this := &CustomNameNinEmbeddedStructUnion{}
	this.NidOptNative = that.GetNidOptNative()
	this.FieldA = that.GetFieldA()
	this.FieldB = that.GetFieldB()
	return this
}

type CustomNameEnumFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetFieldA() *TheTestEnum
	GetFieldB() []TheTestEnum
}

func (this *CustomNameEnum) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *CustomNameEnum) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewCustomNameEnumFromFace(this)
}

func (this *CustomNameEnum) GetFieldA() *TheTestEnum {
	return this.FieldA
}

func (this *CustomNameEnum) GetFieldB() []TheTestEnum {
	return this.FieldB
}

func NewCustomNameEnumFromFace(that CustomNameEnumFace) *CustomNameEnum {
	this := &CustomNameEnum{}
	this.FieldA = that.GetFieldA()
	this.FieldB = that.GetFieldB()
	return this
}

type UnrecognizedFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetField1() *string
}

func (this *Unrecognized) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *Unrecognized) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewUnrecognizedFromFace(this)
}

func (this *Unrecognized) GetField1() *string {
	return this.Field1
}

func NewUnrecognizedFromFace(that UnrecognizedFace) *Unrecognized {
	this := &Unrecognized{}
	this.Field1 = that.GetField1()
	return this
}

type UnrecognizedWithInnerFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetEmbedded() []*UnrecognizedWithInner_Inner
	GetField2() *string
}

func (this *UnrecognizedWithInner) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *UnrecognizedWithInner) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewUnrecognizedWithInnerFromFace(this)
}

func (this *UnrecognizedWithInner) GetEmbedded() []*UnrecognizedWithInner_Inner {
	return this.Embedded
}

func (this *UnrecognizedWithInner) GetField2() *string {
	return this.Field2
}

func NewUnrecognizedWithInnerFromFace(that UnrecognizedWithInnerFace) *UnrecognizedWithInner {
	this := &UnrecognizedWithInner{}
	this.Embedded = that.GetEmbedded()
	this.Field2 = that.GetField2()
	return this
}

type UnrecognizedWithInner_InnerFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetField1() *uint32
}

func (this *UnrecognizedWithInner_Inner) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *UnrecognizedWithInner_Inner) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewUnrecognizedWithInner_InnerFromFace(this)
}

func (this *UnrecognizedWithInner_Inner) GetField1() *uint32 {
	return this.Field1
}

func NewUnrecognizedWithInner_InnerFromFace(that UnrecognizedWithInner_InnerFace) *UnrecognizedWithInner_Inner {
	this := &UnrecognizedWithInner_Inner{}
	this.Field1 = that.GetField1()
	return this
}

type UnrecognizedWithEmbedFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetUnrecognizedWithEmbed_Embedded() UnrecognizedWithEmbed_Embedded
	GetField2() *string
}

func (this *UnrecognizedWithEmbed) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *UnrecognizedWithEmbed) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewUnrecognizedWithEmbedFromFace(this)
}

func (this *UnrecognizedWithEmbed) GetUnrecognizedWithEmbed_Embedded() UnrecognizedWithEmbed_Embedded {
	return this.UnrecognizedWithEmbed_Embedded
}

func (this *UnrecognizedWithEmbed) GetField2() *string {
	return this.Field2
}

func NewUnrecognizedWithEmbedFromFace(that UnrecognizedWithEmbedFace) *UnrecognizedWithEmbed {
	this := &UnrecognizedWithEmbed{}
	this.UnrecognizedWithEmbed_Embedded = that.GetUnrecognizedWithEmbed_Embedded()
	this.Field2 = that.GetField2()
	return this
}

type UnrecognizedWithEmbed_EmbeddedFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetField1() *uint32
}

func (this *UnrecognizedWithEmbed_Embedded) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *UnrecognizedWithEmbed_Embedded) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewUnrecognizedWithEmbed_EmbeddedFromFace(this)
}

func (this *UnrecognizedWithEmbed_Embedded) GetField1() *uint32 {
	return this.Field1
}

func NewUnrecognizedWithEmbed_EmbeddedFromFace(that UnrecognizedWithEmbed_EmbeddedFace) *UnrecognizedWithEmbed_Embedded {
	this := &UnrecognizedWithEmbed_Embedded{}
	this.Field1 = that.GetField1()
	return this
}

type NodeFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetLabel() *string
	GetChildren() []*Node
}

func (this *Node) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *Node) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewNodeFromFace(this)
}

func (this *Node) GetLabel() *string {
	return this.Label
}

func (this *Node) GetChildren() []*Node {
	return this.Children
}

func NewNodeFromFace(that NodeFace) *Node {
	this := &Node{}
	this.Label = that.GetLabel()
	this.Children = that.GetChildren()
	return this
}

type NonByteCustomTypeFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetField1() *T
}

func (this *NonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *NonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewNonByteCustomTypeFromFace(this)
}

func (this *NonByteCustomType) GetField1() *T {
	return this.Field1
}

func NewNonByteCustomTypeFromFace(that NonByteCustomTypeFace) *NonByteCustomType {
	this := &NonByteCustomType{}
	this.Field1 = that.GetField1()
	return this
}

type NidOptNonByteCustomTypeFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetField1() T
}

func (this *NidOptNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *NidOptNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewNidOptNonByteCustomTypeFromFace(this)
}

func (this *NidOptNonByteCustomType) GetField1() T {
	return this.Field1
}

func NewNidOptNonByteCustomTypeFromFace(that NidOptNonByteCustomTypeFace) *NidOptNonByteCustomType {
	this := &NidOptNonByteCustomType{}
	this.Field1 = that.GetField1()
	return this
}

type NinOptNonByteCustomTypeFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetField1() *T
}

func (this *NinOptNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *NinOptNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewNinOptNonByteCustomTypeFromFace(this)
}

func (this *NinOptNonByteCustomType) GetField1() *T {
	return this.Field1
}

func NewNinOptNonByteCustomTypeFromFace(that NinOptNonByteCustomTypeFace) *NinOptNonByteCustomType {
	this := &NinOptNonByteCustomType{}
	this.Field1 = that.GetField1()
	return this
}

type NidRepNonByteCustomTypeFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetField1() []T
}

func (this *NidRepNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *NidRepNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewNidRepNonByteCustomTypeFromFace(this)
}

func (this *NidRepNonByteCustomType) GetField1() []T {
	return this.Field1
}

func NewNidRepNonByteCustomTypeFromFace(that NidRepNonByteCustomTypeFace) *NidRepNonByteCustomType {
	this := &NidRepNonByteCustomType{}
	this.Field1 = that.GetField1()
	return this
}

type NinRepNonByteCustomTypeFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetField1() []T
}

func (this *NinRepNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *NinRepNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewNinRepNonByteCustomTypeFromFace(this)
}

func (this *NinRepNonByteCustomType) GetField1() []T {
	return this.Field1
}

func NewNinRepNonByteCustomTypeFromFace(that NinRepNonByteCustomTypeFace) *NinRepNonByteCustomType {
	this := &NinRepNonByteCustomType{}
	this.Field1 = that.GetField1()
	return this
}

type ProtoTypeFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetField2() *string
}

func (this *ProtoType) Proto() github_com_gogo_protobuf_proto.Message {
	return this
}

func (this *ProtoType) TestProto() github_com_gogo_protobuf_proto.Message {
	return NewProtoTypeFromFace(this)
}

func (this *ProtoType) GetField2() *string {
	return this.Field2
}

func NewProtoTypeFromFace(that ProtoTypeFace) *ProtoType {
	this := &ProtoType{}
	this.Field2 = that.GetField2()
	return this
}

func (this *NidOptNative) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 19)
	s = append(s, "&test.NidOptNative{")
	s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n")
	s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n")
	s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n")
	s = append(s, "Field4: "+fmt.Sprintf("%#v", this.Field4)+",\n")
	s = append(s, "Field5: "+fmt.Sprintf("%#v", this.Field5)+",\n")
	s = append(s, "Field6: "+fmt.Sprintf("%#v", this.Field6)+",\n")
	s = append(s, "Field7: "+fmt.Sprintf("%#v", this.Field7)+",\n")
	s = append(s, "Field8: "+fmt.Sprintf("%#v", this.Field8)+",\n")
	s = append(s, "Field9: "+fmt.Sprintf("%#v", this.Field9)+",\n")
	s = append(s, "Field10: "+fmt.Sprintf("%#v", this.Field10)+",\n")
	s = append(s, "Field11: "+fmt.Sprintf("%#v", this.Field11)+",\n")
	s = append(s, "Field12: "+fmt.Sprintf("%#v", this.Field12)+",\n")
	s = append(s, "Field13: "+fmt.Sprintf("%#v", this.Field13)+",\n")
	s = append(s, "Field14: "+fmt.Sprintf("%#v", this.Field14)+",\n")
	s = append(s, "Field15: "+fmt.Sprintf("%#v", this.Field15)+",\n")
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *NinOptNative) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 19)
	s = append(s, "&test.NinOptNative{")
	if this.Field1 != nil {
		s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "float64")+",\n")
	}
	if this.Field2 != nil {
		s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "float32")+",\n")
	}
	if this.Field3 != nil {
		s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "int32")+",\n")
	}
	if this.Field4 != nil {
		s = append(s, "Field4: "+valueToGoStringThetest(this.Field4, "int64")+",\n")
	}
	if this.Field5 != nil {
		s = append(s, "Field5: "+valueToGoStringThetest(this.Field5, "uint32")+",\n")
	}
	if this.Field6 != nil {
		s = append(s, "Field6: "+valueToGoStringThetest(this.Field6, "uint64")+",\n")
	}
	if this.Field7 != nil {
		s = append(s, "Field7: "+valueToGoStringThetest(this.Field7, "int32")+",\n")
	}
	if this.Field8 != nil {
		s = append(s, "Field8: "+valueToGoStringThetest(this.Field8, "int64")+",\n")
	}
	if this.Field9 != nil {
		s = append(s, "Field9: "+valueToGoStringThetest(this.Field9, "uint32")+",\n")
	}
	if this.Field10 != nil {
		s = append(s, "Field10: "+valueToGoStringThetest(this.Field10, "int32")+",\n")
	}
	if this.Field11 != nil {
		s = append(s, "Field11: "+valueToGoStringThetest(this.Field11, "uint64")+",\n")
	}
	if this.Field12 != nil {
		s = append(s, "Field12: "+valueToGoStringThetest(this.Field12, "int64")+",\n")
	}
	if this.Field13 != nil {
		s = append(s, "Field13: "+valueToGoStringThetest(this.Field13, "bool")+",\n")
	}
	if this.Field14 != nil {
		s = append(s, "Field14: "+valueToGoStringThetest(this.Field14, "string")+",\n")
	}
	if this.Field15 != nil {
		s = append(s, "Field15: "+valueToGoStringThetest(this.Field15, "byte")+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *NidRepNative) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 19)
	s = append(s, "&test.NidRepNative{")
	if this.Field1 != nil {
		s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n")
	}
	if this.Field2 != nil {
		s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n")
	}
	if this.Field3 != nil {
		s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n")
	}
	if this.Field4 != nil {
		s = append(s, "Field4: "+fmt.Sprintf("%#v", this.Field4)+",\n")
	}
	if this.Field5 != nil {
		s = append(s, "Field5: "+fmt.Sprintf("%#v", this.Field5)+",\n")
	}
	if this.Field6 != nil {
		s = append(s, "Field6: "+fmt.Sprintf("%#v", this.Field6)+",\n")
	}
	if this.Field7 != nil {
		s = append(s, "Field7: "+fmt.Sprintf("%#v", this.Field7)+",\n")
	}
	if this.Field8 != nil {
		s = append(s, "Field8: "+fmt.Sprintf("%#v", this.Field8)+",\n")
	}
	if this.Field9 != nil {
		s = append(s, "Field9: "+fmt.Sprintf("%#v", this.Field9)+",\n")
	}
	if this.Field10 != nil {
		s = append(s, "Field10: "+fmt.Sprintf("%#v", this.Field10)+",\n")
	}
	if this.Field11 != nil {
		s = append(s, "Field11: "+fmt.Sprintf("%#v", this.Field11)+",\n")
	}
	if this.Field12 != nil {
		s = append(s, "Field12: "+fmt.Sprintf("%#v", this.Field12)+",\n")
	}
	if this.Field13 != nil {
		s = append(s, "Field13: "+fmt.Sprintf("%#v", this.Field13)+",\n")
	}
	if this.Field14 != nil {
		s = append(s, "Field14: "+fmt.Sprintf("%#v", this.Field14)+",\n")
	}
	if this.Field15 != nil {
		s = append(s, "Field15: "+fmt.Sprintf("%#v", this.Field15)+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *NinRepNative) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 19)
	s = append(s, "&test.NinRepNative{")
	if this.Field1 != nil {
		s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n")
	}
	if this.Field2 != nil {
		s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n")
	}
	if this.Field3 != nil {
		s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n")
	}
	if this.Field4 != nil {
		s = append(s, "Field4: "+fmt.Sprintf("%#v", this.Field4)+",\n")
	}
	if this.Field5 != nil {
		s = append(s, "Field5: "+fmt.Sprintf("%#v", this.Field5)+",\n")
	}
	if this.Field6 != nil {
		s = append(s, "Field6: "+fmt.Sprintf("%#v", this.Field6)+",\n")
	}
	if this.Field7 != nil {
		s = append(s, "Field7: "+fmt.Sprintf("%#v", this.Field7)+",\n")
	}
	if this.Field8 != nil {
		s = append(s, "Field8: "+fmt.Sprintf("%#v", this.Field8)+",\n")
	}
	if this.Field9 != nil {
		s = append(s, "Field9: "+fmt.Sprintf("%#v", this.Field9)+",\n")
	}
	if this.Field10 != nil {
		s = append(s, "Field10: "+fmt.Sprintf("%#v", this.Field10)+",\n")
	}
	if this.Field11 != nil {
		s = append(s, "Field11: "+fmt.Sprintf("%#v", this.Field11)+",\n")
	}
	if this.Field12 != nil {
		s = append(s, "Field12: "+fmt.Sprintf("%#v", this.Field12)+",\n")
	}
	if this.Field13 != nil {
		s = append(s, "Field13: "+fmt.Sprintf("%#v", this.Field13)+",\n")
	}
	if this.Field14 != nil {
		s = append(s, "Field14: "+fmt.Sprintf("%#v", this.Field14)+",\n")
	}
	if this.Field15 != nil {
		s = append(s, "Field15: "+fmt.Sprintf("%#v", this.Field15)+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *NidRepPackedNative) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 17)
	s = append(s, "&test.NidRepPackedNative{")
	if this.Field1 != nil {
		s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n")
	}
	if this.Field2 != nil {
		s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n")
	}
	if this.Field3 != nil {
		s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n")
	}
	if this.Field4 != nil {
		s = append(s, "Field4: "+fmt.Sprintf("%#v", this.Field4)+",\n")
	}
	if this.Field5 != nil {
		s = append(s, "Field5: "+fmt.Sprintf("%#v", this.Field5)+",\n")
	}
	if this.Field6 != nil {
		s = append(s, "Field6: "+fmt.Sprintf("%#v", this.Field6)+",\n")
	}
	if this.Field7 != nil {
		s = append(s, "Field7: "+fmt.Sprintf("%#v", this.Field7)+",\n")
	}
	if this.Field8 != nil {
		s = append(s, "Field8: "+fmt.Sprintf("%#v", this.Field8)+",\n")
	}
	if this.Field9 != nil {
		s = append(s, "Field9: "+fmt.Sprintf("%#v", this.Field9)+",\n")
	}
	if this.Field10 != nil {
		s = append(s, "Field10: "+fmt.Sprintf("%#v", this.Field10)+",\n")
	}
	if this.Field11 != nil {
		s = append(s, "Field11: "+fmt.Sprintf("%#v", this.Field11)+",\n")
	}
	if this.Field12 != nil {
		s = append(s, "Field12: "+fmt.Sprintf("%#v", this.Field12)+",\n")
	}
	if this.Field13 != nil {
		s = append(s, "Field13: "+fmt.Sprintf("%#v", this.Field13)+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *NinRepPackedNative) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 17)
	s = append(s, "&test.NinRepPackedNative{")
	if this.Field1 != nil {
		s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n")
	}
	if this.Field2 != nil {
		s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n")
	}
	if this.Field3 != nil {
		s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n")
	}
	if this.Field4 != nil {
		s = append(s, "Field4: "+fmt.Sprintf("%#v", this.Field4)+",\n")
	}
	if this.Field5 != nil {
		s = append(s, "Field5: "+fmt.Sprintf("%#v", this.Field5)+",\n")
	}
	if this.Field6 != nil {
		s = append(s, "Field6: "+fmt.Sprintf("%#v", this.Field6)+",\n")
	}
	if this.Field7 != nil {
		s = append(s, "Field7: "+fmt.Sprintf("%#v", this.Field7)+",\n")
	}
	if this.Field8 != nil {
		s = append(s, "Field8: "+fmt.Sprintf("%#v", this.Field8)+",\n")
	}
	if this.Field9 != nil {
		s = append(s, "Field9: "+fmt.Sprintf("%#v", this.Field9)+",\n")
	}
	if this.Field10 != nil {
		s = append(s, "Field10: "+fmt.Sprintf("%#v", this.Field10)+",\n")
	}
	if this.Field11 != nil {
		s = append(s, "Field11: "+fmt.Sprintf("%#v", this.Field11)+",\n")
	}
	if this.Field12 != nil {
		s = append(s, "Field12: "+fmt.Sprintf("%#v", this.Field12)+",\n")
	}
	if this.Field13 != nil {
		s = append(s, "Field13: "+fmt.Sprintf("%#v", this.Field13)+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *NidOptStruct) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 14)
	s = append(s, "&test.NidOptStruct{")
	s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n")
	s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n")
	s = append(s, "Field3: "+strings.Replace(this.Field3.GoString(), `&`, ``, 1)+",\n")
	s = append(s, "Field4: "+strings.Replace(this.Field4.GoString(), `&`, ``, 1)+",\n")
	s = append(s, "Field6: "+fmt.Sprintf("%#v", this.Field6)+",\n")
	s = append(s, "Field7: "+fmt.Sprintf("%#v", this.Field7)+",\n")
	s = append(s, "Field8: "+strings.Replace(this.Field8.GoString(), `&`, ``, 1)+",\n")
	s = append(s, "Field13: "+fmt.Sprintf("%#v", this.Field13)+",\n")
	s = append(s, "Field14: "+fmt.Sprintf("%#v", this.Field14)+",\n")
	s = append(s, "Field15: "+fmt.Sprintf("%#v", this.Field15)+",\n")
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *NinOptStruct) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 14)
	s = append(s, "&test.NinOptStruct{")
	if this.Field1 != nil {
		s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "float64")+",\n")
	}
	if this.Field2 != nil {
		s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "float32")+",\n")
	}
	if this.Field3 != nil {
		s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n")
	}
	if this.Field4 != nil {
		s = append(s, "Field4: "+fmt.Sprintf("%#v", this.Field4)+",\n")
	}
	if this.Field6 != nil {
		s = append(s, "Field6: "+valueToGoStringThetest(this.Field6, "uint64")+",\n")
	}
	if this.Field7 != nil {
		s = append(s, "Field7: "+valueToGoStringThetest(this.Field7, "int32")+",\n")
	}
	if this.Field8 != nil {
		s = append(s, "Field8: "+fmt.Sprintf("%#v", this.Field8)+",\n")
	}
	if this.Field13 != nil {
		s = append(s, "Field13: "+valueToGoStringThetest(this.Field13, "bool")+",\n")
	}
	if this.Field14 != nil {
		s = append(s, "Field14: "+valueToGoStringThetest(this.Field14, "string")+",\n")
	}
	if this.Field15 != nil {
		s = append(s, "Field15: "+valueToGoStringThetest(this.Field15, "byte")+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *NidRepStruct) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 14)
	s = append(s, "&test.NidRepStruct{")
	if this.Field1 != nil {
		s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n")
	}
	if this.Field2 != nil {
		s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n")
	}
	if this.Field3 != nil {
		vs := make([]*NidOptNative, len(this.Field3))
		for i := range vs {
			vs[i] = &this.Field3[i]
		}
		s = append(s, "Field3: "+fmt.Sprintf("%#v", vs)+",\n")
	}
	if this.Field4 != nil {
		vs := make([]*NinOptNative, len(this.Field4))
		for i := range vs {
			vs[i] = &this.Field4[i]
		}
		s = append(s, "Field4: "+fmt.Sprintf("%#v", vs)+",\n")
	}
	if this.Field6 != nil {
		s = append(s, "Field6: "+fmt.Sprintf("%#v", this.Field6)+",\n")
	}
	if this.Field7 != nil {
		s = append(s, "Field7: "+fmt.Sprintf("%#v", this.Field7)+",\n")
	}
	if this.Field8 != nil {
		vs := make([]*NidOptNative, len(this.Field8))
		for i := range vs {
			vs[i] = &this.Field8[i]
		}
		s = append(s, "Field8: "+fmt.Sprintf("%#v", vs)+",\n")
	}
	if this.Field13 != nil {
		s = append(s, "Field13: "+fmt.Sprintf("%#v", this.Field13)+",\n")
	}
	if this.Field14 != nil {
		s = append(s, "Field14: "+fmt.Sprintf("%#v", this.Field14)+",\n")
	}
	if this.Field15 != nil {
		s = append(s, "Field15: "+fmt.Sprintf("%#v", this.Field15)+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *NinRepStruct) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 14)
	s = append(s, "&test.NinRepStruct{")
	if this.Field1 != nil {
		s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n")
	}
	if this.Field2 != nil {
		s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n")
	}
	if this.Field3 != nil {
		s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n")
	}
	if this.Field4 != nil {
		s = append(s, "Field4: "+fmt.Sprintf("%#v", this.Field4)+",\n")
	}
	if this.Field6 != nil {
		s = append(s, "Field6: "+fmt.Sprintf("%#v", this.Field6)+",\n")
	}
	if this.Field7 != nil {
		s = append(s, "Field7: "+fmt.Sprintf("%#v", this.Field7)+",\n")
	}
	if this.Field8 != nil {
		s = append(s, "Field8: "+fmt.Sprintf("%#v", this.Field8)+",\n")
	}
	if this.Field13 != nil {
		s = append(s, "Field13: "+fmt.Sprintf("%#v", this.Field13)+",\n")
	}
	if this.Field14 != nil {
		s = append(s, "Field14: "+fmt.Sprintf("%#v", this.Field14)+",\n")
	}
	if this.Field15 != nil {
		s = append(s, "Field15: "+fmt.Sprintf("%#v", this.Field15)+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *NidEmbeddedStruct) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 7)
	s = append(s, "&test.NidEmbeddedStruct{")
	if this.NidOptNative != nil {
		s = append(s, "NidOptNative: "+fmt.Sprintf("%#v", this.NidOptNative)+",\n")
	}
	s = append(s, "Field200: "+strings.Replace(this.Field200.GoString(), `&`, ``, 1)+",\n")
	s = append(s, "Field210: "+fmt.Sprintf("%#v", this.Field210)+",\n")
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *NinEmbeddedStruct) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 7)
	s = append(s, "&test.NinEmbeddedStruct{")
	if this.NidOptNative != nil {
		s = append(s, "NidOptNative: "+fmt.Sprintf("%#v", this.NidOptNative)+",\n")
	}
	if this.Field200 != nil {
		s = append(s, "Field200: "+fmt.Sprintf("%#v", this.Field200)+",\n")
	}
	if this.Field210 != nil {
		s = append(s, "Field210: "+valueToGoStringThetest(this.Field210, "bool")+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *NidNestedStruct) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 6)
	s = append(s, "&test.NidNestedStruct{")
	s = append(s, "Field1: "+strings.Replace(this.Field1.GoString(), `&`, ``, 1)+",\n")
	if this.Field2 != nil {
		vs := make([]*NidRepStruct, len(this.Field2))
		for i := range vs {
			vs[i] = &this.Field2[i]
		}
		s = append(s, "Field2: "+fmt.Sprintf("%#v", vs)+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *NinNestedStruct) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 6)
	s = append(s, "&test.NinNestedStruct{")
	if this.Field1 != nil {
		s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n")
	}
	if this.Field2 != nil {
		s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *NidOptCustom) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 6)
	s = append(s, "&test.NidOptCustom{")
	s = append(s, "Id: "+fmt.Sprintf("%#v", this.Id)+",\n")
	s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n")
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *CustomDash) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 5)
	s = append(s, "&test.CustomDash{")
	if this.Value != nil {
		s = append(s, "Value: "+valueToGoStringThetest(this.Value, "github_com_gogo_protobuf_test_custom_dash_type.Bytes")+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *NinOptCustom) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 6)
	s = append(s, "&test.NinOptCustom{")
	if this.Id != nil {
		s = append(s, "Id: "+valueToGoStringThetest(this.Id, "Uuid")+",\n")
	}
	if this.Value != nil {
		s = append(s, "Value: "+valueToGoStringThetest(this.Value, "github_com_gogo_protobuf_test_custom.Uint128")+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *NidRepCustom) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 6)
	s = append(s, "&test.NidRepCustom{")
	if this.Id != nil {
		s = append(s, "Id: "+fmt.Sprintf("%#v", this.Id)+",\n")
	}
	if this.Value != nil {
		s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *NinRepCustom) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 6)
	s = append(s, "&test.NinRepCustom{")
	if this.Id != nil {
		s = append(s, "Id: "+fmt.Sprintf("%#v", this.Id)+",\n")
	}
	if this.Value != nil {
		s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *NinOptNativeUnion) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 13)
	s = append(s, "&test.NinOptNativeUnion{")
	if this.Field1 != nil {
		s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "float64")+",\n")
	}
	if this.Field2 != nil {
		s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "float32")+",\n")
	}
	if this.Field3 != nil {
		s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "int32")+",\n")
	}
	if this.Field4 != nil {
		s = append(s, "Field4: "+valueToGoStringThetest(this.Field4, "int64")+",\n")
	}
	if this.Field5 != nil {
		s = append(s, "Field5: "+valueToGoStringThetest(this.Field5, "uint32")+",\n")
	}
	if this.Field6 != nil {
		s = append(s, "Field6: "+valueToGoStringThetest(this.Field6, "uint64")+",\n")
	}
	if this.Field13 != nil {
		s = append(s, "Field13: "+valueToGoStringThetest(this.Field13, "bool")+",\n")
	}
	if this.Field14 != nil {
		s = append(s, "Field14: "+valueToGoStringThetest(this.Field14, "string")+",\n")
	}
	if this.Field15 != nil {
		s = append(s, "Field15: "+valueToGoStringThetest(this.Field15, "byte")+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *NinOptStructUnion) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 13)
	s = append(s, "&test.NinOptStructUnion{")
	if this.Field1 != nil {
		s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "float64")+",\n")
	}
	if this.Field2 != nil {
		s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "float32")+",\n")
	}
	if this.Field3 != nil {
		s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n")
	}
	if this.Field4 != nil {
		s = append(s, "Field4: "+fmt.Sprintf("%#v", this.Field4)+",\n")
	}
	if this.Field6 != nil {
		s = append(s, "Field6: "+valueToGoStringThetest(this.Field6, "uint64")+",\n")
	}
	if this.Field7 != nil {
		s = append(s, "Field7: "+valueToGoStringThetest(this.Field7, "int32")+",\n")
	}
	if this.Field13 != nil {
		s = append(s, "Field13: "+valueToGoStringThetest(this.Field13, "bool")+",\n")
	}
	if this.Field14 != nil {
		s = append(s, "Field14: "+valueToGoStringThetest(this.Field14, "string")+",\n")
	}
	if this.Field15 != nil {
		s = append(s, "Field15: "+valueToGoStringThetest(this.Field15, "byte")+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *NinEmbeddedStructUnion) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 7)
	s = append(s, "&test.NinEmbeddedStructUnion{")
	if this.NidOptNative != nil {
		s = append(s, "NidOptNative: "+fmt.Sprintf("%#v", this.NidOptNative)+",\n")
	}
	if this.Field200 != nil {
		s = append(s, "Field200: "+fmt.Sprintf("%#v", this.Field200)+",\n")
	}
	if this.Field210 != nil {
		s = append(s, "Field210: "+valueToGoStringThetest(this.Field210, "bool")+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *NinNestedStructUnion) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 7)
	s = append(s, "&test.NinNestedStructUnion{")
	if this.Field1 != nil {
		s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n")
	}
	if this.Field2 != nil {
		s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n")
	}
	if this.Field3 != nil {
		s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *Tree) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 7)
	s = append(s, "&test.Tree{")
	if this.Or != nil {
		s = append(s, "Or: "+fmt.Sprintf("%#v", this.Or)+",\n")
	}
	if this.And != nil {
		s = append(s, "And: "+fmt.Sprintf("%#v", this.And)+",\n")
	}
	if this.Leaf != nil {
		s = append(s, "Leaf: "+fmt.Sprintf("%#v", this.Leaf)+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *OrBranch) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 6)
	s = append(s, "&test.OrBranch{")
	s = append(s, "Left: "+strings.Replace(this.Left.GoString(), `&`, ``, 1)+",\n")
	s = append(s, "Right: "+strings.Replace(this.Right.GoString(), `&`, ``, 1)+",\n")
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *AndBranch) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 6)
	s = append(s, "&test.AndBranch{")
	s = append(s, "Left: "+strings.Replace(this.Left.GoString(), `&`, ``, 1)+",\n")
	s = append(s, "Right: "+strings.Replace(this.Right.GoString(), `&`, ``, 1)+",\n")
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *Leaf) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 6)
	s = append(s, "&test.Leaf{")
	s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n")
	s = append(s, "StrValue: "+fmt.Sprintf("%#v", this.StrValue)+",\n")
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *DeepTree) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 7)
	s = append(s, "&test.DeepTree{")
	if this.Down != nil {
		s = append(s, "Down: "+fmt.Sprintf("%#v", this.Down)+",\n")
	}
	if this.And != nil {
		s = append(s, "And: "+fmt.Sprintf("%#v", this.And)+",\n")
	}
	if this.Leaf != nil {
		s = append(s, "Leaf: "+fmt.Sprintf("%#v", this.Leaf)+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *ADeepBranch) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 5)
	s = append(s, "&test.ADeepBranch{")
	s = append(s, "Down: "+strings.Replace(this.Down.GoString(), `&`, ``, 1)+",\n")
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *AndDeepBranch) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 6)
	s = append(s, "&test.AndDeepBranch{")
	s = append(s, "Left: "+strings.Replace(this.Left.GoString(), `&`, ``, 1)+",\n")
	s = append(s, "Right: "+strings.Replace(this.Right.GoString(), `&`, ``, 1)+",\n")
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *DeepLeaf) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 5)
	s = append(s, "&test.DeepLeaf{")
	s = append(s, "Tree: "+strings.Replace(this.Tree.GoString(), `&`, ``, 1)+",\n")
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *Nil) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 4)
	s = append(s, "&test.Nil{")
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *NidOptEnum) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 5)
	s = append(s, "&test.NidOptEnum{")
	s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n")
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *NinOptEnum) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 7)
	s = append(s, "&test.NinOptEnum{")
	if this.Field1 != nil {
		s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "TheTestEnum")+",\n")
	}
	if this.Field2 != nil {
		s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "YetAnotherTestEnum")+",\n")
	}
	if this.Field3 != nil {
		s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "YetYetAnotherTestEnum")+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *NidRepEnum) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 7)
	s = append(s, "&test.NidRepEnum{")
	if this.Field1 != nil {
		s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n")
	}
	if this.Field2 != nil {
		s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n")
	}
	if this.Field3 != nil {
		s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *NinRepEnum) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 7)
	s = append(s, "&test.NinRepEnum{")
	if this.Field1 != nil {
		s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n")
	}
	if this.Field2 != nil {
		s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n")
	}
	if this.Field3 != nil {
		s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *NinOptEnumDefault) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 7)
	s = append(s, "&test.NinOptEnumDefault{")
	if this.Field1 != nil {
		s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "TheTestEnum")+",\n")
	}
	if this.Field2 != nil {
		s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "YetAnotherTestEnum")+",\n")
	}
	if this.Field3 != nil {
		s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "YetYetAnotherTestEnum")+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *AnotherNinOptEnum) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 7)
	s = append(s, "&test.AnotherNinOptEnum{")
	if this.Field1 != nil {
		s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "AnotherTestEnum")+",\n")
	}
	if this.Field2 != nil {
		s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "YetAnotherTestEnum")+",\n")
	}
	if this.Field3 != nil {
		s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "YetYetAnotherTestEnum")+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *AnotherNinOptEnumDefault) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 7)
	s = append(s, "&test.AnotherNinOptEnumDefault{")
	if this.Field1 != nil {
		s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "AnotherTestEnum")+",\n")
	}
	if this.Field2 != nil {
		s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "YetAnotherTestEnum")+",\n")
	}
	if this.Field3 != nil {
		s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "YetYetAnotherTestEnum")+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *Timer) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 7)
	s = append(s, "&test.Timer{")
	s = append(s, "Time1: "+fmt.Sprintf("%#v", this.Time1)+",\n")
	s = append(s, "Time2: "+fmt.Sprintf("%#v", this.Time2)+",\n")
	s = append(s, "Data: "+fmt.Sprintf("%#v", this.Data)+",\n")
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *MyExtendable) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 5)
	s = append(s, "&test.MyExtendable{")
	if this.Field1 != nil {
		s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "int64")+",\n")
	}
	s = append(s, "XXX_InternalExtensions: "+extensionToGoStringThetest(this)+",\n")
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *OtherExtenable) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 7)
	s = append(s, "&test.OtherExtenable{")
	if this.Field2 != nil {
		s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "int64")+",\n")
	}
	if this.Field13 != nil {
		s = append(s, "Field13: "+valueToGoStringThetest(this.Field13, "int64")+",\n")
	}
	if this.M != nil {
		s = append(s, "M: "+fmt.Sprintf("%#v", this.M)+",\n")
	}
	s = append(s, "XXX_InternalExtensions: "+extensionToGoStringThetest(this)+",\n")
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *NestedDefinition) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 8)
	s = append(s, "&test.NestedDefinition{")
	if this.Field1 != nil {
		s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "int64")+",\n")
	}
	if this.EnumField != nil {
		s = append(s, "EnumField: "+valueToGoStringThetest(this.EnumField, "NestedDefinition_NestedEnum")+",\n")
	}
	if this.NNM != nil {
		s = append(s, "NNM: "+fmt.Sprintf("%#v", this.NNM)+",\n")
	}
	if this.NM != nil {
		s = append(s, "NM: "+fmt.Sprintf("%#v", this.NM)+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *NestedDefinition_NestedMessage) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 6)
	s = append(s, "&test.NestedDefinition_NestedMessage{")
	if this.NestedField1 != nil {
		s = append(s, "NestedField1: "+valueToGoStringThetest(this.NestedField1, "uint64")+",\n")
	}
	if this.NNM != nil {
		s = append(s, "NNM: "+fmt.Sprintf("%#v", this.NNM)+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *NestedDefinition_NestedMessage_NestedNestedMsg) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 5)
	s = append(s, "&test.NestedDefinition_NestedMessage_NestedNestedMsg{")
	if this.NestedNestedField1 != nil {
		s = append(s, "NestedNestedField1: "+valueToGoStringThetest(this.NestedNestedField1, "string")+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *NestedScope) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 7)
	s = append(s, "&test.NestedScope{")
	if this.A != nil {
		s = append(s, "A: "+fmt.Sprintf("%#v", this.A)+",\n")
	}
	if this.B != nil {
		s = append(s, "B: "+valueToGoStringThetest(this.B, "NestedDefinition_NestedEnum")+",\n")
	}
	if this.C != nil {
		s = append(s, "C: "+fmt.Sprintf("%#v", this.C)+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *NinOptNativeDefault) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 19)
	s = append(s, "&test.NinOptNativeDefault{")
	if this.Field1 != nil {
		s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "float64")+",\n")
	}
	if this.Field2 != nil {
		s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "float32")+",\n")
	}
	if this.Field3 != nil {
		s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "int32")+",\n")
	}
	if this.Field4 != nil {
		s = append(s, "Field4: "+valueToGoStringThetest(this.Field4, "int64")+",\n")
	}
	if this.Field5 != nil {
		s = append(s, "Field5: "+valueToGoStringThetest(this.Field5, "uint32")+",\n")
	}
	if this.Field6 != nil {
		s = append(s, "Field6: "+valueToGoStringThetest(this.Field6, "uint64")+",\n")
	}
	if this.Field7 != nil {
		s = append(s, "Field7: "+valueToGoStringThetest(this.Field7, "int32")+",\n")
	}
	if this.Field8 != nil {
		s = append(s, "Field8: "+valueToGoStringThetest(this.Field8, "int64")+",\n")
	}
	if this.Field9 != nil {
		s = append(s, "Field9: "+valueToGoStringThetest(this.Field9, "uint32")+",\n")
	}
	if this.Field10 != nil {
		s = append(s, "Field10: "+valueToGoStringThetest(this.Field10, "int32")+",\n")
	}
	if this.Field11 != nil {
		s = append(s, "Field11: "+valueToGoStringThetest(this.Field11, "uint64")+",\n")
	}
	if this.Field12 != nil {
		s = append(s, "Field12: "+valueToGoStringThetest(this.Field12, "int64")+",\n")
	}
	if this.Field13 != nil {
		s = append(s, "Field13: "+valueToGoStringThetest(this.Field13, "bool")+",\n")
	}
	if this.Field14 != nil {
		s = append(s, "Field14: "+valueToGoStringThetest(this.Field14, "string")+",\n")
	}
	if this.Field15 != nil {
		s = append(s, "Field15: "+valueToGoStringThetest(this.Field15, "byte")+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *CustomContainer) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 5)
	s = append(s, "&test.CustomContainer{")
	s = append(s, "CustomStruct: "+strings.Replace(this.CustomStruct.GoString(), `&`, ``, 1)+",\n")
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *CustomNameNidOptNative) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 19)
	s = append(s, "&test.CustomNameNidOptNative{")
	s = append(s, "FieldA: "+fmt.Sprintf("%#v", this.FieldA)+",\n")
	s = append(s, "FieldB: "+fmt.Sprintf("%#v", this.FieldB)+",\n")
	s = append(s, "FieldC: "+fmt.Sprintf("%#v", this.FieldC)+",\n")
	s = append(s, "FieldD: "+fmt.Sprintf("%#v", this.FieldD)+",\n")
	s = append(s, "FieldE: "+fmt.Sprintf("%#v", this.FieldE)+",\n")
	s = append(s, "FieldF: "+fmt.Sprintf("%#v", this.FieldF)+",\n")
	s = append(s, "FieldG: "+fmt.Sprintf("%#v", this.FieldG)+",\n")
	s = append(s, "FieldH: "+fmt.Sprintf("%#v", this.FieldH)+",\n")
	s = append(s, "FieldI: "+fmt.Sprintf("%#v", this.FieldI)+",\n")
	s = append(s, "FieldJ: "+fmt.Sprintf("%#v", this.FieldJ)+",\n")
	s = append(s, "FieldK: "+fmt.Sprintf("%#v", this.FieldK)+",\n")
	s = append(s, "FieldL: "+fmt.Sprintf("%#v", this.FieldL)+",\n")
	s = append(s, "FieldM: "+fmt.Sprintf("%#v", this.FieldM)+",\n")
	s = append(s, "FieldN: "+fmt.Sprintf("%#v", this.FieldN)+",\n")
	s = append(s, "FieldO: "+fmt.Sprintf("%#v", this.FieldO)+",\n")
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *CustomNameNinOptNative) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 19)
	s = append(s, "&test.CustomNameNinOptNative{")
	if this.FieldA != nil {
		s = append(s, "FieldA: "+valueToGoStringThetest(this.FieldA, "float64")+",\n")
	}
	if this.FieldB != nil {
		s = append(s, "FieldB: "+valueToGoStringThetest(this.FieldB, "float32")+",\n")
	}
	if this.FieldC != nil {
		s = append(s, "FieldC: "+valueToGoStringThetest(this.FieldC, "int32")+",\n")
	}
	if this.FieldD != nil {
		s = append(s, "FieldD: "+valueToGoStringThetest(this.FieldD, "int64")+",\n")
	}
	if this.FieldE != nil {
		s = append(s, "FieldE: "+valueToGoStringThetest(this.FieldE, "uint32")+",\n")
	}
	if this.FieldF != nil {
		s = append(s, "FieldF: "+valueToGoStringThetest(this.FieldF, "uint64")+",\n")
	}
	if this.FieldG != nil {
		s = append(s, "FieldG: "+valueToGoStringThetest(this.FieldG, "int32")+",\n")
	}
	if this.FieldH != nil {
		s = append(s, "FieldH: "+valueToGoStringThetest(this.FieldH, "int64")+",\n")
	}
	if this.FieldI != nil {
		s = append(s, "FieldI: "+valueToGoStringThetest(this.FieldI, "uint32")+",\n")
	}
	if this.FieldJ != nil {
		s = append(s, "FieldJ: "+valueToGoStringThetest(this.FieldJ, "int32")+",\n")
	}
	if this.FieldK != nil {
		s = append(s, "FieldK: "+valueToGoStringThetest(this.FieldK, "uint64")+",\n")
	}
	if this.FielL != nil {
		s = append(s, "FielL: "+valueToGoStringThetest(this.FielL, "int64")+",\n")
	}
	if this.FieldM != nil {
		s = append(s, "FieldM: "+valueToGoStringThetest(this.FieldM, "bool")+",\n")
	}
	if this.FieldN != nil {
		s = append(s, "FieldN: "+valueToGoStringThetest(this.FieldN, "string")+",\n")
	}
	if this.FieldO != nil {
		s = append(s, "FieldO: "+valueToGoStringThetest(this.FieldO, "byte")+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *CustomNameNinRepNative) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 19)
	s = append(s, "&test.CustomNameNinRepNative{")
	if this.FieldA != nil {
		s = append(s, "FieldA: "+fmt.Sprintf("%#v", this.FieldA)+",\n")
	}
	if this.FieldB != nil {
		s = append(s, "FieldB: "+fmt.Sprintf("%#v", this.FieldB)+",\n")
	}
	if this.FieldC != nil {
		s = append(s, "FieldC: "+fmt.Sprintf("%#v", this.FieldC)+",\n")
	}
	if this.FieldD != nil {
		s = append(s, "FieldD: "+fmt.Sprintf("%#v", this.FieldD)+",\n")
	}
	if this.FieldE != nil {
		s = append(s, "FieldE: "+fmt.Sprintf("%#v", this.FieldE)+",\n")
	}
	if this.FieldF != nil {
		s = append(s, "FieldF: "+fmt.Sprintf("%#v", this.FieldF)+",\n")
	}
	if this.FieldG != nil {
		s = append(s, "FieldG: "+fmt.Sprintf("%#v", this.FieldG)+",\n")
	}
	if this.FieldH != nil {
		s = append(s, "FieldH: "+fmt.Sprintf("%#v", this.FieldH)+",\n")
	}
	if this.FieldI != nil {
		s = append(s, "FieldI: "+fmt.Sprintf("%#v", this.FieldI)+",\n")
	}
	if this.FieldJ != nil {
		s = append(s, "FieldJ: "+fmt.Sprintf("%#v", this.FieldJ)+",\n")
	}
	if this.FieldK != nil {
		s = append(s, "FieldK: "+fmt.Sprintf("%#v", this.FieldK)+",\n")
	}
	if this.FieldL != nil {
		s = append(s, "FieldL: "+fmt.Sprintf("%#v", this.FieldL)+",\n")
	}
	if this.FieldM != nil {
		s = append(s, "FieldM: "+fmt.Sprintf("%#v", this.FieldM)+",\n")
	}
	if this.FieldN != nil {
		s = append(s, "FieldN: "+fmt.Sprintf("%#v", this.FieldN)+",\n")
	}
	if this.FieldO != nil {
		s = append(s, "FieldO: "+fmt.Sprintf("%#v", this.FieldO)+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *CustomNameNinStruct) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 14)
	s = append(s, "&test.CustomNameNinStruct{")
	if this.FieldA != nil {
		s = append(s, "FieldA: "+valueToGoStringThetest(this.FieldA, "float64")+",\n")
	}
	if this.FieldB != nil {
		s = append(s, "FieldB: "+valueToGoStringThetest(this.FieldB, "float32")+",\n")
	}
	if this.FieldC != nil {
		s = append(s, "FieldC: "+fmt.Sprintf("%#v", this.FieldC)+",\n")
	}
	if this.FieldD != nil {
		s = append(s, "FieldD: "+fmt.Sprintf("%#v", this.FieldD)+",\n")
	}
	if this.FieldE != nil {
		s = append(s, "FieldE: "+valueToGoStringThetest(this.FieldE, "uint64")+",\n")
	}
	if this.FieldF != nil {
		s = append(s, "FieldF: "+valueToGoStringThetest(this.FieldF, "int32")+",\n")
	}
	if this.FieldG != nil {
		s = append(s, "FieldG: "+fmt.Sprintf("%#v", this.FieldG)+",\n")
	}
	if this.FieldH != nil {
		s = append(s, "FieldH: "+valueToGoStringThetest(this.FieldH, "bool")+",\n")
	}
	if this.FieldI != nil {
		s = append(s, "FieldI: "+valueToGoStringThetest(this.FieldI, "string")+",\n")
	}
	if this.FieldJ != nil {
		s = append(s, "FieldJ: "+valueToGoStringThetest(this.FieldJ, "byte")+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *CustomNameCustomType) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 8)
	s = append(s, "&test.CustomNameCustomType{")
	if this.FieldA != nil {
		s = append(s, "FieldA: "+valueToGoStringThetest(this.FieldA, "Uuid")+",\n")
	}
	if this.FieldB != nil {
		s = append(s, "FieldB: "+valueToGoStringThetest(this.FieldB, "github_com_gogo_protobuf_test_custom.Uint128")+",\n")
	}
	if this.FieldC != nil {
		s = append(s, "FieldC: "+fmt.Sprintf("%#v", this.FieldC)+",\n")
	}
	if this.FieldD != nil {
		s = append(s, "FieldD: "+fmt.Sprintf("%#v", this.FieldD)+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *CustomNameNinEmbeddedStructUnion) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 7)
	s = append(s, "&test.CustomNameNinEmbeddedStructUnion{")
	if this.NidOptNative != nil {
		s = append(s, "NidOptNative: "+fmt.Sprintf("%#v", this.NidOptNative)+",\n")
	}
	if this.FieldA != nil {
		s = append(s, "FieldA: "+fmt.Sprintf("%#v", this.FieldA)+",\n")
	}
	if this.FieldB != nil {
		s = append(s, "FieldB: "+valueToGoStringThetest(this.FieldB, "bool")+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *CustomNameEnum) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 6)
	s = append(s, "&test.CustomNameEnum{")
	if this.FieldA != nil {
		s = append(s, "FieldA: "+valueToGoStringThetest(this.FieldA, "TheTestEnum")+",\n")
	}
	if this.FieldB != nil {
		s = append(s, "FieldB: "+fmt.Sprintf("%#v", this.FieldB)+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *NoExtensionsMap) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 5)
	s = append(s, "&test.NoExtensionsMap{")
	if this.Field1 != nil {
		s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "int64")+",\n")
	}
	if this.XXX_extensions != nil {
		s = append(s, "XXX_extensions: "+fmt.Sprintf("%#v", this.XXX_extensions)+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *Unrecognized) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 5)
	s = append(s, "&test.Unrecognized{")
	if this.Field1 != nil {
		s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "string")+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *UnrecognizedWithInner) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 6)
	s = append(s, "&test.UnrecognizedWithInner{")
	if this.Embedded != nil {
		s = append(s, "Embedded: "+fmt.Sprintf("%#v", this.Embedded)+",\n")
	}
	if this.Field2 != nil {
		s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "string")+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *UnrecognizedWithInner_Inner) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 5)
	s = append(s, "&test.UnrecognizedWithInner_Inner{")
	if this.Field1 != nil {
		s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "uint32")+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *UnrecognizedWithEmbed) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 6)
	s = append(s, "&test.UnrecognizedWithEmbed{")
	s = append(s, "UnrecognizedWithEmbed_Embedded: "+strings.Replace(this.UnrecognizedWithEmbed_Embedded.GoString(), `&`, ``, 1)+",\n")
	if this.Field2 != nil {
		s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "string")+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *UnrecognizedWithEmbed_Embedded) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 5)
	s = append(s, "&test.UnrecognizedWithEmbed_Embedded{")
	if this.Field1 != nil {
		s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "uint32")+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *Node) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 6)
	s = append(s, "&test.Node{")
	if this.Label != nil {
		s = append(s, "Label: "+valueToGoStringThetest(this.Label, "string")+",\n")
	}
	if this.Children != nil {
		s = append(s, "Children: "+fmt.Sprintf("%#v", this.Children)+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *NonByteCustomType) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 5)
	s = append(s, "&test.NonByteCustomType{")
	if this.Field1 != nil {
		s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "T")+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *NidOptNonByteCustomType) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 5)
	s = append(s, "&test.NidOptNonByteCustomType{")
	s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n")
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *NinOptNonByteCustomType) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 5)
	s = append(s, "&test.NinOptNonByteCustomType{")
	if this.Field1 != nil {
		s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "T")+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *NidRepNonByteCustomType) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 5)
	s = append(s, "&test.NidRepNonByteCustomType{")
	if this.Field1 != nil {
		s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *NinRepNonByteCustomType) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 5)
	s = append(s, "&test.NinRepNonByteCustomType{")
	if this.Field1 != nil {
		s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *ProtoType) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 5)
	s = append(s, "&test.ProtoType{")
	if this.Field2 != nil {
		s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "string")+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func valueToGoStringThetest(v interface{}, typ string) string {
	rv := reflect.ValueOf(v)
	if rv.IsNil() {
		return "nil"
	}
	pv := reflect.Indirect(rv).Interface()
	return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv)
}
func extensionToGoStringThetest(m github_com_gogo_protobuf_proto.Message) string {
	e := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(m)
	if e == nil {
		return "nil"
	}
	s := "proto.NewUnsafeXXX_InternalExtensions(map[int32]proto.Extension{"
	keys := make([]int, 0, len(e))
	for k := range e {
		keys = append(keys, int(k))
	}
	sort.Ints(keys)
	ss := []string{}
	for _, k := range keys {
		ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString())
	}
	s += strings.Join(ss, ",") + "})"
	return s
}
func (m *NidOptNative) 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 *NidOptNative) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *NidOptNative) 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 m.Field15 != nil {
		i -= len(m.Field15)
		copy(dAtA[i:], m.Field15)
		i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15)))
		i--
		dAtA[i] = 0x7a
	}
	i -= len(m.Field14)
	copy(dAtA[i:], m.Field14)
	i = encodeVarintThetest(dAtA, i, uint64(len(m.Field14)))
	i--
	dAtA[i] = 0x72
	i--
	if m.Field13 {
		dAtA[i] = 1
	} else {
		dAtA[i] = 0
	}
	i--
	dAtA[i] = 0x68
	i -= 8
	encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Field12))
	i--
	dAtA[i] = 0x61
	i -= 8
	encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Field11))
	i--
	dAtA[i] = 0x59
	i -= 4
	encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Field10))
	i--
	dAtA[i] = 0x55
	i -= 4
	encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Field9))
	i--
	dAtA[i] = 0x4d
	i = encodeVarintThetest(dAtA, i, uint64((uint64(m.Field8)<<1)^uint64((m.Field8>>63))))
	i--
	dAtA[i] = 0x40
	i = encodeVarintThetest(dAtA, i, uint64((uint32(m.Field7)<<1)^uint32((m.Field7>>31))))
	i--
	dAtA[i] = 0x38
	i = encodeVarintThetest(dAtA, i, uint64(m.Field6))
	i--
	dAtA[i] = 0x30
	i = encodeVarintThetest(dAtA, i, uint64(m.Field5))
	i--
	dAtA[i] = 0x28
	i = encodeVarintThetest(dAtA, i, uint64(m.Field4))
	i--
	dAtA[i] = 0x20
	i = encodeVarintThetest(dAtA, i, uint64(m.Field3))
	i--
	dAtA[i] = 0x18
	i -= 4
	encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Field2))))
	i--
	dAtA[i] = 0x15
	i -= 8
	encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.Field1))))
	i--
	dAtA[i] = 0x9
	return len(dAtA) - i, nil
}

func (m *NinOptNative) 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 *NinOptNative) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *NinOptNative) 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 m.Field15 != nil {
		i -= len(m.Field15)
		copy(dAtA[i:], m.Field15)
		i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15)))
		i--
		dAtA[i] = 0x7a
	}
	if m.Field14 != nil {
		i -= len(*m.Field14)
		copy(dAtA[i:], *m.Field14)
		i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field14)))
		i--
		dAtA[i] = 0x72
	}
	if m.Field13 != nil {
		i--
		if *m.Field13 {
			dAtA[i] = 1
		} else {
			dAtA[i] = 0
		}
		i--
		dAtA[i] = 0x68
	}
	if m.Field12 != nil {
		i -= 8
		encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(*m.Field12))
		i--
		dAtA[i] = 0x61
	}
	if m.Field11 != nil {
		i -= 8
		encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(*m.Field11))
		i--
		dAtA[i] = 0x59
	}
	if m.Field10 != nil {
		i -= 4
		encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(*m.Field10))
		i--
		dAtA[i] = 0x55
	}
	if m.Field9 != nil {
		i -= 4
		encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(*m.Field9))
		i--
		dAtA[i] = 0x4d
	}
	if m.Field8 != nil {
		i = encodeVarintThetest(dAtA, i, uint64((uint64(*m.Field8)<<1)^uint64((*m.Field8>>63))))
		i--
		dAtA[i] = 0x40
	}
	if m.Field7 != nil {
		i = encodeVarintThetest(dAtA, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31))))
		i--
		dAtA[i] = 0x38
	}
	if m.Field6 != nil {
		i = encodeVarintThetest(dAtA, i, uint64(*m.Field6))
		i--
		dAtA[i] = 0x30
	}
	if m.Field5 != nil {
		i = encodeVarintThetest(dAtA, i, uint64(*m.Field5))
		i--
		dAtA[i] = 0x28
	}
	if m.Field4 != nil {
		i = encodeVarintThetest(dAtA, i, uint64(*m.Field4))
		i--
		dAtA[i] = 0x20
	}
	if m.Field3 != nil {
		i = encodeVarintThetest(dAtA, i, uint64(*m.Field3))
		i--
		dAtA[i] = 0x18
	}
	if m.Field2 != nil {
		i -= 4
		encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(*m.Field2))))
		i--
		dAtA[i] = 0x15
	}
	if m.Field1 != nil {
		i -= 8
		encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(*m.Field1))))
		i--
		dAtA[i] = 0x9
	}
	return len(dAtA) - i, nil
}

func (m *NidRepNative) 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 *NidRepNative) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *NidRepNative) 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.Field15) > 0 {
		for iNdEx := len(m.Field15) - 1; iNdEx >= 0; iNdEx-- {
			i -= len(m.Field15[iNdEx])
			copy(dAtA[i:], m.Field15[iNdEx])
			i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15[iNdEx])))
			i--
			dAtA[i] = 0x7a
		}
	}
	if len(m.Field14) > 0 {
		for iNdEx := len(m.Field14) - 1; iNdEx >= 0; iNdEx-- {
			i -= len(m.Field14[iNdEx])
			copy(dAtA[i:], m.Field14[iNdEx])
			i = encodeVarintThetest(dAtA, i, uint64(len(m.Field14[iNdEx])))
			i--
			dAtA[i] = 0x72
		}
	}
	if len(m.Field13) > 0 {
		for iNdEx := len(m.Field13) - 1; iNdEx >= 0; iNdEx-- {
			i--
			if m.Field13[iNdEx] {
				dAtA[i] = 1
			} else {
				dAtA[i] = 0
			}
			i--
			dAtA[i] = 0x68
		}
	}
	if len(m.Field12) > 0 {
		for iNdEx := len(m.Field12) - 1; iNdEx >= 0; iNdEx-- {
			i -= 8
			encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Field12[iNdEx]))
			i--
			dAtA[i] = 0x61
		}
	}
	if len(m.Field11) > 0 {
		for iNdEx := len(m.Field11) - 1; iNdEx >= 0; iNdEx-- {
			i -= 8
			encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Field11[iNdEx]))
			i--
			dAtA[i] = 0x59
		}
	}
	if len(m.Field10) > 0 {
		for iNdEx := len(m.Field10) - 1; iNdEx >= 0; iNdEx-- {
			i -= 4
			encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Field10[iNdEx]))
			i--
			dAtA[i] = 0x55
		}
	}
	if len(m.Field9) > 0 {
		for iNdEx := len(m.Field9) - 1; iNdEx >= 0; iNdEx-- {
			i -= 4
			encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Field9[iNdEx]))
			i--
			dAtA[i] = 0x4d
		}
	}
	if len(m.Field8) > 0 {
		for iNdEx := len(m.Field8) - 1; iNdEx >= 0; iNdEx-- {
			x1 := (uint64(m.Field8[iNdEx]) << 1) ^ uint64((m.Field8[iNdEx] >> 63))
			i = encodeVarintThetest(dAtA, i, uint64(x1))
			i--
			dAtA[i] = 0x40
		}
	}
	if len(m.Field7) > 0 {
		for iNdEx := len(m.Field7) - 1; iNdEx >= 0; iNdEx-- {
			x2 := (uint32(m.Field7[iNdEx]) << 1) ^ uint32((m.Field7[iNdEx] >> 31))
			i = encodeVarintThetest(dAtA, i, uint64(x2))
			i--
			dAtA[i] = 0x38
		}
	}
	if len(m.Field6) > 0 {
		for iNdEx := len(m.Field6) - 1; iNdEx >= 0; iNdEx-- {
			i = encodeVarintThetest(dAtA, i, uint64(m.Field6[iNdEx]))
			i--
			dAtA[i] = 0x30
		}
	}
	if len(m.Field5) > 0 {
		for iNdEx := len(m.Field5) - 1; iNdEx >= 0; iNdEx-- {
			i = encodeVarintThetest(dAtA, i, uint64(m.Field5[iNdEx]))
			i--
			dAtA[i] = 0x28
		}
	}
	if len(m.Field4) > 0 {
		for iNdEx := len(m.Field4) - 1; iNdEx >= 0; iNdEx-- {
			i = encodeVarintThetest(dAtA, i, uint64(m.Field4[iNdEx]))
			i--
			dAtA[i] = 0x20
		}
	}
	if len(m.Field3) > 0 {
		for iNdEx := len(m.Field3) - 1; iNdEx >= 0; iNdEx-- {
			i = encodeVarintThetest(dAtA, i, uint64(m.Field3[iNdEx]))
			i--
			dAtA[i] = 0x18
		}
	}
	if len(m.Field2) > 0 {
		for iNdEx := len(m.Field2) - 1; iNdEx >= 0; iNdEx-- {
			f3 := math.Float32bits(float32(m.Field2[iNdEx]))
			i -= 4
			encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(f3))
			i--
			dAtA[i] = 0x15
		}
	}
	if len(m.Field1) > 0 {
		for iNdEx := len(m.Field1) - 1; iNdEx >= 0; iNdEx-- {
			f4 := math.Float64bits(float64(m.Field1[iNdEx]))
			i -= 8
			encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(f4))
			i--
			dAtA[i] = 0x9
		}
	}
	return len(dAtA) - i, nil
}

func (m *NinRepNative) 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 *NinRepNative) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *NinRepNative) 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.Field15) > 0 {
		for iNdEx := len(m.Field15) - 1; iNdEx >= 0; iNdEx-- {
			i -= len(m.Field15[iNdEx])
			copy(dAtA[i:], m.Field15[iNdEx])
			i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15[iNdEx])))
			i--
			dAtA[i] = 0x7a
		}
	}
	if len(m.Field14) > 0 {
		for iNdEx := len(m.Field14) - 1; iNdEx >= 0; iNdEx-- {
			i -= len(m.Field14[iNdEx])
			copy(dAtA[i:], m.Field14[iNdEx])
			i = encodeVarintThetest(dAtA, i, uint64(len(m.Field14[iNdEx])))
			i--
			dAtA[i] = 0x72
		}
	}
	if len(m.Field13) > 0 {
		for iNdEx := len(m.Field13) - 1; iNdEx >= 0; iNdEx-- {
			i--
			if m.Field13[iNdEx] {
				dAtA[i] = 1
			} else {
				dAtA[i] = 0
			}
			i--
			dAtA[i] = 0x68
		}
	}
	if len(m.Field12) > 0 {
		for iNdEx := len(m.Field12) - 1; iNdEx >= 0; iNdEx-- {
			i -= 8
			encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Field12[iNdEx]))
			i--
			dAtA[i] = 0x61
		}
	}
	if len(m.Field11) > 0 {
		for iNdEx := len(m.Field11) - 1; iNdEx >= 0; iNdEx-- {
			i -= 8
			encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Field11[iNdEx]))
			i--
			dAtA[i] = 0x59
		}
	}
	if len(m.Field10) > 0 {
		for iNdEx := len(m.Field10) - 1; iNdEx >= 0; iNdEx-- {
			i -= 4
			encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Field10[iNdEx]))
			i--
			dAtA[i] = 0x55
		}
	}
	if len(m.Field9) > 0 {
		for iNdEx := len(m.Field9) - 1; iNdEx >= 0; iNdEx-- {
			i -= 4
			encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Field9[iNdEx]))
			i--
			dAtA[i] = 0x4d
		}
	}
	if len(m.Field8) > 0 {
		for iNdEx := len(m.Field8) - 1; iNdEx >= 0; iNdEx-- {
			x5 := (uint64(m.Field8[iNdEx]) << 1) ^ uint64((m.Field8[iNdEx] >> 63))
			i = encodeVarintThetest(dAtA, i, uint64(x5))
			i--
			dAtA[i] = 0x40
		}
	}
	if len(m.Field7) > 0 {
		for iNdEx := len(m.Field7) - 1; iNdEx >= 0; iNdEx-- {
			x6 := (uint32(m.Field7[iNdEx]) << 1) ^ uint32((m.Field7[iNdEx] >> 31))
			i = encodeVarintThetest(dAtA, i, uint64(x6))
			i--
			dAtA[i] = 0x38
		}
	}
	if len(m.Field6) > 0 {
		for iNdEx := len(m.Field6) - 1; iNdEx >= 0; iNdEx-- {
			i = encodeVarintThetest(dAtA, i, uint64(m.Field6[iNdEx]))
			i--
			dAtA[i] = 0x30
		}
	}
	if len(m.Field5) > 0 {
		for iNdEx := len(m.Field5) - 1; iNdEx >= 0; iNdEx-- {
			i = encodeVarintThetest(dAtA, i, uint64(m.Field5[iNdEx]))
			i--
			dAtA[i] = 0x28
		}
	}
	if len(m.Field4) > 0 {
		for iNdEx := len(m.Field4) - 1; iNdEx >= 0; iNdEx-- {
			i = encodeVarintThetest(dAtA, i, uint64(m.Field4[iNdEx]))
			i--
			dAtA[i] = 0x20
		}
	}
	if len(m.Field3) > 0 {
		for iNdEx := len(m.Field3) - 1; iNdEx >= 0; iNdEx-- {
			i = encodeVarintThetest(dAtA, i, uint64(m.Field3[iNdEx]))
			i--
			dAtA[i] = 0x18
		}
	}
	if len(m.Field2) > 0 {
		for iNdEx := len(m.Field2) - 1; iNdEx >= 0; iNdEx-- {
			f7 := math.Float32bits(float32(m.Field2[iNdEx]))
			i -= 4
			encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(f7))
			i--
			dAtA[i] = 0x15
		}
	}
	if len(m.Field1) > 0 {
		for iNdEx := len(m.Field1) - 1; iNdEx >= 0; iNdEx-- {
			f8 := math.Float64bits(float64(m.Field1[iNdEx]))
			i -= 8
			encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(f8))
			i--
			dAtA[i] = 0x9
		}
	}
	return len(dAtA) - i, nil
}

func (m *NidRepPackedNative) 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 *NidRepPackedNative) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *NidRepPackedNative) 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.Field13) > 0 {
		for iNdEx := len(m.Field13) - 1; iNdEx >= 0; iNdEx-- {
			i--
			if m.Field13[iNdEx] {
				dAtA[i] = 1
			} else {
				dAtA[i] = 0
			}
		}
		i = encodeVarintThetest(dAtA, i, uint64(len(m.Field13)))
		i--
		dAtA[i] = 0x6a
	}
	if len(m.Field12) > 0 {
		for iNdEx := len(m.Field12) - 1; iNdEx >= 0; iNdEx-- {
			i -= 8
			encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Field12[iNdEx]))
		}
		i = encodeVarintThetest(dAtA, i, uint64(len(m.Field12)*8))
		i--
		dAtA[i] = 0x62
	}
	if len(m.Field11) > 0 {
		for iNdEx := len(m.Field11) - 1; iNdEx >= 0; iNdEx-- {
			i -= 8
			encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Field11[iNdEx]))
		}
		i = encodeVarintThetest(dAtA, i, uint64(len(m.Field11)*8))
		i--
		dAtA[i] = 0x5a
	}
	if len(m.Field10) > 0 {
		for iNdEx := len(m.Field10) - 1; iNdEx >= 0; iNdEx-- {
			i -= 4
			encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Field10[iNdEx]))
		}
		i = encodeVarintThetest(dAtA, i, uint64(len(m.Field10)*4))
		i--
		dAtA[i] = 0x52
	}
	if len(m.Field9) > 0 {
		for iNdEx := len(m.Field9) - 1; iNdEx >= 0; iNdEx-- {
			i -= 4
			encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Field9[iNdEx]))
		}
		i = encodeVarintThetest(dAtA, i, uint64(len(m.Field9)*4))
		i--
		dAtA[i] = 0x4a
	}
	if len(m.Field8) > 0 {
		var j9 int
		dAtA11 := make([]byte, len(m.Field8)*10)
		for _, num := range m.Field8 {
			x10 := (uint64(num) << 1) ^ uint64((num >> 63))
			for x10 >= 1<<7 {
				dAtA11[j9] = uint8(uint64(x10)&0x7f | 0x80)
				j9++
				x10 >>= 7
			}
			dAtA11[j9] = uint8(x10)
			j9++
		}
		i -= j9
		copy(dAtA[i:], dAtA11[:j9])
		i = encodeVarintThetest(dAtA, i, uint64(j9))
		i--
		dAtA[i] = 0x42
	}
	if len(m.Field7) > 0 {
		dAtA12 := make([]byte, len(m.Field7)*5)
		var j13 int
		for _, num := range m.Field7 {
			x14 := (uint32(num) << 1) ^ uint32((num >> 31))
			for x14 >= 1<<7 {
				dAtA12[j13] = uint8(uint64(x14)&0x7f | 0x80)
				j13++
				x14 >>= 7
			}
			dAtA12[j13] = uint8(x14)
			j13++
		}
		i -= j13
		copy(dAtA[i:], dAtA12[:j13])
		i = encodeVarintThetest(dAtA, i, uint64(j13))
		i--
		dAtA[i] = 0x3a
	}
	if len(m.Field6) > 0 {
		dAtA16 := make([]byte, len(m.Field6)*10)
		var j15 int
		for _, num := range m.Field6 {
			for num >= 1<<7 {
				dAtA16[j15] = uint8(uint64(num)&0x7f | 0x80)
				num >>= 7
				j15++
			}
			dAtA16[j15] = uint8(num)
			j15++
		}
		i -= j15
		copy(dAtA[i:], dAtA16[:j15])
		i = encodeVarintThetest(dAtA, i, uint64(j15))
		i--
		dAtA[i] = 0x32
	}
	if len(m.Field5) > 0 {
		dAtA18 := make([]byte, len(m.Field5)*10)
		var j17 int
		for _, num := range m.Field5 {
			for num >= 1<<7 {
				dAtA18[j17] = uint8(uint64(num)&0x7f | 0x80)
				num >>= 7
				j17++
			}
			dAtA18[j17] = uint8(num)
			j17++
		}
		i -= j17
		copy(dAtA[i:], dAtA18[:j17])
		i = encodeVarintThetest(dAtA, i, uint64(j17))
		i--
		dAtA[i] = 0x2a
	}
	if len(m.Field4) > 0 {
		dAtA20 := make([]byte, len(m.Field4)*10)
		var j19 int
		for _, num1 := range m.Field4 {
			num := uint64(num1)
			for num >= 1<<7 {
				dAtA20[j19] = uint8(uint64(num)&0x7f | 0x80)
				num >>= 7
				j19++
			}
			dAtA20[j19] = uint8(num)
			j19++
		}
		i -= j19
		copy(dAtA[i:], dAtA20[:j19])
		i = encodeVarintThetest(dAtA, i, uint64(j19))
		i--
		dAtA[i] = 0x22
	}
	if len(m.Field3) > 0 {
		dAtA22 := make([]byte, len(m.Field3)*10)
		var j21 int
		for _, num1 := range m.Field3 {
			num := uint64(num1)
			for num >= 1<<7 {
				dAtA22[j21] = uint8(uint64(num)&0x7f | 0x80)
				num >>= 7
				j21++
			}
			dAtA22[j21] = uint8(num)
			j21++
		}
		i -= j21
		copy(dAtA[i:], dAtA22[:j21])
		i = encodeVarintThetest(dAtA, i, uint64(j21))
		i--
		dAtA[i] = 0x1a
	}
	if len(m.Field2) > 0 {
		for iNdEx := len(m.Field2) - 1; iNdEx >= 0; iNdEx-- {
			f23 := math.Float32bits(float32(m.Field2[iNdEx]))
			i -= 4
			encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(f23))
		}
		i = encodeVarintThetest(dAtA, i, uint64(len(m.Field2)*4))
		i--
		dAtA[i] = 0x12
	}
	if len(m.Field1) > 0 {
		for iNdEx := len(m.Field1) - 1; iNdEx >= 0; iNdEx-- {
			f24 := math.Float64bits(float64(m.Field1[iNdEx]))
			i -= 8
			encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(f24))
		}
		i = encodeVarintThetest(dAtA, i, uint64(len(m.Field1)*8))
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func (m *NinRepPackedNative) 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 *NinRepPackedNative) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *NinRepPackedNative) 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.Field13) > 0 {
		for iNdEx := len(m.Field13) - 1; iNdEx >= 0; iNdEx-- {
			i--
			if m.Field13[iNdEx] {
				dAtA[i] = 1
			} else {
				dAtA[i] = 0
			}
		}
		i = encodeVarintThetest(dAtA, i, uint64(len(m.Field13)))
		i--
		dAtA[i] = 0x6a
	}
	if len(m.Field12) > 0 {
		for iNdEx := len(m.Field12) - 1; iNdEx >= 0; iNdEx-- {
			i -= 8
			encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Field12[iNdEx]))
		}
		i = encodeVarintThetest(dAtA, i, uint64(len(m.Field12)*8))
		i--
		dAtA[i] = 0x62
	}
	if len(m.Field11) > 0 {
		for iNdEx := len(m.Field11) - 1; iNdEx >= 0; iNdEx-- {
			i -= 8
			encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Field11[iNdEx]))
		}
		i = encodeVarintThetest(dAtA, i, uint64(len(m.Field11)*8))
		i--
		dAtA[i] = 0x5a
	}
	if len(m.Field10) > 0 {
		for iNdEx := len(m.Field10) - 1; iNdEx >= 0; iNdEx-- {
			i -= 4
			encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Field10[iNdEx]))
		}
		i = encodeVarintThetest(dAtA, i, uint64(len(m.Field10)*4))
		i--
		dAtA[i] = 0x52
	}
	if len(m.Field9) > 0 {
		for iNdEx := len(m.Field9) - 1; iNdEx >= 0; iNdEx-- {
			i -= 4
			encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Field9[iNdEx]))
		}
		i = encodeVarintThetest(dAtA, i, uint64(len(m.Field9)*4))
		i--
		dAtA[i] = 0x4a
	}
	if len(m.Field8) > 0 {
		var j25 int
		dAtA27 := make([]byte, len(m.Field8)*10)
		for _, num := range m.Field8 {
			x26 := (uint64(num) << 1) ^ uint64((num >> 63))
			for x26 >= 1<<7 {
				dAtA27[j25] = uint8(uint64(x26)&0x7f | 0x80)
				j25++
				x26 >>= 7
			}
			dAtA27[j25] = uint8(x26)
			j25++
		}
		i -= j25
		copy(dAtA[i:], dAtA27[:j25])
		i = encodeVarintThetest(dAtA, i, uint64(j25))
		i--
		dAtA[i] = 0x42
	}
	if len(m.Field7) > 0 {
		dAtA28 := make([]byte, len(m.Field7)*5)
		var j29 int
		for _, num := range m.Field7 {
			x30 := (uint32(num) << 1) ^ uint32((num >> 31))
			for x30 >= 1<<7 {
				dAtA28[j29] = uint8(uint64(x30)&0x7f | 0x80)
				j29++
				x30 >>= 7
			}
			dAtA28[j29] = uint8(x30)
			j29++
		}
		i -= j29
		copy(dAtA[i:], dAtA28[:j29])
		i = encodeVarintThetest(dAtA, i, uint64(j29))
		i--
		dAtA[i] = 0x3a
	}
	if len(m.Field6) > 0 {
		dAtA32 := make([]byte, len(m.Field6)*10)
		var j31 int
		for _, num := range m.Field6 {
			for num >= 1<<7 {
				dAtA32[j31] = uint8(uint64(num)&0x7f | 0x80)
				num >>= 7
				j31++
			}
			dAtA32[j31] = uint8(num)
			j31++
		}
		i -= j31
		copy(dAtA[i:], dAtA32[:j31])
		i = encodeVarintThetest(dAtA, i, uint64(j31))
		i--
		dAtA[i] = 0x32
	}
	if len(m.Field5) > 0 {
		dAtA34 := make([]byte, len(m.Field5)*10)
		var j33 int
		for _, num := range m.Field5 {
			for num >= 1<<7 {
				dAtA34[j33] = uint8(uint64(num)&0x7f | 0x80)
				num >>= 7
				j33++
			}
			dAtA34[j33] = uint8(num)
			j33++
		}
		i -= j33
		copy(dAtA[i:], dAtA34[:j33])
		i = encodeVarintThetest(dAtA, i, uint64(j33))
		i--
		dAtA[i] = 0x2a
	}
	if len(m.Field4) > 0 {
		dAtA36 := make([]byte, len(m.Field4)*10)
		var j35 int
		for _, num1 := range m.Field4 {
			num := uint64(num1)
			for num >= 1<<7 {
				dAtA36[j35] = uint8(uint64(num)&0x7f | 0x80)
				num >>= 7
				j35++
			}
			dAtA36[j35] = uint8(num)
			j35++
		}
		i -= j35
		copy(dAtA[i:], dAtA36[:j35])
		i = encodeVarintThetest(dAtA, i, uint64(j35))
		i--
		dAtA[i] = 0x22
	}
	if len(m.Field3) > 0 {
		dAtA38 := make([]byte, len(m.Field3)*10)
		var j37 int
		for _, num1 := range m.Field3 {
			num := uint64(num1)
			for num >= 1<<7 {
				dAtA38[j37] = uint8(uint64(num)&0x7f | 0x80)
				num >>= 7
				j37++
			}
			dAtA38[j37] = uint8(num)
			j37++
		}
		i -= j37
		copy(dAtA[i:], dAtA38[:j37])
		i = encodeVarintThetest(dAtA, i, uint64(j37))
		i--
		dAtA[i] = 0x1a
	}
	if len(m.Field2) > 0 {
		for iNdEx := len(m.Field2) - 1; iNdEx >= 0; iNdEx-- {
			f39 := math.Float32bits(float32(m.Field2[iNdEx]))
			i -= 4
			encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(f39))
		}
		i = encodeVarintThetest(dAtA, i, uint64(len(m.Field2)*4))
		i--
		dAtA[i] = 0x12
	}
	if len(m.Field1) > 0 {
		for iNdEx := len(m.Field1) - 1; iNdEx >= 0; iNdEx-- {
			f40 := math.Float64bits(float64(m.Field1[iNdEx]))
			i -= 8
			encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(f40))
		}
		i = encodeVarintThetest(dAtA, i, uint64(len(m.Field1)*8))
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func (m *NidOptStruct) 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 *NidOptStruct) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *NidOptStruct) 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 m.Field15 != nil {
		i -= len(m.Field15)
		copy(dAtA[i:], m.Field15)
		i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15)))
		i--
		dAtA[i] = 0x7a
	}
	i -= len(m.Field14)
	copy(dAtA[i:], m.Field14)
	i = encodeVarintThetest(dAtA, i, uint64(len(m.Field14)))
	i--
	dAtA[i] = 0x72
	i--
	if m.Field13 {
		dAtA[i] = 1
	} else {
		dAtA[i] = 0
	}
	i--
	dAtA[i] = 0x68
	{
		size, err := m.Field8.MarshalToSizedBuffer(dAtA[:i])
		if err != nil {
			return 0, err
		}
		i -= size
		i = encodeVarintThetest(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0x42
	i = encodeVarintThetest(dAtA, i, uint64((uint32(m.Field7)<<1)^uint32((m.Field7>>31))))
	i--
	dAtA[i] = 0x38
	i = encodeVarintThetest(dAtA, i, uint64(m.Field6))
	i--
	dAtA[i] = 0x30
	{
		size, err := m.Field4.MarshalToSizedBuffer(dAtA[:i])
		if err != nil {
			return 0, err
		}
		i -= size
		i = encodeVarintThetest(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0x22
	{
		size, err := m.Field3.MarshalToSizedBuffer(dAtA[:i])
		if err != nil {
			return 0, err
		}
		i -= size
		i = encodeVarintThetest(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0x1a
	i -= 4
	encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Field2))))
	i--
	dAtA[i] = 0x15
	i -= 8
	encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.Field1))))
	i--
	dAtA[i] = 0x9
	return len(dAtA) - i, nil
}

func (m *NinOptStruct) 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 *NinOptStruct) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *NinOptStruct) 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 m.Field15 != nil {
		i -= len(m.Field15)
		copy(dAtA[i:], m.Field15)
		i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15)))
		i--
		dAtA[i] = 0x7a
	}
	if m.Field14 != nil {
		i -= len(*m.Field14)
		copy(dAtA[i:], *m.Field14)
		i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field14)))
		i--
		dAtA[i] = 0x72
	}
	if m.Field13 != nil {
		i--
		if *m.Field13 {
			dAtA[i] = 1
		} else {
			dAtA[i] = 0
		}
		i--
		dAtA[i] = 0x68
	}
	if m.Field8 != nil {
		{
			size, err := m.Field8.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintThetest(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x42
	}
	if m.Field7 != nil {
		i = encodeVarintThetest(dAtA, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31))))
		i--
		dAtA[i] = 0x38
	}
	if m.Field6 != nil {
		i = encodeVarintThetest(dAtA, i, uint64(*m.Field6))
		i--
		dAtA[i] = 0x30
	}
	if m.Field4 != nil {
		{
			size, err := m.Field4.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintThetest(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x22
	}
	if m.Field3 != nil {
		{
			size, err := m.Field3.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintThetest(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x1a
	}
	if m.Field2 != nil {
		i -= 4
		encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(*m.Field2))))
		i--
		dAtA[i] = 0x15
	}
	if m.Field1 != nil {
		i -= 8
		encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(*m.Field1))))
		i--
		dAtA[i] = 0x9
	}
	return len(dAtA) - i, nil
}

func (m *NidRepStruct) 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 *NidRepStruct) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *NidRepStruct) 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.Field15) > 0 {
		for iNdEx := len(m.Field15) - 1; iNdEx >= 0; iNdEx-- {
			i -= len(m.Field15[iNdEx])
			copy(dAtA[i:], m.Field15[iNdEx])
			i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15[iNdEx])))
			i--
			dAtA[i] = 0x7a
		}
	}
	if len(m.Field14) > 0 {
		for iNdEx := len(m.Field14) - 1; iNdEx >= 0; iNdEx-- {
			i -= len(m.Field14[iNdEx])
			copy(dAtA[i:], m.Field14[iNdEx])
			i = encodeVarintThetest(dAtA, i, uint64(len(m.Field14[iNdEx])))
			i--
			dAtA[i] = 0x72
		}
	}
	if len(m.Field13) > 0 {
		for iNdEx := len(m.Field13) - 1; iNdEx >= 0; iNdEx-- {
			i--
			if m.Field13[iNdEx] {
				dAtA[i] = 1
			} else {
				dAtA[i] = 0
			}
			i--
			dAtA[i] = 0x68
		}
	}
	if len(m.Field8) > 0 {
		for iNdEx := len(m.Field8) - 1; iNdEx >= 0; iNdEx-- {
			{
				size, err := m.Field8[iNdEx].MarshalToSizedBuffer(dAtA[:i])
				if err != nil {
					return 0, err
				}
				i -= size
				i = encodeVarintThetest(dAtA, i, uint64(size))
			}
			i--
			dAtA[i] = 0x42
		}
	}
	if len(m.Field7) > 0 {
		for iNdEx := len(m.Field7) - 1; iNdEx >= 0; iNdEx-- {
			x47 := (uint32(m.Field7[iNdEx]) << 1) ^ uint32((m.Field7[iNdEx] >> 31))
			i = encodeVarintThetest(dAtA, i, uint64(x47))
			i--
			dAtA[i] = 0x38
		}
	}
	if len(m.Field6) > 0 {
		for iNdEx := len(m.Field6) - 1; iNdEx >= 0; iNdEx-- {
			i = encodeVarintThetest(dAtA, i, uint64(m.Field6[iNdEx]))
			i--
			dAtA[i] = 0x30
		}
	}
	if len(m.Field4) > 0 {
		for iNdEx := len(m.Field4) - 1; iNdEx >= 0; iNdEx-- {
			{
				size, err := m.Field4[iNdEx].MarshalToSizedBuffer(dAtA[:i])
				if err != nil {
					return 0, err
				}
				i -= size
				i = encodeVarintThetest(dAtA, i, uint64(size))
			}
			i--
			dAtA[i] = 0x22
		}
	}
	if len(m.Field3) > 0 {
		for iNdEx := len(m.Field3) - 1; iNdEx >= 0; iNdEx-- {
			{
				size, err := m.Field3[iNdEx].MarshalToSizedBuffer(dAtA[:i])
				if err != nil {
					return 0, err
				}
				i -= size
				i = encodeVarintThetest(dAtA, i, uint64(size))
			}
			i--
			dAtA[i] = 0x1a
		}
	}
	if len(m.Field2) > 0 {
		for iNdEx := len(m.Field2) - 1; iNdEx >= 0; iNdEx-- {
			f48 := math.Float32bits(float32(m.Field2[iNdEx]))
			i -= 4
			encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(f48))
			i--
			dAtA[i] = 0x15
		}
	}
	if len(m.Field1) > 0 {
		for iNdEx := len(m.Field1) - 1; iNdEx >= 0; iNdEx-- {
			f49 := math.Float64bits(float64(m.Field1[iNdEx]))
			i -= 8
			encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(f49))
			i--
			dAtA[i] = 0x9
		}
	}
	return len(dAtA) - i, nil
}

func (m *NinRepStruct) 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 *NinRepStruct) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *NinRepStruct) 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.Field15) > 0 {
		for iNdEx := len(m.Field15) - 1; iNdEx >= 0; iNdEx-- {
			i -= len(m.Field15[iNdEx])
			copy(dAtA[i:], m.Field15[iNdEx])
			i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15[iNdEx])))
			i--
			dAtA[i] = 0x7a
		}
	}
	if len(m.Field14) > 0 {
		for iNdEx := len(m.Field14) - 1; iNdEx >= 0; iNdEx-- {
			i -= len(m.Field14[iNdEx])
			copy(dAtA[i:], m.Field14[iNdEx])
			i = encodeVarintThetest(dAtA, i, uint64(len(m.Field14[iNdEx])))
			i--
			dAtA[i] = 0x72
		}
	}
	if len(m.Field13) > 0 {
		for iNdEx := len(m.Field13) - 1; iNdEx >= 0; iNdEx-- {
			i--
			if m.Field13[iNdEx] {
				dAtA[i] = 1
			} else {
				dAtA[i] = 0
			}
			i--
			dAtA[i] = 0x68
		}
	}
	if len(m.Field8) > 0 {
		for iNdEx := len(m.Field8) - 1; iNdEx >= 0; iNdEx-- {
			{
				size, err := m.Field8[iNdEx].MarshalToSizedBuffer(dAtA[:i])
				if err != nil {
					return 0, err
				}
				i -= size
				i = encodeVarintThetest(dAtA, i, uint64(size))
			}
			i--
			dAtA[i] = 0x42
		}
	}
	if len(m.Field7) > 0 {
		for iNdEx := len(m.Field7) - 1; iNdEx >= 0; iNdEx-- {
			x50 := (uint32(m.Field7[iNdEx]) << 1) ^ uint32((m.Field7[iNdEx] >> 31))
			i = encodeVarintThetest(dAtA, i, uint64(x50))
			i--
			dAtA[i] = 0x38
		}
	}
	if len(m.Field6) > 0 {
		for iNdEx := len(m.Field6) - 1; iNdEx >= 0; iNdEx-- {
			i = encodeVarintThetest(dAtA, i, uint64(m.Field6[iNdEx]))
			i--
			dAtA[i] = 0x30
		}
	}
	if len(m.Field4) > 0 {
		for iNdEx := len(m.Field4) - 1; iNdEx >= 0; iNdEx-- {
			{
				size, err := m.Field4[iNdEx].MarshalToSizedBuffer(dAtA[:i])
				if err != nil {
					return 0, err
				}
				i -= size
				i = encodeVarintThetest(dAtA, i, uint64(size))
			}
			i--
			dAtA[i] = 0x22
		}
	}
	if len(m.Field3) > 0 {
		for iNdEx := len(m.Field3) - 1; iNdEx >= 0; iNdEx-- {
			{
				size, err := m.Field3[iNdEx].MarshalToSizedBuffer(dAtA[:i])
				if err != nil {
					return 0, err
				}
				i -= size
				i = encodeVarintThetest(dAtA, i, uint64(size))
			}
			i--
			dAtA[i] = 0x1a
		}
	}
	if len(m.Field2) > 0 {
		for iNdEx := len(m.Field2) - 1; iNdEx >= 0; iNdEx-- {
			f51 := math.Float32bits(float32(m.Field2[iNdEx]))
			i -= 4
			encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(f51))
			i--
			dAtA[i] = 0x15
		}
	}
	if len(m.Field1) > 0 {
		for iNdEx := len(m.Field1) - 1; iNdEx >= 0; iNdEx-- {
			f52 := math.Float64bits(float64(m.Field1[iNdEx]))
			i -= 8
			encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(f52))
			i--
			dAtA[i] = 0x9
		}
	}
	return len(dAtA) - i, nil
}

func (m *NidEmbeddedStruct) 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 *NidEmbeddedStruct) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *NidEmbeddedStruct) 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)
	}
	i--
	if m.Field210 {
		dAtA[i] = 1
	} else {
		dAtA[i] = 0
	}
	i--
	dAtA[i] = 0xd
	i--
	dAtA[i] = 0x90
	{
		size, err := m.Field200.MarshalToSizedBuffer(dAtA[:i])
		if err != nil {
			return 0, err
		}
		i -= size
		i = encodeVarintThetest(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0xc
	i--
	dAtA[i] = 0xc2
	if m.NidOptNative != nil {
		{
			size, err := m.NidOptNative.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintThetest(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func (m *NinEmbeddedStruct) 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 *NinEmbeddedStruct) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *NinEmbeddedStruct) 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 m.Field210 != nil {
		i--
		if *m.Field210 {
			dAtA[i] = 1
		} else {
			dAtA[i] = 0
		}
		i--
		dAtA[i] = 0xd
		i--
		dAtA[i] = 0x90
	}
	if m.Field200 != nil {
		{
			size, err := m.Field200.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintThetest(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0xc
		i--
		dAtA[i] = 0xc2
	}
	if m.NidOptNative != nil {
		{
			size, err := m.NidOptNative.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintThetest(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func (m *NidNestedStruct) 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 *NidNestedStruct) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *NidNestedStruct) 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.Field2) > 0 {
		for iNdEx := len(m.Field2) - 1; iNdEx >= 0; iNdEx-- {
			{
				size, err := m.Field2[iNdEx].MarshalToSizedBuffer(dAtA[:i])
				if err != nil {
					return 0, err
				}
				i -= size
				i = encodeVarintThetest(dAtA, i, uint64(size))
			}
			i--
			dAtA[i] = 0x12
		}
	}
	{
		size, err := m.Field1.MarshalToSizedBuffer(dAtA[:i])
		if err != nil {
			return 0, err
		}
		i -= size
		i = encodeVarintThetest(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0xa
	return len(dAtA) - i, nil
}

func (m *NinNestedStruct) 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 *NinNestedStruct) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *NinNestedStruct) 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.Field2) > 0 {
		for iNdEx := len(m.Field2) - 1; iNdEx >= 0; iNdEx-- {
			{
				size, err := m.Field2[iNdEx].MarshalToSizedBuffer(dAtA[:i])
				if err != nil {
					return 0, err
				}
				i -= size
				i = encodeVarintThetest(dAtA, i, uint64(size))
			}
			i--
			dAtA[i] = 0x12
		}
	}
	if m.Field1 != nil {
		{
			size, err := m.Field1.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintThetest(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func (m *NidOptCustom) 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 *NidOptCustom) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *NidOptCustom) 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)
	}
	{
		size := m.Value.Size()
		i -= size
		if _, err := m.Value.MarshalTo(dAtA[i:]); err != nil {
			return 0, err
		}
		i = encodeVarintThetest(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0x12
	{
		size := m.Id.Size()
		i -= size
		if _, err := m.Id.MarshalTo(dAtA[i:]); err != nil {
			return 0, err
		}
		i = encodeVarintThetest(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0xa
	return len(dAtA) - i, nil
}

func (m *CustomDash) 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 *CustomDash) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *CustomDash) 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 m.Value != nil {
		{
			size := m.Value.Size()
			i -= size
			if _, err := m.Value.MarshalTo(dAtA[i:]); err != nil {
				return 0, err
			}
			i = encodeVarintThetest(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func (m *NinOptCustom) 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 *NinOptCustom) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *NinOptCustom) 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 m.Value != nil {
		{
			size := m.Value.Size()
			i -= size
			if _, err := m.Value.MarshalTo(dAtA[i:]); err != nil {
				return 0, err
			}
			i = encodeVarintThetest(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x12
	}
	if m.Id != nil {
		{
			size := m.Id.Size()
			i -= size
			if _, err := m.Id.MarshalTo(dAtA[i:]); err != nil {
				return 0, err
			}
			i = encodeVarintThetest(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func (m *NidRepCustom) 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 *NidRepCustom) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *NidRepCustom) 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.Value) > 0 {
		for iNdEx := len(m.Value) - 1; iNdEx >= 0; iNdEx-- {
			{
				size := m.Value[iNdEx].Size()
				i -= size
				if _, err := m.Value[iNdEx].MarshalTo(dAtA[i:]); err != nil {
					return 0, err
				}
				i = encodeVarintThetest(dAtA, i, uint64(size))
			}
			i--
			dAtA[i] = 0x12
		}
	}
	if len(m.Id) > 0 {
		for iNdEx := len(m.Id) - 1; iNdEx >= 0; iNdEx-- {
			{
				size := m.Id[iNdEx].Size()
				i -= size
				if _, err := m.Id[iNdEx].MarshalTo(dAtA[i:]); err != nil {
					return 0, err
				}
				i = encodeVarintThetest(dAtA, i, uint64(size))
			}
			i--
			dAtA[i] = 0xa
		}
	}
	return len(dAtA) - i, nil
}

func (m *NinRepCustom) 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 *NinRepCustom) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *NinRepCustom) 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.Value) > 0 {
		for iNdEx := len(m.Value) - 1; iNdEx >= 0; iNdEx-- {
			{
				size := m.Value[iNdEx].Size()
				i -= size
				if _, err := m.Value[iNdEx].MarshalTo(dAtA[i:]); err != nil {
					return 0, err
				}
				i = encodeVarintThetest(dAtA, i, uint64(size))
			}
			i--
			dAtA[i] = 0x12
		}
	}
	if len(m.Id) > 0 {
		for iNdEx := len(m.Id) - 1; iNdEx >= 0; iNdEx-- {
			{
				size := m.Id[iNdEx].Size()
				i -= size
				if _, err := m.Id[iNdEx].MarshalTo(dAtA[i:]); err != nil {
					return 0, err
				}
				i = encodeVarintThetest(dAtA, i, uint64(size))
			}
			i--
			dAtA[i] = 0xa
		}
	}
	return len(dAtA) - i, nil
}

func (m *NinOptNativeUnion) 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 *NinOptNativeUnion) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *NinOptNativeUnion) 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 m.Field15 != nil {
		i -= len(m.Field15)
		copy(dAtA[i:], m.Field15)
		i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15)))
		i--
		dAtA[i] = 0x7a
	}
	if m.Field14 != nil {
		i -= len(*m.Field14)
		copy(dAtA[i:], *m.Field14)
		i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field14)))
		i--
		dAtA[i] = 0x72
	}
	if m.Field13 != nil {
		i--
		if *m.Field13 {
			dAtA[i] = 1
		} else {
			dAtA[i] = 0
		}
		i--
		dAtA[i] = 0x68
	}
	if m.Field6 != nil {
		i = encodeVarintThetest(dAtA, i, uint64(*m.Field6))
		i--
		dAtA[i] = 0x30
	}
	if m.Field5 != nil {
		i = encodeVarintThetest(dAtA, i, uint64(*m.Field5))
		i--
		dAtA[i] = 0x28
	}
	if m.Field4 != nil {
		i = encodeVarintThetest(dAtA, i, uint64(*m.Field4))
		i--
		dAtA[i] = 0x20
	}
	if m.Field3 != nil {
		i = encodeVarintThetest(dAtA, i, uint64(*m.Field3))
		i--
		dAtA[i] = 0x18
	}
	if m.Field2 != nil {
		i -= 4
		encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(*m.Field2))))
		i--
		dAtA[i] = 0x15
	}
	if m.Field1 != nil {
		i -= 8
		encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(*m.Field1))))
		i--
		dAtA[i] = 0x9
	}
	return len(dAtA) - i, nil
}

func (m *NinOptStructUnion) 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 *NinOptStructUnion) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *NinOptStructUnion) 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 m.Field15 != nil {
		i -= len(m.Field15)
		copy(dAtA[i:], m.Field15)
		i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15)))
		i--
		dAtA[i] = 0x7a
	}
	if m.Field14 != nil {
		i -= len(*m.Field14)
		copy(dAtA[i:], *m.Field14)
		i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field14)))
		i--
		dAtA[i] = 0x72
	}
	if m.Field13 != nil {
		i--
		if *m.Field13 {
			dAtA[i] = 1
		} else {
			dAtA[i] = 0
		}
		i--
		dAtA[i] = 0x68
	}
	if m.Field7 != nil {
		i = encodeVarintThetest(dAtA, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31))))
		i--
		dAtA[i] = 0x38
	}
	if m.Field6 != nil {
		i = encodeVarintThetest(dAtA, i, uint64(*m.Field6))
		i--
		dAtA[i] = 0x30
	}
	if m.Field4 != nil {
		{
			size, err := m.Field4.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintThetest(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x22
	}
	if m.Field3 != nil {
		{
			size, err := m.Field3.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintThetest(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x1a
	}
	if m.Field2 != nil {
		i -= 4
		encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(*m.Field2))))
		i--
		dAtA[i] = 0x15
	}
	if m.Field1 != nil {
		i -= 8
		encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(*m.Field1))))
		i--
		dAtA[i] = 0x9
	}
	return len(dAtA) - i, nil
}

func (m *NinEmbeddedStructUnion) 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 *NinEmbeddedStructUnion) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *NinEmbeddedStructUnion) 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 m.Field210 != nil {
		i--
		if *m.Field210 {
			dAtA[i] = 1
		} else {
			dAtA[i] = 0
		}
		i--
		dAtA[i] = 0xd
		i--
		dAtA[i] = 0x90
	}
	if m.Field200 != nil {
		{
			size, err := m.Field200.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintThetest(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0xc
		i--
		dAtA[i] = 0xc2
	}
	if m.NidOptNative != nil {
		{
			size, err := m.NidOptNative.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintThetest(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func (m *NinNestedStructUnion) 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 *NinNestedStructUnion) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *NinNestedStructUnion) 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 m.Field3 != nil {
		{
			size, err := m.Field3.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintThetest(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x1a
	}
	if m.Field2 != nil {
		{
			size, err := m.Field2.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintThetest(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x12
	}
	if m.Field1 != nil {
		{
			size, err := m.Field1.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintThetest(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func (m *Tree) 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 *Tree) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *Tree) 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 m.Leaf != nil {
		{
			size, err := m.Leaf.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintThetest(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x1a
	}
	if m.And != nil {
		{
			size, err := m.And.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintThetest(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x12
	}
	if m.Or != nil {
		{
			size, err := m.Or.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintThetest(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func (m *OrBranch) 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 *OrBranch) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *OrBranch) 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)
	}
	{
		size, err := m.Right.MarshalToSizedBuffer(dAtA[:i])
		if err != nil {
			return 0, err
		}
		i -= size
		i = encodeVarintThetest(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0x12
	{
		size, err := m.Left.MarshalToSizedBuffer(dAtA[:i])
		if err != nil {
			return 0, err
		}
		i -= size
		i = encodeVarintThetest(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0xa
	return len(dAtA) - i, nil
}

func (m *AndBranch) 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 *AndBranch) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *AndBranch) 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)
	}
	{
		size, err := m.Right.MarshalToSizedBuffer(dAtA[:i])
		if err != nil {
			return 0, err
		}
		i -= size
		i = encodeVarintThetest(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0x12
	{
		size, err := m.Left.MarshalToSizedBuffer(dAtA[:i])
		if err != nil {
			return 0, err
		}
		i -= size
		i = encodeVarintThetest(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0xa
	return len(dAtA) - i, nil
}

func (m *Leaf) 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 *Leaf) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *Leaf) 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)
	}
	i -= len(m.StrValue)
	copy(dAtA[i:], m.StrValue)
	i = encodeVarintThetest(dAtA, i, uint64(len(m.StrValue)))
	i--
	dAtA[i] = 0x12
	i = encodeVarintThetest(dAtA, i, uint64(m.Value))
	i--
	dAtA[i] = 0x8
	return len(dAtA) - i, nil
}

func (m *DeepTree) 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 *DeepTree) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *DeepTree) 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 m.Leaf != nil {
		{
			size, err := m.Leaf.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintThetest(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x1a
	}
	if m.And != nil {
		{
			size, err := m.And.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintThetest(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x12
	}
	if m.Down != nil {
		{
			size, err := m.Down.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintThetest(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func (m *ADeepBranch) 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 *ADeepBranch) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *ADeepBranch) 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)
	}
	{
		size, err := m.Down.MarshalToSizedBuffer(dAtA[:i])
		if err != nil {
			return 0, err
		}
		i -= size
		i = encodeVarintThetest(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0x12
	return len(dAtA) - i, nil
}

func (m *AndDeepBranch) 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 *AndDeepBranch) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *AndDeepBranch) 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)
	}
	{
		size, err := m.Right.MarshalToSizedBuffer(dAtA[:i])
		if err != nil {
			return 0, err
		}
		i -= size
		i = encodeVarintThetest(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0x12
	{
		size, err := m.Left.MarshalToSizedBuffer(dAtA[:i])
		if err != nil {
			return 0, err
		}
		i -= size
		i = encodeVarintThetest(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0xa
	return len(dAtA) - i, nil
}

func (m *DeepLeaf) 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 *DeepLeaf) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *DeepLeaf) 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)
	}
	{
		size, err := m.Tree.MarshalToSizedBuffer(dAtA[:i])
		if err != nil {
			return 0, err
		}
		i -= size
		i = encodeVarintThetest(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0xa
	return len(dAtA) - i, nil
}

func (m *Nil) 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 *Nil) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *Nil) 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)
	}
	return len(dAtA) - i, nil
}

func (m *NidOptEnum) 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 *NidOptEnum) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *NidOptEnum) 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)
	}
	i = encodeVarintThetest(dAtA, i, uint64(m.Field1))
	i--
	dAtA[i] = 0x8
	return len(dAtA) - i, nil
}

func (m *NinOptEnum) 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 *NinOptEnum) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *NinOptEnum) 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 m.Field3 != nil {
		i = encodeVarintThetest(dAtA, i, uint64(*m.Field3))
		i--
		dAtA[i] = 0x18
	}
	if m.Field2 != nil {
		i = encodeVarintThetest(dAtA, i, uint64(*m.Field2))
		i--
		dAtA[i] = 0x10
	}
	if m.Field1 != nil {
		i = encodeVarintThetest(dAtA, i, uint64(*m.Field1))
		i--
		dAtA[i] = 0x8
	}
	return len(dAtA) - i, nil
}

func (m *NidRepEnum) 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 *NidRepEnum) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *NidRepEnum) 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.Field3) > 0 {
		for iNdEx := len(m.Field3) - 1; iNdEx >= 0; iNdEx-- {
			i = encodeVarintThetest(dAtA, i, uint64(m.Field3[iNdEx]))
			i--
			dAtA[i] = 0x18
		}
	}
	if len(m.Field2) > 0 {
		for iNdEx := len(m.Field2) - 1; iNdEx >= 0; iNdEx-- {
			i = encodeVarintThetest(dAtA, i, uint64(m.Field2[iNdEx]))
			i--
			dAtA[i] = 0x10
		}
	}
	if len(m.Field1) > 0 {
		for iNdEx := len(m.Field1) - 1; iNdEx >= 0; iNdEx-- {
			i = encodeVarintThetest(dAtA, i, uint64(m.Field1[iNdEx]))
			i--
			dAtA[i] = 0x8
		}
	}
	return len(dAtA) - i, nil
}

func (m *NinRepEnum) 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 *NinRepEnum) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *NinRepEnum) 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.Field3) > 0 {
		for iNdEx := len(m.Field3) - 1; iNdEx >= 0; iNdEx-- {
			i = encodeVarintThetest(dAtA, i, uint64(m.Field3[iNdEx]))
			i--
			dAtA[i] = 0x18
		}
	}
	if len(m.Field2) > 0 {
		for iNdEx := len(m.Field2) - 1; iNdEx >= 0; iNdEx-- {
			i = encodeVarintThetest(dAtA, i, uint64(m.Field2[iNdEx]))
			i--
			dAtA[i] = 0x10
		}
	}
	if len(m.Field1) > 0 {
		for iNdEx := len(m.Field1) - 1; iNdEx >= 0; iNdEx-- {
			i = encodeVarintThetest(dAtA, i, uint64(m.Field1[iNdEx]))
			i--
			dAtA[i] = 0x8
		}
	}
	return len(dAtA) - i, nil
}

func (m *NinOptEnumDefault) 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 *NinOptEnumDefault) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *NinOptEnumDefault) 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 m.Field3 != nil {
		i = encodeVarintThetest(dAtA, i, uint64(*m.Field3))
		i--
		dAtA[i] = 0x18
	}
	if m.Field2 != nil {
		i = encodeVarintThetest(dAtA, i, uint64(*m.Field2))
		i--
		dAtA[i] = 0x10
	}
	if m.Field1 != nil {
		i = encodeVarintThetest(dAtA, i, uint64(*m.Field1))
		i--
		dAtA[i] = 0x8
	}
	return len(dAtA) - i, nil
}

func (m *AnotherNinOptEnum) 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 *AnotherNinOptEnum) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *AnotherNinOptEnum) 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 m.Field3 != nil {
		i = encodeVarintThetest(dAtA, i, uint64(*m.Field3))
		i--
		dAtA[i] = 0x18
	}
	if m.Field2 != nil {
		i = encodeVarintThetest(dAtA, i, uint64(*m.Field2))
		i--
		dAtA[i] = 0x10
	}
	if m.Field1 != nil {
		i = encodeVarintThetest(dAtA, i, uint64(*m.Field1))
		i--
		dAtA[i] = 0x8
	}
	return len(dAtA) - i, nil
}

func (m *AnotherNinOptEnumDefault) 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 *AnotherNinOptEnumDefault) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *AnotherNinOptEnumDefault) 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 m.Field3 != nil {
		i = encodeVarintThetest(dAtA, i, uint64(*m.Field3))
		i--
		dAtA[i] = 0x18
	}
	if m.Field2 != nil {
		i = encodeVarintThetest(dAtA, i, uint64(*m.Field2))
		i--
		dAtA[i] = 0x10
	}
	if m.Field1 != nil {
		i = encodeVarintThetest(dAtA, i, uint64(*m.Field1))
		i--
		dAtA[i] = 0x8
	}
	return len(dAtA) - i, nil
}

func (m *Timer) 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 *Timer) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *Timer) 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 m.Data != nil {
		i -= len(m.Data)
		copy(dAtA[i:], m.Data)
		i = encodeVarintThetest(dAtA, i, uint64(len(m.Data)))
		i--
		dAtA[i] = 0x1a
	}
	i -= 8
	encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Time2))
	i--
	dAtA[i] = 0x11
	i -= 8
	encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Time1))
	i--
	dAtA[i] = 0x9
	return len(dAtA) - i, nil
}

func (m *MyExtendable) 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 *MyExtendable) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *MyExtendable) 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 n, err := github_com_gogo_protobuf_proto.EncodeInternalExtensionBackwards(m, dAtA[:i]); err != nil {
		return 0, err
	} else {
		i -= n
	}
	if m.Field1 != nil {
		i = encodeVarintThetest(dAtA, i, uint64(*m.Field1))
		i--
		dAtA[i] = 0x8
	}
	return len(dAtA) - i, nil
}

func (m *OtherExtenable) 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 *OtherExtenable) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *OtherExtenable) 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 n, err := github_com_gogo_protobuf_proto.EncodeInternalExtensionBackwards(m, dAtA[:i]); err != nil {
		return 0, err
	} else {
		i -= n
	}
	if m.Field13 != nil {
		i = encodeVarintThetest(dAtA, i, uint64(*m.Field13))
		i--
		dAtA[i] = 0x68
	}
	if m.Field2 != nil {
		i = encodeVarintThetest(dAtA, i, uint64(*m.Field2))
		i--
		dAtA[i] = 0x10
	}
	if m.M != nil {
		{
			size, err := m.M.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintThetest(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func (m *NestedDefinition) 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 *NestedDefinition) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *NestedDefinition) 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 m.NM != nil {
		{
			size, err := m.NM.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintThetest(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x22
	}
	if m.NNM != nil {
		{
			size, err := m.NNM.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintThetest(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x1a
	}
	if m.EnumField != nil {
		i = encodeVarintThetest(dAtA, i, uint64(*m.EnumField))
		i--
		dAtA[i] = 0x10
	}
	if m.Field1 != nil {
		i = encodeVarintThetest(dAtA, i, uint64(*m.Field1))
		i--
		dAtA[i] = 0x8
	}
	return len(dAtA) - i, nil
}

func (m *NestedDefinition_NestedMessage) 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 *NestedDefinition_NestedMessage) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *NestedDefinition_NestedMessage) 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 m.NNM != nil {
		{
			size, err := m.NNM.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintThetest(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x12
	}
	if m.NestedField1 != nil {
		i -= 8
		encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(*m.NestedField1))
		i--
		dAtA[i] = 0x9
	}
	return len(dAtA) - i, nil
}

func (m *NestedDefinition_NestedMessage_NestedNestedMsg) 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 *NestedDefinition_NestedMessage_NestedNestedMsg) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *NestedDefinition_NestedMessage_NestedNestedMsg) 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 m.NestedNestedField1 != nil {
		i -= len(*m.NestedNestedField1)
		copy(dAtA[i:], *m.NestedNestedField1)
		i = encodeVarintThetest(dAtA, i, uint64(len(*m.NestedNestedField1)))
		i--
		dAtA[i] = 0x52
	}
	return len(dAtA) - i, nil
}

func (m *NestedScope) 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 *NestedScope) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *NestedScope) 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 m.C != nil {
		{
			size, err := m.C.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintThetest(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x1a
	}
	if m.B != nil {
		i = encodeVarintThetest(dAtA, i, uint64(*m.B))
		i--
		dAtA[i] = 0x10
	}
	if m.A != nil {
		{
			size, err := m.A.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintThetest(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func (m *NinOptNativeDefault) 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 *NinOptNativeDefault) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *NinOptNativeDefault) 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 m.Field15 != nil {
		i -= len(m.Field15)
		copy(dAtA[i:], m.Field15)
		i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15)))
		i--
		dAtA[i] = 0x7a
	}
	if m.Field14 != nil {
		i -= len(*m.Field14)
		copy(dAtA[i:], *m.Field14)
		i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field14)))
		i--
		dAtA[i] = 0x72
	}
	if m.Field13 != nil {
		i--
		if *m.Field13 {
			dAtA[i] = 1
		} else {
			dAtA[i] = 0
		}
		i--
		dAtA[i] = 0x68
	}
	if m.Field12 != nil {
		i -= 8
		encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(*m.Field12))
		i--
		dAtA[i] = 0x61
	}
	if m.Field11 != nil {
		i -= 8
		encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(*m.Field11))
		i--
		dAtA[i] = 0x59
	}
	if m.Field10 != nil {
		i -= 4
		encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(*m.Field10))
		i--
		dAtA[i] = 0x55
	}
	if m.Field9 != nil {
		i -= 4
		encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(*m.Field9))
		i--
		dAtA[i] = 0x4d
	}
	if m.Field8 != nil {
		i = encodeVarintThetest(dAtA, i, uint64((uint64(*m.Field8)<<1)^uint64((*m.Field8>>63))))
		i--
		dAtA[i] = 0x40
	}
	if m.Field7 != nil {
		i = encodeVarintThetest(dAtA, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31))))
		i--
		dAtA[i] = 0x38
	}
	if m.Field6 != nil {
		i = encodeVarintThetest(dAtA, i, uint64(*m.Field6))
		i--
		dAtA[i] = 0x30
	}
	if m.Field5 != nil {
		i = encodeVarintThetest(dAtA, i, uint64(*m.Field5))
		i--
		dAtA[i] = 0x28
	}
	if m.Field4 != nil {
		i = encodeVarintThetest(dAtA, i, uint64(*m.Field4))
		i--
		dAtA[i] = 0x20
	}
	if m.Field3 != nil {
		i = encodeVarintThetest(dAtA, i, uint64(*m.Field3))
		i--
		dAtA[i] = 0x18
	}
	if m.Field2 != nil {
		i -= 4
		encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(*m.Field2))))
		i--
		dAtA[i] = 0x15
	}
	if m.Field1 != nil {
		i -= 8
		encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(*m.Field1))))
		i--
		dAtA[i] = 0x9
	}
	return len(dAtA) - i, nil
}

func (m *CustomContainer) 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 *CustomContainer) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *CustomContainer) 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)
	}
	{
		size, err := m.CustomStruct.MarshalToSizedBuffer(dAtA[:i])
		if err != nil {
			return 0, err
		}
		i -= size
		i = encodeVarintThetest(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0xa
	return len(dAtA) - i, nil
}

func (m *CustomNameNidOptNative) 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 *CustomNameNidOptNative) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *CustomNameNidOptNative) 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 m.FieldO != nil {
		i -= len(m.FieldO)
		copy(dAtA[i:], m.FieldO)
		i = encodeVarintThetest(dAtA, i, uint64(len(m.FieldO)))
		i--
		dAtA[i] = 0x7a
	}
	i -= len(m.FieldN)
	copy(dAtA[i:], m.FieldN)
	i = encodeVarintThetest(dAtA, i, uint64(len(m.FieldN)))
	i--
	dAtA[i] = 0x72
	i--
	if m.FieldM {
		dAtA[i] = 1
	} else {
		dAtA[i] = 0
	}
	i--
	dAtA[i] = 0x68
	i -= 8
	encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.FieldL))
	i--
	dAtA[i] = 0x61
	i -= 8
	encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.FieldK))
	i--
	dAtA[i] = 0x59
	i -= 4
	encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.FieldJ))
	i--
	dAtA[i] = 0x55
	i -= 4
	encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.FieldI))
	i--
	dAtA[i] = 0x4d
	i = encodeVarintThetest(dAtA, i, uint64((uint64(m.FieldH)<<1)^uint64((m.FieldH>>63))))
	i--
	dAtA[i] = 0x40
	i = encodeVarintThetest(dAtA, i, uint64((uint32(m.FieldG)<<1)^uint32((m.FieldG>>31))))
	i--
	dAtA[i] = 0x38
	i = encodeVarintThetest(dAtA, i, uint64(m.FieldF))
	i--
	dAtA[i] = 0x30
	i = encodeVarintThetest(dAtA, i, uint64(m.FieldE))
	i--
	dAtA[i] = 0x28
	i = encodeVarintThetest(dAtA, i, uint64(m.FieldD))
	i--
	dAtA[i] = 0x20
	i = encodeVarintThetest(dAtA, i, uint64(m.FieldC))
	i--
	dAtA[i] = 0x18
	i -= 4
	encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.FieldB))))
	i--
	dAtA[i] = 0x15
	i -= 8
	encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.FieldA))))
	i--
	dAtA[i] = 0x9
	return len(dAtA) - i, nil
}

func (m *CustomNameNinOptNative) 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 *CustomNameNinOptNative) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *CustomNameNinOptNative) 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 m.FieldO != nil {
		i -= len(m.FieldO)
		copy(dAtA[i:], m.FieldO)
		i = encodeVarintThetest(dAtA, i, uint64(len(m.FieldO)))
		i--
		dAtA[i] = 0x7a
	}
	if m.FieldN != nil {
		i -= len(*m.FieldN)
		copy(dAtA[i:], *m.FieldN)
		i = encodeVarintThetest(dAtA, i, uint64(len(*m.FieldN)))
		i--
		dAtA[i] = 0x72
	}
	if m.FieldM != nil {
		i--
		if *m.FieldM {
			dAtA[i] = 1
		} else {
			dAtA[i] = 0
		}
		i--
		dAtA[i] = 0x68
	}
	if m.FielL != nil {
		i -= 8
		encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(*m.FielL))
		i--
		dAtA[i] = 0x61
	}
	if m.FieldK != nil {
		i -= 8
		encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(*m.FieldK))
		i--
		dAtA[i] = 0x59
	}
	if m.FieldJ != nil {
		i -= 4
		encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(*m.FieldJ))
		i--
		dAtA[i] = 0x55
	}
	if m.FieldI != nil {
		i -= 4
		encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(*m.FieldI))
		i--
		dAtA[i] = 0x4d
	}
	if m.FieldH != nil {
		i = encodeVarintThetest(dAtA, i, uint64((uint64(*m.FieldH)<<1)^uint64((*m.FieldH>>63))))
		i--
		dAtA[i] = 0x40
	}
	if m.FieldG != nil {
		i = encodeVarintThetest(dAtA, i, uint64((uint32(*m.FieldG)<<1)^uint32((*m.FieldG>>31))))
		i--
		dAtA[i] = 0x38
	}
	if m.FieldF != nil {
		i = encodeVarintThetest(dAtA, i, uint64(*m.FieldF))
		i--
		dAtA[i] = 0x30
	}
	if m.FieldE != nil {
		i = encodeVarintThetest(dAtA, i, uint64(*m.FieldE))
		i--
		dAtA[i] = 0x28
	}
	if m.FieldD != nil {
		i = encodeVarintThetest(dAtA, i, uint64(*m.FieldD))
		i--
		dAtA[i] = 0x20
	}
	if m.FieldC != nil {
		i = encodeVarintThetest(dAtA, i, uint64(*m.FieldC))
		i--
		dAtA[i] = 0x18
	}
	if m.FieldB != nil {
		i -= 4
		encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(*m.FieldB))))
		i--
		dAtA[i] = 0x15
	}
	if m.FieldA != nil {
		i -= 8
		encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(*m.FieldA))))
		i--
		dAtA[i] = 0x9
	}
	return len(dAtA) - i, nil
}

func (m *CustomNameNinRepNative) 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 *CustomNameNinRepNative) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *CustomNameNinRepNative) 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.FieldO) > 0 {
		for iNdEx := len(m.FieldO) - 1; iNdEx >= 0; iNdEx-- {
			i -= len(m.FieldO[iNdEx])
			copy(dAtA[i:], m.FieldO[iNdEx])
			i = encodeVarintThetest(dAtA, i, uint64(len(m.FieldO[iNdEx])))
			i--
			dAtA[i] = 0x7a
		}
	}
	if len(m.FieldN) > 0 {
		for iNdEx := len(m.FieldN) - 1; iNdEx >= 0; iNdEx-- {
			i -= len(m.FieldN[iNdEx])
			copy(dAtA[i:], m.FieldN[iNdEx])
			i = encodeVarintThetest(dAtA, i, uint64(len(m.FieldN[iNdEx])))
			i--
			dAtA[i] = 0x72
		}
	}
	if len(m.FieldM) > 0 {
		for iNdEx := len(m.FieldM) - 1; iNdEx >= 0; iNdEx-- {
			i--
			if m.FieldM[iNdEx] {
				dAtA[i] = 1
			} else {
				dAtA[i] = 0
			}
			i--
			dAtA[i] = 0x68
		}
	}
	if len(m.FieldL) > 0 {
		for iNdEx := len(m.FieldL) - 1; iNdEx >= 0; iNdEx-- {
			i -= 8
			encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.FieldL[iNdEx]))
			i--
			dAtA[i] = 0x61
		}
	}
	if len(m.FieldK) > 0 {
		for iNdEx := len(m.FieldK) - 1; iNdEx >= 0; iNdEx-- {
			i -= 8
			encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.FieldK[iNdEx]))
			i--
			dAtA[i] = 0x59
		}
	}
	if len(m.FieldJ) > 0 {
		for iNdEx := len(m.FieldJ) - 1; iNdEx >= 0; iNdEx-- {
			i -= 4
			encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.FieldJ[iNdEx]))
			i--
			dAtA[i] = 0x55
		}
	}
	if len(m.FieldI) > 0 {
		for iNdEx := len(m.FieldI) - 1; iNdEx >= 0; iNdEx-- {
			i -= 4
			encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.FieldI[iNdEx]))
			i--
			dAtA[i] = 0x4d
		}
	}
	if len(m.FieldH) > 0 {
		for iNdEx := len(m.FieldH) - 1; iNdEx >= 0; iNdEx-- {
			x87 := (uint64(m.FieldH[iNdEx]) << 1) ^ uint64((m.FieldH[iNdEx] >> 63))
			i = encodeVarintThetest(dAtA, i, uint64(x87))
			i--
			dAtA[i] = 0x40
		}
	}
	if len(m.FieldG) > 0 {
		for iNdEx := len(m.FieldG) - 1; iNdEx >= 0; iNdEx-- {
			x88 := (uint32(m.FieldG[iNdEx]) << 1) ^ uint32((m.FieldG[iNdEx] >> 31))
			i = encodeVarintThetest(dAtA, i, uint64(x88))
			i--
			dAtA[i] = 0x38
		}
	}
	if len(m.FieldF) > 0 {
		for iNdEx := len(m.FieldF) - 1; iNdEx >= 0; iNdEx-- {
			i = encodeVarintThetest(dAtA, i, uint64(m.FieldF[iNdEx]))
			i--
			dAtA[i] = 0x30
		}
	}
	if len(m.FieldE) > 0 {
		for iNdEx := len(m.FieldE) - 1; iNdEx >= 0; iNdEx-- {
			i = encodeVarintThetest(dAtA, i, uint64(m.FieldE[iNdEx]))
			i--
			dAtA[i] = 0x28
		}
	}
	if len(m.FieldD) > 0 {
		for iNdEx := len(m.FieldD) - 1; iNdEx >= 0; iNdEx-- {
			i = encodeVarintThetest(dAtA, i, uint64(m.FieldD[iNdEx]))
			i--
			dAtA[i] = 0x20
		}
	}
	if len(m.FieldC) > 0 {
		for iNdEx := len(m.FieldC) - 1; iNdEx >= 0; iNdEx-- {
			i = encodeVarintThetest(dAtA, i, uint64(m.FieldC[iNdEx]))
			i--
			dAtA[i] = 0x18
		}
	}
	if len(m.FieldB) > 0 {
		for iNdEx := len(m.FieldB) - 1; iNdEx >= 0; iNdEx-- {
			f89 := math.Float32bits(float32(m.FieldB[iNdEx]))
			i -= 4
			encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(f89))
			i--
			dAtA[i] = 0x15
		}
	}
	if len(m.FieldA) > 0 {
		for iNdEx := len(m.FieldA) - 1; iNdEx >= 0; iNdEx-- {
			f90 := math.Float64bits(float64(m.FieldA[iNdEx]))
			i -= 8
			encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(f90))
			i--
			dAtA[i] = 0x9
		}
	}
	return len(dAtA) - i, nil
}

func (m *CustomNameNinStruct) 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 *CustomNameNinStruct) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *CustomNameNinStruct) 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 m.FieldJ != nil {
		i -= len(m.FieldJ)
		copy(dAtA[i:], m.FieldJ)
		i = encodeVarintThetest(dAtA, i, uint64(len(m.FieldJ)))
		i--
		dAtA[i] = 0x7a
	}
	if m.FieldI != nil {
		i -= len(*m.FieldI)
		copy(dAtA[i:], *m.FieldI)
		i = encodeVarintThetest(dAtA, i, uint64(len(*m.FieldI)))
		i--
		dAtA[i] = 0x72
	}
	if m.FieldH != nil {
		i--
		if *m.FieldH {
			dAtA[i] = 1
		} else {
			dAtA[i] = 0
		}
		i--
		dAtA[i] = 0x68
	}
	if m.FieldG != nil {
		{
			size, err := m.FieldG.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintThetest(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x42
	}
	if m.FieldF != nil {
		i = encodeVarintThetest(dAtA, i, uint64((uint32(*m.FieldF)<<1)^uint32((*m.FieldF>>31))))
		i--
		dAtA[i] = 0x38
	}
	if m.FieldE != nil {
		i = encodeVarintThetest(dAtA, i, uint64(*m.FieldE))
		i--
		dAtA[i] = 0x30
	}
	if len(m.FieldD) > 0 {
		for iNdEx := len(m.FieldD) - 1; iNdEx >= 0; iNdEx-- {
			{
				size, err := m.FieldD[iNdEx].MarshalToSizedBuffer(dAtA[:i])
				if err != nil {
					return 0, err
				}
				i -= size
				i = encodeVarintThetest(dAtA, i, uint64(size))
			}
			i--
			dAtA[i] = 0x22
		}
	}
	if m.FieldC != nil {
		{
			size, err := m.FieldC.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintThetest(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x1a
	}
	if m.FieldB != nil {
		i -= 4
		encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(*m.FieldB))))
		i--
		dAtA[i] = 0x15
	}
	if m.FieldA != nil {
		i -= 8
		encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(*m.FieldA))))
		i--
		dAtA[i] = 0x9
	}
	return len(dAtA) - i, nil
}

func (m *CustomNameCustomType) 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 *CustomNameCustomType) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *CustomNameCustomType) 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.FieldD) > 0 {
		for iNdEx := len(m.FieldD) - 1; iNdEx >= 0; iNdEx-- {
			{
				size := m.FieldD[iNdEx].Size()
				i -= size
				if _, err := m.FieldD[iNdEx].MarshalTo(dAtA[i:]); err != nil {
					return 0, err
				}
				i = encodeVarintThetest(dAtA, i, uint64(size))
			}
			i--
			dAtA[i] = 0x22
		}
	}
	if len(m.FieldC) > 0 {
		for iNdEx := len(m.FieldC) - 1; iNdEx >= 0; iNdEx-- {
			{
				size := m.FieldC[iNdEx].Size()
				i -= size
				if _, err := m.FieldC[iNdEx].MarshalTo(dAtA[i:]); err != nil {
					return 0, err
				}
				i = encodeVarintThetest(dAtA, i, uint64(size))
			}
			i--
			dAtA[i] = 0x1a
		}
	}
	if m.FieldB != nil {
		{
			size := m.FieldB.Size()
			i -= size
			if _, err := m.FieldB.MarshalTo(dAtA[i:]); err != nil {
				return 0, err
			}
			i = encodeVarintThetest(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x12
	}
	if m.FieldA != nil {
		{
			size := m.FieldA.Size()
			i -= size
			if _, err := m.FieldA.MarshalTo(dAtA[i:]); err != nil {
				return 0, err
			}
			i = encodeVarintThetest(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func (m *CustomNameNinEmbeddedStructUnion) 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 *CustomNameNinEmbeddedStructUnion) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *CustomNameNinEmbeddedStructUnion) 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 m.FieldB != nil {
		i--
		if *m.FieldB {
			dAtA[i] = 1
		} else {
			dAtA[i] = 0
		}
		i--
		dAtA[i] = 0xd
		i--
		dAtA[i] = 0x90
	}
	if m.FieldA != nil {
		{
			size, err := m.FieldA.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintThetest(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0xc
		i--
		dAtA[i] = 0xc2
	}
	if m.NidOptNative != nil {
		{
			size, err := m.NidOptNative.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintThetest(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func (m *CustomNameEnum) 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 *CustomNameEnum) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *CustomNameEnum) 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.FieldB) > 0 {
		for iNdEx := len(m.FieldB) - 1; iNdEx >= 0; iNdEx-- {
			i = encodeVarintThetest(dAtA, i, uint64(m.FieldB[iNdEx]))
			i--
			dAtA[i] = 0x10
		}
	}
	if m.FieldA != nil {
		i = encodeVarintThetest(dAtA, i, uint64(*m.FieldA))
		i--
		dAtA[i] = 0x8
	}
	return len(dAtA) - i, nil
}

func (m *NoExtensionsMap) 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 *NoExtensionsMap) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *NoExtensionsMap) 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 m.XXX_extensions != nil {
		i -= len(m.XXX_extensions)
		copy(dAtA[i:], m.XXX_extensions)
	}
	if m.Field1 != nil {
		i = encodeVarintThetest(dAtA, i, uint64(*m.Field1))
		i--
		dAtA[i] = 0x8
	}
	return len(dAtA) - i, nil
}

func (m *Unrecognized) 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 *Unrecognized) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *Unrecognized) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if m.Field1 != nil {
		i -= len(*m.Field1)
		copy(dAtA[i:], *m.Field1)
		i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field1)))
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func (m *UnrecognizedWithInner) 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 *UnrecognizedWithInner) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *UnrecognizedWithInner) 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 m.Field2 != nil {
		i -= len(*m.Field2)
		copy(dAtA[i:], *m.Field2)
		i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field2)))
		i--
		dAtA[i] = 0x12
	}
	if len(m.Embedded) > 0 {
		for iNdEx := len(m.Embedded) - 1; iNdEx >= 0; iNdEx-- {
			{
				size, err := m.Embedded[iNdEx].MarshalToSizedBuffer(dAtA[:i])
				if err != nil {
					return 0, err
				}
				i -= size
				i = encodeVarintThetest(dAtA, i, uint64(size))
			}
			i--
			dAtA[i] = 0xa
		}
	}
	return len(dAtA) - i, nil
}

func (m *UnrecognizedWithInner_Inner) 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 *UnrecognizedWithInner_Inner) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *UnrecognizedWithInner_Inner) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if m.Field1 != nil {
		i = encodeVarintThetest(dAtA, i, uint64(*m.Field1))
		i--
		dAtA[i] = 0x8
	}
	return len(dAtA) - i, nil
}

func (m *UnrecognizedWithEmbed) 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 *UnrecognizedWithEmbed) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *UnrecognizedWithEmbed) 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 m.Field2 != nil {
		i -= len(*m.Field2)
		copy(dAtA[i:], *m.Field2)
		i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field2)))
		i--
		dAtA[i] = 0x12
	}
	{
		size, err := m.UnrecognizedWithEmbed_Embedded.MarshalToSizedBuffer(dAtA[:i])
		if err != nil {
			return 0, err
		}
		i -= size
		i = encodeVarintThetest(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0xa
	return len(dAtA) - i, nil
}

func (m *UnrecognizedWithEmbed_Embedded) 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 *UnrecognizedWithEmbed_Embedded) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *UnrecognizedWithEmbed_Embedded) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if m.Field1 != nil {
		i = encodeVarintThetest(dAtA, i, uint64(*m.Field1))
		i--
		dAtA[i] = 0x8
	}
	return len(dAtA) - i, nil
}

func (m *Node) 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 *Node) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *Node) 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.Children) > 0 {
		for iNdEx := len(m.Children) - 1; iNdEx >= 0; iNdEx-- {
			{
				size, err := m.Children[iNdEx].MarshalToSizedBuffer(dAtA[:i])
				if err != nil {
					return 0, err
				}
				i -= size
				i = encodeVarintThetest(dAtA, i, uint64(size))
			}
			i--
			dAtA[i] = 0x12
		}
	}
	if m.Label != nil {
		i -= len(*m.Label)
		copy(dAtA[i:], *m.Label)
		i = encodeVarintThetest(dAtA, i, uint64(len(*m.Label)))
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func (m *NonByteCustomType) 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 *NonByteCustomType) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *NonByteCustomType) 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 m.Field1 != nil {
		{
			size := m.Field1.Size()
			i -= size
			if _, err := m.Field1.MarshalTo(dAtA[i:]); err != nil {
				return 0, err
			}
			i = encodeVarintThetest(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func (m *NidOptNonByteCustomType) 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 *NidOptNonByteCustomType) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *NidOptNonByteCustomType) 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)
	}
	{
		size := m.Field1.Size()
		i -= size
		if _, err := m.Field1.MarshalTo(dAtA[i:]); err != nil {
			return 0, err
		}
		i = encodeVarintThetest(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0xa
	return len(dAtA) - i, nil
}

func (m *NinOptNonByteCustomType) 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 *NinOptNonByteCustomType) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *NinOptNonByteCustomType) 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 m.Field1 != nil {
		{
			size := m.Field1.Size()
			i -= size
			if _, err := m.Field1.MarshalTo(dAtA[i:]); err != nil {
				return 0, err
			}
			i = encodeVarintThetest(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func (m *NidRepNonByteCustomType) 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 *NidRepNonByteCustomType) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *NidRepNonByteCustomType) 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.Field1) > 0 {
		for iNdEx := len(m.Field1) - 1; iNdEx >= 0; iNdEx-- {
			{
				size := m.Field1[iNdEx].Size()
				i -= size
				if _, err := m.Field1[iNdEx].MarshalTo(dAtA[i:]); err != nil {
					return 0, err
				}
				i = encodeVarintThetest(dAtA, i, uint64(size))
			}
			i--
			dAtA[i] = 0xa
		}
	}
	return len(dAtA) - i, nil
}

func (m *NinRepNonByteCustomType) 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 *NinRepNonByteCustomType) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *NinRepNonByteCustomType) 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.Field1) > 0 {
		for iNdEx := len(m.Field1) - 1; iNdEx >= 0; iNdEx-- {
			{
				size := m.Field1[iNdEx].Size()
				i -= size
				if _, err := m.Field1[iNdEx].MarshalTo(dAtA[i:]); err != nil {
					return 0, err
				}
				i = encodeVarintThetest(dAtA, i, uint64(size))
			}
			i--
			dAtA[i] = 0xa
		}
	}
	return len(dAtA) - i, nil
}

func (m *ProtoType) 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 *ProtoType) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *ProtoType) 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 m.Field2 != nil {
		i -= len(*m.Field2)
		copy(dAtA[i:], *m.Field2)
		i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field2)))
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func encodeVarintThetest(dAtA []byte, offset int, v uint64) int {
	offset -= sovThetest(v)
	base := offset
	for v >= 1<<7 {
		dAtA[offset] = uint8(v&0x7f | 0x80)
		v >>= 7
		offset++
	}
	dAtA[offset] = uint8(v)
	return base
}
func NewPopulatedNidOptNative(r randyThetest, easy bool) *NidOptNative {
	this := &NidOptNative{}
	this.Field1 = float64(r.Float64())
	if r.Intn(2) == 0 {
		this.Field1 *= -1
	}
	this.Field2 = float32(r.Float32())
	if r.Intn(2) == 0 {
		this.Field2 *= -1
	}
	this.Field3 = int32(r.Int31())
	if r.Intn(2) == 0 {
		this.Field3 *= -1
	}
	this.Field4 = int64(r.Int63())
	if r.Intn(2) == 0 {
		this.Field4 *= -1
	}
	this.Field5 = uint32(r.Uint32())
	this.Field6 = uint64(uint64(r.Uint32()))
	this.Field7 = int32(r.Int31())
	if r.Intn(2) == 0 {
		this.Field7 *= -1
	}
	this.Field8 = int64(r.Int63())
	if r.Intn(2) == 0 {
		this.Field8 *= -1
	}
	this.Field9 = uint32(r.Uint32())
	this.Field10 = int32(r.Int31())
	if r.Intn(2) == 0 {
		this.Field10 *= -1
	}
	this.Field11 = uint64(uint64(r.Uint32()))
	this.Field12 = int64(r.Int63())
	if r.Intn(2) == 0 {
		this.Field12 *= -1
	}
	this.Field13 = bool(bool(r.Intn(2) == 0))
	this.Field14 = string(randStringThetest(r))
	v1 := r.Intn(100)
	this.Field15 = make([]byte, v1)
	for i := 0; i < v1; i++ {
		this.Field15[i] = byte(r.Intn(256))
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 16)
	}
	return this
}

func NewPopulatedNinOptNative(r randyThetest, easy bool) *NinOptNative {
	this := &NinOptNative{}
	if r.Intn(5) != 0 {
		v2 := float64(r.Float64())
		if r.Intn(2) == 0 {
			v2 *= -1
		}
		this.Field1 = &v2
	}
	if r.Intn(5) != 0 {
		v3 := float32(r.Float32())
		if r.Intn(2) == 0 {
			v3 *= -1
		}
		this.Field2 = &v3
	}
	if r.Intn(5) != 0 {
		v4 := int32(r.Int31())
		if r.Intn(2) == 0 {
			v4 *= -1
		}
		this.Field3 = &v4
	}
	if r.Intn(5) != 0 {
		v5 := int64(r.Int63())
		if r.Intn(2) == 0 {
			v5 *= -1
		}
		this.Field4 = &v5
	}
	if r.Intn(5) != 0 {
		v6 := uint32(r.Uint32())
		this.Field5 = &v6
	}
	if r.Intn(5) != 0 {
		v7 := uint64(uint64(r.Uint32()))
		this.Field6 = &v7
	}
	if r.Intn(5) != 0 {
		v8 := int32(r.Int31())
		if r.Intn(2) == 0 {
			v8 *= -1
		}
		this.Field7 = &v8
	}
	if r.Intn(5) != 0 {
		v9 := int64(r.Int63())
		if r.Intn(2) == 0 {
			v9 *= -1
		}
		this.Field8 = &v9
	}
	if r.Intn(5) != 0 {
		v10 := uint32(r.Uint32())
		this.Field9 = &v10
	}
	if r.Intn(5) != 0 {
		v11 := int32(r.Int31())
		if r.Intn(2) == 0 {
			v11 *= -1
		}
		this.Field10 = &v11
	}
	if r.Intn(5) != 0 {
		v12 := uint64(uint64(r.Uint32()))
		this.Field11 = &v12
	}
	if r.Intn(5) != 0 {
		v13 := int64(r.Int63())
		if r.Intn(2) == 0 {
			v13 *= -1
		}
		this.Field12 = &v13
	}
	if r.Intn(5) != 0 {
		v14 := bool(bool(r.Intn(2) == 0))
		this.Field13 = &v14
	}
	if r.Intn(5) != 0 {
		v15 := string(randStringThetest(r))
		this.Field14 = &v15
	}
	if r.Intn(5) != 0 {
		v16 := r.Intn(100)
		this.Field15 = make([]byte, v16)
		for i := 0; i < v16; i++ {
			this.Field15[i] = byte(r.Intn(256))
		}
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 16)
	}
	return this
}

func NewPopulatedNidRepNative(r randyThetest, easy bool) *NidRepNative {
	this := &NidRepNative{}
	if r.Intn(5) != 0 {
		v17 := r.Intn(10)
		this.Field1 = make([]float64, v17)
		for i := 0; i < v17; i++ {
			this.Field1[i] = float64(r.Float64())
			if r.Intn(2) == 0 {
				this.Field1[i] *= -1
			}
		}
	}
	if r.Intn(5) != 0 {
		v18 := r.Intn(10)
		this.Field2 = make([]float32, v18)
		for i := 0; i < v18; i++ {
			this.Field2[i] = float32(r.Float32())
			if r.Intn(2) == 0 {
				this.Field2[i] *= -1
			}
		}
	}
	if r.Intn(5) != 0 {
		v19 := r.Intn(10)
		this.Field3 = make([]int32, v19)
		for i := 0; i < v19; i++ {
			this.Field3[i] = int32(r.Int31())
			if r.Intn(2) == 0 {
				this.Field3[i] *= -1
			}
		}
	}
	if r.Intn(5) != 0 {
		v20 := r.Intn(10)
		this.Field4 = make([]int64, v20)
		for i := 0; i < v20; i++ {
			this.Field4[i] = int64(r.Int63())
			if r.Intn(2) == 0 {
				this.Field4[i] *= -1
			}
		}
	}
	if r.Intn(5) != 0 {
		v21 := r.Intn(10)
		this.Field5 = make([]uint32, v21)
		for i := 0; i < v21; i++ {
			this.Field5[i] = uint32(r.Uint32())
		}
	}
	if r.Intn(5) != 0 {
		v22 := r.Intn(10)
		this.Field6 = make([]uint64, v22)
		for i := 0; i < v22; i++ {
			this.Field6[i] = uint64(uint64(r.Uint32()))
		}
	}
	if r.Intn(5) != 0 {
		v23 := r.Intn(10)
		this.Field7 = make([]int32, v23)
		for i := 0; i < v23; i++ {
			this.Field7[i] = int32(r.Int31())
			if r.Intn(2) == 0 {
				this.Field7[i] *= -1
			}
		}
	}
	if r.Intn(5) != 0 {
		v24 := r.Intn(10)
		this.Field8 = make([]int64, v24)
		for i := 0; i < v24; i++ {
			this.Field8[i] = int64(r.Int63())
			if r.Intn(2) == 0 {
				this.Field8[i] *= -1
			}
		}
	}
	if r.Intn(5) != 0 {
		v25 := r.Intn(10)
		this.Field9 = make([]uint32, v25)
		for i := 0; i < v25; i++ {
			this.Field9[i] = uint32(r.Uint32())
		}
	}
	if r.Intn(5) != 0 {
		v26 := r.Intn(10)
		this.Field10 = make([]int32, v26)
		for i := 0; i < v26; i++ {
			this.Field10[i] = int32(r.Int31())
			if r.Intn(2) == 0 {
				this.Field10[i] *= -1
			}
		}
	}
	if r.Intn(5) != 0 {
		v27 := r.Intn(10)
		this.Field11 = make([]uint64, v27)
		for i := 0; i < v27; i++ {
			this.Field11[i] = uint64(uint64(r.Uint32()))
		}
	}
	if r.Intn(5) != 0 {
		v28 := r.Intn(10)
		this.Field12 = make([]int64, v28)
		for i := 0; i < v28; i++ {
			this.Field12[i] = int64(r.Int63())
			if r.Intn(2) == 0 {
				this.Field12[i] *= -1
			}
		}
	}
	if r.Intn(5) != 0 {
		v29 := r.Intn(10)
		this.Field13 = make([]bool, v29)
		for i := 0; i < v29; i++ {
			this.Field13[i] = bool(bool(r.Intn(2) == 0))
		}
	}
	if r.Intn(5) != 0 {
		v30 := r.Intn(10)
		this.Field14 = make([]string, v30)
		for i := 0; i < v30; i++ {
			this.Field14[i] = string(randStringThetest(r))
		}
	}
	if r.Intn(5) != 0 {
		v31 := r.Intn(10)
		this.Field15 = make([][]byte, v31)
		for i := 0; i < v31; i++ {
			v32 := r.Intn(100)
			this.Field15[i] = make([]byte, v32)
			for j := 0; j < v32; j++ {
				this.Field15[i][j] = byte(r.Intn(256))
			}
		}
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 16)
	}
	return this
}

func NewPopulatedNinRepNative(r randyThetest, easy bool) *NinRepNative {
	this := &NinRepNative{}
	if r.Intn(5) != 0 {
		v33 := r.Intn(10)
		this.Field1 = make([]float64, v33)
		for i := 0; i < v33; i++ {
			this.Field1[i] = float64(r.Float64())
			if r.Intn(2) == 0 {
				this.Field1[i] *= -1
			}
		}
	}
	if r.Intn(5) != 0 {
		v34 := r.Intn(10)
		this.Field2 = make([]float32, v34)
		for i := 0; i < v34; i++ {
			this.Field2[i] = float32(r.Float32())
			if r.Intn(2) == 0 {
				this.Field2[i] *= -1
			}
		}
	}
	if r.Intn(5) != 0 {
		v35 := r.Intn(10)
		this.Field3 = make([]int32, v35)
		for i := 0; i < v35; i++ {
			this.Field3[i] = int32(r.Int31())
			if r.Intn(2) == 0 {
				this.Field3[i] *= -1
			}
		}
	}
	if r.Intn(5) != 0 {
		v36 := r.Intn(10)
		this.Field4 = make([]int64, v36)
		for i := 0; i < v36; i++ {
			this.Field4[i] = int64(r.Int63())
			if r.Intn(2) == 0 {
				this.Field4[i] *= -1
			}
		}
	}
	if r.Intn(5) != 0 {
		v37 := r.Intn(10)
		this.Field5 = make([]uint32, v37)
		for i := 0; i < v37; i++ {
			this.Field5[i] = uint32(r.Uint32())
		}
	}
	if r.Intn(5) != 0 {
		v38 := r.Intn(10)
		this.Field6 = make([]uint64, v38)
		for i := 0; i < v38; i++ {
			this.Field6[i] = uint64(uint64(r.Uint32()))
		}
	}
	if r.Intn(5) != 0 {
		v39 := r.Intn(10)
		this.Field7 = make([]int32, v39)
		for i := 0; i < v39; i++ {
			this.Field7[i] = int32(r.Int31())
			if r.Intn(2) == 0 {
				this.Field7[i] *= -1
			}
		}
	}
	if r.Intn(5) != 0 {
		v40 := r.Intn(10)
		this.Field8 = make([]int64, v40)
		for i := 0; i < v40; i++ {
			this.Field8[i] = int64(r.Int63())
			if r.Intn(2) == 0 {
				this.Field8[i] *= -1
			}
		}
	}
	if r.Intn(5) != 0 {
		v41 := r.Intn(10)
		this.Field9 = make([]uint32, v41)
		for i := 0; i < v41; i++ {
			this.Field9[i] = uint32(r.Uint32())
		}
	}
	if r.Intn(5) != 0 {
		v42 := r.Intn(10)
		this.Field10 = make([]int32, v42)
		for i := 0; i < v42; i++ {
			this.Field10[i] = int32(r.Int31())
			if r.Intn(2) == 0 {
				this.Field10[i] *= -1
			}
		}
	}
	if r.Intn(5) != 0 {
		v43 := r.Intn(10)
		this.Field11 = make([]uint64, v43)
		for i := 0; i < v43; i++ {
			this.Field11[i] = uint64(uint64(r.Uint32()))
		}
	}
	if r.Intn(5) != 0 {
		v44 := r.Intn(10)
		this.Field12 = make([]int64, v44)
		for i := 0; i < v44; i++ {
			this.Field12[i] = int64(r.Int63())
			if r.Intn(2) == 0 {
				this.Field12[i] *= -1
			}
		}
	}
	if r.Intn(5) != 0 {
		v45 := r.Intn(10)
		this.Field13 = make([]bool, v45)
		for i := 0; i < v45; i++ {
			this.Field13[i] = bool(bool(r.Intn(2) == 0))
		}
	}
	if r.Intn(5) != 0 {
		v46 := r.Intn(10)
		this.Field14 = make([]string, v46)
		for i := 0; i < v46; i++ {
			this.Field14[i] = string(randStringThetest(r))
		}
	}
	if r.Intn(5) != 0 {
		v47 := r.Intn(10)
		this.Field15 = make([][]byte, v47)
		for i := 0; i < v47; i++ {
			v48 := r.Intn(100)
			this.Field15[i] = make([]byte, v48)
			for j := 0; j < v48; j++ {
				this.Field15[i][j] = byte(r.Intn(256))
			}
		}
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 16)
	}
	return this
}

func NewPopulatedNidRepPackedNative(r randyThetest, easy bool) *NidRepPackedNative {
	this := &NidRepPackedNative{}
	if r.Intn(5) != 0 {
		v49 := r.Intn(10)
		this.Field1 = make([]float64, v49)
		for i := 0; i < v49; i++ {
			this.Field1[i] = float64(r.Float64())
			if r.Intn(2) == 0 {
				this.Field1[i] *= -1
			}
		}
	}
	if r.Intn(5) != 0 {
		v50 := r.Intn(10)
		this.Field2 = make([]float32, v50)
		for i := 0; i < v50; i++ {
			this.Field2[i] = float32(r.Float32())
			if r.Intn(2) == 0 {
				this.Field2[i] *= -1
			}
		}
	}
	if r.Intn(5) != 0 {
		v51 := r.Intn(10)
		this.Field3 = make([]int32, v51)
		for i := 0; i < v51; i++ {
			this.Field3[i] = int32(r.Int31())
			if r.Intn(2) == 0 {
				this.Field3[i] *= -1
			}
		}
	}
	if r.Intn(5) != 0 {
		v52 := r.Intn(10)
		this.Field4 = make([]int64, v52)
		for i := 0; i < v52; i++ {
			this.Field4[i] = int64(r.Int63())
			if r.Intn(2) == 0 {
				this.Field4[i] *= -1
			}
		}
	}
	if r.Intn(5) != 0 {
		v53 := r.Intn(10)
		this.Field5 = make([]uint32, v53)
		for i := 0; i < v53; i++ {
			this.Field5[i] = uint32(r.Uint32())
		}
	}
	if r.Intn(5) != 0 {
		v54 := r.Intn(10)
		this.Field6 = make([]uint64, v54)
		for i := 0; i < v54; i++ {
			this.Field6[i] = uint64(uint64(r.Uint32()))
		}
	}
	if r.Intn(5) != 0 {
		v55 := r.Intn(10)
		this.Field7 = make([]int32, v55)
		for i := 0; i < v55; i++ {
			this.Field7[i] = int32(r.Int31())
			if r.Intn(2) == 0 {
				this.Field7[i] *= -1
			}
		}
	}
	if r.Intn(5) != 0 {
		v56 := r.Intn(10)
		this.Field8 = make([]int64, v56)
		for i := 0; i < v56; i++ {
			this.Field8[i] = int64(r.Int63())
			if r.Intn(2) == 0 {
				this.Field8[i] *= -1
			}
		}
	}
	if r.Intn(5) != 0 {
		v57 := r.Intn(10)
		this.Field9 = make([]uint32, v57)
		for i := 0; i < v57; i++ {
			this.Field9[i] = uint32(r.Uint32())
		}
	}
	if r.Intn(5) != 0 {
		v58 := r.Intn(10)
		this.Field10 = make([]int32, v58)
		for i := 0; i < v58; i++ {
			this.Field10[i] = int32(r.Int31())
			if r.Intn(2) == 0 {
				this.Field10[i] *= -1
			}
		}
	}
	if r.Intn(5) != 0 {
		v59 := r.Intn(10)
		this.Field11 = make([]uint64, v59)
		for i := 0; i < v59; i++ {
			this.Field11[i] = uint64(uint64(r.Uint32()))
		}
	}
	if r.Intn(5) != 0 {
		v60 := r.Intn(10)
		this.Field12 = make([]int64, v60)
		for i := 0; i < v60; i++ {
			this.Field12[i] = int64(r.Int63())
			if r.Intn(2) == 0 {
				this.Field12[i] *= -1
			}
		}
	}
	if r.Intn(5) != 0 {
		v61 := r.Intn(10)
		this.Field13 = make([]bool, v61)
		for i := 0; i < v61; i++ {
			this.Field13[i] = bool(bool(r.Intn(2) == 0))
		}
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 14)
	}
	return this
}

func NewPopulatedNinRepPackedNative(r randyThetest, easy bool) *NinRepPackedNative {
	this := &NinRepPackedNative{}
	if r.Intn(5) != 0 {
		v62 := r.Intn(10)
		this.Field1 = make([]float64, v62)
		for i := 0; i < v62; i++ {
			this.Field1[i] = float64(r.Float64())
			if r.Intn(2) == 0 {
				this.Field1[i] *= -1
			}
		}
	}
	if r.Intn(5) != 0 {
		v63 := r.Intn(10)
		this.Field2 = make([]float32, v63)
		for i := 0; i < v63; i++ {
			this.Field2[i] = float32(r.Float32())
			if r.Intn(2) == 0 {
				this.Field2[i] *= -1
			}
		}
	}
	if r.Intn(5) != 0 {
		v64 := r.Intn(10)
		this.Field3 = make([]int32, v64)
		for i := 0; i < v64; i++ {
			this.Field3[i] = int32(r.Int31())
			if r.Intn(2) == 0 {
				this.Field3[i] *= -1
			}
		}
	}
	if r.Intn(5) != 0 {
		v65 := r.Intn(10)
		this.Field4 = make([]int64, v65)
		for i := 0; i < v65; i++ {
			this.Field4[i] = int64(r.Int63())
			if r.Intn(2) == 0 {
				this.Field4[i] *= -1
			}
		}
	}
	if r.Intn(5) != 0 {
		v66 := r.Intn(10)
		this.Field5 = make([]uint32, v66)
		for i := 0; i < v66; i++ {
			this.Field5[i] = uint32(r.Uint32())
		}
	}
	if r.Intn(5) != 0 {
		v67 := r.Intn(10)
		this.Field6 = make([]uint64, v67)
		for i := 0; i < v67; i++ {
			this.Field6[i] = uint64(uint64(r.Uint32()))
		}
	}
	if r.Intn(5) != 0 {
		v68 := r.Intn(10)
		this.Field7 = make([]int32, v68)
		for i := 0; i < v68; i++ {
			this.Field7[i] = int32(r.Int31())
			if r.Intn(2) == 0 {
				this.Field7[i] *= -1
			}
		}
	}
	if r.Intn(5) != 0 {
		v69 := r.Intn(10)
		this.Field8 = make([]int64, v69)
		for i := 0; i < v69; i++ {
			this.Field8[i] = int64(r.Int63())
			if r.Intn(2) == 0 {
				this.Field8[i] *= -1
			}
		}
	}
	if r.Intn(5) != 0 {
		v70 := r.Intn(10)
		this.Field9 = make([]uint32, v70)
		for i := 0; i < v70; i++ {
			this.Field9[i] = uint32(r.Uint32())
		}
	}
	if r.Intn(5) != 0 {
		v71 := r.Intn(10)
		this.Field10 = make([]int32, v71)
		for i := 0; i < v71; i++ {
			this.Field10[i] = int32(r.Int31())
			if r.Intn(2) == 0 {
				this.Field10[i] *= -1
			}
		}
	}
	if r.Intn(5) != 0 {
		v72 := r.Intn(10)
		this.Field11 = make([]uint64, v72)
		for i := 0; i < v72; i++ {
			this.Field11[i] = uint64(uint64(r.Uint32()))
		}
	}
	if r.Intn(5) != 0 {
		v73 := r.Intn(10)
		this.Field12 = make([]int64, v73)
		for i := 0; i < v73; i++ {
			this.Field12[i] = int64(r.Int63())
			if r.Intn(2) == 0 {
				this.Field12[i] *= -1
			}
		}
	}
	if r.Intn(5) != 0 {
		v74 := r.Intn(10)
		this.Field13 = make([]bool, v74)
		for i := 0; i < v74; i++ {
			this.Field13[i] = bool(bool(r.Intn(2) == 0))
		}
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 14)
	}
	return this
}

func NewPopulatedNidOptStruct(r randyThetest, easy bool) *NidOptStruct {
	this := &NidOptStruct{}
	this.Field1 = float64(r.Float64())
	if r.Intn(2) == 0 {
		this.Field1 *= -1
	}
	this.Field2 = float32(r.Float32())
	if r.Intn(2) == 0 {
		this.Field2 *= -1
	}
	v75 := NewPopulatedNidOptNative(r, easy)
	this.Field3 = *v75
	v76 := NewPopulatedNinOptNative(r, easy)
	this.Field4 = *v76
	this.Field6 = uint64(uint64(r.Uint32()))
	this.Field7 = int32(r.Int31())
	if r.Intn(2) == 0 {
		this.Field7 *= -1
	}
	v77 := NewPopulatedNidOptNative(r, easy)
	this.Field8 = *v77
	this.Field13 = bool(bool(r.Intn(2) == 0))
	this.Field14 = string(randStringThetest(r))
	v78 := r.Intn(100)
	this.Field15 = make([]byte, v78)
	for i := 0; i < v78; i++ {
		this.Field15[i] = byte(r.Intn(256))
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 16)
	}
	return this
}

func NewPopulatedNinOptStruct(r randyThetest, easy bool) *NinOptStruct {
	this := &NinOptStruct{}
	if r.Intn(5) != 0 {
		v79 := float64(r.Float64())
		if r.Intn(2) == 0 {
			v79 *= -1
		}
		this.Field1 = &v79
	}
	if r.Intn(5) != 0 {
		v80 := float32(r.Float32())
		if r.Intn(2) == 0 {
			v80 *= -1
		}
		this.Field2 = &v80
	}
	if r.Intn(5) != 0 {
		this.Field3 = NewPopulatedNidOptNative(r, easy)
	}
	if r.Intn(5) != 0 {
		this.Field4 = NewPopulatedNinOptNative(r, easy)
	}
	if r.Intn(5) != 0 {
		v81 := uint64(uint64(r.Uint32()))
		this.Field6 = &v81
	}
	if r.Intn(5) != 0 {
		v82 := int32(r.Int31())
		if r.Intn(2) == 0 {
			v82 *= -1
		}
		this.Field7 = &v82
	}
	if r.Intn(5) != 0 {
		this.Field8 = NewPopulatedNidOptNative(r, easy)
	}
	if r.Intn(5) != 0 {
		v83 := bool(bool(r.Intn(2) == 0))
		this.Field13 = &v83
	}
	if r.Intn(5) != 0 {
		v84 := string(randStringThetest(r))
		this.Field14 = &v84
	}
	if r.Intn(5) != 0 {
		v85 := r.Intn(100)
		this.Field15 = make([]byte, v85)
		for i := 0; i < v85; i++ {
			this.Field15[i] = byte(r.Intn(256))
		}
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 16)
	}
	return this
}

func NewPopulatedNidRepStruct(r randyThetest, easy bool) *NidRepStruct {
	this := &NidRepStruct{}
	if r.Intn(5) != 0 {
		v86 := r.Intn(10)
		this.Field1 = make([]float64, v86)
		for i := 0; i < v86; i++ {
			this.Field1[i] = float64(r.Float64())
			if r.Intn(2) == 0 {
				this.Field1[i] *= -1
			}
		}
	}
	if r.Intn(5) != 0 {
		v87 := r.Intn(10)
		this.Field2 = make([]float32, v87)
		for i := 0; i < v87; i++ {
			this.Field2[i] = float32(r.Float32())
			if r.Intn(2) == 0 {
				this.Field2[i] *= -1
			}
		}
	}
	if r.Intn(5) != 0 {
		v88 := r.Intn(5)
		this.Field3 = make([]NidOptNative, v88)
		for i := 0; i < v88; i++ {
			v89 := NewPopulatedNidOptNative(r, easy)
			this.Field3[i] = *v89
		}
	}
	if r.Intn(5) != 0 {
		v90 := r.Intn(5)
		this.Field4 = make([]NinOptNative, v90)
		for i := 0; i < v90; i++ {
			v91 := NewPopulatedNinOptNative(r, easy)
			this.Field4[i] = *v91
		}
	}
	if r.Intn(5) != 0 {
		v92 := r.Intn(10)
		this.Field6 = make([]uint64, v92)
		for i := 0; i < v92; i++ {
			this.Field6[i] = uint64(uint64(r.Uint32()))
		}
	}
	if r.Intn(5) != 0 {
		v93 := r.Intn(10)
		this.Field7 = make([]int32, v93)
		for i := 0; i < v93; i++ {
			this.Field7[i] = int32(r.Int31())
			if r.Intn(2) == 0 {
				this.Field7[i] *= -1
			}
		}
	}
	if r.Intn(5) != 0 {
		v94 := r.Intn(5)
		this.Field8 = make([]NidOptNative, v94)
		for i := 0; i < v94; i++ {
			v95 := NewPopulatedNidOptNative(r, easy)
			this.Field8[i] = *v95
		}
	}
	if r.Intn(5) != 0 {
		v96 := r.Intn(10)
		this.Field13 = make([]bool, v96)
		for i := 0; i < v96; i++ {
			this.Field13[i] = bool(bool(r.Intn(2) == 0))
		}
	}
	if r.Intn(5) != 0 {
		v97 := r.Intn(10)
		this.Field14 = make([]string, v97)
		for i := 0; i < v97; i++ {
			this.Field14[i] = string(randStringThetest(r))
		}
	}
	if r.Intn(5) != 0 {
		v98 := r.Intn(10)
		this.Field15 = make([][]byte, v98)
		for i := 0; i < v98; i++ {
			v99 := r.Intn(100)
			this.Field15[i] = make([]byte, v99)
			for j := 0; j < v99; j++ {
				this.Field15[i][j] = byte(r.Intn(256))
			}
		}
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 16)
	}
	return this
}

func NewPopulatedNinRepStruct(r randyThetest, easy bool) *NinRepStruct {
	this := &NinRepStruct{}
	if r.Intn(5) != 0 {
		v100 := r.Intn(10)
		this.Field1 = make([]float64, v100)
		for i := 0; i < v100; i++ {
			this.Field1[i] = float64(r.Float64())
			if r.Intn(2) == 0 {
				this.Field1[i] *= -1
			}
		}
	}
	if r.Intn(5) != 0 {
		v101 := r.Intn(10)
		this.Field2 = make([]float32, v101)
		for i := 0; i < v101; i++ {
			this.Field2[i] = float32(r.Float32())
			if r.Intn(2) == 0 {
				this.Field2[i] *= -1
			}
		}
	}
	if r.Intn(5) != 0 {
		v102 := r.Intn(5)
		this.Field3 = make([]*NidOptNative, v102)
		for i := 0; i < v102; i++ {
			this.Field3[i] = NewPopulatedNidOptNative(r, easy)
		}
	}
	if r.Intn(5) != 0 {
		v103 := r.Intn(5)
		this.Field4 = make([]*NinOptNative, v103)
		for i := 0; i < v103; i++ {
			this.Field4[i] = NewPopulatedNinOptNative(r, easy)
		}
	}
	if r.Intn(5) != 0 {
		v104 := r.Intn(10)
		this.Field6 = make([]uint64, v104)
		for i := 0; i < v104; i++ {
			this.Field6[i] = uint64(uint64(r.Uint32()))
		}
	}
	if r.Intn(5) != 0 {
		v105 := r.Intn(10)
		this.Field7 = make([]int32, v105)
		for i := 0; i < v105; i++ {
			this.Field7[i] = int32(r.Int31())
			if r.Intn(2) == 0 {
				this.Field7[i] *= -1
			}
		}
	}
	if r.Intn(5) != 0 {
		v106 := r.Intn(5)
		this.Field8 = make([]*NidOptNative, v106)
		for i := 0; i < v106; i++ {
			this.Field8[i] = NewPopulatedNidOptNative(r, easy)
		}
	}
	if r.Intn(5) != 0 {
		v107 := r.Intn(10)
		this.Field13 = make([]bool, v107)
		for i := 0; i < v107; i++ {
			this.Field13[i] = bool(bool(r.Intn(2) == 0))
		}
	}
	if r.Intn(5) != 0 {
		v108 := r.Intn(10)
		this.Field14 = make([]string, v108)
		for i := 0; i < v108; i++ {
			this.Field14[i] = string(randStringThetest(r))
		}
	}
	if r.Intn(5) != 0 {
		v109 := r.Intn(10)
		this.Field15 = make([][]byte, v109)
		for i := 0; i < v109; i++ {
			v110 := r.Intn(100)
			this.Field15[i] = make([]byte, v110)
			for j := 0; j < v110; j++ {
				this.Field15[i][j] = byte(r.Intn(256))
			}
		}
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 16)
	}
	return this
}

func NewPopulatedNidEmbeddedStruct(r randyThetest, easy bool) *NidEmbeddedStruct {
	this := &NidEmbeddedStruct{}
	if r.Intn(5) != 0 {
		this.NidOptNative = NewPopulatedNidOptNative(r, easy)
	}
	v111 := NewPopulatedNidOptNative(r, easy)
	this.Field200 = *v111
	this.Field210 = bool(bool(r.Intn(2) == 0))
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 211)
	}
	return this
}

func NewPopulatedNinEmbeddedStruct(r randyThetest, easy bool) *NinEmbeddedStruct {
	this := &NinEmbeddedStruct{}
	if r.Intn(5) != 0 {
		this.NidOptNative = NewPopulatedNidOptNative(r, easy)
	}
	if r.Intn(5) != 0 {
		this.Field200 = NewPopulatedNidOptNative(r, easy)
	}
	if r.Intn(5) != 0 {
		v112 := bool(bool(r.Intn(2) == 0))
		this.Field210 = &v112
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 211)
	}
	return this
}

func NewPopulatedNidNestedStruct(r randyThetest, easy bool) *NidNestedStruct {
	this := &NidNestedStruct{}
	v113 := NewPopulatedNidOptStruct(r, easy)
	this.Field1 = *v113
	if r.Intn(5) != 0 {
		v114 := r.Intn(5)
		this.Field2 = make([]NidRepStruct, v114)
		for i := 0; i < v114; i++ {
			v115 := NewPopulatedNidRepStruct(r, easy)
			this.Field2[i] = *v115
		}
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 3)
	}
	return this
}

func NewPopulatedNinNestedStruct(r randyThetest, easy bool) *NinNestedStruct {
	this := &NinNestedStruct{}
	if r.Intn(5) != 0 {
		this.Field1 = NewPopulatedNinOptStruct(r, easy)
	}
	if r.Intn(5) != 0 {
		v116 := r.Intn(5)
		this.Field2 = make([]*NinRepStruct, v116)
		for i := 0; i < v116; i++ {
			this.Field2[i] = NewPopulatedNinRepStruct(r, easy)
		}
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 3)
	}
	return this
}

func NewPopulatedNidOptCustom(r randyThetest, easy bool) *NidOptCustom {
	this := &NidOptCustom{}
	v117 := NewPopulatedUuid(r)
	this.Id = *v117
	v118 := github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r)
	this.Value = *v118
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 3)
	}
	return this
}

func NewPopulatedCustomDash(r randyThetest, easy bool) *CustomDash {
	this := &CustomDash{}
	if r.Intn(5) != 0 {
		this.Value = github_com_gogo_protobuf_test_custom_dash_type.NewPopulatedBytes(r)
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 2)
	}
	return this
}

func NewPopulatedNinOptCustom(r randyThetest, easy bool) *NinOptCustom {
	this := &NinOptCustom{}
	if r.Intn(5) != 0 {
		this.Id = NewPopulatedUuid(r)
	}
	if r.Intn(5) != 0 {
		this.Value = github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r)
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 3)
	}
	return this
}

func NewPopulatedNidRepCustom(r randyThetest, easy bool) *NidRepCustom {
	this := &NidRepCustom{}
	if r.Intn(5) != 0 {
		v119 := r.Intn(10)
		this.Id = make([]Uuid, v119)
		for i := 0; i < v119; i++ {
			v120 := NewPopulatedUuid(r)
			this.Id[i] = *v120
		}
	}
	if r.Intn(5) != 0 {
		v121 := r.Intn(10)
		this.Value = make([]github_com_gogo_protobuf_test_custom.Uint128, v121)
		for i := 0; i < v121; i++ {
			v122 := github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r)
			this.Value[i] = *v122
		}
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 3)
	}
	return this
}

func NewPopulatedNinRepCustom(r randyThetest, easy bool) *NinRepCustom {
	this := &NinRepCustom{}
	if r.Intn(5) != 0 {
		v123 := r.Intn(10)
		this.Id = make([]Uuid, v123)
		for i := 0; i < v123; i++ {
			v124 := NewPopulatedUuid(r)
			this.Id[i] = *v124
		}
	}
	if r.Intn(5) != 0 {
		v125 := r.Intn(10)
		this.Value = make([]github_com_gogo_protobuf_test_custom.Uint128, v125)
		for i := 0; i < v125; i++ {
			v126 := github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r)
			this.Value[i] = *v126
		}
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 3)
	}
	return this
}

func NewPopulatedNinOptNativeUnion(r randyThetest, easy bool) *NinOptNativeUnion {
	this := &NinOptNativeUnion{}
	fieldNum := r.Intn(9)
	switch fieldNum {
	case 0:
		v127 := float64(r.Float64())
		if r.Intn(2) == 0 {
			v127 *= -1
		}
		this.Field1 = &v127
	case 1:
		v128 := float32(r.Float32())
		if r.Intn(2) == 0 {
			v128 *= -1
		}
		this.Field2 = &v128
	case 2:
		v129 := int32(r.Int31())
		if r.Intn(2) == 0 {
			v129 *= -1
		}
		this.Field3 = &v129
	case 3:
		v130 := int64(r.Int63())
		if r.Intn(2) == 0 {
			v130 *= -1
		}
		this.Field4 = &v130
	case 4:
		v131 := uint32(r.Uint32())
		this.Field5 = &v131
	case 5:
		v132 := uint64(uint64(r.Uint32()))
		this.Field6 = &v132
	case 6:
		v133 := bool(bool(r.Intn(2) == 0))
		this.Field13 = &v133
	case 7:
		v134 := string(randStringThetest(r))
		this.Field14 = &v134
	case 8:
		v135 := r.Intn(100)
		this.Field15 = make([]byte, v135)
		for i := 0; i < v135; i++ {
			this.Field15[i] = byte(r.Intn(256))
		}
	}
	return this
}

func NewPopulatedNinOptStructUnion(r randyThetest, easy bool) *NinOptStructUnion {
	this := &NinOptStructUnion{}
	fieldNum := r.Intn(9)
	switch fieldNum {
	case 0:
		v136 := float64(r.Float64())
		if r.Intn(2) == 0 {
			v136 *= -1
		}
		this.Field1 = &v136
	case 1:
		v137 := float32(r.Float32())
		if r.Intn(2) == 0 {
			v137 *= -1
		}
		this.Field2 = &v137
	case 2:
		this.Field3 = NewPopulatedNidOptNative(r, easy)
	case 3:
		this.Field4 = NewPopulatedNinOptNative(r, easy)
	case 4:
		v138 := uint64(uint64(r.Uint32()))
		this.Field6 = &v138
	case 5:
		v139 := int32(r.Int31())
		if r.Intn(2) == 0 {
			v139 *= -1
		}
		this.Field7 = &v139
	case 6:
		v140 := bool(bool(r.Intn(2) == 0))
		this.Field13 = &v140
	case 7:
		v141 := string(randStringThetest(r))
		this.Field14 = &v141
	case 8:
		v142 := r.Intn(100)
		this.Field15 = make([]byte, v142)
		for i := 0; i < v142; i++ {
			this.Field15[i] = byte(r.Intn(256))
		}
	}
	return this
}

func NewPopulatedNinEmbeddedStructUnion(r randyThetest, easy bool) *NinEmbeddedStructUnion {
	this := &NinEmbeddedStructUnion{}
	fieldNum := r.Intn(3)
	switch fieldNum {
	case 0:
		this.NidOptNative = NewPopulatedNidOptNative(r, easy)
	case 1:
		this.Field200 = NewPopulatedNinOptNative(r, easy)
	case 2:
		v143 := bool(bool(r.Intn(2) == 0))
		this.Field210 = &v143
	}
	return this
}

func NewPopulatedNinNestedStructUnion(r randyThetest, easy bool) *NinNestedStructUnion {
	this := &NinNestedStructUnion{}
	fieldNum := r.Intn(3)
	switch fieldNum {
	case 0:
		this.Field1 = NewPopulatedNinOptNativeUnion(r, easy)
	case 1:
		this.Field2 = NewPopulatedNinOptStructUnion(r, easy)
	case 2:
		this.Field3 = NewPopulatedNinEmbeddedStructUnion(r, easy)
	}
	return this
}

func NewPopulatedTree(r randyThetest, easy bool) *Tree {
	this := &Tree{}
	fieldNum := r.Intn(102)
	switch fieldNum {
	case 0:
		this.Or = NewPopulatedOrBranch(r, easy)
	case 1:
		this.And = NewPopulatedAndBranch(r, easy)
	case 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101:
		this.Leaf = NewPopulatedLeaf(r, easy)
	}
	return this
}

func NewPopulatedOrBranch(r randyThetest, easy bool) *OrBranch {
	this := &OrBranch{}
	v144 := NewPopulatedTree(r, easy)
	this.Left = *v144
	v145 := NewPopulatedTree(r, easy)
	this.Right = *v145
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 3)
	}
	return this
}

func NewPopulatedAndBranch(r randyThetest, easy bool) *AndBranch {
	this := &AndBranch{}
	v146 := NewPopulatedTree(r, easy)
	this.Left = *v146
	v147 := NewPopulatedTree(r, easy)
	this.Right = *v147
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 3)
	}
	return this
}

func NewPopulatedLeaf(r randyThetest, easy bool) *Leaf {
	this := &Leaf{}
	this.Value = int64(r.Int63())
	if r.Intn(2) == 0 {
		this.Value *= -1
	}
	this.StrValue = string(randStringThetest(r))
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 3)
	}
	return this
}

func NewPopulatedDeepTree(r randyThetest, easy bool) *DeepTree {
	this := &DeepTree{}
	fieldNum := r.Intn(102)
	switch fieldNum {
	case 0:
		this.Down = NewPopulatedADeepBranch(r, easy)
	case 1:
		this.And = NewPopulatedAndDeepBranch(r, easy)
	case 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101:
		this.Leaf = NewPopulatedDeepLeaf(r, easy)
	}
	return this
}

func NewPopulatedADeepBranch(r randyThetest, easy bool) *ADeepBranch {
	this := &ADeepBranch{}
	v148 := NewPopulatedDeepTree(r, easy)
	this.Down = *v148
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 3)
	}
	return this
}

func NewPopulatedAndDeepBranch(r randyThetest, easy bool) *AndDeepBranch {
	this := &AndDeepBranch{}
	v149 := NewPopulatedDeepTree(r, easy)
	this.Left = *v149
	v150 := NewPopulatedDeepTree(r, easy)
	this.Right = *v150
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 3)
	}
	return this
}

func NewPopulatedDeepLeaf(r randyThetest, easy bool) *DeepLeaf {
	this := &DeepLeaf{}
	v151 := NewPopulatedTree(r, easy)
	this.Tree = *v151
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 2)
	}
	return this
}

func NewPopulatedNil(r randyThetest, easy bool) *Nil {
	this := &Nil{}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 1)
	}
	return this
}

func NewPopulatedNidOptEnum(r randyThetest, easy bool) *NidOptEnum {
	this := &NidOptEnum{}
	this.Field1 = TheTestEnum([]int32{0, 1, 2}[r.Intn(3)])
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 2)
	}
	return this
}

func NewPopulatedNinOptEnum(r randyThetest, easy bool) *NinOptEnum {
	this := &NinOptEnum{}
	if r.Intn(5) != 0 {
		v152 := TheTestEnum([]int32{0, 1, 2}[r.Intn(3)])
		this.Field1 = &v152
	}
	if r.Intn(5) != 0 {
		v153 := YetAnotherTestEnum([]int32{0, 1}[r.Intn(2)])
		this.Field2 = &v153
	}
	if r.Intn(5) != 0 {
		v154 := YetYetAnotherTestEnum([]int32{0, 1}[r.Intn(2)])
		this.Field3 = &v154
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 4)
	}
	return this
}

func NewPopulatedNidRepEnum(r randyThetest, easy bool) *NidRepEnum {
	this := &NidRepEnum{}
	if r.Intn(5) != 0 {
		v155 := r.Intn(10)
		this.Field1 = make([]TheTestEnum, v155)
		for i := 0; i < v155; i++ {
			this.Field1[i] = TheTestEnum([]int32{0, 1, 2}[r.Intn(3)])
		}
	}
	if r.Intn(5) != 0 {
		v156 := r.Intn(10)
		this.Field2 = make([]YetAnotherTestEnum, v156)
		for i := 0; i < v156; i++ {
			this.Field2[i] = YetAnotherTestEnum([]int32{0, 1}[r.Intn(2)])
		}
	}
	if r.Intn(5) != 0 {
		v157 := r.Intn(10)
		this.Field3 = make([]YetYetAnotherTestEnum, v157)
		for i := 0; i < v157; i++ {
			this.Field3[i] = YetYetAnotherTestEnum([]int32{0, 1}[r.Intn(2)])
		}
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 4)
	}
	return this
}

func NewPopulatedNinRepEnum(r randyThetest, easy bool) *NinRepEnum {
	this := &NinRepEnum{}
	if r.Intn(5) != 0 {
		v158 := r.Intn(10)
		this.Field1 = make([]TheTestEnum, v158)
		for i := 0; i < v158; i++ {
			this.Field1[i] = TheTestEnum([]int32{0, 1, 2}[r.Intn(3)])
		}
	}
	if r.Intn(5) != 0 {
		v159 := r.Intn(10)
		this.Field2 = make([]YetAnotherTestEnum, v159)
		for i := 0; i < v159; i++ {
			this.Field2[i] = YetAnotherTestEnum([]int32{0, 1}[r.Intn(2)])
		}
	}
	if r.Intn(5) != 0 {
		v160 := r.Intn(10)
		this.Field3 = make([]YetYetAnotherTestEnum, v160)
		for i := 0; i < v160; i++ {
			this.Field3[i] = YetYetAnotherTestEnum([]int32{0, 1}[r.Intn(2)])
		}
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 4)
	}
	return this
}

func NewPopulatedNinOptEnumDefault(r randyThetest, easy bool) *NinOptEnumDefault {
	this := &NinOptEnumDefault{}
	if r.Intn(5) != 0 {
		v161 := TheTestEnum([]int32{0, 1, 2}[r.Intn(3)])
		this.Field1 = &v161
	}
	if r.Intn(5) != 0 {
		v162 := YetAnotherTestEnum([]int32{0, 1}[r.Intn(2)])
		this.Field2 = &v162
	}
	if r.Intn(5) != 0 {
		v163 := YetYetAnotherTestEnum([]int32{0, 1}[r.Intn(2)])
		this.Field3 = &v163
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 4)
	}
	return this
}

func NewPopulatedAnotherNinOptEnum(r randyThetest, easy bool) *AnotherNinOptEnum {
	this := &AnotherNinOptEnum{}
	if r.Intn(5) != 0 {
		v164 := AnotherTestEnum([]int32{10, 11}[r.Intn(2)])
		this.Field1 = &v164
	}
	if r.Intn(5) != 0 {
		v165 := YetAnotherTestEnum([]int32{0, 1}[r.Intn(2)])
		this.Field2 = &v165
	}
	if r.Intn(5) != 0 {
		v166 := YetYetAnotherTestEnum([]int32{0, 1}[r.Intn(2)])
		this.Field3 = &v166
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 4)
	}
	return this
}

func NewPopulatedAnotherNinOptEnumDefault(r randyThetest, easy bool) *AnotherNinOptEnumDefault {
	this := &AnotherNinOptEnumDefault{}
	if r.Intn(5) != 0 {
		v167 := AnotherTestEnum([]int32{10, 11}[r.Intn(2)])
		this.Field1 = &v167
	}
	if r.Intn(5) != 0 {
		v168 := YetAnotherTestEnum([]int32{0, 1}[r.Intn(2)])
		this.Field2 = &v168
	}
	if r.Intn(5) != 0 {
		v169 := YetYetAnotherTestEnum([]int32{0, 1}[r.Intn(2)])
		this.Field3 = &v169
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 4)
	}
	return this
}

func NewPopulatedTimer(r randyThetest, easy bool) *Timer {
	this := &Timer{}
	this.Time1 = int64(r.Int63())
	if r.Intn(2) == 0 {
		this.Time1 *= -1
	}
	this.Time2 = int64(r.Int63())
	if r.Intn(2) == 0 {
		this.Time2 *= -1
	}
	v170 := r.Intn(100)
	this.Data = make([]byte, v170)
	for i := 0; i < v170; i++ {
		this.Data[i] = byte(r.Intn(256))
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 4)
	}
	return this
}

func NewPopulatedMyExtendable(r randyThetest, easy bool) *MyExtendable {
	this := &MyExtendable{}
	if r.Intn(5) != 0 {
		v171 := int64(r.Int63())
		if r.Intn(2) == 0 {
			v171 *= -1
		}
		this.Field1 = &v171
	}
	if !easy && r.Intn(10) != 0 {
		l := r.Intn(5)
		for i := 0; i < l; i++ {
			fieldNumber := r.Intn(100) + 100
			wire := r.Intn(4)
			if wire == 3 {
				wire = 5
			}
			dAtA := randFieldThetest(nil, r, fieldNumber, wire)
			github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), dAtA)
		}
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 201)
	}
	return this
}

func NewPopulatedOtherExtenable(r randyThetest, easy bool) *OtherExtenable {
	this := &OtherExtenable{}
	if r.Intn(5) != 0 {
		this.M = NewPopulatedMyExtendable(r, easy)
	}
	if r.Intn(5) != 0 {
		v172 := int64(r.Int63())
		if r.Intn(2) == 0 {
			v172 *= -1
		}
		this.Field2 = &v172
	}
	if r.Intn(5) != 0 {
		v173 := int64(r.Int63())
		if r.Intn(2) == 0 {
			v173 *= -1
		}
		this.Field13 = &v173
	}
	if !easy && r.Intn(10) != 0 {
		l := r.Intn(5)
		for i := 0; i < l; i++ {
			eIndex := r.Intn(2)
			fieldNumber := 0
			switch eIndex {
			case 0:
				fieldNumber = r.Intn(3) + 14
			case 1:
				fieldNumber = r.Intn(3) + 10
			}
			wire := r.Intn(4)
			if wire == 3 {
				wire = 5
			}
			dAtA := randFieldThetest(nil, r, fieldNumber, wire)
			github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), dAtA)
		}
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 18)
	}
	return this
}

func NewPopulatedNestedDefinition(r randyThetest, easy bool) *NestedDefinition {
	this := &NestedDefinition{}
	if r.Intn(5) != 0 {
		v174 := int64(r.Int63())
		if r.Intn(2) == 0 {
			v174 *= -1
		}
		this.Field1 = &v174
	}
	if r.Intn(5) != 0 {
		v175 := NestedDefinition_NestedEnum([]int32{1}[r.Intn(1)])
		this.EnumField = &v175
	}
	if r.Intn(5) != 0 {
		this.NNM = NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(r, easy)
	}
	if r.Intn(5) != 0 {
		this.NM = NewPopulatedNestedDefinition_NestedMessage(r, easy)
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 5)
	}
	return this
}

func NewPopulatedNestedDefinition_NestedMessage(r randyThetest, easy bool) *NestedDefinition_NestedMessage {
	this := &NestedDefinition_NestedMessage{}
	if r.Intn(5) != 0 {
		v176 := uint64(uint64(r.Uint32()))
		this.NestedField1 = &v176
	}
	if r.Intn(5) != 0 {
		this.NNM = NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(r, easy)
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 3)
	}
	return this
}

func NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(r randyThetest, easy bool) *NestedDefinition_NestedMessage_NestedNestedMsg {
	this := &NestedDefinition_NestedMessage_NestedNestedMsg{}
	if r.Intn(5) != 0 {
		v177 := string(randStringThetest(r))
		this.NestedNestedField1 = &v177
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 11)
	}
	return this
}

func NewPopulatedNestedScope(r randyThetest, easy bool) *NestedScope {
	this := &NestedScope{}
	if r.Intn(5) != 0 {
		this.A = NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(r, easy)
	}
	if r.Intn(5) != 0 {
		v178 := NestedDefinition_NestedEnum([]int32{1}[r.Intn(1)])
		this.B = &v178
	}
	if r.Intn(5) != 0 {
		this.C = NewPopulatedNestedDefinition_NestedMessage(r, easy)
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 4)
	}
	return this
}

func NewPopulatedNinOptNativeDefault(r randyThetest, easy bool) *NinOptNativeDefault {
	this := &NinOptNativeDefault{}
	if r.Intn(5) != 0 {
		v179 := float64(r.Float64())
		if r.Intn(2) == 0 {
			v179 *= -1
		}
		this.Field1 = &v179
	}
	if r.Intn(5) != 0 {
		v180 := float32(r.Float32())
		if r.Intn(2) == 0 {
			v180 *= -1
		}
		this.Field2 = &v180
	}
	if r.Intn(5) != 0 {
		v181 := int32(r.Int31())
		if r.Intn(2) == 0 {
			v181 *= -1
		}
		this.Field3 = &v181
	}
	if r.Intn(5) != 0 {
		v182 := int64(r.Int63())
		if r.Intn(2) == 0 {
			v182 *= -1
		}
		this.Field4 = &v182
	}
	if r.Intn(5) != 0 {
		v183 := uint32(r.Uint32())
		this.Field5 = &v183
	}
	if r.Intn(5) != 0 {
		v184 := uint64(uint64(r.Uint32()))
		this.Field6 = &v184
	}
	if r.Intn(5) != 0 {
		v185 := int32(r.Int31())
		if r.Intn(2) == 0 {
			v185 *= -1
		}
		this.Field7 = &v185
	}
	if r.Intn(5) != 0 {
		v186 := int64(r.Int63())
		if r.Intn(2) == 0 {
			v186 *= -1
		}
		this.Field8 = &v186
	}
	if r.Intn(5) != 0 {
		v187 := uint32(r.Uint32())
		this.Field9 = &v187
	}
	if r.Intn(5) != 0 {
		v188 := int32(r.Int31())
		if r.Intn(2) == 0 {
			v188 *= -1
		}
		this.Field10 = &v188
	}
	if r.Intn(5) != 0 {
		v189 := uint64(uint64(r.Uint32()))
		this.Field11 = &v189
	}
	if r.Intn(5) != 0 {
		v190 := int64(r.Int63())
		if r.Intn(2) == 0 {
			v190 *= -1
		}
		this.Field12 = &v190
	}
	if r.Intn(5) != 0 {
		v191 := bool(bool(r.Intn(2) == 0))
		this.Field13 = &v191
	}
	if r.Intn(5) != 0 {
		v192 := string(randStringThetest(r))
		this.Field14 = &v192
	}
	if r.Intn(5) != 0 {
		v193 := r.Intn(100)
		this.Field15 = make([]byte, v193)
		for i := 0; i < v193; i++ {
			this.Field15[i] = byte(r.Intn(256))
		}
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 16)
	}
	return this
}

func NewPopulatedCustomContainer(r randyThetest, easy bool) *CustomContainer {
	this := &CustomContainer{}
	v194 := NewPopulatedNidOptCustom(r, easy)
	this.CustomStruct = *v194
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 2)
	}
	return this
}

func NewPopulatedCustomNameNidOptNative(r randyThetest, easy bool) *CustomNameNidOptNative {
	this := &CustomNameNidOptNative{}
	this.FieldA = float64(r.Float64())
	if r.Intn(2) == 0 {
		this.FieldA *= -1
	}
	this.FieldB = float32(r.Float32())
	if r.Intn(2) == 0 {
		this.FieldB *= -1
	}
	this.FieldC = int32(r.Int31())
	if r.Intn(2) == 0 {
		this.FieldC *= -1
	}
	this.FieldD = int64(r.Int63())
	if r.Intn(2) == 0 {
		this.FieldD *= -1
	}
	this.FieldE = uint32(r.Uint32())
	this.FieldF = uint64(uint64(r.Uint32()))
	this.FieldG = int32(r.Int31())
	if r.Intn(2) == 0 {
		this.FieldG *= -1
	}
	this.FieldH = int64(r.Int63())
	if r.Intn(2) == 0 {
		this.FieldH *= -1
	}
	this.FieldI = uint32(r.Uint32())
	this.FieldJ = int32(r.Int31())
	if r.Intn(2) == 0 {
		this.FieldJ *= -1
	}
	this.FieldK = uint64(uint64(r.Uint32()))
	this.FieldL = int64(r.Int63())
	if r.Intn(2) == 0 {
		this.FieldL *= -1
	}
	this.FieldM = bool(bool(r.Intn(2) == 0))
	this.FieldN = string(randStringThetest(r))
	v195 := r.Intn(100)
	this.FieldO = make([]byte, v195)
	for i := 0; i < v195; i++ {
		this.FieldO[i] = byte(r.Intn(256))
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 16)
	}
	return this
}

func NewPopulatedCustomNameNinOptNative(r randyThetest, easy bool) *CustomNameNinOptNative {
	this := &CustomNameNinOptNative{}
	if r.Intn(5) != 0 {
		v196 := float64(r.Float64())
		if r.Intn(2) == 0 {
			v196 *= -1
		}
		this.FieldA = &v196
	}
	if r.Intn(5) != 0 {
		v197 := float32(r.Float32())
		if r.Intn(2) == 0 {
			v197 *= -1
		}
		this.FieldB = &v197
	}
	if r.Intn(5) != 0 {
		v198 := int32(r.Int31())
		if r.Intn(2) == 0 {
			v198 *= -1
		}
		this.FieldC = &v198
	}
	if r.Intn(5) != 0 {
		v199 := int64(r.Int63())
		if r.Intn(2) == 0 {
			v199 *= -1
		}
		this.FieldD = &v199
	}
	if r.Intn(5) != 0 {
		v200 := uint32(r.Uint32())
		this.FieldE = &v200
	}
	if r.Intn(5) != 0 {
		v201 := uint64(uint64(r.Uint32()))
		this.FieldF = &v201
	}
	if r.Intn(5) != 0 {
		v202 := int32(r.Int31())
		if r.Intn(2) == 0 {
			v202 *= -1
		}
		this.FieldG = &v202
	}
	if r.Intn(5) != 0 {
		v203 := int64(r.Int63())
		if r.Intn(2) == 0 {
			v203 *= -1
		}
		this.FieldH = &v203
	}
	if r.Intn(5) != 0 {
		v204 := uint32(r.Uint32())
		this.FieldI = &v204
	}
	if r.Intn(5) != 0 {
		v205 := int32(r.Int31())
		if r.Intn(2) == 0 {
			v205 *= -1
		}
		this.FieldJ = &v205
	}
	if r.Intn(5) != 0 {
		v206 := uint64(uint64(r.Uint32()))
		this.FieldK = &v206
	}
	if r.Intn(5) != 0 {
		v207 := int64(r.Int63())
		if r.Intn(2) == 0 {
			v207 *= -1
		}
		this.FielL = &v207
	}
	if r.Intn(5) != 0 {
		v208 := bool(bool(r.Intn(2) == 0))
		this.FieldM = &v208
	}
	if r.Intn(5) != 0 {
		v209 := string(randStringThetest(r))
		this.FieldN = &v209
	}
	if r.Intn(5) != 0 {
		v210 := r.Intn(100)
		this.FieldO = make([]byte, v210)
		for i := 0; i < v210; i++ {
			this.FieldO[i] = byte(r.Intn(256))
		}
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 16)
	}
	return this
}

func NewPopulatedCustomNameNinRepNative(r randyThetest, easy bool) *CustomNameNinRepNative {
	this := &CustomNameNinRepNative{}
	if r.Intn(5) != 0 {
		v211 := r.Intn(10)
		this.FieldA = make([]float64, v211)
		for i := 0; i < v211; i++ {
			this.FieldA[i] = float64(r.Float64())
			if r.Intn(2) == 0 {
				this.FieldA[i] *= -1
			}
		}
	}
	if r.Intn(5) != 0 {
		v212 := r.Intn(10)
		this.FieldB = make([]float32, v212)
		for i := 0; i < v212; i++ {
			this.FieldB[i] = float32(r.Float32())
			if r.Intn(2) == 0 {
				this.FieldB[i] *= -1
			}
		}
	}
	if r.Intn(5) != 0 {
		v213 := r.Intn(10)
		this.FieldC = make([]int32, v213)
		for i := 0; i < v213; i++ {
			this.FieldC[i] = int32(r.Int31())
			if r.Intn(2) == 0 {
				this.FieldC[i] *= -1
			}
		}
	}
	if r.Intn(5) != 0 {
		v214 := r.Intn(10)
		this.FieldD = make([]int64, v214)
		for i := 0; i < v214; i++ {
			this.FieldD[i] = int64(r.Int63())
			if r.Intn(2) == 0 {
				this.FieldD[i] *= -1
			}
		}
	}
	if r.Intn(5) != 0 {
		v215 := r.Intn(10)
		this.FieldE = make([]uint32, v215)
		for i := 0; i < v215; i++ {
			this.FieldE[i] = uint32(r.Uint32())
		}
	}
	if r.Intn(5) != 0 {
		v216 := r.Intn(10)
		this.FieldF = make([]uint64, v216)
		for i := 0; i < v216; i++ {
			this.FieldF[i] = uint64(uint64(r.Uint32()))
		}
	}
	if r.Intn(5) != 0 {
		v217 := r.Intn(10)
		this.FieldG = make([]int32, v217)
		for i := 0; i < v217; i++ {
			this.FieldG[i] = int32(r.Int31())
			if r.Intn(2) == 0 {
				this.FieldG[i] *= -1
			}
		}
	}
	if r.Intn(5) != 0 {
		v218 := r.Intn(10)
		this.FieldH = make([]int64, v218)
		for i := 0; i < v218; i++ {
			this.FieldH[i] = int64(r.Int63())
			if r.Intn(2) == 0 {
				this.FieldH[i] *= -1
			}
		}
	}
	if r.Intn(5) != 0 {
		v219 := r.Intn(10)
		this.FieldI = make([]uint32, v219)
		for i := 0; i < v219; i++ {
			this.FieldI[i] = uint32(r.Uint32())
		}
	}
	if r.Intn(5) != 0 {
		v220 := r.Intn(10)
		this.FieldJ = make([]int32, v220)
		for i := 0; i < v220; i++ {
			this.FieldJ[i] = int32(r.Int31())
			if r.Intn(2) == 0 {
				this.FieldJ[i] *= -1
			}
		}
	}
	if r.Intn(5) != 0 {
		v221 := r.Intn(10)
		this.FieldK = make([]uint64, v221)
		for i := 0; i < v221; i++ {
			this.FieldK[i] = uint64(uint64(r.Uint32()))
		}
	}
	if r.Intn(5) != 0 {
		v222 := r.Intn(10)
		this.FieldL = make([]int64, v222)
		for i := 0; i < v222; i++ {
			this.FieldL[i] = int64(r.Int63())
			if r.Intn(2) == 0 {
				this.FieldL[i] *= -1
			}
		}
	}
	if r.Intn(5) != 0 {
		v223 := r.Intn(10)
		this.FieldM = make([]bool, v223)
		for i := 0; i < v223; i++ {
			this.FieldM[i] = bool(bool(r.Intn(2) == 0))
		}
	}
	if r.Intn(5) != 0 {
		v224 := r.Intn(10)
		this.FieldN = make([]string, v224)
		for i := 0; i < v224; i++ {
			this.FieldN[i] = string(randStringThetest(r))
		}
	}
	if r.Intn(5) != 0 {
		v225 := r.Intn(10)
		this.FieldO = make([][]byte, v225)
		for i := 0; i < v225; i++ {
			v226 := r.Intn(100)
			this.FieldO[i] = make([]byte, v226)
			for j := 0; j < v226; j++ {
				this.FieldO[i][j] = byte(r.Intn(256))
			}
		}
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 16)
	}
	return this
}

func NewPopulatedCustomNameNinStruct(r randyThetest, easy bool) *CustomNameNinStruct {
	this := &CustomNameNinStruct{}
	if r.Intn(5) != 0 {
		v227 := float64(r.Float64())
		if r.Intn(2) == 0 {
			v227 *= -1
		}
		this.FieldA = &v227
	}
	if r.Intn(5) != 0 {
		v228 := float32(r.Float32())
		if r.Intn(2) == 0 {
			v228 *= -1
		}
		this.FieldB = &v228
	}
	if r.Intn(5) != 0 {
		this.FieldC = NewPopulatedNidOptNative(r, easy)
	}
	if r.Intn(5) != 0 {
		v229 := r.Intn(5)
		this.FieldD = make([]*NinOptNative, v229)
		for i := 0; i < v229; i++ {
			this.FieldD[i] = NewPopulatedNinOptNative(r, easy)
		}
	}
	if r.Intn(5) != 0 {
		v230 := uint64(uint64(r.Uint32()))
		this.FieldE = &v230
	}
	if r.Intn(5) != 0 {
		v231 := int32(r.Int31())
		if r.Intn(2) == 0 {
			v231 *= -1
		}
		this.FieldF = &v231
	}
	if r.Intn(5) != 0 {
		this.FieldG = NewPopulatedNidOptNative(r, easy)
	}
	if r.Intn(5) != 0 {
		v232 := bool(bool(r.Intn(2) == 0))
		this.FieldH = &v232
	}
	if r.Intn(5) != 0 {
		v233 := string(randStringThetest(r))
		this.FieldI = &v233
	}
	if r.Intn(5) != 0 {
		v234 := r.Intn(100)
		this.FieldJ = make([]byte, v234)
		for i := 0; i < v234; i++ {
			this.FieldJ[i] = byte(r.Intn(256))
		}
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 16)
	}
	return this
}

func NewPopulatedCustomNameCustomType(r randyThetest, easy bool) *CustomNameCustomType {
	this := &CustomNameCustomType{}
	if r.Intn(5) != 0 {
		this.FieldA = NewPopulatedUuid(r)
	}
	if r.Intn(5) != 0 {
		this.FieldB = github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r)
	}
	if r.Intn(5) != 0 {
		v235 := r.Intn(10)
		this.FieldC = make([]Uuid, v235)
		for i := 0; i < v235; i++ {
			v236 := NewPopulatedUuid(r)
			this.FieldC[i] = *v236
		}
	}
	if r.Intn(5) != 0 {
		v237 := r.Intn(10)
		this.FieldD = make([]github_com_gogo_protobuf_test_custom.Uint128, v237)
		for i := 0; i < v237; i++ {
			v238 := github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r)
			this.FieldD[i] = *v238
		}
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 5)
	}
	return this
}

func NewPopulatedCustomNameNinEmbeddedStructUnion(r randyThetest, easy bool) *CustomNameNinEmbeddedStructUnion {
	this := &CustomNameNinEmbeddedStructUnion{}
	fieldNum := r.Intn(3)
	switch fieldNum {
	case 0:
		this.NidOptNative = NewPopulatedNidOptNative(r, easy)
	case 1:
		this.FieldA = NewPopulatedNinOptNative(r, easy)
	case 2:
		v239 := bool(bool(r.Intn(2) == 0))
		this.FieldB = &v239
	}
	return this
}

func NewPopulatedCustomNameEnum(r randyThetest, easy bool) *CustomNameEnum {
	this := &CustomNameEnum{}
	if r.Intn(5) != 0 {
		v240 := TheTestEnum([]int32{0, 1, 2}[r.Intn(3)])
		this.FieldA = &v240
	}
	if r.Intn(5) != 0 {
		v241 := r.Intn(10)
		this.FieldB = make([]TheTestEnum, v241)
		for i := 0; i < v241; i++ {
			this.FieldB[i] = TheTestEnum([]int32{0, 1, 2}[r.Intn(3)])
		}
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 3)
	}
	return this
}

func NewPopulatedNoExtensionsMap(r randyThetest, easy bool) *NoExtensionsMap {
	this := &NoExtensionsMap{}
	if r.Intn(5) != 0 {
		v242 := int64(r.Int63())
		if r.Intn(2) == 0 {
			v242 *= -1
		}
		this.Field1 = &v242
	}
	if !easy && r.Intn(10) != 0 {
		l := r.Intn(5)
		for i := 0; i < l; i++ {
			fieldNumber := r.Intn(100) + 100
			wire := r.Intn(4)
			if wire == 3 {
				wire = 5
			}
			dAtA := randFieldThetest(nil, r, fieldNumber, wire)
			github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), dAtA)
		}
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 201)
	}
	return this
}

func NewPopulatedUnrecognized(r randyThetest, easy bool) *Unrecognized {
	this := &Unrecognized{}
	if r.Intn(5) != 0 {
		v243 := string(randStringThetest(r))
		this.Field1 = &v243
	}
	if !easy && r.Intn(10) != 0 {
	}
	return this
}

func NewPopulatedUnrecognizedWithInner(r randyThetest, easy bool) *UnrecognizedWithInner {
	this := &UnrecognizedWithInner{}
	if r.Intn(5) != 0 {
		v244 := r.Intn(5)
		this.Embedded = make([]*UnrecognizedWithInner_Inner, v244)
		for i := 0; i < v244; i++ {
			this.Embedded[i] = NewPopulatedUnrecognizedWithInner_Inner(r, easy)
		}
	}
	if r.Intn(5) != 0 {
		v245 := string(randStringThetest(r))
		this.Field2 = &v245
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 3)
	}
	return this
}

func NewPopulatedUnrecognizedWithInner_Inner(r randyThetest, easy bool) *UnrecognizedWithInner_Inner {
	this := &UnrecognizedWithInner_Inner{}
	if r.Intn(5) != 0 {
		v246 := uint32(r.Uint32())
		this.Field1 = &v246
	}
	if !easy && r.Intn(10) != 0 {
	}
	return this
}

func NewPopulatedUnrecognizedWithEmbed(r randyThetest, easy bool) *UnrecognizedWithEmbed {
	this := &UnrecognizedWithEmbed{}
	v247 := NewPopulatedUnrecognizedWithEmbed_Embedded(r, easy)
	this.UnrecognizedWithEmbed_Embedded = *v247
	if r.Intn(5) != 0 {
		v248 := string(randStringThetest(r))
		this.Field2 = &v248
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 3)
	}
	return this
}

func NewPopulatedUnrecognizedWithEmbed_Embedded(r randyThetest, easy bool) *UnrecognizedWithEmbed_Embedded {
	this := &UnrecognizedWithEmbed_Embedded{}
	if r.Intn(5) != 0 {
		v249 := uint32(r.Uint32())
		this.Field1 = &v249
	}
	if !easy && r.Intn(10) != 0 {
	}
	return this
}

func NewPopulatedNode(r randyThetest, easy bool) *Node {
	this := &Node{}
	if r.Intn(5) != 0 {
		v250 := string(randStringThetest(r))
		this.Label = &v250
	}
	if r.Intn(5) == 0 {
		v251 := r.Intn(5)
		this.Children = make([]*Node, v251)
		for i := 0; i < v251; i++ {
			this.Children[i] = NewPopulatedNode(r, easy)
		}
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 3)
	}
	return this
}

func NewPopulatedNonByteCustomType(r randyThetest, easy bool) *NonByteCustomType {
	this := &NonByteCustomType{}
	if r.Intn(5) != 0 {
		this.Field1 = NewPopulatedT(r)
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 2)
	}
	return this
}

func NewPopulatedNidOptNonByteCustomType(r randyThetest, easy bool) *NidOptNonByteCustomType {
	this := &NidOptNonByteCustomType{}
	v252 := NewPopulatedT(r)
	this.Field1 = *v252
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 2)
	}
	return this
}

func NewPopulatedNinOptNonByteCustomType(r randyThetest, easy bool) *NinOptNonByteCustomType {
	this := &NinOptNonByteCustomType{}
	if r.Intn(5) != 0 {
		this.Field1 = NewPopulatedT(r)
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 2)
	}
	return this
}

func NewPopulatedNidRepNonByteCustomType(r randyThetest, easy bool) *NidRepNonByteCustomType {
	this := &NidRepNonByteCustomType{}
	if r.Intn(5) != 0 {
		v253 := r.Intn(10)
		this.Field1 = make([]T, v253)
		for i := 0; i < v253; i++ {
			v254 := NewPopulatedT(r)
			this.Field1[i] = *v254
		}
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 2)
	}
	return this
}

func NewPopulatedNinRepNonByteCustomType(r randyThetest, easy bool) *NinRepNonByteCustomType {
	this := &NinRepNonByteCustomType{}
	if r.Intn(5) != 0 {
		v255 := r.Intn(10)
		this.Field1 = make([]T, v255)
		for i := 0; i < v255; i++ {
			v256 := NewPopulatedT(r)
			this.Field1[i] = *v256
		}
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 2)
	}
	return this
}

func NewPopulatedProtoType(r randyThetest, easy bool) *ProtoType {
	this := &ProtoType{}
	if r.Intn(5) != 0 {
		v257 := string(randStringThetest(r))
		this.Field2 = &v257
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 2)
	}
	return this
}

type randyThetest interface {
	Float32() float32
	Float64() float64
	Int63() int64
	Int31() int32
	Uint32() uint32
	Intn(n int) int
}

func randUTF8RuneThetest(r randyThetest) rune {
	ru := r.Intn(62)
	if ru < 10 {
		return rune(ru + 48)
	} else if ru < 36 {
		return rune(ru + 55)
	}
	return rune(ru + 61)
}
func randStringThetest(r randyThetest) string {
	v258 := r.Intn(100)
	tmps := make([]rune, v258)
	for i := 0; i < v258; i++ {
		tmps[i] = randUTF8RuneThetest(r)
	}
	return string(tmps)
}
func randUnrecognizedThetest(r randyThetest, maxFieldNumber int) (dAtA []byte) {
	l := r.Intn(5)
	for i := 0; i < l; i++ {
		wire := r.Intn(4)
		if wire == 3 {
			wire = 5
		}
		fieldNumber := maxFieldNumber + r.Intn(100)
		dAtA = randFieldThetest(dAtA, r, fieldNumber, wire)
	}
	return dAtA
}
func randFieldThetest(dAtA []byte, r randyThetest, fieldNumber int, wire int) []byte {
	key := uint32(fieldNumber)<<3 | uint32(wire)
	switch wire {
	case 0:
		dAtA = encodeVarintPopulateThetest(dAtA, uint64(key))
		v259 := r.Int63()
		if r.Intn(2) == 0 {
			v259 *= -1
		}
		dAtA = encodeVarintPopulateThetest(dAtA, uint64(v259))
	case 1:
		dAtA = encodeVarintPopulateThetest(dAtA, uint64(key))
		dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)))
	case 2:
		dAtA = encodeVarintPopulateThetest(dAtA, uint64(key))
		ll := r.Intn(100)
		dAtA = encodeVarintPopulateThetest(dAtA, uint64(ll))
		for j := 0; j < ll; j++ {
			dAtA = append(dAtA, byte(r.Intn(256)))
		}
	default:
		dAtA = encodeVarintPopulateThetest(dAtA, uint64(key))
		dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)))
	}
	return dAtA
}
func encodeVarintPopulateThetest(dAtA []byte, v uint64) []byte {
	for v >= 1<<7 {
		dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80))
		v >>= 7
	}
	dAtA = append(dAtA, uint8(v))
	return dAtA
}
func (m *NidOptNative) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	n += 9
	n += 5
	n += 1 + sovThetest(uint64(m.Field3))
	n += 1 + sovThetest(uint64(m.Field4))
	n += 1 + sovThetest(uint64(m.Field5))
	n += 1 + sovThetest(uint64(m.Field6))
	n += 1 + sozThetest(uint64(m.Field7))
	n += 1 + sozThetest(uint64(m.Field8))
	n += 5
	n += 5
	n += 9
	n += 9
	n += 2
	l = len(m.Field14)
	n += 1 + l + sovThetest(uint64(l))
	if m.Field15 != nil {
		l = len(m.Field15)
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *NinOptNative) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.Field1 != nil {
		n += 9
	}
	if m.Field2 != nil {
		n += 5
	}
	if m.Field3 != nil {
		n += 1 + sovThetest(uint64(*m.Field3))
	}
	if m.Field4 != nil {
		n += 1 + sovThetest(uint64(*m.Field4))
	}
	if m.Field5 != nil {
		n += 1 + sovThetest(uint64(*m.Field5))
	}
	if m.Field6 != nil {
		n += 1 + sovThetest(uint64(*m.Field6))
	}
	if m.Field7 != nil {
		n += 1 + sozThetest(uint64(*m.Field7))
	}
	if m.Field8 != nil {
		n += 1 + sozThetest(uint64(*m.Field8))
	}
	if m.Field9 != nil {
		n += 5
	}
	if m.Field10 != nil {
		n += 5
	}
	if m.Field11 != nil {
		n += 9
	}
	if m.Field12 != nil {
		n += 9
	}
	if m.Field13 != nil {
		n += 2
	}
	if m.Field14 != nil {
		l = len(*m.Field14)
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.Field15 != nil {
		l = len(m.Field15)
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *NidRepNative) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if len(m.Field1) > 0 {
		n += 9 * len(m.Field1)
	}
	if len(m.Field2) > 0 {
		n += 5 * len(m.Field2)
	}
	if len(m.Field3) > 0 {
		for _, e := range m.Field3 {
			n += 1 + sovThetest(uint64(e))
		}
	}
	if len(m.Field4) > 0 {
		for _, e := range m.Field4 {
			n += 1 + sovThetest(uint64(e))
		}
	}
	if len(m.Field5) > 0 {
		for _, e := range m.Field5 {
			n += 1 + sovThetest(uint64(e))
		}
	}
	if len(m.Field6) > 0 {
		for _, e := range m.Field6 {
			n += 1 + sovThetest(uint64(e))
		}
	}
	if len(m.Field7) > 0 {
		for _, e := range m.Field7 {
			n += 1 + sozThetest(uint64(e))
		}
	}
	if len(m.Field8) > 0 {
		for _, e := range m.Field8 {
			n += 1 + sozThetest(uint64(e))
		}
	}
	if len(m.Field9) > 0 {
		n += 5 * len(m.Field9)
	}
	if len(m.Field10) > 0 {
		n += 5 * len(m.Field10)
	}
	if len(m.Field11) > 0 {
		n += 9 * len(m.Field11)
	}
	if len(m.Field12) > 0 {
		n += 9 * len(m.Field12)
	}
	if len(m.Field13) > 0 {
		n += 2 * len(m.Field13)
	}
	if len(m.Field14) > 0 {
		for _, s := range m.Field14 {
			l = len(s)
			n += 1 + l + sovThetest(uint64(l))
		}
	}
	if len(m.Field15) > 0 {
		for _, b := range m.Field15 {
			l = len(b)
			n += 1 + l + sovThetest(uint64(l))
		}
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *NinRepNative) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if len(m.Field1) > 0 {
		n += 9 * len(m.Field1)
	}
	if len(m.Field2) > 0 {
		n += 5 * len(m.Field2)
	}
	if len(m.Field3) > 0 {
		for _, e := range m.Field3 {
			n += 1 + sovThetest(uint64(e))
		}
	}
	if len(m.Field4) > 0 {
		for _, e := range m.Field4 {
			n += 1 + sovThetest(uint64(e))
		}
	}
	if len(m.Field5) > 0 {
		for _, e := range m.Field5 {
			n += 1 + sovThetest(uint64(e))
		}
	}
	if len(m.Field6) > 0 {
		for _, e := range m.Field6 {
			n += 1 + sovThetest(uint64(e))
		}
	}
	if len(m.Field7) > 0 {
		for _, e := range m.Field7 {
			n += 1 + sozThetest(uint64(e))
		}
	}
	if len(m.Field8) > 0 {
		for _, e := range m.Field8 {
			n += 1 + sozThetest(uint64(e))
		}
	}
	if len(m.Field9) > 0 {
		n += 5 * len(m.Field9)
	}
	if len(m.Field10) > 0 {
		n += 5 * len(m.Field10)
	}
	if len(m.Field11) > 0 {
		n += 9 * len(m.Field11)
	}
	if len(m.Field12) > 0 {
		n += 9 * len(m.Field12)
	}
	if len(m.Field13) > 0 {
		n += 2 * len(m.Field13)
	}
	if len(m.Field14) > 0 {
		for _, s := range m.Field14 {
			l = len(s)
			n += 1 + l + sovThetest(uint64(l))
		}
	}
	if len(m.Field15) > 0 {
		for _, b := range m.Field15 {
			l = len(b)
			n += 1 + l + sovThetest(uint64(l))
		}
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *NidRepPackedNative) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if len(m.Field1) > 0 {
		n += 1 + sovThetest(uint64(len(m.Field1)*8)) + len(m.Field1)*8
	}
	if len(m.Field2) > 0 {
		n += 1 + sovThetest(uint64(len(m.Field2)*4)) + len(m.Field2)*4
	}
	if len(m.Field3) > 0 {
		l = 0
		for _, e := range m.Field3 {
			l += sovThetest(uint64(e))
		}
		n += 1 + sovThetest(uint64(l)) + l
	}
	if len(m.Field4) > 0 {
		l = 0
		for _, e := range m.Field4 {
			l += sovThetest(uint64(e))
		}
		n += 1 + sovThetest(uint64(l)) + l
	}
	if len(m.Field5) > 0 {
		l = 0
		for _, e := range m.Field5 {
			l += sovThetest(uint64(e))
		}
		n += 1 + sovThetest(uint64(l)) + l
	}
	if len(m.Field6) > 0 {
		l = 0
		for _, e := range m.Field6 {
			l += sovThetest(uint64(e))
		}
		n += 1 + sovThetest(uint64(l)) + l
	}
	if len(m.Field7) > 0 {
		l = 0
		for _, e := range m.Field7 {
			l += sozThetest(uint64(e))
		}
		n += 1 + sovThetest(uint64(l)) + l
	}
	if len(m.Field8) > 0 {
		l = 0
		for _, e := range m.Field8 {
			l += sozThetest(uint64(e))
		}
		n += 1 + sovThetest(uint64(l)) + l
	}
	if len(m.Field9) > 0 {
		n += 1 + sovThetest(uint64(len(m.Field9)*4)) + len(m.Field9)*4
	}
	if len(m.Field10) > 0 {
		n += 1 + sovThetest(uint64(len(m.Field10)*4)) + len(m.Field10)*4
	}
	if len(m.Field11) > 0 {
		n += 1 + sovThetest(uint64(len(m.Field11)*8)) + len(m.Field11)*8
	}
	if len(m.Field12) > 0 {
		n += 1 + sovThetest(uint64(len(m.Field12)*8)) + len(m.Field12)*8
	}
	if len(m.Field13) > 0 {
		n += 1 + sovThetest(uint64(len(m.Field13))) + len(m.Field13)*1
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *NinRepPackedNative) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if len(m.Field1) > 0 {
		n += 1 + sovThetest(uint64(len(m.Field1)*8)) + len(m.Field1)*8
	}
	if len(m.Field2) > 0 {
		n += 1 + sovThetest(uint64(len(m.Field2)*4)) + len(m.Field2)*4
	}
	if len(m.Field3) > 0 {
		l = 0
		for _, e := range m.Field3 {
			l += sovThetest(uint64(e))
		}
		n += 1 + sovThetest(uint64(l)) + l
	}
	if len(m.Field4) > 0 {
		l = 0
		for _, e := range m.Field4 {
			l += sovThetest(uint64(e))
		}
		n += 1 + sovThetest(uint64(l)) + l
	}
	if len(m.Field5) > 0 {
		l = 0
		for _, e := range m.Field5 {
			l += sovThetest(uint64(e))
		}
		n += 1 + sovThetest(uint64(l)) + l
	}
	if len(m.Field6) > 0 {
		l = 0
		for _, e := range m.Field6 {
			l += sovThetest(uint64(e))
		}
		n += 1 + sovThetest(uint64(l)) + l
	}
	if len(m.Field7) > 0 {
		l = 0
		for _, e := range m.Field7 {
			l += sozThetest(uint64(e))
		}
		n += 1 + sovThetest(uint64(l)) + l
	}
	if len(m.Field8) > 0 {
		l = 0
		for _, e := range m.Field8 {
			l += sozThetest(uint64(e))
		}
		n += 1 + sovThetest(uint64(l)) + l
	}
	if len(m.Field9) > 0 {
		n += 1 + sovThetest(uint64(len(m.Field9)*4)) + len(m.Field9)*4
	}
	if len(m.Field10) > 0 {
		n += 1 + sovThetest(uint64(len(m.Field10)*4)) + len(m.Field10)*4
	}
	if len(m.Field11) > 0 {
		n += 1 + sovThetest(uint64(len(m.Field11)*8)) + len(m.Field11)*8
	}
	if len(m.Field12) > 0 {
		n += 1 + sovThetest(uint64(len(m.Field12)*8)) + len(m.Field12)*8
	}
	if len(m.Field13) > 0 {
		n += 1 + sovThetest(uint64(len(m.Field13))) + len(m.Field13)*1
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *NidOptStruct) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	n += 9
	n += 5
	l = m.Field3.Size()
	n += 1 + l + sovThetest(uint64(l))
	l = m.Field4.Size()
	n += 1 + l + sovThetest(uint64(l))
	n += 1 + sovThetest(uint64(m.Field6))
	n += 1 + sozThetest(uint64(m.Field7))
	l = m.Field8.Size()
	n += 1 + l + sovThetest(uint64(l))
	n += 2
	l = len(m.Field14)
	n += 1 + l + sovThetest(uint64(l))
	if m.Field15 != nil {
		l = len(m.Field15)
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *NinOptStruct) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.Field1 != nil {
		n += 9
	}
	if m.Field2 != nil {
		n += 5
	}
	if m.Field3 != nil {
		l = m.Field3.Size()
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.Field4 != nil {
		l = m.Field4.Size()
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.Field6 != nil {
		n += 1 + sovThetest(uint64(*m.Field6))
	}
	if m.Field7 != nil {
		n += 1 + sozThetest(uint64(*m.Field7))
	}
	if m.Field8 != nil {
		l = m.Field8.Size()
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.Field13 != nil {
		n += 2
	}
	if m.Field14 != nil {
		l = len(*m.Field14)
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.Field15 != nil {
		l = len(m.Field15)
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *NidRepStruct) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if len(m.Field1) > 0 {
		n += 9 * len(m.Field1)
	}
	if len(m.Field2) > 0 {
		n += 5 * len(m.Field2)
	}
	if len(m.Field3) > 0 {
		for _, e := range m.Field3 {
			l = e.Size()
			n += 1 + l + sovThetest(uint64(l))
		}
	}
	if len(m.Field4) > 0 {
		for _, e := range m.Field4 {
			l = e.Size()
			n += 1 + l + sovThetest(uint64(l))
		}
	}
	if len(m.Field6) > 0 {
		for _, e := range m.Field6 {
			n += 1 + sovThetest(uint64(e))
		}
	}
	if len(m.Field7) > 0 {
		for _, e := range m.Field7 {
			n += 1 + sozThetest(uint64(e))
		}
	}
	if len(m.Field8) > 0 {
		for _, e := range m.Field8 {
			l = e.Size()
			n += 1 + l + sovThetest(uint64(l))
		}
	}
	if len(m.Field13) > 0 {
		n += 2 * len(m.Field13)
	}
	if len(m.Field14) > 0 {
		for _, s := range m.Field14 {
			l = len(s)
			n += 1 + l + sovThetest(uint64(l))
		}
	}
	if len(m.Field15) > 0 {
		for _, b := range m.Field15 {
			l = len(b)
			n += 1 + l + sovThetest(uint64(l))
		}
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *NinRepStruct) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if len(m.Field1) > 0 {
		n += 9 * len(m.Field1)
	}
	if len(m.Field2) > 0 {
		n += 5 * len(m.Field2)
	}
	if len(m.Field3) > 0 {
		for _, e := range m.Field3 {
			l = e.Size()
			n += 1 + l + sovThetest(uint64(l))
		}
	}
	if len(m.Field4) > 0 {
		for _, e := range m.Field4 {
			l = e.Size()
			n += 1 + l + sovThetest(uint64(l))
		}
	}
	if len(m.Field6) > 0 {
		for _, e := range m.Field6 {
			n += 1 + sovThetest(uint64(e))
		}
	}
	if len(m.Field7) > 0 {
		for _, e := range m.Field7 {
			n += 1 + sozThetest(uint64(e))
		}
	}
	if len(m.Field8) > 0 {
		for _, e := range m.Field8 {
			l = e.Size()
			n += 1 + l + sovThetest(uint64(l))
		}
	}
	if len(m.Field13) > 0 {
		n += 2 * len(m.Field13)
	}
	if len(m.Field14) > 0 {
		for _, s := range m.Field14 {
			l = len(s)
			n += 1 + l + sovThetest(uint64(l))
		}
	}
	if len(m.Field15) > 0 {
		for _, b := range m.Field15 {
			l = len(b)
			n += 1 + l + sovThetest(uint64(l))
		}
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *NidEmbeddedStruct) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.NidOptNative != nil {
		l = m.NidOptNative.Size()
		n += 1 + l + sovThetest(uint64(l))
	}
	l = m.Field200.Size()
	n += 2 + l + sovThetest(uint64(l))
	n += 3
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *NinEmbeddedStruct) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.NidOptNative != nil {
		l = m.NidOptNative.Size()
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.Field200 != nil {
		l = m.Field200.Size()
		n += 2 + l + sovThetest(uint64(l))
	}
	if m.Field210 != nil {
		n += 3
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *NidNestedStruct) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = m.Field1.Size()
	n += 1 + l + sovThetest(uint64(l))
	if len(m.Field2) > 0 {
		for _, e := range m.Field2 {
			l = e.Size()
			n += 1 + l + sovThetest(uint64(l))
		}
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *NinNestedStruct) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.Field1 != nil {
		l = m.Field1.Size()
		n += 1 + l + sovThetest(uint64(l))
	}
	if len(m.Field2) > 0 {
		for _, e := range m.Field2 {
			l = e.Size()
			n += 1 + l + sovThetest(uint64(l))
		}
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *NidOptCustom) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = m.Id.Size()
	n += 1 + l + sovThetest(uint64(l))
	l = m.Value.Size()
	n += 1 + l + sovThetest(uint64(l))
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *CustomDash) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.Value != nil {
		l = m.Value.Size()
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *NinOptCustom) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.Id != nil {
		l = m.Id.Size()
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.Value != nil {
		l = m.Value.Size()
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *NidRepCustom) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if len(m.Id) > 0 {
		for _, e := range m.Id {
			l = e.Size()
			n += 1 + l + sovThetest(uint64(l))
		}
	}
	if len(m.Value) > 0 {
		for _, e := range m.Value {
			l = e.Size()
			n += 1 + l + sovThetest(uint64(l))
		}
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *NinRepCustom) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if len(m.Id) > 0 {
		for _, e := range m.Id {
			l = e.Size()
			n += 1 + l + sovThetest(uint64(l))
		}
	}
	if len(m.Value) > 0 {
		for _, e := range m.Value {
			l = e.Size()
			n += 1 + l + sovThetest(uint64(l))
		}
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *NinOptNativeUnion) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.Field1 != nil {
		n += 9
	}
	if m.Field2 != nil {
		n += 5
	}
	if m.Field3 != nil {
		n += 1 + sovThetest(uint64(*m.Field3))
	}
	if m.Field4 != nil {
		n += 1 + sovThetest(uint64(*m.Field4))
	}
	if m.Field5 != nil {
		n += 1 + sovThetest(uint64(*m.Field5))
	}
	if m.Field6 != nil {
		n += 1 + sovThetest(uint64(*m.Field6))
	}
	if m.Field13 != nil {
		n += 2
	}
	if m.Field14 != nil {
		l = len(*m.Field14)
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.Field15 != nil {
		l = len(m.Field15)
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *NinOptStructUnion) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.Field1 != nil {
		n += 9
	}
	if m.Field2 != nil {
		n += 5
	}
	if m.Field3 != nil {
		l = m.Field3.Size()
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.Field4 != nil {
		l = m.Field4.Size()
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.Field6 != nil {
		n += 1 + sovThetest(uint64(*m.Field6))
	}
	if m.Field7 != nil {
		n += 1 + sozThetest(uint64(*m.Field7))
	}
	if m.Field13 != nil {
		n += 2
	}
	if m.Field14 != nil {
		l = len(*m.Field14)
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.Field15 != nil {
		l = len(m.Field15)
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *NinEmbeddedStructUnion) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.NidOptNative != nil {
		l = m.NidOptNative.Size()
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.Field200 != nil {
		l = m.Field200.Size()
		n += 2 + l + sovThetest(uint64(l))
	}
	if m.Field210 != nil {
		n += 3
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *NinNestedStructUnion) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.Field1 != nil {
		l = m.Field1.Size()
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.Field2 != nil {
		l = m.Field2.Size()
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.Field3 != nil {
		l = m.Field3.Size()
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *Tree) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.Or != nil {
		l = m.Or.Size()
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.And != nil {
		l = m.And.Size()
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.Leaf != nil {
		l = m.Leaf.Size()
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *OrBranch) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = m.Left.Size()
	n += 1 + l + sovThetest(uint64(l))
	l = m.Right.Size()
	n += 1 + l + sovThetest(uint64(l))
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *AndBranch) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = m.Left.Size()
	n += 1 + l + sovThetest(uint64(l))
	l = m.Right.Size()
	n += 1 + l + sovThetest(uint64(l))
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *Leaf) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	n += 1 + sovThetest(uint64(m.Value))
	l = len(m.StrValue)
	n += 1 + l + sovThetest(uint64(l))
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *DeepTree) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.Down != nil {
		l = m.Down.Size()
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.And != nil {
		l = m.And.Size()
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.Leaf != nil {
		l = m.Leaf.Size()
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *ADeepBranch) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = m.Down.Size()
	n += 1 + l + sovThetest(uint64(l))
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *AndDeepBranch) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = m.Left.Size()
	n += 1 + l + sovThetest(uint64(l))
	l = m.Right.Size()
	n += 1 + l + sovThetest(uint64(l))
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *DeepLeaf) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = m.Tree.Size()
	n += 1 + l + sovThetest(uint64(l))
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *Nil) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *NidOptEnum) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	n += 1 + sovThetest(uint64(m.Field1))
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *NinOptEnum) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.Field1 != nil {
		n += 1 + sovThetest(uint64(*m.Field1))
	}
	if m.Field2 != nil {
		n += 1 + sovThetest(uint64(*m.Field2))
	}
	if m.Field3 != nil {
		n += 1 + sovThetest(uint64(*m.Field3))
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *NidRepEnum) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if len(m.Field1) > 0 {
		for _, e := range m.Field1 {
			n += 1 + sovThetest(uint64(e))
		}
	}
	if len(m.Field2) > 0 {
		for _, e := range m.Field2 {
			n += 1 + sovThetest(uint64(e))
		}
	}
	if len(m.Field3) > 0 {
		for _, e := range m.Field3 {
			n += 1 + sovThetest(uint64(e))
		}
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *NinRepEnum) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if len(m.Field1) > 0 {
		for _, e := range m.Field1 {
			n += 1 + sovThetest(uint64(e))
		}
	}
	if len(m.Field2) > 0 {
		for _, e := range m.Field2 {
			n += 1 + sovThetest(uint64(e))
		}
	}
	if len(m.Field3) > 0 {
		for _, e := range m.Field3 {
			n += 1 + sovThetest(uint64(e))
		}
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *NinOptEnumDefault) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.Field1 != nil {
		n += 1 + sovThetest(uint64(*m.Field1))
	}
	if m.Field2 != nil {
		n += 1 + sovThetest(uint64(*m.Field2))
	}
	if m.Field3 != nil {
		n += 1 + sovThetest(uint64(*m.Field3))
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *AnotherNinOptEnum) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.Field1 != nil {
		n += 1 + sovThetest(uint64(*m.Field1))
	}
	if m.Field2 != nil {
		n += 1 + sovThetest(uint64(*m.Field2))
	}
	if m.Field3 != nil {
		n += 1 + sovThetest(uint64(*m.Field3))
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *AnotherNinOptEnumDefault) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.Field1 != nil {
		n += 1 + sovThetest(uint64(*m.Field1))
	}
	if m.Field2 != nil {
		n += 1 + sovThetest(uint64(*m.Field2))
	}
	if m.Field3 != nil {
		n += 1 + sovThetest(uint64(*m.Field3))
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *Timer) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	n += 9
	n += 9
	if m.Data != nil {
		l = len(m.Data)
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *MyExtendable) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.Field1 != nil {
		n += 1 + sovThetest(uint64(*m.Field1))
	}
	n += github_com_gogo_protobuf_proto.SizeOfInternalExtension(m)
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *OtherExtenable) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.M != nil {
		l = m.M.Size()
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.Field2 != nil {
		n += 1 + sovThetest(uint64(*m.Field2))
	}
	if m.Field13 != nil {
		n += 1 + sovThetest(uint64(*m.Field13))
	}
	n += github_com_gogo_protobuf_proto.SizeOfInternalExtension(m)
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *NestedDefinition) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.Field1 != nil {
		n += 1 + sovThetest(uint64(*m.Field1))
	}
	if m.EnumField != nil {
		n += 1 + sovThetest(uint64(*m.EnumField))
	}
	if m.NNM != nil {
		l = m.NNM.Size()
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.NM != nil {
		l = m.NM.Size()
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *NestedDefinition_NestedMessage) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.NestedField1 != nil {
		n += 9
	}
	if m.NNM != nil {
		l = m.NNM.Size()
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.NestedNestedField1 != nil {
		l = len(*m.NestedNestedField1)
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *NestedScope) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.A != nil {
		l = m.A.Size()
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.B != nil {
		n += 1 + sovThetest(uint64(*m.B))
	}
	if m.C != nil {
		l = m.C.Size()
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *NinOptNativeDefault) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.Field1 != nil {
		n += 9
	}
	if m.Field2 != nil {
		n += 5
	}
	if m.Field3 != nil {
		n += 1 + sovThetest(uint64(*m.Field3))
	}
	if m.Field4 != nil {
		n += 1 + sovThetest(uint64(*m.Field4))
	}
	if m.Field5 != nil {
		n += 1 + sovThetest(uint64(*m.Field5))
	}
	if m.Field6 != nil {
		n += 1 + sovThetest(uint64(*m.Field6))
	}
	if m.Field7 != nil {
		n += 1 + sozThetest(uint64(*m.Field7))
	}
	if m.Field8 != nil {
		n += 1 + sozThetest(uint64(*m.Field8))
	}
	if m.Field9 != nil {
		n += 5
	}
	if m.Field10 != nil {
		n += 5
	}
	if m.Field11 != nil {
		n += 9
	}
	if m.Field12 != nil {
		n += 9
	}
	if m.Field13 != nil {
		n += 2
	}
	if m.Field14 != nil {
		l = len(*m.Field14)
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.Field15 != nil {
		l = len(m.Field15)
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *CustomContainer) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = m.CustomStruct.Size()
	n += 1 + l + sovThetest(uint64(l))
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *CustomNameNidOptNative) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	n += 9
	n += 5
	n += 1 + sovThetest(uint64(m.FieldC))
	n += 1 + sovThetest(uint64(m.FieldD))
	n += 1 + sovThetest(uint64(m.FieldE))
	n += 1 + sovThetest(uint64(m.FieldF))
	n += 1 + sozThetest(uint64(m.FieldG))
	n += 1 + sozThetest(uint64(m.FieldH))
	n += 5
	n += 5
	n += 9
	n += 9
	n += 2
	l = len(m.FieldN)
	n += 1 + l + sovThetest(uint64(l))
	if m.FieldO != nil {
		l = len(m.FieldO)
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *CustomNameNinOptNative) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.FieldA != nil {
		n += 9
	}
	if m.FieldB != nil {
		n += 5
	}
	if m.FieldC != nil {
		n += 1 + sovThetest(uint64(*m.FieldC))
	}
	if m.FieldD != nil {
		n += 1 + sovThetest(uint64(*m.FieldD))
	}
	if m.FieldE != nil {
		n += 1 + sovThetest(uint64(*m.FieldE))
	}
	if m.FieldF != nil {
		n += 1 + sovThetest(uint64(*m.FieldF))
	}
	if m.FieldG != nil {
		n += 1 + sozThetest(uint64(*m.FieldG))
	}
	if m.FieldH != nil {
		n += 1 + sozThetest(uint64(*m.FieldH))
	}
	if m.FieldI != nil {
		n += 5
	}
	if m.FieldJ != nil {
		n += 5
	}
	if m.FieldK != nil {
		n += 9
	}
	if m.FielL != nil {
		n += 9
	}
	if m.FieldM != nil {
		n += 2
	}
	if m.FieldN != nil {
		l = len(*m.FieldN)
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.FieldO != nil {
		l = len(m.FieldO)
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *CustomNameNinRepNative) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if len(m.FieldA) > 0 {
		n += 9 * len(m.FieldA)
	}
	if len(m.FieldB) > 0 {
		n += 5 * len(m.FieldB)
	}
	if len(m.FieldC) > 0 {
		for _, e := range m.FieldC {
			n += 1 + sovThetest(uint64(e))
		}
	}
	if len(m.FieldD) > 0 {
		for _, e := range m.FieldD {
			n += 1 + sovThetest(uint64(e))
		}
	}
	if len(m.FieldE) > 0 {
		for _, e := range m.FieldE {
			n += 1 + sovThetest(uint64(e))
		}
	}
	if len(m.FieldF) > 0 {
		for _, e := range m.FieldF {
			n += 1 + sovThetest(uint64(e))
		}
	}
	if len(m.FieldG) > 0 {
		for _, e := range m.FieldG {
			n += 1 + sozThetest(uint64(e))
		}
	}
	if len(m.FieldH) > 0 {
		for _, e := range m.FieldH {
			n += 1 + sozThetest(uint64(e))
		}
	}
	if len(m.FieldI) > 0 {
		n += 5 * len(m.FieldI)
	}
	if len(m.FieldJ) > 0 {
		n += 5 * len(m.FieldJ)
	}
	if len(m.FieldK) > 0 {
		n += 9 * len(m.FieldK)
	}
	if len(m.FieldL) > 0 {
		n += 9 * len(m.FieldL)
	}
	if len(m.FieldM) > 0 {
		n += 2 * len(m.FieldM)
	}
	if len(m.FieldN) > 0 {
		for _, s := range m.FieldN {
			l = len(s)
			n += 1 + l + sovThetest(uint64(l))
		}
	}
	if len(m.FieldO) > 0 {
		for _, b := range m.FieldO {
			l = len(b)
			n += 1 + l + sovThetest(uint64(l))
		}
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *CustomNameNinStruct) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.FieldA != nil {
		n += 9
	}
	if m.FieldB != nil {
		n += 5
	}
	if m.FieldC != nil {
		l = m.FieldC.Size()
		n += 1 + l + sovThetest(uint64(l))
	}
	if len(m.FieldD) > 0 {
		for _, e := range m.FieldD {
			l = e.Size()
			n += 1 + l + sovThetest(uint64(l))
		}
	}
	if m.FieldE != nil {
		n += 1 + sovThetest(uint64(*m.FieldE))
	}
	if m.FieldF != nil {
		n += 1 + sozThetest(uint64(*m.FieldF))
	}
	if m.FieldG != nil {
		l = m.FieldG.Size()
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.FieldH != nil {
		n += 2
	}
	if m.FieldI != nil {
		l = len(*m.FieldI)
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.FieldJ != nil {
		l = len(m.FieldJ)
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *CustomNameCustomType) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.FieldA != nil {
		l = m.FieldA.Size()
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.FieldB != nil {
		l = m.FieldB.Size()
		n += 1 + l + sovThetest(uint64(l))
	}
	if len(m.FieldC) > 0 {
		for _, e := range m.FieldC {
			l = e.Size()
			n += 1 + l + sovThetest(uint64(l))
		}
	}
	if len(m.FieldD) > 0 {
		for _, e := range m.FieldD {
			l = e.Size()
			n += 1 + l + sovThetest(uint64(l))
		}
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *CustomNameNinEmbeddedStructUnion) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.NidOptNative != nil {
		l = m.NidOptNative.Size()
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.FieldA != nil {
		l = m.FieldA.Size()
		n += 2 + l + sovThetest(uint64(l))
	}
	if m.FieldB != nil {
		n += 3
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *CustomNameEnum) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.FieldA != nil {
		n += 1 + sovThetest(uint64(*m.FieldA))
	}
	if len(m.FieldB) > 0 {
		for _, e := range m.FieldB {
			n += 1 + sovThetest(uint64(e))
		}
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *NoExtensionsMap) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.Field1 != nil {
		n += 1 + sovThetest(uint64(*m.Field1))
	}
	if m.XXX_extensions != nil {
		n += len(m.XXX_extensions)
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *Unrecognized) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.Field1 != nil {
		l = len(*m.Field1)
		n += 1 + l + sovThetest(uint64(l))
	}
	return n
}

func (m *UnrecognizedWithInner) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if len(m.Embedded) > 0 {
		for _, e := range m.Embedded {
			l = e.Size()
			n += 1 + l + sovThetest(uint64(l))
		}
	}
	if m.Field2 != nil {
		l = len(*m.Field2)
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *UnrecognizedWithInner_Inner) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.Field1 != nil {
		n += 1 + sovThetest(uint64(*m.Field1))
	}
	return n
}

func (m *UnrecognizedWithEmbed) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = m.UnrecognizedWithEmbed_Embedded.Size()
	n += 1 + l + sovThetest(uint64(l))
	if m.Field2 != nil {
		l = len(*m.Field2)
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *UnrecognizedWithEmbed_Embedded) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.Field1 != nil {
		n += 1 + sovThetest(uint64(*m.Field1))
	}
	return n
}

func (m *Node) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.Label != nil {
		l = len(*m.Label)
		n += 1 + l + sovThetest(uint64(l))
	}
	if len(m.Children) > 0 {
		for _, e := range m.Children {
			l = e.Size()
			n += 1 + l + sovThetest(uint64(l))
		}
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *NonByteCustomType) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.Field1 != nil {
		l = m.Field1.Size()
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *NidOptNonByteCustomType) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = m.Field1.Size()
	n += 1 + l + sovThetest(uint64(l))
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *NinOptNonByteCustomType) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.Field1 != nil {
		l = m.Field1.Size()
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *NidRepNonByteCustomType) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if len(m.Field1) > 0 {
		for _, e := range m.Field1 {
			l = e.Size()
			n += 1 + l + sovThetest(uint64(l))
		}
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *NinRepNonByteCustomType) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if len(m.Field1) > 0 {
		for _, e := range m.Field1 {
			l = e.Size()
			n += 1 + l + sovThetest(uint64(l))
		}
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *ProtoType) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.Field2 != nil {
		l = len(*m.Field2)
		n += 1 + l + sovThetest(uint64(l))
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func sovThetest(x uint64) (n int) {
	return (math_bits.Len64(x|1) + 6) / 7
}
func sozThetest(x uint64) (n int) {
	return sovThetest(uint64((x << 1) ^ uint64((int64(x) >> 63))))
}
func (this *NidOptNative) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&NidOptNative{`,
		`Field1:` + fmt.Sprintf("%v", this.Field1) + `,`,
		`Field2:` + fmt.Sprintf("%v", this.Field2) + `,`,
		`Field3:` + fmt.Sprintf("%v", this.Field3) + `,`,
		`Field4:` + fmt.Sprintf("%v", this.Field4) + `,`,
		`Field5:` + fmt.Sprintf("%v", this.Field5) + `,`,
		`Field6:` + fmt.Sprintf("%v", this.Field6) + `,`,
		`Field7:` + fmt.Sprintf("%v", this.Field7) + `,`,
		`Field8:` + fmt.Sprintf("%v", this.Field8) + `,`,
		`Field9:` + fmt.Sprintf("%v", this.Field9) + `,`,
		`Field10:` + fmt.Sprintf("%v", this.Field10) + `,`,
		`Field11:` + fmt.Sprintf("%v", this.Field11) + `,`,
		`Field12:` + fmt.Sprintf("%v", this.Field12) + `,`,
		`Field13:` + fmt.Sprintf("%v", this.Field13) + `,`,
		`Field14:` + fmt.Sprintf("%v", this.Field14) + `,`,
		`Field15:` + fmt.Sprintf("%v", this.Field15) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *NinOptNative) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&NinOptNative{`,
		`Field1:` + valueToStringThetest(this.Field1) + `,`,
		`Field2:` + valueToStringThetest(this.Field2) + `,`,
		`Field3:` + valueToStringThetest(this.Field3) + `,`,
		`Field4:` + valueToStringThetest(this.Field4) + `,`,
		`Field5:` + valueToStringThetest(this.Field5) + `,`,
		`Field6:` + valueToStringThetest(this.Field6) + `,`,
		`Field7:` + valueToStringThetest(this.Field7) + `,`,
		`Field8:` + valueToStringThetest(this.Field8) + `,`,
		`Field9:` + valueToStringThetest(this.Field9) + `,`,
		`Field10:` + valueToStringThetest(this.Field10) + `,`,
		`Field11:` + valueToStringThetest(this.Field11) + `,`,
		`Field12:` + valueToStringThetest(this.Field12) + `,`,
		`Field13:` + valueToStringThetest(this.Field13) + `,`,
		`Field14:` + valueToStringThetest(this.Field14) + `,`,
		`Field15:` + valueToStringThetest(this.Field15) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *NidRepNative) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&NidRepNative{`,
		`Field1:` + fmt.Sprintf("%v", this.Field1) + `,`,
		`Field2:` + fmt.Sprintf("%v", this.Field2) + `,`,
		`Field3:` + fmt.Sprintf("%v", this.Field3) + `,`,
		`Field4:` + fmt.Sprintf("%v", this.Field4) + `,`,
		`Field5:` + fmt.Sprintf("%v", this.Field5) + `,`,
		`Field6:` + fmt.Sprintf("%v", this.Field6) + `,`,
		`Field7:` + fmt.Sprintf("%v", this.Field7) + `,`,
		`Field8:` + fmt.Sprintf("%v", this.Field8) + `,`,
		`Field9:` + fmt.Sprintf("%v", this.Field9) + `,`,
		`Field10:` + fmt.Sprintf("%v", this.Field10) + `,`,
		`Field11:` + fmt.Sprintf("%v", this.Field11) + `,`,
		`Field12:` + fmt.Sprintf("%v", this.Field12) + `,`,
		`Field13:` + fmt.Sprintf("%v", this.Field13) + `,`,
		`Field14:` + fmt.Sprintf("%v", this.Field14) + `,`,
		`Field15:` + fmt.Sprintf("%v", this.Field15) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *NinRepNative) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&NinRepNative{`,
		`Field1:` + fmt.Sprintf("%v", this.Field1) + `,`,
		`Field2:` + fmt.Sprintf("%v", this.Field2) + `,`,
		`Field3:` + fmt.Sprintf("%v", this.Field3) + `,`,
		`Field4:` + fmt.Sprintf("%v", this.Field4) + `,`,
		`Field5:` + fmt.Sprintf("%v", this.Field5) + `,`,
		`Field6:` + fmt.Sprintf("%v", this.Field6) + `,`,
		`Field7:` + fmt.Sprintf("%v", this.Field7) + `,`,
		`Field8:` + fmt.Sprintf("%v", this.Field8) + `,`,
		`Field9:` + fmt.Sprintf("%v", this.Field9) + `,`,
		`Field10:` + fmt.Sprintf("%v", this.Field10) + `,`,
		`Field11:` + fmt.Sprintf("%v", this.Field11) + `,`,
		`Field12:` + fmt.Sprintf("%v", this.Field12) + `,`,
		`Field13:` + fmt.Sprintf("%v", this.Field13) + `,`,
		`Field14:` + fmt.Sprintf("%v", this.Field14) + `,`,
		`Field15:` + fmt.Sprintf("%v", this.Field15) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *NidRepPackedNative) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&NidRepPackedNative{`,
		`Field1:` + fmt.Sprintf("%v", this.Field1) + `,`,
		`Field2:` + fmt.Sprintf("%v", this.Field2) + `,`,
		`Field3:` + fmt.Sprintf("%v", this.Field3) + `,`,
		`Field4:` + fmt.Sprintf("%v", this.Field4) + `,`,
		`Field5:` + fmt.Sprintf("%v", this.Field5) + `,`,
		`Field6:` + fmt.Sprintf("%v", this.Field6) + `,`,
		`Field7:` + fmt.Sprintf("%v", this.Field7) + `,`,
		`Field8:` + fmt.Sprintf("%v", this.Field8) + `,`,
		`Field9:` + fmt.Sprintf("%v", this.Field9) + `,`,
		`Field10:` + fmt.Sprintf("%v", this.Field10) + `,`,
		`Field11:` + fmt.Sprintf("%v", this.Field11) + `,`,
		`Field12:` + fmt.Sprintf("%v", this.Field12) + `,`,
		`Field13:` + fmt.Sprintf("%v", this.Field13) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *NinRepPackedNative) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&NinRepPackedNative{`,
		`Field1:` + fmt.Sprintf("%v", this.Field1) + `,`,
		`Field2:` + fmt.Sprintf("%v", this.Field2) + `,`,
		`Field3:` + fmt.Sprintf("%v", this.Field3) + `,`,
		`Field4:` + fmt.Sprintf("%v", this.Field4) + `,`,
		`Field5:` + fmt.Sprintf("%v", this.Field5) + `,`,
		`Field6:` + fmt.Sprintf("%v", this.Field6) + `,`,
		`Field7:` + fmt.Sprintf("%v", this.Field7) + `,`,
		`Field8:` + fmt.Sprintf("%v", this.Field8) + `,`,
		`Field9:` + fmt.Sprintf("%v", this.Field9) + `,`,
		`Field10:` + fmt.Sprintf("%v", this.Field10) + `,`,
		`Field11:` + fmt.Sprintf("%v", this.Field11) + `,`,
		`Field12:` + fmt.Sprintf("%v", this.Field12) + `,`,
		`Field13:` + fmt.Sprintf("%v", this.Field13) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *NidOptStruct) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&NidOptStruct{`,
		`Field1:` + fmt.Sprintf("%v", this.Field1) + `,`,
		`Field2:` + fmt.Sprintf("%v", this.Field2) + `,`,
		`Field3:` + strings.Replace(strings.Replace(this.Field3.String(), "NidOptNative", "NidOptNative", 1), `&`, ``, 1) + `,`,
		`Field4:` + strings.Replace(strings.Replace(this.Field4.String(), "NinOptNative", "NinOptNative", 1), `&`, ``, 1) + `,`,
		`Field6:` + fmt.Sprintf("%v", this.Field6) + `,`,
		`Field7:` + fmt.Sprintf("%v", this.Field7) + `,`,
		`Field8:` + strings.Replace(strings.Replace(this.Field8.String(), "NidOptNative", "NidOptNative", 1), `&`, ``, 1) + `,`,
		`Field13:` + fmt.Sprintf("%v", this.Field13) + `,`,
		`Field14:` + fmt.Sprintf("%v", this.Field14) + `,`,
		`Field15:` + fmt.Sprintf("%v", this.Field15) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *NinOptStruct) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&NinOptStruct{`,
		`Field1:` + valueToStringThetest(this.Field1) + `,`,
		`Field2:` + valueToStringThetest(this.Field2) + `,`,
		`Field3:` + strings.Replace(this.Field3.String(), "NidOptNative", "NidOptNative", 1) + `,`,
		`Field4:` + strings.Replace(this.Field4.String(), "NinOptNative", "NinOptNative", 1) + `,`,
		`Field6:` + valueToStringThetest(this.Field6) + `,`,
		`Field7:` + valueToStringThetest(this.Field7) + `,`,
		`Field8:` + strings.Replace(this.Field8.String(), "NidOptNative", "NidOptNative", 1) + `,`,
		`Field13:` + valueToStringThetest(this.Field13) + `,`,
		`Field14:` + valueToStringThetest(this.Field14) + `,`,
		`Field15:` + valueToStringThetest(this.Field15) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *NidRepStruct) String() string {
	if this == nil {
		return "nil"
	}
	repeatedStringForField3 := "[]NidOptNative{"
	for _, f := range this.Field3 {
		repeatedStringForField3 += strings.Replace(strings.Replace(f.String(), "NidOptNative", "NidOptNative", 1), `&`, ``, 1) + ","
	}
	repeatedStringForField3 += "}"
	repeatedStringForField4 := "[]NinOptNative{"
	for _, f := range this.Field4 {
		repeatedStringForField4 += strings.Replace(strings.Replace(f.String(), "NinOptNative", "NinOptNative", 1), `&`, ``, 1) + ","
	}
	repeatedStringForField4 += "}"
	repeatedStringForField8 := "[]NidOptNative{"
	for _, f := range this.Field8 {
		repeatedStringForField8 += strings.Replace(strings.Replace(f.String(), "NidOptNative", "NidOptNative", 1), `&`, ``, 1) + ","
	}
	repeatedStringForField8 += "}"
	s := strings.Join([]string{`&NidRepStruct{`,
		`Field1:` + fmt.Sprintf("%v", this.Field1) + `,`,
		`Field2:` + fmt.Sprintf("%v", this.Field2) + `,`,
		`Field3:` + repeatedStringForField3 + `,`,
		`Field4:` + repeatedStringForField4 + `,`,
		`Field6:` + fmt.Sprintf("%v", this.Field6) + `,`,
		`Field7:` + fmt.Sprintf("%v", this.Field7) + `,`,
		`Field8:` + repeatedStringForField8 + `,`,
		`Field13:` + fmt.Sprintf("%v", this.Field13) + `,`,
		`Field14:` + fmt.Sprintf("%v", this.Field14) + `,`,
		`Field15:` + fmt.Sprintf("%v", this.Field15) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *NinRepStruct) String() string {
	if this == nil {
		return "nil"
	}
	repeatedStringForField3 := "[]*NidOptNative{"
	for _, f := range this.Field3 {
		repeatedStringForField3 += strings.Replace(f.String(), "NidOptNative", "NidOptNative", 1) + ","
	}
	repeatedStringForField3 += "}"
	repeatedStringForField4 := "[]*NinOptNative{"
	for _, f := range this.Field4 {
		repeatedStringForField4 += strings.Replace(f.String(), "NinOptNative", "NinOptNative", 1) + ","
	}
	repeatedStringForField4 += "}"
	repeatedStringForField8 := "[]*NidOptNative{"
	for _, f := range this.Field8 {
		repeatedStringForField8 += strings.Replace(f.String(), "NidOptNative", "NidOptNative", 1) + ","
	}
	repeatedStringForField8 += "}"
	s := strings.Join([]string{`&NinRepStruct{`,
		`Field1:` + fmt.Sprintf("%v", this.Field1) + `,`,
		`Field2:` + fmt.Sprintf("%v", this.Field2) + `,`,
		`Field3:` + repeatedStringForField3 + `,`,
		`Field4:` + repeatedStringForField4 + `,`,
		`Field6:` + fmt.Sprintf("%v", this.Field6) + `,`,
		`Field7:` + fmt.Sprintf("%v", this.Field7) + `,`,
		`Field8:` + repeatedStringForField8 + `,`,
		`Field13:` + fmt.Sprintf("%v", this.Field13) + `,`,
		`Field14:` + fmt.Sprintf("%v", this.Field14) + `,`,
		`Field15:` + fmt.Sprintf("%v", this.Field15) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *NidEmbeddedStruct) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&NidEmbeddedStruct{`,
		`NidOptNative:` + strings.Replace(this.NidOptNative.String(), "NidOptNative", "NidOptNative", 1) + `,`,
		`Field200:` + strings.Replace(strings.Replace(this.Field200.String(), "NidOptNative", "NidOptNative", 1), `&`, ``, 1) + `,`,
		`Field210:` + fmt.Sprintf("%v", this.Field210) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *NinEmbeddedStruct) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&NinEmbeddedStruct{`,
		`NidOptNative:` + strings.Replace(this.NidOptNative.String(), "NidOptNative", "NidOptNative", 1) + `,`,
		`Field200:` + strings.Replace(this.Field200.String(), "NidOptNative", "NidOptNative", 1) + `,`,
		`Field210:` + valueToStringThetest(this.Field210) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *NidNestedStruct) String() string {
	if this == nil {
		return "nil"
	}
	repeatedStringForField2 := "[]NidRepStruct{"
	for _, f := range this.Field2 {
		repeatedStringForField2 += strings.Replace(strings.Replace(f.String(), "NidRepStruct", "NidRepStruct", 1), `&`, ``, 1) + ","
	}
	repeatedStringForField2 += "}"
	s := strings.Join([]string{`&NidNestedStruct{`,
		`Field1:` + strings.Replace(strings.Replace(this.Field1.String(), "NidOptStruct", "NidOptStruct", 1), `&`, ``, 1) + `,`,
		`Field2:` + repeatedStringForField2 + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *NinNestedStruct) String() string {
	if this == nil {
		return "nil"
	}
	repeatedStringForField2 := "[]*NinRepStruct{"
	for _, f := range this.Field2 {
		repeatedStringForField2 += strings.Replace(f.String(), "NinRepStruct", "NinRepStruct", 1) + ","
	}
	repeatedStringForField2 += "}"
	s := strings.Join([]string{`&NinNestedStruct{`,
		`Field1:` + strings.Replace(this.Field1.String(), "NinOptStruct", "NinOptStruct", 1) + `,`,
		`Field2:` + repeatedStringForField2 + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *NidOptCustom) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&NidOptCustom{`,
		`Id:` + fmt.Sprintf("%v", this.Id) + `,`,
		`Value:` + fmt.Sprintf("%v", this.Value) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *CustomDash) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&CustomDash{`,
		`Value:` + valueToStringThetest(this.Value) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *NinOptCustom) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&NinOptCustom{`,
		`Id:` + valueToStringThetest(this.Id) + `,`,
		`Value:` + valueToStringThetest(this.Value) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *NidRepCustom) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&NidRepCustom{`,
		`Id:` + fmt.Sprintf("%v", this.Id) + `,`,
		`Value:` + fmt.Sprintf("%v", this.Value) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *NinRepCustom) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&NinRepCustom{`,
		`Id:` + fmt.Sprintf("%v", this.Id) + `,`,
		`Value:` + fmt.Sprintf("%v", this.Value) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *NinOptNativeUnion) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&NinOptNativeUnion{`,
		`Field1:` + valueToStringThetest(this.Field1) + `,`,
		`Field2:` + valueToStringThetest(this.Field2) + `,`,
		`Field3:` + valueToStringThetest(this.Field3) + `,`,
		`Field4:` + valueToStringThetest(this.Field4) + `,`,
		`Field5:` + valueToStringThetest(this.Field5) + `,`,
		`Field6:` + valueToStringThetest(this.Field6) + `,`,
		`Field13:` + valueToStringThetest(this.Field13) + `,`,
		`Field14:` + valueToStringThetest(this.Field14) + `,`,
		`Field15:` + valueToStringThetest(this.Field15) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *NinOptStructUnion) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&NinOptStructUnion{`,
		`Field1:` + valueToStringThetest(this.Field1) + `,`,
		`Field2:` + valueToStringThetest(this.Field2) + `,`,
		`Field3:` + strings.Replace(this.Field3.String(), "NidOptNative", "NidOptNative", 1) + `,`,
		`Field4:` + strings.Replace(this.Field4.String(), "NinOptNative", "NinOptNative", 1) + `,`,
		`Field6:` + valueToStringThetest(this.Field6) + `,`,
		`Field7:` + valueToStringThetest(this.Field7) + `,`,
		`Field13:` + valueToStringThetest(this.Field13) + `,`,
		`Field14:` + valueToStringThetest(this.Field14) + `,`,
		`Field15:` + valueToStringThetest(this.Field15) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *NinEmbeddedStructUnion) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&NinEmbeddedStructUnion{`,
		`NidOptNative:` + strings.Replace(this.NidOptNative.String(), "NidOptNative", "NidOptNative", 1) + `,`,
		`Field200:` + strings.Replace(this.Field200.String(), "NinOptNative", "NinOptNative", 1) + `,`,
		`Field210:` + valueToStringThetest(this.Field210) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *NinNestedStructUnion) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&NinNestedStructUnion{`,
		`Field1:` + strings.Replace(this.Field1.String(), "NinOptNativeUnion", "NinOptNativeUnion", 1) + `,`,
		`Field2:` + strings.Replace(this.Field2.String(), "NinOptStructUnion", "NinOptStructUnion", 1) + `,`,
		`Field3:` + strings.Replace(this.Field3.String(), "NinEmbeddedStructUnion", "NinEmbeddedStructUnion", 1) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *Tree) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&Tree{`,
		`Or:` + strings.Replace(this.Or.String(), "OrBranch", "OrBranch", 1) + `,`,
		`And:` + strings.Replace(this.And.String(), "AndBranch", "AndBranch", 1) + `,`,
		`Leaf:` + strings.Replace(this.Leaf.String(), "Leaf", "Leaf", 1) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *OrBranch) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&OrBranch{`,
		`Left:` + strings.Replace(strings.Replace(this.Left.String(), "Tree", "Tree", 1), `&`, ``, 1) + `,`,
		`Right:` + strings.Replace(strings.Replace(this.Right.String(), "Tree", "Tree", 1), `&`, ``, 1) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *AndBranch) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&AndBranch{`,
		`Left:` + strings.Replace(strings.Replace(this.Left.String(), "Tree", "Tree", 1), `&`, ``, 1) + `,`,
		`Right:` + strings.Replace(strings.Replace(this.Right.String(), "Tree", "Tree", 1), `&`, ``, 1) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *Leaf) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&Leaf{`,
		`Value:` + fmt.Sprintf("%v", this.Value) + `,`,
		`StrValue:` + fmt.Sprintf("%v", this.StrValue) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *DeepTree) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&DeepTree{`,
		`Down:` + strings.Replace(this.Down.String(), "ADeepBranch", "ADeepBranch", 1) + `,`,
		`And:` + strings.Replace(this.And.String(), "AndDeepBranch", "AndDeepBranch", 1) + `,`,
		`Leaf:` + strings.Replace(this.Leaf.String(), "DeepLeaf", "DeepLeaf", 1) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *ADeepBranch) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&ADeepBranch{`,
		`Down:` + strings.Replace(strings.Replace(this.Down.String(), "DeepTree", "DeepTree", 1), `&`, ``, 1) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *AndDeepBranch) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&AndDeepBranch{`,
		`Left:` + strings.Replace(strings.Replace(this.Left.String(), "DeepTree", "DeepTree", 1), `&`, ``, 1) + `,`,
		`Right:` + strings.Replace(strings.Replace(this.Right.String(), "DeepTree", "DeepTree", 1), `&`, ``, 1) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *DeepLeaf) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&DeepLeaf{`,
		`Tree:` + strings.Replace(strings.Replace(this.Tree.String(), "Tree", "Tree", 1), `&`, ``, 1) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *Nil) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&Nil{`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *NidOptEnum) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&NidOptEnum{`,
		`Field1:` + fmt.Sprintf("%v", this.Field1) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *NinOptEnum) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&NinOptEnum{`,
		`Field1:` + valueToStringThetest(this.Field1) + `,`,
		`Field2:` + valueToStringThetest(this.Field2) + `,`,
		`Field3:` + valueToStringThetest(this.Field3) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *NidRepEnum) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&NidRepEnum{`,
		`Field1:` + fmt.Sprintf("%v", this.Field1) + `,`,
		`Field2:` + fmt.Sprintf("%v", this.Field2) + `,`,
		`Field3:` + fmt.Sprintf("%v", this.Field3) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *NinRepEnum) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&NinRepEnum{`,
		`Field1:` + fmt.Sprintf("%v", this.Field1) + `,`,
		`Field2:` + fmt.Sprintf("%v", this.Field2) + `,`,
		`Field3:` + fmt.Sprintf("%v", this.Field3) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *NinOptEnumDefault) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&NinOptEnumDefault{`,
		`Field1:` + valueToStringThetest(this.Field1) + `,`,
		`Field2:` + valueToStringThetest(this.Field2) + `,`,
		`Field3:` + valueToStringThetest(this.Field3) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *AnotherNinOptEnum) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&AnotherNinOptEnum{`,
		`Field1:` + valueToStringThetest(this.Field1) + `,`,
		`Field2:` + valueToStringThetest(this.Field2) + `,`,
		`Field3:` + valueToStringThetest(this.Field3) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *AnotherNinOptEnumDefault) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&AnotherNinOptEnumDefault{`,
		`Field1:` + valueToStringThetest(this.Field1) + `,`,
		`Field2:` + valueToStringThetest(this.Field2) + `,`,
		`Field3:` + valueToStringThetest(this.Field3) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *Timer) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&Timer{`,
		`Time1:` + fmt.Sprintf("%v", this.Time1) + `,`,
		`Time2:` + fmt.Sprintf("%v", this.Time2) + `,`,
		`Data:` + fmt.Sprintf("%v", this.Data) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *MyExtendable) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&MyExtendable{`,
		`Field1:` + valueToStringThetest(this.Field1) + `,`,
		`XXX_InternalExtensions:` + github_com_gogo_protobuf_proto.StringFromInternalExtension(this) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *OtherExtenable) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&OtherExtenable{`,
		`M:` + strings.Replace(this.M.String(), "MyExtendable", "MyExtendable", 1) + `,`,
		`Field2:` + valueToStringThetest(this.Field2) + `,`,
		`Field13:` + valueToStringThetest(this.Field13) + `,`,
		`XXX_InternalExtensions:` + github_com_gogo_protobuf_proto.StringFromInternalExtension(this) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *NestedDefinition) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&NestedDefinition{`,
		`Field1:` + valueToStringThetest(this.Field1) + `,`,
		`EnumField:` + valueToStringThetest(this.EnumField) + `,`,
		`NNM:` + strings.Replace(fmt.Sprintf("%v", this.NNM), "NestedDefinition_NestedMessage_NestedNestedMsg", "NestedDefinition_NestedMessage_NestedNestedMsg", 1) + `,`,
		`NM:` + strings.Replace(fmt.Sprintf("%v", this.NM), "NestedDefinition_NestedMessage", "NestedDefinition_NestedMessage", 1) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *NestedDefinition_NestedMessage) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&NestedDefinition_NestedMessage{`,
		`NestedField1:` + valueToStringThetest(this.NestedField1) + `,`,
		`NNM:` + strings.Replace(fmt.Sprintf("%v", this.NNM), "NestedDefinition_NestedMessage_NestedNestedMsg", "NestedDefinition_NestedMessage_NestedNestedMsg", 1) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *NestedDefinition_NestedMessage_NestedNestedMsg) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&NestedDefinition_NestedMessage_NestedNestedMsg{`,
		`NestedNestedField1:` + valueToStringThetest(this.NestedNestedField1) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *NestedScope) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&NestedScope{`,
		`A:` + strings.Replace(fmt.Sprintf("%v", this.A), "NestedDefinition_NestedMessage_NestedNestedMsg", "NestedDefinition_NestedMessage_NestedNestedMsg", 1) + `,`,
		`B:` + valueToStringThetest(this.B) + `,`,
		`C:` + strings.Replace(fmt.Sprintf("%v", this.C), "NestedDefinition_NestedMessage", "NestedDefinition_NestedMessage", 1) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *NinOptNativeDefault) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&NinOptNativeDefault{`,
		`Field1:` + valueToStringThetest(this.Field1) + `,`,
		`Field2:` + valueToStringThetest(this.Field2) + `,`,
		`Field3:` + valueToStringThetest(this.Field3) + `,`,
		`Field4:` + valueToStringThetest(this.Field4) + `,`,
		`Field5:` + valueToStringThetest(this.Field5) + `,`,
		`Field6:` + valueToStringThetest(this.Field6) + `,`,
		`Field7:` + valueToStringThetest(this.Field7) + `,`,
		`Field8:` + valueToStringThetest(this.Field8) + `,`,
		`Field9:` + valueToStringThetest(this.Field9) + `,`,
		`Field10:` + valueToStringThetest(this.Field10) + `,`,
		`Field11:` + valueToStringThetest(this.Field11) + `,`,
		`Field12:` + valueToStringThetest(this.Field12) + `,`,
		`Field13:` + valueToStringThetest(this.Field13) + `,`,
		`Field14:` + valueToStringThetest(this.Field14) + `,`,
		`Field15:` + valueToStringThetest(this.Field15) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *CustomContainer) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&CustomContainer{`,
		`CustomStruct:` + strings.Replace(strings.Replace(this.CustomStruct.String(), "NidOptCustom", "NidOptCustom", 1), `&`, ``, 1) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *CustomNameNidOptNative) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&CustomNameNidOptNative{`,
		`FieldA:` + fmt.Sprintf("%v", this.FieldA) + `,`,
		`FieldB:` + fmt.Sprintf("%v", this.FieldB) + `,`,
		`FieldC:` + fmt.Sprintf("%v", this.FieldC) + `,`,
		`FieldD:` + fmt.Sprintf("%v", this.FieldD) + `,`,
		`FieldE:` + fmt.Sprintf("%v", this.FieldE) + `,`,
		`FieldF:` + fmt.Sprintf("%v", this.FieldF) + `,`,
		`FieldG:` + fmt.Sprintf("%v", this.FieldG) + `,`,
		`FieldH:` + fmt.Sprintf("%v", this.FieldH) + `,`,
		`FieldI:` + fmt.Sprintf("%v", this.FieldI) + `,`,
		`FieldJ:` + fmt.Sprintf("%v", this.FieldJ) + `,`,
		`FieldK:` + fmt.Sprintf("%v", this.FieldK) + `,`,
		`FieldL:` + fmt.Sprintf("%v", this.FieldL) + `,`,
		`FieldM:` + fmt.Sprintf("%v", this.FieldM) + `,`,
		`FieldN:` + fmt.Sprintf("%v", this.FieldN) + `,`,
		`FieldO:` + fmt.Sprintf("%v", this.FieldO) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *CustomNameNinOptNative) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&CustomNameNinOptNative{`,
		`FieldA:` + valueToStringThetest(this.FieldA) + `,`,
		`FieldB:` + valueToStringThetest(this.FieldB) + `,`,
		`FieldC:` + valueToStringThetest(this.FieldC) + `,`,
		`FieldD:` + valueToStringThetest(this.FieldD) + `,`,
		`FieldE:` + valueToStringThetest(this.FieldE) + `,`,
		`FieldF:` + valueToStringThetest(this.FieldF) + `,`,
		`FieldG:` + valueToStringThetest(this.FieldG) + `,`,
		`FieldH:` + valueToStringThetest(this.FieldH) + `,`,
		`FieldI:` + valueToStringThetest(this.FieldI) + `,`,
		`FieldJ:` + valueToStringThetest(this.FieldJ) + `,`,
		`FieldK:` + valueToStringThetest(this.FieldK) + `,`,
		`FielL:` + valueToStringThetest(this.FielL) + `,`,
		`FieldM:` + valueToStringThetest(this.FieldM) + `,`,
		`FieldN:` + valueToStringThetest(this.FieldN) + `,`,
		`FieldO:` + valueToStringThetest(this.FieldO) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *CustomNameNinRepNative) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&CustomNameNinRepNative{`,
		`FieldA:` + fmt.Sprintf("%v", this.FieldA) + `,`,
		`FieldB:` + fmt.Sprintf("%v", this.FieldB) + `,`,
		`FieldC:` + fmt.Sprintf("%v", this.FieldC) + `,`,
		`FieldD:` + fmt.Sprintf("%v", this.FieldD) + `,`,
		`FieldE:` + fmt.Sprintf("%v", this.FieldE) + `,`,
		`FieldF:` + fmt.Sprintf("%v", this.FieldF) + `,`,
		`FieldG:` + fmt.Sprintf("%v", this.FieldG) + `,`,
		`FieldH:` + fmt.Sprintf("%v", this.FieldH) + `,`,
		`FieldI:` + fmt.Sprintf("%v", this.FieldI) + `,`,
		`FieldJ:` + fmt.Sprintf("%v", this.FieldJ) + `,`,
		`FieldK:` + fmt.Sprintf("%v", this.FieldK) + `,`,
		`FieldL:` + fmt.Sprintf("%v", this.FieldL) + `,`,
		`FieldM:` + fmt.Sprintf("%v", this.FieldM) + `,`,
		`FieldN:` + fmt.Sprintf("%v", this.FieldN) + `,`,
		`FieldO:` + fmt.Sprintf("%v", this.FieldO) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *CustomNameNinStruct) String() string {
	if this == nil {
		return "nil"
	}
	repeatedStringForFieldD := "[]*NinOptNative{"
	for _, f := range this.FieldD {
		repeatedStringForFieldD += strings.Replace(f.String(), "NinOptNative", "NinOptNative", 1) + ","
	}
	repeatedStringForFieldD += "}"
	s := strings.Join([]string{`&CustomNameNinStruct{`,
		`FieldA:` + valueToStringThetest(this.FieldA) + `,`,
		`FieldB:` + valueToStringThetest(this.FieldB) + `,`,
		`FieldC:` + strings.Replace(this.FieldC.String(), "NidOptNative", "NidOptNative", 1) + `,`,
		`FieldD:` + repeatedStringForFieldD + `,`,
		`FieldE:` + valueToStringThetest(this.FieldE) + `,`,
		`FieldF:` + valueToStringThetest(this.FieldF) + `,`,
		`FieldG:` + strings.Replace(this.FieldG.String(), "NidOptNative", "NidOptNative", 1) + `,`,
		`FieldH:` + valueToStringThetest(this.FieldH) + `,`,
		`FieldI:` + valueToStringThetest(this.FieldI) + `,`,
		`FieldJ:` + valueToStringThetest(this.FieldJ) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *CustomNameCustomType) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&CustomNameCustomType{`,
		`FieldA:` + valueToStringThetest(this.FieldA) + `,`,
		`FieldB:` + valueToStringThetest(this.FieldB) + `,`,
		`FieldC:` + fmt.Sprintf("%v", this.FieldC) + `,`,
		`FieldD:` + fmt.Sprintf("%v", this.FieldD) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *CustomNameNinEmbeddedStructUnion) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&CustomNameNinEmbeddedStructUnion{`,
		`NidOptNative:` + strings.Replace(this.NidOptNative.String(), "NidOptNative", "NidOptNative", 1) + `,`,
		`FieldA:` + strings.Replace(this.FieldA.String(), "NinOptNative", "NinOptNative", 1) + `,`,
		`FieldB:` + valueToStringThetest(this.FieldB) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *CustomNameEnum) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&CustomNameEnum{`,
		`FieldA:` + valueToStringThetest(this.FieldA) + `,`,
		`FieldB:` + fmt.Sprintf("%v", this.FieldB) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *NoExtensionsMap) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&NoExtensionsMap{`,
		`Field1:` + valueToStringThetest(this.Field1) + `,`,
		`XXX_extensions:` + github_com_gogo_protobuf_proto.StringFromExtensionsBytes(this.XXX_extensions) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *Unrecognized) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&Unrecognized{`,
		`Field1:` + valueToStringThetest(this.Field1) + `,`,
		`}`,
	}, "")
	return s
}
func (this *UnrecognizedWithInner) String() string {
	if this == nil {
		return "nil"
	}
	repeatedStringForEmbedded := "[]*UnrecognizedWithInner_Inner{"
	for _, f := range this.Embedded {
		repeatedStringForEmbedded += strings.Replace(fmt.Sprintf("%v", f), "UnrecognizedWithInner_Inner", "UnrecognizedWithInner_Inner", 1) + ","
	}
	repeatedStringForEmbedded += "}"
	s := strings.Join([]string{`&UnrecognizedWithInner{`,
		`Embedded:` + repeatedStringForEmbedded + `,`,
		`Field2:` + valueToStringThetest(this.Field2) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *UnrecognizedWithInner_Inner) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&UnrecognizedWithInner_Inner{`,
		`Field1:` + valueToStringThetest(this.Field1) + `,`,
		`}`,
	}, "")
	return s
}
func (this *UnrecognizedWithEmbed) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&UnrecognizedWithEmbed{`,
		`UnrecognizedWithEmbed_Embedded:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.UnrecognizedWithEmbed_Embedded), "UnrecognizedWithEmbed_Embedded", "UnrecognizedWithEmbed_Embedded", 1), `&`, ``, 1) + `,`,
		`Field2:` + valueToStringThetest(this.Field2) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *UnrecognizedWithEmbed_Embedded) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&UnrecognizedWithEmbed_Embedded{`,
		`Field1:` + valueToStringThetest(this.Field1) + `,`,
		`}`,
	}, "")
	return s
}
func (this *Node) String() string {
	if this == nil {
		return "nil"
	}
	repeatedStringForChildren := "[]*Node{"
	for _, f := range this.Children {
		repeatedStringForChildren += strings.Replace(f.String(), "Node", "Node", 1) + ","
	}
	repeatedStringForChildren += "}"
	s := strings.Join([]string{`&Node{`,
		`Label:` + valueToStringThetest(this.Label) + `,`,
		`Children:` + repeatedStringForChildren + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *NonByteCustomType) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&NonByteCustomType{`,
		`Field1:` + valueToStringThetest(this.Field1) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *NidOptNonByteCustomType) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&NidOptNonByteCustomType{`,
		`Field1:` + fmt.Sprintf("%v", this.Field1) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *NinOptNonByteCustomType) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&NinOptNonByteCustomType{`,
		`Field1:` + valueToStringThetest(this.Field1) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *NidRepNonByteCustomType) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&NidRepNonByteCustomType{`,
		`Field1:` + fmt.Sprintf("%v", this.Field1) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *NinRepNonByteCustomType) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&NinRepNonByteCustomType{`,
		`Field1:` + fmt.Sprintf("%v", this.Field1) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *ProtoType) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&ProtoType{`,
		`Field2:` + valueToStringThetest(this.Field2) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func valueToStringThetest(v interface{}) string {
	rv := reflect.ValueOf(v)
	if rv.IsNil() {
		return "nil"
	}
	pv := reflect.Indirect(rv).Interface()
	return fmt.Sprintf("*%v", pv)
}
func (this *NinOptNativeUnion) GetValue() interface{} {
	if this.Field1 != nil {
		return this.Field1
	}
	if this.Field2 != nil {
		return this.Field2
	}
	if this.Field3 != nil {
		return this.Field3
	}
	if this.Field4 != nil {
		return this.Field4
	}
	if this.Field5 != nil {
		return this.Field5
	}
	if this.Field6 != nil {
		return this.Field6
	}
	if this.Field13 != nil {
		return this.Field13
	}
	if this.Field14 != nil {
		return this.Field14
	}
	if this.Field15 != nil {
		return this.Field15
	}
	return nil
}

func (this *NinOptNativeUnion) SetValue(value interface{}) bool {
	switch vt := value.(type) {
	case *float64:
		this.Field1 = vt
	case *float32:
		this.Field2 = vt
	case *int32:
		this.Field3 = vt
	case *int64:
		this.Field4 = vt
	case *uint32:
		this.Field5 = vt
	case *uint64:
		this.Field6 = vt
	case *bool:
		this.Field13 = vt
	case *string:
		this.Field14 = vt
	case []byte:
		this.Field15 = vt
	default:
		return false
	}
	return true
}
func (this *NinOptStructUnion) GetValue() interface{} {
	if this.Field1 != nil {
		return this.Field1
	}
	if this.Field2 != nil {
		return this.Field2
	}
	if this.Field3 != nil {
		return this.Field3
	}
	if this.Field4 != nil {
		return this.Field4
	}
	if this.Field6 != nil {
		return this.Field6
	}
	if this.Field7 != nil {
		return this.Field7
	}
	if this.Field13 != nil {
		return this.Field13
	}
	if this.Field14 != nil {
		return this.Field14
	}
	if this.Field15 != nil {
		return this.Field15
	}
	return nil
}

func (this *NinOptStructUnion) SetValue(value interface{}) bool {
	switch vt := value.(type) {
	case *float64:
		this.Field1 = vt
	case *float32:
		this.Field2 = vt
	case *NidOptNative:
		this.Field3 = vt
	case *NinOptNative:
		this.Field4 = vt
	case *uint64:
		this.Field6 = vt
	case *int32:
		this.Field7 = vt
	case *bool:
		this.Field13 = vt
	case *string:
		this.Field14 = vt
	case []byte:
		this.Field15 = vt
	default:
		return false
	}
	return true
}
func (this *NinEmbeddedStructUnion) GetValue() interface{} {
	if this.NidOptNative != nil {
		return this.NidOptNative
	}
	if this.Field200 != nil {
		return this.Field200
	}
	if this.Field210 != nil {
		return this.Field210
	}
	return nil
}

func (this *NinEmbeddedStructUnion) SetValue(value interface{}) bool {
	switch vt := value.(type) {
	case *NidOptNative:
		this.NidOptNative = vt
	case *NinOptNative:
		this.Field200 = vt
	case *bool:
		this.Field210 = vt
	default:
		return false
	}
	return true
}
func (this *NinNestedStructUnion) GetValue() interface{} {
	if this.Field1 != nil {
		return this.Field1
	}
	if this.Field2 != nil {
		return this.Field2
	}
	if this.Field3 != nil {
		return this.Field3
	}
	return nil
}

func (this *NinNestedStructUnion) SetValue(value interface{}) bool {
	switch vt := value.(type) {
	case *NinOptNativeUnion:
		this.Field1 = vt
	case *NinOptStructUnion:
		this.Field2 = vt
	case *NinEmbeddedStructUnion:
		this.Field3 = vt
	default:
		this.Field1 = new(NinOptNativeUnion)
		if set := this.Field1.SetValue(value); set {
			return true
		}
		this.Field1 = nil
		this.Field2 = new(NinOptStructUnion)
		if set := this.Field2.SetValue(value); set {
			return true
		}
		this.Field2 = nil
		this.Field3 = new(NinEmbeddedStructUnion)
		if set := this.Field3.SetValue(value); set {
			return true
		}
		this.Field3 = nil
		return false
	}
	return true
}
func (this *Tree) GetValue() interface{} {
	if this.Or != nil {
		return this.Or
	}
	if this.And != nil {
		return this.And
	}
	if this.Leaf != nil {
		return this.Leaf
	}
	return nil
}

func (this *Tree) SetValue(value interface{}) bool {
	switch vt := value.(type) {
	case *OrBranch:
		this.Or = vt
	case *AndBranch:
		this.And = vt
	case *Leaf:
		this.Leaf = vt
	default:
		return false
	}
	return true
}
func (this *DeepTree) GetValue() interface{} {
	if this.Down != nil {
		return this.Down
	}
	if this.And != nil {
		return this.And
	}
	if this.Leaf != nil {
		return this.Leaf
	}
	return nil
}

func (this *DeepTree) SetValue(value interface{}) bool {
	switch vt := value.(type) {
	case *ADeepBranch:
		this.Down = vt
	case *AndDeepBranch:
		this.And = vt
	case *DeepLeaf:
		this.Leaf = vt
	default:
		return false
	}
	return true
}
func (this *CustomNameNinEmbeddedStructUnion) GetValue() interface{} {
	if this.NidOptNative != nil {
		return this.NidOptNative
	}
	if this.FieldA != nil {
		return this.FieldA
	}
	if this.FieldB != nil {
		return this.FieldB
	}
	return nil
}

func (this *CustomNameNinEmbeddedStructUnion) SetValue(value interface{}) bool {
	switch vt := value.(type) {
	case *NidOptNative:
		this.NidOptNative = vt
	case *NinOptNative:
		this.FieldA = vt
	case *bool:
		this.FieldB = vt
	default:
		return false
	}
	return true
}
func (m *NidOptNative) 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 ErrIntOverflowThetest
			}
			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: NidOptNative: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NidOptNative: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var v uint64
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			v = uint64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
			iNdEx += 8
			m.Field1 = float64(math.Float64frombits(v))
		case 2:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			var v uint32
			if (iNdEx + 4) > l {
				return io.ErrUnexpectedEOF
			}
			v = uint32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
			iNdEx += 4
			m.Field2 = float32(math.Float32frombits(v))
		case 3:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType)
			}
			m.Field3 = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.Field3 |= int32(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 4:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType)
			}
			m.Field4 = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.Field4 |= int64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 5:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType)
			}
			m.Field5 = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.Field5 |= uint32(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 6:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType)
			}
			m.Field6 = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.Field6 |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 7:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType)
			}
			var v int32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int32(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
			m.Field7 = v
		case 8:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType)
			}
			var v uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
			m.Field8 = int64(v)
		case 9:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType)
			}
			m.Field9 = 0
			if (iNdEx + 4) > l {
				return io.ErrUnexpectedEOF
			}
			m.Field9 = uint32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
			iNdEx += 4
		case 10:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType)
			}
			m.Field10 = 0
			if (iNdEx + 4) > l {
				return io.ErrUnexpectedEOF
			}
			m.Field10 = int32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
			iNdEx += 4
		case 11:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType)
			}
			m.Field11 = 0
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			m.Field11 = uint64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
			iNdEx += 8
		case 12:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType)
			}
			m.Field12 = 0
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			m.Field12 = int64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
			iNdEx += 8
		case 13:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType)
			}
			var v int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field13 = bool(v != 0)
		case 14:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				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 ErrInvalidLengthThetest
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field14 = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		case 15:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...)
			if m.Field15 == nil {
				m.Field15 = []byte{}
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *NinOptNative) 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 ErrIntOverflowThetest
			}
			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: NinOptNative: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NinOptNative: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			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.Field1 = &v2
		case 2:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			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.Field2 = &v2
		case 3:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType)
			}
			var v int32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int32(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field3 = &v
		case 4:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType)
			}
			var v int64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field4 = &v
		case 5:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType)
			}
			var v uint32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= uint32(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field5 = &v
		case 6:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType)
			}
			var v uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field6 = &v
		case 7:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType)
			}
			var v int32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int32(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
			m.Field7 = &v
		case 8:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType)
			}
			var v uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
			v2 := int64(v)
			m.Field8 = &v2
		case 9:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType)
			}
			var v uint32
			if (iNdEx + 4) > l {
				return io.ErrUnexpectedEOF
			}
			v = uint32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
			iNdEx += 4
			m.Field9 = &v
		case 10:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType)
			}
			var v int32
			if (iNdEx + 4) > l {
				return io.ErrUnexpectedEOF
			}
			v = int32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
			iNdEx += 4
			m.Field10 = &v
		case 11:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType)
			}
			var v uint64
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			v = uint64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
			iNdEx += 8
			m.Field11 = &v
		case 12:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType)
			}
			var v int64
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			v = int64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
			iNdEx += 8
			m.Field12 = &v
		case 13:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType)
			}
			var v int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			b := bool(v != 0)
			m.Field13 = &b
		case 14:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				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 ErrInvalidLengthThetest
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			s := string(dAtA[iNdEx:postIndex])
			m.Field14 = &s
			iNdEx = postIndex
		case 15:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...)
			if m.Field15 == nil {
				m.Field15 = []byte{}
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *NidRepNative) 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 ErrIntOverflowThetest
			}
			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: NidRepNative: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NidRepNative: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			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.Field1 = append(m.Field1, v2)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				elementCount = packedLen / 8
				if elementCount != 0 && len(m.Field1) == 0 {
					m.Field1 = 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.Field1 = append(m.Field1, v2)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
		case 2:
			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.Field2 = append(m.Field2, v2)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				elementCount = packedLen / 4
				if elementCount != 0 && len(m.Field2) == 0 {
					m.Field2 = 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.Field2 = append(m.Field2, v2)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
		case 3:
			if wireType == 0 {
				var v int32
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= int32(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.Field3 = append(m.Field3, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				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.Field3) == 0 {
					m.Field3 = make([]int32, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v int32
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= int32(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.Field3 = append(m.Field3, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType)
			}
		case 4:
			if wireType == 0 {
				var v int64
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= int64(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.Field4 = append(m.Field4, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				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.Field4) == 0 {
					m.Field4 = make([]int64, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v int64
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= int64(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.Field4 = append(m.Field4, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType)
			}
		case 5:
			if wireType == 0 {
				var v uint32
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= uint32(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.Field5 = append(m.Field5, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				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.Field5) == 0 {
					m.Field5 = make([]uint32, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v uint32
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= uint32(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.Field5 = append(m.Field5, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType)
			}
		case 6:
			if wireType == 0 {
				var v uint64
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= uint64(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.Field6 = append(m.Field6, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				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.Field6) == 0 {
					m.Field6 = make([]uint64, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v uint64
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= uint64(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.Field6 = append(m.Field6, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType)
			}
		case 7:
			if wireType == 0 {
				var v int32
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= int32(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
				m.Field7 = append(m.Field7, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				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.Field7) == 0 {
					m.Field7 = make([]int32, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v int32
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= int32(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
					m.Field7 = append(m.Field7, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType)
			}
		case 8:
			if wireType == 0 {
				var v uint64
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= uint64(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
				m.Field8 = append(m.Field8, int64(v))
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				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.Field8) == 0 {
					m.Field8 = make([]int64, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v uint64
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= uint64(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
					m.Field8 = append(m.Field8, int64(v))
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType)
			}
		case 9:
			if wireType == 5 {
				var v uint32
				if (iNdEx + 4) > l {
					return io.ErrUnexpectedEOF
				}
				v = uint32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
				iNdEx += 4
				m.Field9 = append(m.Field9, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				elementCount = packedLen / 4
				if elementCount != 0 && len(m.Field9) == 0 {
					m.Field9 = make([]uint32, 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
					m.Field9 = append(m.Field9, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType)
			}
		case 10:
			if wireType == 5 {
				var v int32
				if (iNdEx + 4) > l {
					return io.ErrUnexpectedEOF
				}
				v = int32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
				iNdEx += 4
				m.Field10 = append(m.Field10, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				elementCount = packedLen / 4
				if elementCount != 0 && len(m.Field10) == 0 {
					m.Field10 = make([]int32, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v int32
					if (iNdEx + 4) > l {
						return io.ErrUnexpectedEOF
					}
					v = int32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
					iNdEx += 4
					m.Field10 = append(m.Field10, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType)
			}
		case 11:
			if wireType == 1 {
				var v uint64
				if (iNdEx + 8) > l {
					return io.ErrUnexpectedEOF
				}
				v = uint64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
				iNdEx += 8
				m.Field11 = append(m.Field11, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				elementCount = packedLen / 8
				if elementCount != 0 && len(m.Field11) == 0 {
					m.Field11 = make([]uint64, 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
					m.Field11 = append(m.Field11, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType)
			}
		case 12:
			if wireType == 1 {
				var v int64
				if (iNdEx + 8) > l {
					return io.ErrUnexpectedEOF
				}
				v = int64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
				iNdEx += 8
				m.Field12 = append(m.Field12, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				elementCount = packedLen / 8
				if elementCount != 0 && len(m.Field12) == 0 {
					m.Field12 = make([]int64, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v int64
					if (iNdEx + 8) > l {
						return io.ErrUnexpectedEOF
					}
					v = int64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
					iNdEx += 8
					m.Field12 = append(m.Field12, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType)
			}
		case 13:
			if wireType == 0 {
				var v int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.Field13 = append(m.Field13, bool(v != 0))
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				elementCount = packedLen
				if elementCount != 0 && len(m.Field13) == 0 {
					m.Field13 = make([]bool, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v int
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= int(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.Field13 = append(m.Field13, bool(v != 0))
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType)
			}
		case 14:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				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 ErrInvalidLengthThetest
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field14 = append(m.Field14, string(dAtA[iNdEx:postIndex]))
			iNdEx = postIndex
		case 15:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field15 = append(m.Field15, make([]byte, postIndex-iNdEx))
			copy(m.Field15[len(m.Field15)-1], dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *NinRepNative) 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 ErrIntOverflowThetest
			}
			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: NinRepNative: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NinRepNative: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			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.Field1 = append(m.Field1, v2)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				elementCount = packedLen / 8
				if elementCount != 0 && len(m.Field1) == 0 {
					m.Field1 = 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.Field1 = append(m.Field1, v2)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
		case 2:
			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.Field2 = append(m.Field2, v2)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				elementCount = packedLen / 4
				if elementCount != 0 && len(m.Field2) == 0 {
					m.Field2 = 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.Field2 = append(m.Field2, v2)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
		case 3:
			if wireType == 0 {
				var v int32
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= int32(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.Field3 = append(m.Field3, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				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.Field3) == 0 {
					m.Field3 = make([]int32, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v int32
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= int32(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.Field3 = append(m.Field3, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType)
			}
		case 4:
			if wireType == 0 {
				var v int64
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= int64(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.Field4 = append(m.Field4, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				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.Field4) == 0 {
					m.Field4 = make([]int64, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v int64
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= int64(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.Field4 = append(m.Field4, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType)
			}
		case 5:
			if wireType == 0 {
				var v uint32
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= uint32(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.Field5 = append(m.Field5, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				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.Field5) == 0 {
					m.Field5 = make([]uint32, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v uint32
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= uint32(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.Field5 = append(m.Field5, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType)
			}
		case 6:
			if wireType == 0 {
				var v uint64
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= uint64(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.Field6 = append(m.Field6, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				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.Field6) == 0 {
					m.Field6 = make([]uint64, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v uint64
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= uint64(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.Field6 = append(m.Field6, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType)
			}
		case 7:
			if wireType == 0 {
				var v int32
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= int32(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
				m.Field7 = append(m.Field7, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				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.Field7) == 0 {
					m.Field7 = make([]int32, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v int32
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= int32(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
					m.Field7 = append(m.Field7, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType)
			}
		case 8:
			if wireType == 0 {
				var v uint64
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= uint64(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
				m.Field8 = append(m.Field8, int64(v))
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				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.Field8) == 0 {
					m.Field8 = make([]int64, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v uint64
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= uint64(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
					m.Field8 = append(m.Field8, int64(v))
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType)
			}
		case 9:
			if wireType == 5 {
				var v uint32
				if (iNdEx + 4) > l {
					return io.ErrUnexpectedEOF
				}
				v = uint32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
				iNdEx += 4
				m.Field9 = append(m.Field9, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				elementCount = packedLen / 4
				if elementCount != 0 && len(m.Field9) == 0 {
					m.Field9 = make([]uint32, 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
					m.Field9 = append(m.Field9, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType)
			}
		case 10:
			if wireType == 5 {
				var v int32
				if (iNdEx + 4) > l {
					return io.ErrUnexpectedEOF
				}
				v = int32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
				iNdEx += 4
				m.Field10 = append(m.Field10, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				elementCount = packedLen / 4
				if elementCount != 0 && len(m.Field10) == 0 {
					m.Field10 = make([]int32, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v int32
					if (iNdEx + 4) > l {
						return io.ErrUnexpectedEOF
					}
					v = int32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
					iNdEx += 4
					m.Field10 = append(m.Field10, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType)
			}
		case 11:
			if wireType == 1 {
				var v uint64
				if (iNdEx + 8) > l {
					return io.ErrUnexpectedEOF
				}
				v = uint64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
				iNdEx += 8
				m.Field11 = append(m.Field11, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				elementCount = packedLen / 8
				if elementCount != 0 && len(m.Field11) == 0 {
					m.Field11 = make([]uint64, 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
					m.Field11 = append(m.Field11, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType)
			}
		case 12:
			if wireType == 1 {
				var v int64
				if (iNdEx + 8) > l {
					return io.ErrUnexpectedEOF
				}
				v = int64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
				iNdEx += 8
				m.Field12 = append(m.Field12, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				elementCount = packedLen / 8
				if elementCount != 0 && len(m.Field12) == 0 {
					m.Field12 = make([]int64, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v int64
					if (iNdEx + 8) > l {
						return io.ErrUnexpectedEOF
					}
					v = int64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
					iNdEx += 8
					m.Field12 = append(m.Field12, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType)
			}
		case 13:
			if wireType == 0 {
				var v int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.Field13 = append(m.Field13, bool(v != 0))
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				elementCount = packedLen
				if elementCount != 0 && len(m.Field13) == 0 {
					m.Field13 = make([]bool, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v int
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= int(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.Field13 = append(m.Field13, bool(v != 0))
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType)
			}
		case 14:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				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 ErrInvalidLengthThetest
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field14 = append(m.Field14, string(dAtA[iNdEx:postIndex]))
			iNdEx = postIndex
		case 15:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field15 = append(m.Field15, make([]byte, postIndex-iNdEx))
			copy(m.Field15[len(m.Field15)-1], dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *NidRepPackedNative) 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 ErrIntOverflowThetest
			}
			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: NidRepPackedNative: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NidRepPackedNative: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			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.Field1 = append(m.Field1, v2)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				elementCount = packedLen / 8
				if elementCount != 0 && len(m.Field1) == 0 {
					m.Field1 = 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.Field1 = append(m.Field1, v2)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
		case 2:
			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.Field2 = append(m.Field2, v2)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				elementCount = packedLen / 4
				if elementCount != 0 && len(m.Field2) == 0 {
					m.Field2 = 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.Field2 = append(m.Field2, v2)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
		case 3:
			if wireType == 0 {
				var v int32
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= int32(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.Field3 = append(m.Field3, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				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.Field3) == 0 {
					m.Field3 = make([]int32, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v int32
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= int32(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.Field3 = append(m.Field3, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType)
			}
		case 4:
			if wireType == 0 {
				var v int64
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= int64(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.Field4 = append(m.Field4, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				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.Field4) == 0 {
					m.Field4 = make([]int64, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v int64
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= int64(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.Field4 = append(m.Field4, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType)
			}
		case 5:
			if wireType == 0 {
				var v uint32
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= uint32(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.Field5 = append(m.Field5, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				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.Field5) == 0 {
					m.Field5 = make([]uint32, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v uint32
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= uint32(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.Field5 = append(m.Field5, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType)
			}
		case 6:
			if wireType == 0 {
				var v uint64
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= uint64(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.Field6 = append(m.Field6, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				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.Field6) == 0 {
					m.Field6 = make([]uint64, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v uint64
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= uint64(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.Field6 = append(m.Field6, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType)
			}
		case 7:
			if wireType == 0 {
				var v int32
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= int32(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
				m.Field7 = append(m.Field7, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				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.Field7) == 0 {
					m.Field7 = make([]int32, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v int32
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= int32(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
					m.Field7 = append(m.Field7, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType)
			}
		case 8:
			if wireType == 0 {
				var v uint64
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= uint64(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
				m.Field8 = append(m.Field8, int64(v))
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				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.Field8) == 0 {
					m.Field8 = make([]int64, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v uint64
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= uint64(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
					m.Field8 = append(m.Field8, int64(v))
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType)
			}
		case 9:
			if wireType == 5 {
				var v uint32
				if (iNdEx + 4) > l {
					return io.ErrUnexpectedEOF
				}
				v = uint32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
				iNdEx += 4
				m.Field9 = append(m.Field9, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				elementCount = packedLen / 4
				if elementCount != 0 && len(m.Field9) == 0 {
					m.Field9 = make([]uint32, 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
					m.Field9 = append(m.Field9, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType)
			}
		case 10:
			if wireType == 5 {
				var v int32
				if (iNdEx + 4) > l {
					return io.ErrUnexpectedEOF
				}
				v = int32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
				iNdEx += 4
				m.Field10 = append(m.Field10, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				elementCount = packedLen / 4
				if elementCount != 0 && len(m.Field10) == 0 {
					m.Field10 = make([]int32, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v int32
					if (iNdEx + 4) > l {
						return io.ErrUnexpectedEOF
					}
					v = int32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
					iNdEx += 4
					m.Field10 = append(m.Field10, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType)
			}
		case 11:
			if wireType == 1 {
				var v uint64
				if (iNdEx + 8) > l {
					return io.ErrUnexpectedEOF
				}
				v = uint64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
				iNdEx += 8
				m.Field11 = append(m.Field11, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				elementCount = packedLen / 8
				if elementCount != 0 && len(m.Field11) == 0 {
					m.Field11 = make([]uint64, 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
					m.Field11 = append(m.Field11, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType)
			}
		case 12:
			if wireType == 1 {
				var v int64
				if (iNdEx + 8) > l {
					return io.ErrUnexpectedEOF
				}
				v = int64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
				iNdEx += 8
				m.Field12 = append(m.Field12, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				elementCount = packedLen / 8
				if elementCount != 0 && len(m.Field12) == 0 {
					m.Field12 = make([]int64, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v int64
					if (iNdEx + 8) > l {
						return io.ErrUnexpectedEOF
					}
					v = int64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
					iNdEx += 8
					m.Field12 = append(m.Field12, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType)
			}
		case 13:
			if wireType == 0 {
				var v int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.Field13 = append(m.Field13, bool(v != 0))
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				elementCount = packedLen
				if elementCount != 0 && len(m.Field13) == 0 {
					m.Field13 = make([]bool, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v int
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= int(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.Field13 = append(m.Field13, bool(v != 0))
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType)
			}
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *NinRepPackedNative) 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 ErrIntOverflowThetest
			}
			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: NinRepPackedNative: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NinRepPackedNative: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			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.Field1 = append(m.Field1, v2)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				elementCount = packedLen / 8
				if elementCount != 0 && len(m.Field1) == 0 {
					m.Field1 = 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.Field1 = append(m.Field1, v2)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
		case 2:
			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.Field2 = append(m.Field2, v2)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				elementCount = packedLen / 4
				if elementCount != 0 && len(m.Field2) == 0 {
					m.Field2 = 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.Field2 = append(m.Field2, v2)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
		case 3:
			if wireType == 0 {
				var v int32
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= int32(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.Field3 = append(m.Field3, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				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.Field3) == 0 {
					m.Field3 = make([]int32, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v int32
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= int32(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.Field3 = append(m.Field3, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType)
			}
		case 4:
			if wireType == 0 {
				var v int64
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= int64(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.Field4 = append(m.Field4, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				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.Field4) == 0 {
					m.Field4 = make([]int64, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v int64
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= int64(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.Field4 = append(m.Field4, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType)
			}
		case 5:
			if wireType == 0 {
				var v uint32
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= uint32(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.Field5 = append(m.Field5, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				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.Field5) == 0 {
					m.Field5 = make([]uint32, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v uint32
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= uint32(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.Field5 = append(m.Field5, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType)
			}
		case 6:
			if wireType == 0 {
				var v uint64
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= uint64(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.Field6 = append(m.Field6, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				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.Field6) == 0 {
					m.Field6 = make([]uint64, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v uint64
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= uint64(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.Field6 = append(m.Field6, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType)
			}
		case 7:
			if wireType == 0 {
				var v int32
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= int32(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
				m.Field7 = append(m.Field7, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				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.Field7) == 0 {
					m.Field7 = make([]int32, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v int32
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= int32(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
					m.Field7 = append(m.Field7, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType)
			}
		case 8:
			if wireType == 0 {
				var v uint64
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= uint64(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
				m.Field8 = append(m.Field8, int64(v))
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				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.Field8) == 0 {
					m.Field8 = make([]int64, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v uint64
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= uint64(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
					m.Field8 = append(m.Field8, int64(v))
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType)
			}
		case 9:
			if wireType == 5 {
				var v uint32
				if (iNdEx + 4) > l {
					return io.ErrUnexpectedEOF
				}
				v = uint32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
				iNdEx += 4
				m.Field9 = append(m.Field9, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				elementCount = packedLen / 4
				if elementCount != 0 && len(m.Field9) == 0 {
					m.Field9 = make([]uint32, 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
					m.Field9 = append(m.Field9, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType)
			}
		case 10:
			if wireType == 5 {
				var v int32
				if (iNdEx + 4) > l {
					return io.ErrUnexpectedEOF
				}
				v = int32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
				iNdEx += 4
				m.Field10 = append(m.Field10, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				elementCount = packedLen / 4
				if elementCount != 0 && len(m.Field10) == 0 {
					m.Field10 = make([]int32, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v int32
					if (iNdEx + 4) > l {
						return io.ErrUnexpectedEOF
					}
					v = int32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
					iNdEx += 4
					m.Field10 = append(m.Field10, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType)
			}
		case 11:
			if wireType == 1 {
				var v uint64
				if (iNdEx + 8) > l {
					return io.ErrUnexpectedEOF
				}
				v = uint64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
				iNdEx += 8
				m.Field11 = append(m.Field11, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				elementCount = packedLen / 8
				if elementCount != 0 && len(m.Field11) == 0 {
					m.Field11 = make([]uint64, 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
					m.Field11 = append(m.Field11, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType)
			}
		case 12:
			if wireType == 1 {
				var v int64
				if (iNdEx + 8) > l {
					return io.ErrUnexpectedEOF
				}
				v = int64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
				iNdEx += 8
				m.Field12 = append(m.Field12, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				elementCount = packedLen / 8
				if elementCount != 0 && len(m.Field12) == 0 {
					m.Field12 = make([]int64, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v int64
					if (iNdEx + 8) > l {
						return io.ErrUnexpectedEOF
					}
					v = int64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
					iNdEx += 8
					m.Field12 = append(m.Field12, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType)
			}
		case 13:
			if wireType == 0 {
				var v int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.Field13 = append(m.Field13, bool(v != 0))
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				elementCount = packedLen
				if elementCount != 0 && len(m.Field13) == 0 {
					m.Field13 = make([]bool, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v int
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= int(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.Field13 = append(m.Field13, bool(v != 0))
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType)
			}
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *NidOptStruct) 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 ErrIntOverflowThetest
			}
			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: NidOptStruct: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NidOptStruct: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var v uint64
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			v = uint64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
			iNdEx += 8
			m.Field1 = float64(math.Float64frombits(v))
		case 2:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			var v uint32
			if (iNdEx + 4) > l {
				return io.ErrUnexpectedEOF
			}
			v = uint32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
			iNdEx += 4
			m.Field2 = float32(math.Float32frombits(v))
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Field3.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 4:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Field4.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 6:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType)
			}
			m.Field6 = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.Field6 |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 7:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType)
			}
			var v int32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int32(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
			m.Field7 = v
		case 8:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Field8.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 13:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType)
			}
			var v int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field13 = bool(v != 0)
		case 14:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				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 ErrInvalidLengthThetest
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field14 = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		case 15:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...)
			if m.Field15 == nil {
				m.Field15 = []byte{}
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *NinOptStruct) 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 ErrIntOverflowThetest
			}
			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: NinOptStruct: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NinOptStruct: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			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.Field1 = &v2
		case 2:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			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.Field2 = &v2
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.Field3 == nil {
				m.Field3 = &NidOptNative{}
			}
			if err := m.Field3.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 4:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.Field4 == nil {
				m.Field4 = &NinOptNative{}
			}
			if err := m.Field4.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 6:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType)
			}
			var v uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field6 = &v
		case 7:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType)
			}
			var v int32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int32(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
			m.Field7 = &v
		case 8:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.Field8 == nil {
				m.Field8 = &NidOptNative{}
			}
			if err := m.Field8.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 13:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType)
			}
			var v int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			b := bool(v != 0)
			m.Field13 = &b
		case 14:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				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 ErrInvalidLengthThetest
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			s := string(dAtA[iNdEx:postIndex])
			m.Field14 = &s
			iNdEx = postIndex
		case 15:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...)
			if m.Field15 == nil {
				m.Field15 = []byte{}
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *NidRepStruct) 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 ErrIntOverflowThetest
			}
			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: NidRepStruct: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NidRepStruct: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			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.Field1 = append(m.Field1, v2)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				elementCount = packedLen / 8
				if elementCount != 0 && len(m.Field1) == 0 {
					m.Field1 = 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.Field1 = append(m.Field1, v2)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
		case 2:
			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.Field2 = append(m.Field2, v2)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				elementCount = packedLen / 4
				if elementCount != 0 && len(m.Field2) == 0 {
					m.Field2 = 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.Field2 = append(m.Field2, v2)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field3 = append(m.Field3, NidOptNative{})
			if err := m.Field3[len(m.Field3)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 4:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field4 = append(m.Field4, NinOptNative{})
			if err := m.Field4[len(m.Field4)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 6:
			if wireType == 0 {
				var v uint64
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= uint64(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.Field6 = append(m.Field6, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				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.Field6) == 0 {
					m.Field6 = make([]uint64, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v uint64
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= uint64(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.Field6 = append(m.Field6, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType)
			}
		case 7:
			if wireType == 0 {
				var v int32
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= int32(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
				m.Field7 = append(m.Field7, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				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.Field7) == 0 {
					m.Field7 = make([]int32, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v int32
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= int32(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
					m.Field7 = append(m.Field7, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType)
			}
		case 8:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field8 = append(m.Field8, NidOptNative{})
			if err := m.Field8[len(m.Field8)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 13:
			if wireType == 0 {
				var v int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.Field13 = append(m.Field13, bool(v != 0))
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				elementCount = packedLen
				if elementCount != 0 && len(m.Field13) == 0 {
					m.Field13 = make([]bool, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v int
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= int(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.Field13 = append(m.Field13, bool(v != 0))
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType)
			}
		case 14:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				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 ErrInvalidLengthThetest
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field14 = append(m.Field14, string(dAtA[iNdEx:postIndex]))
			iNdEx = postIndex
		case 15:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field15 = append(m.Field15, make([]byte, postIndex-iNdEx))
			copy(m.Field15[len(m.Field15)-1], dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *NinRepStruct) 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 ErrIntOverflowThetest
			}
			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: NinRepStruct: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NinRepStruct: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			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.Field1 = append(m.Field1, v2)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				elementCount = packedLen / 8
				if elementCount != 0 && len(m.Field1) == 0 {
					m.Field1 = 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.Field1 = append(m.Field1, v2)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
		case 2:
			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.Field2 = append(m.Field2, v2)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				elementCount = packedLen / 4
				if elementCount != 0 && len(m.Field2) == 0 {
					m.Field2 = 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.Field2 = append(m.Field2, v2)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field3 = append(m.Field3, &NidOptNative{})
			if err := m.Field3[len(m.Field3)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 4:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field4 = append(m.Field4, &NinOptNative{})
			if err := m.Field4[len(m.Field4)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 6:
			if wireType == 0 {
				var v uint64
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= uint64(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.Field6 = append(m.Field6, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				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.Field6) == 0 {
					m.Field6 = make([]uint64, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v uint64
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= uint64(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.Field6 = append(m.Field6, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType)
			}
		case 7:
			if wireType == 0 {
				var v int32
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= int32(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
				m.Field7 = append(m.Field7, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				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.Field7) == 0 {
					m.Field7 = make([]int32, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v int32
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= int32(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
					m.Field7 = append(m.Field7, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType)
			}
		case 8:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field8 = append(m.Field8, &NidOptNative{})
			if err := m.Field8[len(m.Field8)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 13:
			if wireType == 0 {
				var v int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.Field13 = append(m.Field13, bool(v != 0))
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				elementCount = packedLen
				if elementCount != 0 && len(m.Field13) == 0 {
					m.Field13 = make([]bool, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v int
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= int(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.Field13 = append(m.Field13, bool(v != 0))
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType)
			}
		case 14:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				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 ErrInvalidLengthThetest
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field14 = append(m.Field14, string(dAtA[iNdEx:postIndex]))
			iNdEx = postIndex
		case 15:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field15 = append(m.Field15, make([]byte, postIndex-iNdEx))
			copy(m.Field15[len(m.Field15)-1], dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *NidEmbeddedStruct) 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 ErrIntOverflowThetest
			}
			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: NidEmbeddedStruct: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NidEmbeddedStruct: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field NidOptNative", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.NidOptNative == nil {
				m.NidOptNative = &NidOptNative{}
			}
			if err := m.NidOptNative.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 200:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field200", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Field200.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 210:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field210", wireType)
			}
			var v int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field210 = bool(v != 0)
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *NinEmbeddedStruct) 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 ErrIntOverflowThetest
			}
			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: NinEmbeddedStruct: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NinEmbeddedStruct: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field NidOptNative", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.NidOptNative == nil {
				m.NidOptNative = &NidOptNative{}
			}
			if err := m.NidOptNative.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 200:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field200", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.Field200 == nil {
				m.Field200 = &NidOptNative{}
			}
			if err := m.Field200.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 210:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field210", wireType)
			}
			var v int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			b := bool(v != 0)
			m.Field210 = &b
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *NidNestedStruct) 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 ErrIntOverflowThetest
			}
			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: NidNestedStruct: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NidNestedStruct: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Field1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field2 = append(m.Field2, NidRepStruct{})
			if err := m.Field2[len(m.Field2)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *NinNestedStruct) 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 ErrIntOverflowThetest
			}
			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: NinNestedStruct: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NinNestedStruct: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.Field1 == nil {
				m.Field1 = &NinOptStruct{}
			}
			if err := m.Field1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field2 = append(m.Field2, &NinRepStruct{})
			if err := m.Field2[len(m.Field2)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *NidOptCustom) 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 ErrIntOverflowThetest
			}
			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: NidOptCustom: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NidOptCustom: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Id.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *CustomDash) 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 ErrIntOverflowThetest
			}
			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: CustomDash: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: CustomDash: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			var v github_com_gogo_protobuf_test_custom_dash_type.Bytes
			m.Value = &v
			if err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *NinOptCustom) 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 ErrIntOverflowThetest
			}
			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: NinOptCustom: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NinOptCustom: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			var v Uuid
			m.Id = &v
			if err := m.Id.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			var v github_com_gogo_protobuf_test_custom.Uint128
			m.Value = &v
			if err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *NidRepCustom) 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 ErrIntOverflowThetest
			}
			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: NidRepCustom: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NidRepCustom: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			var v Uuid
			m.Id = append(m.Id, v)
			if err := m.Id[len(m.Id)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			var v github_com_gogo_protobuf_test_custom.Uint128
			m.Value = append(m.Value, v)
			if err := m.Value[len(m.Value)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *NinRepCustom) 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 ErrIntOverflowThetest
			}
			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: NinRepCustom: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NinRepCustom: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			var v Uuid
			m.Id = append(m.Id, v)
			if err := m.Id[len(m.Id)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			var v github_com_gogo_protobuf_test_custom.Uint128
			m.Value = append(m.Value, v)
			if err := m.Value[len(m.Value)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *NinOptNativeUnion) 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 ErrIntOverflowThetest
			}
			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: NinOptNativeUnion: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NinOptNativeUnion: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			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.Field1 = &v2
		case 2:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			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.Field2 = &v2
		case 3:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType)
			}
			var v int32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int32(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field3 = &v
		case 4:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType)
			}
			var v int64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field4 = &v
		case 5:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType)
			}
			var v uint32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= uint32(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field5 = &v
		case 6:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType)
			}
			var v uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field6 = &v
		case 13:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType)
			}
			var v int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			b := bool(v != 0)
			m.Field13 = &b
		case 14:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				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 ErrInvalidLengthThetest
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			s := string(dAtA[iNdEx:postIndex])
			m.Field14 = &s
			iNdEx = postIndex
		case 15:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...)
			if m.Field15 == nil {
				m.Field15 = []byte{}
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *NinOptStructUnion) 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 ErrIntOverflowThetest
			}
			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: NinOptStructUnion: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NinOptStructUnion: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			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.Field1 = &v2
		case 2:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			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.Field2 = &v2
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.Field3 == nil {
				m.Field3 = &NidOptNative{}
			}
			if err := m.Field3.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 4:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.Field4 == nil {
				m.Field4 = &NinOptNative{}
			}
			if err := m.Field4.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 6:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType)
			}
			var v uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field6 = &v
		case 7:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType)
			}
			var v int32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int32(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
			m.Field7 = &v
		case 13:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType)
			}
			var v int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			b := bool(v != 0)
			m.Field13 = &b
		case 14:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				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 ErrInvalidLengthThetest
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			s := string(dAtA[iNdEx:postIndex])
			m.Field14 = &s
			iNdEx = postIndex
		case 15:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...)
			if m.Field15 == nil {
				m.Field15 = []byte{}
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *NinEmbeddedStructUnion) 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 ErrIntOverflowThetest
			}
			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: NinEmbeddedStructUnion: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NinEmbeddedStructUnion: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field NidOptNative", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.NidOptNative == nil {
				m.NidOptNative = &NidOptNative{}
			}
			if err := m.NidOptNative.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 200:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field200", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.Field200 == nil {
				m.Field200 = &NinOptNative{}
			}
			if err := m.Field200.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 210:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field210", wireType)
			}
			var v int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			b := bool(v != 0)
			m.Field210 = &b
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *NinNestedStructUnion) 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 ErrIntOverflowThetest
			}
			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: NinNestedStructUnion: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NinNestedStructUnion: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.Field1 == nil {
				m.Field1 = &NinOptNativeUnion{}
			}
			if err := m.Field1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.Field2 == nil {
				m.Field2 = &NinOptStructUnion{}
			}
			if err := m.Field2.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.Field3 == nil {
				m.Field3 = &NinEmbeddedStructUnion{}
			}
			if err := m.Field3.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *Tree) 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 ErrIntOverflowThetest
			}
			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: Tree: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: Tree: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Or", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.Or == nil {
				m.Or = &OrBranch{}
			}
			if err := m.Or.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field And", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.And == nil {
				m.And = &AndBranch{}
			}
			if err := m.And.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Leaf", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.Leaf == nil {
				m.Leaf = &Leaf{}
			}
			if err := m.Leaf.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *OrBranch) 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 ErrIntOverflowThetest
			}
			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: OrBranch: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: OrBranch: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Left", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Left.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Right", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Right.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *AndBranch) 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 ErrIntOverflowThetest
			}
			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: AndBranch: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: AndBranch: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Left", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Left.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Right", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Right.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *Leaf) 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 ErrIntOverflowThetest
			}
			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: Leaf: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: Leaf: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
			}
			m.Value = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.Value |= int64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field StrValue", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				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 ErrInvalidLengthThetest
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.StrValue = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *DeepTree) 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 ErrIntOverflowThetest
			}
			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: DeepTree: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: DeepTree: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Down", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.Down == nil {
				m.Down = &ADeepBranch{}
			}
			if err := m.Down.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field And", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.And == nil {
				m.And = &AndDeepBranch{}
			}
			if err := m.And.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Leaf", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.Leaf == nil {
				m.Leaf = &DeepLeaf{}
			}
			if err := m.Leaf.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *ADeepBranch) 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 ErrIntOverflowThetest
			}
			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: ADeepBranch: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: ADeepBranch: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Down", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Down.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *AndDeepBranch) 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 ErrIntOverflowThetest
			}
			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: AndDeepBranch: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: AndDeepBranch: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Left", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Left.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Right", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Right.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *DeepLeaf) 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 ErrIntOverflowThetest
			}
			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: DeepLeaf: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: DeepLeaf: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Tree", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Tree.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *Nil) 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 ErrIntOverflowThetest
			}
			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: Nil: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: Nil: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *NidOptEnum) 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 ErrIntOverflowThetest
			}
			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: NidOptEnum: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NidOptEnum: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			m.Field1 = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.Field1 |= TheTestEnum(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *NinOptEnum) 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 ErrIntOverflowThetest
			}
			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: NinOptEnum: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NinOptEnum: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var v TheTestEnum
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= TheTestEnum(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field1 = &v
		case 2:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			var v YetAnotherTestEnum
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= YetAnotherTestEnum(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field2 = &v
		case 3:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType)
			}
			var v YetYetAnotherTestEnum
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= YetYetAnotherTestEnum(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field3 = &v
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *NidRepEnum) 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 ErrIntOverflowThetest
			}
			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: NidRepEnum: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NidRepEnum: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType == 0 {
				var v TheTestEnum
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= TheTestEnum(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.Field1 = append(m.Field1, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				if elementCount != 0 && len(m.Field1) == 0 {
					m.Field1 = make([]TheTestEnum, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v TheTestEnum
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= TheTestEnum(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.Field1 = append(m.Field1, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
		case 2:
			if wireType == 0 {
				var v YetAnotherTestEnum
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= YetAnotherTestEnum(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.Field2 = append(m.Field2, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				if elementCount != 0 && len(m.Field2) == 0 {
					m.Field2 = make([]YetAnotherTestEnum, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v YetAnotherTestEnum
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= YetAnotherTestEnum(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.Field2 = append(m.Field2, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
		case 3:
			if wireType == 0 {
				var v YetYetAnotherTestEnum
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= YetYetAnotherTestEnum(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.Field3 = append(m.Field3, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				if elementCount != 0 && len(m.Field3) == 0 {
					m.Field3 = make([]YetYetAnotherTestEnum, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v YetYetAnotherTestEnum
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= YetYetAnotherTestEnum(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.Field3 = append(m.Field3, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType)
			}
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *NinRepEnum) 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 ErrIntOverflowThetest
			}
			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: NinRepEnum: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NinRepEnum: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType == 0 {
				var v TheTestEnum
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= TheTestEnum(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.Field1 = append(m.Field1, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				if elementCount != 0 && len(m.Field1) == 0 {
					m.Field1 = make([]TheTestEnum, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v TheTestEnum
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= TheTestEnum(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.Field1 = append(m.Field1, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
		case 2:
			if wireType == 0 {
				var v YetAnotherTestEnum
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= YetAnotherTestEnum(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.Field2 = append(m.Field2, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				if elementCount != 0 && len(m.Field2) == 0 {
					m.Field2 = make([]YetAnotherTestEnum, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v YetAnotherTestEnum
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= YetAnotherTestEnum(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.Field2 = append(m.Field2, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
		case 3:
			if wireType == 0 {
				var v YetYetAnotherTestEnum
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= YetYetAnotherTestEnum(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.Field3 = append(m.Field3, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				if elementCount != 0 && len(m.Field3) == 0 {
					m.Field3 = make([]YetYetAnotherTestEnum, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v YetYetAnotherTestEnum
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= YetYetAnotherTestEnum(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.Field3 = append(m.Field3, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType)
			}
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *NinOptEnumDefault) 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 ErrIntOverflowThetest
			}
			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: NinOptEnumDefault: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NinOptEnumDefault: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var v TheTestEnum
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= TheTestEnum(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field1 = &v
		case 2:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			var v YetAnotherTestEnum
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= YetAnotherTestEnum(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field2 = &v
		case 3:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType)
			}
			var v YetYetAnotherTestEnum
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= YetYetAnotherTestEnum(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field3 = &v
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *AnotherNinOptEnum) 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 ErrIntOverflowThetest
			}
			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: AnotherNinOptEnum: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: AnotherNinOptEnum: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var v AnotherTestEnum
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= AnotherTestEnum(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field1 = &v
		case 2:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			var v YetAnotherTestEnum
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= YetAnotherTestEnum(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field2 = &v
		case 3:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType)
			}
			var v YetYetAnotherTestEnum
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= YetYetAnotherTestEnum(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field3 = &v
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *AnotherNinOptEnumDefault) 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 ErrIntOverflowThetest
			}
			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: AnotherNinOptEnumDefault: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: AnotherNinOptEnumDefault: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var v AnotherTestEnum
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= AnotherTestEnum(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field1 = &v
		case 2:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			var v YetAnotherTestEnum
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= YetAnotherTestEnum(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field2 = &v
		case 3:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType)
			}
			var v YetYetAnotherTestEnum
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= YetYetAnotherTestEnum(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field3 = &v
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *Timer) 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 ErrIntOverflowThetest
			}
			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: Timer: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: Timer: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Time1", wireType)
			}
			m.Time1 = 0
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			m.Time1 = int64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
			iNdEx += 8
		case 2:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Time2", wireType)
			}
			m.Time2 = 0
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			m.Time2 = int64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
			iNdEx += 8
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...)
			if m.Data == nil {
				m.Data = []byte{}
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *MyExtendable) 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 ErrIntOverflowThetest
			}
			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: MyExtendable: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: MyExtendable: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var v int64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field1 = &v
		default:
			if (fieldNum >= 100) && (fieldNum < 200) {
				var sizeOfWire int
				for {
					sizeOfWire++
					wire >>= 7
					if wire == 0 {
						break
					}
				}
				iNdEx -= sizeOfWire
				skippy, err := skipThetest(dAtA[iNdEx:])
				if err != nil {
					return err
				}
				if skippy < 0 {
					return ErrInvalidLengthThetest
				}
				if (iNdEx + skippy) < 0 {
					return ErrInvalidLengthThetest
				}
				if (iNdEx + skippy) > l {
					return io.ErrUnexpectedEOF
				}
				github_com_gogo_protobuf_proto.AppendExtension(m, int32(fieldNum), dAtA[iNdEx:iNdEx+skippy])
				iNdEx += skippy
			} else {
				iNdEx = preIndex
				skippy, err := skipThetest(dAtA[iNdEx:])
				if err != nil {
					return err
				}
				if skippy < 0 {
					return ErrInvalidLengthThetest
				}
				if (iNdEx + skippy) < 0 {
					return ErrInvalidLengthThetest
				}
				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 *OtherExtenable) 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 ErrIntOverflowThetest
			}
			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: OtherExtenable: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: OtherExtenable: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field M", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.M == nil {
				m.M = &MyExtendable{}
			}
			if err := m.M.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			var v int64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field2 = &v
		case 13:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType)
			}
			var v int64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field13 = &v
		default:
			if ((fieldNum >= 14) && (fieldNum < 17)) || ((fieldNum >= 10) && (fieldNum < 13)) {
				var sizeOfWire int
				for {
					sizeOfWire++
					wire >>= 7
					if wire == 0 {
						break
					}
				}
				iNdEx -= sizeOfWire
				skippy, err := skipThetest(dAtA[iNdEx:])
				if err != nil {
					return err
				}
				if skippy < 0 {
					return ErrInvalidLengthThetest
				}
				if (iNdEx + skippy) < 0 {
					return ErrInvalidLengthThetest
				}
				if (iNdEx + skippy) > l {
					return io.ErrUnexpectedEOF
				}
				github_com_gogo_protobuf_proto.AppendExtension(m, int32(fieldNum), dAtA[iNdEx:iNdEx+skippy])
				iNdEx += skippy
			} else {
				iNdEx = preIndex
				skippy, err := skipThetest(dAtA[iNdEx:])
				if err != nil {
					return err
				}
				if skippy < 0 {
					return ErrInvalidLengthThetest
				}
				if (iNdEx + skippy) < 0 {
					return ErrInvalidLengthThetest
				}
				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 *NestedDefinition) 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 ErrIntOverflowThetest
			}
			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: NestedDefinition: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NestedDefinition: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var v int64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field1 = &v
		case 2:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field EnumField", wireType)
			}
			var v NestedDefinition_NestedEnum
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= NestedDefinition_NestedEnum(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.EnumField = &v
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field NNM", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.NNM == nil {
				m.NNM = &NestedDefinition_NestedMessage_NestedNestedMsg{}
			}
			if err := m.NNM.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 4:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field NM", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.NM == nil {
				m.NM = &NestedDefinition_NestedMessage{}
			}
			if err := m.NM.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *NestedDefinition_NestedMessage) 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 ErrIntOverflowThetest
			}
			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: NestedMessage: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NestedMessage: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field NestedField1", wireType)
			}
			var v uint64
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			v = uint64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
			iNdEx += 8
			m.NestedField1 = &v
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field NNM", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.NNM == nil {
				m.NNM = &NestedDefinition_NestedMessage_NestedNestedMsg{}
			}
			if err := m.NNM.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *NestedDefinition_NestedMessage_NestedNestedMsg) 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 ErrIntOverflowThetest
			}
			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: NestedNestedMsg: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NestedNestedMsg: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 10:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field NestedNestedField1", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				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 ErrInvalidLengthThetest
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			s := string(dAtA[iNdEx:postIndex])
			m.NestedNestedField1 = &s
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *NestedScope) 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 ErrIntOverflowThetest
			}
			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: NestedScope: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NestedScope: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field A", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.A == nil {
				m.A = &NestedDefinition_NestedMessage_NestedNestedMsg{}
			}
			if err := m.A.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field B", wireType)
			}
			var v NestedDefinition_NestedEnum
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= NestedDefinition_NestedEnum(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.B = &v
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field C", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.C == nil {
				m.C = &NestedDefinition_NestedMessage{}
			}
			if err := m.C.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *NinOptNativeDefault) 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 ErrIntOverflowThetest
			}
			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: NinOptNativeDefault: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NinOptNativeDefault: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			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.Field1 = &v2
		case 2:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			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.Field2 = &v2
		case 3:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType)
			}
			var v int32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int32(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field3 = &v
		case 4:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType)
			}
			var v int64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field4 = &v
		case 5:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType)
			}
			var v uint32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= uint32(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field5 = &v
		case 6:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType)
			}
			var v uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field6 = &v
		case 7:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType)
			}
			var v int32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int32(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
			m.Field7 = &v
		case 8:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType)
			}
			var v uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
			v2 := int64(v)
			m.Field8 = &v2
		case 9:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType)
			}
			var v uint32
			if (iNdEx + 4) > l {
				return io.ErrUnexpectedEOF
			}
			v = uint32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
			iNdEx += 4
			m.Field9 = &v
		case 10:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType)
			}
			var v int32
			if (iNdEx + 4) > l {
				return io.ErrUnexpectedEOF
			}
			v = int32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
			iNdEx += 4
			m.Field10 = &v
		case 11:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType)
			}
			var v uint64
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			v = uint64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
			iNdEx += 8
			m.Field11 = &v
		case 12:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType)
			}
			var v int64
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			v = int64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
			iNdEx += 8
			m.Field12 = &v
		case 13:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType)
			}
			var v int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			b := bool(v != 0)
			m.Field13 = &b
		case 14:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				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 ErrInvalidLengthThetest
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			s := string(dAtA[iNdEx:postIndex])
			m.Field14 = &s
			iNdEx = postIndex
		case 15:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...)
			if m.Field15 == nil {
				m.Field15 = []byte{}
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *CustomContainer) 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 ErrIntOverflowThetest
			}
			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: CustomContainer: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: CustomContainer: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field CustomStruct", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.CustomStruct.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *CustomNameNidOptNative) 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 ErrIntOverflowThetest
			}
			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: CustomNameNidOptNative: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: CustomNameNidOptNative: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldA", wireType)
			}
			var v uint64
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			v = uint64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
			iNdEx += 8
			m.FieldA = float64(math.Float64frombits(v))
		case 2:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldB", wireType)
			}
			var v uint32
			if (iNdEx + 4) > l {
				return io.ErrUnexpectedEOF
			}
			v = uint32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
			iNdEx += 4
			m.FieldB = float32(math.Float32frombits(v))
		case 3:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldC", wireType)
			}
			m.FieldC = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.FieldC |= int32(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 4:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldD", wireType)
			}
			m.FieldD = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.FieldD |= int64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 5:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldE", wireType)
			}
			m.FieldE = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.FieldE |= uint32(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 6:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldF", wireType)
			}
			m.FieldF = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.FieldF |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 7:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldG", wireType)
			}
			var v int32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int32(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
			m.FieldG = v
		case 8:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldH", wireType)
			}
			var v uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
			m.FieldH = int64(v)
		case 9:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldI", wireType)
			}
			m.FieldI = 0
			if (iNdEx + 4) > l {
				return io.ErrUnexpectedEOF
			}
			m.FieldI = uint32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
			iNdEx += 4
		case 10:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldJ", wireType)
			}
			m.FieldJ = 0
			if (iNdEx + 4) > l {
				return io.ErrUnexpectedEOF
			}
			m.FieldJ = int32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
			iNdEx += 4
		case 11:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldK", wireType)
			}
			m.FieldK = 0
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			m.FieldK = uint64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
			iNdEx += 8
		case 12:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldL", wireType)
			}
			m.FieldL = 0
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			m.FieldL = int64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
			iNdEx += 8
		case 13:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldM", wireType)
			}
			var v int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.FieldM = bool(v != 0)
		case 14:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldN", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				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 ErrInvalidLengthThetest
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.FieldN = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		case 15:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldO", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.FieldO = append(m.FieldO[:0], dAtA[iNdEx:postIndex]...)
			if m.FieldO == nil {
				m.FieldO = []byte{}
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *CustomNameNinOptNative) 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 ErrIntOverflowThetest
			}
			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: CustomNameNinOptNative: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: CustomNameNinOptNative: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldA", wireType)
			}
			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.FieldA = &v2
		case 2:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldB", wireType)
			}
			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.FieldB = &v2
		case 3:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldC", wireType)
			}
			var v int32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int32(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.FieldC = &v
		case 4:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldD", wireType)
			}
			var v int64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.FieldD = &v
		case 5:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldE", wireType)
			}
			var v uint32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= uint32(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.FieldE = &v
		case 6:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldF", wireType)
			}
			var v uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.FieldF = &v
		case 7:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldG", wireType)
			}
			var v int32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int32(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
			m.FieldG = &v
		case 8:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldH", wireType)
			}
			var v uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
			v2 := int64(v)
			m.FieldH = &v2
		case 9:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldI", wireType)
			}
			var v uint32
			if (iNdEx + 4) > l {
				return io.ErrUnexpectedEOF
			}
			v = uint32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
			iNdEx += 4
			m.FieldI = &v
		case 10:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldJ", wireType)
			}
			var v int32
			if (iNdEx + 4) > l {
				return io.ErrUnexpectedEOF
			}
			v = int32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
			iNdEx += 4
			m.FieldJ = &v
		case 11:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldK", wireType)
			}
			var v uint64
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			v = uint64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
			iNdEx += 8
			m.FieldK = &v
		case 12:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field FielL", wireType)
			}
			var v int64
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			v = int64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
			iNdEx += 8
			m.FielL = &v
		case 13:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldM", wireType)
			}
			var v int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			b := bool(v != 0)
			m.FieldM = &b
		case 14:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldN", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				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 ErrInvalidLengthThetest
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			s := string(dAtA[iNdEx:postIndex])
			m.FieldN = &s
			iNdEx = postIndex
		case 15:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldO", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.FieldO = append(m.FieldO[:0], dAtA[iNdEx:postIndex]...)
			if m.FieldO == nil {
				m.FieldO = []byte{}
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *CustomNameNinRepNative) 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 ErrIntOverflowThetest
			}
			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: CustomNameNinRepNative: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: CustomNameNinRepNative: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			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.FieldA = append(m.FieldA, v2)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				elementCount = packedLen / 8
				if elementCount != 0 && len(m.FieldA) == 0 {
					m.FieldA = 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.FieldA = append(m.FieldA, v2)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldA", wireType)
			}
		case 2:
			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.FieldB = append(m.FieldB, v2)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				elementCount = packedLen / 4
				if elementCount != 0 && len(m.FieldB) == 0 {
					m.FieldB = 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.FieldB = append(m.FieldB, v2)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldB", wireType)
			}
		case 3:
			if wireType == 0 {
				var v int32
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= int32(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.FieldC = append(m.FieldC, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				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.FieldC) == 0 {
					m.FieldC = make([]int32, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v int32
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= int32(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.FieldC = append(m.FieldC, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldC", wireType)
			}
		case 4:
			if wireType == 0 {
				var v int64
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= int64(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.FieldD = append(m.FieldD, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				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.FieldD) == 0 {
					m.FieldD = make([]int64, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v int64
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= int64(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.FieldD = append(m.FieldD, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldD", wireType)
			}
		case 5:
			if wireType == 0 {
				var v uint32
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= uint32(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.FieldE = append(m.FieldE, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				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.FieldE) == 0 {
					m.FieldE = make([]uint32, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v uint32
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= uint32(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.FieldE = append(m.FieldE, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldE", wireType)
			}
		case 6:
			if wireType == 0 {
				var v uint64
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= uint64(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.FieldF = append(m.FieldF, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				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.FieldF) == 0 {
					m.FieldF = make([]uint64, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v uint64
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= uint64(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.FieldF = append(m.FieldF, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldF", wireType)
			}
		case 7:
			if wireType == 0 {
				var v int32
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= int32(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
				m.FieldG = append(m.FieldG, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				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.FieldG) == 0 {
					m.FieldG = make([]int32, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v int32
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= int32(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
					m.FieldG = append(m.FieldG, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldG", wireType)
			}
		case 8:
			if wireType == 0 {
				var v uint64
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= uint64(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
				m.FieldH = append(m.FieldH, int64(v))
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				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.FieldH) == 0 {
					m.FieldH = make([]int64, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v uint64
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= uint64(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
					m.FieldH = append(m.FieldH, int64(v))
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldH", wireType)
			}
		case 9:
			if wireType == 5 {
				var v uint32
				if (iNdEx + 4) > l {
					return io.ErrUnexpectedEOF
				}
				v = uint32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
				iNdEx += 4
				m.FieldI = append(m.FieldI, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				elementCount = packedLen / 4
				if elementCount != 0 && len(m.FieldI) == 0 {
					m.FieldI = make([]uint32, 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
					m.FieldI = append(m.FieldI, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldI", wireType)
			}
		case 10:
			if wireType == 5 {
				var v int32
				if (iNdEx + 4) > l {
					return io.ErrUnexpectedEOF
				}
				v = int32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
				iNdEx += 4
				m.FieldJ = append(m.FieldJ, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				elementCount = packedLen / 4
				if elementCount != 0 && len(m.FieldJ) == 0 {
					m.FieldJ = make([]int32, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v int32
					if (iNdEx + 4) > l {
						return io.ErrUnexpectedEOF
					}
					v = int32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
					iNdEx += 4
					m.FieldJ = append(m.FieldJ, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldJ", wireType)
			}
		case 11:
			if wireType == 1 {
				var v uint64
				if (iNdEx + 8) > l {
					return io.ErrUnexpectedEOF
				}
				v = uint64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
				iNdEx += 8
				m.FieldK = append(m.FieldK, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				elementCount = packedLen / 8
				if elementCount != 0 && len(m.FieldK) == 0 {
					m.FieldK = make([]uint64, 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
					m.FieldK = append(m.FieldK, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldK", wireType)
			}
		case 12:
			if wireType == 1 {
				var v int64
				if (iNdEx + 8) > l {
					return io.ErrUnexpectedEOF
				}
				v = int64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
				iNdEx += 8
				m.FieldL = append(m.FieldL, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				elementCount = packedLen / 8
				if elementCount != 0 && len(m.FieldL) == 0 {
					m.FieldL = make([]int64, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v int64
					if (iNdEx + 8) > l {
						return io.ErrUnexpectedEOF
					}
					v = int64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
					iNdEx += 8
					m.FieldL = append(m.FieldL, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldL", wireType)
			}
		case 13:
			if wireType == 0 {
				var v int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.FieldM = append(m.FieldM, bool(v != 0))
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				elementCount = packedLen
				if elementCount != 0 && len(m.FieldM) == 0 {
					m.FieldM = make([]bool, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v int
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= int(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.FieldM = append(m.FieldM, bool(v != 0))
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldM", wireType)
			}
		case 14:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldN", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				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 ErrInvalidLengthThetest
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.FieldN = append(m.FieldN, string(dAtA[iNdEx:postIndex]))
			iNdEx = postIndex
		case 15:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldO", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.FieldO = append(m.FieldO, make([]byte, postIndex-iNdEx))
			copy(m.FieldO[len(m.FieldO)-1], dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *CustomNameNinStruct) 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 ErrIntOverflowThetest
			}
			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: CustomNameNinStruct: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: CustomNameNinStruct: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldA", wireType)
			}
			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.FieldA = &v2
		case 2:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldB", wireType)
			}
			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.FieldB = &v2
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldC", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.FieldC == nil {
				m.FieldC = &NidOptNative{}
			}
			if err := m.FieldC.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 4:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldD", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.FieldD = append(m.FieldD, &NinOptNative{})
			if err := m.FieldD[len(m.FieldD)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 6:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldE", wireType)
			}
			var v uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.FieldE = &v
		case 7:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldF", wireType)
			}
			var v int32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int32(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
			m.FieldF = &v
		case 8:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldG", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.FieldG == nil {
				m.FieldG = &NidOptNative{}
			}
			if err := m.FieldG.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 13:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldH", wireType)
			}
			var v int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			b := bool(v != 0)
			m.FieldH = &b
		case 14:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldI", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				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 ErrInvalidLengthThetest
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			s := string(dAtA[iNdEx:postIndex])
			m.FieldI = &s
			iNdEx = postIndex
		case 15:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldJ", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.FieldJ = append(m.FieldJ[:0], dAtA[iNdEx:postIndex]...)
			if m.FieldJ == nil {
				m.FieldJ = []byte{}
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *CustomNameCustomType) 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 ErrIntOverflowThetest
			}
			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: CustomNameCustomType: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: CustomNameCustomType: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldA", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			var v Uuid
			m.FieldA = &v
			if err := m.FieldA.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldB", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			var v github_com_gogo_protobuf_test_custom.Uint128
			m.FieldB = &v
			if err := m.FieldB.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldC", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			var v Uuid
			m.FieldC = append(m.FieldC, v)
			if err := m.FieldC[len(m.FieldC)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 4:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldD", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			var v github_com_gogo_protobuf_test_custom.Uint128
			m.FieldD = append(m.FieldD, v)
			if err := m.FieldD[len(m.FieldD)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *CustomNameNinEmbeddedStructUnion) 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 ErrIntOverflowThetest
			}
			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: CustomNameNinEmbeddedStructUnion: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: CustomNameNinEmbeddedStructUnion: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field NidOptNative", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.NidOptNative == nil {
				m.NidOptNative = &NidOptNative{}
			}
			if err := m.NidOptNative.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 200:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldA", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.FieldA == nil {
				m.FieldA = &NinOptNative{}
			}
			if err := m.FieldA.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 210:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldB", wireType)
			}
			var v int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			b := bool(v != 0)
			m.FieldB = &b
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *CustomNameEnum) 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 ErrIntOverflowThetest
			}
			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: CustomNameEnum: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: CustomNameEnum: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldA", wireType)
			}
			var v TheTestEnum
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= TheTestEnum(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.FieldA = &v
		case 2:
			if wireType == 0 {
				var v TheTestEnum
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= TheTestEnum(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.FieldB = append(m.FieldB, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthThetest
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				if elementCount != 0 && len(m.FieldB) == 0 {
					m.FieldB = make([]TheTestEnum, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v TheTestEnum
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= TheTestEnum(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.FieldB = append(m.FieldB, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldB", wireType)
			}
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *NoExtensionsMap) 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 ErrIntOverflowThetest
			}
			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: NoExtensionsMap: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NoExtensionsMap: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var v int64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field1 = &v
		default:
			if (fieldNum >= 100) && (fieldNum < 200) {
				var sizeOfWire int
				for {
					sizeOfWire++
					wire >>= 7
					if wire == 0 {
						break
					}
				}
				iNdEx -= sizeOfWire
				skippy, err := skipThetest(dAtA[iNdEx:])
				if err != nil {
					return err
				}
				if skippy < 0 {
					return ErrInvalidLengthThetest
				}
				if (iNdEx + skippy) < 0 {
					return ErrInvalidLengthThetest
				}
				if (iNdEx + skippy) > l {
					return io.ErrUnexpectedEOF
				}
				github_com_gogo_protobuf_proto.AppendExtension(m, int32(fieldNum), dAtA[iNdEx:iNdEx+skippy])
				iNdEx += skippy
			} else {
				iNdEx = preIndex
				skippy, err := skipThetest(dAtA[iNdEx:])
				if err != nil {
					return err
				}
				if skippy < 0 {
					return ErrInvalidLengthThetest
				}
				if (iNdEx + skippy) < 0 {
					return ErrInvalidLengthThetest
				}
				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 *Unrecognized) 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 ErrIntOverflowThetest
			}
			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: Unrecognized: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: Unrecognized: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				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 ErrInvalidLengthThetest
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			s := string(dAtA[iNdEx:postIndex])
			m.Field1 = &s
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *UnrecognizedWithInner) 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 ErrIntOverflowThetest
			}
			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: UnrecognizedWithInner: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: UnrecognizedWithInner: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Embedded", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Embedded = append(m.Embedded, &UnrecognizedWithInner_Inner{})
			if err := m.Embedded[len(m.Embedded)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				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 ErrInvalidLengthThetest
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			s := string(dAtA[iNdEx:postIndex])
			m.Field2 = &s
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *UnrecognizedWithInner_Inner) 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 ErrIntOverflowThetest
			}
			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: Inner: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: Inner: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var v uint32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= uint32(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field1 = &v
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *UnrecognizedWithEmbed) 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 ErrIntOverflowThetest
			}
			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: UnrecognizedWithEmbed: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: UnrecognizedWithEmbed: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field UnrecognizedWithEmbed_Embedded", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.UnrecognizedWithEmbed_Embedded.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				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 ErrInvalidLengthThetest
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			s := string(dAtA[iNdEx:postIndex])
			m.Field2 = &s
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *UnrecognizedWithEmbed_Embedded) 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 ErrIntOverflowThetest
			}
			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: Embedded: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: Embedded: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var v uint32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= uint32(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field1 = &v
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *Node) 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 ErrIntOverflowThetest
			}
			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: Node: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: Node: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Label", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				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 ErrInvalidLengthThetest
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			s := string(dAtA[iNdEx:postIndex])
			m.Label = &s
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Children", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Children = append(m.Children, &Node{})
			if err := m.Children[len(m.Children)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *NonByteCustomType) 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 ErrIntOverflowThetest
			}
			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: NonByteCustomType: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NonByteCustomType: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.Field1 == nil {
				m.Field1 = &T{}
			}
			if err := m.Field1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *NidOptNonByteCustomType) 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 ErrIntOverflowThetest
			}
			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: NidOptNonByteCustomType: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NidOptNonByteCustomType: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Field1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *NinOptNonByteCustomType) 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 ErrIntOverflowThetest
			}
			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: NinOptNonByteCustomType: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NinOptNonByteCustomType: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.Field1 == nil {
				m.Field1 = &T{}
			}
			if err := m.Field1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *NidRepNonByteCustomType) 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 ErrIntOverflowThetest
			}
			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: NidRepNonByteCustomType: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NidRepNonByteCustomType: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field1 = append(m.Field1, T{})
			if err := m.Field1[len(m.Field1)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *NinRepNonByteCustomType) 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 ErrIntOverflowThetest
			}
			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: NinRepNonByteCustomType: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NinRepNonByteCustomType: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field1 = append(m.Field1, T{})
			if err := m.Field1[len(m.Field1)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 *ProtoType) 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 ErrIntOverflowThetest
			}
			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: ProtoType: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: ProtoType: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				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 ErrInvalidLengthThetest
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthThetest
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			s := string(dAtA[iNdEx:postIndex])
			m.Field2 = &s
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthThetest
			}
			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 skipThetest(dAtA []byte) (n int, err error) {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return 0, ErrIntOverflowThetest
			}
			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, ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return 0, io.ErrUnexpectedEOF
				}
				iNdEx++
				if dAtA[iNdEx-1] < 0x80 {
					break
				}
			}
			return iNdEx, nil
		case 1:
			iNdEx += 8
			return iNdEx, nil
		case 2:
			var length int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return 0, ErrIntOverflowThetest
				}
				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, ErrInvalidLengthThetest
			}
			iNdEx += length
			if iNdEx < 0 {
				return 0, ErrInvalidLengthThetest
			}
			return iNdEx, nil
		case 3:
			for {
				var innerWire uint64
				var start int = iNdEx
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return 0, ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return 0, io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					innerWire |= (uint64(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				innerWireType := int(innerWire & 0x7)
				if innerWireType == 4 {
					break
				}
				next, err := skipThetest(dAtA[start:])
				if err != nil {
					return 0, err
				}
				iNdEx = start + next
				if iNdEx < 0 {
					return 0, ErrInvalidLengthThetest
				}
			}
			return iNdEx, nil
		case 4:
			return iNdEx, nil
		case 5:
			iNdEx += 4
			return iNdEx, nil
		default:
			return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
		}
	}
	panic("unreachable")
}

var (
	ErrInvalidLengthThetest = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflowThetest   = fmt.Errorf("proto: integer overflow")
)
