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

/*
	Package test is a generated protocol buffer package.

	It is generated from these files:
		combos/unsafeunmarshaler/thetest.proto

	It has these top-level messages:
		NidOptNative
		NinOptNative
		NidRepNative
		NinRepNative
		NidRepPackedNative
		NinRepPackedNative
		NidOptStruct
		NinOptStruct
		NidRepStruct
		NinRepStruct
		NidEmbeddedStruct
		NinEmbeddedStruct
		NidNestedStruct
		NinNestedStruct
		NidOptCustom
		CustomDash
		NinOptCustom
		NidRepCustom
		NinRepCustom
		NinOptNativeUnion
		NinOptStructUnion
		NinEmbeddedStructUnion
		NinNestedStructUnion
		Tree
		OrBranch
		AndBranch
		Leaf
		DeepTree
		ADeepBranch
		AndDeepBranch
		DeepLeaf
		Nil
		NidOptEnum
		NinOptEnum
		NidRepEnum
		NinRepEnum
		NinOptEnumDefault
		AnotherNinOptEnum
		AnotherNinOptEnumDefault
		Timer
		MyExtendable
		OtherExtenable
		NestedDefinition
		NestedScope
		NinOptNativeDefault
		CustomContainer
		CustomNameNidOptNative
		CustomNameNinOptNative
		CustomNameNinRepNative
		CustomNameNinStruct
		CustomNameCustomType
		CustomNameNinEmbeddedStructUnion
		CustomNameEnum
		NoExtensionsMap
		Unrecognized
		UnrecognizedWithInner
		UnrecognizedWithEmbed
		Node
		NonByteCustomType
		NidOptNonByteCustomType
		NinOptNonByteCustomType
		NidRepNonByteCustomType
		NinRepNonByteCustomType
		ProtoType
*/
package test

import proto "github.com/gogo/protobuf/proto"
import fmt "fmt"
import math "math"
import _ "github.com/gogo/protobuf/gogoproto"

import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom"
import github_com_gogo_protobuf_test_custom_dash_type "github.com/gogo/protobuf/test/custom-dash-type"

import bytes "bytes"
import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"

import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
import compress_gzip "compress/gzip"
import io_ioutil "io/ioutil"

import strconv "strconv"

import strings "strings"
import sort "sort"
import reflect "reflect"

import io "io"
import unsafe "unsafe"

// 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.GoGoProtoPackageIsVersion2 // 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 fileDescriptorThetest, []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 fileDescriptorThetest, []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 fileDescriptorThetest, []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 fileDescriptorThetest, []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 fileDescriptorThetest, []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_unrecognized []byte  `json:"-"`
}

func (m *NidOptNative) Reset()                    { *m = NidOptNative{} }
func (*NidOptNative) ProtoMessage()               {}
func (*NidOptNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{0} }

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_unrecognized []byte   `json:"-"`
}

func (m *NinOptNative) Reset()                    { *m = NinOptNative{} }
func (*NinOptNative) ProtoMessage()               {}
func (*NinOptNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{1} }

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_unrecognized []byte    `json:"-"`
}

func (m *NidRepNative) Reset()                    { *m = NidRepNative{} }
func (*NidRepNative) ProtoMessage()               {}
func (*NidRepNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{2} }

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_unrecognized []byte    `json:"-"`
}

func (m *NinRepNative) Reset()                    { *m = NinRepNative{} }
func (*NinRepNative) ProtoMessage()               {}
func (*NinRepNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{3} }

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_unrecognized []byte    `json:"-"`
}

func (m *NidRepPackedNative) Reset()                    { *m = NidRepPackedNative{} }
func (*NidRepPackedNative) ProtoMessage()               {}
func (*NidRepPackedNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{4} }

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_unrecognized []byte    `json:"-"`
}

func (m *NinRepPackedNative) Reset()                    { *m = NinRepPackedNative{} }
func (*NinRepPackedNative) ProtoMessage()               {}
func (*NinRepPackedNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{5} }

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_unrecognized []byte       `json:"-"`
}

func (m *NidOptStruct) Reset()                    { *m = NidOptStruct{} }
func (*NidOptStruct) ProtoMessage()               {}
func (*NidOptStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{6} }

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_unrecognized []byte        `json:"-"`
}

func (m *NinOptStruct) Reset()                    { *m = NinOptStruct{} }
func (*NinOptStruct) ProtoMessage()               {}
func (*NinOptStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{7} }

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_unrecognized []byte         `json:"-"`
}

func (m *NidRepStruct) Reset()                    { *m = NidRepStruct{} }
func (*NidRepStruct) ProtoMessage()               {}
func (*NidRepStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{8} }

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_unrecognized []byte          `json:"-"`
}

func (m *NinRepStruct) Reset()                    { *m = NinRepStruct{} }
func (*NinRepStruct) ProtoMessage()               {}
func (*NinRepStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{9} }

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_unrecognized []byte       `json:"-"`
}

func (m *NidEmbeddedStruct) Reset()                    { *m = NidEmbeddedStruct{} }
func (*NidEmbeddedStruct) ProtoMessage()               {}
func (*NidEmbeddedStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{10} }

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_unrecognized []byte        `json:"-"`
}

func (m *NinEmbeddedStruct) Reset()                    { *m = NinEmbeddedStruct{} }
func (*NinEmbeddedStruct) ProtoMessage()               {}
func (*NinEmbeddedStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{11} }

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

func (m *NidNestedStruct) Reset()                    { *m = NidNestedStruct{} }
func (*NidNestedStruct) ProtoMessage()               {}
func (*NidNestedStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{12} }

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_unrecognized []byte          `json:"-"`
}

func (m *NinNestedStruct) Reset()                    { *m = NinNestedStruct{} }
func (*NinNestedStruct) ProtoMessage()               {}
func (*NinNestedStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{13} }

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_unrecognized []byte                                       `json:"-"`
}

func (m *NidOptCustom) Reset()                    { *m = NidOptCustom{} }
func (*NidOptCustom) ProtoMessage()               {}
func (*NidOptCustom) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{14} }

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_unrecognized []byte                                                `json:"-"`
}

func (m *CustomDash) Reset()                    { *m = CustomDash{} }
func (*CustomDash) ProtoMessage()               {}
func (*CustomDash) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{15} }

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_unrecognized []byte                                        `json:"-"`
}

func (m *NinOptCustom) Reset()                    { *m = NinOptCustom{} }
func (*NinOptCustom) ProtoMessage()               {}
func (*NinOptCustom) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{16} }

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_unrecognized []byte                                         `json:"-"`
}

func (m *NidRepCustom) Reset()                    { *m = NidRepCustom{} }
func (*NidRepCustom) ProtoMessage()               {}
func (*NidRepCustom) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{17} }

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_unrecognized []byte                                         `json:"-"`
}

func (m *NinRepCustom) Reset()                    { *m = NinRepCustom{} }
func (*NinRepCustom) ProtoMessage()               {}
func (*NinRepCustom) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{18} }

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_unrecognized []byte   `json:"-"`
}

func (m *NinOptNativeUnion) Reset()                    { *m = NinOptNativeUnion{} }
func (*NinOptNativeUnion) ProtoMessage()               {}
func (*NinOptNativeUnion) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{19} }

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_unrecognized []byte        `json:"-"`
}

func (m *NinOptStructUnion) Reset()                    { *m = NinOptStructUnion{} }
func (*NinOptStructUnion) ProtoMessage()               {}
func (*NinOptStructUnion) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{20} }

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_unrecognized []byte        `json:"-"`
}

func (m *NinEmbeddedStructUnion) Reset()                    { *m = NinEmbeddedStructUnion{} }
func (*NinEmbeddedStructUnion) ProtoMessage()               {}
func (*NinEmbeddedStructUnion) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{21} }

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_unrecognized []byte                  `json:"-"`
}

func (m *NinNestedStructUnion) Reset()                    { *m = NinNestedStructUnion{} }
func (*NinNestedStructUnion) ProtoMessage()               {}
func (*NinNestedStructUnion) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{22} }

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_unrecognized []byte     `json:"-"`
}

func (m *Tree) Reset()                    { *m = Tree{} }
func (*Tree) ProtoMessage()               {}
func (*Tree) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{23} }

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

func (m *OrBranch) Reset()                    { *m = OrBranch{} }
func (*OrBranch) ProtoMessage()               {}
func (*OrBranch) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{24} }

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

func (m *AndBranch) Reset()                    { *m = AndBranch{} }
func (*AndBranch) ProtoMessage()               {}
func (*AndBranch) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{25} }

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

func (m *Leaf) Reset()                    { *m = Leaf{} }
func (*Leaf) ProtoMessage()               {}
func (*Leaf) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{26} }

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_unrecognized []byte         `json:"-"`
}

func (m *DeepTree) Reset()                    { *m = DeepTree{} }
func (*DeepTree) ProtoMessage()               {}
func (*DeepTree) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{27} }

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

func (m *ADeepBranch) Reset()                    { *m = ADeepBranch{} }
func (*ADeepBranch) ProtoMessage()               {}
func (*ADeepBranch) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{28} }

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

func (m *AndDeepBranch) Reset()                    { *m = AndDeepBranch{} }
func (*AndDeepBranch) ProtoMessage()               {}
func (*AndDeepBranch) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{29} }

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

func (m *DeepLeaf) Reset()                    { *m = DeepLeaf{} }
func (*DeepLeaf) ProtoMessage()               {}
func (*DeepLeaf) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{30} }

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

func (m *Nil) Reset()                    { *m = Nil{} }
func (*Nil) ProtoMessage()               {}
func (*Nil) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{31} }

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

func (m *NidOptEnum) Reset()                    { *m = NidOptEnum{} }
func (*NidOptEnum) ProtoMessage()               {}
func (*NidOptEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{32} }

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_unrecognized []byte                 `json:"-"`
}

func (m *NinOptEnum) Reset()                    { *m = NinOptEnum{} }
func (*NinOptEnum) ProtoMessage()               {}
func (*NinOptEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{33} }

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_unrecognized []byte                  `json:"-"`
}

func (m *NidRepEnum) Reset()                    { *m = NidRepEnum{} }
func (*NidRepEnum) ProtoMessage()               {}
func (*NidRepEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{34} }

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_unrecognized []byte                  `json:"-"`
}

func (m *NinRepEnum) Reset()                    { *m = NinRepEnum{} }
func (*NinRepEnum) ProtoMessage()               {}
func (*NinRepEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{35} }

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_unrecognized []byte                 `json:"-"`
}

func (m *NinOptEnumDefault) Reset()                    { *m = NinOptEnumDefault{} }
func (*NinOptEnumDefault) ProtoMessage()               {}
func (*NinOptEnumDefault) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{36} }

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_unrecognized []byte                 `json:"-"`
}

func (m *AnotherNinOptEnum) Reset()                    { *m = AnotherNinOptEnum{} }
func (*AnotherNinOptEnum) ProtoMessage()               {}
func (*AnotherNinOptEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{37} }

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_unrecognized []byte                 `json:"-"`
}

func (m *AnotherNinOptEnumDefault) Reset()                    { *m = AnotherNinOptEnumDefault{} }
func (*AnotherNinOptEnumDefault) ProtoMessage()               {}
func (*AnotherNinOptEnumDefault) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{38} }

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_unrecognized []byte `json:"-"`
}

func (m *Timer) Reset()                    { *m = Timer{} }
func (*Timer) ProtoMessage()               {}
func (*Timer) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{39} }

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

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

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

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

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"`
	proto.XXX_InternalExtensions `json:"-"`
	XXX_unrecognized             []byte `json:"-"`
}

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

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

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

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_unrecognized []byte                                          `json:"-"`
}

func (m *NestedDefinition) Reset()                    { *m = NestedDefinition{} }
func (*NestedDefinition) ProtoMessage()               {}
func (*NestedDefinition) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{42} }

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_unrecognized []byte                                          `json:"-"`
}

func (m *NestedDefinition_NestedMessage) Reset()      { *m = NestedDefinition_NestedMessage{} }
func (*NestedDefinition_NestedMessage) ProtoMessage() {}
func (*NestedDefinition_NestedMessage) Descriptor() ([]byte, []int) {
	return fileDescriptorThetest, []int{42, 0}
}

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

func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Reset() {
	*m = NestedDefinition_NestedMessage_NestedNestedMsg{}
}
func (*NestedDefinition_NestedMessage_NestedNestedMsg) ProtoMessage() {}
func (*NestedDefinition_NestedMessage_NestedNestedMsg) Descriptor() ([]byte, []int) {
	return fileDescriptorThetest, []int{42, 0, 0}
}

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_unrecognized []byte                                          `json:"-"`
}

func (m *NestedScope) Reset()                    { *m = NestedScope{} }
func (*NestedScope) ProtoMessage()               {}
func (*NestedScope) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{43} }

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_unrecognized []byte   `json:"-"`
}

func (m *NinOptNativeDefault) Reset()                    { *m = NinOptNativeDefault{} }
func (*NinOptNativeDefault) ProtoMessage()               {}
func (*NinOptNativeDefault) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{44} }

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_unrecognized []byte       `json:"-"`
}

func (m *CustomContainer) Reset()                    { *m = CustomContainer{} }
func (*CustomContainer) ProtoMessage()               {}
func (*CustomContainer) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{45} }

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_unrecognized []byte  `json:"-"`
}

func (m *CustomNameNidOptNative) Reset()                    { *m = CustomNameNidOptNative{} }
func (*CustomNameNidOptNative) ProtoMessage()               {}
func (*CustomNameNidOptNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{46} }

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_unrecognized []byte   `json:"-"`
}

func (m *CustomNameNinOptNative) Reset()                    { *m = CustomNameNinOptNative{} }
func (*CustomNameNinOptNative) ProtoMessage()               {}
func (*CustomNameNinOptNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{47} }

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_unrecognized []byte    `json:"-"`
}

func (m *CustomNameNinRepNative) Reset()                    { *m = CustomNameNinRepNative{} }
func (*CustomNameNinRepNative) ProtoMessage()               {}
func (*CustomNameNinRepNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{48} }

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_unrecognized []byte          `json:"-"`
}

func (m *CustomNameNinStruct) Reset()                    { *m = CustomNameNinStruct{} }
func (*CustomNameNinStruct) ProtoMessage()               {}
func (*CustomNameNinStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{49} }

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_unrecognized []byte                                         `json:"-"`
}

func (m *CustomNameCustomType) Reset()                    { *m = CustomNameCustomType{} }
func (*CustomNameCustomType) ProtoMessage()               {}
func (*CustomNameCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{50} }

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_unrecognized []byte        `json:"-"`
}

func (m *CustomNameNinEmbeddedStructUnion) Reset()      { *m = CustomNameNinEmbeddedStructUnion{} }
func (*CustomNameNinEmbeddedStructUnion) ProtoMessage() {}
func (*CustomNameNinEmbeddedStructUnion) Descriptor() ([]byte, []int) {
	return fileDescriptorThetest, []int{51}
}

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_unrecognized []byte        `json:"-"`
}

func (m *CustomNameEnum) Reset()                    { *m = CustomNameEnum{} }
func (*CustomNameEnum) ProtoMessage()               {}
func (*CustomNameEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{52} }

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

func (m *NoExtensionsMap) Reset()                    { *m = NoExtensionsMap{} }
func (*NoExtensionsMap) ProtoMessage()               {}
func (*NoExtensionsMap) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []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
}

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

func (m *Unrecognized) Reset()                    { *m = Unrecognized{} }
func (*Unrecognized) ProtoMessage()               {}
func (*Unrecognized) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{54} }

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_unrecognized []byte                         `json:"-"`
}

func (m *UnrecognizedWithInner) Reset()                    { *m = UnrecognizedWithInner{} }
func (*UnrecognizedWithInner) ProtoMessage()               {}
func (*UnrecognizedWithInner) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{55} }

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

func (m *UnrecognizedWithInner_Inner) Reset()      { *m = UnrecognizedWithInner_Inner{} }
func (*UnrecognizedWithInner_Inner) ProtoMessage() {}
func (*UnrecognizedWithInner_Inner) Descriptor() ([]byte, []int) {
	return fileDescriptorThetest, []int{55, 0}
}

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_unrecognized               []byte  `json:"-"`
}

func (m *UnrecognizedWithEmbed) Reset()                    { *m = UnrecognizedWithEmbed{} }
func (*UnrecognizedWithEmbed) ProtoMessage()               {}
func (*UnrecognizedWithEmbed) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{56} }

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

func (m *UnrecognizedWithEmbed_Embedded) Reset()      { *m = UnrecognizedWithEmbed_Embedded{} }
func (*UnrecognizedWithEmbed_Embedded) ProtoMessage() {}
func (*UnrecognizedWithEmbed_Embedded) Descriptor() ([]byte, []int) {
	return fileDescriptorThetest, []int{56, 0}
}

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_unrecognized []byte  `json:"-"`
}

func (m *Node) Reset()                    { *m = Node{} }
func (*Node) ProtoMessage()               {}
func (*Node) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{57} }

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

func (m *NonByteCustomType) Reset()                    { *m = NonByteCustomType{} }
func (*NonByteCustomType) ProtoMessage()               {}
func (*NonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{58} }

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

func (m *NidOptNonByteCustomType) Reset()                    { *m = NidOptNonByteCustomType{} }
func (*NidOptNonByteCustomType) ProtoMessage()               {}
func (*NidOptNonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{59} }

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

func (m *NinOptNonByteCustomType) Reset()                    { *m = NinOptNonByteCustomType{} }
func (*NinOptNonByteCustomType) ProtoMessage()               {}
func (*NinOptNonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{60} }

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

func (m *NidRepNonByteCustomType) Reset()                    { *m = NidRepNonByteCustomType{} }
func (*NidRepNonByteCustomType) ProtoMessage()               {}
func (*NidRepNonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{61} }

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

func (m *NinRepNonByteCustomType) Reset()                    { *m = NinRepNonByteCustomType{} }
func (*NinRepNonByteCustomType) ProtoMessage()               {}
func (*NinRepNonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{62} }

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

func (m *ProtoType) Reset()                    { *m = ProtoType{} }
func (*ProtoType) ProtoMessage()               {}
func (*ProtoType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{63} }

var E_FieldA = &proto.ExtensionDesc{
	ExtendedType:  (*MyExtendable)(nil),
	ExtensionType: (*float64)(nil),
	Field:         100,
	Name:          "test.FieldA",
	Tag:           "fixed64,100,opt,name=FieldA",
	Filename:      "combos/unsafeunmarshaler/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/unsafeunmarshaler/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/unsafeunmarshaler/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/unsafeunmarshaler/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/unsafeunmarshaler/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/unsafeunmarshaler/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/unsafeunmarshaler/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/unsafeunmarshaler/thetest.proto",
}

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

	that1, ok := that.(*NidOptNative)
	if !ok {
		that2, ok := that.(NidOptNative)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*NinOptNative)
	if !ok {
		that2, ok := that.(NinOptNative)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*NidRepNative)
	if !ok {
		that2, ok := that.(NidRepNative)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*NinRepNative)
	if !ok {
		that2, ok := that.(NinRepNative)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*NidRepPackedNative)
	if !ok {
		that2, ok := that.(NidRepPackedNative)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*NinRepPackedNative)
	if !ok {
		that2, ok := that.(NinRepPackedNative)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*NidOptStruct)
	if !ok {
		that2, ok := that.(NidOptStruct)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*NinOptStruct)
	if !ok {
		that2, ok := that.(NinOptStruct)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*NidRepStruct)
	if !ok {
		that2, ok := that.(NidRepStruct)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*NinRepStruct)
	if !ok {
		that2, ok := that.(NinRepStruct)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*NidEmbeddedStruct)
	if !ok {
		that2, ok := that.(NidEmbeddedStruct)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*NinEmbeddedStruct)
	if !ok {
		that2, ok := that.(NinEmbeddedStruct)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*NidNestedStruct)
	if !ok {
		that2, ok := that.(NidNestedStruct)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*NinNestedStruct)
	if !ok {
		that2, ok := that.(NinNestedStruct)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*NidOptCustom)
	if !ok {
		that2, ok := that.(NidOptCustom)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*CustomDash)
	if !ok {
		that2, ok := that.(CustomDash)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*NinOptCustom)
	if !ok {
		that2, ok := that.(NinOptCustom)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*NidRepCustom)
	if !ok {
		that2, ok := that.(NidRepCustom)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*NinRepCustom)
	if !ok {
		that2, ok := that.(NinRepCustom)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*NinOptNativeUnion)
	if !ok {
		that2, ok := that.(NinOptNativeUnion)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*NinOptStructUnion)
	if !ok {
		that2, ok := that.(NinOptStructUnion)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*NinEmbeddedStructUnion)
	if !ok {
		that2, ok := that.(NinEmbeddedStructUnion)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*NinNestedStructUnion)
	if !ok {
		that2, ok := that.(NinNestedStructUnion)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*Tree)
	if !ok {
		that2, ok := that.(Tree)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*OrBranch)
	if !ok {
		that2, ok := that.(OrBranch)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*AndBranch)
	if !ok {
		that2, ok := that.(AndBranch)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*Leaf)
	if !ok {
		that2, ok := that.(Leaf)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*DeepTree)
	if !ok {
		that2, ok := that.(DeepTree)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*ADeepBranch)
	if !ok {
		that2, ok := that.(ADeepBranch)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*AndDeepBranch)
	if !ok {
		that2, ok := that.(AndDeepBranch)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*DeepLeaf)
	if !ok {
		that2, ok := that.(DeepLeaf)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*Nil)
	if !ok {
		that2, ok := that.(Nil)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*NidOptEnum)
	if !ok {
		that2, ok := that.(NidOptEnum)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*NinOptEnum)
	if !ok {
		that2, ok := that.(NinOptEnum)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*NidRepEnum)
	if !ok {
		that2, ok := that.(NidRepEnum)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*NinRepEnum)
	if !ok {
		that2, ok := that.(NinRepEnum)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*NinOptEnumDefault)
	if !ok {
		that2, ok := that.(NinOptEnumDefault)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*AnotherNinOptEnum)
	if !ok {
		that2, ok := that.(AnotherNinOptEnum)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*AnotherNinOptEnumDefault)
	if !ok {
		that2, ok := that.(AnotherNinOptEnumDefault)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*Timer)
	if !ok {
		that2, ok := that.(Timer)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*MyExtendable)
	if !ok {
		that2, ok := that.(MyExtendable)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*OtherExtenable)
	if !ok {
		that2, ok := that.(OtherExtenable)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*NestedDefinition)
	if !ok {
		that2, ok := that.(NestedDefinition)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*NestedDefinition_NestedMessage)
	if !ok {
		that2, ok := that.(NestedDefinition_NestedMessage)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*NestedDefinition_NestedMessage_NestedNestedMsg)
	if !ok {
		that2, ok := that.(NestedDefinition_NestedMessage_NestedNestedMsg)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*NestedScope)
	if !ok {
		that2, ok := that.(NestedScope)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*NinOptNativeDefault)
	if !ok {
		that2, ok := that.(NinOptNativeDefault)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*CustomContainer)
	if !ok {
		that2, ok := that.(CustomContainer)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*CustomNameNidOptNative)
	if !ok {
		that2, ok := that.(CustomNameNidOptNative)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*CustomNameNinOptNative)
	if !ok {
		that2, ok := that.(CustomNameNinOptNative)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*CustomNameNinRepNative)
	if !ok {
		that2, ok := that.(CustomNameNinRepNative)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*CustomNameNinStruct)
	if !ok {
		that2, ok := that.(CustomNameNinStruct)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*CustomNameCustomType)
	if !ok {
		that2, ok := that.(CustomNameCustomType)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*CustomNameNinEmbeddedStructUnion)
	if !ok {
		that2, ok := that.(CustomNameNinEmbeddedStructUnion)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*CustomNameEnum)
	if !ok {
		that2, ok := that.(CustomNameEnum)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*NoExtensionsMap)
	if !ok {
		that2, ok := that.(NoExtensionsMap)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*Unrecognized)
	if !ok {
		that2, ok := that.(Unrecognized)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*UnrecognizedWithInner)
	if !ok {
		that2, ok := that.(UnrecognizedWithInner)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*UnrecognizedWithInner_Inner)
	if !ok {
		that2, ok := that.(UnrecognizedWithInner_Inner)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*UnrecognizedWithEmbed)
	if !ok {
		that2, ok := that.(UnrecognizedWithEmbed)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*UnrecognizedWithEmbed_Embedded)
	if !ok {
		that2, ok := that.(UnrecognizedWithEmbed_Embedded)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*Node)
	if !ok {
		that2, ok := that.(Node)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*NonByteCustomType)
	if !ok {
		that2, ok := that.(NonByteCustomType)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*NidOptNonByteCustomType)
	if !ok {
		that2, ok := that.(NidOptNonByteCustomType)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*NinOptNonByteCustomType)
	if !ok {
		that2, ok := that.(NinOptNonByteCustomType)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*NidRepNonByteCustomType)
	if !ok {
		that2, ok := that.(NidRepNonByteCustomType)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*NinRepNonByteCustomType)
	if !ok {
		that2, ok := that.(NinRepNonByteCustomType)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*ProtoType)
	if !ok {
		that2, ok := that.(ProtoType)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} 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 {
		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 *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 {
		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 *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, "test.TheTestEnum")+",\n")
	}
	if this.Field2 != nil {
		s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "test.YetAnotherTestEnum")+",\n")
	}
	if this.Field3 != nil {
		s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "test.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, "test.TheTestEnum")+",\n")
	}
	if this.Field2 != nil {
		s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "test.YetAnotherTestEnum")+",\n")
	}
	if this.Field3 != nil {
		s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "test.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, "test.AnotherTestEnum")+",\n")
	}
	if this.Field2 != nil {
		s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "test.YetAnotherTestEnum")+",\n")
	}
	if this.Field3 != nil {
		s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "test.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, "test.AnotherTestEnum")+",\n")
	}
	if this.Field2 != nil {
		s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "test.YetAnotherTestEnum")+",\n")
	}
	if this.Field3 != nil {
		s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "test.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, "test.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, "test.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, "test.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 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(10) != 0 {
		v2 := float64(r.Float64())
		if r.Intn(2) == 0 {
			v2 *= -1
		}
		this.Field1 = &v2
	}
	if r.Intn(10) != 0 {
		v3 := float32(r.Float32())
		if r.Intn(2) == 0 {
			v3 *= -1
		}
		this.Field2 = &v3
	}
	if r.Intn(10) != 0 {
		v4 := int32(r.Int31())
		if r.Intn(2) == 0 {
			v4 *= -1
		}
		this.Field3 = &v4
	}
	if r.Intn(10) != 0 {
		v5 := int64(r.Int63())
		if r.Intn(2) == 0 {
			v5 *= -1
		}
		this.Field4 = &v5
	}
	if r.Intn(10) != 0 {
		v6 := uint32(r.Uint32())
		this.Field5 = &v6
	}
	if r.Intn(10) != 0 {
		v7 := uint64(uint64(r.Uint32()))
		this.Field6 = &v7
	}
	if r.Intn(10) != 0 {
		v8 := int32(r.Int31())
		if r.Intn(2) == 0 {
			v8 *= -1
		}
		this.Field7 = &v8
	}
	if r.Intn(10) != 0 {
		v9 := int64(r.Int63())
		if r.Intn(2) == 0 {
			v9 *= -1
		}
		this.Field8 = &v9
	}
	if r.Intn(10) != 0 {
		v10 := uint32(r.Uint32())
		this.Field9 = &v10
	}
	if r.Intn(10) != 0 {
		v11 := int32(r.Int31())
		if r.Intn(2) == 0 {
			v11 *= -1
		}
		this.Field10 = &v11
	}
	if r.Intn(10) != 0 {
		v12 := uint64(uint64(r.Uint32()))
		this.Field11 = &v12
	}
	if r.Intn(10) != 0 {
		v13 := int64(r.Int63())
		if r.Intn(2) == 0 {
			v13 *= -1
		}
		this.Field12 = &v13
	}
	if r.Intn(10) != 0 {
		v14 := bool(bool(r.Intn(2) == 0))
		this.Field13 = &v14
	}
	if r.Intn(10) != 0 {
		v15 := string(randStringThetest(r))
		this.Field14 = &v15
	}
	if r.Intn(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 0 {
		v79 := float64(r.Float64())
		if r.Intn(2) == 0 {
			v79 *= -1
		}
		this.Field1 = &v79
	}
	if r.Intn(10) != 0 {
		v80 := float32(r.Float32())
		if r.Intn(2) == 0 {
			v80 *= -1
		}
		this.Field2 = &v80
	}
	if r.Intn(10) != 0 {
		this.Field3 = NewPopulatedNidOptNative(r, easy)
	}
	if r.Intn(10) != 0 {
		this.Field4 = NewPopulatedNinOptNative(r, easy)
	}
	if r.Intn(10) != 0 {
		v81 := uint64(uint64(r.Uint32()))
		this.Field6 = &v81
	}
	if r.Intn(10) != 0 {
		v82 := int32(r.Int31())
		if r.Intn(2) == 0 {
			v82 *= -1
		}
		this.Field7 = &v82
	}
	if r.Intn(10) != 0 {
		this.Field8 = NewPopulatedNidOptNative(r, easy)
	}
	if r.Intn(10) != 0 {
		v83 := bool(bool(r.Intn(2) == 0))
		this.Field13 = &v83
	}
	if r.Intn(10) != 0 {
		v84 := string(randStringThetest(r))
		this.Field14 = &v84
	}
	if r.Intn(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 0 {
		this.NidOptNative = NewPopulatedNidOptNative(r, easy)
	}
	if r.Intn(10) != 0 {
		this.Field200 = NewPopulatedNidOptNative(r, easy)
	}
	if r.Intn(10) != 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(10) != 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(10) != 0 {
		this.Field1 = NewPopulatedNinOptStruct(r, easy)
	}
	if r.Intn(10) != 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(10) != 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(10) != 0 {
		this.Id = NewPopulatedUuid(r)
	}
	if r.Intn(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 0 {
		v152 := TheTestEnum([]int32{0, 1, 2}[r.Intn(3)])
		this.Field1 = &v152
	}
	if r.Intn(10) != 0 {
		v153 := YetAnotherTestEnum([]int32{0, 1}[r.Intn(2)])
		this.Field2 = &v153
	}
	if r.Intn(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 0 {
		v161 := TheTestEnum([]int32{0, 1, 2}[r.Intn(3)])
		this.Field1 = &v161
	}
	if r.Intn(10) != 0 {
		v162 := YetAnotherTestEnum([]int32{0, 1}[r.Intn(2)])
		this.Field2 = &v162
	}
	if r.Intn(10) != 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(10) != 0 {
		v164 := AnotherTestEnum([]int32{10, 11}[r.Intn(2)])
		this.Field1 = &v164
	}
	if r.Intn(10) != 0 {
		v165 := YetAnotherTestEnum([]int32{0, 1}[r.Intn(2)])
		this.Field2 = &v165
	}
	if r.Intn(10) != 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(10) != 0 {
		v167 := AnotherTestEnum([]int32{10, 11}[r.Intn(2)])
		this.Field1 = &v167
	}
	if r.Intn(10) != 0 {
		v168 := YetAnotherTestEnum([]int32{0, 1}[r.Intn(2)])
		this.Field2 = &v168
	}
	if r.Intn(10) != 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(10) != 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(10) != 0 {
		v172 := int64(r.Int63())
		if r.Intn(2) == 0 {
			v172 *= -1
		}
		this.Field2 = &v172
	}
	if r.Intn(10) != 0 {
		v173 := int64(r.Int63())
		if r.Intn(2) == 0 {
			v173 *= -1
		}
		this.Field13 = &v173
	}
	if r.Intn(10) != 0 {
		this.M = NewPopulatedMyExtendable(r, easy)
	}
	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(10) != 0 {
		v174 := int64(r.Int63())
		if r.Intn(2) == 0 {
			v174 *= -1
		}
		this.Field1 = &v174
	}
	if r.Intn(10) != 0 {
		v175 := NestedDefinition_NestedEnum([]int32{1}[r.Intn(1)])
		this.EnumField = &v175
	}
	if r.Intn(10) != 0 {
		this.NNM = NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(r, easy)
	}
	if r.Intn(10) != 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(10) != 0 {
		v176 := uint64(uint64(r.Uint32()))
		this.NestedField1 = &v176
	}
	if r.Intn(10) != 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(10) != 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(10) != 0 {
		this.A = NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(r, easy)
	}
	if r.Intn(10) != 0 {
		v178 := NestedDefinition_NestedEnum([]int32{1}[r.Intn(1)])
		this.B = &v178
	}
	if r.Intn(10) != 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(10) != 0 {
		v179 := float64(r.Float64())
		if r.Intn(2) == 0 {
			v179 *= -1
		}
		this.Field1 = &v179
	}
	if r.Intn(10) != 0 {
		v180 := float32(r.Float32())
		if r.Intn(2) == 0 {
			v180 *= -1
		}
		this.Field2 = &v180
	}
	if r.Intn(10) != 0 {
		v181 := int32(r.Int31())
		if r.Intn(2) == 0 {
			v181 *= -1
		}
		this.Field3 = &v181
	}
	if r.Intn(10) != 0 {
		v182 := int64(r.Int63())
		if r.Intn(2) == 0 {
			v182 *= -1
		}
		this.Field4 = &v182
	}
	if r.Intn(10) != 0 {
		v183 := uint32(r.Uint32())
		this.Field5 = &v183
	}
	if r.Intn(10) != 0 {
		v184 := uint64(uint64(r.Uint32()))
		this.Field6 = &v184
	}
	if r.Intn(10) != 0 {
		v185 := int32(r.Int31())
		if r.Intn(2) == 0 {
			v185 *= -1
		}
		this.Field7 = &v185
	}
	if r.Intn(10) != 0 {
		v186 := int64(r.Int63())
		if r.Intn(2) == 0 {
			v186 *= -1
		}
		this.Field8 = &v186
	}
	if r.Intn(10) != 0 {
		v187 := uint32(r.Uint32())
		this.Field9 = &v187
	}
	if r.Intn(10) != 0 {
		v188 := int32(r.Int31())
		if r.Intn(2) == 0 {
			v188 *= -1
		}
		this.Field10 = &v188
	}
	if r.Intn(10) != 0 {
		v189 := uint64(uint64(r.Uint32()))
		this.Field11 = &v189
	}
	if r.Intn(10) != 0 {
		v190 := int64(r.Int63())
		if r.Intn(2) == 0 {
			v190 *= -1
		}
		this.Field12 = &v190
	}
	if r.Intn(10) != 0 {
		v191 := bool(bool(r.Intn(2) == 0))
		this.Field13 = &v191
	}
	if r.Intn(10) != 0 {
		v192 := string(randStringThetest(r))
		this.Field14 = &v192
	}
	if r.Intn(10) != 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(10) != 0 {
		v196 := float64(r.Float64())
		if r.Intn(2) == 0 {
			v196 *= -1
		}
		this.FieldA = &v196
	}
	if r.Intn(10) != 0 {
		v197 := float32(r.Float32())
		if r.Intn(2) == 0 {
			v197 *= -1
		}
		this.FieldB = &v197
	}
	if r.Intn(10) != 0 {
		v198 := int32(r.Int31())
		if r.Intn(2) == 0 {
			v198 *= -1
		}
		this.FieldC = &v198
	}
	if r.Intn(10) != 0 {
		v199 := int64(r.Int63())
		if r.Intn(2) == 0 {
			v199 *= -1
		}
		this.FieldD = &v199
	}
	if r.Intn(10) != 0 {
		v200 := uint32(r.Uint32())
		this.FieldE = &v200
	}
	if r.Intn(10) != 0 {
		v201 := uint64(uint64(r.Uint32()))
		this.FieldF = &v201
	}
	if r.Intn(10) != 0 {
		v202 := int32(r.Int31())
		if r.Intn(2) == 0 {
			v202 *= -1
		}
		this.FieldG = &v202
	}
	if r.Intn(10) != 0 {
		v203 := int64(r.Int63())
		if r.Intn(2) == 0 {
			v203 *= -1
		}
		this.FieldH = &v203
	}
	if r.Intn(10) != 0 {
		v204 := uint32(r.Uint32())
		this.FieldI = &v204
	}
	if r.Intn(10) != 0 {
		v205 := int32(r.Int31())
		if r.Intn(2) == 0 {
			v205 *= -1
		}
		this.FieldJ = &v205
	}
	if r.Intn(10) != 0 {
		v206 := uint64(uint64(r.Uint32()))
		this.FieldK = &v206
	}
	if r.Intn(10) != 0 {
		v207 := int64(r.Int63())
		if r.Intn(2) == 0 {
			v207 *= -1
		}
		this.FielL = &v207
	}
	if r.Intn(10) != 0 {
		v208 := bool(bool(r.Intn(2) == 0))
		this.FieldM = &v208
	}
	if r.Intn(10) != 0 {
		v209 := string(randStringThetest(r))
		this.FieldN = &v209
	}
	if r.Intn(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 0 {
		v227 := float64(r.Float64())
		if r.Intn(2) == 0 {
			v227 *= -1
		}
		this.FieldA = &v227
	}
	if r.Intn(10) != 0 {
		v228 := float32(r.Float32())
		if r.Intn(2) == 0 {
			v228 *= -1
		}
		this.FieldB = &v228
	}
	if r.Intn(10) != 0 {
		this.FieldC = NewPopulatedNidOptNative(r, easy)
	}
	if r.Intn(10) != 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(10) != 0 {
		v230 := uint64(uint64(r.Uint32()))
		this.FieldE = &v230
	}
	if r.Intn(10) != 0 {
		v231 := int32(r.Int31())
		if r.Intn(2) == 0 {
			v231 *= -1
		}
		this.FieldF = &v231
	}
	if r.Intn(10) != 0 {
		this.FieldG = NewPopulatedNidOptNative(r, easy)
	}
	if r.Intn(10) != 0 {
		v232 := bool(bool(r.Intn(2) == 0))
		this.FieldH = &v232
	}
	if r.Intn(10) != 0 {
		v233 := string(randStringThetest(r))
		this.FieldI = &v233
	}
	if r.Intn(10) != 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(10) != 0 {
		this.FieldA = NewPopulatedUuid(r)
	}
	if r.Intn(10) != 0 {
		this.FieldB = github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r)
	}
	if r.Intn(10) != 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(10) != 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(10) != 0 {
		v240 := TheTestEnum([]int32{0, 1, 2}[r.Intn(3)])
		this.FieldA = &v240
	}
	if r.Intn(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 0 {
		v250 := string(randStringThetest(r))
		this.Label = &v250
	}
	if r.Intn(10) == 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(10) != 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(10) != 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(10) != 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(10) != 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(10) != 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) {
	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) {
	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) {
	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) {
	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) {
	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) {
	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) {
	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) {
	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) {
	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) {
	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) {
	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) {
	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) {
	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) {
	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) {
	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) {
	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) {
	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) {
	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) {
	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) {
	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) {
	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) {
	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) {
	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) {
	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) {
	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) {
	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) {
	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) {
	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) {
	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) {
	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) {
	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) {
	var l int
	_ = l
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *NidOptEnum) Size() (n int) {
	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) {
	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) {
	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) {
	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) {
	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) {
	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) {
	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) {
	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) {
	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) {
	var l int
	_ = l
	if m.Field2 != nil {
		n += 1 + sovThetest(uint64(*m.Field2))
	}
	if m.Field13 != nil {
		n += 1 + sovThetest(uint64(*m.Field13))
	}
	if m.M != nil {
		l = m.M.Size()
		n += 1 + l + sovThetest(uint64(l))
	}
	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) {
	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) {
	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) {
	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) {
	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) {
	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) {
	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) {
	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) {
	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) {
	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) {
	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) {
	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) {
	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) {
	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) {
	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) {
	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) {
	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) {
	var l int
	_ = l
	if m.Field1 != nil {
		n += 1 + sovThetest(uint64(*m.Field1))
	}
	return n
}

func (m *UnrecognizedWithEmbed) Size() (n int) {
	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) {
	var l int
	_ = l
	if m.Field1 != nil {
		n += 1 + sovThetest(uint64(*m.Field1))
	}
	return n
}

func (m *Node) Size() (n int) {
	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) {
	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) {
	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) {
	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) {
	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) {
	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) {
	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) {
	for {
		n++
		x >>= 7
		if x == 0 {
			break
		}
	}
	return n
}
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(fmt.Sprintf("%v", this.Field3), "NidOptNative", "NidOptNative", 1) + `,`,
		`Field4:` + strings.Replace(fmt.Sprintf("%v", this.Field4), "NinOptNative", "NinOptNative", 1) + `,`,
		`Field6:` + valueToStringThetest(this.Field6) + `,`,
		`Field7:` + valueToStringThetest(this.Field7) + `,`,
		`Field8:` + strings.Replace(fmt.Sprintf("%v", this.Field8), "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"
	}
	s := strings.Join([]string{`&NidRepStruct{`,
		`Field1:` + fmt.Sprintf("%v", this.Field1) + `,`,
		`Field2:` + fmt.Sprintf("%v", this.Field2) + `,`,
		`Field3:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Field3), "NidOptNative", "NidOptNative", 1), `&`, ``, 1) + `,`,
		`Field4:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Field4), "NinOptNative", "NinOptNative", 1), `&`, ``, 1) + `,`,
		`Field6:` + fmt.Sprintf("%v", this.Field6) + `,`,
		`Field7:` + fmt.Sprintf("%v", this.Field7) + `,`,
		`Field8:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Field8), "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 *NinRepStruct) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&NinRepStruct{`,
		`Field1:` + fmt.Sprintf("%v", this.Field1) + `,`,
		`Field2:` + fmt.Sprintf("%v", this.Field2) + `,`,
		`Field3:` + strings.Replace(fmt.Sprintf("%v", this.Field3), "NidOptNative", "NidOptNative", 1) + `,`,
		`Field4:` + strings.Replace(fmt.Sprintf("%v", this.Field4), "NinOptNative", "NinOptNative", 1) + `,`,
		`Field6:` + fmt.Sprintf("%v", this.Field6) + `,`,
		`Field7:` + fmt.Sprintf("%v", this.Field7) + `,`,
		`Field8:` + strings.Replace(fmt.Sprintf("%v", this.Field8), "NidOptNative", "NidOptNative", 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 *NidEmbeddedStruct) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&NidEmbeddedStruct{`,
		`NidOptNative:` + strings.Replace(fmt.Sprintf("%v", this.NidOptNative), "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(fmt.Sprintf("%v", this.NidOptNative), "NidOptNative", "NidOptNative", 1) + `,`,
		`Field200:` + strings.Replace(fmt.Sprintf("%v", this.Field200), "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"
	}
	s := strings.Join([]string{`&NidNestedStruct{`,
		`Field1:` + strings.Replace(strings.Replace(this.Field1.String(), "NidOptStruct", "NidOptStruct", 1), `&`, ``, 1) + `,`,
		`Field2:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Field2), "NidRepStruct", "NidRepStruct", 1), `&`, ``, 1) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *NinNestedStruct) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&NinNestedStruct{`,
		`Field1:` + strings.Replace(fmt.Sprintf("%v", this.Field1), "NinOptStruct", "NinOptStruct", 1) + `,`,
		`Field2:` + strings.Replace(fmt.Sprintf("%v", this.Field2), "NinRepStruct", "NinRepStruct", 1) + `,`,
		`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(fmt.Sprintf("%v", this.Field3), "NidOptNative", "NidOptNative", 1) + `,`,
		`Field4:` + strings.Replace(fmt.Sprintf("%v", this.Field4), "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(fmt.Sprintf("%v", this.NidOptNative), "NidOptNative", "NidOptNative", 1) + `,`,
		`Field200:` + strings.Replace(fmt.Sprintf("%v", this.Field200), "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(fmt.Sprintf("%v", this.Field1), "NinOptNativeUnion", "NinOptNativeUnion", 1) + `,`,
		`Field2:` + strings.Replace(fmt.Sprintf("%v", this.Field2), "NinOptStructUnion", "NinOptStructUnion", 1) + `,`,
		`Field3:` + strings.Replace(fmt.Sprintf("%v", this.Field3), "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(fmt.Sprintf("%v", this.Or), "OrBranch", "OrBranch", 1) + `,`,
		`And:` + strings.Replace(fmt.Sprintf("%v", this.And), "AndBranch", "AndBranch", 1) + `,`,
		`Leaf:` + strings.Replace(fmt.Sprintf("%v", this.Leaf), "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(fmt.Sprintf("%v", this.Down), "ADeepBranch", "ADeepBranch", 1) + `,`,
		`And:` + strings.Replace(fmt.Sprintf("%v", this.And), "AndDeepBranch", "AndDeepBranch", 1) + `,`,
		`Leaf:` + strings.Replace(fmt.Sprintf("%v", this.Leaf), "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{`,
		`Field2:` + valueToStringThetest(this.Field2) + `,`,
		`Field13:` + valueToStringThetest(this.Field13) + `,`,
		`M:` + strings.Replace(fmt.Sprintf("%v", this.M), "MyExtendable", "MyExtendable", 1) + `,`,
		`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"
	}
	s := strings.Join([]string{`&CustomNameNinStruct{`,
		`FieldA:` + valueToStringThetest(this.FieldA) + `,`,
		`FieldB:` + valueToStringThetest(this.FieldB) + `,`,
		`FieldC:` + strings.Replace(fmt.Sprintf("%v", this.FieldC), "NidOptNative", "NidOptNative", 1) + `,`,
		`FieldD:` + strings.Replace(fmt.Sprintf("%v", this.FieldD), "NinOptNative", "NinOptNative", 1) + `,`,
		`FieldE:` + valueToStringThetest(this.FieldE) + `,`,
		`FieldF:` + valueToStringThetest(this.FieldF) + `,`,
		`FieldG:` + strings.Replace(fmt.Sprintf("%v", this.FieldG), "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(fmt.Sprintf("%v", this.NidOptNative), "NidOptNative", "NidOptNative", 1) + `,`,
		`FieldA:` + strings.Replace(fmt.Sprintf("%v", this.FieldA), "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"
	}
	s := strings.Join([]string{`&UnrecognizedWithInner{`,
		`Embedded:` + strings.Replace(fmt.Sprintf("%v", this.Embedded), "UnrecognizedWithInner_Inner", "UnrecognizedWithInner_Inner", 1) + `,`,
		`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(this.UnrecognizedWithEmbed_Embedded.String(), "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"
	}
	s := strings.Join([]string{`&Node{`,
		`Label:` + valueToStringThetest(this.Label) + `,`,
		`Children:` + strings.Replace(fmt.Sprintf("%v", this.Children), "Node", "Node", 1) + `,`,
		`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 ErrIntOverflowThetestUnsafe
			}
			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)
			}
			if iNdEx+8 > l {
				return io.ErrUnexpectedEOF
			}
			m.Field1 = *(*float64)(unsafe.Pointer(&dAtA[iNdEx]))
			iNdEx += 8
		case 2:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			if iNdEx+4 > l {
				return io.ErrUnexpectedEOF
			}
			m.Field2 = *(*float32)(unsafe.Pointer(&dAtA[iNdEx]))
			iNdEx += 4
		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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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)
			}
			if iNdEx+4 > l {
				return io.ErrUnexpectedEOF
			}
			m.Field9 = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx]))
			iNdEx += 4
		case 10:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType)
			}
			if iNdEx+4 > l {
				return io.ErrUnexpectedEOF
			}
			m.Field10 = *(*int32)(unsafe.Pointer(&dAtA[iNdEx]))
			iNdEx += 4
		case 11:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType)
			}
			if iNdEx+8 > l {
				return io.ErrUnexpectedEOF
			}
			m.Field11 = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx]))
			iNdEx += 8
		case 12:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType)
			}
			if iNdEx+8 > l {
				return io.ErrUnexpectedEOF
			}
			m.Field12 = *(*int64)(unsafe.Pointer(&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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + intStringLen
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + byteLen
			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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 float64
			if iNdEx+8 > l {
				return io.ErrUnexpectedEOF
			}
			v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx]))
			iNdEx += 8
			m.Field1 = &v
		case 2:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			var v float32
			if iNdEx+4 > l {
				return io.ErrUnexpectedEOF
			}
			v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx]))
			iNdEx += 4
			m.Field2 = &v
		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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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)(unsafe.Pointer(&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)(unsafe.Pointer(&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)(unsafe.Pointer(&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)(unsafe.Pointer(&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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + intStringLen
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + byteLen
			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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 float64
				if iNdEx+8 > l {
					return io.ErrUnexpectedEOF
				}
				v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx]))
				iNdEx += 8
				m.Field1 = append(m.Field1, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v float64
					if iNdEx+8 > l {
						return io.ErrUnexpectedEOF
					}
					v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx]))
					iNdEx += 8
					m.Field1 = append(m.Field1, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
		case 2:
			if wireType == 5 {
				var v float32
				if iNdEx+4 > l {
					return io.ErrUnexpectedEOF
				}
				v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx]))
				iNdEx += 4
				m.Field2 = append(m.Field2, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v float32
					if iNdEx+4 > l {
						return io.ErrUnexpectedEOF
					}
					v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx]))
					iNdEx += 4
					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 int32
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v int32
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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 ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v int64
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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 ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v uint32
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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 ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v uint64
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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 ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v int32
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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 ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v uint64
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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)(unsafe.Pointer(&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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v uint32
					if iNdEx+4 > l {
						return io.ErrUnexpectedEOF
					}
					v = *(*uint32)(unsafe.Pointer(&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)(unsafe.Pointer(&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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v int32
					if iNdEx+4 > l {
						return io.ErrUnexpectedEOF
					}
					v = *(*int32)(unsafe.Pointer(&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)(unsafe.Pointer(&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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v uint64
					if iNdEx+8 > l {
						return io.ErrUnexpectedEOF
					}
					v = *(*uint64)(unsafe.Pointer(&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)(unsafe.Pointer(&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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v int64
					if iNdEx+8 > l {
						return io.ErrUnexpectedEOF
					}
					v = *(*int64)(unsafe.Pointer(&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 ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v int
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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 ErrIntOverflowThetestUnsafe
				}
				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 ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + intStringLen
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + byteLen
			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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 float64
				if iNdEx+8 > l {
					return io.ErrUnexpectedEOF
				}
				v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx]))
				iNdEx += 8
				m.Field1 = append(m.Field1, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v float64
					if iNdEx+8 > l {
						return io.ErrUnexpectedEOF
					}
					v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx]))
					iNdEx += 8
					m.Field1 = append(m.Field1, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
		case 2:
			if wireType == 5 {
				var v float32
				if iNdEx+4 > l {
					return io.ErrUnexpectedEOF
				}
				v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx]))
				iNdEx += 4
				m.Field2 = append(m.Field2, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v float32
					if iNdEx+4 > l {
						return io.ErrUnexpectedEOF
					}
					v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx]))
					iNdEx += 4
					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 int32
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v int32
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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 ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v int64
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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 ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v uint32
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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 ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v uint64
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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 ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v int32
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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 ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v uint64
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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)(unsafe.Pointer(&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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v uint32
					if iNdEx+4 > l {
						return io.ErrUnexpectedEOF
					}
					v = *(*uint32)(unsafe.Pointer(&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)(unsafe.Pointer(&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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v int32
					if iNdEx+4 > l {
						return io.ErrUnexpectedEOF
					}
					v = *(*int32)(unsafe.Pointer(&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)(unsafe.Pointer(&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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v uint64
					if iNdEx+8 > l {
						return io.ErrUnexpectedEOF
					}
					v = *(*uint64)(unsafe.Pointer(&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)(unsafe.Pointer(&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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v int64
					if iNdEx+8 > l {
						return io.ErrUnexpectedEOF
					}
					v = *(*int64)(unsafe.Pointer(&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 ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v int
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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 ErrIntOverflowThetestUnsafe
				}
				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 ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + intStringLen
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + byteLen
			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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 float64
				if iNdEx+8 > l {
					return io.ErrUnexpectedEOF
				}
				v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx]))
				iNdEx += 8
				m.Field1 = append(m.Field1, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v float64
					if iNdEx+8 > l {
						return io.ErrUnexpectedEOF
					}
					v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx]))
					iNdEx += 8
					m.Field1 = append(m.Field1, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
		case 2:
			if wireType == 5 {
				var v float32
				if iNdEx+4 > l {
					return io.ErrUnexpectedEOF
				}
				v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx]))
				iNdEx += 4
				m.Field2 = append(m.Field2, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v float32
					if iNdEx+4 > l {
						return io.ErrUnexpectedEOF
					}
					v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx]))
					iNdEx += 4
					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 int32
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v int32
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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 ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v int64
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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 ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v uint32
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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 ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v uint64
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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 ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v int32
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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 ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v uint64
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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)(unsafe.Pointer(&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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v uint32
					if iNdEx+4 > l {
						return io.ErrUnexpectedEOF
					}
					v = *(*uint32)(unsafe.Pointer(&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)(unsafe.Pointer(&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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v int32
					if iNdEx+4 > l {
						return io.ErrUnexpectedEOF
					}
					v = *(*int32)(unsafe.Pointer(&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)(unsafe.Pointer(&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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v uint64
					if iNdEx+8 > l {
						return io.ErrUnexpectedEOF
					}
					v = *(*uint64)(unsafe.Pointer(&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)(unsafe.Pointer(&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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v int64
					if iNdEx+8 > l {
						return io.ErrUnexpectedEOF
					}
					v = *(*int64)(unsafe.Pointer(&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 ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v int
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 float64
				if iNdEx+8 > l {
					return io.ErrUnexpectedEOF
				}
				v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx]))
				iNdEx += 8
				m.Field1 = append(m.Field1, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v float64
					if iNdEx+8 > l {
						return io.ErrUnexpectedEOF
					}
					v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx]))
					iNdEx += 8
					m.Field1 = append(m.Field1, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
		case 2:
			if wireType == 5 {
				var v float32
				if iNdEx+4 > l {
					return io.ErrUnexpectedEOF
				}
				v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx]))
				iNdEx += 4
				m.Field2 = append(m.Field2, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v float32
					if iNdEx+4 > l {
						return io.ErrUnexpectedEOF
					}
					v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx]))
					iNdEx += 4
					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 int32
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v int32
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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 ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v int64
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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 ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v uint32
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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 ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v uint64
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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 ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v int32
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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 ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v uint64
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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)(unsafe.Pointer(&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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v uint32
					if iNdEx+4 > l {
						return io.ErrUnexpectedEOF
					}
					v = *(*uint32)(unsafe.Pointer(&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)(unsafe.Pointer(&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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v int32
					if iNdEx+4 > l {
						return io.ErrUnexpectedEOF
					}
					v = *(*int32)(unsafe.Pointer(&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)(unsafe.Pointer(&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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v uint64
					if iNdEx+8 > l {
						return io.ErrUnexpectedEOF
					}
					v = *(*uint64)(unsafe.Pointer(&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)(unsafe.Pointer(&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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v int64
					if iNdEx+8 > l {
						return io.ErrUnexpectedEOF
					}
					v = *(*int64)(unsafe.Pointer(&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 ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v int
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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)
			}
			if iNdEx+8 > l {
				return io.ErrUnexpectedEOF
			}
			m.Field1 = *(*float64)(unsafe.Pointer(&dAtA[iNdEx]))
			iNdEx += 8
		case 2:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			if iNdEx+4 > l {
				return io.ErrUnexpectedEOF
			}
			m.Field2 = *(*float32)(unsafe.Pointer(&dAtA[iNdEx]))
			iNdEx += 4
		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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + intStringLen
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + byteLen
			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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 float64
			if iNdEx+8 > l {
				return io.ErrUnexpectedEOF
			}
			v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx]))
			iNdEx += 8
			m.Field1 = &v
		case 2:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			var v float32
			if iNdEx+4 > l {
				return io.ErrUnexpectedEOF
			}
			v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx]))
			iNdEx += 4
			m.Field2 = &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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + intStringLen
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + byteLen
			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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 float64
				if iNdEx+8 > l {
					return io.ErrUnexpectedEOF
				}
				v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx]))
				iNdEx += 8
				m.Field1 = append(m.Field1, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v float64
					if iNdEx+8 > l {
						return io.ErrUnexpectedEOF
					}
					v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx]))
					iNdEx += 8
					m.Field1 = append(m.Field1, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
		case 2:
			if wireType == 5 {
				var v float32
				if iNdEx+4 > l {
					return io.ErrUnexpectedEOF
				}
				v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx]))
				iNdEx += 4
				m.Field2 = append(m.Field2, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v float32
					if iNdEx+4 > l {
						return io.ErrUnexpectedEOF
					}
					v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx]))
					iNdEx += 4
					m.Field2 = append(m.Field2, v)
				}
			} 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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v uint64
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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 ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v int32
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v int
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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 ErrIntOverflowThetestUnsafe
				}
				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 ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + intStringLen
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + byteLen
			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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 float64
				if iNdEx+8 > l {
					return io.ErrUnexpectedEOF
				}
				v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx]))
				iNdEx += 8
				m.Field1 = append(m.Field1, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v float64
					if iNdEx+8 > l {
						return io.ErrUnexpectedEOF
					}
					v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx]))
					iNdEx += 8
					m.Field1 = append(m.Field1, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
		case 2:
			if wireType == 5 {
				var v float32
				if iNdEx+4 > l {
					return io.ErrUnexpectedEOF
				}
				v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx]))
				iNdEx += 4
				m.Field2 = append(m.Field2, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v float32
					if iNdEx+4 > l {
						return io.ErrUnexpectedEOF
					}
					v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx]))
					iNdEx += 4
					m.Field2 = append(m.Field2, v)
				}
			} 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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v uint64
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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 ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v int32
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v int
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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 ErrIntOverflowThetestUnsafe
				}
				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 ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + intStringLen
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + byteLen
			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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 ErrIntOverflowThetestUnsafe
				}
				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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 ErrIntOverflowThetestUnsafe
				}
				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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + byteLen
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + byteLen
			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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + byteLen
			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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + byteLen
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + byteLen
			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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + byteLen
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + byteLen
			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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + byteLen
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + byteLen
			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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 float64
			if iNdEx+8 > l {
				return io.ErrUnexpectedEOF
			}
			v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx]))
			iNdEx += 8
			m.Field1 = &v
		case 2:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			var v float32
			if iNdEx+4 > l {
				return io.ErrUnexpectedEOF
			}
			v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx]))
			iNdEx += 4
			m.Field2 = &v
		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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + intStringLen
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + byteLen
			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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 float64
			if iNdEx+8 > l {
				return io.ErrUnexpectedEOF
			}
			v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx]))
			iNdEx += 8
			m.Field1 = &v
		case 2:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			var v float32
			if iNdEx+4 > l {
				return io.ErrUnexpectedEOF
			}
			v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx]))
			iNdEx += 4
			m.Field2 = &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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + intStringLen
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + byteLen
			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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 ErrIntOverflowThetestUnsafe
				}
				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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.StrValue = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
				}
				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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v TheTestEnum
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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 ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v YetAnotherTestEnum
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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 ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v YetYetAnotherTestEnum
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v TheTestEnum
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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 ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v YetAnotherTestEnum
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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 ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v YetYetAnotherTestEnum
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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)
			}
			if iNdEx+8 > l {
				return io.ErrUnexpectedEOF
			}
			m.Time1 = *(*int64)(unsafe.Pointer(&dAtA[iNdEx]))
			iNdEx += 8
		case 2:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Time2", wireType)
			}
			if iNdEx+8 > l {
				return io.ErrUnexpectedEOF
			}
			m.Time2 = *(*int64)(unsafe.Pointer(&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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + byteLen
			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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
				}
				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 := skipThetestUnsafe(dAtA[iNdEx:])
				if err != nil {
					return err
				}
				if skippy < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				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 := skipThetestUnsafe(dAtA[iNdEx:])
				if err != nil {
					return err
				}
				if skippy < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
			}
			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 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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= (int64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field13 = &v
		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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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
		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 := skipThetestUnsafe(dAtA[iNdEx:])
				if err != nil {
					return err
				}
				if skippy < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				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 := skipThetestUnsafe(dAtA[iNdEx:])
				if err != nil {
					return err
				}
				if skippy < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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)(unsafe.Pointer(&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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
				}
				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 ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			s := string(dAtA[iNdEx:postIndex])
			m.NestedNestedField1 = &s
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 float64
			if iNdEx+8 > l {
				return io.ErrUnexpectedEOF
			}
			v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx]))
			iNdEx += 8
			m.Field1 = &v
		case 2:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			var v float32
			if iNdEx+4 > l {
				return io.ErrUnexpectedEOF
			}
			v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx]))
			iNdEx += 4
			m.Field2 = &v
		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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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)(unsafe.Pointer(&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)(unsafe.Pointer(&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)(unsafe.Pointer(&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)(unsafe.Pointer(&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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + intStringLen
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + byteLen
			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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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)
			}
			if iNdEx+8 > l {
				return io.ErrUnexpectedEOF
			}
			m.FieldA = *(*float64)(unsafe.Pointer(&dAtA[iNdEx]))
			iNdEx += 8
		case 2:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldB", wireType)
			}
			if iNdEx+4 > l {
				return io.ErrUnexpectedEOF
			}
			m.FieldB = *(*float32)(unsafe.Pointer(&dAtA[iNdEx]))
			iNdEx += 4
		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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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)
			}
			if iNdEx+4 > l {
				return io.ErrUnexpectedEOF
			}
			m.FieldI = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx]))
			iNdEx += 4
		case 10:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldJ", wireType)
			}
			if iNdEx+4 > l {
				return io.ErrUnexpectedEOF
			}
			m.FieldJ = *(*int32)(unsafe.Pointer(&dAtA[iNdEx]))
			iNdEx += 4
		case 11:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldK", wireType)
			}
			if iNdEx+8 > l {
				return io.ErrUnexpectedEOF
			}
			m.FieldK = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx]))
			iNdEx += 8
		case 12:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldL", wireType)
			}
			if iNdEx+8 > l {
				return io.ErrUnexpectedEOF
			}
			m.FieldL = *(*int64)(unsafe.Pointer(&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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + intStringLen
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + byteLen
			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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 float64
			if iNdEx+8 > l {
				return io.ErrUnexpectedEOF
			}
			v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx]))
			iNdEx += 8
			m.FieldA = &v
		case 2:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldB", wireType)
			}
			var v float32
			if iNdEx+4 > l {
				return io.ErrUnexpectedEOF
			}
			v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx]))
			iNdEx += 4
			m.FieldB = &v
		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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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)(unsafe.Pointer(&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)(unsafe.Pointer(&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)(unsafe.Pointer(&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)(unsafe.Pointer(&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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + intStringLen
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + byteLen
			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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 float64
				if iNdEx+8 > l {
					return io.ErrUnexpectedEOF
				}
				v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx]))
				iNdEx += 8
				m.FieldA = append(m.FieldA, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v float64
					if iNdEx+8 > l {
						return io.ErrUnexpectedEOF
					}
					v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx]))
					iNdEx += 8
					m.FieldA = append(m.FieldA, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldA", wireType)
			}
		case 2:
			if wireType == 5 {
				var v float32
				if iNdEx+4 > l {
					return io.ErrUnexpectedEOF
				}
				v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx]))
				iNdEx += 4
				m.FieldB = append(m.FieldB, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v float32
					if iNdEx+4 > l {
						return io.ErrUnexpectedEOF
					}
					v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx]))
					iNdEx += 4
					m.FieldB = append(m.FieldB, v)
				}
			} 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 ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v int32
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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 ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v int64
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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 ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v uint32
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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 ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v uint64
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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 ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v int32
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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 ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v uint64
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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)(unsafe.Pointer(&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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v uint32
					if iNdEx+4 > l {
						return io.ErrUnexpectedEOF
					}
					v = *(*uint32)(unsafe.Pointer(&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)(unsafe.Pointer(&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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v int32
					if iNdEx+4 > l {
						return io.ErrUnexpectedEOF
					}
					v = *(*int32)(unsafe.Pointer(&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)(unsafe.Pointer(&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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v uint64
					if iNdEx+8 > l {
						return io.ErrUnexpectedEOF
					}
					v = *(*uint64)(unsafe.Pointer(&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)(unsafe.Pointer(&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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v int64
					if iNdEx+8 > l {
						return io.ErrUnexpectedEOF
					}
					v = *(*int64)(unsafe.Pointer(&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 ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v int
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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 ErrIntOverflowThetestUnsafe
				}
				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 ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + intStringLen
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + byteLen
			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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 float64
			if iNdEx+8 > l {
				return io.ErrUnexpectedEOF
			}
			v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx]))
			iNdEx += 8
			m.FieldA = &v
		case 2:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldB", wireType)
			}
			var v float32
			if iNdEx+4 > l {
				return io.ErrUnexpectedEOF
			}
			v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx]))
			iNdEx += 4
			m.FieldB = &v
		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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
				}
				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 ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + intStringLen
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + byteLen
			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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + byteLen
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + byteLen
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + byteLen
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + byteLen
			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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 ErrIntOverflowThetestUnsafe
				}
				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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
					}
					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 ErrIntOverflowThetestUnsafe
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v TheTestEnum
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetestUnsafe
						}
						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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
				}
				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 := skipThetestUnsafe(dAtA[iNdEx:])
				if err != nil {
					return err
				}
				if skippy < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				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 := skipThetestUnsafe(dAtA[iNdEx:])
				if err != nil {
					return err
				}
				if skippy < 0 {
					return ErrInvalidLengthThetestUnsafe
				}
				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 ErrIntOverflowThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
				}
				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 ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			s := string(dAtA[iNdEx:postIndex])
			m.Field1 = &s
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 ErrIntOverflowThetestUnsafe
				}
				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 ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			s := string(dAtA[iNdEx:postIndex])
			m.Field2 = &s
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
				}
				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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 ErrIntOverflowThetestUnsafe
				}
				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 ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			s := string(dAtA[iNdEx:postIndex])
			m.Field2 = &s
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
				}
				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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
				}
				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 ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + intStringLen
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + msglen
			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 := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
			}
			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 ErrIntOverflowThetestUnsafe
				}
				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 ErrInvalidLengthThetestUnsafe
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			s := string(dAtA[iNdEx:postIndex])
			m.Field2 = &s
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetestUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetestUnsafe
			}
			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 skipThetestUnsafe(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, ErrIntOverflowThetestUnsafe
			}
			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, ErrIntOverflowThetestUnsafe
				}
				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, ErrIntOverflowThetestUnsafe
				}
				if iNdEx >= l {
					return 0, io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				length |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			iNdEx += length
			if length < 0 {
				return 0, ErrInvalidLengthThetestUnsafe
			}
			return iNdEx, nil
		case 3:
			for {
				var innerWire uint64
				var start int = iNdEx
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return 0, ErrIntOverflowThetestUnsafe
					}
					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 := skipThetestUnsafe(dAtA[start:])
				if err != nil {
					return 0, err
				}
				iNdEx = start + next
			}
			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 (
	ErrInvalidLengthThetestUnsafe = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflowThetestUnsafe   = fmt.Errorf("proto: integer overflow")
)

func init() { proto.RegisterFile("combos/unsafeunmarshaler/thetest.proto", fileDescriptorThetest) }

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